diff --git a/src/Gui/Dialogs/DlgAddProperty.cpp b/src/Gui/Dialogs/DlgAddProperty.cpp index c1d80fb90b..1682575e52 100644 --- a/src/Gui/Dialogs/DlgAddProperty.cpp +++ b/src/Gui/Dialogs/DlgAddProperty.cpp @@ -481,14 +481,8 @@ void DlgAddProperty::setAddEnabled(bool enabled) { QPushButton *addButton = ui->buttonBox->button(QDialogButtonBox::Ok); QPushButton *cancelButton = ui->buttonBox->button(QDialogButtonBox::Cancel); - if (enabled) { - cancelButton->setDefault(false); - addButton->setDefault(true); - } - else { - cancelButton->setDefault(true); - addButton->setDefault(false); - } + cancelButton->setDefault(!enabled); + addButton->setDefault(enabled); addButton->setEnabled(enabled); } @@ -550,12 +544,12 @@ bool DlgAddProperty::isTypeValid() bool DlgAddProperty::isDocument() const { - return container && freecad_cast(container); + return container->isDerivedFrom(); } bool DlgAddProperty::isDocumentObject() const { - return container && freecad_cast(container); + return container->isDerivedFrom(); } bool DlgAddProperty::areFieldsValid() @@ -830,9 +824,8 @@ void DlgAddProperty::openTransaction() void DlgAddProperty::critical(const QString& title, const QString& text) { static bool criticalDialogShown = false; if (!criticalDialogShown) { - criticalDialogShown = true; + Base::StateLocker locker(criticalDialogShown); QMessageBox::critical(this, title, text); - criticalDialogShown = false; } }