From 2d637ffb65740d25679cc8d760a30a21b889b8d5 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Thu, 25 May 2017 15:40:06 +0200 Subject: [PATCH] added save and restore preferences (geometry for now) --- app.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/app.py b/app.py index 3d2ac75..672d426 100755 --- a/app.py +++ b/app.py @@ -17,7 +17,7 @@ import http.server import threading from PyQt5 import QtCore -from PyQt5.QtCore import QCoreApplication, QUrl, QFileSystemWatcher, pyqtSlot +from PyQt5.QtCore import QCoreApplication, QUrl, QFileSystemWatcher, pyqtSlot, QSettings from PyQt5.QtGui import QKeySequence from PyQt5.QtWidgets import QMainWindow, QWidget, QApplication, QShortcut, QGridLayout, QLabel, QTabWidget, QHBoxLayout, QVBoxLayout, QSplitter, QSplitterHandle # from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest @@ -30,6 +30,7 @@ class Core(): def __init__(self, parent=None): self.server = Server() self.compiler = Compiler() + self.settings = QSettings('FiguresLibres', 'Cascade') class Server(): @@ -52,7 +53,6 @@ class Server(): def port(self): return self._port - class Compiler(): def __init__(self,parent=None): paths = [ @@ -74,7 +74,6 @@ class Compiler(): with open('assets/scss/main.css', 'w') as fp: fp.write(scss.decode('utf8')) - class WebkitView(QWebView): def __init__(self, port): self.port = port @@ -83,7 +82,6 @@ class WebkitView(QWebView): self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True) # self.settings().setAttribute(QWebSettings.PluginsEnabled, True) - class WebkitInspector(QWebInspector): def __init__(self, webkitview): super().__init__() @@ -122,12 +120,15 @@ class ViewTab(QWidget): self.lbl.setText(text) self.lbl.adjustSize() - class MainWindow(QMainWindow): def __init__(self, core): super(MainWindow, self).__init__() - self.setWindowFlags(QtCore.Qt.WindowTitleHint) + self.core = core + + self.restorePreferences() + + # self.setWindowFlags(QtCore.Qt.WindowTitleHint) # QtCore.Qt.CustomizeWindowHint # | QtCore.Qt.Tool # | QtCore.Qt.FramelessWindowHint @@ -136,7 +137,6 @@ class MainWindow(QMainWindow): self.tabwidget = QTabWidget() - # self.tabwidget.setStyleSheet(""" # .QWidget { # border: 1px solid black; @@ -162,19 +162,30 @@ class MainWindow(QMainWindow): self.show() + def restorePreferences(self): + try: + self.resize(self.core.settings.value('mainwindow/size', QtCore.QSize(1024, 768))) + self.move(self.core.settings.value('mainwindow/pos', QtCore.QPoint(0, 0))) + except: + pass + + def savePreferences(self): + self.core.settings.beginGroup("mainwindow") + self.core.settings.setValue('size', self.size()) + self.core.settings.setValue('pos', self.pos()) + self.core.settings.endGroup() + @pyqtSlot() def on_quit(self): print("Quit!") + self.savePreferences() QCoreApplication.instance().quit() def main(): - # app = QtCore.QCoreApplication(sys.argv) app = QApplication(sys.argv) core = Core() - mainappwindow = MainWindow(core) - sys.exit(app.exec_())