From 0b388cb10392c126578d7e184b2692c29e0f82a9 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 30 Oct 2017 03:31:16 +0100 Subject: [PATCH] Ref T177, addressing some overlay messages frame issues * use enum for buttons * removed unused declaration setInnerFrameFactor * private slots -> private --- src/blackgui/components/dbstashcomponent.cpp | 2 +- src/blackgui/components/dbstashcomponent.h | 4 +- src/blackgui/overlaymessages.cpp | 32 +++++++------- src/blackgui/overlaymessages.h | 27 ++++++------ src/blackgui/overlaymessages.ui | 44 +++++++------------- src/blackgui/overlaymessagesframe.cpp | 5 ++- src/blackgui/overlaymessagesframe.h | 6 +-- src/blackgui/views/viewbase.cpp | 17 +++----- 8 files changed, 59 insertions(+), 78 deletions(-) diff --git a/src/blackgui/components/dbstashcomponent.cpp b/src/blackgui/components/dbstashcomponent.cpp index 87f3335ef..3e16bf252 100644 --- a/src/blackgui/components/dbstashcomponent.cpp +++ b/src/blackgui/components/dbstashcomponent.cpp @@ -540,7 +540,7 @@ namespace BlackGui bool CDbStashComponent::showOverlayMessagesWithConfirmation( const CStatusMessageList &msgs, bool appendOldMessages, - const QString &confirmation, std::function okLambda, int defaultButton, bool onlyErrors, int timeoutMs) + const QString &confirmation, std::function okLambda, QMessageBox::StandardButton defaultButton, bool onlyErrors, int timeoutMs) { if (msgs.isEmpty()) { return false; } if (!msgs.hasErrorMessages() && onlyErrors) { return false; } diff --git a/src/blackgui/components/dbstashcomponent.h b/src/blackgui/components/dbstashcomponent.h index 9e15348b4..dd8805b6d 100644 --- a/src/blackgui/components/dbstashcomponent.h +++ b/src/blackgui/components/dbstashcomponent.h @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include @@ -185,7 +185,7 @@ namespace BlackGui bool showOverlayMessagesWithConfirmation( const BlackMisc::CStatusMessageList &msgs, bool appendOldMessages, const QString &confirmation, std::function okLambda, - int defaultButton, bool onlyErrors = false, int timeoutMs = -1); + QMessageBox::StandardButton defaultButton, bool onlyErrors = false, int timeoutMs = -1); //! Display message bool showOverlayMessage(const BlackMisc::CStatusMessage &msg, int timeoutMs = -1); diff --git a/src/blackgui/overlaymessages.cpp b/src/blackgui/overlaymessages.cpp index cb51441ca..2545878a3 100644 --- a/src/blackgui/overlaymessages.cpp +++ b/src/blackgui/overlaymessages.cpp @@ -53,10 +53,10 @@ namespace BlackGui { this->init(w, h); this->showKillButton(false); - connect(sGui, &CGuiApplication::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged); - connect(ui->pb_Ok, &QPushButton::clicked, this, &COverlayMessages::ps_okClicked); - connect(ui->pb_Cancel, &QPushButton::clicked, this, &COverlayMessages::ps_cancelClicked); - connect(ui->tb_Kill, &QPushButton::clicked, this, &COverlayMessages::ps_killClicked); + connect(sGui, &CGuiApplication::styleSheetsChanged, this, &COverlayMessages::onStyleSheetsChanged); + connect(ui->pb_Ok, &QPushButton::clicked, this, &COverlayMessages::onOkClicked); + connect(ui->pb_Cancel, &QPushButton::clicked, this, &COverlayMessages::onCancelClicked); + connect(ui->tb_Kill, &QPushButton::clicked, this, &COverlayMessages::onKillClicked); ui->tvp_StatusMessages->setResizeMode(CStatusMessageView::ResizingAlways); ui->tvp_StatusMessages->setForceColumnsToMaxSize(false); // problems with multiline entries, with T138 we need multiline messages @@ -89,25 +89,25 @@ namespace BlackGui ui->lbl_Header->setText(m_header.isEmpty() ? header : m_header); } - void COverlayMessages::ps_onStyleSheetsChanged() + void COverlayMessages::onStyleSheetsChanged() { - // stlye sheet + // stylesheet } - void COverlayMessages::ps_okClicked() + void COverlayMessages::onOkClicked() { m_lastConfirmation = QMessageBox::Ok; if (m_okLambda) { m_okLambda(); } this->close(); } - void COverlayMessages::ps_cancelClicked() + void COverlayMessages::onCancelClicked() { m_lastConfirmation = QMessageBox::Cancel; this->close(); } - void COverlayMessages::ps_killClicked() + void COverlayMessages::onKillClicked() { QMessageBox msgBox; msgBox.setText("Shutdown the application."); @@ -134,10 +134,10 @@ namespace BlackGui bool COverlayMessages::displayTextMessage(const CTextMessage &textMessage) const { - if (!sApp || sApp->isShuttingDown() || !sApp->getIContextOwnAircraft()) { return false; } + if (!sGui || sGui->isShuttingDown() || !sGui->getIContextOwnAircraft()) { return false; } const CTextMessageSettings s = m_messageSettings.getThreadLocal(); if (s.popup(textMessage)) { return true; } // fast check without needing own aircraft - const CSimulatedAircraft ownAircraft(sApp->getIContextOwnAircraft()->getOwnAircraft()); + const CSimulatedAircraft ownAircraft(sGui->getIContextOwnAircraft()->getOwnAircraft()); return s.popup(textMessage, ownAircraft); } @@ -147,7 +147,7 @@ namespace BlackGui void COverlayMessages::showOverlayMessages(const BlackMisc::CStatusMessageList &messages, bool appendOldMessages, int timeOutMs) { if (messages.isEmpty()) { return; } - if (!sApp || sApp->isShuttingDown()) { return; } + if (!sGui || sGui->isShuttingDown()) { return; } if (this->hasPendingConfirmation()) { // defer message @@ -180,7 +180,7 @@ namespace BlackGui void COverlayMessages::showOverlayMessage(const BlackMisc::CStatusMessage &message, int timeOutMs) { if (message.isEmpty()) { return; } - if (!sApp || sApp->isShuttingDown()) { return; } + if (!sGui || sGui->isShuttingDown()) { return; } if (this->hasPendingConfirmation()) { // defer message @@ -208,7 +208,7 @@ namespace BlackGui { if (textMessage.isEmpty()) { return; } if (!displayTextMessage(textMessage)) { return; } - if (!sApp || sApp->isShuttingDown()) { return; } + if (!sGui || sGui->isShuttingDown()) { return; } if (this->hasPendingConfirmation()) { @@ -351,7 +351,7 @@ namespace BlackGui } } - void COverlayMessages::showOverlayMessagesWithConfirmation(const CStatusMessageList &messages, bool appendOldMessages, const QString &confirmationMessage, std::function okLambda, int defaultButton, int timeOutMs) + void COverlayMessages::showOverlayMessagesWithConfirmation(const CStatusMessageList &messages, bool appendOldMessages, const QString &confirmationMessage, std::function okLambda, QMessageBox::StandardButton defaultButton, int timeOutMs) { if (this->hasPendingConfirmation()) { @@ -363,10 +363,10 @@ namespace BlackGui return; } this->setConfirmationMessage(confirmationMessage); + this->setDefaultConfirmationButton(defaultButton); this->showOverlayMessages(messages, appendOldMessages, timeOutMs); m_awaitingConfirmation = true; // needs to be after showOverlayMessages m_okLambda = okLambda; - this->setDefaultConfirmationButton(defaultButton); } void COverlayMessages::clearOverlayMessages() diff --git a/src/blackgui/overlaymessages.h b/src/blackgui/overlaymessages.h index 507881776..60542b87f 100644 --- a/src/blackgui/overlaymessages.h +++ b/src/blackgui/overlaymessages.h @@ -80,7 +80,7 @@ namespace BlackGui bool appendOldMessages, const QString &confirmationMessage, std::function okLambda, - int defaultButton = QMessageBox::Cancel, + QMessageBox::StandardButton defaultButton = QMessageBox::Cancel, int timeOutMs = -1); //! Clear the overlay messages @@ -130,19 +130,6 @@ namespace BlackGui //! \copydoc QFrame::keyPressEvent virtual void keyPressEvent(QKeyEvent *event) override; - private slots: - //! Stylesheet changed - void ps_onStyleSheetsChanged(); - - //! OK clicked (only when confirmation bar is active) - void ps_okClicked(); - - //! Cancel clicked (only when confirmation bar is active) - void ps_cancelClicked(); - - //! Kill clicked (only when errors) - void ps_killClicked(); - private: QScopedPointer ui; BlackMisc::CSettingReadOnly m_messageSettings { this }; @@ -154,6 +141,18 @@ namespace BlackGui QTimer m_autoCloseTimer { this }; QList> m_pendingMessageCalls; + //! Stylesheet changed + void onStyleSheetsChanged(); + + //! OK clicked (only when confirmation bar is active) + void onOkClicked(); + + //! Cancel clicked (only when confirmation bar is active) + void onCancelClicked(); + + //! Kill clicked (only when errors) + void onKillClicked(); + //! Init widget void init(int w, int h); diff --git a/src/blackgui/overlaymessages.ui b/src/blackgui/overlaymessages.ui index a46abde57..49f588c26 100644 --- a/src/blackgui/overlaymessages.ui +++ b/src/blackgui/overlaymessages.ui @@ -6,8 +6,8 @@ 0 0 - 400 - 300 + 487 + 337 @@ -34,12 +34,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 0 @@ -55,12 +49,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 10 @@ -229,14 +217,7 @@ 0 - - - QFrame::StyledPanel - - - QFrame::Raised - - + @@ -314,12 +295,6 @@ - - QFrame::StyledPanel - - - QFrame::Raised - 3 @@ -357,6 +332,19 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + diff --git a/src/blackgui/overlaymessagesframe.cpp b/src/blackgui/overlaymessagesframe.cpp index d21dcde21..f478f59ff 100644 --- a/src/blackgui/overlaymessagesframe.cpp +++ b/src/blackgui/overlaymessagesframe.cpp @@ -46,7 +46,10 @@ namespace BlackGui } } - void COverlayMessagesFrame::showOverlayMessagesWithConfirmation(const BlackMisc::CStatusMessageList &messages, bool appendOldMessages, const QString &confirmationMessage, std::function okLambda, int defaultButton, int timeOutMs) + void COverlayMessagesFrame::showOverlayMessagesWithConfirmation( + const BlackMisc::CStatusMessageList &messages, bool appendOldMessages, + const QString &confirmationMessage, std::function okLambda, + QMessageBox::StandardButton defaultButton, int timeOutMs) { if (messages.isEmpty()) { return; } this->initInnerFrame(); diff --git a/src/blackgui/overlaymessagesframe.h b/src/blackgui/overlaymessagesframe.h index a80b58544..de906b4ee 100644 --- a/src/blackgui/overlaymessagesframe.h +++ b/src/blackgui/overlaymessagesframe.h @@ -55,17 +55,13 @@ namespace BlackGui //! Show kill button void showKillButton(bool killButton); - //! Inner frame factors 0..1 - //! \remarks can also be restricted by maximumHeight() / maximumWidth() - void setInnerFrameFactor(double xFactor, double yFactor); - //! \copydoc COverlayMessages::showOverlayMessagesWithConfirmation void showOverlayMessagesWithConfirmation( const BlackMisc::CStatusMessageList &messages, bool appendOldMessages, const QString &confirmationMessage, std::function okLambda, - int defaultButton = QMessageBox::Cancel, + QMessageBox::StandardButton defaultButton = QMessageBox::Cancel, int timeOutMs = -1 ); diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp index fde433897..b3c1b7dd6 100644 --- a/src/blackgui/views/viewbase.cpp +++ b/src/blackgui/views/viewbase.cpp @@ -317,14 +317,12 @@ namespace BlackGui void CViewBaseNonTemplate::settingsChanged() { - if (this->allowsMultipleSelectedRows()) + if (!this->allowsMultipleSelectedRows()) { return; } + const CGeneralGuiSettings settings = m_guiSettings.getThreadLocal(); + m_originalSelectionMode = settings.getPreferredSelection(); + if (this->isCurrentlyAllowingMultipleRowSelections()) { - const CGeneralGuiSettings settings = m_guiSettings.getThreadLocal(); - m_originalSelectionMode = settings.getPreferredSelection(); - if (this->isCurrentlyAllowingMultipleRowSelections()) - { - this->setSelectionMode(settings.getPreferredSelection()); - } + this->setSelectionMode(settings.getPreferredSelection()); } } @@ -793,10 +791,7 @@ namespace BlackGui void CViewBaseNonTemplate::ps_setSingleSelection() { - if (this->allowsMultipleSelectedRows()) - { - this->setSelectionMode(SingleSelection); - } + this->setSelectionMode(SingleSelection); } void CViewBaseNonTemplate::ps_setExtendedSelection()