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; }