From eddb71cd941ecceab1a5419f8cbaca48aca84aba Mon Sep 17 00:00:00 2001 From: Kyle Boyle Date: Tue, 29 Apr 2025 10:58:22 -0300 Subject: [PATCH 1/4] Replaces icon references with themed reference to enable icon set changes defined for light & dark --- QLog.pro | 2 +- core/main.cpp | 2 + models/LogbookModel.cpp | 2 +- res/icons.qrc | 64 +++++++ res/icons/alert.svg | 1 - res/icons/baseline-pause-24px.svg | 1 - res/icons/baseline-play_arrow-24px.svg | 1 - res/icons/baseline-play_back-24px.svg | 1 - res/icons/baseline-play_down-24px.svg | 2 - res/icons/baseline-play_up-24px.svg | 1 - res/icons/baseline-search-24px.svg | 1 - res/icons/cancel-24px.svg | 1 - res/icons/check_circle-24px.svg | 1 - res/icons/clear-button.svg | 3 - res/icons/close-24px.svg | 1 - res/icons/cloud_download-24px.svg | 1 - res/icons/cloud_upload-24px.svg | 1 - res/icons/dark/index.theme | 17 ++ res/icons/dark/svg/alert-active.svg | 3 + res/icons/dark/svg/alert.svg | 3 + res/icons/dark/svg/arrow-undo.svg | 1 + res/icons/dark/svg/baseline-play_arrow.svg | 1 + res/icons/dark/svg/baseline-play_back.svg | 1 + res/icons/dark/svg/baseline-play_down.svg | 2 + res/icons/dark/svg/baseline-play_up.svg | 1 + res/icons/dark/svg/baseline-search.svg | 3 + res/icons/dark/svg/cancel.svg | 1 + res/icons/dark/svg/clear-button.svg | 3 + res/icons/dark/svg/close.svg | 1 + res/icons/dark/svg/cloud_download.svg | 1 + res/icons/dark/svg/cloud_upload.svg | 1 + res/icons/dark/svg/download.svg | 1 + res/icons/dark/svg/filter_list.svg | 1 + res/icons/dark/svg/light-dark.svg | 1 + res/icons/dark/svg/menu.svg | 1 + res/icons/dark/svg/password.svg | 3 + res/icons/dark/svg/search-globe.svg | 10 ++ res/icons/dark/svg/search-globe_green.svg | 10 ++ res/icons/dark/svg/search-globe_orange.svg | 10 ++ res/icons/dark/svg/search-globe_red.svg | 10 ++ res/icons/dark/svg/zoom_in.svg | 1 + res/icons/dark/svg/zoom_out.svg | 1 + res/icons/delete-button.svg | 19 -- res/icons/filter_list-24px.svg | 1 - res/icons/help-24px.svg | 1 - res/icons/icons.qrc | 39 ----- res/icons/info-24px.svg | 1 - res/icons/light-dark-24px.svg | 1 - res/icons/light/index.theme | 15 ++ res/icons/light/svg/alert-active.svg | 3 + res/icons/light/svg/alert.svg | 3 + res/icons/light/svg/arrow-undo.svg | 1 + res/icons/light/svg/baseline-play_arrow.svg | 1 + res/icons/light/svg/baseline-play_back.svg | 1 + res/icons/light/svg/baseline-play_down.svg | 2 + res/icons/light/svg/baseline-play_up.svg | 1 + res/icons/light/svg/baseline-search.svg | 3 + res/icons/light/svg/baseline-stop.svg | 1 + res/icons/light/svg/cancel.svg | 1 + res/icons/light/svg/clear-button.svg | 3 + res/icons/light/svg/close.svg | 1 + res/icons/light/svg/cloud_download.svg | 1 + res/icons/light/svg/cloud_upload.svg | 1 + res/icons/light/svg/connect.svg | 47 +++++ res/icons/light/svg/disconnect.svg | 49 ++++++ res/icons/light/svg/done.svg | 1 + res/icons/light/svg/download.svg | 1 + res/icons/light/svg/filter_list.svg | 1 + res/icons/light/svg/light-dark.svg | 1 + res/icons/light/svg/menu.svg | 1 + res/icons/light/svg/new-window.svg | 3 + res/icons/light/svg/password.svg | 3 + res/icons/light/svg/search-globe.svg | 10 ++ res/icons/light/svg/search-globe_green.svg | 10 ++ res/icons/light/svg/search-globe_orange.svg | 10 ++ res/icons/light/svg/search-globe_red.svg | 10 ++ res/icons/light/svg/zoom_in.svg | 1 + res/icons/light/svg/zoom_out.svg | 1 + res/icons/loading.gif | Bin 1925 -> 0 bytes res/icons/menu.svg | 1 - res/icons/password.png | Bin 792 -> 0 bytes res/icons/search-globe.svg | 10 -- res/icons/search-globe_green.svg | 10 -- res/icons/search-globe_orange.svg | 10 -- res/icons/search-globe_red.svg | 10 -- res/icons/skip_next-24px.svg | 1 - res/icons/skip_previous-24px.svg | 1 - res/icons/warning.svg | 8 - res/icons/zoom_in-24px.svg | 1 - res/icons/zoom_out-24px.svg | 1 - ui/ActivityEditor.ui | 63 +++---- ui/BandmapWidget.ui | 74 ++++---- ui/DxWidget.cpp | 2 +- ui/DxWidget.ui | 113 ++++++------ ui/LogbookWidget.ui | 15 +- ui/MainWindow.cpp | 16 +- ui/MainWindow.h | 2 +- ui/MainWindow.ui | 6 +- ui/NewContactWidget.cpp | 14 +- ui/NewContactWidget.ui | 183 ++++++++++---------- ui/QSODetailDialog.cpp | 11 +- ui/QSODetailDialog.ui | 148 ++++++++-------- 102 files changed, 647 insertions(+), 476 deletions(-) create mode 100644 res/icons.qrc delete mode 100644 res/icons/alert.svg delete mode 100644 res/icons/baseline-pause-24px.svg delete mode 100644 res/icons/baseline-play_arrow-24px.svg delete mode 100644 res/icons/baseline-play_back-24px.svg delete mode 100644 res/icons/baseline-play_down-24px.svg delete mode 100644 res/icons/baseline-play_up-24px.svg delete mode 100644 res/icons/baseline-search-24px.svg delete mode 100644 res/icons/cancel-24px.svg delete mode 100644 res/icons/check_circle-24px.svg delete mode 100644 res/icons/clear-button.svg delete mode 100644 res/icons/close-24px.svg delete mode 100644 res/icons/cloud_download-24px.svg delete mode 100644 res/icons/cloud_upload-24px.svg create mode 100644 res/icons/dark/index.theme create mode 100644 res/icons/dark/svg/alert-active.svg create mode 100644 res/icons/dark/svg/alert.svg create mode 100644 res/icons/dark/svg/arrow-undo.svg create mode 100644 res/icons/dark/svg/baseline-play_arrow.svg create mode 100644 res/icons/dark/svg/baseline-play_back.svg create mode 100644 res/icons/dark/svg/baseline-play_down.svg create mode 100644 res/icons/dark/svg/baseline-play_up.svg create mode 100644 res/icons/dark/svg/baseline-search.svg create mode 100644 res/icons/dark/svg/cancel.svg create mode 100644 res/icons/dark/svg/clear-button.svg create mode 100644 res/icons/dark/svg/close.svg create mode 100644 res/icons/dark/svg/cloud_download.svg create mode 100644 res/icons/dark/svg/cloud_upload.svg create mode 100644 res/icons/dark/svg/download.svg create mode 100644 res/icons/dark/svg/filter_list.svg create mode 100644 res/icons/dark/svg/light-dark.svg create mode 100644 res/icons/dark/svg/menu.svg create mode 100644 res/icons/dark/svg/password.svg create mode 100644 res/icons/dark/svg/search-globe.svg create mode 100644 res/icons/dark/svg/search-globe_green.svg create mode 100644 res/icons/dark/svg/search-globe_orange.svg create mode 100644 res/icons/dark/svg/search-globe_red.svg create mode 100644 res/icons/dark/svg/zoom_in.svg create mode 100644 res/icons/dark/svg/zoom_out.svg delete mode 100644 res/icons/delete-button.svg delete mode 100644 res/icons/filter_list-24px.svg delete mode 100644 res/icons/help-24px.svg delete mode 100644 res/icons/icons.qrc delete mode 100644 res/icons/info-24px.svg delete mode 100644 res/icons/light-dark-24px.svg create mode 100644 res/icons/light/index.theme create mode 100644 res/icons/light/svg/alert-active.svg create mode 100644 res/icons/light/svg/alert.svg create mode 100644 res/icons/light/svg/arrow-undo.svg create mode 100644 res/icons/light/svg/baseline-play_arrow.svg create mode 100644 res/icons/light/svg/baseline-play_back.svg create mode 100644 res/icons/light/svg/baseline-play_down.svg create mode 100644 res/icons/light/svg/baseline-play_up.svg create mode 100644 res/icons/light/svg/baseline-search.svg create mode 100644 res/icons/light/svg/baseline-stop.svg create mode 100644 res/icons/light/svg/cancel.svg create mode 100644 res/icons/light/svg/clear-button.svg create mode 100644 res/icons/light/svg/close.svg create mode 100644 res/icons/light/svg/cloud_download.svg create mode 100644 res/icons/light/svg/cloud_upload.svg create mode 100644 res/icons/light/svg/connect.svg create mode 100644 res/icons/light/svg/disconnect.svg create mode 100644 res/icons/light/svg/done.svg create mode 100644 res/icons/light/svg/download.svg create mode 100644 res/icons/light/svg/filter_list.svg create mode 100644 res/icons/light/svg/light-dark.svg create mode 100644 res/icons/light/svg/menu.svg create mode 100644 res/icons/light/svg/new-window.svg create mode 100644 res/icons/light/svg/password.svg create mode 100644 res/icons/light/svg/search-globe.svg create mode 100644 res/icons/light/svg/search-globe_green.svg create mode 100644 res/icons/light/svg/search-globe_orange.svg create mode 100644 res/icons/light/svg/search-globe_red.svg create mode 100644 res/icons/light/svg/zoom_in.svg create mode 100644 res/icons/light/svg/zoom_out.svg delete mode 100644 res/icons/loading.gif delete mode 100644 res/icons/menu.svg delete mode 100644 res/icons/password.png delete mode 100644 res/icons/search-globe.svg delete mode 100644 res/icons/search-globe_green.svg delete mode 100644 res/icons/search-globe_orange.svg delete mode 100644 res/icons/search-globe_red.svg delete mode 100644 res/icons/skip_next-24px.svg delete mode 100644 res/icons/skip_previous-24px.svg delete mode 100644 res/icons/warning.svg delete mode 100644 res/icons/zoom_in-24px.svg delete mode 100644 res/icons/zoom_out-24px.svg diff --git a/QLog.pro b/QLog.pro index b8b3e3f0..08681461 100644 --- a/QLog.pro +++ b/QLog.pro @@ -365,7 +365,7 @@ FORMS += \ RESOURCES += \ i18n/i18n.qrc \ res/flags/flags.qrc \ - res/icons/icons.qrc \ + res/icons.qrc \ res/res.qrc OTHER_FILES += \ diff --git a/core/main.cpp b/core/main.cpp index 9acf9af9..6e10e0c1 100644 --- a/core/main.cpp +++ b/core/main.cpp @@ -531,6 +531,8 @@ int main(int argc, char* argv[]) splash.showMessage(QObject::tr("Starting Application"), Qt::AlignBottom|Qt::AlignCenter); + QIcon::setThemeName("light"); + startRigThread(); startRotThread(); startCWKeyerThread(); diff --git a/models/LogbookModel.cpp b/models/LogbookModel.cpp index 0392560d..894ab217 100644 --- a/models/LogbookModel.cpp +++ b/models/LogbookModel.cpp @@ -37,7 +37,7 @@ QVariant LogbookModel::data(const QModelIndex &index, int role) const { QVariant value = QSqlTableModel::data(index, Qt::DisplayRole); if (value.toString() == "Y") { - return QIcon(":/icons/done-24px.svg"); + return QIcon::fromTheme("done"); } // else { // return QIcon(":/icons/close-24px.svg"); diff --git a/res/icons.qrc b/res/icons.qrc new file mode 100644 index 00000000..82a90385 --- /dev/null +++ b/res/icons.qrc @@ -0,0 +1,64 @@ + + + icons/light/svg/alert.svg + icons/light/svg/baseline-play_arrow.svg + icons/light/svg/baseline-play_back.svg + icons/light/svg/baseline-play_down.svg + icons/light/svg/baseline-play_up.svg + icons/light/svg/baseline-search.svg + icons/light/svg/baseline-stop.svg + icons/light/svg/clear-button.svg + icons/light/svg/close.svg + icons/light/svg/cloud_download.svg + icons/light/svg/cloud_upload.svg + icons/light/svg/connect.svg + icons/light/svg/disconnect.svg + icons/light/svg/done.svg + icons/light/svg/filter_list.svg + icons/light/svg/light-dark.svg + icons/light/svg/menu.svg + icons/light/svg/new-window.svg + icons/light/svg/password.svg + icons/light/svg/search-globe_green.svg + icons/light/svg/search-globe_orange.svg + icons/light/svg/search-globe_red.svg + icons/light/svg/search-globe.svg + icons/light/svg/zoom_in.svg + icons/light/svg/zoom_out.svg + icons/light/index.theme + icons/light/svg/alert-active.svg + icons/light/svg/arrow-undo.svg + icons/light/svg/download.svg + icons/light/svg/cancel.svg + icons/dark/svg/alert-active.svg + icons/dark/svg/zoom_out.svg + icons/dark/svg/done.svg + icons/dark/svg/download.svg + icons/dark/svg/filter_list.svg + icons/dark/svg/light-dark.svg + icons/dark/svg/menu.svg + icons/dark/svg/new-window.svg + icons/dark/svg/password.svg + icons/dark/svg/search-globe_green.svg + icons/dark/svg/search-globe_orange.svg + icons/dark/svg/search-globe_red.svg + icons/dark/svg/search-globe.svg + icons/dark/svg/zoom_in.svg + icons/dark/svg/alert.svg + icons/dark/svg/arrow-undo.svg + icons/dark/svg/baseline-play_arrow.svg + icons/dark/svg/baseline-play_back.svg + icons/dark/svg/baseline-play_down.svg + icons/dark/svg/baseline-play_up.svg + icons/dark/svg/baseline-search.svg + icons/dark/svg/baseline-stop.svg + icons/dark/svg/cancel.svg + icons/dark/svg/clear-button.svg + icons/dark/svg/close.svg + icons/dark/svg/cloud_download.svg + icons/dark/svg/cloud_upload.svg + icons/dark/svg/connect.svg + icons/dark/svg/disconnect.svg + icons/dark/index.theme + + diff --git a/res/icons/alert.svg b/res/icons/alert.svg deleted file mode 100644 index 932801bf..00000000 --- a/res/icons/alert.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/baseline-pause-24px.svg b/res/icons/baseline-pause-24px.svg deleted file mode 100644 index fdfea831..00000000 --- a/res/icons/baseline-pause-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/baseline-play_arrow-24px.svg b/res/icons/baseline-play_arrow-24px.svg deleted file mode 100644 index 6342e4a4..00000000 --- a/res/icons/baseline-play_arrow-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/baseline-play_back-24px.svg b/res/icons/baseline-play_back-24px.svg deleted file mode 100644 index d07d24d7..00000000 --- a/res/icons/baseline-play_back-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/baseline-play_down-24px.svg b/res/icons/baseline-play_down-24px.svg deleted file mode 100644 index 72546821..00000000 --- a/res/icons/baseline-play_down-24px.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/res/icons/baseline-play_up-24px.svg b/res/icons/baseline-play_up-24px.svg deleted file mode 100644 index 7810c474..00000000 --- a/res/icons/baseline-play_up-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/baseline-search-24px.svg b/res/icons/baseline-search-24px.svg deleted file mode 100644 index 95ab4532..00000000 --- a/res/icons/baseline-search-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/cancel-24px.svg b/res/icons/cancel-24px.svg deleted file mode 100644 index c5a6ca0a..00000000 --- a/res/icons/cancel-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/check_circle-24px.svg b/res/icons/check_circle-24px.svg deleted file mode 100644 index 58953304..00000000 --- a/res/icons/check_circle-24px.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/icons/clear-button.svg b/res/icons/clear-button.svg deleted file mode 100644 index a4532c03..00000000 --- a/res/icons/clear-button.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/icons/close-24px.svg b/res/icons/close-24px.svg deleted file mode 100644 index 64e4cbf7..00000000 --- a/res/icons/close-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/cloud_download-24px.svg b/res/icons/cloud_download-24px.svg deleted file mode 100644 index 359766ee..00000000 --- a/res/icons/cloud_download-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/cloud_upload-24px.svg b/res/icons/cloud_upload-24px.svg deleted file mode 100644 index 7a9c7cdb..00000000 --- a/res/icons/cloud_upload-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/dark/index.theme b/res/icons/dark/index.theme new file mode 100644 index 00000000..3ae473db --- /dev/null +++ b/res/icons/dark/index.theme @@ -0,0 +1,17 @@ +[Icon Theme] +Name=dark +Comment=dark theme icons + +#PanelDefault=22 +#PanelSizes=22 + +#https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html + +Directories=svg + +[svg] +Size=24 +Context=Applications +MinSize=16 +MaxSize=512 +Type=Scalable diff --git a/res/icons/dark/svg/alert-active.svg b/res/icons/dark/svg/alert-active.svg new file mode 100644 index 00000000..c994de73 --- /dev/null +++ b/res/icons/dark/svg/alert-active.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/dark/svg/alert.svg b/res/icons/dark/svg/alert.svg new file mode 100644 index 00000000..220dc3e9 --- /dev/null +++ b/res/icons/dark/svg/alert.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/dark/svg/arrow-undo.svg b/res/icons/dark/svg/arrow-undo.svg new file mode 100644 index 00000000..2428c776 --- /dev/null +++ b/res/icons/dark/svg/arrow-undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/dark/svg/baseline-play_arrow.svg b/res/icons/dark/svg/baseline-play_arrow.svg new file mode 100644 index 00000000..9ab1fe8e --- /dev/null +++ b/res/icons/dark/svg/baseline-play_arrow.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/baseline-play_back.svg b/res/icons/dark/svg/baseline-play_back.svg new file mode 100644 index 00000000..9e450894 --- /dev/null +++ b/res/icons/dark/svg/baseline-play_back.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/baseline-play_down.svg b/res/icons/dark/svg/baseline-play_down.svg new file mode 100644 index 00000000..37a967b3 --- /dev/null +++ b/res/icons/dark/svg/baseline-play_down.svg @@ -0,0 +1,2 @@ + + diff --git a/res/icons/dark/svg/baseline-play_up.svg b/res/icons/dark/svg/baseline-play_up.svg new file mode 100644 index 00000000..c8c8ebec --- /dev/null +++ b/res/icons/dark/svg/baseline-play_up.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/baseline-search.svg b/res/icons/dark/svg/baseline-search.svg new file mode 100644 index 00000000..cdd37ae1 --- /dev/null +++ b/res/icons/dark/svg/baseline-search.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/dark/svg/cancel.svg b/res/icons/dark/svg/cancel.svg new file mode 100644 index 00000000..f33985a2 --- /dev/null +++ b/res/icons/dark/svg/cancel.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/clear-button.svg b/res/icons/dark/svg/clear-button.svg new file mode 100644 index 00000000..2312ff0f --- /dev/null +++ b/res/icons/dark/svg/clear-button.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/dark/svg/close.svg b/res/icons/dark/svg/close.svg new file mode 100644 index 00000000..c6a48f94 --- /dev/null +++ b/res/icons/dark/svg/close.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/cloud_download.svg b/res/icons/dark/svg/cloud_download.svg new file mode 100644 index 00000000..2f8b05fd --- /dev/null +++ b/res/icons/dark/svg/cloud_download.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/cloud_upload.svg b/res/icons/dark/svg/cloud_upload.svg new file mode 100644 index 00000000..d716c229 --- /dev/null +++ b/res/icons/dark/svg/cloud_upload.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/download.svg b/res/icons/dark/svg/download.svg new file mode 100644 index 00000000..878e779e --- /dev/null +++ b/res/icons/dark/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/dark/svg/filter_list.svg b/res/icons/dark/svg/filter_list.svg new file mode 100644 index 00000000..1498a651 --- /dev/null +++ b/res/icons/dark/svg/filter_list.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/light-dark.svg b/res/icons/dark/svg/light-dark.svg new file mode 100644 index 00000000..5f59cf79 --- /dev/null +++ b/res/icons/dark/svg/light-dark.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/menu.svg b/res/icons/dark/svg/menu.svg new file mode 100644 index 00000000..c4538d21 --- /dev/null +++ b/res/icons/dark/svg/menu.svg @@ -0,0 +1 @@ + diff --git a/res/icons/dark/svg/password.svg b/res/icons/dark/svg/password.svg new file mode 100644 index 00000000..61f5724b --- /dev/null +++ b/res/icons/dark/svg/password.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/dark/svg/search-globe.svg b/res/icons/dark/svg/search-globe.svg new file mode 100644 index 00000000..f6d81e76 --- /dev/null +++ b/res/icons/dark/svg/search-globe.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/dark/svg/search-globe_green.svg b/res/icons/dark/svg/search-globe_green.svg new file mode 100644 index 00000000..385ec5bd --- /dev/null +++ b/res/icons/dark/svg/search-globe_green.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/dark/svg/search-globe_orange.svg b/res/icons/dark/svg/search-globe_orange.svg new file mode 100644 index 00000000..f258673b --- /dev/null +++ b/res/icons/dark/svg/search-globe_orange.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/dark/svg/search-globe_red.svg b/res/icons/dark/svg/search-globe_red.svg new file mode 100644 index 00000000..94960203 --- /dev/null +++ b/res/icons/dark/svg/search-globe_red.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/dark/svg/zoom_in.svg b/res/icons/dark/svg/zoom_in.svg new file mode 100644 index 00000000..59dd0464 --- /dev/null +++ b/res/icons/dark/svg/zoom_in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/dark/svg/zoom_out.svg b/res/icons/dark/svg/zoom_out.svg new file mode 100644 index 00000000..d9a95bef --- /dev/null +++ b/res/icons/dark/svg/zoom_out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/delete-button.svg b/res/icons/delete-button.svg deleted file mode 100644 index 68a25441..00000000 --- a/res/icons/delete-button.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - diff --git a/res/icons/filter_list-24px.svg b/res/icons/filter_list-24px.svg deleted file mode 100644 index c536f1a8..00000000 --- a/res/icons/filter_list-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/help-24px.svg b/res/icons/help-24px.svg deleted file mode 100644 index 88cb2ef4..00000000 --- a/res/icons/help-24px.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/icons/icons.qrc b/res/icons/icons.qrc deleted file mode 100644 index 046a6b9c..00000000 --- a/res/icons/icons.qrc +++ /dev/null @@ -1,39 +0,0 @@ - - - baseline-play_arrow-24px.svg - baseline-pause-24px.svg - baseline-search-24px.svg - baseline-stop-24px.svg - skip_next-24px.svg - skip_previous-24px.svg - cloud_upload-24px.svg - cloud_download-24px.svg - filter_list-24px.svg - zoom_out-24px.svg - zoom_in-24px.svg - done-24px.svg - check_circle-24px.svg - help-24px.svg - cancel-24px.svg - info-24px.svg - close-24px.svg - light-dark-24px.svg - alert.svg - connect.svg - disconnect.svg - warning.svg - loading.gif - baseline-play_back-24px.svg - baseline-play_down-24px.svg - baseline-play_up-24px.svg - password.png - menu.svg - search-globe.svg - search-globe_red.svg - search-globe_green.svg - search-globe_orange.svg - delete-button.svg - new-window.svg - clear-button.svg - - diff --git a/res/icons/info-24px.svg b/res/icons/info-24px.svg deleted file mode 100644 index f8aba4cd..00000000 --- a/res/icons/info-24px.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/icons/light-dark-24px.svg b/res/icons/light-dark-24px.svg deleted file mode 100644 index 43c9e6bc..00000000 --- a/res/icons/light-dark-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/light/index.theme b/res/icons/light/index.theme new file mode 100644 index 00000000..dea47c1f --- /dev/null +++ b/res/icons/light/index.theme @@ -0,0 +1,15 @@ +[Icon Theme] +Name=light +Comment=light theme icons + +#PanelDefault=22 +#PanelSizes=22 + +Directories=svg + +[svg] +Size=24 +Context=Applications +MinSize=16 +MaxSize=512 +Type=Scalable diff --git a/res/icons/light/svg/alert-active.svg b/res/icons/light/svg/alert-active.svg new file mode 100644 index 00000000..19b9b838 --- /dev/null +++ b/res/icons/light/svg/alert-active.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/alert.svg b/res/icons/light/svg/alert.svg new file mode 100644 index 00000000..96d47ae6 --- /dev/null +++ b/res/icons/light/svg/alert.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/arrow-undo.svg b/res/icons/light/svg/arrow-undo.svg new file mode 100644 index 00000000..da1d4fcc --- /dev/null +++ b/res/icons/light/svg/arrow-undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/light/svg/baseline-play_arrow.svg b/res/icons/light/svg/baseline-play_arrow.svg new file mode 100644 index 00000000..d37b2ae7 --- /dev/null +++ b/res/icons/light/svg/baseline-play_arrow.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/baseline-play_back.svg b/res/icons/light/svg/baseline-play_back.svg new file mode 100644 index 00000000..2479ae3a --- /dev/null +++ b/res/icons/light/svg/baseline-play_back.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/baseline-play_down.svg b/res/icons/light/svg/baseline-play_down.svg new file mode 100644 index 00000000..1c21b80c --- /dev/null +++ b/res/icons/light/svg/baseline-play_down.svg @@ -0,0 +1,2 @@ + + diff --git a/res/icons/light/svg/baseline-play_up.svg b/res/icons/light/svg/baseline-play_up.svg new file mode 100644 index 00000000..a5b1adca --- /dev/null +++ b/res/icons/light/svg/baseline-play_up.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/baseline-search.svg b/res/icons/light/svg/baseline-search.svg new file mode 100644 index 00000000..4fd20f34 --- /dev/null +++ b/res/icons/light/svg/baseline-search.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/baseline-stop.svg b/res/icons/light/svg/baseline-stop.svg new file mode 100644 index 00000000..34046c54 --- /dev/null +++ b/res/icons/light/svg/baseline-stop.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/cancel.svg b/res/icons/light/svg/cancel.svg new file mode 100644 index 00000000..e9c84562 --- /dev/null +++ b/res/icons/light/svg/cancel.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/clear-button.svg b/res/icons/light/svg/clear-button.svg new file mode 100644 index 00000000..5b88b77e --- /dev/null +++ b/res/icons/light/svg/clear-button.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/close.svg b/res/icons/light/svg/close.svg new file mode 100644 index 00000000..2d7dac51 --- /dev/null +++ b/res/icons/light/svg/close.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/cloud_download.svg b/res/icons/light/svg/cloud_download.svg new file mode 100644 index 00000000..347e3577 --- /dev/null +++ b/res/icons/light/svg/cloud_download.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/cloud_upload.svg b/res/icons/light/svg/cloud_upload.svg new file mode 100644 index 00000000..91d0742a --- /dev/null +++ b/res/icons/light/svg/cloud_upload.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/connect.svg b/res/icons/light/svg/connect.svg new file mode 100644 index 00000000..0809edba --- /dev/null +++ b/res/icons/light/svg/connect.svg @@ -0,0 +1,47 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/res/icons/light/svg/disconnect.svg b/res/icons/light/svg/disconnect.svg new file mode 100644 index 00000000..f93bac53 --- /dev/null +++ b/res/icons/light/svg/disconnect.svg @@ -0,0 +1,49 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/res/icons/light/svg/done.svg b/res/icons/light/svg/done.svg new file mode 100644 index 00000000..e372a14b --- /dev/null +++ b/res/icons/light/svg/done.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/download.svg b/res/icons/light/svg/download.svg new file mode 100644 index 00000000..12d0e22b --- /dev/null +++ b/res/icons/light/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/light/svg/filter_list.svg b/res/icons/light/svg/filter_list.svg new file mode 100644 index 00000000..3e7592a8 --- /dev/null +++ b/res/icons/light/svg/filter_list.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/light-dark.svg b/res/icons/light/svg/light-dark.svg new file mode 100644 index 00000000..063c51cf --- /dev/null +++ b/res/icons/light/svg/light-dark.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/menu.svg b/res/icons/light/svg/menu.svg new file mode 100644 index 00000000..54838489 --- /dev/null +++ b/res/icons/light/svg/menu.svg @@ -0,0 +1 @@ + diff --git a/res/icons/light/svg/new-window.svg b/res/icons/light/svg/new-window.svg new file mode 100644 index 00000000..21a3d15a --- /dev/null +++ b/res/icons/light/svg/new-window.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/password.svg b/res/icons/light/svg/password.svg new file mode 100644 index 00000000..d4c3c075 --- /dev/null +++ b/res/icons/light/svg/password.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/light/svg/search-globe.svg b/res/icons/light/svg/search-globe.svg new file mode 100644 index 00000000..64092fae --- /dev/null +++ b/res/icons/light/svg/search-globe.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/light/svg/search-globe_green.svg b/res/icons/light/svg/search-globe_green.svg new file mode 100644 index 00000000..4bb50ff8 --- /dev/null +++ b/res/icons/light/svg/search-globe_green.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/light/svg/search-globe_orange.svg b/res/icons/light/svg/search-globe_orange.svg new file mode 100644 index 00000000..a4787187 --- /dev/null +++ b/res/icons/light/svg/search-globe_orange.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/light/svg/search-globe_red.svg b/res/icons/light/svg/search-globe_red.svg new file mode 100644 index 00000000..f7831285 --- /dev/null +++ b/res/icons/light/svg/search-globe_red.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/res/icons/light/svg/zoom_in.svg b/res/icons/light/svg/zoom_in.svg new file mode 100644 index 00000000..8ec7f599 --- /dev/null +++ b/res/icons/light/svg/zoom_in.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/light/svg/zoom_out.svg b/res/icons/light/svg/zoom_out.svg new file mode 100644 index 00000000..a2af694c --- /dev/null +++ b/res/icons/light/svg/zoom_out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/loading.gif b/res/icons/loading.gif deleted file mode 100644 index 3245296b2246d0a820c70ef4e3eaa812658653e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1925 zcmb7^X;4#V6o$W>dlN#qkbr;@v1S7TBzNCWDZ(Qj}#|Fgw2ff^YTFv008q3%+eB|fCvA>2MhoR-1@5R zXCG0w*0v!= z<^2SjnlY}k3EeLMFz2vpOF|hKAq7Nt zi4c=gz@(v^vB!$IHByRIuc#xIXnA$UQKRnQ%Y+{B_=e-D^gsfzNf(~MrR&NxT-zZ&Bbx0x-xV??#Q78F)Ra`%sXSYbk+AN|-LU=CMX4j3RgP#jzp%zR zss&pV2ITRhPR=8nlCk1&lVDU|_&!8mLb&Fgb>i)r=lSV7~V~ z7Vr%tSP6c50eFU-JJL89!w7go{OV`kbVZ4SB%S^u(mHr2$eO(}#{#p{SB!bTX;XyRQ%epWxFO z3wC-SHD*6{S?iC8>kP}9n_n%YcoP9Fl$OLr0X38gP%aUC>7^iY6G)+?m|C#GcOza= z6>0<4yOossmX*5|6#A-UZVH^@L&G!LWLlsc;!EogjUvG+f5NfhN9T zxK^gh$JO+L61l|I{lda*yumsK23jRsS+uzrtY!bI&^hGc^-0uM8hi!mrZ5Ltxh!ss zBQbauB49Gs@np_5G9ONqmQD8HWjxc}au^%5y8i+5DWw%{w76AagUNpZD>s#w diff --git a/res/icons/menu.svg b/res/icons/menu.svg deleted file mode 100644 index b1aa223f..00000000 --- a/res/icons/menu.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/password.png b/res/icons/password.png deleted file mode 100644 index cd3606599754e034e52c894bc19129392a4d10eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)t1PJ_LV2Ed9WB332=a0p||Nl9e7#Y7av#^}__3P(G76yie8#ZkC zfGeaa3ISiB?MzHeOJ$^`{>jTp@ra3vFtD+)GW`1Wo8i^#Hw+ISJ^S+b>2s$4|NcgA z2D$>9Bgl3@P*_+c(DE7wTMI5BL4KS`>D~K}3qMl_dE9<{_^(ihaO-EG@^$9 zD0_f&gU6v6E-NJ%90jG0xGp#ZtP2>(tP2QP z4zl3-jXPgJwV{9jKLaRtpw))Vz}hg1tlE$m%lGU*`u5MCzf;)RS?z!S`D^k2-#-pU zCZ->(EX*f<{QSL - - - - - - - - - diff --git a/res/icons/search-globe_green.svg b/res/icons/search-globe_green.svg deleted file mode 100644 index 9206e542..00000000 --- a/res/icons/search-globe_green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/res/icons/search-globe_orange.svg b/res/icons/search-globe_orange.svg deleted file mode 100644 index 3a5446b3..00000000 --- a/res/icons/search-globe_orange.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/res/icons/search-globe_red.svg b/res/icons/search-globe_red.svg deleted file mode 100644 index 9d5ea28a..00000000 --- a/res/icons/search-globe_red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/res/icons/skip_next-24px.svg b/res/icons/skip_next-24px.svg deleted file mode 100644 index 39c66287..00000000 --- a/res/icons/skip_next-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/skip_previous-24px.svg b/res/icons/skip_previous-24px.svg deleted file mode 100644 index 3df9d777..00000000 --- a/res/icons/skip_previous-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/warning.svg b/res/icons/warning.svg deleted file mode 100644 index 63c5d0a3..00000000 --- a/res/icons/warning.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - alert - - - - diff --git a/res/icons/zoom_in-24px.svg b/res/icons/zoom_in-24px.svg deleted file mode 100644 index 475a7caa..00000000 --- a/res/icons/zoom_in-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/zoom_out-24px.svg b/res/icons/zoom_out-24px.svg deleted file mode 100644 index a35f45d3..00000000 --- a/res/icons/zoom_out-24px.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ui/ActivityEditor.ui b/ui/ActivityEditor.ui index 6879997b..134e050d 100644 --- a/ui/ActivityEditor.ui +++ b/ui/ActivityEditor.ui @@ -261,8 +261,7 @@ - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -287,8 +286,7 @@ - - :/icons/baseline-play_back-24px.svg:/icons/baseline-play_back-24px.svg + @@ -362,8 +360,7 @@ - - :/icons/baseline-play_up-24px.svg:/icons/baseline-play_up-24px.svg + @@ -388,8 +385,7 @@ - - :/icons/baseline-play_down-24px.svg:/icons/baseline-play_down-24px.svg + @@ -468,8 +464,7 @@ - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -494,8 +489,7 @@ - - :/icons/baseline-play_back-24px.svg:/icons/baseline-play_back-24px.svg + @@ -572,8 +566,7 @@ - - :/icons/baseline-play_up-24px.svg:/icons/baseline-play_up-24px.svg + @@ -598,8 +591,7 @@ - - :/icons/baseline-play_down-24px.svg:/icons/baseline-play_down-24px.svg + @@ -691,8 +683,7 @@ - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -717,8 +708,7 @@ - - :/icons/baseline-play_back-24px.svg:/icons/baseline-play_back-24px.svg + @@ -792,8 +782,7 @@ - - :/icons/baseline-play_up-24px.svg:/icons/baseline-play_up-24px.svg + @@ -818,8 +807,7 @@ - - :/icons/baseline-play_down-24px.svg:/icons/baseline-play_down-24px.svg + @@ -895,8 +883,7 @@ - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -921,8 +908,7 @@ - - :/icons/baseline-play_back-24px.svg:/icons/baseline-play_back-24px.svg + @@ -996,8 +982,7 @@ - - :/icons/baseline-play_up-24px.svg:/icons/baseline-play_up-24px.svg + @@ -1022,8 +1007,7 @@ - - :/icons/baseline-play_down-24px.svg:/icons/baseline-play_down-24px.svg + @@ -1099,8 +1083,7 @@ - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -1125,8 +1108,7 @@ - - :/icons/baseline-play_back-24px.svg:/icons/baseline-play_back-24px.svg + @@ -1200,8 +1182,7 @@ - - :/icons/baseline-play_up-24px.svg:/icons/baseline-play_up-24px.svg + @@ -1226,8 +1207,7 @@ - - :/icons/baseline-play_down-24px.svg:/icons/baseline-play_down-24px.svg + @@ -1575,9 +1555,6 @@ satNameCheckbox satNameEdit - - - buttonBox diff --git a/ui/BandmapWidget.ui b/ui/BandmapWidget.ui index bde54a15..7bcbbcaf 100644 --- a/ui/BandmapWidget.ui +++ b/ui/BandmapWidget.ui @@ -56,15 +56,14 @@ - - :/icons/new-window.svg:/icons/new-window.svg + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -84,7 +83,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus @@ -103,7 +102,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Clear All @@ -116,13 +115,13 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QFrame::NoFrame + QFrame::Shape::NoFrame - QFrame::Plain + QFrame::Shadow::Plain -3 @@ -136,7 +135,7 @@ 0 0 451 - 591 + 573 @@ -170,25 +169,25 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu QWidget{background: transparent} - QFrame::NoFrame + QFrame::Shape::NoFrame - Qt::ScrollBarAsNeeded + Qt::ScrollBarPolicy::ScrollBarAsNeeded - Qt::ScrollBarAsNeeded + Qt::ScrollBarPolicy::ScrollBarAsNeeded - QAbstractScrollArea::AdjustIgnored + QAbstractScrollArea::SizeAdjustPolicy::AdjustIgnored @@ -201,7 +200,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Clear the current band @@ -210,8 +209,7 @@ - - :/icons/clear-button.svg:/icons/clear-button.svg + @@ -224,7 +222,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -243,7 +241,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus + + + Zoom Level 0 @@ -255,7 +256,7 @@ 1 - Qt::Horizontal + Qt::Orientation::Horizontal false @@ -264,26 +265,29 @@ false - QSlider::TicksAbove + QSlider::TickPosition::TicksAbove - - - - 0 - 0 - + + + false - + + Qt::FocusPolicy::NoFocus + + - - :/icons/zoom_in-24px.svg + + border:0; - - Qt::NoTextInteraction + + + + + @@ -291,9 +295,7 @@ - - - + graphicsView diff --git a/ui/DxWidget.cpp b/ui/DxWidget.cpp index d0f5026a..93a9a9f6 100644 --- a/ui/DxWidget.cpp +++ b/ui/DxWidget.cpp @@ -1695,7 +1695,7 @@ void DxWidget::activateCurrPasswordIcon() { FCT_IDENTIFICATION; - ui->serverSelect->setItemIcon(ui->serverSelect->currentIndex(), QIcon(":/icons/password.png")); + ui->serverSelect->setItemIcon(ui->serverSelect->currentIndex(), QIcon::fromTheme("password")); } void DxWidget::processDxSpot(const QString &spotter, diff --git a/ui/DxWidget.ui b/ui/DxWidget.ui index beb35548..01d47903 100644 --- a/ui/DxWidget.ui +++ b/ui/DxWidget.ui @@ -6,12 +6,12 @@ 0 0 - 341 + 412 511 - Qt::NoFocus + Qt::FocusPolicy::NoFocus Form @@ -34,10 +34,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu ::menu-indicator{ image: none; } @@ -46,24 +46,23 @@ - - :/icons/menu.svg:/icons/menu.svg + - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - Qt::DefaultContextMenu + Qt::ContextMenuPolicy::DefaultContextMenu Insert a <b>hostname:port</b> of DXC Server. - Qt::ImhNone + Qt::InputMethodHint::ImhNone true @@ -72,10 +71,10 @@ - QComboBox::InsertAtTop + QComboBox::InsertPolicy::InsertAtTop - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -88,7 +87,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Connect @@ -98,7 +97,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -117,7 +116,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus @@ -175,13 +174,13 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu - QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked + QAbstractItemView::EditTrigger::AnyKeyPressed|QAbstractItemView::EditTrigger::DoubleClicked false @@ -196,16 +195,16 @@ true - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel 24 @@ -238,7 +237,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Full-text search @@ -260,8 +259,7 @@ - - :/icons/cancel-24px.svg:/icons/cancel-24px.svg + true @@ -289,10 +287,10 @@ - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -304,16 +302,16 @@ true - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerItem + QAbstractItemView::ScrollMode::ScrollPerItem 40 @@ -357,10 +355,10 @@ - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -375,16 +373,16 @@ true - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel 70 @@ -416,10 +414,10 @@ - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -434,16 +432,16 @@ true - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel 70 @@ -460,7 +458,7 @@ - Qt::ActionsContextMenu + Qt::ContextMenuPolicy::ActionsContextMenu @@ -484,7 +482,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus true @@ -513,10 +511,10 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -528,13 +526,13 @@ false - QAbstractItemView::NoSelection + QAbstractItemView::SelectionMode::NoSelection - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel - QAbstractItemView::ScrollPerPixel + QAbstractItemView::ScrollMode::ScrollPerPixel @@ -553,7 +551,7 @@ false - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Send DX Cluster Command @@ -569,16 +567,16 @@ false - Qt::NoFocus + Qt::FocusPolicy::NoFocus - QToolButton::MenuButtonPopup + QToolButton::ToolButtonPopupMode::MenuButtonPopup - Qt::ToolButtonTextOnly + Qt::ToolButtonStyle::ToolButtonTextOnly @@ -587,8 +585,7 @@ - - :/icons/filter_list-24px.svg:/icons/filter_list-24px.svg + Filter... @@ -687,16 +684,14 @@ Ctrl+D - Qt::ApplicationShortcut + Qt::ShortcutContext::ApplicationShortcut true - - - + connectButton diff --git a/ui/LogbookWidget.ui b/ui/LogbookWidget.ui index 9432fd04..0e778a62 100644 --- a/ui/LogbookWidget.ui +++ b/ui/LogbookWidget.ui @@ -251,8 +251,7 @@ - - :/icons/cloud_upload-24px.svg:/icons/cloud_upload-24px.svg + Upload to Clublog @@ -260,8 +259,7 @@ - - :/icons/baseline-search-24px.svg:/icons/baseline-search-24px.svg + Lookup on Web @@ -272,8 +270,7 @@ - - :/icons/cloud_download-24px.svg:/icons/cloud_download-24px.svg + Update from Callbook @@ -284,8 +281,7 @@ - - :/icons/filter_list-24px.svg:/icons/filter_list-24px.svg + Filter Callsign @@ -335,9 +331,6 @@
ui/QTableQSOView.h
- - - actionDeleteContact diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp index 28655077..1eed2904 100644 --- a/ui/MainWindow.cpp +++ b/ui/MainWindow.cpp @@ -54,7 +54,8 @@ MainWindow::MainWindow(QWidget* parent) : restoreContestMenuLinkExchange(); darkLightModeSwith = new SwitchButton("", ui->statusBar); - darkIconLabel = new QLabel("",ui->statusBar); + darkIconLabel = new QLabel(ui->statusBar); + darkIconLabel->setPixmap(QIcon::fromTheme("light-dark").pixmap(24)); /* Dark Mode is supported only in case of Fusion Style */ if ( QApplication::style()->objectName().compare("fusion", @@ -115,7 +116,7 @@ MainWindow::MainWindow(QWidget* parent) : contestLabel = new QLabel(ui->statusBar); contestLabel->setIndent(20); alertButton = new QPushButton("0", ui->statusBar); - alertButton->setIcon(QIcon(":/icons/alert.svg")); + alertButton->setIcon(QIcon::fromTheme("alert")); alertButton->setFlat(true); alertButton->setFocusPolicy(Qt::NoFocus); QMenu *menuAlert = new QMenu(this); @@ -409,6 +410,8 @@ MainWindow::MainWindow(QWidget* parent) : //restoreEquipmentConnOptions(); //restoreConnectionStates(); + qCDebug(runtime) << "themeSearchPaths " << QIcon::themeSearchPaths(); + setupActivitiesMenu(); } @@ -752,7 +755,7 @@ void MainWindow::darkModeToggle(int mode) style.open(QFile::ReadOnly | QIODevice::Text); qApp->setStyleSheet(style.readAll()); style.close(); - + darkIconLabel->setPixmap(QIcon::fromTheme("light-dark").pixmap(24)); emit themeChanged(darkMode); } @@ -763,6 +766,11 @@ void MainWindow::processSpotAlert(SpotAlert alert) ui->alertsWidget->addAlert(alert); alertButton->setText(QString::number(ui->alertsWidget->alertCount())); + if (ui->alertsWidget->alertCount() > 0) { + alertButton->setIcon(QIcon::fromTheme("alert-active")); + } else { + alertButton->setIcon(QIcon::fromTheme("alert")); + } alertTextButton->setText(alert.ruleNameList.join(", ") + ": " + alert.spot.callsign + ", " + alert.spot.band + ", " + alert.spot.modeGroupString); alertTextButton->disconnect(); @@ -978,6 +986,7 @@ void MainWindow::setDarkMode() darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, disabledColor); qApp->setPalette(darkPalette); + QIcon::setThemeName("dark"); } void MainWindow::setLightMode() @@ -985,6 +994,7 @@ void MainWindow::setLightMode() FCT_IDENTIFICATION; qApp->setPalette(this->style()->standardPalette()); + QIcon::setThemeName("light"); } void MainWindow::setupActivitiesMenu() diff --git a/ui/MainWindow.h b/ui/MainWindow.h index 5ad4a741..afb2156c 100644 --- a/ui/MainWindow.h +++ b/ui/MainWindow.h @@ -100,7 +100,7 @@ private slots: QPushButton* alertButton; QPushButton* alertTextButton; SwitchButton* darkLightModeSwith; - QLabel* darkIconLabel; + QLabel *darkIconLabel; StatisticsWidget* stats; NetworkNotification networknotification; AlertEvaluator alertEvaluator; diff --git a/ui/MainWindow.ui b/ui/MainWindow.ui index 7f15d11e..57e8614f 100644 --- a/ui/MainWindow.ui +++ b/ui/MainWindow.ui @@ -485,8 +485,7 @@
- - :/icons/filter_list-24px.svg:/icons/filter_list-24px.svg + QSO &Filters @@ -982,9 +981,6 @@ 1 - - - actionQuit diff --git a/ui/NewContactWidget.cpp b/ui/NewContactWidget.cpp index 27f32129..4586f01e 100644 --- a/ui/NewContactWidget.cpp +++ b/ui/NewContactWidget.cpp @@ -53,13 +53,11 @@ NewContactWidget::NewContactWidget(QWidget *parent) : ui->setupUi(this); // tab pane with QSO fields - expand & collapse tabCollapseBtn = new QToolButton(); - QIcon *toggleIcon = new QIcon(); - toggleIcon->addPixmap(QPixmap(":/icons/baseline-play_down-24px.svg"), QIcon::Normal, QIcon::On); - toggleIcon->addPixmap(QPixmap(":/icons/baseline-play_arrow-24px.svg"), QIcon::Normal, QIcon::Off); - tabCollapseBtn->setIcon(*toggleIcon); + tabCollapseBtn->setIcon(QIcon::fromTheme("baseline-play_down")); tabCollapseBtn->setCheckable(true); tabCollapseBtn->setToolTip(tr("Expand/Collapse")); tabCollapseBtn->setFocusPolicy(Qt::NoFocus); + ui->qsoTabs->setCornerWidget(tabCollapseBtn, Qt::TopLeftCorner); connect(tabCollapseBtn, &QAbstractButton::toggled, this, &NewContactWidget::tabsExpandCollapse); connect(ui->qsoTabs, &QTabWidget::tabBarClicked, this, [this](const int) @@ -3612,13 +3610,13 @@ void NewContactWidget::setCallbookStatusEnabled(bool callbookEnabled) if ( callbookEnabled ) { - ui->callbookStatusButton->setIcon((callbookSearchPaused) ? QIcon(":/icons/search-globe_orange.svg") - : QIcon(":/icons/search-globe_green.svg")); + ui->callbookStatusButton->setIcon((callbookSearchPaused) ? QIcon::fromTheme("search-globe_orange") + : QIcon::fromTheme("search-globe_green")); } else { callbookSearchPaused = false; - ui->callbookStatusButton->setIcon(QIcon(":/icons/search-globe_red.svg")); + ui->callbookStatusButton->setIcon(QIcon::fromTheme("search-globe_red")); } if ( !callbookEnabled || callbookSearchPaused ) @@ -3693,6 +3691,8 @@ void NewContactWidget::tabsExpandCollapse() maxSize = ui->qsoTabs->tabBar()->sizeHint().height(); } ui->qsoTabs->setMaximumHeight(maxSize); + tabCollapseBtn->setIcon(tabCollapseBtn->isChecked() ? QIcon::fromTheme("baseline-play_down") + : QIcon::fromTheme("baseline-play_arrow")); } void NewContactWidget::setContestFieldsState() diff --git a/ui/NewContactWidget.ui b/ui/NewContactWidget.ui index 4dd0f8f0..0053896c 100644 --- a/ui/NewContactWidget.ui +++ b/ui/NewContactWidget.ui @@ -7,7 +7,7 @@ 0 0 971 - 378 + 423 @@ -17,7 +17,7 @@ - Qt::TabFocus + Qt::FocusPolicy::TabFocus Form @@ -52,7 +52,7 @@ 0 - QLayout::SetMinimumSize + QLayout::SizeConstraint::SetMinimumSize 0 @@ -107,7 +107,7 @@ Frequency - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter
@@ -157,10 +157,10 @@
- Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - Qt::NoTextInteraction + Qt::TextInteractionFlag::NoTextInteraction
@@ -173,7 +173,7 @@ <b>DUPE !!!</b>
- Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter
@@ -211,7 +211,7 @@
- Qt::ClickFocus + Qt::FocusPolicy::ClickFocus false @@ -262,7 +262,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus false @@ -405,10 +405,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents
@@ -421,10 +421,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -436,7 +436,7 @@ Mode - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter @@ -504,14 +504,13 @@ true - Qt::NoFocus + Qt::FocusPolicy::NoFocus - - :/icons/baseline-stop-24px.svg:/icons/baseline-stop-24px.svg + @@ -530,21 +529,20 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus Save - - .. + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -557,10 +555,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Maximum + QSizePolicy::Policy::Maximum @@ -573,7 +571,7 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus Lookup the call on the web. The query URL can be changed in Settings -> Callbook @@ -582,18 +580,17 @@ Web - - :/icons/baseline-search-24px.svg:/icons/baseline-search-24px.svg + - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Maximum + QSizePolicy::Policy::Maximum @@ -612,7 +609,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus true @@ -621,14 +618,14 @@ true - Qt::UTC + Qt::TimeSpec::UTC - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus true @@ -640,7 +637,7 @@ true - Qt::UTC + Qt::TimeSpec::UTC @@ -660,28 +657,26 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus Reset - - .. + - Qt::NoFocus + Qt::FocusPolicy::NoFocus - - :/icons/baseline-play_arrow-24px.svg:/icons/baseline-play_arrow-24px.svg + @@ -714,7 +709,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus true @@ -734,13 +729,13 @@ - QDateTimeEdit::HourSection + QDateTimeEdit::Section::HourSection HH:mm:ss - Qt::UTC + Qt::TimeSpec::UTC @@ -806,7 +801,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -842,7 +837,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -875,7 +870,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -903,7 +898,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -918,7 +913,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -933,7 +928,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -952,7 +947,7 @@ - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter true @@ -967,10 +962,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -989,7 +984,7 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus 0 @@ -1008,21 +1003,21 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -1061,13 +1056,13 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus <b>Yes</b> - an outgoing QSL card has been sent; the QSO has been uploaded to, and accepted by, the online service<br/><b>No</b> - do not send an outgoing QSL card; do not upload the QSO to the online service<br/><b>Requested</b> - the contacted station has requested a QSL card; the contacted station has requested the QSO be uploaded to the online service<br/><b>Queued</b> - an outgoing QSL card has been selected to be sent; a QSO has been selected to be uploaded to the online service<br/> - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -1099,13 +1094,13 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus <b>Yes</b> - an outgoing QSL card has been sent; the QSO has been uploaded to, and accepted by, the online service<br/><b>No</b> - do not send an outgoing QSL card; do not upload the QSO to the online service<br/><b>Requested</b> - the contacted station has requested a QSL card; the contacted station has requested the QSO be uploaded to the online service<br/><b>Queued</b> - an outgoing QSL card has been selected to be sent; a QSO has been selected to be uploaded to the online service<br/> - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -1137,20 +1132,20 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus <b>Yes</b> - an outgoing QSL card has been sent; the QSO has been uploaded to, and accepted by, the online service<br/><b>No</b> - do not send an outgoing QSL card; do not upload the QSO to the online service<br/><b>Requested</b> - the contacted station has requested a QSL card; the contacted station has requested the QSO be uploaded to the online service<br/><b>Queued</b> - an outgoing QSL card has been selected to be sent; a QSO has been selected to be uploaded to the online service<br/> - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1199,17 +1194,17 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1248,7 +1243,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus 25 @@ -1258,10 +1253,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Minimum + QSizePolicy::Policy::Minimum @@ -1285,7 +1280,7 @@ - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter 0 @@ -1309,7 +1304,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter 5 @@ -1322,7 +1317,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1356,7 +1351,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus @@ -1406,13 +1401,13 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - QAbstractScrollArea::AdjustToContents + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true @@ -1421,13 +1416,13 @@ true - QAbstractItemView::NoSelection + QAbstractItemView::SelectionMode::NoSelection - QAbstractItemView::SelectItems + QAbstractItemView::SelectionBehavior::SelectItems - Qt::SolidLine + Qt::PenStyle::SolidLine 20 @@ -1462,19 +1457,19 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus - QAbstractScrollArea::AdjustToContents + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true - QAbstractItemView::NoSelection + QAbstractItemView::SelectionMode::NoSelection 20 @@ -1515,10 +1510,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -1538,10 +1533,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -1561,10 +1556,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -1573,7 +1568,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1605,16 +1600,16 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QAbstractScrollArea::AdjustToContents + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents false - Qt::TextEditorInteraction + Qt::TextInteractionFlag::TextEditorInteraction @@ -1656,7 +1651,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1698,9 +1693,7 @@ rstRcvdEdit noteEdit - - - + callsignEdit diff --git a/ui/QSODetailDialog.cpp b/ui/QSODetailDialog.cpp index 5b31968e..9ba69744 100644 --- a/ui/QSODetailDialog.cpp +++ b/ui/QSODetailDialog.cpp @@ -599,9 +599,13 @@ void QSODetailDialog::setReadOnlyMode(bool inReadOnly) editButton->setText((( inReadOnly) ? getButtonText(EDIT_BUTTON_TEXT) : getButtonText(SAVE_BUTTON_TEXT) )); - + QIcon *toggleIcon = new QIcon(); + toggleIcon->addPixmap(QIcon::fromTheme("connect").pixmap(24), QIcon::Normal, QIcon::On); + toggleIcon->addPixmap(QIcon::fromTheme("disconnect").pixmap(24), QIcon::Normal, QIcon::Off); + ui->timeLockButton->setIcon(*toggleIcon); ui->timeLockButton->setEnabled(!inReadOnly); ui->freqLockButton->setEnabled(!inReadOnly); + ui->freqLockButton->setIcon(*toggleIcon); resetButton->setEnabled(!inReadOnly); lookupButton->setEnabled(!inReadOnly && callbookManager.isActive()); @@ -1527,10 +1531,7 @@ void QSODetailDialog::lookupButtonWaitingStyle(bool isWaiting) else { lookupButtonMovie->stop(); - - QIcon icon; - icon.addFile(QString::fromUtf8(":/icons/baseline-search-24px.svg")); - lookupButton->setIcon(icon); + lookupButton->setIcon(QIcon::fromTheme("baseline-search")); } } diff --git a/ui/QSODetailDialog.ui b/ui/QSODetailDialog.ui index db18ce8c..1df28fee 100644 --- a/ui/QSODetailDialog.ui +++ b/ui/QSODetailDialog.ui @@ -45,16 +45,16 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus - QAbstractSpinBox::UpDownArrows + QAbstractSpinBox::ButtonSymbols::UpDownArrows dd/MM/yyyy HH:mm:ss - Qt::UTC + Qt::TimeSpec::UTC @@ -67,13 +67,13 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus dd/MM/yyyy HH:mm:ss - Qt::UTC + Qt::TimeSpec::UTC @@ -114,9 +114,7 @@ - - :/icons/disconnect.svg - :/icons/connect.svg:/icons/disconnect.svg + @@ -190,7 +188,7 @@ Mode - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter @@ -235,7 +233,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -248,7 +246,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -289,9 +287,7 @@ - - :/icons/disconnect.svg - :/icons/connect.svg:/icons/disconnect.svg + @@ -404,7 +400,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus Blank @@ -458,7 +454,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus Blank @@ -504,14 +500,14 @@ Frequency - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter - Qt::Horizontal + Qt::Orientation::Horizontal @@ -669,12 +665,12 @@ false - Qt::TextEditorInteraction + Qt::TextInteractionFlag::TextEditorInteraction - + 0 @@ -694,9 +690,9 @@ - Qt::NoContextMenu + Qt::ContextMenuPolicy::NoContextMenu - + about:blank @@ -716,10 +712,10 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus - 0 + 2 @@ -729,7 +725,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop 6 @@ -776,7 +772,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus 2 @@ -805,7 +801,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus 2 @@ -834,7 +830,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -860,7 +856,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -886,7 +882,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -902,10 +898,10 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -959,7 +955,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus two or four adjacent Gridsquares, each four characters long, (ex. EN98,FM08,EM97,FM07) @@ -971,10 +967,10 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop 4 @@ -989,7 +985,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus the contacted station's DARC DOK (District Location Code) (ex. A01) @@ -1018,7 +1014,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1048,7 +1044,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1072,7 +1068,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1086,7 +1082,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1095,7 +1091,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop 4 @@ -1116,7 +1112,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1136,7 +1132,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1162,7 +1158,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1185,7 +1181,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1214,7 +1210,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1223,7 +1219,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1250,7 +1246,7 @@ - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true @@ -1262,7 +1258,7 @@ 45 - 22 + 24 @@ -1276,7 +1272,7 @@ - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true @@ -1288,7 +1284,7 @@ 45 - 22 + 24 @@ -1388,7 +1384,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1573,7 +1569,7 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus Blank @@ -1609,10 +1605,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Maximum + QSizePolicy::Policy::Maximum @@ -1647,9 +1643,9 @@ - 0 - 0 - 0 + 4 + 14 + 24 1900 1 1 @@ -1725,7 +1721,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1751,7 +1747,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus 25 @@ -1821,9 +1817,9 @@ - 0 - 0 - 0 + 4 + 14 + 24 1900 1 1 @@ -1853,7 +1849,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus <b>Yes</b> - an outgoing QSL card has been sent; the QSO has been uploaded to, and accepted by, the online service<br/><b>No</b> - do not send an outgoing QSL card; do not upload the QSO to the online service<br/><b>Requested</b> - the contacted station has requested a QSL card; the contacted station has requested the QSO be uploaded to the online service<br/><b>Queued</b> - an outgoing QSL card has been selected to be sent; a QSO has been selected to be uploaded to the online service<br/> @@ -2135,10 +2131,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Expanding + QSizePolicy::Policy::Expanding @@ -2191,7 +2187,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2206,10 +2202,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok false @@ -2219,11 +2215,6 @@ - - QWebEngineView - QWidget -
QtWebEngineWidgets/QWebEngineView
-
NewContactEditLine QLineEdit @@ -2239,6 +2230,11 @@ QDoubleSpinBox
ui/FreqQSpinBox.h
+ + QWebEngineView + QWidget +
QtWebEngineWidgets/QWebEngineView
+
dateTimeOnEdit @@ -2319,9 +2315,7 @@ stxStringEdit stationTableWidget - - - + buttonBox From 9c228b32c7394061560d617789425f43e3f70002 Mon Sep 17 00:00:00 2001 From: Kyle Boyle Date: Tue, 29 Apr 2025 16:42:22 -0300 Subject: [PATCH 2/4] missing icons --- .../{baseline-stop-24px.svg => dark/svg/baseline-stop.svg} | 2 +- res/icons/{ => dark/svg}/connect.svg | 2 +- res/icons/{ => dark/svg}/disconnect.svg | 2 +- res/icons/{done-24px.svg => dark/svg/done.svg} | 2 +- res/icons/{ => dark/svg}/new-window.svg | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename res/icons/{baseline-stop-24px.svg => dark/svg/baseline-stop.svg} (76%) rename res/icons/{ => dark/svg}/connect.svg (98%) rename res/icons/{ => dark/svg}/disconnect.svg (99%) rename res/icons/{done-24px.svg => dark/svg/done.svg} (62%) rename res/icons/{ => dark/svg}/new-window.svg (64%) diff --git a/res/icons/baseline-stop-24px.svg b/res/icons/dark/svg/baseline-stop.svg similarity index 76% rename from res/icons/baseline-stop-24px.svg rename to res/icons/dark/svg/baseline-stop.svg index 48240337..6e9a1125 100644 --- a/res/icons/baseline-stop-24px.svg +++ b/res/icons/dark/svg/baseline-stop.svg @@ -1 +1 @@ - + diff --git a/res/icons/connect.svg b/res/icons/dark/svg/connect.svg similarity index 98% rename from res/icons/connect.svg rename to res/icons/dark/svg/connect.svg index b4c688b3..f2861e55 100644 --- a/res/icons/connect.svg +++ b/res/icons/dark/svg/connect.svg @@ -41,7 +41,7 @@ id="metadata9"> Svg Vector Icons : http://www.onlinewebfonts.com/icon diff --git a/res/icons/disconnect.svg b/res/icons/dark/svg/disconnect.svg similarity index 99% rename from res/icons/disconnect.svg rename to res/icons/dark/svg/disconnect.svg index a35088da..64cadaf7 100644 --- a/res/icons/disconnect.svg +++ b/res/icons/dark/svg/disconnect.svg @@ -42,7 +42,7 @@ diff --git a/res/icons/done-24px.svg b/res/icons/dark/svg/done.svg similarity index 62% rename from res/icons/done-24px.svg rename to res/icons/dark/svg/done.svg index 4a30b70b..a1757381 100644 --- a/res/icons/done-24px.svg +++ b/res/icons/dark/svg/done.svg @@ -1 +1 @@ - + diff --git a/res/icons/new-window.svg b/res/icons/dark/svg/new-window.svg similarity index 64% rename from res/icons/new-window.svg rename to res/icons/dark/svg/new-window.svg index c7500ceb..386ab0fe 100644 --- a/res/icons/new-window.svg +++ b/res/icons/dark/svg/new-window.svg @@ -1,3 +1,3 @@ - + From ddf6d23c2534d2764b4161e2b49aeda1d00226bd Mon Sep 17 00:00:00 2001 From: Kyle Boyle Date: Mon, 12 May 2025 16:40:47 -0300 Subject: [PATCH 3/4] theme state persistence --- data/MainLayoutProfile.h | 8 +- res/icons.qrc | 4 +- res/icons/dark/svg/color-palette.svg | 1 + res/icons/dark/svg/light-dark.svg | 1 - res/icons/light/svg/color-palette.svg | 1 + res/icons/light/svg/light-dark.svg | 1 - ui/MainWindow.cpp | 260 ++++++++++++++++---------- ui/MainWindow.h | 15 +- ui/MainWindow.ui | 33 ++++ ui/OnlineMapWidget.cpp | 12 +- ui/OnlineMapWidget.h | 2 +- ui/StatisticsWidget.cpp | 6 +- ui/StatisticsWidget.h | 2 +- 13 files changed, 229 insertions(+), 117 deletions(-) create mode 100644 res/icons/dark/svg/color-palette.svg delete mode 100644 res/icons/dark/svg/light-dark.svg create mode 100644 res/icons/light/svg/color-palette.svg delete mode 100644 res/icons/light/svg/light-dark.svg diff --git a/data/MainLayoutProfile.h b/data/MainLayoutProfile.h index 527bf7fc..2bdaad70 100644 --- a/data/MainLayoutProfile.h +++ b/data/MainLayoutProfile.h @@ -11,7 +11,11 @@ class MainLayoutProfile { public: - MainLayoutProfile(){darkMode = false; tabsexpanded = true;}; + MainLayoutProfile() + { + darkMode = 0; + tabsexpanded = true; + }; QString profileName; QList rowA; @@ -21,7 +25,7 @@ class MainLayoutProfile QList detailColC; QByteArray mainGeometry; QByteArray mainState; - bool darkMode; + int darkMode; bool tabsexpanded; QList> addlBandmaps; diff --git a/res/icons.qrc b/res/icons.qrc index 82a90385..50c243a1 100644 --- a/res/icons.qrc +++ b/res/icons.qrc @@ -15,7 +15,6 @@ icons/light/svg/disconnect.svg icons/light/svg/done.svg icons/light/svg/filter_list.svg - icons/light/svg/light-dark.svg icons/light/svg/menu.svg icons/light/svg/new-window.svg icons/light/svg/password.svg @@ -35,7 +34,6 @@ icons/dark/svg/done.svg icons/dark/svg/download.svg icons/dark/svg/filter_list.svg - icons/dark/svg/light-dark.svg icons/dark/svg/menu.svg icons/dark/svg/new-window.svg icons/dark/svg/password.svg @@ -60,5 +58,7 @@ icons/dark/svg/connect.svg icons/dark/svg/disconnect.svg icons/dark/index.theme + icons/light/svg/color-palette.svg + icons/dark/svg/color-palette.svg diff --git a/res/icons/dark/svg/color-palette.svg b/res/icons/dark/svg/color-palette.svg new file mode 100644 index 00000000..98ca1f59 --- /dev/null +++ b/res/icons/dark/svg/color-palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/dark/svg/light-dark.svg b/res/icons/dark/svg/light-dark.svg deleted file mode 100644 index 5f59cf79..00000000 --- a/res/icons/dark/svg/light-dark.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/icons/light/svg/color-palette.svg b/res/icons/light/svg/color-palette.svg new file mode 100644 index 00000000..cfe5d81a --- /dev/null +++ b/res/icons/light/svg/color-palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/icons/light/svg/light-dark.svg b/res/icons/light/svg/light-dark.svg deleted file mode 100644 index 063c51cf..00000000 --- a/res/icons/light/svg/light-dark.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp index 1eed2904..15c7c13a 100644 --- a/ui/MainWindow.cpp +++ b/ui/MainWindow.cpp @@ -1,41 +1,42 @@ -#include -#include +#include "MainWindow.h" #include +#include +#include #include -#include "MainWindow.h" -#include "ui_MainWindow.h" -#include "ui/SettingsDialog.h" -#include "ui/ImportDialog.h" -#include "ui/ExportDialog.h" -#include "ui/LotwDialog.h" -#include "core/Fldigi.h" -#include "rig/Rig.h" -#include "rotator/Rotator.h" -#include "cwkey/CWKeyer.h" -#include "core/Wsjtx.h" -#include "core/debug.h" -#include "ui/NewContactWidget.h" -#include "ui/QSOFilterDialog.h" -#include "ui/Eqsldialog.h" -#include "ui/ClublogDialog.h" -#include "ui/QrzDialog.h" -#include "ui/AwardsDialog.h" -#include "core/Lotw.h" #include "core/Eqsl.h" -#include "core/QRZ.h" -#include "core/PropConditions.h" -#include "data/MainLayoutProfile.h" -#include "ui/EditActivitiesDialog.h" +#include "core/Fldigi.h" #include "core/HRDLog.h" -#include "ui/HRDLogDialog.h" -#include "ui/ProfileImageWidget.h" #include "core/LogParam.h" +#include "core/Lotw.h" +#include "core/PropConditions.h" +#include "core/QRZ.h" #include "core/QSOFilterManager.h" -#include "data/Data.h" +#include "core/Wsjtx.h" +#include "core/debug.h" +#include "cwkey/CWKeyer.h" #include "data/ActivityProfile.h" #include "data/AntProfile.h" +#include "data/Data.h" +#include "data/MainLayoutProfile.h" #include "data/RigProfile.h" #include "data/RotProfile.h" +#include "rig/Rig.h" +#include "rotator/Rotator.h" +#include "ui/AwardsDialog.h" +#include "ui/ClublogDialog.h" +#include "ui/EditActivitiesDialog.h" +#include "ui/Eqsldialog.h" +#include "ui/ExportDialog.h" +#include "ui/HRDLogDialog.h" +#include "ui/ImportDialog.h" +#include "ui/LotwDialog.h" +#include "ui/NewContactWidget.h" +#include "ui/ProfileImageWidget.h" +#include "ui/QSOFilterDialog.h" +#include "ui/QrzDialog.h" +#include "ui/SettingsDialog.h" +#include "ui_MainWindow.h" +#include MODULE_IDENTIFICATION("qlog.ui.mainwindow"); @@ -53,20 +54,24 @@ MainWindow::MainWindow(QWidget* parent) : restoreContestMenuDupeType(); restoreContestMenuLinkExchange(); - darkLightModeSwith = new SwitchButton("", ui->statusBar); - darkIconLabel = new QLabel(ui->statusBar); - darkIconLabel->setPixmap(QIcon::fromTheme("light-dark").pixmap(24)); + themeButton = new QPushButton(this); + themeButton->setToolTip(tr("Color Theme")); + themeButton->setIcon(QIcon::fromTheme("color-palette")); + themeButton->setFlat(true); + + QMenu *themeMenu = new QMenu(this); + themeMenu->addAction(ui->actionThemeNative); + themeMenu->addAction(ui->actionThemeLight); + themeMenu->addAction(ui->actionThemeDark); + themeButton->setMenu(themeMenu); /* Dark Mode is supported only in case of Fusion Style */ if ( QApplication::style()->objectName().compare("fusion", Qt::CaseSensitivity::CaseInsensitive) != 0) { isFusionStyle = false; - darkLightModeSwith->setEnabled(false); - darkIconLabel->setEnabled(false); - darkLightModeSwith->setToolTip(tr("Not enabled for non-Fusion style")); - darkModeToggle(Qt::Unchecked); - + themeButton->setEnabled(false); + themeButton->setToolTip(tr("Not enabled for non-Fusion style")); } else { @@ -143,8 +148,7 @@ MainWindow::MainWindow(QWidget* parent) : ui->statusBar->addPermanentWidget(alertTextButton); ui->statusBar->addPermanentWidget(alertButton); - ui->statusBar->addPermanentWidget(darkLightModeSwith); - ui->statusBar->addPermanentWidget(darkIconLabel); + ui->statusBar->addPermanentWidget(themeButton); setContestMode(LogParam::getContestID()); @@ -194,8 +198,15 @@ MainWindow::MainWindow(QWidget* parent) : connect(this, &MainWindow::themeChanged, ui->rotatorWidget, &RotatorWidget::redrawMap); connect(this, &MainWindow::themeChanged, stats, &StatisticsWidget::changeTheme); - connect(darkLightModeSwith, &SwitchButton::stateChanged, this, &MainWindow::darkModeToggle); - darkLightModeSwith->setChecked(settings.value("darkmode", false).toBool()); + connect(ui->actionThemeNative, &QAction::triggered, this, [this](bool checked) { + this->themeInit(0); + }); + connect(ui->actionThemeDark, &QAction::triggered, this, [this](bool checked) { + this->themeInit(1); + }); + connect(ui->actionThemeLight, &QAction::triggered, this, [this](bool checked) { + this->themeInit(2); + }); connect(Rig::instance(), &Rig::rigErrorPresent, this, &MainWindow::rigErrorHandler); connect(Rig::instance(), &Rig::rigCWKeyOpenRequest, this, &MainWindow::cwKeyerConnectProfile); @@ -733,31 +744,121 @@ QList> MainWindow::getNonVfoBandmapsParams() const return bandmapList; } -void MainWindow::darkModeToggle(int mode) +void MainWindow::setDarkTheme() +{ + FCT_IDENTIFICATION; + + QPalette darkPalette; + QColor darkColor = QColor(45, 45, 45); + QColor disabledColor = QColor(127, 127, 127); + darkPalette.setColor(QPalette::Window, darkColor); + darkPalette.setColor(QPalette::WindowText, Qt::white); + darkPalette.setColor(QPalette::Base, QColor(18, 18, 18)); + darkPalette.setColor(QPalette::AlternateBase, darkColor); + darkPalette.setColor(QPalette::Text, Qt::white); + darkPalette.setColor(QPalette::Disabled, QPalette::Text, disabledColor); + darkPalette.setColor(QPalette::Button, darkColor); + darkPalette.setColor(QPalette::ButtonText, Qt::white); + darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, disabledColor); + darkPalette.setColor(QPalette::BrightText, Qt::red); + darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); + darkPalette.setColor(QPalette::HighlightedText, Qt::black); + darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, disabledColor); + + qApp->setPalette(darkPalette); + QIcon::setThemeName("dark"); +} + +void MainWindow::setLightTheme() { FCT_IDENTIFICATION; - qCDebug(function_parameters) << mode; + QPalette lightPalette; + QColor lightColor = QColor(239, 239, 239); + QColor disabledColor = QColor(190, 190, 190); + lightPalette.setColor(QPalette::Window, lightColor); + lightPalette.setColor(QPalette::WindowText, Qt::black); + lightPalette.setColor(QPalette::Base, Qt::white); + lightPalette.setColor(QPalette::AlternateBase, lightColor); + lightPalette.setColor(QPalette::Text, Qt::black); + lightPalette.setColor(QPalette::Disabled, QPalette::Text, disabledColor); + lightPalette.setColor(QPalette::Button, lightColor); + lightPalette.setColor(QPalette::ButtonText, Qt::black); + lightPalette.setColor(QPalette::Disabled, QPalette::ButtonText, disabledColor); + lightPalette.setColor(QPalette::BrightText, Qt::white); + lightPalette.setColor(QPalette::Link, QColor(0, 0, 255)); + lightPalette.setColor(QPalette::Highlight, QColor(48, 140, 198)); + lightPalette.setColor(QPalette::HighlightedText, Qt::white); + lightPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, Qt::white); - bool darkMode = (mode == Qt::Checked) ? true: false; - settings.setValue("darkmode", darkMode); + qApp->setPalette(lightPalette); - if ( mode == Qt::Checked) - { - setDarkMode(); - } - else - { - setLightMode(); + QIcon::setThemeName("light"); +} + +bool MainWindow::setNativeTheme() +{ + FCT_IDENTIFICATION; + + qApp->setPalette(this->style()->standardPalette()); + bool isDark = false; + +#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + const auto scheme = QGuiApplication::styleHints()->colorScheme(); + isDark = scheme == Qt::ColorScheme::Dark; +#else + const QPalette defaultPalette = this->style()->standardPalette(); + const auto text = defaultPalette.color(QPalette::WindowText); + const auto window = defaultPalette.color(QPalette::Window); + isDark = return text.lightness() > window.lightness(); +#endif // QT_VERSION + + QIcon::setThemeName(isDark ? "dark" : "light"); + return isDark; +} + +void MainWindow::themeInit(int mode) +{ + FCT_IDENTIFICATION; + + settings.setValue("darkmode", mode); + + ui->actionThemeNative->setChecked(false); + ui->actionThemeLight->setChecked(false); + ui->actionThemeDark->setChecked(false); + bool isDark = false; + switch (mode) { + case 0: + ui->actionThemeNative->setChecked(true); + isDark = this->setNativeTheme(); + break; + case 1: + ui->actionThemeDark->setChecked(true); + this->setDarkTheme(); + isDark = true; + break; + case 2: + ui->actionThemeLight->setChecked(true); + this->setLightTheme(); + break; } QFile style(":/res/stylesheet.css"); style.open(QFile::ReadOnly | QIODevice::Text); qApp->setStyleSheet(style.readAll()); style.close(); - darkIconLabel->setPixmap(QIcon::fromTheme("light-dark").pixmap(24)); - emit themeChanged(darkMode); + emit themeChanged(mode, isDark); +} +void MainWindow::changeEvent(QEvent *event) +{ + if (event->type() == QEvent::ThemeChange) { + if (ui->actionThemeNative->isChecked()) { + this->themeInit(0); + } + } + QMainWindow::changeEvent(event); } void MainWindow::processSpotAlert(SpotAlert alert) @@ -847,7 +948,7 @@ void MainWindow::setLayoutGeometry() QByteArray newGeometry; QByteArray newState; - bool darkMode = false; + int darkMode = 0; QList> bandmapWidgets; bandmapWidgets = (layoutProfile.profileName.isEmpty()) ? MainLayoutProfilesManager::toPairStringList(settings.value("bandmapwidgets").toString()) @@ -865,7 +966,7 @@ void MainWindow::setLayoutGeometry() // Classic Layout newGeometry = settings.value("geometry").toByteArray(); newState = settings.value("windowState").toByteArray(); - darkMode = settings.value("darkmode", false).toBool(); + darkMode = settings.value("darkmode", 0).toInt(); } openNonVfoBandmaps(bandmapWidgets); @@ -884,7 +985,7 @@ void MainWindow::setLayoutGeometry() connect(nt, &QTimer::timeout, this, [this, darkMode, newState]() { restoreState(newState); - darkLightModeSwith->setChecked(isFusionStyle && darkMode); + this->themeInit(isFusionStyle ? darkMode : 0); connect(MainLayoutProfilesManager::instance(), &MainLayoutProfilesManager::profileChanged, this, &MainWindow::setSimplyLayoutGeometry); }); @@ -925,7 +1026,7 @@ void MainWindow::setSimplyLayoutGeometry() connect(nt, &QTimer::timeout, this, [this, layoutProfile]() { restoreState(layoutProfile.mainState); - darkLightModeSwith->setChecked(isFusionStyle && layoutProfile.darkMode); + this->themeInit(isFusionStyle ? layoutProfile.darkMode : 0); }); nt->connect(nt, &QTimer::timeout, nt, &QTimer::deleteLater); nt->start(); @@ -943,8 +1044,13 @@ void MainWindow::saveProfileLayoutGeometry() layoutProfile.addlBandmaps = getNonVfoBandmapsParams(); layoutProfile.mainGeometry = saveGeometry(); layoutProfile.mainState = saveState(); - layoutProfile.darkMode = darkLightModeSwith->isChecked(); - layoutProfile.tabsexpanded = ui->newContactWidget->getTabCollapseState(); + layoutProfile.darkMode = 0; + if (ui->actionThemeDark->isChecked()) { + layoutProfile.darkMode = 1; + } else if (ui->actionThemeLight->isChecked()) { + layoutProfile.darkMode = 2; + } + layoutProfile.tabsexpanded = ui->newContactWidget->getTabCollapseState(); MainLayoutProfilesManager::instance()->addProfile(layoutProfile.profileName, layoutProfile); MainLayoutProfilesManager::instance()->blockSignals(true); // prevent screen flashing MainLayoutProfilesManager::instance()->save(); @@ -961,42 +1067,6 @@ void MainWindow::setEquipmentKeepOptions(bool) //saveEquipmentConnOptions(); } - - -void MainWindow::setDarkMode() -{ - FCT_IDENTIFICATION; - - QPalette darkPalette; - QColor darkColor = QColor(45,45,45); - QColor disabledColor = QColor(127,127,127); - darkPalette.setColor(QPalette::Window, darkColor); - darkPalette.setColor(QPalette::WindowText, Qt::white); - darkPalette.setColor(QPalette::Base, QColor(18,18,18)); - darkPalette.setColor(QPalette::AlternateBase, darkColor); - darkPalette.setColor(QPalette::Text, Qt::white); - darkPalette.setColor(QPalette::Disabled, QPalette::Text, disabledColor); - darkPalette.setColor(QPalette::Button, darkColor); - darkPalette.setColor(QPalette::ButtonText, Qt::white); - darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, disabledColor); - darkPalette.setColor(QPalette::BrightText, Qt::red); - darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); - darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); - darkPalette.setColor(QPalette::HighlightedText, Qt::black); - darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, disabledColor); - - qApp->setPalette(darkPalette); - QIcon::setThemeName("dark"); -} - -void MainWindow::setLightMode() -{ - FCT_IDENTIFICATION; - - qApp->setPalette(this->style()->standardPalette()); - QIcon::setThemeName("light"); -} - void MainWindow::setupActivitiesMenu() { FCT_IDENTIFICATION; diff --git a/ui/MainWindow.h b/ui/MainWindow.h index afb2156c..db5e68b1 100644 --- a/ui/MainWindow.h +++ b/ui/MainWindow.h @@ -24,12 +24,14 @@ class MainWindow : public QMainWindow { void closeEvent(QCloseEvent* event); void keyReleaseEvent(QKeyEvent *event); + void changeEvent(QEvent *event); + QList getUserDefinedShortcutActionList(); QStringList getBuiltInStaticShortcutList() const; signals: void settingsChanged(); - void themeChanged(int); + void themeChanged(int themeMode, bool isDark); void altBackslash(bool active); void manualMode(bool); void contestStopped(); @@ -68,7 +70,6 @@ private slots: void conditionsUpdated(); void QSOFilterSetting(); void alertRuleSetting(); - void darkModeToggle(int); void processSpotAlert(SpotAlert alert); void clearAlertEvent(); void beepSettingAlerts(); @@ -99,8 +100,7 @@ private slots: QLabel* contestLabel; QPushButton* alertButton; QPushButton* alertTextButton; - SwitchButton* darkLightModeSwith; - QLabel *darkIconLabel; + QPushButton *themeButton; StatisticsWidget* stats; NetworkNotification networknotification; AlertEvaluator alertEvaluator; @@ -114,9 +114,6 @@ private slots: QActionGroup *linkExchangeGroup; QPushButton *activityButton; - void setDarkMode(); - void setLightMode(); - void setupActivitiesMenu(); void saveEquipmentConnOptions(); void restoreConnectionStates(); @@ -134,6 +131,10 @@ private slots: void openNonVfoBandmaps(const QList> &list); void clearNonVfoBandmaps(); QList> getNonVfoBandmapsParams() const; + void themeInit(int mode); + bool setNativeTheme(); + void setLightTheme(); + void setDarkTheme(); }; #endif // QLOG_UI_MAINWINDOW_H diff --git a/ui/MainWindow.ui b/ui/MainWindow.ui index 57e8614f..7499a3d6 100644 --- a/ui/MainWindow.ui +++ b/ui/MainWindow.ui @@ -878,6 +878,39 @@ None
+ + + true + + + Theme: Native + + + QAction::MenuRole::TextHeuristicRole + + + + + true + + + Theme: QLog Light + + + QAction::MenuRole::TextHeuristicRole + + + + + true + + + Theme: QLog Dark + + + QAction::MenuRole::TextHeuristicRole + + diff --git a/ui/OnlineMapWidget.cpp b/ui/OnlineMapWidget.cpp index bd2851ec..db5a1cf6 100644 --- a/ui/OnlineMapWidget.cpp +++ b/ui/OnlineMapWidget.cpp @@ -88,17 +88,21 @@ void OnlineMapWidget::setTarget(double lat, double lon) antPositionChanged(lastSeenAzimuth, lastSeenElevation); } -void OnlineMapWidget::changeTheme(int theme) +void OnlineMapWidget::changeTheme(int theme, bool isDark) { FCT_IDENTIFICATION; - qCDebug(function_parameters) << theme; + qCDebug(function_parameters) << theme << isDark; QString themeJavaScript; //theme == 1 dart - themeJavaScript = ( theme == 1 ) ? QLatin1String("map.getPanes().tilePane.style.webkitFilter=\"brightness(0.6) invert(1) contrast(3) hue-rotate(200deg) saturate(0.3) brightness(0.9)\";") - : QLatin1String("map.getPanes().tilePane.style.webkitFilter=\"\";"); + themeJavaScript + = (isDark == 1) + ? QLatin1String( + "map.getPanes().tilePane.style.webkitFilter=\"brightness(0.6) invert(1) " + "contrast(3) hue-rotate(200deg) saturate(0.3) brightness(0.9)\";") + : QLatin1String("map.getPanes().tilePane.style.webkitFilter=\"\";"); runJavaScript(themeJavaScript); } diff --git a/ui/OnlineMapWidget.h b/ui/OnlineMapWidget.h index cd7594bc..b4eb7e8d 100644 --- a/ui/OnlineMapWidget.h +++ b/ui/OnlineMapWidget.h @@ -33,7 +33,7 @@ class OnlineMapWidget : public QWebEngineView public slots: void setTarget(double lat, double lon); - void changeTheme(int); + void changeTheme(int, bool isDark); void auroraDataUpdate(); void mufDataUpdate(); void setIBPBand(VFOID, double, double, double); diff --git a/ui/StatisticsWidget.cpp b/ui/StatisticsWidget.cpp index c8668858..e5bcf83f 100644 --- a/ui/StatisticsWidget.cpp +++ b/ui/StatisticsWidget.cpp @@ -400,15 +400,15 @@ void StatisticsWidget::mapLoaded(bool) layerControlHandler.restoreLayerControlStates(main_page); } -void StatisticsWidget::changeTheme(int theme) +void StatisticsWidget::changeTheme(int theme, bool isDark) { FCT_IDENTIFICATION; - qCDebug(function_parameters) << theme; + qCDebug(function_parameters) << theme << isDark; QString themeJavaScript; - if ( theme == 1 ) /* dark mode */ + if (isDark) /* dark mode */ themeJavaScript = "map.getPanes().tilePane.style.webkitFilter=\"brightness(0.6) invert(1) contrast(3) hue-rotate(200deg) saturate(0.3) brightness(0.9)\";"; else themeJavaScript = "map.getPanes().tilePane.style.webkitFilter=\"\";"; diff --git a/ui/StatisticsWidget.h b/ui/StatisticsWidget.h index 99b591be..1ff4bae0 100644 --- a/ui/StatisticsWidget.h +++ b/ui/StatisticsWidget.h @@ -27,7 +27,7 @@ public slots: void mainStatChanged(int); void dateRangeCheckBoxChanged(int); void mapLoaded(bool); - void changeTheme(int); + void changeTheme(int, bool isDark); void refreshWidget(); private slots: From 74f7115df8ed78d653d22e6b50012e89431e9934 Mon Sep 17 00:00:00 2001 From: Kyle Boyle Date: Mon, 12 May 2025 17:03:24 -0300 Subject: [PATCH 4/4] fix qt versioned code --- ui/MainWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp index e4ec649e..a3cef9ee 100644 --- a/ui/MainWindow.cpp +++ b/ui/MainWindow.cpp @@ -812,7 +812,7 @@ bool MainWindow::setNativeTheme() const QPalette defaultPalette = this->style()->standardPalette(); const auto text = defaultPalette.color(QPalette::WindowText); const auto window = defaultPalette.color(QPalette::Window); - isDark = return text.lightness() > window.lightness(); + isDark = text.lightness() > window.lightness(); #endif // QT_VERSION QIcon::setThemeName(isDark ? "dark" : "light");