Move system tray icon code to its file

This commit is contained in:
vslg 2020-09-05 13:06:47 -03:00
parent 9ee4b14aa2
commit bde7af8a5a
2 changed files with 56 additions and 48 deletions

View File

@ -0,0 +1,52 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
import Qt.labs.platform 1.1
import Qt.labs.folderlistmodel 2.12
SystemTrayIcon {
property string iconPack: theme ? theme.icons.preferredPack : "thin"
property alias settingsFolder: showUpWatcher.folder
property var window
property FolderListModel showUpWatcher: FolderListModel {
id: showUpWatcher
showDirs: false
showHidden: true
nameFilters: [".show"]
onCountChanged: {
if (count) {
window.drawAttention()
py.importModule("os", () => {
py.call("os.remove", [get(0, "filePath")])
})
}
}
}
visible: true
tooltip: qsTr("Mirage")
icon.source: `../../icons/${iconPack}/tray-icon.png`
onActivated:
if (reason !== SystemTrayIcon.Context)
window.drawAttention()
menu: Menu {
MenuItem {
text: window.visible ? "Hide Mirage" : "Show Mirage"
onTriggered:
window.visible ?
window.hide() :
window.drawAttention()
}
MenuItem {
text: qsTr("Quit Mirage")
onTriggered: Qt.quit()
}
}
}

View File

@ -2,8 +2,6 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import Qt.labs.platform 1.1
import Qt.labs.folderlistmodel 2.12
import "Base"
import "PythonBridge"
@ -90,7 +88,7 @@ ApplicationWindow {
onClosing: {
close.accepted = ! settings.closeMinimizesToTray
onTriggered: if (settings.closeMinimizesToTray) hide()
if (settings.closeMinimizesToTray) hide()
}
PythonRootBridge { id: py }
@ -114,50 +112,8 @@ ApplicationWindow {
Behavior on scale { HNumberAnimation { overshoot: 3; factor: 1.2 } }
}
SystemTrayIcon {
property string iconPack: theme ? theme.icons.preferredPack : "thin"
visible: true
tooltip: qsTr("Mirage")
icon.source: `../icons/${iconPack}/tray-icon.png`
onActivated:
if (reason !== SystemTrayIcon.Context)
window.drawAttention()
menu: Menu {
MenuItem {
text: window.visible ? "Hide Mirage" : "Show Mirage"
onTriggered:
window.visible ?
window.hide() :
window.drawAttention()
}
MenuItem {
text: qsTr("Quit Mirage")
onTriggered: {
Qt.quit()
}
}
}
}
FolderListModel {
id: showUpWatcher
folder: window.configDir
showDirs: false
showHidden: true
nameFilters: [".show"]
onCountChanged: {
if (count) {
window.drawAttention()
py.importModule("os", () => {
py.call("os.remove", [get(0, "filePath")])
})
}
}
HTrayIcon {
window: window
settingsFolder: configDir
}
}