diff --git a/QLog.pro b/QLog.pro index 792e9ed7..3785453f 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 08d24109..6c6f540b 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/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/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..50c243a1 --- /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/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/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 + icons/light/svg/color-palette.svg + icons/dark/svg/color-palette.svg + + 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/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/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/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/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/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/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/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 @@ - + 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/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/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/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 3245296b..00000000 Binary files a/res/icons/loading.gif and /dev/null differ 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 cd360659..00000000 Binary files a/res/icons/password.png and /dev/null differ diff --git a/res/icons/search-globe.svg b/res/icons/search-globe.svg deleted file mode 100644 index 1b4f23c1..00000000 --- a/res/icons/search-globe.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - 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 d6d4baa8..f5ae0055 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 @@ -90,7 +89,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus @@ -109,7 +108,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Clear All @@ -122,13 +121,13 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus - QFrame::NoFrame + QFrame::Shape::NoFrame - QFrame::Plain + QFrame::Shadow::Plain -3 @@ -176,25 +175,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 @@ -207,7 +206,7 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus Clear the current band @@ -216,8 +215,7 @@ - - :/icons/clear-button.svg:/icons/clear-button.svg + @@ -230,7 +228,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -249,7 +247,10 @@ - Qt::ClickFocus + Qt::FocusPolicy::ClickFocus + + + Zoom Level 0 @@ -261,7 +262,7 @@ 1 - Qt::Horizontal + Qt::Orientation::Horizontal false @@ -270,26 +271,29 @@ false - QSlider::TicksAbove + QSlider::TickPosition::TicksAbove - - - - 0 - 0 - + + + false - + + Qt::FocusPolicy::NoFocus + + - - :/icons/zoom_in-24px.svg + + border:0; - - Qt::NoTextInteraction + + + + + @@ -297,9 +301,7 @@ - - - + graphicsView diff --git a/ui/DxWidget.cpp b/ui/DxWidget.cpp index 957220a4..30161318 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 ad069d6b..a3cef9ee 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,19 +54,24 @@ MainWindow::MainWindow(QWidget* parent) : restoreContestMenuDupeType(); restoreContestMenuLinkExchange(); - darkLightModeSwith = new SwitchButton("", ui->statusBar); - darkIconLabel = new QLabel("
",ui->statusBar); + 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 { @@ -115,7 +121,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); @@ -142,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()); @@ -193,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); @@ -410,6 +422,8 @@ MainWindow::MainWindow(QWidget* parent) : //restoreEquipmentConnOptions(); //restoreConnectionStates(); + qCDebug(runtime) << "themeSearchPaths " << QIcon::themeSearchPaths(); + setupActivitiesMenu(); } @@ -731,31 +745,121 @@ QList> MainWindow::getNonVfoBandmapsParams() const return bandmapList; } -void MainWindow::darkModeToggle(int mode) +void MainWindow::setDarkTheme() { FCT_IDENTIFICATION; - qCDebug(function_parameters) << mode; + 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); - bool darkMode = (mode == Qt::Checked) ? true: false; - settings.setValue("darkmode", darkMode); + qApp->setPalette(darkPalette); + QIcon::setThemeName("dark"); +} - if ( mode == Qt::Checked) - { - setDarkMode(); - } - else - { - setLightMode(); +void MainWindow::setLightTheme() +{ + FCT_IDENTIFICATION; + + 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); + + qApp->setPalette(lightPalette); + + 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 = 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(); + emit themeChanged(mode, isDark); +} - emit themeChanged(darkMode); - +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) @@ -764,6 +868,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(); @@ -840,7 +949,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()) @@ -858,7 +967,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); @@ -877,7 +986,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); }); @@ -918,7 +1027,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(); @@ -936,8 +1045,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(); @@ -954,40 +1068,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); -} - -void MainWindow::setLightMode() -{ - FCT_IDENTIFICATION; - - qApp->setPalette(this->style()->standardPalette()); -} - void MainWindow::setupActivitiesMenu() { FCT_IDENTIFICATION; diff --git a/ui/MainWindow.h b/ui/MainWindow.h index 5ad4a741..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 7f15d11e..7499a3d6 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 @@ -879,6 +878,39 @@ None + + + true + + + Theme: Native + + + QAction::MenuRole::TextHeuristicRole + + + + + true + + + Theme: QLog Light + + + QAction::MenuRole::TextHeuristicRole + + + + + true + + + Theme: QLog Dark + + + QAction::MenuRole::TextHeuristicRole + + @@ -982,9 +1014,6 @@ 1 - - - actionQuit diff --git a/ui/NewContactWidget.cpp b/ui/NewContactWidget.cpp index f00d2409..8f0ecb2e 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) @@ -3670,13 +3668,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 ) @@ -3751,6 +3749,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/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/QSODetailDialog.cpp b/ui/QSODetailDialog.cpp index 82ee9118..5171d4ed 100644 --- a/ui/QSODetailDialog.cpp +++ b/ui/QSODetailDialog.cpp @@ -608,9 +608,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()); @@ -1569,10 +1573,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 bbb361e7..39818144 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 @@ -1127,7 +1123,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus the contacted station's DARC DOK (District Location Code) (ex. A01) @@ -1149,7 +1145,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop 4 @@ -1170,7 +1166,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1190,7 +1186,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1216,7 +1212,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1239,7 +1235,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus @@ -1268,7 +1264,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1291,7 +1287,7 @@ - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true @@ -1303,7 +1299,7 @@ 45 - 22 + 24 @@ -1317,7 +1313,7 @@ - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers true @@ -1329,7 +1325,7 @@ 45 - 22 + 24 @@ -1429,7 +1425,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1614,7 +1610,7 @@ - Qt::NoFocus + Qt::FocusPolicy::NoFocus Blank @@ -1650,10 +1646,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Maximum + QSizePolicy::Policy::Maximum @@ -1688,9 +1684,9 @@ - 0 - 0 - 0 + 4 + 14 + 24 1900 1 1 @@ -1766,7 +1762,7 @@ - Qt::WheelFocus + Qt::FocusPolicy::WheelFocus @@ -1792,7 +1788,7 @@ - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus 25 @@ -1862,9 +1858,9 @@ - 0 - 0 - 0 + 4 + 14 + 24 1900 1 1 @@ -1894,7 +1890,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/> @@ -2176,10 +2172,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Expanding + QSizePolicy::Policy::Expanding @@ -2232,7 +2228,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2247,10 +2243,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok false @@ -2260,11 +2256,6 @@ - - QWebEngineView - QWidget -
QtWebEngineWidgets/QWebEngineView
-
NewContactEditLine QLineEdit @@ -2280,6 +2271,11 @@ QDoubleSpinBox
ui/FreqQSpinBox.h
+ + QWebEngineView + QWidget +
QtWebEngineWidgets/QWebEngineView
+
dateTimeOnEdit @@ -2367,9 +2363,7 @@ qslReceivedMsgEdit qslSentMsgEdit - - - + buttonBox 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: