diff --git a/src/blackgui/components/settingstextmessageinlinecomponent.cpp b/src/blackgui/components/settingstextmessageinlinecomponent.cpp index 2bee77e2c..d2fec937c 100644 --- a/src/blackgui/components/settingstextmessageinlinecomponent.cpp +++ b/src/blackgui/components/settingstextmessageinlinecomponent.cpp @@ -23,11 +23,12 @@ 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_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); - settingsChanged(); + connect(ui->cb_Focus, &QCheckBox::released, this, &CSettingsTextMessageInlineComponent::changeSettings); + this->settingsChanged(); } CSettingsTextMessageInlineComponent::~CSettingsTextMessageInlineComponent() @@ -41,6 +42,7 @@ namespace BlackGui ui->cb_Frequency->setChecked(s.getPopupFrequencyMessages()); ui->cb_Private->setChecked(s.getPopupPrivateMessages()); ui->cb_Selcal->setChecked(s.getPopupSelcalMessages()); + ui->cb_Focus->setChecked(s.focusOverlayWindow()); } void CSettingsTextMessageInlineComponent::changeSettings() @@ -51,6 +53,7 @@ namespace BlackGui s.setPopupPrivateMessages(ui->cb_Private->isChecked()); s.setSupervisorMessages(ui->cb_Supervisor->isChecked()); s.setPopupSelcalMessages(ui->cb_Selcal->isChecked()); + s.setFocusOverlayWindows(ui->cb_Focus->isChecked()); const CStatusMessage m = m_settings.setAndSave(s); CLogMessage::preformatted(m); } diff --git a/src/blackgui/components/settingstextmessageinlinecomponent.ui b/src/blackgui/components/settingstextmessageinlinecomponent.ui index 363163332..b4561aa5d 100644 --- a/src/blackgui/components/settingstextmessageinlinecomponent.ui +++ b/src/blackgui/components/settingstextmessageinlinecomponent.ui @@ -6,14 +6,14 @@ 0 0 - 266 - 23 + 283 + 45 - Frame + Overlay message settings - + 3 @@ -26,7 +26,7 @@ 3 - + Overlay @@ -36,41 +36,48 @@ - + + + + supervisor + + + supervisor + + + + private - - - - supervisor - - - super. - - - - + SELCAL - + frequency - freq. + frequency - + + + + focus + + + + all @@ -79,6 +86,14 @@ + + cb_Private + cb_Supervisor + cb_Selcal + cb_Frequency + cb_All + cb_Focus + diff --git a/src/blackgui/components/textmessagecomponent.cpp b/src/blackgui/components/textmessagecomponent.cpp index f5f58186a..ab63c0f7e 100644 --- a/src/blackgui/components/textmessagecomponent.cpp +++ b/src/blackgui/components/textmessagecomponent.cpp @@ -843,6 +843,8 @@ namespace BlackGui void CTextMessageComponent::focusTextEntry() { if (!ui->lep_TextMessages->isVisible()) { return; } + const CTextMessageSettings s = m_messageSettings.get(); + if (m_usedAsOverlayWidget && !s.focusOverlayWindow()) { return; } ui->lep_TextMessages->setFocus(); } diff --git a/src/blackgui/settings/textmessagesettings.cpp b/src/blackgui/settings/textmessagesettings.cpp index 1949ce2e1..7ec7cfa28 100644 --- a/src/blackgui/settings/textmessagesettings.cpp +++ b/src/blackgui/settings/textmessagesettings.cpp @@ -64,11 +64,12 @@ namespace BlackGui QString CTextMessageSettings::convertToQString(bool i18n) const { Q_UNUSED(i18n); - return QStringLiteral("Private: %1 supervisor: %2 frequency: %3 all: %4").arg( + return QStringLiteral("Private: %1 supervisor: %2 frequency: %3 all: %4 focus: %5").arg( boolToOnOff(this->getPopupPrivateMessages()), boolToOnOff(this->getPopupSupervisorMessages()), boolToOnOff(this->getPopupFrequencyMessages()), - boolToOnOff(this->getPopupAllMessages()) + boolToOnOff(this->getPopupAllMessages()), + boolToYesNo(this->focusOverlayWindow()) ); } @@ -78,12 +79,13 @@ namespace BlackGui const ColumnIndex i = index.frontCasted(); switch (i) { - case IndexPopupAllMessages: return CVariant::fromValue(this->getPopupAllMessages()); - case IndexPopupFrequencyMessages: return CVariant::fromValue(this->popupFrequencyMessages()); - case IndexPopupPrivateMessages: return CVariant::fromValue(this->popupPrivateMessages()); + case IndexPopupAllMessages: return CVariant::fromValue(this->getPopupAllMessages()); + case IndexPopupFrequencyMessages: return CVariant::fromValue(this->popupFrequencyMessages()); + case IndexPopupPrivateMessages: return CVariant::fromValue(this->popupPrivateMessages()); case IndexPopupSupervisorMessages: return CVariant::fromValue(this->popupSupervisorMessages()); - case IndexPopupSelcalMessages: return CVariant::fromValue(this->popupSelcalMessages()); + case IndexPopupSelcalMessages: return CVariant::fromValue(this->popupSelcalMessages()); case IndexStyle: return CVariant::fromValue(this->getStyleSheet()); + case IndexFocus: return CVariant::fromValue(this->focusOverlayWindow()); default: return CValueObject::propertyByIndex(index); } } @@ -94,11 +96,12 @@ namespace BlackGui const ColumnIndex i = index.frontCasted(); switch (i) { - case IndexPopupAllMessages: this->setPopupAllMessages(variant.toBool()); break; - case IndexPopupFrequencyMessages: this->setPopupFrequencyMessages(variant.toBool()); break; - case IndexPopupSupervisorMessages: this->setSupervisorMessages(variant.toBool()); break; - case IndexPopupPrivateMessages: this->setPopupPrivateMessages(variant.toBool()); break; - case IndexPopupSelcalMessages: this->setPopupSelcalMessages(variant.toBool()); break; + case IndexPopupAllMessages: this->setPopupAllMessages(variant.toBool()); break; + case IndexPopupFrequencyMessages: this->setPopupFrequencyMessages(variant.toBool()); break; + case IndexPopupSupervisorMessages: this->setSupervisorMessages(variant.toBool()); break; + case IndexPopupPrivateMessages: this->setPopupPrivateMessages(variant.toBool()); break; + case IndexPopupSelcalMessages: this->setPopupSelcalMessages(variant.toBool()); break; + case IndexFocus: this->setFocusOverlayWindows(variant.toBool()); break; case IndexStyle: this->setStyleSheet(variant.toQString()); break; default: CValueObject::setPropertyByIndex(index, variant); break; } diff --git a/src/blackgui/settings/textmessagesettings.h b/src/blackgui/settings/textmessagesettings.h index e0dfd6d30..30193f679 100644 --- a/src/blackgui/settings/textmessagesettings.h +++ b/src/blackgui/settings/textmessagesettings.h @@ -37,6 +37,7 @@ namespace BlackGui IndexPopupFrequencyMessages, IndexPopupAllMessages, IndexPopupSelcalMessages, + IndexFocus, IndexStyle }; @@ -97,6 +98,12 @@ namespace BlackGui //! CSS style sheet void setStyleSheet(const QString &styleSheet) { m_styleSheet = styleSheet; } + //! Focus in the overlay window + bool focusOverlayWindow() const { return m_focus; } + + //! Set focus in overlay window + void setFocusOverlayWindows(bool focus) { m_focus = focus; } + //! Reset style sheet void resetStyleSheet() { m_styleSheet.clear(); } @@ -115,6 +122,7 @@ namespace BlackGui bool m_popupFrequencyMessages = false; //!< show if tuned in bool m_popupAllMessages = false; bool m_popupSelcalMessages = true; + bool m_focus = true; QString m_styleSheet; BLACK_METACLASS(