gui: Replace "Hide tray icon" option with positive "Show tray icon" one

This change makes easier both (1) using this option, and (2) reasoning
about the code.
This commit is contained in:
Hennadii Stepanov
2020-10-25 00:34:41 +03:00
parent d67883d01e
commit 17174f8328
7 changed files with 35 additions and 35 deletions

View File

@ -615,10 +615,10 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel, interfaces::BlockAndH
OptionsModel* optionsModel = _clientModel->getOptionsModel();
if (optionsModel && trayIcon) {
// be aware of the tray icon disable state change reported by the OptionsModel object.
connect(optionsModel, &OptionsModel::hideTrayIconChanged, this, &BitcoinGUI::setTrayIconVisible);
connect(optionsModel, &OptionsModel::showTrayIconChanged, this, &BitcoinGUI::setTrayIconVisible);
// initialize the disable state of the tray icon with the current value in the model.
setTrayIconVisible(optionsModel->getHideTrayIcon());
setTrayIconVisible(optionsModel->getShowTrayIcon());
}
} else {
// Disable possibility to show main window via action
@ -1387,11 +1387,10 @@ void BitcoinGUI::showProgress(const QString &title, int nProgress)
}
}
void BitcoinGUI::setTrayIconVisible(bool fHideTrayIcon)
void BitcoinGUI::setTrayIconVisible(bool show_tray_con)
{
if (trayIcon)
{
trayIcon->setVisible(!fHideTrayIcon);
if (trayIcon) {
trayIcon->setVisible(show_tray_con);
}
}

View File

@ -317,7 +317,7 @@ public Q_SLOTS:
/** Show progress dialog e.g. for verifychain */
void showProgress(const QString &title, int nProgress);
/** When hideTrayIcon setting is changed in OptionsModel hide or show the icon accordingly. */
/** When showTrayIcon setting is changed in OptionsModel show or hide the icon accordingly. */
void setTrayIconVisible(bool);
void showModalOverlay();

View File

@ -568,12 +568,15 @@
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_Window">
<item>
<widget class="QCheckBox" name="hideTrayIcon">
<widget class="QCheckBox" name="showTrayIcon">
<property name="toolTip">
<string>Hide the icon from the system tray.</string>
<string>Show the icon in the system tray.</string>
</property>
<property name="text">
<string>&amp;Hide tray icon</string>
<string>&amp;Show tray icon</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>

View File

@ -130,8 +130,8 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
connect(ui->proxyPortTor, &QLineEdit::textChanged, this, &OptionsDialog::updateProxyValidationState);
if (!QSystemTrayIcon::isSystemTrayAvailable()) {
ui->hideTrayIcon->setChecked(true);
ui->hideTrayIcon->setEnabled(false);
ui->showTrayIcon->setChecked(false);
ui->showTrayIcon->setEnabled(false);
ui->minimizeToTray->setChecked(false);
ui->minimizeToTray->setEnabled(false);
}
@ -227,7 +227,7 @@ void OptionsDialog::setMapper()
/* Window */
#ifndef Q_OS_MAC
if (QSystemTrayIcon::isSystemTrayAvailable()) {
mapper->addMapping(ui->hideTrayIcon, OptionsModel::HideTrayIcon);
mapper->addMapping(ui->showTrayIcon, OptionsModel::ShowTrayIcon);
mapper->addMapping(ui->minimizeToTray, OptionsModel::MinimizeToTray);
}
mapper->addMapping(ui->minimizeOnClose, OptionsModel::MinimizeOnClose);
@ -286,17 +286,14 @@ void OptionsDialog::on_cancelButton_clicked()
reject();
}
void OptionsDialog::on_hideTrayIcon_stateChanged(int fState)
void OptionsDialog::on_showTrayIcon_stateChanged(int state)
{
if(fState)
{
if (state == Qt::Checked) {
ui->minimizeToTray->setEnabled(true);
} else {
ui->minimizeToTray->setChecked(false);
ui->minimizeToTray->setEnabled(false);
}
else
{
ui->minimizeToTray->setEnabled(true);
}
}
void OptionsDialog::togglePruneWarning(bool enabled)

View File

@ -57,7 +57,7 @@ private Q_SLOTS:
void on_okButton_clicked();
void on_cancelButton_clicked();
void on_hideTrayIcon_stateChanged(int fState);
void on_showTrayIcon_stateChanged(int state);
void togglePruneWarning(bool enabled);
void showRestartWarning(bool fPersistent = false);

View File

@ -54,14 +54,15 @@ void OptionsModel::Init(bool resetSettings)
// These are Qt-only settings:
// Window
if (!settings.contains("fHideTrayIcon"))
if (!settings.contains("fHideTrayIcon")) {
settings.setValue("fHideTrayIcon", false);
fHideTrayIcon = settings.value("fHideTrayIcon").toBool();
Q_EMIT hideTrayIconChanged(fHideTrayIcon);
}
m_show_tray_icon = !settings.value("fHideTrayIcon").toBool();
Q_EMIT showTrayIconChanged(m_show_tray_icon);
if (!settings.contains("fMinimizeToTray"))
settings.setValue("fMinimizeToTray", false);
fMinimizeToTray = settings.value("fMinimizeToTray").toBool() && !fHideTrayIcon;
fMinimizeToTray = settings.value("fMinimizeToTray").toBool() && m_show_tray_icon;
if (!settings.contains("fMinimizeOnClose"))
settings.setValue("fMinimizeOnClose", false);
@ -272,8 +273,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
{
case StartAtStartup:
return GUIUtil::GetStartOnSystemStartup();
case HideTrayIcon:
return fHideTrayIcon;
case ShowTrayIcon:
return m_show_tray_icon;
case MinimizeToTray:
return fMinimizeToTray;
case MapPortUPnP:
@ -342,10 +343,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
case StartAtStartup:
successful = GUIUtil::SetStartOnSystemStartup(value.toBool());
break;
case HideTrayIcon:
fHideTrayIcon = value.toBool();
settings.setValue("fHideTrayIcon", fHideTrayIcon);
Q_EMIT hideTrayIconChanged(fHideTrayIcon);
case ShowTrayIcon:
m_show_tray_icon = value.toBool();
settings.setValue("fHideTrayIcon", !m_show_tray_icon);
Q_EMIT showTrayIconChanged(m_show_tray_icon);
break;
case MinimizeToTray:
fMinimizeToTray = value.toBool();

View File

@ -45,7 +45,7 @@ public:
enum OptionID {
StartAtStartup, // bool
HideTrayIcon, // bool
ShowTrayIcon, // bool
MinimizeToTray, // bool
MapPortUPnP, // bool
MinimizeOnClose, // bool
@ -78,7 +78,7 @@ public:
void setDisplayUnit(const QVariant &value);
/* Explicit getters */
bool getHideTrayIcon() const { return fHideTrayIcon; }
bool getShowTrayIcon() const { return m_show_tray_icon; }
bool getMinimizeToTray() const { return fMinimizeToTray; }
bool getMinimizeOnClose() const { return fMinimizeOnClose; }
int getDisplayUnit() const { return nDisplayUnit; }
@ -100,7 +100,7 @@ public:
private:
interfaces::Node* m_node = nullptr;
/* Qt-only settings */
bool fHideTrayIcon;
bool m_show_tray_icon;
bool fMinimizeToTray;
bool fMinimizeOnClose;
QString language;
@ -118,7 +118,7 @@ private:
Q_SIGNALS:
void displayUnitChanged(int unit);
void coinControlFeaturesChanged(bool);
void hideTrayIconChanged(bool);
void showTrayIconChanged(bool);
};
#endif // BITCOIN_QT_OPTIONSMODEL_H