Browse Source

save and restore design stack splitters geometry

Bachir Soussi Chiadmi 7 years ago
parent
commit
ed4717e85f
1 changed files with 38 additions and 9 deletions
  1. 38 9
      classes/design.py

+ 38 - 9
classes/design.py

@@ -4,7 +4,7 @@
 import sys, os, re
 
 from PyQt5 import QtCore
-from PyQt5.QtCore import QUrl
+from PyQt5.QtCore import QUrl, QSettings
 from PyQt5.QtGui import QKeySequence, QFont, QSyntaxHighlighter
 from PyQt5.QtWidgets import QWidget, QLabel, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut
 from PyQt5.QtWebKit import QWebSettings
@@ -27,6 +27,8 @@ class WebkitInspector(QWebInspector):
       self.setPage(self.webkitview.page())
       # TODO: webkitinspector is disappearing when chaging tabs
 
+
+
 class CodeEditor(QPlainTextEdit):
    def __init__(self, core, tabs, file=None):
       super(CodeEditor, self).__init__()
@@ -102,28 +104,55 @@ class DesignStack(QWidget):
 
 
       # webviewbox = QVBoxLayout()
-      vsplitter = QSplitter(QtCore.Qt.Vertical)
+      self.vsplitter = QSplitter(QtCore.Qt.Vertical)
 
       self.webkitview = WebkitView(self, core.server.port)
-      vsplitter.addWidget(self.webkitview)
+      self.vsplitter.addWidget(self.webkitview)
 
       self.webkitinspector = WebkitInspector(self, self.webkitview)
-      vsplitter.addWidget(self.webkitinspector)
+      self.vsplitter.addWidget(self.webkitinspector)
 
       shortcut = QShortcut(self)
       shortcut.setKey("F12")
       shortcut.activated.connect(self.toggleInspector)
       self.webkitinspector.setVisible(False)
 
+      self.vsplitter.splitterMoved.connect(self.movedSplitter)
 
-      hsplitter = QSplitter(QtCore.Qt.Horizontal)
-      hsplitter.addWidget(vsplitter)
+      self.hsplitter = QSplitter(QtCore.Qt.Horizontal)
+      self.hsplitter.addWidget(self.vsplitter)
 
       self.editor = Editor(self, core)
-      hsplitter.addWidget(self.editor)
+      self.hsplitter.addWidget(self.editor)
+
+      self.hsplitter.splitterMoved.connect(self.movedSplitter)
 
-      hbox.addWidget(hsplitter)
+      hbox.addWidget(self.hsplitter)
+
+      self.restorePrefs()
 
    def toggleInspector(self):
       self.webkitinspector.setVisible(not self.webkitinspector.isVisible())
-      
+
+
+   def restorePrefs(self):
+      settings = QSettings('FiguresLibres', 'Cascade')
+      print(settings.value('design/vsplitter/sizes', self.vsplitter.sizes()))
+      vals = settings.value('design/vsplitter/sizes', None)
+      if vals:
+         sizes = []
+         for size in vals: sizes.append(int(size))
+         self.vsplitter.setSizes(sizes)
+
+      vals = settings.value('design/hsplitter/sizes', None)
+      if vals:
+         sizes = []
+         for size in vals: sizes.append(int(size))
+         self.hsplitter.setSizes(sizes)
+
+
+   def movedSplitter(self):
+      settings = QSettings('FiguresLibres', 'Cascade')
+      print(self.vsplitter.sizes())
+      settings.setValue('design/vsplitter/sizes', self.vsplitter.sizes())
+      settings.setValue('design/hsplitter/sizes', self.hsplitter.sizes())