From ed4717e85fbfdcb5facc68910b2aaa33b772a96a Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Sun, 28 May 2017 16:39:46 +0200 Subject: [PATCH] save and restore design stack splitters geometry --- classes/design.py | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/classes/design.py b/classes/design.py index d5d14e7..e22314f 100644 --- a/classes/design.py +++ b/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) - hbox.addWidget(hsplitter) + self.hsplitter.splitterMoved.connect(self.movedSplitter) + + 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())