فهرست منبع

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

Bachir Soussi Chiadmi 7 سال پیش
والد
کامیت
fd1ac14e45
3فایلهای تغییر یافته به همراه142 افزوده شده و 24 حذف شده
  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.QtCore import QUrl, QSettings, QSizeF
 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.QtWebKitWidgets import QWebView, QWebInspector
 from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
@@ -74,6 +74,14 @@ class WebViewToolBar(QWidget):
    def __init__(self, parent):
       super(WebViewToolBar, self).__init__(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.setContentsMargins(0,0,0,0)
 
@@ -101,7 +109,23 @@ class WebViewToolBar(QWidget):
       self.hbox.addStretch()
 
       # zoom
+      self.hbox.addWidget(QLabel("Zoom:"))
+      self.zoom = QSpinBox(self)
+      # TODO: action
+      self.hbox.addWidget(self.zoom)
+
       # 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()
 
@@ -114,12 +138,12 @@ class WebViewToolBar(QWidget):
       self.reload.clicked.connect(self.onReload)
       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
-      # 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)
 
@@ -140,9 +164,9 @@ class WebViewToolBar(QWidget):
       print("onReload")
       # self.parent.webkitview.
 
-   def onPrint(self):
-      print("onReload")
-      self.parent.webkitview.onPrint()
+   def onGenPDF(self):
+      print("onGenPDF")
+      self.parent.webkitview.ongenPDF()
 
 
 class CodeEditor(QPlainTextEdit):
@@ -169,6 +193,16 @@ class CodeEditor(QPlainTextEdit):
       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):
       # print('textChanged')
       # print(self.toPlainText())
@@ -210,14 +244,6 @@ class Editor(QWidget):
       self.layout.addWidget(self.tabs)
       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):
       self.scsstab.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.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")
       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)
 
@@ -109,6 +117,8 @@ class MainWindow(QMainWindow):
          self.openprojectdialogue()
       elif q.text() == "&Save Project as":
          self.saveprojectdialogue()
+      elif q.text() == "&Document Settings":
+         self.onDocSettings()
       elif q.text() == "&PDF":
          self.genPDF()
       elif q.text() == "&Quit":
@@ -185,6 +195,12 @@ class MainWindow(QMainWindow):
          print('Exception', e)
          pass
 
+   def onDocSettings(self):
+      dialog = docsetdialog.DocsetDialog(self)
+      value = dialog.exec_()
+      if value:
+         print(value)
+
    def genPDF(self):
       print('PDF')
       self.designstack.webkitview.ongenPDF()