diff --git a/icons/Manuskript/logo-400x104.png b/icons/Manuskript/logo-400x104.png new file mode 100644 index 00000000..56d0ba67 Binary files /dev/null and b/icons/Manuskript/logo-400x104.png differ diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index a511a7ba..2781f91a 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -18,6 +18,7 @@ from manuskript.models.plotModel import plotModel from manuskript.models.worldModel import worldModel from manuskript.settingsWindow import settingsWindow from manuskript.ui import style +from manuskript.ui.about import aboutDialog from manuskript.ui.collapsibleDockWidgets import collapsibleDockWidgets from manuskript.ui.exporters.exporter import exporterDialog from manuskript.ui.helpLabel import helpLabel @@ -107,6 +108,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.actCloseProject.triggered.connect(self.closeProject) self.actQuit.triggered.connect(self.close) self.actToolFrequency.triggered.connect(self.frequencyAnalyzer) + self.actAbout.triggered.connect(self.about) self.generateViewMenu() self.actModeGroup = QActionGroup(self) @@ -798,6 +800,19 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.tblDebugPlots.selectionModel().currentIndex().row(), Plot.steps.value))) + ############################################################################### + # HELP + ############################################################################### + + def about(self): + self.dialog = aboutDialog(mw=self) + self.dialog.setFixedSize(self.dialog.size()) + self.dialog.show() + # Center about dialog + r = self.dialog.geometry() + r2 = self.geometry() + self.dialog.move(r2.center() - r.center()) + ############################################################################### # GENERAL AKA UNSORTED ############################################################################### diff --git a/manuskript/ui/about.py b/manuskript/ui/about.py new file mode 100644 index 00000000..aecb936b --- /dev/null +++ b/manuskript/ui/about.py @@ -0,0 +1,48 @@ +# --!-- coding: utf8 --!-- + +from PyQt5.Qt import PYQT_VERSION_STR +from PyQt5.QtCore import QT_VERSION_STR +from PyQt5.QtGui import QIcon, QPixmap +from PyQt5.QtWidgets import QWidget +from platform import python_version + +from manuskript.functions import appPath +from manuskript.ui import about +from manuskript.ui.about_ui import Ui_about +from manuskript.version import getVersion + +class aboutDialog(QWidget, Ui_about): + def __init__(self, parent=None, mw=None): + QWidget.__init__(self, parent) + self.setupUi(self) + self.populateFields() + self.buttonBox.accepted.connect(self.accept) + + def populateFields(self): + # Fill in all the fields in the About dialog + iconPic = appPath("icons/Manuskript/icon-64px.png") + self.setWindowIcon(QIcon(iconPic)) + + logoPic = QPixmap(appPath("icons/Manuskript/logo-400x104.png")) + self.labelLogo.setPixmap(logoPic) + + self.labelManuskriptVersion.setText(self.tr("Version") + " " + getVersion()) + + self.labelWebsite.setText( + "" \ + + "http://www.theologeek.ch/manuskript/" \ + + "" ) + self.labelWebsite.setOpenExternalLinks(True) + + self.labelLicense.setText( \ + "" \ + + self.tr("GNU General Public License Version 3") \ + + "" ) + self.labelLicense.setOpenExternalLinks(True) + + self.labelPythonVersion.setText(self.tr("Python") + " " + python_version()) + self.labelPyQtVersion.setText(self.tr("PyQt") + " " + PYQT_VERSION_STR) + self.labelQtVersion.setText(self.tr("Qt") + " " + QT_VERSION_STR) + + def accept(self): + self.close() diff --git a/manuskript/ui/about_ui.py b/manuskript/ui/about_ui.py new file mode 100644 index 00000000..e399ce35 --- /dev/null +++ b/manuskript/ui/about_ui.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'manuskript/ui/about_ui.ui' +# +# Created by: PyQt5 UI code generator 5.5.1 +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore, QtGui, QtWidgets + +class Ui_about(object): + def setupUi(self, about): + about.setObjectName("about") + about.setWindowModality(QtCore.Qt.ApplicationModal) + about.resize(445, 370) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("../../icons/Manuskript/icon-64px.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + about.setWindowIcon(icon) + self.buttonBox = QtWidgets.QDialogButtonBox(about) + self.buttonBox.setGeometry(QtCore.QRect(20, 320, 391, 30)) + self.buttonBox.setOrientation(QtCore.Qt.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Ok) + self.buttonBox.setObjectName("buttonBox") + self.labelLogo = QtWidgets.QLabel(about) + self.labelLogo.setGeometry(QtCore.QRect(30, 20, 381, 111)) + self.labelLogo.setText("") + self.labelLogo.setPixmap(QtGui.QPixmap("../../icons/Manuskript/logo-400x104.png")) + self.labelLogo.setObjectName("labelLogo") + self.labelCopyright = QtWidgets.QLabel(about) + self.labelCopyright.setGeometry(QtCore.QRect(70, 180, 361, 21)) + self.labelCopyright.setText("Copyright © 2015-2017 Olivier Keshavjee") + self.labelCopyright.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelCopyright.setObjectName("labelCopyright") + self.labelLicense = QtWidgets.QLabel(about) + self.labelLicense.setGeometry(QtCore.QRect(70, 200, 361, 20)) + self.labelLicense.setText("GNU General Public License Version 3") + self.labelLicense.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelLicense.setObjectName("labelLicense") + self.labelManuskriptVersion = QtWidgets.QLabel(about) + self.labelManuskriptVersion.setGeometry(QtCore.QRect(130, 130, 301, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.labelManuskriptVersion.setFont(font) + self.labelManuskriptVersion.setText("Version") + self.labelManuskriptVersion.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelManuskriptVersion.setObjectName("labelManuskriptVersion") + self.labelSoftwareHeading = QtWidgets.QLabel(about) + self.labelSoftwareHeading.setGeometry(QtCore.QRect(40, 240, 391, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.labelSoftwareHeading.setFont(font) + self.labelSoftwareHeading.setText("Software Versions in Use:") + self.labelSoftwareHeading.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelSoftwareHeading.setObjectName("labelSoftwareHeading") + self.labelPythonVersion = QtWidgets.QLabel(about) + self.labelPythonVersion.setGeometry(QtCore.QRect(70, 270, 361, 18)) + self.labelPythonVersion.setText("Python Version") + self.labelPythonVersion.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelPythonVersion.setObjectName("labelPythonVersion") + self.labelQtVersion = QtWidgets.QLabel(about) + self.labelQtVersion.setGeometry(QtCore.QRect(70, 310, 361, 18)) + self.labelQtVersion.setText("Qt Version") + self.labelQtVersion.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelQtVersion.setObjectName("labelQtVersion") + self.labelPyQtVersion = QtWidgets.QLabel(about) + self.labelPyQtVersion.setGeometry(QtCore.QRect(70, 290, 361, 18)) + self.labelPyQtVersion.setText("PyQt Version") + self.labelPyQtVersion.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelPyQtVersion.setObjectName("labelPyQtVersion") + self.labelWebsite = QtWidgets.QLabel(about) + self.labelWebsite.setGeometry(QtCore.QRect(130, 150, 301, 20)) + self.labelWebsite.setText("http://www.theologeek.ch/manuskript/") + self.labelWebsite.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.labelWebsite.setObjectName("labelWebsite") + + self.retranslateUi(about) + self.buttonBox.accepted.connect(about.accept) + QtCore.QMetaObject.connectSlotsByName(about) + + def retranslateUi(self, about): + _translate = QtCore.QCoreApplication.translate + about.setWindowTitle(_translate("about", "About Manuskript")) + self.labelLogo.setToolTip(_translate("about", "Manuskript")) + diff --git a/manuskript/ui/about_ui.ui b/manuskript/ui/about_ui.ui new file mode 100644 index 00000000..dcf10b75 --- /dev/null +++ b/manuskript/ui/about_ui.ui @@ -0,0 +1,218 @@ + + + about + + + Qt::ApplicationModal + + + + 0 + 0 + 445 + 370 + + + + About Manuskript + + + + ../../icons/Manuskript/icon-64px.png../../icons/Manuskript/icon-64px.png + + + + + 20 + 320 + 391 + 30 + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + 30 + 20 + 381 + 111 + + + + Manuskript + + + + + + ../../icons/Manuskript/logo-400x104.png + + + + + + 70 + 180 + 361 + 21 + + + + Copyright © 2015-2017 Olivier Keshavjee + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 70 + 200 + 361 + 20 + + + + GNU General Public License Version 3 + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 130 + 130 + 301 + 20 + + + + + 75 + true + + + + Version + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 40 + 240 + 391 + 20 + + + + + 75 + true + + + + Software Versions in Use: + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 70 + 270 + 361 + 18 + + + + Python Version + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 70 + 310 + 361 + 18 + + + + Qt Version + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 70 + 290 + 361 + 18 + + + + PyQt Version + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + 130 + 150 + 301 + 20 + + + + http://www.theologeek.ch/manuskript/ + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + buttonBox + accepted() + about + accept() + + + 248 + 254 + + + 157 + 274 + + + + + diff --git a/manuskript/ui/mainWindow.py b/manuskript/ui/mainWindow.py index 5fb10e28..a10ce6d7 100644 --- a/manuskript/ui/mainWindow.py +++ b/manuskript/ui/mainWindow.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui' # -# Created by: PyQt5 UI code generator 5.4.2 +# Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost! @@ -1016,7 +1016,7 @@ class Ui_MainWindow(object): self.horizontalLayout_2.addWidget(self.stack) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 20)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 30)) self.menubar.setObjectName("menubar") self.menuFile = QtWidgets.QMenu(self.menubar) self.menuFile.setObjectName("menuFile") @@ -1159,6 +1159,8 @@ class Ui_MainWindow(object): self.actCompile.setObjectName("actCompile") self.actToolFrequency = QtWidgets.QAction(MainWindow) self.actToolFrequency.setObjectName("actToolFrequency") + self.actAbout = QtWidgets.QAction(MainWindow) + self.actAbout.setObjectName("actAbout") self.menuFile.addAction(self.actOpen) self.menuFile.addAction(self.menuRecents.menuAction()) self.menuFile.addAction(self.actSave) @@ -1169,6 +1171,7 @@ class Ui_MainWindow(object): self.menuFile.addSeparator() self.menuFile.addAction(self.actQuit) self.menuHelp.addAction(self.actShowHelp) + self.menuHelp.addAction(self.actAbout) self.menuTools.addAction(self.actSpellcheck) self.menuTools.addAction(self.actToolFrequency) self.menuEdit.addAction(self.actLabels) @@ -1323,6 +1326,8 @@ class Ui_MainWindow(object): self.actCompile.setText(_translate("MainWindow", "Co&mpile")) self.actCompile.setShortcut(_translate("MainWindow", "F6")) self.actToolFrequency.setText(_translate("MainWindow", "&Frequency Analyzer")) + self.actAbout.setText(_translate("MainWindow", "&About")) + self.actAbout.setToolTip(_translate("MainWindow", "About Manuskript")) from manuskript.ui.cheatSheet import cheatSheet from manuskript.ui.editors.mainEditor import mainEditor diff --git a/manuskript/ui/mainWindow.ui b/manuskript/ui/mainWindow.ui index 6865a99b..4b7890f2 100644 --- a/manuskript/ui/mainWindow.ui +++ b/manuskript/ui/mainWindow.ui @@ -1557,8 +1557,7 @@ - - + .. true @@ -2045,7 +2044,7 @@ 0 0 1112 - 20 + 30 @@ -2058,8 +2057,7 @@ - - + .. @@ -2077,6 +2075,7 @@ &Help + @@ -2385,8 +2384,7 @@ QListView::item:hover { - - + .. &Close project @@ -2405,6 +2403,14 @@ QListView::item:hover { &Frequency Analyzer + + + &About + + + About Manuskript + +