Browse Source

added more tools t design toolbar, added doc settings menu and form

Bachir Soussi Chiadmi 8 years ago
parent
commit
fd1ac14e45
3 changed files with 142 additions and 24 deletions
  1. 43 17
      classes/design.py
  2. 76 0
      classes/docsetdialog.py
  3. 23 7
      classes/mainwindow.py

+ 43 - 17
classes/design.py

@@ -6,7 +6,7 @@ import os, re
 from PyQt5 import QtCore
 from PyQt5 import QtCore
 from PyQt5.QtCore import QUrl, QSettings, QSizeF
 from PyQt5.QtCore import QUrl, QSettings, QSizeF
 from PyQt5.QtGui import QKeySequence, QFont
 from PyQt5.QtGui import QKeySequence, QFont
-from PyQt5.QtWidgets import QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut, QPushButton, QCheckBox
+from PyQt5.QtWidgets import QWidget, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut, QPushButton, QCheckBox, QSpinBox, QLabel
 from PyQt5.QtWebKit import QWebSettings
 from PyQt5.QtWebKit import QWebSettings
 from PyQt5.QtWebKitWidgets import QWebView, QWebInspector
 from PyQt5.QtWebKitWidgets import QWebView, QWebInspector
 from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
 from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
@@ -74,6 +74,14 @@ class WebViewToolBar(QWidget):
    def __init__(self, parent):
    def __init__(self, parent):
       super(WebViewToolBar, self).__init__(parent)
       super(WebViewToolBar, self).__init__(parent)
       self.parent = parent
       self.parent = parent
+
+      font = QFont()
+      # font.setFamily("Droid Sans Mono")
+      # font.setFixedPitch(True)
+      font.setPointSize(8)
+      self.setFont(font)
+
+
       self.hbox = QHBoxLayout()
       self.hbox = QHBoxLayout()
       self.hbox.setContentsMargins(0,0,0,0)
       self.hbox.setContentsMargins(0,0,0,0)
 
 
@@ -101,7 +109,23 @@ class WebViewToolBar(QWidget):
       self.hbox.addStretch()
       self.hbox.addStretch()
 
 
       # zoom
       # zoom
+      self.hbox.addWidget(QLabel("Zoom:"))
+      self.zoom = QSpinBox(self)
+      # TODO: action
+      self.hbox.addWidget(self.zoom)
+
       # page
       # page
+      self.hbox.addWidget(QLabel("Page:"))
+      self.page = QSpinBox(self)
+      # TODO: action
+      self.hbox.addWidget(self.page)
+
+      self.addpage = QPushButton("&Add Page", self)
+      # self.addpage.setShortcut('Ctrl+Shift+r')
+      # TODO: how to define same shortcut in different places
+      # self.addpage.setIcon(Icon(ico)))
+      # self.addpage.clicked.connect(self.onAddPage)
+      self.hbox.addWidget(self.addpage)
 
 
       self.hbox.addStretch()
       self.hbox.addStretch()
 
 
@@ -114,12 +138,12 @@ class WebViewToolBar(QWidget):
       self.reload.clicked.connect(self.onReload)
       self.reload.clicked.connect(self.onReload)
       self.hbox.addWidget(self.reload)
       self.hbox.addWidget(self.reload)
 
 
-      self.imprim = QPushButton("&Print", self)
-      # self.imprim.setShortcut('Ctrl+Shift+r')
+      self.genpdf = QPushButton("&PDF", self)
+      # self.genpdf.setShortcut('Ctrl+Shift+r')
       # TODO: how to define same shortcut in different places
       # TODO: how to define same shortcut in different places
-      # self.imprim.setIcon(Icon(ico)))
-      self.imprim.clicked.connect(self.onPrint)
-      self.hbox.addWidget(self.imprim)
+      # self.genpdf.setIcon(Icon(ico)))
+      self.genpdf.clicked.connect(self.onGenPDF)
+      self.hbox.addWidget(self.genpdf)
 
 
       self.setLayout(self.hbox)
       self.setLayout(self.hbox)
 
 
