From b6071cf87fda7be8c685cf3b6174b0d319cd93bd Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Mon, 5 Jun 2017 16:41:54 +0200 Subject: [PATCH] improved doc settings form: added headers --- classes/core.py | 20 ++- classes/docsetdialog.py | 133 +++++++++++------- classes/mainwindow.py | 2 + templates/newproject/.config/docsettings.json | 30 ++-- 4 files changed, 114 insertions(+), 71 deletions(-) diff --git a/classes/core.py b/classes/core.py index d85669f..77fbdda 100644 --- a/classes/core.py +++ b/classes/core.py @@ -152,7 +152,16 @@ class Core(): r'\$row-number:\s[0-9|\.]+;', '$row-number: '+self.docsettings['rn']+';', sass) - # + #$header-odd: "Cascade, default header"; + sass = re.sub( + r'\$header-odd:\s".+";', + '$header-odd: "'+self.docsettings['ho']+'";', + sass) + # $header-even: "Cascade, default header"; + sass = re.sub( + r'\$header-even:\s".+";', + '$header-even: "'+self.docsettings['he']+'";', + sass) # print('sass', sass) open(sassfilepath,"w").write(sass) @@ -200,11 +209,12 @@ class Core(): shutil.copytree(os.path.join(self.appcwd,'templates/newproject'), cwd) self.changeCWD(cwd) self.loadDocSettings() - # self.docsettings = json.loads(open(os.path.join(cwd,'.config/docsettings.json')).read()) self.summary = json.loads(open(os.path.join(cwd,'.config/summary.json')).read()) - self.repository = git.Repo.init(cwd) - self.repository.index.add(['assets','contents','.config']) - self.repository.index.commit("initial commit") + # self.repository = git.Repo.init(cwd) + # TODO: set git config user.name & user.email + # self.repository + # self.repository.index.add(['assets','contents','.config']) + # self.repository.index.commit("initial commit") def saveproject(self, cwd = None): diff --git a/classes/docsetdialog.py b/classes/docsetdialog.py index 433e0e2..43e33a6 100644 --- a/classes/docsetdialog.py +++ b/classes/docsetdialog.py @@ -11,7 +11,7 @@ import os # from PyQt5.QtCore import QLine from PyQt5.QtGui import QIcon, QIntValidator -from PyQt5.QtWidgets import QWidget, QLabel, QDialog, QGroupBox, QDialogButtonBox, QVBoxLayout, QFormLayout, QLineEdit, QComboBox, QSpinBox, QFrame +from PyQt5.QtWidgets import QWidget, QLabel, QDialog, QGroupBox, QDialogButtonBox, QVBoxLayout, QHBoxLayout, QFormLayout, QLineEdit, QComboBox, QSpinBox, QFrame class DocsetDialog(QDialog): def __init__(self, parent): @@ -28,64 +28,95 @@ class DocsetDialog(QDialog): mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) - self.setWindowTitle("Doc settings") + self.setWindowTitle("Document settings") def createFormGroupBox(self): ds = self.parent.core.docsettings - self.formGroupBox = QGroupBox() - layout = QFormLayout() + self.formGroupBox = QWidget() + vbox = QVBoxLayout() + vbox.setContentsMargins(0,0,0,0) + self.formGroupBox.setLayout(vbox) - 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'])) - layout.addRow(QLabel("Page Height (mm):"), self.ph) - # - layout.addRow(Line(self)) - # - self.mt = FormLineEdit(str(ds['mt']),3) - layout.addRow(QLabel("Margin Top (mm):"), self.mt) - self.mb = FormLineEdit(str(ds['mb']),3) - layout.addRow(QLabel("Margin Bottom (mm):"), self.mb) - self.mi = FormLineEdit(str(ds['mi']),3) - layout.addRow(QLabel("Margin inner (mm):"), self.mi) - self.me = FormLineEdit(str(ds['me']),3) - layout.addRow(QLabel("Margin external (mm):"), self.me) - # - layout.addRow(Line(self)) - # - self.cs = FormLineEdit(str(ds['cs']),3) - layout.addRow(QLabel("Crop size (mm):"), self.cs) - self.bs = FormLineEdit(str(ds['bs']),3) - layout.addRow(QLabel("Bleed size (mm):"), self.bs) - # - layout.addRow(Line(self)) - # - self.cn = FormLineEdit(str(ds['cn']),2,True) - layout.addRow(QLabel("Columns number:"), self.cn) - self.cg = FormLineEdit(str(ds['cg']),2) - layout.addRow(QLabel("Columns gutters:"), self.cg) - # - self.rn = FormLineEdit(str(ds['rn']),2,True) - layout.addRow(QLabel("Rows number:"), self.rn) - self.rg = FormLineEdit(str(ds['rg']),2) - layout.addRow(QLabel("Rows gutters:"), self.rg) - # - layout.addRow(Line(self)) - # - self.lh = FormLineEdit(str(ds['lh']),2,True) - layout.addRow(QLabel("Line height:"), self.lh) + topGroupBox = QWidget() + topformlayout = QFormLayout() + topformlayout.setContentsMargins(0,0,0,0) + topGroupBox.setLayout(topformlayout) + vbox.addWidget(topGroupBox) - self.formGroupBox.setLayout(layout) + colsGroupBox = QWidget() + hbox = QHBoxLayout() + hbox.setContentsMargins(0,0,0,0) + colsGroupBox.setLayout(hbox) + vbox.addWidget(colsGroupBox) -class FormLineEdit(QLineEdit): + leftGroupBox = QGroupBox() + leftformlayout = QFormLayout() + # leftformlayout.setContentsMargins(0,0,0,0) + leftGroupBox.setLayout(leftformlayout) + hbox.addWidget(leftGroupBox) + + rightGroupBox = QGroupBox() + rightformlayout = QFormLayout() + # rightformlayout.setContentsMargins(0,0,0,0) + rightGroupBox.setLayout(rightformlayout) + hbox.addWidget(rightGroupBox) + + # headers + self.headerOdd = QLineEdit(str(ds['ho'])) + topformlayout.addRow(QLabel("Header odd:"), self.headerOdd) + self.headerEven = QLineEdit(str(ds['he'])) + topformlayout.addRow(QLabel("Header even:"), self.headerEven) + + self.np = NumLineEdit(str(ds['np']),3,True) + leftformlayout.addRow(QLabel("Numbers of Pages:"), self.np) + # + leftformlayout.addRow(Line(self)) + # + self.pw = NumLineEdit(str(ds['pw'])) + leftformlayout.addRow(QLabel("Page Width (mm):"), self.pw) + self.ph = NumLineEdit(str(ds['ph'])) + leftformlayout.addRow(QLabel("Page Height (mm):"), self.ph) + # + leftformlayout.addRow(Line(self)) + # + self.mt = NumLineEdit(str(ds['mt']),3) + leftformlayout.addRow(QLabel("Margin Top (mm):"), self.mt) + self.mb = NumLineEdit(str(ds['mb']),3) + leftformlayout.addRow(QLabel("Margin Bottom (mm):"), self.mb) + self.mi = NumLineEdit(str(ds['mi']),3) + leftformlayout.addRow(QLabel("Margin inner (mm):"), self.mi) + self.me = NumLineEdit(str(ds['me']),3) + leftformlayout.addRow(QLabel("Margin external (mm):"), self.me) + + # + self.cs = NumLineEdit(str(ds['cs']),3) + rightformlayout.addRow(QLabel("Crop size (mm):"), self.cs) + self.bs = NumLineEdit(str(ds['bs']),3) + rightformlayout.addRow(QLabel("Bleed size (mm):"), self.bs) + # + rightformlayout.addRow(Line(self)) + # + self.cn = NumLineEdit(str(ds['cn']),2,True) + rightformlayout.addRow(QLabel("Columns number:"), self.cn) + self.cg = NumLineEdit(str(ds['cg']),2) + rightformlayout.addRow(QLabel("Columns gutters:"), self.cg) + # + self.rn = NumLineEdit(str(ds['rn']),2,True) + rightformlayout.addRow(QLabel("Rows number:"), self.rn) + self.rg = NumLineEdit(str(ds['rg']),2) + rightformlayout.addRow(QLabel("Rows gutters:"), self.rg) + # + rightformlayout.addRow(Line(self)) + # + self.lh = NumLineEdit(str(ds['lh']),2,True) + rightformlayout.addRow(QLabel("Line height:"), self.lh) + + # self.formGroupBox.setLayout(layout) + +class NumLineEdit(QLineEdit): def __init__(self, parent, ml=5, int=False, mw=60): - super(FormLineEdit, self).__init__(parent) + super(NumLineEdit, self).__init__(parent) self.setFixedWidth(mw) self.setMaxLength(ml) if int: diff --git a/classes/mainwindow.py b/classes/mainwindow.py index 404de1a..e7db3e3 100644 --- a/classes/mainwindow.py +++ b/classes/mainwindow.py @@ -202,6 +202,8 @@ class MainWindow(QMainWindow): d = docsetdialog.DocsetDialog(self) d.exec_() self.core.recordDocSettings({ + "ho":d.headerOdd.text(), + "he":d.headerEven.text(), "np":d.np.text(), "pw":d.pw.text(), "ph":d.ph.text(), diff --git a/templates/newproject/.config/docsettings.json b/templates/newproject/.config/docsettings.json index 2ada37d..ef8163c 100644 --- a/templates/newproject/.config/docsettings.json +++ b/templates/newproject/.config/docsettings.json @@ -1,19 +1,19 @@ { "git.user.name":"Cascade", "git.user.email":"cascade@figureslibres.io", - "docsettings":{ - "pw":210, - "ph":297, - "mt":15, - "mb":15, - "me":10, - "mi":15, - "cs":5, - "bs":5, - "cn": 6, - "cg": 5, - "rn": 12, - "rg": 4, - "lh": 3 - } + "ho": "Cascade, default header odd", + "he": "Cascade, default header even", + "pw":210, + "ph":297, + "mt":15, + "mb":15, + "me":10, + "mi":15, + "cs":5, + "bs":5, + "cn": 6, + "cg": 5, + "rn": 12, + "rg": 4, + "lh": 3 }