From 30d6e639cacfa2c1b837dbaabca4e29eb49dafec Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Thu, 13 Aug 2020 23:32:38 +0100 Subject: [PATCH] Disable minimize/maximize/close buttons of simulator settings windows --- src/blackgui/guiutility.cpp | 11 +++++++++++ src/blackgui/guiutility.h | 3 +++ .../emulatedconfig/simulatoremulatedconfigwidget.cpp | 1 + .../simulatorflightgearconfigwindow.cpp | 1 + .../simulator/fsxcommon/simulatorfsxconfigwindow.cpp | 1 + .../xplaneconfig/simulatorxplaneconfigwindow.cpp | 1 + 6 files changed, 18 insertions(+) diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index d4bd24b30..7531c731c 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -698,6 +698,17 @@ namespace BlackGui return mw; } + void CGuiUtility::disableMinMaxCloseButtons(QWidget *window) + { + if (!window->windowFlags().testFlag(Qt::CustomizeWindowHint)) + { + window->setWindowFlag(Qt::CustomizeWindowHint); + window->setWindowFlag(Qt::WindowTitleHint); + } + window->setWindowFlag(Qt::WindowMinMaxButtonsHint, false); + window->setWindowFlag(Qt::WindowCloseButtonHint, false); + } + QGraphicsOpacityEffect *CGuiUtility::fadeInWidget(int durationMs, QWidget *widget, double startValue, double endValue) { // http://stackoverflow.com/questions/19087822/how-to-make-qt-widgets-fade-in-or-fade-out# diff --git a/src/blackgui/guiutility.h b/src/blackgui/guiutility.h index b7fdaee1c..e544006b2 100644 --- a/src/blackgui/guiutility.h +++ b/src/blackgui/guiutility.h @@ -222,6 +222,9 @@ namespace BlackGui static bool isDialog(const QWidget *widget); //! @} + //! Disable close button on window + static void disableMinMaxCloseButtons(QWidget *window); + //! Fade in a widget static QGraphicsOpacityEffect *fadeInWidget(int durationMs, QWidget *widget, double startValue = 0.0, double endValue = 1.0); diff --git a/src/plugins/simulator/emulatedconfig/simulatoremulatedconfigwidget.cpp b/src/plugins/simulator/emulatedconfig/simulatoremulatedconfigwidget.cpp index a217d73ef..b21d48428 100644 --- a/src/plugins/simulator/emulatedconfig/simulatoremulatedconfigwidget.cpp +++ b/src/plugins/simulator/emulatedconfig/simulatoremulatedconfigwidget.cpp @@ -20,6 +20,7 @@ namespace BlackSimPlugin ui(new Ui::CSimulatorEmulatedConfigWidget) { ui->setupUi(this); + CGuiUtility::disableMinMaxCloseButtons(this); } CSimulatorEmulatedConfigWidget::~CSimulatorEmulatedConfigWidget() diff --git a/src/plugins/simulator/flightgearconfig/simulatorflightgearconfigwindow.cpp b/src/plugins/simulator/flightgearconfig/simulatorflightgearconfigwindow.cpp index 258bb1ccb..59cc7aff6 100644 --- a/src/plugins/simulator/flightgearconfig/simulatorflightgearconfigwindow.cpp +++ b/src/plugins/simulator/flightgearconfig/simulatorflightgearconfigwindow.cpp @@ -26,6 +26,7 @@ namespace BlackSimPlugin ui(new Ui::CSimulatorFlightgearConfigWindow) { ui->setupUi(this); + CGuiUtility::disableMinMaxCloseButtons(this); ui->comp_SettingsFGSwiftBus->setDefaultP2PAddress(m_fgswiftbusServerSetting.getDefault()); ui->comp_SettingsFGSwiftBus->set(m_fgswiftbusServerSetting.getThreadLocal()); diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxconfigwindow.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxconfigwindow.cpp index 696bd55e4..ce7a29ea3 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxconfigwindow.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxconfigwindow.cpp @@ -25,6 +25,7 @@ namespace BlackSimPlugin ui->comp_FsxSettings->setSimulator(m_simulator); connect(ui->bb_OkCancel, &QDialogButtonBox::rejected, this, &QWidget::close); this->setWindowTitle(m_simulator.toQString(true) + " plugin configuration"); + CGuiUtility::disableMinMaxCloseButtons(this); } CSimulatorFsxConfigWindow::~CSimulatorFsxConfigWindow() diff --git a/src/plugins/simulator/xplaneconfig/simulatorxplaneconfigwindow.cpp b/src/plugins/simulator/xplaneconfig/simulatorxplaneconfigwindow.cpp index 4c4b8771c..0a3436538 100644 --- a/src/plugins/simulator/xplaneconfig/simulatorxplaneconfigwindow.cpp +++ b/src/plugins/simulator/xplaneconfig/simulatorxplaneconfigwindow.cpp @@ -32,6 +32,7 @@ namespace BlackSimPlugin { ui->setupUi(this); ui->comp_SettingsXSwiftBus->setDefaultP2PAddress(m_xSwiftBusServerSettings.getDefault().getDBusServerAddressQt()); + CGuiUtility::disableMinMaxCloseButtons(this); const CXSwiftBusSettings defaultSettings = TXSwiftBusSettings::defaultValue(); ui->sb_MaxAircraft->setMaximum(defaultSettings.getMaxPlanes() * 2);