diff --git a/src/app/MainApplicationWindow.qml b/src/app/MainApplicationWindow.qml index a2555e16139ad2147bf8a4a7f13200ba5a652db4..67f5ac409bb2534cf05268f1fc4721ecaf2c2f5b 100644 --- a/src/app/MainApplicationWindow.qml +++ b/src/app/MainApplicationWindow.qml @@ -116,7 +116,8 @@ ApplicationWindow { function close(force = false) { // If we're in the onboarding wizard or 'MinimizeOnClose' // is set, then we can quit - if (force || !UtilsAdapter.getAppValue(Settings.MinimizeOnClose) || !UtilsAdapter.getAccountListSize()) { + var minimizeToTray = UtilsAdapter.getAppValue(Settings.MinimizeOnClose) && UtilsAdapter.isSystemTrayIconVisible(); + if (force || !minimizeToTray || !UtilsAdapter.getAccountListSize()) { Qt.quit(); } else { layoutManager.closeToTray(); diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index bbdfa5cd828ca1a8f8da2fed1ecccc45f3e862cb..c2b61d79e696be5cbd9b7bb21bf49a2817c79d92 100644 --- a/src/app/appsettingsmanager.h +++ b/src/app/appsettingsmanager.h @@ -43,7 +43,7 @@ extern const QString defaultDownloadPath; // Common key-value pairs for both APPSTORE and non-APPSTORE builds #define COMMON_KEYS \ - X(MinimizeOnClose, false) \ + X(MinimizeOnClose, true) \ X(DownloadPath, defaultDownloadPath) \ X(ScreenshotPath, {}) \ X(EnableNotifications, true) \ diff --git a/src/app/settingsview/components/SystemSettingsPage.qml b/src/app/settingsview/components/SystemSettingsPage.qml index 3ea004118f2b4e6b042a8e4b580f86b30250603f..f953faec25c2fff447f7703bb7ff75ba0f770288 100644 --- a/src/app/settingsview/components/SystemSettingsPage.qml +++ b/src/app/settingsview/components/SystemSettingsPage.qml @@ -101,8 +101,7 @@ SettingsPageBase { id: closeOrMinCheckBox Layout.fillWidth: true - visible: UtilsAdapter.isSystemTrayIconVisible() - checked: UtilsAdapter.getAppValue(Settings.MinimizeOnClose) && UtilsAdapter.isSystemTrayIconVisible() + checked: UtilsAdapter.getAppValue(Settings.MinimizeOnClose) labelText: JamiStrings.keepMinimized onSwitchToggled: UtilsAdapter.setAppValue(Settings.Key.MinimizeOnClose, checked) } diff --git a/src/app/utilsadapter.cpp b/src/app/utilsadapter.cpp index e6143d8a6f3dc0657d67cf8c1a9c87a254d3fda5..ec4ac13a7cdc935b9d0ab9ba274afe90a4849572 100644 --- a/src/app/utilsadapter.cpp +++ b/src/app/utilsadapter.cpp @@ -26,6 +26,7 @@ #include "systemtray.h" #include "utils.h" #include "version.h" +#include "global.h" #include <api/datatransfermodel.h> #include <api/contact.h> @@ -229,7 +230,7 @@ UtilsAdapter::getConvIdForUri(const QString& accountId, const QString& uri) return {}; return convInfo->get().uid; } catch (const std::out_of_range& e) { - qDebug() << e.what(); + C_DBG << e.what(); return ""; } } @@ -242,7 +243,7 @@ UtilsAdapter::getPeerUri(const QString& accountId, const QString& uid) const auto& convInfo = convModel->getConversationForUid(uid).value(); return convInfo.get().participants.front().uri; } catch (const std::out_of_range& e) { - qDebug() << e.what(); + C_DBG << e.what(); return ""; } } @@ -745,7 +746,7 @@ UtilsAdapter::isSystemThemeDark() #endif return readAppsUseLightThemeRegistry(true); #else - qWarning("System theme detection is not implemented or is not supported"); + C_WARN << "System theme detection is not implemented or is not supported"; return false; #endif // WIN32 #endif // __has_include(<gio/gio.h>) @@ -827,13 +828,7 @@ UtilsAdapter::isRTL() bool UtilsAdapter::isSystemTrayIconVisible() { - if (!systemTray_) - return false; - // https://bugreports.qt.io/browse/QTBUG-118656 -#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) - return true; -#endif - return systemTray_->geometry() != QRect(); + return QSystemTrayIcon::isSystemTrayAvailable() && systemTray_; } QString @@ -891,7 +886,7 @@ UtilsAdapter::createDummyImage() const qInfo() << "Dummy image created" << QDir::tempPath() + "/dummy.png"; return QDir::tempPath() + "/dummy.png"; } else { - qWarning() << "Could not create dummy image"; + C_WARN << "Could not create dummy image"; return ""; } }