Browse Source

Add user manual to control menu

master
Nils 4 years ago
parent
commit
61475b40cc
  1. 7
      qtgui/designer/mainwindow.py
  2. 11
      qtgui/designer/mainwindow.ui
  3. 54
      qtgui/designer/usermanual.py
  4. 75
      qtgui/designer/usermanual.ui
  5. 7
      qtgui/mainwindow.py
  6. 1786
      qtgui/resources.py
  7. 2
      qtgui/resources/translations/config.pro
  8. BIN
      qtgui/resources/translations/de.qm
  9. 202
      qtgui/resources/translations/de.ts
  10. 68
      qtgui/usermanual.py

7
qtgui/designer/mainwindow.py

@ -280,8 +280,6 @@ class Ui_MainWindow(object):
self.actionMenuQuit.setObjectName("actionMenuQuit")
self.actionAbout = QtWidgets.QAction(MainWindow)
self.actionAbout.setObjectName("actionAbout")
self.actionManual = QtWidgets.QAction(MainWindow)
self.actionManual.setObjectName("actionManual")
self.actionHide_in_System_Tray = QtWidgets.QAction(MainWindow)
self.actionHide_in_System_Tray.setObjectName("actionHide_in_System_Tray")
self.actionSessionAddClient = QtWidgets.QAction(MainWindow)
@ -314,6 +312,9 @@ class Ui_MainWindow(object):
self.actionClientRename.setObjectName("actionClientRename")
self.actionSettings = QtWidgets.QAction(MainWindow)
self.actionSettings.setObjectName("actionSettings")
self.actionManual = QtWidgets.QAction(MainWindow)
self.actionManual.setObjectName("actionManual")
self.menuControl.addAction(self.actionManual)
self.menuControl.addAction(self.actionRebuild_Program_Database)
self.menuControl.addAction(self.actionHide_in_System_Tray)
self.menuControl.addAction(self.actionSettings)
@ -382,7 +383,6 @@ class Ui_MainWindow(object):
self.actionMenuQuit.setText(_translate("MainWindow", "Quit"))
self.actionMenuQuit.setShortcut(_translate("MainWindow", "Ctrl+Shift+Q"))
self.actionAbout.setText(_translate("MainWindow", "About"))
self.actionManual.setText(_translate("MainWindow", "Manual"))
self.actionHide_in_System_Tray.setText(_translate("MainWindow", "Hide in System Tray"))
self.actionHide_in_System_Tray.setShortcut(_translate("MainWindow", "Ctrl+Q"))
self.actionSessionAddClient.setText(_translate("MainWindow", "Add Client (Prompt)"))
@ -411,3 +411,4 @@ class Ui_MainWindow(object):
self.actionClientRename.setText(_translate("MainWindow", "Rename"))
self.actionClientRename.setShortcut(_translate("MainWindow", "F2"))
self.actionSettings.setText(_translate("MainWindow", "Settings"))
self.actionManual.setText(_translate("MainWindow", "Manual"))

11
qtgui/designer/mainwindow.ui

@ -637,6 +637,7 @@
<property name="title">
<string>Control</string>
</property>
<addaction name="actionManual"/>
<addaction name="actionRebuild_Program_Database"/>
<addaction name="actionHide_in_System_Tray"/>
<addaction name="actionSettings"/>
@ -684,11 +685,6 @@
<string>About</string>
</property>
</action>
<action name="actionManual">
<property name="text">
<string>Manual</string>
</property>
</action>
<action name="actionHide_in_System_Tray">
<property name="text">
<string>Hide in System Tray</string>
@ -805,6 +801,11 @@
<string>Settings</string>
</property>
</action>
<action name="actionManual">
<property name="text">
<string>Manual</string>
</property>
</action>
</widget>
<resources/>
<connections/>

