From c286635e7664183b6ab7d3332d6e243304d77159 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sat, 3 Feb 2018 20:30:04 +0100 Subject: [PATCH] Further CRawFsdMessageComponent UI improvements * Replace CheckBox with Pushbutton and Statusbar to enable/disable * Add Clear button to clear all messages in display and buffer * Keep all widgets always enabled ref T240 --- .../components/rawfsdmessagescomponent.cpp | 53 ++++++++---- .../components/rawfsdmessagescomponent.h | 3 +- .../components/rawfsdmessagescomponent.ui | 86 ++++++++++++++----- 3 files changed, 104 insertions(+), 38 deletions(-) diff --git a/src/blackgui/components/rawfsdmessagescomponent.cpp b/src/blackgui/components/rawfsdmessagescomponent.cpp index 91e20865c..e15520687 100644 --- a/src/blackgui/components/rawfsdmessagescomponent.cpp +++ b/src/blackgui/components/rawfsdmessagescomponent.cpp @@ -55,9 +55,11 @@ namespace BlackGui connect(ui->le_FilterText, &QLineEdit::returnPressed, this, &CRawFsdMessagesComponent::changeStringFilter); connect(ui->cb_FilterPacketType, &QComboBox::currentTextChanged, this, &CRawFsdMessagesComponent::changePacketTypeFilter); connect(ui->gb_Filter, &QGroupBox::toggled, this, &CRawFsdMessagesComponent::expandFilters); - connect(ui->gb_WriteToFile , &QGroupBox::toggled, this, &CRawFsdMessagesComponent::expandWritingToFile); + connect(ui->gb_WriteToFile, &QGroupBox::toggled, this, &CRawFsdMessagesComponent::expandWritingToFile); connect(ui->pb_SelectFileDir, &QPushButton::clicked, this, &CRawFsdMessagesComponent::selectFileDir); connect(ui->le_MaxDisplayedMessages, &QLineEdit::returnPressed, this, &CRawFsdMessagesComponent::changeMaxDisplayedMessages); + connect(ui->pb_EnableDisable, &QPushButton::clicked, this, &CRawFsdMessagesComponent::enableDisableRawFsdMessages); + connect(ui->pb_ClearMessages, &QPushButton::clicked, this, &CRawFsdMessagesComponent::clearAllMessages); QValidator *validator = new QIntValidator(10, 200, this); ui->le_MaxDisplayedMessages->setValidator(validator); @@ -76,17 +78,25 @@ namespace BlackGui readSettings(); // Connect them after settings are read. Otherwise they get called. connect(ui->cb_FileWritingMode, QOverload::of(&QComboBox::currentIndexChanged), this, &CRawFsdMessagesComponent::changeFileWritingMode); - connect(ui->cb_EnableRawFsdMessages, &QCheckBox::toggled, this, &CRawFsdMessagesComponent::enableRawFsdMessages); } - void CRawFsdMessagesComponent::enableRawFsdMessages(bool enable) + void CRawFsdMessagesComponent::enableDisableRawFsdMessages() { - ui->cb_FilterPacketType->setEnabled(enable); - ui->le_FilterText->setEnabled(enable); - ui->le_MaxDisplayedMessages->setEnabled(enable); - ui->le_FileDir->setEnabled(enable); - ui->pb_SelectFileDir->setEnabled(enable); - ui->cb_FileWritingMode->setEnabled(enable); + bool enable; + if (ui->pb_EnableDisable->text() == "Enable") + { + enable = true; + ui->pb_EnableDisable->setText("Disable"); + ui->lbl_EnabledDisabled->setText("Enabled (Display + File)"); + ui->lbl_EnabledDisabled->setStyleSheet("background: green;"); + } + else + { + enable = false; + ui->pb_EnableDisable->setText("Enable"); + ui->lbl_EnabledDisabled->setText("Disabled (Display + File)"); + ui->lbl_EnabledDisabled->setStyleSheet("background: darkred;"); + } m_setting.setProperty(Vatsim::CRawFsdMessageSettings::IndexRawFsdMessagesEnabled, CVariant::fromValue(enable)); } @@ -197,18 +207,29 @@ namespace BlackGui ui->pte_RawFsdMessages->appendPlainText(rawFsdMessageToString(rawFsdMessage)); } + void CRawFsdMessagesComponent::clearAllMessages() + { + ui->pte_RawFsdMessages->clear(); + m_buffer.clear(); + } + void CRawFsdMessagesComponent::readSettings() { const Vatsim::CRawFsdMessageSettings setting = m_setting.get(); const bool enable = setting.areRawFsdMessagesEnabled(); - ui->cb_EnableRawFsdMessages->setChecked(enable); - ui->cb_FilterPacketType->setEnabled(enable); - ui->le_FilterText->setEnabled(enable); - ui->le_MaxDisplayedMessages->setEnabled(enable); - ui->le_FileDir->setEnabled(enable); + if (enable) + { + ui->pb_EnableDisable->setText("Disable"); + ui->lbl_EnabledDisabled->setText("Enabled (Display + File)"); + ui->lbl_EnabledDisabled->setStyleSheet("background: green;"); + } + else + { + ui->pb_EnableDisable->setText("Enable"); + ui->lbl_EnabledDisabled->setText("Disabled (Display + File)"); + ui->lbl_EnabledDisabled->setStyleSheet("background: darkred;"); + } ui->le_FileDir->setText(setting.getFileDir()); - ui->pb_SelectFileDir->setEnabled(enable); - ui->cb_FileWritingMode->setEnabled(enable); const CRawFsdMessageSettings::FileWriteMode mode = setting.getFileWriteMode(); ui->cb_FileWritingMode->setCurrentIndex(static_cast(mode)); } diff --git a/src/blackgui/components/rawfsdmessagescomponent.h b/src/blackgui/components/rawfsdmessagescomponent.h index a50cd4534..5f1d11660 100644 --- a/src/blackgui/components/rawfsdmessagescomponent.h +++ b/src/blackgui/components/rawfsdmessagescomponent.h @@ -38,7 +38,7 @@ namespace BlackGui private: void setupConnections(); - void enableRawFsdMessages(bool enable); + void enableDisableRawFsdMessages(); void expandFilters(bool expand); void expandWritingToFile(bool expand); void changeStringFilter(); @@ -48,6 +48,7 @@ namespace BlackGui void selectFileDir(); void changeFileWritingMode(); void addFsdMessage(const BlackMisc::Network::CRawFsdMessage &rawFsdMessage); + void clearAllMessages(); void readSettings(); static QString rawFsdMessageToString(const BlackMisc::Network::CRawFsdMessage &rawFsdMessage); diff --git a/src/blackgui/components/rawfsdmessagescomponent.ui b/src/blackgui/components/rawfsdmessagescomponent.ui index e47c5c384..3c8d4c242 100644 --- a/src/blackgui/components/rawfsdmessagescomponent.ui +++ b/src/blackgui/components/rawfsdmessagescomponent.ui @@ -22,7 +22,7 @@ 0 - + 0 @@ -35,27 +35,43 @@ 0 - - + + + + + 0 + 0 + + + + + 75 + true + + + + Disabled + + + Qt::AlignCenter + + + + + Enable - - - - QPlainTextEdit::NoWrap - - - true - - - 100 + + + + Clear - + Filter @@ -72,6 +88,9 @@ + + true + Text: @@ -80,7 +99,7 @@ - false + true <html><head/><body><p>Packet Type Filter</p></body></html> @@ -90,7 +109,7 @@ - false + true <html><head/><body><p>Text Filter</p></body></html> @@ -102,6 +121,9 @@ + + true + Type: @@ -110,7 +132,7 @@ - false + true Maximum No. of lines displayed @@ -122,6 +144,9 @@ + + true + Max Displayed Messages: @@ -130,7 +155,20 @@ - + + + + QPlainTextEdit::NoWrap + + + true + + + 100 + + + + Write to File @@ -144,6 +182,9 @@ + + true + Directory: @@ -151,6 +192,9 @@ + + true + Write Mode @@ -159,7 +203,7 @@ - false + true @@ -172,7 +216,7 @@ - false + true Set @@ -185,7 +229,7 @@ - false + true