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

This commit is contained in:
Bachir Soussi Chiadmi
2017-06-01 08:55:46 +02:00
parent 201bed35b8
commit fd1ac14e45
3 changed files with 142 additions and 24 deletions
+43 -17
View File
@@ -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
View File
@@ -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
View File
@@ -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()