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(