diff --git a/src/blackgui/editors/aircrafticaoform.cpp b/src/blackgui/editors/aircrafticaoform.cpp index b2224a91c..bfd4d5529 100644 --- a/src/blackgui/editors/aircrafticaoform.cpp +++ b/src/blackgui/editors/aircrafticaoform.cpp @@ -132,9 +132,9 @@ namespace BlackGui this->ui->le_Family->setReadOnly(readOnly); this->ui->le_Iata->setReadOnly(readOnly); - this->ui->cb_Legacy->setCheckable(!readOnly); - this->ui->cb_Military->setCheckable(!readOnly); - this->ui->cb_RealWorld->setCheckable(!readOnly); + CGuiUtility::checkBoxReadOnly(this->ui->cb_Legacy, readOnly); + CGuiUtility::checkBoxReadOnly(this->ui->cb_Military, readOnly); + CGuiUtility::checkBoxReadOnly(this->ui->cb_RealWorld, readOnly); this->ui->cb_Wtc->setEnabled(!readOnly); this->ui->cb_Rank->setEnabled(!readOnly); diff --git a/src/blackgui/editors/aircrafticaoform.ui b/src/blackgui/editors/aircrafticaoform.ui index dde5147a0..3514a4722 100644 --- a/src/blackgui/editors/aircrafticaoform.ui +++ b/src/blackgui/editors/aircrafticaoform.ui @@ -198,6 +198,9 @@ + + Real world aircraft + Real @@ -205,6 +208,9 @@ + + Legacy aircraft, e.g. Concord, ME109 + Legacy @@ -213,7 +219,7 @@ - Military + Military aircraft Mil. diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index 4a2eaae60..a60592cad 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -13,6 +13,7 @@ #include "blackmisc/filelogger.h" #include "blackmisc/logmessage.h" #include "blackmisc/project.h" +#include "blackmisc/verify.h" #include #include #include @@ -200,11 +201,29 @@ namespace BlackGui return m; } + void CGuiUtility::checkBoxReadOnly(QCheckBox *checkBox, bool readOnly) + { + static const QCheckBox defaultBox; + BLACK_VERIFY_X(checkBox, Q_FUNC_INFO, "no checkbox"); + if (!checkBox) { return; } + + if (readOnly) + { + checkBox->setAttribute(Qt::WA_TransparentForMouseEvents); + checkBox->setFocusPolicy(Qt::NoFocus); + } + else + { + checkBox->setAttribute(Qt::WA_TransparentForMouseEvents, defaultBox.testAttribute(Qt::WA_TransparentForMouseEvents)); + checkBox->setFocusPolicy(defaultBox.focusPolicy()); + } + } + QWidgetList CGuiUtility::topLevelApplicationWidgetsWithName() { QWidgetList tlw = QApplication::topLevelWidgets(); QWidgetList rl; - foreach(QWidget * w, tlw) + foreach (QWidget *w, tlw) { if (w->objectName().isEmpty()) { continue; } rl.append(w); diff --git a/src/blackgui/guiutility.h b/src/blackgui/guiutility.h index 3716ba9e3..462ad6dc4 100644 --- a/src/blackgui/guiutility.h +++ b/src/blackgui/guiutility.h @@ -17,6 +17,7 @@ #include "enableforframelesswindow.h" #include #include +#include #include namespace BlackGui @@ -80,6 +81,9 @@ namespace BlackGui //! Metatype static const QString &swiftJsonDragAndDropMimeType(); + //! Pseudo readonly state for checkbox + static void checkBoxReadOnly(QCheckBox *checkBox, bool readOnly); + private: //! Constructor, use static methods only CGuiUtility() {}