diff --git a/classes/design.py b/classes/design.py index 62c6f6a..200906f 100644 --- a/classes/design.py +++ b/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() diff --git a/classes/docsetdialog.py b/classes/docsetdialog.py new file mode 100644 index 0000000..d2717f4 --- /dev/null +++ b/classes/docsetdialog.py @@ -0,0 +1,76 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + + +# @Author: Bachir Soussi Chiadmi +# @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) diff --git a/classes/mainwindow.py b/classes/mainwindow.py index 8bb5c76..582ec43 100644 --- a/classes/mainwindow.py +++ b/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()