Prechádzať zdrojové kódy

design view toolbar state restore on launch

Bachir Soussi Chiadmi 7 rokov pred
rodič
commit
3e40a5e3cb
1 zmenil súbory, kde vykonal 36 pridanie a 16 odobranie
  1. 36 16
      classes/design.py

+ 36 - 16
classes/design.py

@@ -34,6 +34,7 @@ class WebkitView(QWebView):
       self.port = core.server.port
       self.view = QWebView.__init__(self, parent)
       self.setZoomFactor(1)
+      self.loadFinished.connect(self.onLoaded)
       self.load(QUrl('http://localhost:'+str(self.port)))
       self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
       # self.settings().setAttribute(QWebSettings.PluginsEnabled, True)
@@ -42,6 +43,10 @@ class WebkitView(QWebView):
       # self.mainframe = self.page.mainFrame()
       # print(self.mainframe)
 
+   def onLoaded(self):
+      print("onLoaded")
+      self.parent.webviewtoolbar.onReload()
+
    def initPDF(self):
       self.printer = QPrinter(QPrinter.HighResolution)
       self.printer.setFullPage(True)
@@ -59,7 +64,6 @@ class WebkitView(QWebView):
       self.printer.setOutputFileName(self.core.projectname+".pdf")
       # self.setFixedWidth(1000)
 
-
    def ongenPDF(self):
       # QPrinter::Custom
       # dialog = QPrintPreviewDialog(self.printer)
@@ -85,7 +89,6 @@ class WebkitView(QWebView):
       command = """document.documentElement.classList."""+togg+"""('"""+c+"""')"""
       self.evaluateJS(command)
 
-
    def evaluateJS(self, command):
       self.page().mainFrame().evaluateJavaScript(command)
 
@@ -119,31 +122,25 @@ class WebViewToolBar(QWidget):
       font.setPointSize(8)
       self.setFont(font)
 
-
       self.hbox = QHBoxLayout()
       self.hbox.setContentsMargins(0,0,0,0)
 
       self.preview = QCheckBox('Prev&iew', self)
-      # self.preview.setShortcut('Ctrl+Shift+p')
-      self.preview.clicked.connect(self.onPreview)
+      self.preview.stateChanged.connect(self.onPreview)
       self.hbox.addWidget(self.preview)
 
       self.debug = QCheckBox('Deb&ug', self)
-      # self.debug.setShortcut('Ctrl+Shift+u')
-      self.debug.clicked.connect(self.onDebug)
+      self.debug.stateChanged.connect(self.onDebug)
       self.hbox.addWidget(self.debug)
 
       self.grid = QCheckBox('&Grid', self)
-      # self.grid.setShortcut('Ctrl+Shift+g')
-      self.grid.clicked.connect(self.onGrid)
+      self.grid.stateChanged.connect(self.onGrid)
       self.hbox.addWidget(self.grid)
 
-      # spread
       self.spread = QCheckBox('&Spread', self)
-      # self.spread.setShortcut('Ctrl+Shift+g')
-      self.spread.clicked.connect(self.onSpread)
+      self.spread.stateChanged.connect(self.onSpread)
       self.hbox.addWidget(self.spread)
-      # 
+      #
       self.hbox.addStretch()
       #
       # zoom
@@ -159,10 +156,10 @@ class WebViewToolBar(QWidget):
       self.hbox.addWidget(self.page)
 
       self.addpage = QPushButton("&Add Page", self)
-      # self.addpage.setShortcut('Ctrl+Shift+r')
+      # 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.addpage.clicked.connect(self.onAddPage)
       self.hbox.addWidget(self.addpage)
       #
       self.hbox.addStretch()
@@ -183,26 +180,49 @@ class WebViewToolBar(QWidget):
 
       self.setLayout(self.hbox)
 
+   # def onCheckboxAction(self, box):
+   #    self.parent.webkitview.toggleDocClass(box, self[box].isChecked())
+   #    self.recordDocSettings(box, self[box].isChecked())
+
    def onPreview(self):
       self.parent.webkitview.toggleDocClass('preview', self.preview.isChecked())
+      self.recordDocSettings('preview', self.preview.isChecked())
 
    def onDebug(self):
       self.parent.webkitview.toggleDocClass('debug', self.debug.isChecked())
+      self.recordDocSettings('debug', self.debug.isChecked())
 
    def onGrid(self):
       self.parent.webkitview.toggleDocClass('grid', self.grid.isChecked())
+      self.recordDocSettings('grid', self.grid.isChecked())
 
    def onSpread(self):
       self.parent.webkitview.toggleDocClass('spread', self.spread.isChecked())
+      self.recordDocSettings('spread', self.spread.isChecked())
+
+   def onAddPage(self):
+      print("onAddPage")
 
    def onReload(self):
       print("onReload")
-      # self.parent.webkitview.
 
    def onGenPDF(self):
       print("onGenPDF")
       self.parent.webkitview.ongenPDF()
 
+   def recordDocSettings(self, prop, val):
+      print('recordDocSettings : '+prop, val)
+      settings = QSettings('FiguresLibres', 'Cascade')
+      settings.setValue('design/toolbar/'+prop, val)
+
+   def onReload(self):
+      # apply precedent toolbar state
+      settings = QSettings('FiguresLibres', 'Cascade')
+      self.preview.setChecked(settings.value('design/toolbar/preview', "false") == "true")
+      self.debug.setChecked(settings.value('design/toolbar/debug', "false") == "true")
+      self.grid.setChecked(settings.value('design/toolbar/grid', "false") == "true")
+      self.spread.setChecked(settings.value('design/toolbar/spread', "false") == "true")
+
 #     ______    ___ __
 #    / ____/___/ (_) /_____  _____
 #   / __/ / __  / / __/ __ \/ ___/