Exemple #1
0
QVariant FrustumProperty::value(int role) const
{
	QVariant data = Property::value();
	Frustum frustum = data.value<Frustum>();
	if (data.isValid() && role != Qt::UserRole)
	{
		switch (role)
		{
		case Qt::DisplayRole: // Show frustum in QPropertyEditorWidget
			if (frustum.isSymetric())
				return tr("[ %1%2, %3, %4, %5]").arg(frustum.Fov()).arg(QChar(176)).arg(frustum.Aspect()).arg(frustum.Near).arg(frustum.Far);
			else
				return tr("[ %1, %2, %3, %4, %5, %6]").arg(frustum.Left).arg(frustum.Right).arg(frustum.Bottom).arg(frustum.Top).arg(frustum.Near).arg(frustum.Far);
		case Qt::EditRole: // Show frustum in Lineedit
			if (frustum.isSymetric())
				return tr("%1%2, %3, %4, %5").arg(frustum.Fov()).arg(QChar(176)).arg(frustum.Aspect()).arg(frustum.Near).arg(frustum.Far);
			else
				return tr("%1 %2 %3 %4 %5 %6").arg(frustum.Left).arg(frustum.Right).arg(frustum.Bottom).arg(frustum.Top).arg(frustum.Near).arg(frustum.Far);
		};
	}
	return data;
}