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__':
 if __name__ == '__main__':
     sys.exit(main())
     sys.exit(main())

+ 1 - 0
libriis/classes/content.py

@@ -147,6 +147,7 @@ class SummaryListWidgetItem(QListWidgetItem):
 
 
       self.setText(data['title'])
       self.setText(data['title'])
       self.setToolTip(data['file'])
       self.setToolTip(data['file'])
+      # self.setStyleSheet('padding:5px;')
 
 
 class SummaryActions(QWidget):
 class SummaryActions(QWidget):
    def __init__(self,parent):
    def __init__(self,parent):

+ 12 - 3
libriis/classes/design.py

@@ -12,7 +12,7 @@
 from __future__ import absolute_import, print_function, division, unicode_literals
 from __future__ import absolute_import, print_function, division, unicode_literals
 
 
 import os, re
 import os, re
-# sys,
+
 from PyQt5 import QtCore
 from PyQt5 import QtCore
 from PyQt5.QtCore import QUrl, QSettings, QSizeF, Qt
 from PyQt5.QtCore import QUrl, QSettings, QSizeF, Qt
 from PyQt5.QtGui import QKeySequence, QFont
 from PyQt5.QtGui import QKeySequence, QFont
@@ -21,7 +21,12 @@ from PyQt5.QtWidgets import (QWidget, QTabWidget,
                               QPlainTextEdit, QShortcut,
                               QPlainTextEdit, QShortcut,
                               QPushButton, QCheckBox, QSpinBox, QLabel)
                               QPushButton, QCheckBox, QSpinBox, QLabel)
 from PyQt5.QtWebKit import QWebSettings
 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.QtWebKitWidgets import QWebView, QWebInspector
+
 from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
 from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
 
 
 from . import highlighter
 from . import highlighter
@@ -53,15 +58,19 @@ class WebkitView(QWebView):
       self.parent.webviewtoolbar.onRefresh()
       self.parent.webviewtoolbar.onRefresh()
 
 
    def initPDF(self):
    def initPDF(self):
+      # from https://gist.github.com/gciotta/7766803
+
       self.printer = QPrinter(QPrinter.HighResolution)
       self.printer = QPrinter(QPrinter.HighResolution)
       self.printer.setFullPage(True)
       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.setFontEmbeddingEnabled(True)
       self.printer.setColorMode(QPrinter.Color)
       self.printer.setColorMode(QPrinter.Color)
       # TODO: set the page size and orientation from doc settings
       # TODO: set the page size and orientation from doc settings
       # (need to do doc settings before that)
       # (need to do doc settings before that)
       # self.printer.setPageSize(QPrinter.A4)
       # 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.setOrientation(QPrinter.Portrait)
       self.printer.setOutputFormat(QPrinter.PdfFormat)
       self.printer.setOutputFormat(QPrinter.PdfFormat)
       self.printer.setCreator('Libriis')
       self.printer.setCreator('Libriis')

+ 49 - 14
libriis/classes/mainwindow.py

@@ -48,6 +48,8 @@ class MainWindow(QMainWindow):
    def initMenuBar(self):
    def initMenuBar(self):
       # menu bar
       # menu bar
       bar = self.menuBar()
       bar = self.menuBar()
+      # bar.setNativeMenuBar(False)
+
       file = bar.addMenu("&File")
       file = bar.addMenu("&File")
 
 
       new = QAction("&New Project",self)
       new = QAction("&New Project",self)
@@ -62,10 +64,6 @@ class MainWindow(QMainWindow):
       self.save_action.setShortcut("Ctrl+Shift+s")
       self.save_action.setShortcut("Ctrl+Shift+s")
       file.addAction(self.save_action)
       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 = QAction("&Document Settings",self)
       self.docset_action.setShortcut("Ctrl+d")
       self.docset_action.setShortcut("Ctrl+d")
       file.addAction(self.docset_action)
       file.addAction(self.docset_action)
@@ -98,24 +96,38 @@ class MainWindow(QMainWindow):
       # view menu
       # view menu
       view = bar.addMenu("&View")
       view = bar.addMenu("&View")
 
 
-      designview = QAction("&Design",self)
-      designview.setShortcut("F1")
-      view.addAction(designview)
-
       contentview = QAction("&Content",self)
       contentview = QAction("&Content",self)
-      contentview.setShortcut("F2")
+      contentview.setShortcut("F1")
       view.addAction(contentview)
       view.addAction(contentview)
 
 
-      versionview = QAction("&Version",self)
+      designview = QAction("&Design",self)
+      designview.setShortcut("F2")
+      view.addAction(designview)
+
+      versionview = QAction("&Version")
       versionview.setShortcut("F3")
       versionview.setShortcut("F3")
       view.addAction(versionview)
       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)
       view.triggered[QAction].connect(self.onviewmenutrigger)
 
 
+
       # about menu
       # about menu
       about = bar.addMenu("About")
       about = bar.addMenu("About")
       about.addAction("&Website")
       about.addAction("&Website")
 
 
+      self.menuisvisible = True
+      # TODO: get menu visibility from settings
+
    def onfilemenutrigger(self, q):
    def onfilemenutrigger(self, q):
       print(q.text()+" is triggered")
       print(q.text()+" is triggered")
       if q.text() == "&New Project":
       if q.text() == "&New Project":
@@ -186,6 +198,7 @@ class MainWindow(QMainWindow):
          self,
          self,
          'Save Project',
          'Save Project',
          self.core.dialog_path
          self.core.dialog_path
+         # TODO: if tempproject open in home
       )[0]
       )[0]
       # TODO: no file type
       # TODO: no file type
       try:
       try:
@@ -246,12 +259,34 @@ class MainWindow(QMainWindow):
 
 
    def onviewmenutrigger(self, q):
    def onviewmenutrigger(self, q):
       print(q.text()+" is triggered")
       print(q.text()+" is triggered")
-      if q.text() == "&Design":
+      if q.text() == "&Content":
          self.mainstack.setCurrentIndex(0)
          self.mainstack.setCurrentIndex(0)
-      elif q.text() == "&Content":
+      elif q.text() == "&Design":
          self.mainstack.setCurrentIndex(1)
          self.mainstack.setCurrentIndex(1)
       elif q.text() == "&Version":
       elif q.text() == "&Version":
          self.mainstack.setCurrentIndex(2)
          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):
    def initMainStack(self):
       self.mainstack = QStackedWidget()
       self.mainstack = QStackedWidget()
 
 
-      self.designstack = design.DesignStack(self.core)
       self.contentstack = content.ContentStack(self.core)
       self.contentstack = content.ContentStack(self.core)
+      self.designstack = design.DesignStack(self.core)
       self.versionstack = QLabel("Version (git).")
       self.versionstack = QLabel("Version (git).")
 
 
-      self.mainstack.addWidget(self.designstack)
       self.mainstack.addWidget(self.contentstack)
       self.mainstack.addWidget(self.contentstack)
+      self.mainstack.addWidget(self.designstack)
       self.mainstack.addWidget(self.versionstack)
       self.mainstack.addWidget(self.versionstack)
 
 
       self.mainstack.setCurrentIndex(self.core.mw_curstack)
       self.mainstack.setCurrentIndex(self.core.mw_curstack)

+ 3 - 0
setup.py

@@ -1,5 +1,8 @@
 from setuptools import setup
 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(
 setup(
    name="libriis",
    name="libriis",
    version="0.1",
    version="0.1",