@@ -140,9 +164,9 @@ class WebViewToolBar(QWidget):
       print("onReload")
       print("onReload")
       # self.parent.webkitview.
       # self.parent.webkitview.
 
 
-   def onPrint(self):
-      print("onReload")
-      self.parent.webkitview.onPrint()
+   def onGenPDF(self):
+      print("onGenPDF")
+      self.parent.webkitview.ongenPDF()
 
 
 
 
 class CodeEditor(QPlainTextEdit):
 class CodeEditor(QPlainTextEdit):
@@ -169,6 +193,16 @@ class CodeEditor(QPlainTextEdit):
       self.textChanged.connect(self.onTextChanged)
       self.textChanged.connect(self.onTextChanged)
 
 
 
 
+      font = QFont()
+      font.setFamily("Droid Sans Mono")
+      font.setFixedPitch(True)
+      font.setPointSize(12)
+      self.setFont(font)
+      # self.highlighter = Highlighter(self.document())
+      # https://pypi.python.org/pypi/QScintilla/2.9.2
+
+
+
    def onTextChanged(self):
    def onTextChanged(self):
       # print('textChanged')
       # print('textChanged')
       # print(self.toPlainText())
       # print(self.toPlainText())
@@ -210,14 +244,6 @@ class Editor(QWidget):
       self.layout.addWidget(self.tabs)
       self.layout.addWidget(self.tabs)
       self.setLayout(self.layout)
       self.setLayout(self.layout)
 
 
-      # font = QFont()
-      # font.setFamily('Courier')
-      # font.setFixedPitch(True)
-      # font.setPointSize(10)
-      # self.setFont(font)
-      # self.highlighter = Highlighter(self.document())
-      # https://pypi.python.org/pypi/QScintilla/2.9.2
-
    def refresh(self):
    def refresh(self):
       self.scsstab.setText()
       self.scsstab.setText()
       self.jstab.setText()
       self.jstab.setText()

+ 76 - 0
classes/docsetdialog.py

@@ -0,0 +1,76 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+
+# @Author: Bachir Soussi Chiadmi <bach>
+# @Date:   23-05-2017
+# @Email:  bachir@figureslibres.io
+# @Last modified by:   bach
+# @Last modified time: 21-04-2017
+# @License: GPL-V3
+
+import os
+# from PyQt5.QtCore import
+from PyQt5.QtGui import QIcon, QIntValidator
+from PyQt5.QtWidgets import QWidget, QLabel, QDialog, QGroupBox, QDialogButtonBox, QVBoxLayout, QFormLayout, QLineEdit, QComboBox, QSpinBox
+
+class DocsetDialog(QDialog):
+   def __init__(self, parent):
+      super(DocsetDialog, self).__init__(parent)
+
+      self.createFormGroupBox()
+
+      buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+      buttonBox.accepted.connect(self.accept)
+      buttonBox.rejected.connect(self.reject)
+
+      mainLayout = QVBoxLayout()
+      mainLayout.addWidget(self.formGroupBox)
+      mainLayout.addWidget(buttonBox)
+      self.setLayout(mainLayout)
+
+      self.setWindowTitle("Doc settings")
+
+   def createFormGroupBox(self):
+      self.formGroupBox = QGroupBox("Form layout")
+      layout = QFormLayout()
+
+      pw = QLineEdit(str(210))
+      pw.setValidator(QIntValidator())
+      pw.setMaxLength(5)
+      layout.addRow(QLabel("Page Width (mm):"), pw)
+
+      ph = QLineEdit(str(297))
+      ph.setValidator(QIntValidator())
+      ph.setMaxLength(5)
+      layout.addRow(QLabel("Page Height (mm):"), ph)
+      #
+      mt = QLineEdit(str(15))
+      mt.setValidator(QIntValidator())
+      mt.setMaxLength(3)
+      layout.addRow(QLabel("Margin Top (mm):"), mt)
+      mb = QLineEdit(str(15))
+      mb.setValidator(QIntValidator())
+      mb.setMaxLength(3)
+      layout.addRow(QLabel("Margin Bottom (mm):"), mb)
+      mi = QLineEdit(str(15))
+      mi.setValidator(QIntValidator())
+      mi.setMaxLength(3)
+      layout.addRow(QLabel("Margin inner (mm):"), mi)
+      me = QLineEdit(str(10))
+      me.setValidator(QIntValidator())
+      me.setMaxLength(3)
+      layout.addRow(QLabel("Margin external (mm):"), me)
+      #
+      cs = QLineEdit(str(5))
+      cs.setValidator(QIntValidator())
+      cs.setMaxLength(3)
+      layout.addRow(QLabel("Crop size (mm):"), cs)
+      bs = QLineEdit(str(5))
+      bs.setValidator(QIntValidator())
+      bs.setMaxLength(3)
+      layout.addRow(QLabel("Bleed size (mm):"), bs)
+      # # layout.addRow(QLabel("Country:"), QComboBox())
+      # layout.addRow(QLabel("Age:"), QSpinBox())
+
+      self.formGroupBox.setLayout(layout)

