From 8cb98c44966d8d898d4d549e7d96fd8d8c10174e Mon Sep 17 00:00:00 2001
From: Nils <>
Date: Thu, 23 Apr 2020 21:07:47 +0200
Subject: [PATCH] Use qt resource system from now on. Also stub translation
file
---
qtgui/mainwindow.py | 4 +-
qtgui/resources.py | 374 +++++++++++
qtgui/resources/buildresources.sh | 4 +
qtgui/resources/hidden.svg | 1 +
qtgui/resources/icon.png | Bin 0 -> 1772 bytes
qtgui/resources/power.svg | 1 +
qtgui/resources/removed.svg | 1 +
qtgui/resources/resources.qrc | 11 +
qtgui/resources/running.svg | 1 +
qtgui/resources/stopped.svg | 1 +
qtgui/resources/translations/config.pro | 2 +
qtgui/resources/translations/de.qm | Bin 0 -> 895 bytes
qtgui/resources/translations/de.ts | 799 ++++++++++++++++++++++++
qtgui/resources/translations/update.sh | 5 +
qtgui/systemtray.py | 5 +-
15 files changed, 1206 insertions(+), 3 deletions(-)
create mode 100644 qtgui/resources.py
create mode 100644 qtgui/resources/buildresources.sh
create mode 100644 qtgui/resources/hidden.svg
create mode 100644 qtgui/resources/icon.png
create mode 100644 qtgui/resources/power.svg
create mode 100644 qtgui/resources/removed.svg
create mode 100644 qtgui/resources/resources.qrc
create mode 100644 qtgui/resources/running.svg
create mode 100644 qtgui/resources/stopped.svg
create mode 100644 qtgui/resources/translations/config.pro
create mode 100644 qtgui/resources/translations/de.qm
create mode 100644 qtgui/resources/translations/de.ts
create mode 100644 qtgui/resources/translations/update.sh
diff --git a/qtgui/mainwindow.py b/qtgui/mainwindow.py
index 4a1889b..b1a746d 100644
--- a/qtgui/mainwindow.py
+++ b/qtgui/mainwindow.py
@@ -47,7 +47,7 @@ from .quickopensessioncontroller import QuickOpenSessionController
from .projectname import ProjectNameWidget
from .addclientprompt import askForExecutable, updateWordlist
from .waitdialog import WaitDialog
-
+from .resources import *
api.eventLoop = EventLoop()
@@ -105,7 +105,7 @@ class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.qtApp = qtApp
- self.qtApp.setWindowIcon(QtGui.QIcon("icon.png")) #non-template part of the program
+ self.qtApp.setWindowIcon(QtGui.QIcon(":icon.png")) #non-template part of the program
self.qtApp.setApplicationName(f"{METADATA['name']}")
self.qtApp.setApplicationDisplayName(f"{METADATA['name']}")
logger.info("Init MainWindow")
diff --git a/qtgui/resources.py b/qtgui/resources.py
new file mode 100644
index 0000000..86415b1
--- /dev/null
+++ b/qtgui/resources.py
@@ -0,0 +1,374 @@
+# -*- coding: utf-8 -*-
+
+# Resource object code
+#
+# Created by: The Resource Compiler for PyQt5 (Qt v5.14.2)
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x06\xec\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x02\x4d\x00\x00\x02\x4d\
+\x01\x88\x6f\xfb\x19\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x06\x69\x49\x44\
+\x41\x54\x78\x9c\xed\x9b\xdd\x4b\x14\x5d\x1c\xc7\xbf\xdb\xae\xfb\
+\x96\xde\x74\x11\x68\xc8\x9a\xa5\x8f\xe4\xe3\x5f\x90\x18\xa2\x48\
+\xe2\xd2\xcb\x4d\xe0\x45\x37\x81\x61\x50\xac\x84\x94\x44\x98\x04\
+\x4a\x42\xc8\x9a\x75\xd7\xd5\x42\xf0\x10\xd4\x85\x2b\x46\xf4\x76\
+\xa3\x77\xb9\x2f\xca\x4c\x25\xba\xbb\xae\x65\xd6\x75\x39\x2f\xbb\
+\x3b\xf3\x5c\xc4\x2e\xfb\xac\xae\x7b\xde\xb4\x60\x9f\x2f\x88\x3b\
+\x33\xbf\xf3\x3d\x67\x3f\x3b\xe7\xfc\xce\x9c\x99\x01\x80\x27\x00\
+\x0c\x00\x66\x99\xfd\x19\x00\x9e\x58\x00\x64\x00\x1c\x40\x79\xca\
+\xb0\xe0\x17\x0d\x9c\x3c\x79\x12\xad\xad\xad\xbf\xb9\x3d\xfb\xa3\
+\xb9\xb9\x39\xcc\xcf\xcf\xe7\xb6\x4d\x00\xe6\xf0\xf0\xb0\x59\x2e\
+\x1a\x1e\x1e\xce\x75\x85\x72\x3d\xf5\x73\x2a\x7b\x00\x36\x51\x46\
+\xdf\xbf\x7f\xc7\x8b\x17\x2f\x44\xd9\xed\xaa\xee\xee\x6e\x1c\x3e\
+\x7c\x58\x88\x97\x10\x00\xa6\x69\x62\x7a\x7a\x1a\x7d\x7d\x7d\x22\
+\xec\x4a\xea\xf1\xe3\xc7\xb8\x74\xe9\x12\x2c\x16\x0b\xb7\x97\x90\
+\x2e\xa0\x28\x0a\xa2\xd1\xa8\x08\x2b\x22\x45\xa3\x51\x28\x8a\x22\
+\xc4\x4b\x08\x80\x4c\x26\x03\x49\x92\x44\x58\x11\x49\x92\x24\x64\
+\x32\x19\x21\x5e\x42\x00\xb8\x5c\x2e\xc8\xb2\x2c\xc2\x8a\x48\xb2\
+\x2c\xc3\xe5\x72\x09\xf1\x12\x02\x40\x55\x55\x7c\xfb\xf6\x4d\x84\
+\x15\x91\x36\x37\x37\xa1\x69\x9a\x10\x2f\x21\x00\x56\x57\x57\x45\
+\xd8\xfc\x96\x3a\x85\x00\x08\x85\x42\x22\x6c\xa8\xb4\xb0\xb0\x20\
+\xc4\x87\x1b\xc0\xd6\xd6\x16\xc2\xe1\xb0\x88\xb6\x50\x29\x12\x89\
+\x08\xc9\x04\xdc\x00\xd2\xe9\xf4\xbe\x0e\x80\x59\xc9\xb2\x8c\x54\
+\x2a\xc5\xed\xc3\x0d\x60\xbf\x33\x40\x56\xb2\x2c\xc3\xed\x76\x73\
+\xfb\x70\x03\x48\xa5\x52\xf8\xfa\xf5\x2b\x53\xd9\xce\xce\x4e\x74\
+\x76\x76\x32\x95\xdd\xd8\xd8\x10\x92\x09\xb8\xa7\xc2\x2b\x2b\x2b\
+\x4c\xe5\xec\x76\x3b\xa6\xa6\xa6\x60\xb5\x5a\xd1\xd2\xd2\xc2\xf4\
+\x65\x62\xb1\x18\x5a\x5a\x5a\x98\xea\xcf\x8a\xfb\x0c\x60\x1d\x00\
+\x07\x07\x07\xd1\xd4\xd4\x84\x86\x86\x06\x5c\xbf\x7e\x7d\x5f\xeb\
+\xce\x17\x17\x00\x45\x51\x98\x1a\x51\x5b\x5b\x8b\x5b\xb7\x6e\xe5\
+\xb6\x6f\xdf\xbe\x8d\xba\xba\x3a\x6a\x9f\x70\x38\xcc\x9d\x09\xb8\
+\x00\xa4\x52\x29\xa6\x01\xf0\xc1\x83\x07\x38\x78\xf0\x60\x6e\xdb\
+\xed\x76\x63\x62\x62\x82\xda\x47\x44\x26\xe0\x02\xc0\x92\x01\xba\
+\xba\xba\x70\xee\xdc\xb9\x6d\xfb\xcf\x9f\x3f\x8f\x9e\x9e\x1e\x2a\
+\x2f\x11\xd7\x04\x5c\x00\xd2\xe9\x34\x36\x36\x36\x88\xe3\x1d\x0e\
+\x07\xa6\xa6\xa6\x8a\x1e\x9f\x9c\x9c\x84\xd3\xe9\x24\xf6\xfb\xfc\
+\xf9\x33\xd2\xe9\x34\x71\xfc\x4e\xe2\x02\xb0\xba\xba\x0a\xd3\x34\
+\x89\xe3\x87\x86\x86\xd0\xd8\xd8\x58\xf4\xf8\xb1\x63\xc7\x70\xe3\
+\xc6\x0d\xaa\x36\xc4\x62\x31\xaa\xf8\x42\x71\x01\x88\x44\x22\xc4\
+\xb1\x1e\x8f\x87\xe8\xcb\x0d\x0d\x0d\xa1\xbe\xbe\x9e\xd8\x97\x37\
+\x13\x30\x03\x50\x14\x85\xea\x22\xe8\xe1\xc3\x87\x44\x33\x37\x97\
+\xcb\x85\x47\x8f\x1e\x11\xfb\x86\xc3\x61\xa8\xaa\x4a\x1c\x5f\x28\
+\x66\x00\x34\x19\xe0\xec\xd9\xb3\xf0\x7a\xbd\xc4\xde\xa7\x4f\x9f\
+\xc6\x99\x33\x67\x88\x62\x65\x59\x86\xae\xeb\xc4\xde\x85\x62\x06\
+\xe0\x74\x3a\x89\x96\xc1\x1c\x0e\x07\xfc\x7e\x3f\xb5\xff\xe4\xe4\
+\x24\x1c\x0e\x47\xc9\x38\x49\x92\xb8\x32\x01\x33\x00\xc3\x30\xf0\
+\xe5\xcb\x97\x92\x71\x9a\xa6\x31\x0d\x54\xc9\x64\x92\xe8\x97\xe5\
+\xcd\x04\xcc\x00\x62\xb1\x18\x71\x06\xb8\x72\xe5\x0a\xd5\x5c\x5f\
+\xd7\x75\xf4\xf7\xf7\x13\xf9\x9b\xa6\x89\x44\x22\x41\xec\x5d\x28\
+\x66\x00\x34\x19\x60\x79\x79\x99\xaa\x1b\x4c\x4c\x4c\xe0\xc3\x87\
+\x0f\x7b\xd2\x96\x42\x31\x01\x50\x55\x95\x7a\x19\xec\xee\xdd\xbb\
+\x44\xbf\xd4\xfa\xfa\x3a\x46\x47\x47\xa9\xbc\x43\xa1\x10\x73\x26\
+\x60\x02\xa0\xeb\x3a\xf5\x14\x78\x6b\x6b\x0b\x83\x83\x83\x25\xe3\
+\x06\x06\x06\xf0\xe3\xc7\x0f\x2a\x6f\x9e\x4c\xc0\x04\x80\x34\x03\
+\x14\xea\xd9\xb3\x67\x98\x9d\x9d\x2d\x7a\xfc\xd5\xab\x57\x78\xfe\
+\xfc\x39\xb5\xaf\x24\x49\x54\x53\xe8\x7c\x31\x01\x30\x4d\x13\xeb\
+\xeb\xeb\x4c\x15\xfa\x7c\xbe\x1d\x4f\x57\x5d\xd7\x71\xed\xda\x35\
+\x26\xcf\x64\x32\x49\x35\x25\xcf\x17\x13\x80\x78\x3c\xce\x5c\xe1\
+\xca\xca\x0a\xee\xdf\xbf\xbf\x6d\xff\xf8\xf8\x38\x3e\x7d\xfa\xc4\
+\xe4\xc9\x93\x09\x98\x00\xf0\xce\xbf\xc7\xc6\xc6\x10\x8f\xc7\x73\
+\xdb\xc9\x64\x12\xe3\xe3\xe3\x5c\x9e\xac\x99\x80\x1a\x80\xa6\x69\
+\xdc\x00\x14\x45\xc1\xc0\xc0\x40\x6e\xfb\xea\xd5\xab\xf8\xf9\xf3\
+\x27\x97\x27\x6b\x26\xa0\x5e\x14\xd5\x34\x4d\xc8\x9d\xe0\xe9\xe9\
+\x69\xcc\xcc\xcc\xc0\x66\xb3\x21\x18\x0c\x72\xfb\x49\x92\x04\x5d\
+\xd7\xa9\x07\x43\x6a\x00\x0e\x87\x43\xd8\x7d\x00\x9f\xcf\x27\xc4\
+\x07\xf8\x95\x0a\x59\x32\x01\x35\x00\x8b\xc5\x82\x64\x32\x49\x5d\
+\xd1\x4e\xe2\x5d\xcc\xc8\xd7\xda\xda\x1a\x53\x39\xea\x31\x20\x91\
+\x48\xc0\x30\x0c\xa6\xca\xf6\x52\x86\x61\x30\x41\xa0\x06\xc0\x33\
+\xef\xde\x6b\xb1\xb4\x8d\x0a\x80\xa6\x69\xbf\xe5\x56\x38\xa9\x42\
+\xa1\x10\xf5\x1d\x26\x6a\x00\xfb\xf9\x2c\x10\xad\x24\x49\xda\x5b\
+\x00\x22\x33\xc0\x5e\x48\x96\x65\xa2\x55\xa4\x7c\x51\x01\xb0\x58\
+\x2c\x5c\x8b\x0f\xf9\xaa\xaf\xaf\xc7\xcc\xcc\x0c\x5e\xbf\x7e\x8d\
+\xa6\xa6\x26\x21\x9e\xf1\x78\x9c\xfa\xd9\x41\x2a\x00\x6b\x6b\x6b\
+\xdc\x19\xc0\x6e\xb7\xe3\xe6\xcd\x9b\x90\x24\x09\x3d\x3d\x3d\xe8\
+\xe8\xe8\x40\x34\x1a\xc5\xbd\x7b\xf7\x98\xaf\xe8\xb2\x32\x0c\x83\
+\x3a\x45\x53\x01\xe0\x7d\x18\xb2\xd8\x97\x2d\x84\xc2\xa3\xc5\xc5\
+\x45\xaa\x78\x62\x00\xba\xae\x33\x3f\x98\x74\xe4\xc8\x11\x04\x02\
+\x81\x92\xa7\x7b\xb6\x5b\x04\x83\x41\x1c\x3d\x7a\x94\xa9\xae\xf7\
+\xef\xdf\x53\x0d\x84\xc4\x00\x54\x55\xa5\x1e\x00\x2b\x2a\x2a\xe0\
+\xf3\xf9\xf0\xf1\xe3\x47\x5c\xbc\x78\x91\xb8\x9c\xd7\xeb\x85\x24\
+\x49\x18\x19\x19\xa1\xee\x16\xb2\x2c\xef\x0d\x00\xbb\xdd\x4e\x05\
+\xa0\xbd\xbd\x1d\x91\x48\x04\x7e\xbf\x1f\x95\x95\x95\xc4\xe5\xb2\
+\x72\xb9\x5c\xb8\x73\xe7\x0e\x96\x96\x96\xd0\xdd\xdd\x4d\x5c\x8e\
+\x36\x13\x10\x03\xb0\xd9\x6c\xff\xb9\x86\x2f\xa6\x9a\x9a\x1a\x04\
+\x02\x01\xbc\x7d\xfb\x16\x27\x4e\x9c\x20\x6e\x48\x31\x1d\x3f\x7e\
+\x1c\xb3\xb3\xb3\x08\x06\x83\xf0\x78\x3c\x25\xe3\x63\xb1\x18\x0e\
+\x1c\x20\x1f\xda\x88\x23\x13\x89\xc4\xae\x0f\x28\xb3\x9e\xee\xa4\
+\xf2\x7a\xbd\x90\x65\x19\x23\x23\x23\xbb\xfe\xc2\x99\x4c\x86\x2a\
+\x13\x10\x03\x58\x5a\x5a\x2a\x7a\xec\xd4\xa9\x53\x08\x87\xc3\xf0\
+\xfb\xfd\xa8\xaa\xaa\x22\xae\x9c\x56\x6e\xb7\x3b\xd7\x2d\xba\xba\
+\xba\x8a\xc6\xed\xd6\xd6\x42\x11\x01\x28\x96\x01\xaa\xab\xab\x11\
+\x08\x04\xf0\xee\xdd\x3b\x34\x37\x37\x13\x57\xca\xab\x86\x86\x06\
+\xbc\x7c\xf9\x12\xc1\x60\x10\xb5\xb5\xb5\xdb\x8e\x2f\x2c\x2c\x10\
+\x2f\x93\x13\xad\x07\xa8\xaa\x8a\xba\xba\x3a\x5c\xbe\x7c\x39\xb7\
+\xaf\xb1\xb1\x11\x17\x2e\x5c\x40\x55\x55\x15\x14\x45\x81\xd3\xe9\
+\xa4\xea\x7b\xbc\x52\x55\x15\x6d\x6d\x6d\x98\x9f\x9f\xc7\xd3\xa7\
+\x4f\xb1\xbc\xbc\x9c\x3b\xe6\xf1\x78\xa0\xaa\x2a\xec\x76\x7b\x49\
+\x1f\x22\x00\x6e\xb7\x1b\xbd\xbd\xbd\xe8\xed\xed\xdd\xf1\xb8\x69\
+\x9a\xb9\xa7\xb5\xb2\x53\xd1\x62\xff\x8b\xed\xcb\xfa\xe4\xaf\x36\
+\xe7\x6f\x17\xee\x07\x00\xab\xd5\x8a\x43\x87\x0e\xa1\xbf\xbf\x7f\
+\x5b\x9b\x48\x33\x01\x11\x00\x9b\xcd\x06\x9b\x4d\xd8\xfb\x55\x7f\
+\x94\xfe\x7f\x6d\x2e\xfb\xe1\xcd\x9b\x37\xc2\xde\xc2\xf8\xd3\x35\
+\x37\x37\x97\xfb\x5c\xf6\x2f\x4f\x5b\x01\xfc\x05\xe0\x6f\xfc\x82\
+\x51\x4e\x32\x01\xfc\xf3\x2f\xe8\x31\x0e\x04\xd7\xcb\x8f\x12\x00\
+\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x01\x4f\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x31\x32\x30\x20\x31\x32\x30\x22\x3e\x3c\x70\x61\
+\x74\x68\x20\x64\x3d\x22\x4d\x36\x30\x20\x31\x39\x2e\x30\x39\x43\
+\x32\x32\x2e\x33\x38\x32\x20\x31\x39\x2e\x30\x39\x2e\x30\x35\x33\
+\x20\x36\x30\x20\x2e\x30\x35\x33\x20\x36\x30\x53\x32\x32\x2e\x33\
+\x38\x33\x20\x31\x30\x30\x2e\x39\x31\x20\x36\x30\x20\x31\x30\x30\
+\x2e\x39\x31\x20\x31\x31\x39\x2e\x39\x35\x20\x36\x30\x20\x31\x31\
+\x39\x2e\x39\x35\x20\x36\x30\x20\x39\x37\x2e\x36\x31\x38\x20\x31\
+\x39\x2e\x30\x39\x20\x36\x30\x20\x31\x39\x2e\x30\x39\x7a\x6d\x30\
+\x20\x36\x35\x2e\x33\x32\x63\x2d\x31\x33\x2e\x34\x36\x20\x30\x2d\
+\x32\x34\x2e\x34\x31\x2d\x31\x30\x2e\x39\x35\x2d\x32\x34\x2e\x34\
+\x31\x2d\x32\x34\x2e\x34\x31\x53\x34\x36\x2e\x35\x34\x20\x33\x35\
+\x2e\x35\x39\x20\x36\x30\x20\x33\x35\x2e\x35\x39\x20\x38\x34\x2e\
+\x34\x30\x37\x20\x34\x36\x2e\x35\x34\x20\x38\x34\x2e\x34\x30\x37\
+\x20\x36\x30\x73\x2d\x31\x30\x2e\x39\x35\x20\x32\x34\x2e\x34\x31\
+\x2d\x32\x34\x2e\x34\x31\x20\x32\x34\x2e\x34\x31\x7a\x22\x2f\x3e\
+\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x79\x3d\x22\x36\x30\x2e\x35\
+\x38\x33\x22\x20\x63\x78\x3d\x22\x36\x30\x22\x20\x72\x3d\x22\x31\
+\x34\x2e\x34\x30\x39\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x00\xb4\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x38\x20\x38\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\
+\x3d\x22\x4d\x33\x2e\x31\x31\x20\x37\x2e\x31\x37\x4c\x2e\x30\x34\
+\x38\x20\x34\x2e\x31\x30\x36\x6c\x31\x2e\x31\x34\x34\x2d\x31\x2e\
+\x31\x34\x34\x20\x33\x2e\x30\x36\x32\x20\x33\x2e\x30\x36\x32\x7a\
+\x22\x2f\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x2e\x30\
+\x36\x33\x20\x32\x2e\x32\x30\x38\x4c\x33\x2e\x37\x33\x35\x20\x36\
+\x2e\x35\x33\x36\x6c\x2d\x31\x2e\x32\x32\x2d\x31\x2e\x32\x32\x4c\
+\x36\x2e\x38\x34\x33\x2e\x39\x38\x38\x7a\x22\x2f\x3e\x3c\x2f\x73\
+\x76\x67\x3e\
+\x00\x00\x01\x25\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x34\x34\x32\x20\x33\x38\x33\x22\x3e\x3c\x74\x69\
+\x74\x6c\x65\x3e\x53\x68\x61\x70\x65\x20\x2b\x20\x53\x68\x61\x70\
+\x65\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x3c\x67\x20\x66\x69\x6c\x6c\
+\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x3e\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x34\x31\x2e\x34\x33\
+\x20\x33\x38\x32\x2e\x33\x38\x48\x30\x4c\x32\x32\x30\x2e\x37\x33\
+\x20\x30\x6c\x32\x32\x30\x2e\x37\x20\x33\x38\x32\x2e\x33\x38\x7a\
+\x4d\x38\x37\x2e\x37\x20\x33\x33\x31\x2e\x37\x33\x68\x32\x36\x36\
+\x2e\x30\x31\x4c\x32\x32\x30\x2e\x37\x33\x20\x31\x30\x31\x2e\x33\
+\x31\x20\x38\x37\x2e\x37\x20\x33\x33\x31\x2e\x37\x33\x68\x2e\x30\
+\x30\x33\x7a\x22\x2f\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\
+\x32\x30\x33\x20\x31\x37\x37\x68\x33\x35\x76\x39\x34\x2e\x37\x38\
+\x68\x2d\x33\x35\x56\x31\x37\x37\x7a\x6d\x30\x20\x31\x31\x30\x2e\
+\x37\x32\x68\x33\x35\x76\x32\x37\x2e\x38\x39\x68\x2d\x33\x35\x76\
+\x2d\x32\x37\x2e\x38\x39\x7a\x22\x2f\x3e\x3c\x2f\x67\x3e\x3c\x2f\
+\x73\x76\x67\x3e\
+\x00\x00\x00\x60\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x31\x32\x30\x20\x31\x32\x30\x22\x3e\x3c\x70\x61\
+\x74\x68\x20\x64\x3d\x22\x4d\x31\x36\x20\x31\x36\x68\x38\x38\x76\
+\x38\x38\x48\x31\x36\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x02\x70\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x31\x32\x30\x20\x31\x32\x30\x22\x3e\x3c\x70\x61\
+\x74\x68\x20\x64\x3d\x22\x4d\x33\x2e\x32\x37\x32\x20\x35\x38\x2e\
+\x37\x37\x32\x63\x30\x20\x33\x31\x2e\x32\x30\x34\x20\x32\x35\x2e\
+\x32\x39\x36\x20\x35\x36\x2e\x35\x20\x35\x36\x2e\x35\x20\x35\x36\
+\x2e\x35\x20\x33\x31\x2e\x32\x30\x33\x20\x30\x20\x35\x36\x2e\x35\
+\x2d\x32\x35\x2e\x32\x39\x36\x20\x35\x36\x2e\x35\x2d\x35\x36\x2e\
+\x35\x20\x30\x2d\x31\x36\x2e\x32\x36\x34\x2d\x36\x2e\x38\x38\x32\
+\x2d\x33\x30\x2e\x39\x31\x2d\x31\x37\x2e\x38\x38\x2d\x34\x31\x2e\
+\x32\x32\x4c\x38\x34\x2e\x30\x33\x20\x33\x32\x2e\x38\x38\x35\x63\
+\x36\x2e\x39\x31\x32\x20\x36\x2e\x34\x38\x32\x20\x31\x31\x2e\x32\
+\x34\x34\x20\x31\x35\x2e\x36\x38\x38\x20\x31\x31\x2e\x32\x34\x34\
+\x20\x32\x35\x2e\x38\x39\x20\x30\x20\x31\x39\x2e\x35\x37\x34\x2d\
+\x31\x35\x2e\x39\x32\x36\x20\x33\x35\x2e\x35\x2d\x33\x35\x2e\x35\
+\x20\x33\x35\x2e\x35\x2d\x31\x39\x2e\x35\x37\x35\x20\x30\x2d\x33\
+\x35\x2e\x35\x2d\x31\x35\x2e\x39\x32\x36\x2d\x33\x35\x2e\x35\x2d\
+\x33\x35\x2e\x35\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x31\x30\
+\x31\x30\x31\x22\x2f\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\
+\x39\x35\x2e\x32\x37\x32\x20\x35\x38\x2e\x37\x37\x32\x63\x30\x20\
+\x31\x39\x2e\x35\x37\x35\x2d\x31\x35\x2e\x39\x32\x35\x20\x33\x35\
+\x2e\x35\x2d\x33\x35\x2e\x35\x20\x33\x35\x2e\x35\x2d\x31\x39\x2e\
+\x35\x37\x34\x20\x30\x2d\x33\x35\x2e\x35\x2d\x31\x35\x2e\x39\x32\
+\x36\x2d\x33\x35\x2e\x35\x2d\x33\x35\x2e\x35\x20\x30\x2d\x31\x30\
+\x2e\x32\x20\x34\x2e\x33\x33\x32\x2d\x31\x39\x2e\x34\x30\x36\x20\
+\x31\x31\x2e\x32\x34\x35\x2d\x32\x35\x2e\x38\x39\x6c\x2d\x31\x34\
+\x2e\x33\x36\x35\x2d\x31\x35\x2e\x33\x33\x43\x31\x30\x2e\x31\x35\
+\x34\x20\x32\x37\x2e\x38\x36\x20\x33\x2e\x32\x37\x32\x20\x34\x32\
+\x2e\x35\x30\x37\x20\x33\x2e\x32\x37\x32\x20\x35\x38\x2e\x37\x37\
+\x63\x30\x20\x33\x31\x2e\x32\x30\x34\x20\x32\x35\x2e\x32\x39\x37\
+\x20\x35\x36\x2e\x35\x20\x35\x36\x2e\x35\x20\x35\x36\x2e\x35\x20\
+\x33\x31\x2e\x32\x30\x34\x20\x30\x20\x35\x36\x2e\x35\x2d\x32\x35\
+\x2e\x32\x39\x37\x20\x35\x36\x2e\x35\x2d\x35\x36\x2e\x35\x22\x20\
+\x66\x69\x6c\x6c\x3d\x22\x23\x30\x31\x30\x31\x30\x31\x22\x2f\x3e\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x39\x2e\x37\x38\x35\
+\x20\x30\x48\x36\x39\x2e\x37\x36\x76\x36\x31\x2e\x35\x37\x36\x48\
+\x34\x39\x2e\x37\x38\x35\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\
+\x30\x31\x30\x31\x30\x31\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x03\x7f\
+\x3c\
+\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\
+\x00\x00\x00\x38\x00\x58\xc0\x60\x00\x00\x00\xce\x05\xdc\x98\xcf\
+\x00\x00\x00\x6f\x07\x0f\x9f\xbe\x00\x00\x02\x4e\x09\x43\x3f\xbf\
+\x00\x00\x00\x00\x09\x9d\x07\x29\x00\x00\x02\x03\x0a\xb4\xa1\xee\
+\x00\x00\x01\x6c\x0c\x17\x1f\x5f\x00\x00\x00\xfe\x69\x00\x00\x03\
+\x26\x03\x00\x00\x00\x3c\x00\x41\x00\x62\x00\x62\x00\x72\x00\x65\
+\x00\x63\x00\x68\x00\x65\x00\x6e\x00\x20\x00\x75\x00\x6e\x00\x64\
+\x00\x20\x00\x41\x00\x72\x00\x67\x00\x6f\x00\x64\x00\x65\x00\x6a\
+\x00\x6f\x00\x20\x00\x42\x00\x65\x00\x65\x00\x6e\x00\x64\x00\x65\
+\x00\x6e\x08\x00\x00\x00\x00\x06\x00\x00\x00\x16\x41\x62\x6f\x72\
+\x74\x20\x26\x26\x20\x51\x75\x69\x74\x20\x41\x72\x67\x6f\x64\x65\
+\x6a\x6f\x07\x00\x00\x00\x08\x54\x72\x61\x79\x49\x63\x6f\x6e\x01\
+\x03\x00\x00\x00\x30\x00\x56\x00\x65\x00\x72\x00\x73\x00\x74\x00\
+\x65\x00\x63\x00\x6b\x00\x65\x00\x2f\x00\x5a\x00\x65\x00\x69\x00\
+\x67\x00\x65\x00\x20\x00\x41\x00\x72\x00\x67\x00\x6f\x00\x64\x00\
+\x65\x00\x6a\x00\x6f\x08\x00\x00\x00\x00\x06\x00\x00\x00\x12\x48\
+\x69\x64\x65\x2f\x53\x68\x6f\x77\x20\x41\x72\x67\x6f\x64\x65\x6a\
+\x6f\x07\x00\x00\x00\x08\x54\x72\x61\x79\x49\x63\x6f\x6e\x01\x03\
+\x00\x00\x00\x0e\x00\x42\x00\x65\x00\x65\x00\x6e\x00\x64\x00\x65\
+\x00\x6e\x08\x00\x00\x00\x00\x06\x00\x00\x00\x05\x51\x75\x69\x74\
+\x20\x07\x00\x00\x00\x08\x54\x72\x61\x79\x49\x63\x6f\x6e\x01\x03\
+\x00\x00\x00\x3c\x00\x53\x00\x70\x00\x65\x00\x69\x00\x63\x00\x68\
+\x00\x65\x00\x72\x00\x6e\x00\x20\x00\x75\x00\x6e\x00\x64\x00\x20\
+\x00\x41\x00\x72\x00\x67\x00\x6f\x00\x64\x00\x65\x00\x6a\x00\x6f\
+\x00\x20\x00\x42\x00\x65\x00\x65\x00\x6e\x00\x64\x00\x65\x00\x6e\
+\x08\x00\x00\x00\x00\x06\x00\x00\x00\x15\x53\x61\x76\x65\x20\x26\
+\x26\x20\x51\x75\x69\x74\x20\x41\x72\x67\x6f\x64\x65\x6a\x6f\x07\
+\x00\x00\x00\x08\x54\x72\x61\x79\x49\x63\x6f\x6e\x01\x03\x00\x00\
+\x00\x5c\x00\x45\x00\x73\x00\x20\x00\x77\x00\x75\x00\x72\x00\x64\
+\x00\x65\x00\x20\x00\x76\x00\x65\x00\x72\x00\x73\x00\x75\x00\x63\
+\x00\x68\x00\x74\x00\x20\x00\x65\x00\x69\x00\x6e\x00\x65\x00\x20\
+\x00\x77\x00\x65\x00\x69\x00\x74\x00\x65\x00\x72\x00\x65\x00\x20\
+\x00\x47\x00\x55\x00\x49\x00\x20\x00\x7a\x00\x75\x00\x20\x00\x73\
+\x00\x74\x00\x61\x00\x72\x00\x74\x00\x65\x00\x6e\x00\x2e\x08\x00\
+\x00\x00\x00\x06\x00\x00\x00\x1c\x41\x6e\x6f\x74\x68\x65\x72\x20\
+\x47\x55\x49\x20\x74\x72\x69\x65\x64\x20\x74\x6f\x20\x6c\x61\x75\
+\x6e\x63\x68\x2e\x07\x00\x00\x00\x0a\x6d\x61\x69\x6e\x57\x69\x6e\
+\x64\x6f\x77\x01\x03\x00\x00\x00\x1e\x00\x41\x00\x72\x00\x67\x00\
+\x6f\x00\x64\x00\x65\x00\x6a\x00\x6f\x00\x20\x00\x62\x00\x65\x00\
+\x72\x00\x65\x00\x69\x00\x74\x08\x00\x00\x00\x00\x06\x00\x00\x00\
+\x0e\x41\x72\x67\x6f\x64\x65\x6a\x6f\x20\x72\x65\x61\x64\x79\x07\
+\x00\x00\x00\x0a\x6d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\
+\x00\x00\x00\x82\x00\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\
+\x00\x6d\x00\x6d\x00\x64\x00\x61\x00\x74\x00\x65\x00\x6e\x00\x62\
+\x00\x61\x00\x6e\x00\x6b\x00\x20\x00\x77\x00\x69\x00\x72\x00\x64\
+\x00\x20\x00\x61\x00\x6b\x00\x74\x00\x75\x00\x61\x00\x6c\x00\x69\
+\x00\x73\x00\x69\x00\x65\x00\x72\x00\x74\x00\x2e\x00\x0a\x00\x56\
+\x00\x69\x00\x65\x00\x6c\x00\x65\x00\x6e\x00\x20\x00\x44\x00\x61\
+\x00\x6e\x00\x6b\x00\x20\x00\x66\x00\xfc\x00\x72\x00\x20\x00\x69\
+\x00\x68\x00\x72\x00\x65\x00\x20\x00\x47\x00\x65\x00\x64\x00\x75\
+\x00\x6c\x00\x64\x00\x2e\x08\x00\x00\x00\x00\x06\x00\x00\x00\x37\
+\x55\x70\x64\x61\x74\x69\x6e\x67\x20\x50\x72\x6f\x67\x72\x61\x6d\
+\x20\x44\x61\x74\x61\x62\x61\x73\x65\x2e\x0a\x54\x68\x61\x6e\x6b\
+\x20\x79\x6f\x75\x20\x66\x6f\x72\x20\x79\x6f\x75\x72\x20\x70\x61\
+\x74\x69\x65\x6e\x63\x65\x2e\x07\x00\x00\x00\x0a\x6d\x61\x69\x6e\
+\x57\x69\x6e\x64\x6f\x77\x01\x88\x00\x00\x00\x02\x01\x01\
+"
+
+qt_resource_name = b"\
+\x00\x08\
+\x0a\x61\x5a\xa7\
+\x00\x69\
+\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x0a\
+\x0a\xcc\x85\x87\
+\x00\x68\
+\x00\x69\x00\x64\x00\x64\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0b\
+\x00\xbd\xd0\x67\
+\x00\x72\
+\x00\x75\x00\x6e\x00\x6e\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0b\
+\x0c\x46\xd2\x07\
+\x00\x72\
+\x00\x65\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0b\
+\x06\x42\x36\x27\
+\x00\x73\
+\x00\x74\x00\x6f\x00\x70\x00\x70\x00\x65\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0c\
+\x0d\xfc\x11\x13\
+\x00\x74\
+\x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\
+\x00\x09\
+\x0d\xc5\xb4\x07\
+\x00\x70\
+\x00\x6f\x00\x77\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x05\
+\x00\x6a\x85\x7d\
+\x00\x64\
+\x00\x65\x00\x2e\x00\x71\x00\x6d\
+"
+
+qt_resource_struct_v1 = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
+\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x08\x43\
+\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x24\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x06\xf0\
+\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x08\xfb\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x88\
+\x00\x00\x00\x84\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\
+\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xfc\
+"
+
+qt_resource_struct_v2 = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x08\x43\
+\x00\x00\x01\x71\xa5\xd3\xf0\x16\
+\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x24\
+\x00\x00\x01\x71\xa5\xd3\xf0\x19\
+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x71\x87\x2b\x78\xc5\
+\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\x06\xf0\
+\x00\x00\x01\x71\xa5\xd3\xf0\x19\
+\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x08\xfb\
+\x00\x00\x01\x71\xa5\xd3\xf0\x16\
+\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x88\
+\x00\x00\x01\x71\xa5\xd3\xf0\x19\
+\x00\x00\x00\x84\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xfc\
+\x00\x00\x01\x71\xa8\x6a\x85\xde\
+"
+
+qt_version = [int(v) for v in QtCore.qVersion().split('.')]
+if qt_version < [5, 8, 0]:
+ rcc_version = 1
+ qt_resource_struct = qt_resource_struct_v1
+else:
+ rcc_version = 2
+ qt_resource_struct = qt_resource_struct_v2
+
+def qInitResources():
+ QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/qtgui/resources/buildresources.sh b/qtgui/resources/buildresources.sh
new file mode 100644
index 0000000..57cfa52
--- /dev/null
+++ b/qtgui/resources/buildresources.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+#https://doc.qt.io/qt-5/resources.html
+#Resources are kept up-to-date upstream. They are not part of the make and build process.
+pyrcc5 -no-compress resources.qrc -o ../resources.py #put them into the gui directly. Engine does not need any translation or images.
diff --git a/qtgui/resources/hidden.svg b/qtgui/resources/hidden.svg
new file mode 100644
index 0000000..9f36bc4
--- /dev/null
+++ b/qtgui/resources/hidden.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/qtgui/resources/icon.png b/qtgui/resources/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..01d2cd485d49c0c8117c1c2580fa29f931cb9e84
GIT binary patch
literal 1772
zcmVWNu;3RBoIH6Ft*x!U
zxjp-%xw$#a&(G(!O#tTb@UU4f8Xg|bb%k<0^>ZqF05(xZ-@kvyix)3M+3l+C?rt1D
zd{~H=5CEoWVtRTSeSLi*>`LnKd%V%3}77q2L}hy)YOEAh6Y@}etlo-&KDN|
zMNyaxzYM*d8%$*6i0HjhWrUCH5g9kWx@L+D+?RH~gVuIR7
zL?++@z>)#Fy1H=g+_`Q0&!0b!o}L~mFA>)STmaJPG&VLih~pg&2d1W`iXNYwoP^Wq
zB=-CK`7_e#G;#b+;sUU`x(d@YiQ|WchS1p9SoHX@W5;mg#to`A#9}e3_(E|3h(sd9
zu^x|y=*tZa4WYiip4gW+6EFi%6ou*{=;6bML^C&+%Y{de9ufP7!(phZN*rG(W&ku9
z;OyD6@Or((-ltEW#+fr`h+<_~hOX>Krinx%
zLF`>9W&ku9V0n3&svAs9OyI+Z4|~#
zU;?1)I`tHIYikRGgM%gG1_lQ3+4Jv`h30}Pgh;naqZeQCeLItNi`+U7ZZSZJkDI<%E}7v-@m_Y
z|M>VgK7IPcm;mt3zsJVL5Rb=m+sR}SMQCTalt`798vBuUy^03tKMUPzW@qE)1PQ30@6EL@8Z`Kqt4
z$IQ$OUcY{grluw#p7D5``q@D$0BdV&+!?@bx8vr`n~)?4Jv}|>=;%N+8pXYP_n5Ef
zvN8;VIz>|f;C&df*q1GY!lT8-MXGpW0J^R-KbUmn$Pokrfs&_twp#>)K^#4Ll&P-w
z@844mgv0<;Riz#PD=I4B^ZD@c<40V)c#*iA*XxBONf;R!q3#y4Ebk2fyWLI&puN2v
zkw^r7zaN#AmBi(;a=Bc%bLS40mX^@n-A!DMHWLs7u-RzQBfI{>
znM{T%6A%MfT3RZ4?9{1K2#3S)`~9e@sv@qOR&KXD*Dbobx{Ai_*49E10VtLMs;jFJ
z2n6u%-8(clHxpONtA>UKynOi*!C(-zwYA%hFDxt&FOw6k2dJuwy1F`CzI-{iud%Ta
z7cN{tRaF%fMS;`lr0RRTQdJdgZEcvJpU2auPqDnboIB?6c%Z5(>~?!eA0hy5w;R2^
zz3A=j-SN0-nz^U7vQyDw|BLO*`sA-R=WiG82LP+pibIDEp})U>TboET0TBS3%?6uI
z*!xv~l>UEhF8krln>WJV!uZoQH#e92T=p+dTLJt9;BWkbQBE=e{PQp9F%AUR%a0NO
O0000
\ No newline at end of file
diff --git a/qtgui/resources/removed.svg b/qtgui/resources/removed.svg
new file mode 100644
index 0000000..de1d58b
--- /dev/null
+++ b/qtgui/resources/removed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/qtgui/resources/resources.qrc b/qtgui/resources/resources.qrc
new file mode 100644
index 0000000..21192b9
--- /dev/null
+++ b/qtgui/resources/resources.qrc
@@ -0,0 +1,11 @@
+
+
+ icon.png
+ hidden.svg
+ power.svg
+ running.svg
+ stopped.svg
+ removed.svg
+ translations/de.qm
+
+
diff --git a/qtgui/resources/running.svg b/qtgui/resources/running.svg
new file mode 100644
index 0000000..7f0a083
--- /dev/null
+++ b/qtgui/resources/running.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/qtgui/resources/stopped.svg b/qtgui/resources/stopped.svg
new file mode 100644
index 0000000..e56e115
--- /dev/null
+++ b/qtgui/resources/stopped.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/qtgui/resources/translations/config.pro b/qtgui/resources/translations/config.pro
new file mode 100644
index 0000000..3ce5c4d
--- /dev/null
+++ b/qtgui/resources/translations/config.pro
@@ -0,0 +1,2 @@
+SOURCES = ../../addclientprompt.py ../../descriptiontextwidget.py ../../mainwindow.py ../../projectname.py ../../quickopensessioncontroller.py ../../quicksessioncontroller.py ../../sessiontreecontroller.py ../../opensessioncontroller.py ../../systemtray.py ../../waitdialog.py
+TRANSLATIONS = de.ts
diff --git a/qtgui/resources/translations/de.qm b/qtgui/resources/translations/de.qm
new file mode 100644
index 0000000000000000000000000000000000000000..f75ef7a01087f22075f355c1265fe986803963ba
GIT binary patch
literal 895
zcmbVK&1zFY6#mjs(*~&^s9h92ZUSynce)73tt~YhsiaX6!OqQ{=H51$36r@Eap}qz
z5L_tIcW~iG>snA>Kwm*$K*VouGzh68GR%DE%sF#@zB7$i$@06e&z`)$xN@{}`1<7UU2Qb>0hxB1Xv2v6)_pXVy>@ywV=&!(KFIDI2a^lB@$qrZe-`a^y5MOm}u
zG|H%CEd_;&mS8uiPl;NIjPZtOg1g%$eCs?1p-o-ci2(2k`!i#3KoW99#JX~oH66G_~l`UtxPW5G7c@?Xnu2;8H
bW%gxkbJ?{nppyZ8wdv>?iXM})xl-u|s4Kqf
literal 0
HcmV?d00001
diff --git a/qtgui/resources/translations/de.ts b/qtgui/resources/translations/de.ts
new file mode 100644
index 0000000..6c06855
--- /dev/null
+++ b/qtgui/resources/translations/de.ts
@@ -0,0 +1,799 @@
+
+
+
+
+ About
+
+
+
+ Spuren zu klonen ist meist besser als eine neue, leere Spur zu erstellen. Benutze Klonen immer wenn du ein neues Pattern für ein existierendes Instrument komponieren möchtest.
+
+
+
+
+ Um komplexe Rhythmen zu erstellen versuche Patroneo mehrmals zu starten und verschiedene Taktarten einzustellen.
+
+
+
+
+ Alle gedehnten oder verkürzte Noten im Takt bekommst du am einfachsten zurück auf die normale Länge wenn du zweimal hintereinander die "Umkehren" Funktion benutzt.
+
+
+
+
+ MIDI Control Changes (CC) werden nicht direkt von Patroneo erzeugt. Route eine Extraspur in ein Konverterplugin, dass aus Pitch und Velocity CC und Value macht.
+
+
+
+
+ Das Mausrad ist sehr wichtig: Es transponiert Takte (mit oder ohne Umschalttaste), verändert die Größe der Taktgruppen, zoomed wenn Strg gedrückt ist, ändert die Lautstärke einer ganzen Reihe zusammen mit der Alt-Taste oder lässt eine Note erklingen wenn man es auf einem Schritt drückt.
+
+
+
+
+ Die meisten Bedienelemente haben ein Kontextmenü. Versuche auf alles mit der rechten Maustaste zu klicken: Schritte, Takte, der Spurname etc.
+
+
+
+ AskBeforeQuit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EventContextMenu
+
+
+
+ Schritte invertieren
+
+
+
+
+ Alle Schritte an
+
+
+
+
+ Alles Schritte aus
+
+
+
+
+ Reihe mit Wiederholung bis hier befüllen
+
+
+
+
+ Reihe löschen
+
+
+
+
+ Reihe umkehren
+
+
+
+
+ Reihe mit Wiederholung bis Schritt {} befüllen
+
+
+
+ Launcher
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LoadedSessionDescription
+
+
+
+
+
+
+
+ MainWindow
+
+
+
+ Neue Spur
+
+
+
+
+ Klone aktuelle Spur
+
+
+
+
+ Zum Anfang
+
+
+
+ Menu
+
+
+
+ Gruppierung umwandeln
+
+
+
+
+ Taktartaufspaltung durch Gruppierung umwandeln, versucht die Musik gleich klingen zu lassen
+
+
+
+ OpenSession
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PlaybackControls
+
+
+
+ [Leertaste] Play / Pause
+
+
+
+
+ [L] Aktueller Takt in Schleife spielen
+
+
+
+
+ [Pos1] Springe zum Anfang
+
+
+
+ ProjectNameWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PromptWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scale
+
+
+
+ Dur
+
+
+
+
+ Moll
+
+
+
+
+ Dorisch
+
+
+
+
+ Phrygisch
+
+
+
+
+ Lydisch
+
+
+
+
+ Mixolydisch
+
+
+
+
+ Lokrisch
+
+
+
+
+ Blues
+
+
+
+
+ Hollywood
+
+
+
+
+ Englisch
+
+
+
+
+ Lilypond
+
+
+
+
+ Deutsch
+
+
+
+
+ Drums GM
+
+
+
+
+ Chromatisch
+
+
+
+ SessionTree
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SongStructure
+
+
+
+ {} leere Takte vor Takt {} einfügen
+
+
+
+
+ Lösche {} Takte von Takt {} beginnend
+
+
+
+
+ Leere Taktgruppe vor dieser einfügen
+
+
+
+
+ Lösche diese Taktgruppe
+
+
+
+
+ Verdopple diese Taktgruppe inkl. Struktur
+
+
+
+
+ Setze alle Transpositionen dieser Taktgruppe zurück
+
+
+
+ TimeSignature
+
+
+
+ Ganze
+
+
+
+
+ Halbe
+
+
+
+
+ Viertel
+
+
+
+
+ Achtel
+
+
+
+
+ Sechzehntel
+
+
+
+ Timeline
+
+
+
+ Klicken um die Wiedergabeposition zu ändern. Mausrad um die Taktgruppen zu ändern.
+
+
+
+ Toolbar
+
+
+
+ BPM/Tempo:
+
+
+
+
+ Aus: JACK Transport Slave. An: JACK Master (eigenes Tempo).
+
+
+
+
+ Länge des Stückes in Takten
+
+
+
+
+ Bitte im Handbuch nachlesen!
+
+
+
+
+ Länge des Musters in Schritten (untere Hälfte des Programms)
+
+
+
+
+ Welchen Notenwert repräsentiert ein Schritt
+
+
+
+
+ Gruppierung umwandeln
+
+
+
+
+ Taktartaufspaltung durch Gruppierung umwandeln, versucht die Musik gleich klingen zu lassen
+
+
+
+
+ Klone ausgewählte Spur
+
+
+
+
+ Das hier benutzen! Neue Spur, die alle Eigenschaften außer der Musik selbst vom Original erbt. Ist bereits in JACK verbunden!
+
+
+
+
+ Neue Spur
+
+
+
+
+ Eine neue, leere Spur, bei der man noch per Hand ein Instrument mit JACK verbinden muss.
+
+
+
+
+ Takte pro Spur:
+
+
+
+
+ Schritte pro Takt:
+
+
+
+
+ gruppiert in je:
+
+
+
+
+ und jede Gruppe ergibt eine:
+
+
+
+ TrackLabel
+
+
+
+ mit der maus halten und ziehen um Spuren anzuordnen
+
+
+
+
+ setze Farbe der Spur
+
+
+
+ TrackLabelContext
+
+
+
+ Taktauswahl umdrehen
+
+
+
+
+ Alle Takte anschalten
+
+
+
+
+ Alle Takte ausschalten
+
+
+
+
+ Spur klonen
+
+
+
+
+ Spur löschen
+
+
+
+
+ Übernimm Struktur von
+
+
+
+
+ Übernimm und ergänze Struktur von
+
+
+
+
+ Ersetze Noten des Taktes durch
+
+
+
+ TransposeControls
+
+
+
+ +Halbton
+
+
+
+
+ Transponiere die Tonleiter einen Halbton aufwärts (+1 MIDI Tonhöhe)
+
+
+
+
+ -Halbton
+
+
+
+
+ Transponiere die Tonleiter einen Halbton abwärts (-1 MIDI Tonhöhe)
+
+
+
+
+ +Oktave
+
+
+
+
+ Transponiere die Tonleiter eine Oktave aufwärts (+12 MIDI Tonhöhe)
+
+
+
+
+ -Oktave
+
+
+
+
+ Transponiere die Tonleiter eine Oktave abwärts (-12 MIDI Tonhöhe)
+
+
+
+
+ Benutze Tonleiter:
+
+
+
+
+ Ändere die Tonleiter des Musters auf die Ausgewählte. Referenzton ist die unterste Reihe des Musters.
+
+
+
+
+ Benutze Notennamen:
+
+
+
+
+ Use this scheme as note names.
+
+
+
+ TrayIcon
+
+
+
+ Verstecke/Zeige Argodejo
+
+
+
+
+ Speichern und Argodejo Beenden
+
+
+
+
+ Abbrechen und Argodejo Beenden
+
+
+
+
+ Beenden
+
+
+
+ VelocityControls
+
+
+
+ +Velocity
+
+
+
+
+ Alle Töne lauter machen. Mit dem Mauszeiger über dem Knopf bleiben und das Mausrad auf oder ab bewegen für 10er Schritte.
+
+
+
+
+ -Velocity
+
+
+
+
+ Alle Töne leiser machen. Mit dem Mauszeiger über dem Knopf bleiben und das Mausrad auf oder ab bewegen für 10er Schritte.
+
+
+
+ convertSubdivisionsSubMenu
+
+
+
+ Neue Gruppierung
+
+
+
+
+ Nichts machen
+
+
+
+
+ Falsche Schritte löschen
+
+
+
+
+ Falsche Schritte mit einbinden
+
+
+
+
+ Falls unmöglich
+
+
+
+ mainWindow
+
+
+
+ Argodejo bereit
+
+
+
+
+ Es wurde versucht eine weitere GUI zu starten.
+
+
+
+
+ Programmdatenbank wird aktualisiert.
+Vielen Dank für ihre Geduld.
+
+
+
diff --git a/qtgui/resources/translations/update.sh b/qtgui/resources/translations/update.sh
new file mode 100644
index 0000000..c166f03
--- /dev/null
+++ b/qtgui/resources/translations/update.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -e
+pylupdate5 config.pro
+echo "linguist-qt5 de.ts"
diff --git a/qtgui/systemtray.py b/qtgui/systemtray.py
index 7be1e99..c5d94d8 100644
--- a/qtgui/systemtray.py
+++ b/qtgui/systemtray.py
@@ -31,10 +31,13 @@ from PyQt5 import QtCore, QtGui, QtWidgets
#Engine
import engine.api as api #This loads the engine and starts a session.
+#QtGui
+from .resources import *
+
class SystemTray(QtWidgets.QSystemTrayIcon):
def __init__(self, mainWindow):
- super().__init__(QtGui.QIcon("icon.png"))
+ super().__init__(QtGui.QIcon(":icon.png"))
self.mainWindow = mainWindow
self.available = self.isSystemTrayAvailable()
self.show()