From 8637ad5fcb46137b6bae11929ee44256e2d41be5 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 14 Aug 2021 11:36:37 +0200 Subject: [PATCH 1/5] UI: allow setting custom tray icon color Fixes #425 Fixes #232 Connected: https://github.com/Nitrokey/nitrokey-app/issues/369 --- src/GUI/graphicstools.cpp | 5 +++- src/ui/mainwindow.cpp | 3 +++ src/ui/mainwindow.ui | 50 ++++++++++++++++++++++++++++++++------- 3 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/GUI/graphicstools.cpp b/src/GUI/graphicstools.cpp index 4ee48f6f..a2fb40f2 100644 --- a/src/GUI/graphicstools.cpp +++ b/src/GUI/graphicstools.cpp @@ -7,6 +7,7 @@ #include #include #include +#include bool test_if_gnome(){ #ifdef Q_OS_LINUX @@ -26,7 +27,9 @@ QPixmap GraphicsTools::loadColorize(const QString& path, bool loadForTray, bool QColor text_color; if (mainTrayIcon){ - text_color.setRgb(255, 0, 0); + QSettings settings; + auto color = settings.value("main/tray_icon_color", "#FF0000").toString(); + text_color.setNamedColor(color); } else { text_color = QGuiApplication::palette().color(QPalette::WindowText); } diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 2b8f0074..a39e8c13 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -107,6 +107,8 @@ void MainWindow::load_settings_page(){ emit ui->cb_debug_enabled->toggled(settings_debug_enabled); ui->spin_PWS_time->setValue(settings.value("clipboard/PWS_time", 60).toInt()); ui->spin_OTP_time->setValue(settings.value("clipboard/OTP_time", 120).toInt()); + ui->trayIconColorEdit->setText(settings.value("main/tray_icon_color", "#FF0000").toString()); + ui->cb_device_connection_message->setChecked(settings.value("main/connection_message", true).toBool()); ui->cb_show_main_window_on_connection->setChecked(settings.value("main/show_main_on_connection", true).toBool()); ui->cb_hide_main_window_on_connection->setChecked(settings.value("main/close_main_on_connection", false).toBool()); @@ -1875,6 +1877,7 @@ void MainWindow::on_btn_writeSettings_clicked() settings.setValue("main/close_main_on_connection", ui->cb_hide_main_window_on_connection->isChecked()); settings.setValue("main/hide_on_close", ui->cb_hide_main_window_on_close->isChecked()); settings.setValue("main/show_on_start", ui->cb_show_window_on_start->isChecked()); + settings.setValue("main/tray_icon_color", ui->trayIconColorEdit->text()); settings.setValue("storage/check_symlink", ui->cb_check_symlink->isChecked()); diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 632a086f..21aa225e 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -1331,14 +1331,48 @@ - - - Show main window when device connects - - - true - - + + + + + + + Tray icon color: + + + + + + + + 0 + 0 + + + + #FF0000 + + + 7 + + + #FF0000 + + + + + + + + + Show main window when device connects + + + true + + + + From cdf155a9acd4de7dec9bb1abfbbf5bda5d315284 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 14 Aug 2021 11:36:56 +0200 Subject: [PATCH 2/5] UI: allow setting custom tray icon color (tab stops) --- src/ui/mainwindow.ui | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 21aa225e..b077e397 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -1642,22 +1642,22 @@ 0 0 932 - 27 + 29 - btn_dial_PWS - btn_dial_EV - btn_dial_HV - btn_dial_lock - btn_dial_help - btn_dial_quit - totpRadioButton - hotpRadioButton - slotComboBox + cb_first_run_message + cb_show_window_on_start + cb_hide_main_window_on_close + cb_hide_main_window_on_connection + trayIconColorEdit + cb_show_main_window_on_connection + cb_check_symlink + cb_device_connection_message + combo_languages nameEdit eraseButton base32RadioButton @@ -1686,14 +1686,13 @@ PWS_Lock PWS_ButtonClose PWS_ButtonSaveSlot - cb_first_run_message - cb_show_window_on_start - cb_check_symlink - cb_device_connection_message - cb_show_main_window_on_connection - cb_hide_main_window_on_connection - cb_hide_main_window_on_close - combo_languages + btn_dial_PWS + btn_dial_EV + totpRadioButton + hotpRadioButton + btn_dial_lock + btn_dial_HV + slotComboBox cb_debug_enabled edit_debug_file_path btn_select_debug_console @@ -1709,6 +1708,8 @@ secret_key_generated_len randomSecretButton btn_copyToClipboard + btn_dial_quit + btn_dial_help From 18de4af6cda6e2dd0770e75e212d48c967445fa5 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 14 Aug 2021 11:49:49 +0200 Subject: [PATCH 3/5] UI: request app restart on tray icon change --- src/ui/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index a39e8c13..8d822e5a 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -1877,6 +1877,8 @@ void MainWindow::on_btn_writeSettings_clicked() settings.setValue("main/close_main_on_connection", ui->cb_hide_main_window_on_connection->isChecked()); settings.setValue("main/hide_on_close", ui->cb_hide_main_window_on_close->isChecked()); settings.setValue("main/show_on_start", ui->cb_show_window_on_start->isChecked()); + + restart_required |= ui->trayIconColorEdit->text() != settings.value("main/tray_icon_color").toString(); settings.setValue("main/tray_icon_color", ui->trayIconColorEdit->text()); settings.setValue("storage/check_symlink", ui->cb_check_symlink->isChecked()); From 950e522010ed556314d93cbf73ea84aa34a0bfc5 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 14 Aug 2021 12:02:50 +0200 Subject: [PATCH 4/5] UI: add color selector for tray icon --- src/ui/mainwindow.cpp | 10 ++++++++++ src/ui/mainwindow.h | 2 ++ src/ui/mainwindow.ui | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 8d822e5a..1eb08163 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -1936,3 +1936,13 @@ void MainWindow::on_hotpRadioButton_clicked(bool checked) if (checked) ui->slotComboBox->setCurrentIndex(TOTP_SlotCount + 1); } + +void MainWindow::on_btn_trayColorChange_clicked() +{ + QColorDialog d; + d.setCurrentColor(ui->trayIconColorEdit->text()); + auto res = d.exec(); + if (res == QDialog::Accepted) { + ui->trayIconColorEdit->setText(d.currentColor().name()); + } +} diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index e6515a0e..cb55cac7 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -201,6 +201,8 @@ private slots: void on_hotpRadioButton_clicked(bool checked); + void on_btn_trayColorChange_clicked(); + public: void generateOTPConfig(OTPSlot *slot); unsigned int get_supported_secret_length_base32() const; diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index b077e397..ed9aa32e 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -1341,6 +1341,13 @@ + + + + Change color + + + From 7ff77a721eec900b9384762bc3d4737a8f57e289 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Sat, 14 Aug 2021 12:03:03 +0200 Subject: [PATCH 5/5] UI: add color selector for tray icon (translations) --- i18n/nitrokey_arabic.ts | 8 ++++++++ i18n/nitrokey_de_DE.ts | 8 ++++++++ i18n/nitrokey_en.ts | 8 ++++++++ i18n/nitrokey_fr.ts | 8 ++++++++ i18n/nitrokey_it.ts | 8 ++++++++ i18n/nitrokey_pl.ts | 8 ++++++++ 6 files changed, 48 insertions(+) diff --git a/i18n/nitrokey_arabic.ts b/i18n/nitrokey_arabic.ts index a58f8fdb..63b8c11a 100644 --- a/i18n/nitrokey_arabic.ts +++ b/i18n/nitrokey_arabic.ts @@ -1079,6 +1079,14 @@ Select "Initialize device" option from context menu. Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog diff --git a/i18n/nitrokey_de_DE.ts b/i18n/nitrokey_de_DE.ts index bc0e4c43..bed879a6 100644 --- a/i18n/nitrokey_de_DE.ts +++ b/i18n/nitrokey_de_DE.ts @@ -1088,6 +1088,14 @@ Wählen Sie im Kontextmenü "Gerät initialisieren". Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog diff --git a/i18n/nitrokey_en.ts b/i18n/nitrokey_en.ts index 6dc7ffe1..7c12912d 100644 --- a/i18n/nitrokey_en.ts +++ b/i18n/nitrokey_en.ts @@ -1021,6 +1021,14 @@ Select "Initialize device" option from context menu. Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog diff --git a/i18n/nitrokey_fr.ts b/i18n/nitrokey_fr.ts index f889d706..2c7e5a8b 100644 --- a/i18n/nitrokey_fr.ts +++ b/i18n/nitrokey_fr.ts @@ -1079,6 +1079,14 @@ Veuillez sélectionner l'option "Initialiser la clef" dans le men Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog diff --git a/i18n/nitrokey_it.ts b/i18n/nitrokey_it.ts index 5c838078..c74e25b4 100644 --- a/i18n/nitrokey_it.ts +++ b/i18n/nitrokey_it.ts @@ -1099,6 +1099,14 @@ Seleziona l'opzione "Inizializza dispositivo" dal menu contestual Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog diff --git a/i18n/nitrokey_pl.ts b/i18n/nitrokey_pl.ts index fe8351ee..fe1bb46c 100644 --- a/i18n/nitrokey_pl.ts +++ b/i18n/nitrokey_pl.ts @@ -1107,6 +1107,14 @@ wybierz "Zainicjalizuj urządzenie" z menu kontekstowego.Would you like to revert the changes? + + Tray icon color: + + + + Change color + + PinDialog