|
@@ -4,7 +4,7 @@
|
|
import os, re
|
|
import os, re
|
|
|
|
|
|
from PyQt5 import QtCore
|
|
from PyQt5 import QtCore
|
|
-from PyQt5.QtCore import QUrl, QSettings
|
|
+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
|
|
from PyQt5.QtWebKit import QWebSettings
|
|
from PyQt5.QtWebKit import QWebSettings
|
|
@@ -13,26 +13,54 @@ from PyQt5.QtPrintSupport import QPrintPreviewDialog, QPrinter
|
|
|
|
|
|
|
|
|
|
class WebkitView(QWebView):
|
|
class WebkitView(QWebView):
|
|
- def __init__(self, parent, port):
|
|
+ def __init__(self, parent, core):
|
|
- self.port = port
|
|
+ self.parent = parent
|
|
|
|
+ self.core = core
|
|
|
|
+ self.port = core.server.port
|
|
self.view = QWebView.__init__(self, parent)
|
|
self.view = QWebView.__init__(self, parent)
|
|
|
|
+ self.setZoomFactor(1)
|
|
self.load(QUrl('http://localhost:'+str(self.port)))
|
|
self.load(QUrl('http://localhost:'+str(self.port)))
|
|
self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
|
|
self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
|
|
|
|
|
|
|
|
|
|
- self.printer = QPrinter()
|
|
+ self.initPDF()
|
|
- self.printer.setPageSize(QPrinter.A4)
|
|
+
|
|
- self.printer.setOrientation(QPrinter.Portrait)
|
|
+
|
|
- self.printer.setPageMargins(10,10,10,10,QPrinter.Millimeter)
|
|
+
|
|
- self.setFixedWidth(1000)
|
|
+ def initPDF(self):
|
|
-
|
|
+ self.printer = QPrinter(QPrinter.HighResolution)
|
|
-
|
|
+ self.printer.setFullPage(True)
|
|
- def onPrint(self):
|
|
+
|
|
- dialog = QPrintPreviewDialog(self.printer)
|
|
+ self.printer.setFontEmbeddingEnabled(True)
|
|
|
|
+ self.printer.setColorMode(QPrinter.Color)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ self.printer.setPaperSize(QSizeF(210, 300), QPrinter.Millimeter)
|
|
|
|
+
|
|
|
|
+ self.printer.setOutputFormat(QPrinter.PdfFormat)
|
|
|
|
+ self.printer.setCreator('Cascade')
|
|
|
|
+ self.printer.setDocName(self.core.projectname)
|
|
|
|
+ self.printer.setOutputFileName(self.core.projectname+".pdf")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ def ongenPDF(self):
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
- dialog.paintRequested.connect(self.print_)
|
|
+
|
|
|
|
|
|
- dialog.exec()
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ self.print_(self.printer)
|
|
|
|
+
|
|
|
|
+ def refresh(self):
|
|
|
|
+ self.initPDF()
|
|
|
|
+ self.reload()
|
|
|
|
|
|
class WebkitInspector(QWebInspector):
|
|
class WebkitInspector(QWebInspector):
|
|
def __init__(self, parent, webkitview):
|
|
def __init__(self, parent, webkitview):
|
|
@@ -149,6 +177,7 @@ class CodeEditor(QPlainTextEdit):
|
|
self.changed = True
|
|
self.changed = True
|
|
i = self.tabs.currentIndex()
|
|
i = self.tabs.currentIndex()
|
|
self.tabs.setTabText(i, "* "+self.tabs.tabText(i))
|
|
self.tabs.setTabText(i, "* "+self.tabs.tabText(i))
|
|
|
|
+
|
|
|
|
|
|
def save(self):
|
|
def save(self):
|
|
if self.changed:
|
|
if self.changed:
|
|
@@ -208,7 +237,7 @@ class DesignStack(QWidget):
|
|
self.webview.setLayout(self.webview.vbox)
|
|
self.webview.setLayout(self.webview.vbox)
|
|
self.webview.vbox.setContentsMargins(0,0,0,0)
|
|
self.webview.vbox.setContentsMargins(0,0,0,0)
|
|
|
|
|
|
- self.webkitview = WebkitView(self, core.server.port)
|
|
+ self.webkitview = WebkitView(self, core)
|
|
|
|
|
|
self.webkitinspector = WebkitInspector(self, self.webkitview)
|
|
self.webkitinspector = WebkitInspector(self, self.webkitview)
|
|
|
|
|
|
@@ -267,4 +296,4 @@ class DesignStack(QWidget):
|
|
|
|
|
|
def refresh(self):
|
|
def refresh(self):
|
|
self.editor.refresh()
|
|
self.editor.refresh()
|
|
- self.webkitview.reload()
|
|
+ self.webkitview.refresh()
|