mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-09 21:47:45 +00:00
CollisionRenderSettingsDialog: Validate hex inputs
This way we don't have a case where incorrect values are implicitly converted to the error value of zero (i.e. we shouldn't even accept bogus strings like "0xzzz") Not the most ideal UX, but this is still better than not doing anything about it.
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
#include "CCollisionRenderSettingsDialog.h"
|
||||
#include "ui_CCollisionRenderSettingsDialog.h"
|
||||
#include "CWorldEditor.h"
|
||||
|
||||
#include "Editor/UICommon.h"
|
||||
#include "Editor/WorldEditor/CWorldEditor.h"
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionValidator>
|
||||
|
||||
CCollisionRenderSettingsDialog::CCollisionRenderSettingsDialog(CWorldEditor *pEditor, QWidget *pParent /*= 0*/)
|
||||
: QDialog(pParent)
|
||||
@@ -35,8 +39,14 @@ void CCollisionRenderSettingsDialog::SetupWidgets()
|
||||
EGame Game = mpEditor->CurrentGame();
|
||||
|
||||
// Set widgets to match current render setting values
|
||||
mpUi->HideMaskLineEdit->setText(QStringLiteral("0x") + QString::number(rSettings.HideMask, 16).toUpper());
|
||||
mpUi->HighlightMaskLineEdit->setText(QStringLiteral("0x") + QString::number(rSettings.HighlightMask, 16).toUpper());
|
||||
auto* hexValidator = new QRegularExpressionValidator(QRegularExpression(QStringLiteral("^(?:0[xX])?([0-9]|[A-F]|[a-f]){1,16}$")));
|
||||
mpUi->HideMaskLineEdit->setText(QString::number(rSettings.HideMask, 16).toUpper());
|
||||
mpUi->HighlightMaskLineEdit->setText(QString::number(rSettings.HighlightMask, 16).toUpper());
|
||||
mpUi->HideMaskLineEdit->setValidator(hexValidator);
|
||||
mpUi->HighlightMaskLineEdit->setValidator(hexValidator);
|
||||
mpUi->HideMaskLineEdit->setToolTip(tr("Must be hex characters (0x optional)"));
|
||||
mpUi->HighlightMaskLineEdit->setToolTip(tr("Must be hex characters (0x optional)"));
|
||||
|
||||
mpUi->WireframeCheckBox->setChecked(rSettings.DrawWireframe);
|
||||
mpUi->SurfaceTypeCheckBox->setChecked(rSettings.TintWithSurfaceColor);
|
||||
mpUi->StandableTrisCheckBox->setChecked(rSettings.TintUnwalkableTris);
|
||||
|
||||
Reference in New Issue
Block a user