Added support for multi edit of ints and lists.

This commit is contained in:
Leonardo Zide
2024-02-19 16:31:02 -08:00
parent 39bdb1aa0a
commit dd989bbc1d
9 changed files with 246 additions and 176 deletions
+48
View File
@@ -58,6 +58,33 @@ lcCamera::~lcCamera()
{
}
QString lcCamera::GetCameraTypeString(lcCameraType CameraType)
{
switch (CameraType)
{
case lcCameraType::Perspective:
return QT_TRANSLATE_NOOP("Camera Type", "Perspective");
case lcCameraType::Orthographic:
return QT_TRANSLATE_NOOP("Camera Type", "Orthographic");
case lcCameraType::Count:
break;
}
return QString();
}
QStringList lcCamera::GetCameraTypeStrings()
{
QStringList CameraType;
for (int CameraTypeIndex = 0; CameraTypeIndex < static_cast<int>(lcCameraType::Count); CameraTypeIndex++)
CameraType.push_back(GetCameraTypeString(static_cast<lcCameraType>(CameraTypeIndex)));
return CameraType;
}
lcViewpoint lcCamera::GetViewpoint(const QString& ViewpointName)
{
const QLatin1String ViewpointNames[] =
@@ -132,6 +159,19 @@ void lcCamera::CreateName(const lcArray<lcCamera*>& Cameras)
mName = Prefix + QString::number(MaxCameraNumber + 1);
}
bool lcCamera::SetCameraType(lcCameraType CameraType)
{
if (static_cast<int>(CameraType) < 0 || CameraType >= lcCameraType::Count)
return false;
if (GetCameraType() == CameraType)
return false;
SetOrtho(CameraType == lcCameraType::Orthographic);
return true;
}
void lcCamera::SaveLDraw(QTextStream& Stream) const
{
const QLatin1String LineEnding("\r\n");
@@ -575,7 +615,11 @@ QVariant lcCamera::GetPropertyValue(lcObjectPropertyId PropertyId) const
case lcObjectPropertyId::PieceStepShow:
case lcObjectPropertyId::PieceStepHide:
case lcObjectPropertyId::CameraName:
break;
case lcObjectPropertyId::CameraType:
return static_cast<int>(GetCameraType());
case lcObjectPropertyId::CameraFOV:
case lcObjectPropertyId::CameraNear:
case lcObjectPropertyId::CameraFar:
@@ -633,7 +677,11 @@ bool lcCamera::SetPropertyValue(lcObjectPropertyId PropertyId, lcStep Step, bool
case lcObjectPropertyId::PieceStepShow:
case lcObjectPropertyId::PieceStepHide:
case lcObjectPropertyId::CameraName:
break;
case lcObjectPropertyId::CameraType:
return SetCameraType(static_cast<lcCameraType>(Value.toInt()));
case lcObjectPropertyId::CameraFOV:
case lcObjectPropertyId::CameraNear:
case lcObjectPropertyId::CameraFar: