From ec654726e08f11659be9e5806d0af0fda8499524 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Sun, 11 Jun 2017 17:22:38 +0200 Subject: [PATCH] added some todos inversed main stacks f1:content, f2:design, f3:git added toggle menubar actions but it's not working yet --- bin/libriis | 2 +- libriis/classes/content.py | 1 + libriis/classes/design.py | 15 +++++++-- libriis/classes/mainwindow.py | 63 +++++++++++++++++++++++++++-------- setup.py | 3 ++ 5 files changed, 66 insertions(+), 18 deletions(-) diff --git a/bin/libriis b/bin/libriis index 2d67a01..0004404 100755 --- a/bin/libriis +++ b/bin/libriis @@ -21,7 +21,7 @@ GNU General Public License for more details. """ -from libriis.main import main # pylint: disable=wrong-import-position +from libriis.main import main if __name__ == '__main__': sys.exit(main()) diff --git a/libriis/classes/content.py b/libriis/classes/content.py index ca5c3ed..60e0816 100644 --- a/libriis/classes/content.py +++ b/libriis/classes/content.py @@ -147,6 +147,7 @@ class SummaryListWidgetItem(QListWidgetItem): self.setText(data['title']) self.setToolTip(data['file']) + # self.setStyleSheet('padding:5px;') class SummaryActions(QWidget): def __init__(self,parent): diff --git a/libriis/classes/design.py b/libriis/classes/design.py index fc7199b..87bcac6 100644 --- a/libriis/classes/design.py +++ b/libriis/classes/design.py @@ -12,7 +12,7 @@ from __future__ import absolute_import, print_function, division, unicode_literals import os, re -# sys, + from PyQt5 import QtCore from PyQt5.QtCore import QUrl, QSettings, QSizeF, Qt from PyQt5.QtGui import QKeySequence, QFont @@ -21,7 +21,12 @@ from PyQt5.QtWidgets import (QWidget, QTabWidget, QPlainTextEdit, QShortcut, QPushButton, QCheckBox, QSpinBox, QLabel) from PyQt5.QtWebKit import QWebSettings + +# TODO import own custom build lib of QtWebKit with ctypes +# see aur package qt5-webkit-print for options +# https://stackoverflow.com/questions/5081875/ctypes-beginner from PyQt5.QtWebKitWidgets import QWebView, QWebInspector + from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter from . import highlighter @@ -53,15 +58,19 @@ class WebkitView(QWebView): self.parent.webviewtoolbar.onRefresh() def initPDF(self): + # from https://gist.github.com/gciotta/7766803 + self.printer = QPrinter(QPrinter.HighResolution) self.printer.setFullPage(True) - # self.printer.setPageMargins(0,0,0,0,QPrinter.Millimeter) + self.printer.setPageMargins(0,0,0,0,QPrinter.Millimeter) self.printer.setFontEmbeddingEnabled(True) self.printer.setColorMode(QPrinter.Color) # TODO: set the page size and orientation from doc settings # (need to do doc settings before that) # self.printer.setPageSize(QPrinter.A4) - self.printer.setPaperSize(QSizeF(210, 300), QPrinter.Millimeter) + # self.printer.setResolution(96) + self.printer.setPaperSize(QSizeF(210, 298), QPrinter.Millimeter) + # TODO: change paper size from docsettings # self.printer.setOrientation(QPrinter.Portrait) self.printer.setOutputFormat(QPrinter.PdfFormat) self.printer.setCreator('Libriis') diff --git a/libriis/classes/mainwindow.py b/libriis/classes/mainwindow.py index 70ac1d9..ca20d14 100644 --- a/libriis/classes/mainwindow.py +++ b/libriis/classes/mainwindow.py @@ -48,6 +48,8 @@ class MainWindow(QMainWindow): def initMenuBar(self): # menu bar bar = self.menuBar() + # bar.setNativeMenuBar(False) + file = bar.addMenu("&File") new = QAction("&New Project",self) @@ -62,10 +64,6 @@ class MainWindow(QMainWindow): self.save_action.setShortcut("Ctrl+Shift+s") file.addAction(self.save_action) - self.save_action = QAction("&Save Project as",self) - self.save_action.setShortcut("Ctrl+Shift+s") - file.addAction(self.save_action) - self.docset_action = QAction("&Document Settings",self) self.docset_action.setShortcut("Ctrl+d") file.addAction(self.docset_action) @@ -98,24 +96,38 @@ class MainWindow(QMainWindow): # view menu view = bar.addMenu("&View") - designview = QAction("&Design",self) - designview.setShortcut("F1") - view.addAction(designview) - contentview = QAction("&Content",self) - contentview.setShortcut("F2") + contentview.setShortcut("F1") view.addAction(contentview) - versionview = QAction("&Version",self) + designview = QAction("&Design",self) + designview.setShortcut("F2") + view.addAction(designview) + + versionview = QAction("&Version") versionview.setShortcut("F3") view.addAction(versionview) + self.menuview = QAction("&Show Menu", self) + self.menuview.setCheckable(True) + self.menuview.setShortcutContext(Qt.ApplicationShortcut) + self.menuview.setShortcut('F4') + view.addAction(self.menuview) + + + # self.menuview_shortcut = QShortcut(QKeySequence("F4"), self) + # self.menuview_shortcut.activated.connect(self.toggleMenu) + view.triggered[QAction].connect(self.onviewmenutrigger) + # about menu about = bar.addMenu("About") about.addAction("&Website") + self.menuisvisible = True + # TODO: get menu visibility from settings + def onfilemenutrigger(self, q): print(q.text()+" is triggered") if q.text() == "&New Project": @@ -186,6 +198,7 @@ class MainWindow(QMainWindow): self, 'Save Project', self.core.dialog_path + # TODO: if tempproject open in home )[0] # TODO: no file type try: @@ -246,12 +259,34 @@ class MainWindow(QMainWindow): def onviewmenutrigger(self, q): print(q.text()+" is triggered") - if q.text() == "&Design": + if q.text() == "&Content": self.mainstack.setCurrentIndex(0) - elif q.text() == "&Content": + elif q.text() == "&Design": self.mainstack.setCurrentIndex(1) elif q.text() == "&Version": self.mainstack.setCurrentIndex(2) + elif q.text() == "&Show Menu": + self.toggleMenu() + + def toggleMenu(self): + self.menuisvisible = not self.menuisvisible + if self.menuisvisible: + print('show menu') + # self.menuBar().adjustSize() + # self.menuBar().show() + # .height(1) + #setVisible(True) + # .setStyleSheet("margin-top:0;") + self.menuview.setChecked(True) + else: + print('hide menu') + # self.menuBar() + # self.menuBar().hide() + # .height(25) + #setVisible(False) + # .setStyleSheet("margin-top:-10px;") + self.menuview.setChecked(False) + # __ ____ ______ __ # / /_____ __ __/ __ \________ __________/ ____/ _____ ____ / /_ @@ -300,12 +335,12 @@ class MainWindow(QMainWindow): def initMainStack(self): self.mainstack = QStackedWidget() - self.designstack = design.DesignStack(self.core) self.contentstack = content.ContentStack(self.core) + self.designstack = design.DesignStack(self.core) self.versionstack = QLabel("Version (git).") - self.mainstack.addWidget(self.designstack) self.mainstack.addWidget(self.contentstack) + self.mainstack.addWidget(self.designstack) self.mainstack.addWidget(self.versionstack) self.mainstack.setCurrentIndex(self.core.mw_curstack) diff --git a/setup.py b/setup.py index f378460..50cd0bb 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,8 @@ from setuptools import setup +# TODO: addd a makefile to compile our own qt5-webkit lib +# see aur package qt5-webkit-print for options andd build + setup( name="libriis", version="0.1",