Browse Source

added some todos
inversed main stacks f1:content, f2:design, f3:git
added toggle menubar actions but it's not working yet

Bachir Soussi Chiadmi 6 years ago
parent
commit
ec654726e0
5 changed files with 66 additions and 18 deletions
  1. 1 1
      bin/libriis
  2. 1 0
      libriis/classes/content.py
  3. 12 3
      libriis/classes/design.py
  4. 49 14
      libriis/classes/mainwindow.py
  5. 3 0
      setup.py

+ 1 - 1
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())

+ 1 - 0
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):

+ 12 - 3
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')

+ 49 - 14
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)

+ 3 - 0
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",