+ 23 - 7
classes/mainwindow.py

@@ -14,7 +14,7 @@ import os
 from PyQt5.QtGui import QIcon
 from PyQt5.QtGui import QIcon
 from PyQt5.QtWidgets import QMainWindow, QAction, QWidget, QLabel, QStackedWidget, QFileDialog, QMessageBox
 from PyQt5.QtWidgets import QMainWindow, QAction, QWidget, QLabel, QStackedWidget, QFileDialog, QMessageBox
 
 
-from classes import design, content
+from classes import design, content, docsetdialog
 
 
 
 
 
 
@@ -54,13 +54,21 @@ 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)
 
 
-      prnt = QAction("&PDF",self)
-      prnt.setShortcut("Ctrl+p")
-      file.addAction(prnt)
+      self.save_action = QAction("&Save Project as",self)
+      self.save_action.setShortcut("Ctrl+Shift+s")
+      file.addAction(self.save_action)
 
 
-      quit = QAction("&Quit",self)
-      quit.setShortcut("Ctrl+q")
-      file.addAction(quit)
+      self.docset_action = QAction("&Document Settings",self)
+      self.docset_action.setShortcut("Ctrl+d")
+      file.addAction(self.docset_action)
+
+      self.pdf_action = QAction("&PDF",self)
+      self.pdf_action.setShortcut("Ctrl+p")
+      file.addAction(self.pdf_action)
+
+      self.quit_action = QAction("&Quit",self)
+      self.quit_action.setShortcut("Ctrl+q")
+      file.addAction(self.quit_action)
 
 
       file.triggered[QAction].connect(self.onfilemenutrigger)
       file.triggered[QAction].connect(self.onfilemenutrigger)
 
 
@@ -109,6 +117,8 @@ class MainWindow(QMainWindow):
          self.openprojectdialogue()
          self.openprojectdialogue()
       elif q.text() == "&Save Project as":
       elif q.text() == "&Save Project as":
          self.saveprojectdialogue()
          self.saveprojectdialogue()
+      elif q.text() == "&Document Settings":
+         self.onDocSettings()
       elif q.text() == "&PDF":
       elif q.text() == "&PDF":
          self.genPDF()
          self.genPDF()
       elif q.text() == "&Quit":
       elif q.text() == "&Quit":
@@ -185,6 +195,12 @@ class MainWindow(QMainWindow):
          print('Exception', e)
          print('Exception', e)
          pass
          pass
 
 
+   def onDocSettings(self):
+      dialog = docsetdialog.DocsetDialog(self)
+      value = dialog.exec_()
+      if value:
+         print(value)
+
    def genPDF(self):
    def genPDF(self):
       print('PDF')
       print('PDF')
       self.designstack.webkitview.ongenPDF()
       self.designstack.webkitview.ongenPDF()