54
qtgui/designer/usermanual.py

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'usermanual.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_TemplateUserManual(object):
def setupUi(self, TemplateUserManual):
TemplateUserManual.setObjectName("TemplateUserManual")
TemplateUserManual.resize(776, 733)
self.verticalLayout = QtWidgets.QVBoxLayout(TemplateUserManual)
self.verticalLayout.setObjectName("verticalLayout")
self.widget = QtWidgets.QWidget(TemplateUserManual)
self.widget.setObjectName("widget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.home = QtWidgets.QPushButton(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.home.sizePolicy().hasHeightForWidth())
self.home.setSizePolicy(sizePolicy)
self.home.setFlat(False)
self.home.setObjectName("home")
self.horizontalLayout.addWidget(self.home)
self.back = QtWidgets.QPushButton(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.back.sizePolicy().hasHeightForWidth())
self.back.setSizePolicy(sizePolicy)
self.back.setShortcut("Backspace")
self.back.setObjectName("back")
self.horizontalLayout.addWidget(self.back)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.widget)
self.textBrowser = QtWidgets.QTextBrowser(TemplateUserManual)
self.textBrowser.setObjectName("textBrowser")
self.verticalLayout.addWidget(self.textBrowser)
self.retranslateUi(TemplateUserManual)
QtCore.QMetaObject.connectSlotsByName(TemplateUserManual)
def retranslateUi(self, TemplateUserManual):
_translate = QtCore.QCoreApplication.translate
TemplateUserManual.setWindowTitle(_translate("TemplateUserManual", "Form"))
self.home.setText(_translate("TemplateUserManual", "Home"))
self.back.setText(_translate("TemplateUserManual", "Back"))

75
qtgui/designer/usermanual.ui

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TemplateUserManual</class>
<widget class="QWidget" name="TemplateUserManual">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>776</width>
<height>733</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="home">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Home</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="back">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Back</string>
</property>
<property name="shortcut">
<string notr="true">Backspace</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

7
qtgui/mainwindow.py

@ -38,6 +38,7 @@ import engine.api as api #This loads the engine and starts a session.
from .systemtray import SystemTray
from .eventloop import EventLoop
from .designer.mainwindow import Ui_MainWindow
from .usermanual import UserManual
from .helper import setPaletteAndFont
from .helper import iconFromString
from .sessiontreecontroller import SessionTreeController
@ -50,10 +51,11 @@ from .waitdialog import WaitDialog
from .resources import *
from .settings import SettingsDialog
api.eventLoop = EventLoop()
#Setup the translator before classes are set up. Otherwise we can't use non-template translation.
#to test use LANGUAGE=de_DE.UTF-8 . not LANG=
#to test use LANGUAGE=de_DE.UTF-8 ./argodejo
language = QtCore.QLocale().languageToString(QtCore.QLocale().language())
logger.info("{}: Language set to {}".format(METADATA["name"], language))
if language in METADATA["supportedLanguages"]:
@ -135,6 +137,8 @@ class MainWindow(QtWidgets.QMainWindow):
self.fPalBlue = setPaletteAndFont(self.qtApp)
assert self.ui.tabbyCat.currentIndex() == 0, self.ui.tabbyCat.currentIndex() # this is critical. If you left the Qt Designer with the wrong tab open this is the error that happens. It will trigger the tab changed later that will go wrong because setup is not complete yet and you'll get AttributeError
self.userManual = UserManual(mainWindow=self)
self.ui.mainPageSwitcher.setCurrentIndex(0) #1 is messageLabel 0 is the tab widget
SettingsDialog.loadFromSettingsAndSendToEngine() #set blacklist, whitelist for programdatabase and addtional executable paths for environment
@ -389,6 +393,7 @@ class MainWindow(QtWidgets.QMainWindow):
def connectMenu(self):
#Control
self.ui.actionManual.triggered.connect(self.userManual.show)
self.ui.actionRebuild_Program_Database.triggered.connect(self.updateProgramDatabase)
self.ui.actionSettings.triggered.connect(self._reactMenu_settings)
self.ui.actionHide_in_System_Tray.triggered.connect(lambda: self.toggleVisible(force=False))

1786
qtgui/resources.py

File diff suppressed because it is too large

2
qtgui/resources/translations/config.pro

