diff --git a/ui/app/mainui/StatusTrayIcon.qml b/ui/app/mainui/StatusTrayIcon.qml new file mode 100644 index 000000000..8ab7838ab --- /dev/null +++ b/ui/app/mainui/StatusTrayIcon.qml @@ -0,0 +1,46 @@ +import Qt.labs.platform 1.1 + +import utils 1.0 + +SystemTrayIcon { + id: root + + property bool isProduction: true + + signal activateApp() + + visible: true + icon.source: Qt.platform.os === Constants.windows // TODO: Add status-logo-white with stroke for windows + ? Style.png("status-logo%1".arg(root.isProduction ? "" : "-dev-circle")) + : Style.svg("status-logo-white") + icon.mask: Qt.platform.os !== Constants.windows + + onMessageClicked: { + if (Qt.platform.os === Constants.windows) { + root.activateApp() + } + } + + menu: Menu { + MenuItem { + text: qsTr("Open Status") + onTriggered: { + root.activateApp() + } + } + + MenuSeparator { + } + + MenuItem { + text: qsTr("Quit") + onTriggered: Qt.quit() + } + } + + onActivated: { + if (reason !== SystemTrayIcon.Context) { + root.activateApp() + } + } +} \ No newline at end of file diff --git a/ui/app/mainui/qmldir b/ui/app/mainui/qmldir index df4aa53e2..a604f097d 100644 --- a/ui/app/mainui/qmldir +++ b/ui/app/mainui/qmldir @@ -1,3 +1,4 @@ AppMain 1.0 AppMain.qml SplashScreen 1.0 SplashScreen.qml Popups 1.0 Popups.qml +StatusTrayIcon 1.0 StatusTrayIcon.qml diff --git a/ui/imports/assets/icons/status-logo-white.svg b/ui/imports/assets/icons/status-logo-white.svg new file mode 100644 index 000000000..e0e5263ab --- /dev/null +++ b/ui/imports/assets/icons/status-logo-white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ui/main.qml b/ui/main.qml index 35becd740..f0261160f 100644 --- a/ui/main.qml +++ b/ui/main.qml @@ -295,50 +295,12 @@ StatusWindow { applicationWindow.requestActivate() } - SystemTrayIcon { + StatusTrayIcon { id: systemTray - visible: true - icon.source: { - if (production) { - if (Qt.platform.os == Constants.mac) - return "imports/assets/png/status-logo-round-rect.png" - else - return "imports/assets/png/status-logo-circle.png" - } else { - if (Qt.platform.os == Constants.mac) - return "imports/assets/png/status-logo-dev-round-rect.png" - else - return "imports/assets/png/status-logo-dev-circle.png" - } - } - - onMessageClicked: { - if (Qt.platform.os === Constants.windows) { - applicationWindow.makeStatusAppActive() - } - } - - menu: Menu { - MenuItem { - text: qsTr("Open Status") - onTriggered: { - applicationWindow.makeStatusAppActive() - } - } - - MenuSeparator { - } - - MenuItem { - text: qsTr("Quit") - onTriggered: Qt.quit() - } - } - - onActivated: { - if (reason !== SystemTrayIcon.Context) { - applicationWindow.makeStatusAppActive() - } + objectName: "systemTray" + isProduction: production + onActivateApp: { + applicationWindow.makeStatusAppActive() } }