From 5ad04f8bb381ef2d8aa350f8eab94ed49b86d8f9 Mon Sep 17 00:00:00 2001 From: Uriziel Date: Wed, 12 Jun 2013 16:36:53 +0200 Subject: [PATCH] Main window saves geometry properly. --- syncplay/client.py | 5 +++++ syncplay/ui/consoleUI.py | 3 +++ syncplay/ui/gui.py | 23 ++++++++++++++++++++--- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 295583d..110b9bd 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -355,6 +355,8 @@ class SyncplayClient(object): self.destroyProtocol() if self._player: self._player.drop() + if self.ui: + self.ui.drop() reactor.callLater(0.1, reactor.stop) if(promptForAction): self.ui.promptFor(getMessage("en", "enter-to-exit-prompt")) @@ -608,5 +610,8 @@ class UiManager(object): def markEndOfUserlist(self): self.__ui.markEndOfUserlist() + + def drop(self): + self.__ui.drop() diff --git a/syncplay/ui/consoleUI.py b/syncplay/ui/consoleUI.py index 2dd153c..ed07f7a 100644 --- a/syncplay/ui/consoleUI.py +++ b/syncplay/ui/consoleUI.py @@ -20,6 +20,9 @@ class ConsoleUI(threading.Thread): def addClient(self, client): self._syncplayClient = client + def drop(self): + pass + def run(self): try: while True: diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index 37f1de6..aaacf18 100644 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -1,5 +1,5 @@ from PySide import QtGui #@UnresolvedImport -from PySide.QtCore import Qt #@UnresolvedImport +from PySide.QtCore import Qt, QSettings, QSize, QPoint #@UnresolvedImport from syncplay import utils, constants import sys import time @@ -119,7 +119,7 @@ class MainWindow(QtGui.QMainWindow): def closeEvent(self, event): self.exitSyncplay() - event.ignore() + self.saveSettings() def _extractSign(self, m): if(m): @@ -156,6 +156,9 @@ class MainWindow(QtGui.QMainWindow): self.QtGui.QDesktopServices.openUrl("http://syncplay.pl/guide/windows/") else: self.QtGui.QDesktopServices.openUrl("http://syncplay.pl/guide/") + + def drop(self): + self.close() def addTopLayout(self, window): window.topSplit = QtGui.QSplitter(Qt.Horizontal) @@ -312,6 +315,20 @@ class MainWindow(QtGui.QMainWindow): dropfilepath = unicode(urls[0].path())[1:] # Removes starting slash self._syncplayClient.openFile(dropfilepath) + def saveSettings(self): + settings = QSettings("Syncplay", "MainWindow") + settings.beginGroup("MainWindow") + settings.setValue("size", self.size()) + settings.setValue("pos", self.pos()) + settings.endGroup() + + def loadSettings(self): + settings = QSettings("Syncplay", "MainWindow") + settings.beginGroup("MainWindow") + self.resize(settings.value("size", QSize(700, 500))) + self.move(settings.value("pos", QPoint(200, 200))) + settings.endGroup() + def __init__(self): super(MainWindow, self).__init__() self.QtGui = QtGui @@ -325,7 +342,7 @@ class MainWindow(QtGui.QMainWindow): self.addBottomLayout(self) self.addMenubar(self) self.addMainFrame(self) - self.resize(700,500) + self.loadSettings() self.setWindowIcon(QtGui.QIcon(self.resourcespath + "syncplay.png")) self.show() self.setAcceptDrops(True)