@ -1,2 +1,2 @@
SOURCES = ../../addclientprompt.py ../../descriptiontextwidget.py ../../mainwindow.py ../../projectname.py ../../quickopensessioncontroller.py ../../quicksessioncontroller.py ../../sessiontreecontroller.py ../../opensessioncontroller.py ../../systemtray.py ../../waitdialog.py ../../designer/mainwindow.py ../../designer/newsession.py ../../designer/projectname.py ../../designer/settings.py
SOURCES = ../../addclientprompt.py ../../descriptiontextwidget.py ../../mainwindow.py ../../projectname.py ../../quickopensessioncontroller.py ../../quicksessioncontroller.py ../../sessiontreecontroller.py ../../opensessioncontroller.py ../../systemtray.py ../../waitdialog.py ../../usermanual.py ../../designer/mainwindow.py ../../designer/newsession.py ../../designer/projectname.py ../../designer/settings.py ../../designer/usermanual.py
TRANSLATIONS = de.ts

BIN
qtgui/resources/translations/de.qm

Binary file not shown.

202
qtgui/resources/translations/de.ts

@ -4,32 +4,32 @@
<context>
<name>AskBeforeQuit</name>
<message>
<location filename="../../mainwindow.py" line="300"/>
<location filename="../../mainwindow.py" line="326"/>
<source>About to quit but session {} still open</source>
<translation>Programm soll beendet werden, aber Session {} ist noch offen</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="301"/>
<location filename="../../mainwindow.py" line="327"/>
<source>Do you want to save?</source>
<translation>Möchten Sie speichern?</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="302"/>
<location filename="../../mainwindow.py" line="328"/>
<source>About to quit</source>
<translation>Programm soll beendet werden</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="311"/>
<location filename="../../mainwindow.py" line="337"/>
<source>Don&apos;t Quit</source>
<translation>Nicht Beenden</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="312"/>
<location filename="../../mainwindow.py" line="338"/>
<source>Save</source>
<translation>Speichern</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="313"/>
<location filename="../../mainwindow.py" line="339"/>
<source>Discard Changes</source>
<translation>Änderungen Verwerfen</translation>
</message>
@ -75,17 +75,17 @@
<context>
<name>Launcher</name>
<message>
<location filename="../../opensessioncontroller.py" line="421"/>
<location filename="../../opensessioncontroller.py" line="446"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="422"/>
<location filename="../../opensessioncontroller.py" line="447"/>
<source>Description</source>
<translation>Beschreibung</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="423"/>
<location filename="../../opensessioncontroller.py" line="448"/>
<source>Path</source>
<translation>Pfad</translation>
</message>
@ -103,187 +103,187 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<context>
<name>MainWindow</name>
<message>
<location filename="../../designer/mainwindow.py" line="348"/>
<location filename="../../designer/mainwindow.py" line="350"/>
<source>Argodejo</source>
<translation>Argodejo</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="349"/>
<location filename="../../designer/mainwindow.py" line="351"/>
<source>Start New Session</source>
<translation>Neue Session starten</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="350"/>
<location filename="../../designer/mainwindow.py" line="352"/>
<source>Session Name Goes Here</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="389"/>
<location filename="../../designer/mainwindow.py" line="390"/>
<source>Save</source>
<translation>Speichern</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="393"/>
<location filename="../../designer/mainwindow.py" line="394"/>
<source>Save and Close</source>
<translation>Speichern und Schließen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="361"/>
<location filename="../../designer/mainwindow.py" line="363"/>
<source>Session Notes</source>
<translation>Session Notizen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="355"/>
<location filename="../../designer/mainwindow.py" line="357"/>
<source>Quick View</source>
<translation>Schnelle Ansicht</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="356"/>
<location filename="../../designer/mainwindow.py" line="358"/>
<source>New</source>
<translation>Neu</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="357"/>
<location filename="../../designer/mainwindow.py" line="359"/>
<source>Load Selected</source>
<translation>Lade Ausgewählte</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="358"/>
<location filename="../../designer/mainwindow.py" line="360"/>
<source>Tree View</source>
<translation>Baumansicht</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="359"/>
<location filename="../../designer/mainwindow.py" line="361"/>
<source>Double-click to load program</source>
<translation>Doppelklick um Programm zu starten</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="360"/>
<location filename="../../designer/mainwindow.py" line="362"/>
<source>In current session</source>
<translation>Momentan in der Session</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="362"/>
<location filename="../../designer/mainwindow.py" line="364"/>
<source>Full View</source>
<translation>Volle Ansicht</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="365"/>
<location filename="../../designer/mainwindow.py" line="367"/>
<source>JACK</source>
<translation>JACK</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="366"/>
<location filename="../../designer/mainwindow.py" line="368"/>
<source>version and running</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="367"/>
<location filename="../../designer/mainwindow.py" line="369"/>
<source>NSM Server Mode</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="368"/>
<location filename="../../designer/mainwindow.py" line="370"/>
<source>Self-started, connected to, environment var</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="369"/>
<location filename="../../designer/mainwindow.py" line="371"/>
<source>NSM Url</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="370"/>
<location filename="../../designer/mainwindow.py" line="372"/>
<source>osc.upd ip port</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="371"/>
<location filename="../../designer/mainwindow.py" line="373"/>
<source>Session Root</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="372"/>
<location filename="../../designer/mainwindow.py" line="374"/>
<source>/home/usr/NSM Sessions</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="373"/>
<location filename="../../designer/mainwindow.py" line="375"/>
<source>Program Database</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="374"/>
<location filename="../../designer/mainwindow.py" line="376"/>
<source>Last Updated</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="376"/>
<location filename="../../designer/mainwindow.py" line="378"/>
<source>Information</source>
<translation>Information</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="377"/>
<location filename="../../designer/mainwindow.py" line="379"/>
<source>Processing</source>
<translation>Arbeitet</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="378"/>
<location filename="../../designer/mainwindow.py" line="380"/>
<source>Control</source>
<translation>Steuerung</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="379"/>
<location filename="../../designer/mainwindow.py" line="381"/>
<source>SessionName</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="380"/>
<location filename="../../designer/mainwindow.py" line="382"/>
<source>ClientNameId</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="381"/>
<location filename="../../designer/mainwindow.py" line="383"/>
<source>Quit</source>
<translation>Beenden</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="382"/>
<location filename="../../designer/mainwindow.py" line="384"/>
<source>Ctrl+Shift+Q</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="383"/>
<location filename="../../designer/mainwindow.py" line="385"/>
<source>About</source>
<translation>Über</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="384"/>
<location filename="../../designer/mainwindow.py" line="414"/>
<source>Manual</source>
<translation>Handbuch</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="385"/>
<location filename="../../designer/mainwindow.py" line="386"/>
<source>Hide in System Tray</source>
<translation>Minimieren zum Tray</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="386"/>
<location filename="../../designer/mainwindow.py" line="387"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="387"/>
<location filename="../../designer/mainwindow.py" line="388"/>
<source>Add Client (Prompt)</source>
<translation>Programm hinzufügen (Prompt)</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="388"/>
<location filename="../../designer/mainwindow.py" line="389"/>
<source>A</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="390"/>
<location filename="../../designer/mainwindow.py" line="391"/>
<source>Ctrl+S</source>
<translation></translation>
</message>
@ -293,12 +293,12 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<translation type="obsolete">Speichern unter</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="392"/>
<location filename="../../designer/mainwindow.py" line="393"/>
<source>Ctrl+Shift+S</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="394"/>
<location filename="../../designer/mainwindow.py" line="395"/>
<source>Ctrl+W</source>
<translation></translation>
</message>
@ -308,97 +308,97 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<translation type="obsolete">Abbrechen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="396"/>
<location filename="../../designer/mainwindow.py" line="397"/>
<source>Ctrl+Shift+W</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="397"/>
<location filename="../../designer/mainwindow.py" line="398"/>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="398"/>
<location filename="../../designer/mainwindow.py" line="399"/>
<source>Alt+O</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="399"/>
<location filename="../../designer/mainwindow.py" line="400"/>
<source>Resume</source>
<translation>Fortführen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="400"/>
<location filename="../../designer/mainwindow.py" line="401"/>
<source>Alt+R</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="401"/>
<location filename="../../designer/mainwindow.py" line="402"/>
<source>Save separately</source>
<translation>Seperat speichern</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="402"/>
<location filename="../../designer/mainwindow.py" line="403"/>
<source>Alt+S</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="403"/>
<location filename="../../designer/mainwindow.py" line="404"/>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="404"/>
<location filename="../../designer/mainwindow.py" line="405"/>
<source>Alt+X</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="405"/>
<location filename="../../designer/mainwindow.py" line="406"/>
<source>Toggle Visible</source>
<translation>Sichtbarkeit umschalten</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="406"/>
<location filename="../../designer/mainwindow.py" line="407"/>
<source>Alt+T</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="407"/>
<location filename="../../designer/mainwindow.py" line="408"/>
<source>Show All Clients</source>
<translation>Zeige alle Clients</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="408"/>
<location filename="../../designer/mainwindow.py" line="409"/>
<source>Hide All Clients</source>
<translation>Verstecke alle Clients</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="409"/>
<location filename="../../designer/mainwindow.py" line="410"/>
<source>Rebuild Program Database</source>
<translation>Programmdatenbank generieren</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="410"/>
<location filename="../../designer/mainwindow.py" line="411"/>
<source>Rename</source>
<translation>Umbenennen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="411"/>
<location filename="../../designer/mainwindow.py" line="412"/>
<source>F2</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="412"/>
<location filename="../../designer/mainwindow.py" line="413"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="391"/>
<location filename="../../designer/mainwindow.py" line="392"/>
<source>Save and Clone under different name</source>
<translation>Speichern und mit anderem Namen neu öffnen</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="395"/>
<location filename="../../designer/mainwindow.py" line="396"/>
<source>Close without Save (&quot;Abort&quot;)</source>
<translation>Schließen ohne zu Speichern (&quot;Abbrechen&quot;)</translation>
</message>
@ -431,47 +431,47 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<context>
<name>OpenSession</name>
<message>
<location filename="../../opensessioncontroller.py" line="91"/>
<location filename="../../opensessioncontroller.py" line="97"/>
<source>not saved</source>
<translation>ungespeichert</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="93"/>
<location filename="../../opensessioncontroller.py" line="99"/>
<source>clean</source>
<translation>clean</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="117"/>
<source>(command not found)</source>
<translation>(Befehl nicht gefunden)</translation>
<translation type="obsolete">(Befehl nicht gefunden)</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="140"/>
<location filename="../../opensessioncontroller.py" line="156"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="141"/>
<location filename="../../opensessioncontroller.py" line="157"/>
<source>Label</source>
<translation>Label</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="142"/>
<location filename="../../opensessioncontroller.py" line="158"/>
<source>Status</source>
<translation>Status</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="143"/>
<location filename="../../opensessioncontroller.py" line="159"/>
<source>Visible</source>
<translation>Sichtbarkeit</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="144"/>
<location filename="../../opensessioncontroller.py" line="160"/>
<source>Changes</source>
<translation>Änderungen</translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="145"/>
<location filename="../../opensessioncontroller.py" line="161"/>
<source>ID</source>
<translation>ID</translation>
</message>
@ -480,16 +480,6 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<source>?</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="86"/>
<source></source>
<translation></translation>
</message>
<message>
<location filename="../../opensessioncontroller.py" line="88"/>
<source></source>
<translation></translation>
</message>
</context>
<context>
<name>ProjectName</name>
@ -540,19 +530,24 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<context>
<name>PromptWidget</name>
<message>
<location filename="../../addclientprompt.py" line="58"/>
<location filename="../../addclientprompt.py" line="60"/>
<source>Type in the name of an executable file on your system.</source>
<translation>Schreiben Sie den Namen einer ausführbaren Datei von ihrem System.</translation>
</message>
<message>
<location filename="../../addclientprompt.py" line="60"/>
<location filename="../../addclientprompt.py" line="62"/>
<source>No program database found. Please update through Control menu.</source>
<translation>Keine Programm-Datenbank gefunden. Bitte benutzen Sie das Steuerungsmenü um diese zu erstellen.</translation>
</message>
<message>
<location filename="../../addclientprompt.py" line="68"/>
<source>Command not accepted!&lt;br&gt;Parameters, --switches and relative paths are not allowed.&lt;br&gt;Use nsm-proxy or write a starter-script instead.</source>
<translation>Befehl nicht akzeptiert!&lt;br&gt;Parameter, --schalter und relative Pfade sind nicht erlaubt.&lt;br&gt;Benutzen Sie stattdessen ein Programm wie nsm-proxy oder schreiben sie selbst ein Starterscript.</translation>
<translation type="obsolete">Befehl nicht akzeptiert!&lt;br&gt;Parameter, --schalter und relative Pfade sind nicht erlaubt.&lt;br&gt;Benutzen Sie stattdessen ein Programm wie nsm-proxy oder schreiben sie selbst ein Starterscript.</translation>
</message>
<message>
<location filename="../../addclientprompt.py" line="70"/>
<source>Command not found or not accepted!&lt;br&gt;Parameters, --switches and relative paths are not allowed.&lt;br&gt;Use nsm-proxy or write a starter-script instead.</source>
<translation>Befehl nicht gefunden oder nicht akzeptiert!&lt;br&gt;Parameter, --schalter und relative Pfade sind nicht erlaubt.&lt;br&gt;Benutzen Sie stattdessen ein Programm wie nsm-proxy oder schreiben sie selbst ein Starterscript.</translation>
</message>
</context>
<context>
@ -628,6 +623,29 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<translation>Session löschen</translation>
</message>
</context>
<context>
<name>TemplateUserManual</name>
<message>
<location filename="../../usermanual.py" line="52"/>
<source>User Manual</source>
<translation>Benutzerhandbuch</translation>
</message>
<message>
<location filename="../../designer/usermanual.py" line="51"/>
<source>Form</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/usermanual.py" line="52"/>
<source>Home</source>
<translation>Startseite</translation>
</message>
<message>
<location filename="../../designer/usermanual.py" line="53"/>
<source>Back</source>
<translation>Zurück</translation>
</message>
</context>
<context>
<name>TrayIcon</name>
<message>
@ -664,17 +682,17 @@ Für Notizen, TODO, Referenzen, Quellen etc…</translation>
<context>
<name>mainWindow</name>
<message>
<location filename="../../mainwindow.py" line="198"/>
<location filename="../../mainwindow.py" line="208"/>
<source>Argodejo ready</source>
<translation>Argodejo ist bereit</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="233"/>
<location filename="../../mainwindow.py" line="243"/>
<source>Another GUI tried to launch.</source>
<translation>Es wurde versucht eine weitere GUI zu starten.</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="261"/>
<location filename="../../mainwindow.py" line="286"/>
<source>Updating Program Database.
Thank you for your patience.</source>
<translation>Programmdatenbank wird aktualisiert.

