From 70f9420da54032207f7938f9a5c48d0fc629401c Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 10 Jul 2019 17:28:51 +0200 Subject: [PATCH] Allow to reset/disable overlay messages with one click --- .../settingstextmessageinlinecomponent.cpp | 45 ++++++++++++++++--- .../settingstextmessageinlinecomponent.h | 6 +++ .../settingstextmessageinlinecomponent.ui | 44 +++++++++++++++++- src/blackgui/settings/textmessagesettings.cpp | 10 +++++ src/blackgui/settings/textmessagesettings.h | 3 ++ 5 files changed, 101 insertions(+), 7 deletions(-) diff --git a/src/blackgui/components/settingstextmessageinlinecomponent.cpp b/src/blackgui/components/settingstextmessageinlinecomponent.cpp index d2fec937c..07dbe65da 100644 --- a/src/blackgui/components/settingstextmessageinlinecomponent.cpp +++ b/src/blackgui/components/settingstextmessageinlinecomponent.cpp @@ -11,6 +11,11 @@ #include "settingstextmessageinlinecomponent.h" #include "ui_settingstextmessageinlinecomponent.h" +#include +#include +#include +#include + using namespace BlackGui::Settings; using namespace BlackMisc; @@ -23,11 +28,14 @@ namespace BlackGui ui(new Ui::CSettingsTextMessageInlineComponent) { ui->setupUi(this); - connect(ui->cb_All, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); - connect(ui->cb_Frequency, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); - connect(ui->cb_Private, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); - connect(ui->cb_Supervisor, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); - connect(ui->cb_Focus, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->cb_All, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->cb_Frequency, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->cb_Private, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->cb_Supervisor, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->cb_Focus, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + connect(ui->pb_Disable, &QPushButton::released, this, &CSettingsTextMessageInlineComponent::disableAllOverlayMessages); + connect(ui->pb_Reset, &QPushButton::released, this, &CSettingsTextMessageInlineComponent::resetOverlayMessages); + this->settingsChanged(); } @@ -57,5 +65,32 @@ namespace BlackGui const CStatusMessage m = m_settings.setAndSave(s); CLogMessage::preformatted(m); } + + void CSettingsTextMessageInlineComponent::disableAllOverlayMessages() + { + CTextMessageSettings s(m_settings.get()); + s.disableAllPopups(); + const CStatusMessage m = m_settings.setAndSave(s); + CLogMessage::preformatted(m); + + QPointer myself(this); + QTimer::singleShot(500, this, [ = ] + { + if (myself) { myself->settingsChanged(); } + }); + } + + void CSettingsTextMessageInlineComponent::resetOverlayMessages() + { + CTextMessageSettings s; + const CStatusMessage m = m_settings.setAndSave(s); + CLogMessage::preformatted(m); + + QPointer myself(this); + QTimer::singleShot(500, this, [ = ] + { + if (myself) { myself->settingsChanged(); } + }); + } } // ns } // ns diff --git a/src/blackgui/components/settingstextmessageinlinecomponent.h b/src/blackgui/components/settingstextmessageinlinecomponent.h index 193f42a3e..d888ecd8a 100644 --- a/src/blackgui/components/settingstextmessageinlinecomponent.h +++ b/src/blackgui/components/settingstextmessageinlinecomponent.h @@ -42,6 +42,12 @@ namespace BlackGui //! Change the settings void changeSettings(); + //! Disable all overlay messages + void disableAllOverlayMessages(); + + //! Reset all overlay messages + void resetOverlayMessages(); + QScopedPointer ui; BlackMisc::CSetting m_settings { this, &CSettingsTextMessageInlineComponent::settingsChanged }; //!< settings changed }; diff --git a/src/blackgui/components/settingstextmessageinlinecomponent.ui b/src/blackgui/components/settingstextmessageinlinecomponent.ui index b4561aa5d..929808c5f 100644 --- a/src/blackgui/components/settingstextmessageinlinecomponent.ui +++ b/src/blackgui/components/settingstextmessageinlinecomponent.ui @@ -6,8 +6,8 @@ 0 0 - 283 - 45 + 293 + 46 @@ -79,11 +79,49 @@ + + all messages as overlay + all + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + disable all overlay message + + + disable + + + + + + + reset + + + + + + @@ -91,6 +129,8 @@ cb_Supervisor cb_Selcal cb_Frequency + pb_Disable + pb_Reset cb_All cb_Focus diff --git a/src/blackgui/settings/textmessagesettings.cpp b/src/blackgui/settings/textmessagesettings.cpp index 7ec7cfa28..063fbd4db 100644 --- a/src/blackgui/settings/textmessagesettings.cpp +++ b/src/blackgui/settings/textmessagesettings.cpp @@ -41,6 +41,16 @@ namespace BlackGui return this->getPopupAllMessages() || m_popupSelcalMessages; } + void CTextMessageSettings::disableAllPopups() + { + m_popupPrivateMessages = false; + m_popupSupervisorMessages = false; + m_popupFrequencyMessages = false; + m_popupAllMessages = false; + m_popupSelcalMessages = false; + m_focus = false; + } + bool CTextMessageSettings::popup(const CTextMessage &textMessage) const { if (this->getPopupAllMessages()) { return true; } diff --git a/src/blackgui/settings/textmessagesettings.h b/src/blackgui/settings/textmessagesettings.h index 30193f679..c6dd73d10 100644 --- a/src/blackgui/settings/textmessagesettings.h +++ b/src/blackgui/settings/textmessagesettings.h @@ -86,6 +86,9 @@ namespace BlackGui //! SELCAL messages? void setPopupSelcalMessages(bool popup) { m_popupSelcalMessages = popup; } + //! Entirely disable + void disableAllPopups(); + //! Popup the given message? Quick check without frequency checks. bool popup(const BlackMisc::Network::CTextMessage &textMessage) const;