From 68cdde20aab2168c18a8067d0b81448ebe35f6f2 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 18 Jan 2011 03:09:46 +0900 Subject: [PATCH] hack around qt bug in restoreGeom() --- ankiqt/ui/cardlist.py | 2 +- ankiqt/ui/main.py | 5 +++-- ankiqt/ui/utils.py | 9 ++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ankiqt/ui/cardlist.py b/ankiqt/ui/cardlist.py index 9e6bb6db2..3a761940a 100644 --- a/ankiqt/ui/cardlist.py +++ b/ankiqt/ui/cardlist.py @@ -359,7 +359,7 @@ class EditDeck(QMainWindow): self.dialog = ankiqt.forms.cardlist.Ui_MainWindow() self.dialog.setupUi(self) self.setUnifiedTitleAndToolBarOnMac(True) - restoreGeom(self, "editor") + restoreGeom(self, "editor", 38) restoreState(self, "editor") restoreSplitter(self.dialog.splitter, "editor") self.dialog.splitter.setChildrenCollapsible(False) diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py index dc0fba120..5f14b9963 100755 --- a/ankiqt/ui/main.py +++ b/ankiqt/ui/main.py @@ -22,6 +22,7 @@ from anki.stdmodels import BasicModel from anki.hooks import runHook, addHook, removeHook, _hooks, wrap from anki.deck import newCardOrderLabels, newCardSchedulingLabels from anki.deck import revCardOrderLabels, failedCardOptionLabels +from ankiqt.ui.utils import saveGeom, restoreGeom, saveState, restoreState import anki.lang import anki.deck import ankiqt @@ -67,8 +68,8 @@ class AnkiQt(QMainWindow): self.setupProgressInfo() self.setupBackups() if self.config['mainWindowState']: - self.restoreGeometry(self.config['mainWindowGeom']) - self.restoreState(self.config['mainWindowState']) + restoreGeom(self, "mainWindow", 21) + restoreState(self, "mainWindow") else: self.resize(500, 500) # load deck diff --git a/ankiqt/ui/utils.py b/ankiqt/ui/utils.py index bb38dabf3..0add07004 100644 --- a/ankiqt/ui/utils.py +++ b/ankiqt/ui/utils.py @@ -215,10 +215,17 @@ def saveGeom(widget, key): key += "Geom" ankiqt.mw.config[key] = widget.saveGeometry() -def restoreGeom(widget, key): +def restoreGeom(widget, key, offset=None): key += "Geom" if ankiqt.mw.config.get(key): widget.restoreGeometry(ankiqt.mw.config[key]) + if sys.platform.startswith("darwin") and offset: + from ankiqt.ui.main import QtConfig as q + minor = (q.qt_version & 0x00ff00) >> 8 + if minor > 6: + # bug in osx toolkit + s = widget.size() + widget.resize(s.width(), s.height()+offset*2) def saveState(widget, key): key += "State"