68
qtgui/usermanual.py

@ -0,0 +1,68 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Copyright 2020, Nils Hilbricht, Germany ( https://www.hilbricht.net )
This file is part of the Laborejo Software Suite ( https://www.laborejo.org ),
This application is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import logging; logger = logging.getLogger(__name__); logger.info("import")
#System Wide Modules
from PyQt5 import QtCore, QtWidgets, QtGui
#Local Modules
from engine.config import * #imports METADATA
from .designer.usermanual import Ui_TemplateUserManual
from engine.start import PATHS
class UserManual(QtWidgets.QWidget):
"""A modal window that is hidden"""
def __init__(self, mainWindow):
super().__init__()
self.mainWindow = mainWindow
self.ui = Ui_TemplateUserManual()
self.ui.setupUi(self)
self.text = self.ui.textBrowser
self.text.setSearchPaths([PATHS["doc"]]) #it's a list!
self.text.setSource(QtCore.QUrl("index.html"))
self.text.highlighted.connect(self.blockLink)
self.ui.back.clicked.connect(self.text.backward)
self.ui.home.clicked.connect(self.text.home)
self.setWindowTitle(METADATA["name"] + " " + QtCore.QCoreApplication.translate("TemplateUserManual", "User Manual"))
self.hide()
def blockLink(self, qurl):
"""The browser displays binary "text" when following a link to an image.
prevent that"""
if qurl.url().endswith(".png") or qurl.url().startswith("http") or qurl.url().startswith("mailto"):
#About to click an url.
self.text.setOpenLinks(False)
return False
else:
self.text.setOpenLinks(True)
return True
def closeEvent(self, event):
self.hide()
Loading…
Cancel
Save