moment/src/gui/TrayIcon.qml
2021-03-03 17:14:55 -04:00

59 lines
1.6 KiB
QML

// Copyright Mirage authors & contributors <https://github.com/mirukana/mirage>
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick.Controls 2.12
import Qt.labs.platform 1.1
import Qt.labs.folderlistmodel 2.12
SystemTrayIcon {
property ApplicationWindow window
property alias settingsFolder: showUpWatcher.folder
property string iconPack: theme ? theme.icons.preferredPack : "thin"
property FolderListModel showUpWatcher: FolderListModel {
id: showUpWatcher
showDirs: false
showHidden: true
nameFilters: [".show"]
onCountChanged: {
if (count) {
window.restoreFromTray()
py.importModule("os", () => {
py.call("os.remove", [get(0, "filePath")])
})
}
}
}
visible: true
tooltip: Qt.application.displayName
icon.source: `../icons/${iconPack}/tray-icon.png`
onActivated: {
if (reason === SystemTrayIcon.MiddleClick)
Qt.quit()
else if (reason !== SystemTrayIcon.Context)
window.visible ? window.hide() : window.restoreFromTray()
}
menu: Menu {
MenuItem {
text:
window.visible ?
"Minimize to tray" :
qsTr("Open %1").arg(Qt.application.displayName)
onTriggered:
window.visible ?
window.hide() :
window.restoreFromTray()
}
MenuItem {
text: qsTr("Quit %1").arg(Qt.application.displayName)
onTriggered: Qt.quit()
}
}
}