completed doc settings, and now are applied on project

This commit is contained in:
Bachir Soussi Chiadmi
2017-06-02 18:44:24 +02:00
parent 03ec8025cd
commit c9f1151578
5 changed files with 168 additions and 73 deletions
+98 -14
View File
@@ -9,7 +9,7 @@
# @Last modified time: 21-04-2017
# @License: GPL-V3
import os, shutil, tempfile
import os, re, shutil, tempfile
# sys,
from PyQt5 import QtCore
from PyQt5.QtCore import QSettings, QCoreApplication
@@ -77,18 +77,6 @@ class Core():
self.mw_pos = settings.value('mainwindow/pos', QtCore.QPoint(0, 0))
self.mw_curstack = int(settings.value('mainwindow/curstack', 0))
def loadDocSettings(self):
self.docsettings = json.loads(open(os.path.join(self.cwd,'.config/prefs.json')).read())
def recordDocSettings(self,docsettings):
# print("doc settings",docsettings)
for key in docsettings:
self.docsettings[key] = docsettings[key]
jsonfilepath = os.path.join(self.cwd,'.config/prefs.json')
with open(jsonfilepath, "w") as fp:
json.dump(self.docsettings, fp, ensure_ascii=False, indent="\t")
def savePreferences(self):
# print("savePreferences")
settings = QSettings('FiguresLibres', 'Cascade')
@@ -103,6 +91,102 @@ class Core():
settings.setValue('mainwindow/pos', self._mw.pos())
settings.setValue('mainwindow/curstack', self._mw.mainstack.currentIndex())
def loadDocSettings(self):
self.docsettings = json.loads(open(os.path.join(self.cwd,'.config/docsettings.json')).read())
def recordDocSettings(self,docsettings):
# print("doc settings",docsettings)
for key in docsettings:
self.docsettings[key] = docsettings[key]
jsonfilepath = os.path.join(self.cwd,'.config/docsettings.json')
with open(jsonfilepath, "w") as fp:
json.dump(self.docsettings, fp, ensure_ascii=False, indent="\t")
self.updateScss()
def updateScss(self):
# print(self.docsettings)
sassfilepath = os.path.join(self.cwd,'assets/css/main.scss')
# print(sassfilepath)
sass = open(sassfilepath,"r").read()
# $page-width: mm2pt(180);
sass = re.sub(
r'\$page-width:\smm2pt\([0-9|\.]+\);',
'$page-width: mm2pt('+self.docsettings['pw']+');',
sass)
# $page-height: mm2pt(287);
sass = re.sub(
r'\$page-height:\smm2pt\([0-9|\.]+\);',
'$page-height: mm2pt('+self.docsettings['ph']+');',
sass)
# $page-margin-outside: mm2pt(15);
sass = re.sub(
r'\$page-margin-outside:\smm2pt\([0-9|\.]+\);',
'$page-margin-outside: mm2pt('+self.docsettings['me']+');',
sass)
# $page-margin-inside: mm2pt(7.5);
sass = re.sub(
r'\$page-margin-inside:\smm2pt\([0-9|\.]+\);',
'$page-margin-inside: mm2pt('+self.docsettings['mi']+');',
sass)
# $page-margin-top: mm2pt(10);
sass = re.sub(
r'\$page-margin-top:\smm2pt\([0-9|\.]+\);',
'$page-margin-top: mm2pt('+self.docsettings['mt']+');',
sass)
# $page-margin-bottom: mm2pt(10);
sass = re.sub(
r'\$page-margin-bottom:\smm2pt\([0-9|\.]+\);',
'$page-margin-bottom: mm2pt('+self.docsettings['mb']+');',
sass)
# $crop-size: mm2pt(2);
sass = re.sub(
r'\$crop-size:\smm2pt\([0-9|\.]+\);',
'$crop-size: mm2pt('+self.docsettings['cs']+');',
sass)
# $bleed: mm2pt(3);
sass = re.sub(
r'\$bleed:\smm2pt\([0-9|\.]+\);',
'$bleed: mm2pt('+self.docsettings['bs']+');',
sass)
# $col-number: 9;
sass = re.sub(
r'\$col-number:\smm2pt\([0-9|\.]+\);',
'$col-number: mm2pt('+self.docsettings['cn']+');',
sass)
# $col-gutter: mm2pt(3);
sass = re.sub(
r'\$col-butter:\smm2pt\([0-9|\.]+\);',
'$col-butter: mm2pt('+self.docsettings['cg']+');',
sass)
#
# $row-number: 12;
sass = re.sub(
r'\$row-number:\smm2pt\([0-9|\.]+\);',
'$row-number: mm2pt('+self.docsettings['rn']+');',
sass)
# $row-gutter: mm2pt(4);
sass = re.sub(
r'\$row-butter:\smm2pt\([0-9|\.]+\);',
'$row-butter: mm2pt('+self.docsettings['rg']+');',
sass)
#
# $line-height: mm2pt(4);
sass = re.sub(
r'\$line-height:\smm2pt\([0-9|\.]+\);',
'$line-height: mm2pt('+self.docsettings['lh']+');',
sass)
# print('sass', sass)
open(sassfilepath,"w").write(sass)
self._mw.designstack.webkitview.reload()
def initnewproject(self, cwd = None):
print('initnewproject')
if cwd == None :
@@ -111,7 +195,7 @@ 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/prefs.json')).read())
# 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'])
+45 -44
View File
@@ -34,63 +34,64 @@ class DocsetDialog(QDialog):
def createFormGroupBox(self):
ds = self.parent.core.docsettings
self.formGroupBox = QGroupBox("Form layout")
self.formGroupBox = QGroupBox()
layout = QFormLayout()
layout.addRow(QLabel("Page"))
self.pw = QLineEdit(str(ds['pw']))
self.pw.setFixedWidth(60)
self.pw.setValidator(QIntValidator())
self.pw.setMaxLength(5)
self.pw = FormLineEdit(str(ds['pw']))
layout.addRow(QLabel("Page Width (mm):"), self.pw)
self.ph = QLineEdit(str(ds['ph']))
self.ph.setFixedWidth(60)
self.ph.setValidator(QIntValidator())
self.ph.setMaxLength(5)
self.ph = FormLineEdit(str(ds['ph']))
layout.addRow(QLabel("Page Height (mm):"), self.ph)
#
line1 = QFrame()
line1.setFrameShape(QFrame.HLine)
line1.setFrameShadow(QFrame.Sunken)
layout.addRow(line1)
layout.addRow(Line(self))
#
self.mt = QLineEdit(str(ds['mt']))
self.mt.setFixedWidth(60)
self.mt.setValidator(QIntValidator())
self.mt.setMaxLength(3)
self.mt = FormLineEdit(str(ds['mt']),3)
layout.addRow(QLabel("Margin Top (mm):"), self.mt)
self.mb = QLineEdit(str(ds['mb']))
self.mb.setFixedWidth(60)
self.mb.setValidator(QIntValidator())
self.mb.setMaxLength(3)
self.mb = FormLineEdit(str(ds['mb']),3)
layout.addRow(QLabel("Margin Bottom (mm):"), self.mb)
self.mi = QLineEdit(str(ds['mi']))
self.mi.setFixedWidth(60)
self.mi.setValidator(QIntValidator())
self.mi.setMaxLength(3)
self.mi = FormLineEdit(str(ds['mi']),3)
layout.addRow(QLabel("Margin inner (mm):"), self.mi)
self.me = QLineEdit(str(ds['me']))
self.me.setFixedWidth(60)
self.me.setValidator(QIntValidator())
self.me.setMaxLength(3)
self.me = FormLineEdit(str(ds['me']),3)
layout.addRow(QLabel("Margin external (mm):"), self.me)
#
line2 = QFrame()
line2.setFrameShape(QFrame.HLine)
line2.setFrameShadow(QFrame.Sunken)
layout.addRow(line2)
layout.addRow(Line(self))
#
self.cs = QLineEdit(str(ds['cs']))
self.cs.setFixedWidth(60)
self.cs.setValidator(QIntValidator())
self.cs.setMaxLength(3)
self.cs = FormLineEdit(str(ds['cs']),3)
layout.addRow(QLabel("Crop size (mm):"), self.cs)
self.bs = QLineEdit(str(ds['bs']))
self.bs.setFixedWidth(60)
self.bs.setValidator(QIntValidator())
self.bs.setMaxLength(3)
self.bs = FormLineEdit(str(ds['bs']),3)
layout.addRow(QLabel("Bleed size (mm):"), self.bs)
# # layout.addRow(QLabel("Country:"), QComboBox())
# layout.addRow(QLabel("Age:"), QSpinBox())
#
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)
self.formGroupBox.setLayout(layout)
class FormLineEdit(QLineEdit):
def __init__(self, parent, ml=5, int=False, mw=60):
super(FormLineEdit, self).__init__(parent)
self.setFixedWidth(mw)
self.setMaxLength(ml)
if int:
self.setValidator(QIntValidator())
else:
# TODO: set float validator
self.setValidator(QIntValidator())
class Line(QFrame):
def __init__(self, parent):
super(Line, self).__init__(parent)
self.setFrameShape(QFrame.HLine)
self.setFrameShadow(QFrame.Sunken)
+6 -1
View File
@@ -205,7 +205,12 @@ class MainWindow(QMainWindow):
"me":d.me.text(),
"mi":d.mi.text(),
"cs":d.cs.text(),
"bs":d.bs.text()
"bs":d.bs.text(),
"cn":d.cn.text(),
"cg":d.cg.text(),
"rn":d.rn.text(),
"rg":d.rg.text(),
"lh":d.lh.text()
})
def genPDF(self):
@@ -0,0 +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
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"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
}
}