diff --git a/classes/core.py b/classes/core.py index fc85770..d85669f 100644 --- a/classes/core.py +++ b/classes/core.py @@ -115,9 +115,10 @@ class Core(): with open(jsonfilepath, "w") as fp: json.dump(self.docsettings, fp, ensure_ascii=False, indent="\t") - self.updateScss() + self.updateScss(False) + self.updateJs() - def updateScss(self): + def updateScss(self, reload=True): # print(self.docsettings) sassfilepath = os.path.join(self.cwd,'assets/css/setup.scss') # print(sassfilepath) @@ -156,7 +157,34 @@ class Core(): # print('sass', sass) open(sassfilepath,"w").write(sass) - self._mw.designstack.webkitview.reload() + if reload: + self._mw.designstack.webkitview.reload() + + def updateJs(self, reload=True): + # print(self.docsettings) + jsfilepath = os.path.join(self.cwd,'assets/js/setup.js') + # print(jsfilepath) + js = open(jsfilepath,"r").read() + + # $row-number: 12; + js = re.sub( + r'nb_page=[0-9]+;', + 'nb_page='+str(self.docsettings['np'])+';', + js) + + # print('sass', sass) + open(jsfilepath,"w").write(js) + + if reload: + self._mw.designstack.webkitview.reload() + + def addPage(self): + self.docsettings['np'] = int(self.docsettings['np'])+1 + self.updateJs() + + def rmPage(self): + self.docsettings['np'] = int(self.docsettings['np'])-1 + self.updateJs() # ____ _ __ # / __ \_________ (_)__ _____/ /_ diff --git a/classes/design.py b/classes/design.py index 899f006..ed38404 100644 --- a/classes/design.py +++ b/classes/design.py @@ -150,17 +150,20 @@ class WebViewToolBar(QWidget): self.hbox.addWidget(self.zoom) # page - self.hbox.addWidget(QLabel("Page:")) + self.gotopage = QLabel("Go to Page: /"+self.parent.core.docsettings['np']) + # TODO: refresh page number on change + self.hbox.addWidget(self.gotopage) self.page = QSpinBox(self) # TODO: action self.hbox.addWidget(self.page) self.addpage = QPushButton("&Add Page", self) - # self.addpage.setShortcut('Ctrl+Shift+n') - # 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.rmpage = QPushButton("Re&move Page", self) + self.rmpage.clicked.connect(self.onRmPage) + self.hbox.addWidget(self.rmpage) + # self.hbox.addStretch() # @@ -316,6 +319,7 @@ class Editor(QWidget): class DesignStack(QWidget): def __init__(self, core): super(DesignStack, self).__init__() + self.core = core # self.grid = QGridLayout() self.hbox = QHBoxLayout() @@ -328,18 +332,21 @@ class DesignStack(QWidget): self.webview.setLayout(self.webview.vbox) self.webview.vbox.setContentsMargins(0,0,0,0) + # toolbar + self.webviewtoolbar = WebViewToolBar(self) + self.webview.vbox.addWidget(self.webviewtoolbar) + + # webkitview self.webkitview = WebkitView(self, core) + # webkitinspector self.webkitinspector = WebkitInspector(self, self.webkitview) - shortcut = QShortcut(self) shortcut.setKey("F12") shortcut.activated.connect(self.toggleInspector) self.webkitinspector.setVisible(False) - self.webviewtoolbar = WebViewToolBar(self) - self.webview.vbox.addWidget(self.webviewtoolbar) - + # V layout self.vsplitter = QSplitter(QtCore.Qt.Vertical) self.vsplitter.addWidget(self.webkitview) self.vsplitter.addWidget(self.webkitinspector) @@ -347,9 +354,11 @@ class DesignStack(QWidget): self.webview.vbox.addWidget(self.vsplitter) + # H layout self.hsplitter = QSplitter(QtCore.Qt.Horizontal) self.hsplitter.addWidget(self.webview) + # editor self.editor = Editor(self, core) self.hsplitter.addWidget(self.editor) diff --git a/classes/docsetdialog.py b/classes/docsetdialog.py index cf767ca..433e0e2 100644 --- a/classes/docsetdialog.py +++ b/classes/docsetdialog.py @@ -36,6 +36,11 @@ class DocsetDialog(QDialog): self.formGroupBox = QGroupBox() layout = QFormLayout() + self.np = FormLineEdit(str(ds['np']),3,True) + layout.addRow(QLabel("Numbers of Pages:"), self.np) + # + layout.addRow(Line(self)) + # self.pw = FormLineEdit(str(ds['pw'])) layout.addRow(QLabel("Page Width (mm):"), self.pw) self.ph = FormLineEdit(str(ds['ph'])) diff --git a/classes/mainwindow.py b/classes/mainwindow.py index 7ddb444..404de1a 100644 --- a/classes/mainwindow.py +++ b/classes/mainwindow.py @@ -202,6 +202,7 @@ class MainWindow(QMainWindow): d = docsetdialog.DocsetDialog(self) d.exec_() self.core.recordDocSettings({ + "np":d.np.text(), "pw":d.pw.text(), "ph":d.ph.text(), "mt":d.mt.text(), @@ -264,4 +265,6 @@ class MainWindow(QMainWindow): self.mainstack.setCurrentIndex(self.core.mw_curstack) + # TODO: add an app console window (show sass compilation errors for example) + self.setCentralWidget(self.mainstack) diff --git a/templates/newproject/assets/js/html2print.js b/templates/newproject/assets/js/html2print.js index 018abc1..730ebda 100644 --- a/templates/newproject/assets/js/html2print.js +++ b/templates/newproject/assets/js/html2print.js @@ -2,7 +2,7 @@ $(function() { // Cloning the master page - for (i = 1; i < nb_page; i++){ + for (i = 0; i < nb_page; i++){ $("#master-page").clone().attr("id","page-"+i).insertBefore($("#master-page")); } $("#master-page").attr("data-width", $(".paper:first-child").width()).hide(); diff --git a/templates/newproject/assets/js/setup.js b/templates/newproject/assets/js/setup.js index 78d53e7..cc31839 100644 --- a/templates/newproject/assets/js/setup.js +++ b/templates/newproject/assets/js/setup.js @@ -1 +1 @@ -nb_page = 2; +nb_page=2;