refactor: Allow for colorful tray icon but fall back to symbolic with fallback
This commit is contained in:
parent
eee4efd59d
commit
14fa29505d
6 changed files with 61 additions and 3 deletions
|
|
@ -115,8 +115,8 @@ QVariant Settings::defaultValue(const QString &key)
|
|||
}
|
||||
|
||||
if ((key == Core::UseHooks) || (key == Gui::CloseToTray) || (key == Gui::LogExpanded) ||
|
||||
(key == Gui::CloseReminder) || (key == Security::TlsEnabled) || (key == Security::CheckPeers) ||
|
||||
(key == Client::LanguageSync) || (key == Gui::ShowGenericClientFailureDialog)) {
|
||||
(key == Gui::SymbolicTrayIcon) || (key == Gui::CloseReminder) || (key == Security::TlsEnabled) ||
|
||||
(key == Security::CheckPeers) || (key == Client::LanguageSync) || (key == Gui::ShowGenericClientFailureDialog)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ public:
|
|||
inline static const auto CloseReminder = QStringLiteral("gui/closeReminder");
|
||||
inline static const auto CloseToTray = QStringLiteral("gui/closeToTray");
|
||||
inline static const auto LogExpanded = QStringLiteral("gui/logExpanded");
|
||||
inline static const auto SymbolicTrayIcon = QStringLiteral("gui/symbolicTrayIcon");
|
||||
inline static const auto WindowGeometry = QStringLiteral("gui/windowGeometry");
|
||||
inline static const auto ShowGenericClientFailureDialog = QStringLiteral("gui/showGenericClientFailureDialog");
|
||||
};
|
||||
|
|
@ -189,6 +190,7 @@ private:
|
|||
, Settings::Gui::CloseReminder
|
||||
, Settings::Gui::CloseToTray
|
||||
, Settings::Gui::LogExpanded
|
||||
, Settings::Gui::SymbolicTrayIcon
|
||||
, Settings::Gui::WindowGeometry
|
||||
, Settings::Gui::ShowGenericClientFailureDialog
|
||||
, Settings::Security::Certificate
|
||||
|
|
|
|||
|
|
@ -753,8 +753,16 @@ void MainWindow::saveSettings() const
|
|||
|
||||
void MainWindow::setTrayIcon()
|
||||
{
|
||||
static const auto themeIcon = QStringLiteral("%1-symbolic").arg(kRevFqdnName);
|
||||
static const auto fallbackPath = QStringLiteral(":/icons/%1-%2/apps/64/%3");
|
||||
|
||||
QString themeIcon = kRevFqdnName;
|
||||
if (!Settings::value(Settings::Gui::SymbolicTrayIcon).toBool()) {
|
||||
m_trayIcon->setIcon(QIcon(fallbackPath.arg(kAppId, QStringLiteral("dark"), themeIcon)));
|
||||
return;
|
||||
}
|
||||
|
||||
themeIcon.append(QStringLiteral("-symbolic"));
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
QSettings settings(
|
||||
QStringLiteral("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"),
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ SettingsDialog::SettingsDialog(QWidget *parent, const IServerConfig &serverConfi
|
|||
ui->comboTlsKeyLength->setItemIcon(1, QIcon::fromTheme(QIcon::ThemeIcon::SecurityHigh));
|
||||
ui->lblTlsCertInfo->setFixedSize(28, 28);
|
||||
|
||||
ui->rbIconMono->setIcon(QIcon::fromTheme(QStringLiteral("%1-symbolic").arg(kRevFqdnName)));
|
||||
ui->rbIconColorful->setIcon(QIcon::fromTheme(kRevFqdnName));
|
||||
|
||||
// force the first tab, since qt creator sets the active tab as the last one
|
||||
// the developer was looking at, and it's easy to accidentally save that.
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
|
|
@ -170,6 +173,7 @@ void SettingsDialog::accept()
|
|||
Settings::setValue(Settings::Client::LanguageSync, ui->cbLanguageSync->isChecked());
|
||||
Settings::setValue(Settings::Client::InvertScrollDirection, ui->cbScrollDirection->isChecked());
|
||||
Settings::setValue(Settings::Gui::CloseToTray, ui->cbCloseToTray->isChecked());
|
||||
Settings::setValue(Settings::Gui::SymbolicTrayIcon, ui->rbIconMono->isChecked());
|
||||
Settings::setValue(Settings::Security::CheckPeers, ui->cbRequireClientCert->isChecked());
|
||||
Settings::setValue(Settings::Client::ScrollSpeed, ui->sbScrollSpeed->value());
|
||||
Settings::setValue(Settings::Core::Language, ui->comboLanguage->currentText());
|
||||
|
|
@ -207,6 +211,11 @@ void SettingsDialog::loadFromConfig()
|
|||
ui->groupService->setVisible(false);
|
||||
#endif
|
||||
|
||||
if (Settings::value(Settings::Gui::SymbolicTrayIcon).toBool())
|
||||
ui->rbIconMono->setChecked(true);
|
||||
else
|
||||
ui->rbIconColorful->setChecked(true);
|
||||
|
||||
ui->lblDebugWarning->setVisible(Settings::value(Settings::Log::Level).toInt() > 4);
|
||||
|
||||
qDebug() << "load from config done";
|
||||
|
|
|
|||
|
|
@ -132,6 +132,31 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QLabel" name="lblTrayIconStyle">
|
||||
<property name="text">
|
||||
<string>Tray icon style</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbIconColorful">
|
||||
<property name="text">
|
||||
<string>Colorful</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbIconMono">
|
||||
<property name="text">
|
||||
<string>Monocolor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -668,6 +693,8 @@
|
|||
<tabstop>cbScrollDirection</tabstop>
|
||||
<tabstop>cbAutoUpdate</tabstop>
|
||||
<tabstop>cbCloseToTray</tabstop>
|
||||
<tabstop>rbIconColorful</tabstop>
|
||||
<tabstop>rbIconMono</tabstop>
|
||||
<tabstop>groupSecurity</tabstop>
|
||||
<tabstop>lineTlsCertPath</tabstop>
|
||||
<tabstop>btnTlsCertPath</tabstop>
|
||||
|
|
|
|||
|
|
@ -1079,6 +1079,18 @@ Al habilitar esta opción, se deshabilitará la interfaz gráfica de usuario (GU
|
|||
<source>Leave app running in notification area when the window is closed</source>
|
||||
<translation type="unfinished">Dejar la aplicación ejecutándose en el área de notificación cuando la ventana esté cerrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tray icon style</source>
|
||||
<translation type="unfinished">Estilo de icono de bandeja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Colorful</source>
|
||||
<translation type="unfinished">Vistoso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monocolor</source>
|
||||
<translation type="unfinished">Monocolor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable TLS Encryption</source>
|
||||
<translation type="unfinished">Habilitar el cifrado TLS</translation>
|
||||
|
|
|
|||
Loading…
Reference in a new issue