SF.net SVN: fclient: [645] trunk/fclient/src/fclient/Ui_View.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <jU...@us...> - 2008-07-15 23:56:42
|
Revision: 645 http://fclient.svn.sourceforge.net/fclient/?rev=645&view=rev Author: jUrner Date: 2008-07-15 16:56:30 -0700 (Tue, 15 Jul 2008) Log Message: ----------- this and that Modified Paths: -------------- trunk/fclient/src/fclient/Ui_View.py Modified: trunk/fclient/src/fclient/Ui_View.py =================================================================== --- trunk/fclient/src/fclient/Ui_View.py 2008-07-15 23:55:23 UTC (rev 644) +++ trunk/fclient/src/fclient/Ui_View.py 2008-07-15 23:56:30 UTC (rev 645) @@ -55,12 +55,11 @@ tabTop.removeTab(0) tabBottom = self.controlById(self.IdTabBottom) tabBottom.removeTab(0) - self.connect(tabTop, QtCore.SIGNAL('currentChanged(int)'), self.handleTabTopCurrentChanged) - self.connect(tabBottom, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBottomCurrentChanged) - + # setup splitter splitter = self.controlById(self.IdSplitter) splitter.restoreState(self.settings.value('SplitterPos')) + self.connect(splitter, QtCore.SIGNAL('splitterMoved(int, int)'), self.handleSplitterMoved) def controlById(self, idControl): @@ -78,7 +77,9 @@ view.setParent(tab) i = tab.addTab(view, view.viewIcon(), view.viewDisplayName()) self.views[name] = (tab, view) - + + tab.tabBar().setVisible(tab.count() > 1) + def addBottomViews(self, *views): return self._addViews(False, *views) @@ -94,17 +95,19 @@ return result[1] return None - #TODO: ... - #def setCurrentView(self, view): - # index, tab, view = view - + def setCurrentView(self, name): + result = self.views.get(name, None) + if result is not None: + tab, view = result + tab.setCurrentWidget(view) + return True + return False + ######################################################### ## ######################################################### def closeEvent(self, event): - splitter = self.controlById(self.IdSplitter) - self.settings.setValues(SplitterPos=splitter.saveState()) for tab, view in self.views.values(): view.viewClose() @@ -115,24 +118,31 @@ self._isCreated = True # restore current views - tabs = ( - (self.controlById(self.IdTabTop), 'LastViewTop'), - (self.controlById(self.IdTabBottom), 'LastViewBottom'), - ) - for tab, nameSetting in tabs: - lastName = self.settings.value(nameSetting) - if lastName: - lastView = self.viewFromName(lastName) - if lastView is not None: - tab.setCurrentWidget(lastView) - + tabTop = self.controlById(self.IdTabTop) + lastName = self.settings.value('LastViewTop') + self.setCurrentView(lastName) + + tabBottom = self.controlById(self.IdTabBottom) + lastName = self.settings.value('LastViewBottom') + self.setCurrentView(lastName) + # inform views about their current status for tab, view in self.views.values(): view.viewHandleCurrentChanged(tab.currentWidget() == view) + + # finally connect... not to overwrite settings + self.connect(tabTop, QtCore.SIGNAL('currentChanged(int)'), self.handleTabTopCurrentChanged) + self.connect(tabBottom, QtCore.SIGNAL('currentChanged(int)'), self.handleTabBottomCurrentChanged) + ######################################################### ## ######################################################### + def handleSplitterMoved(self, pos, index): + splitter = self.controlById(self.IdSplitter) + self.settings.setValues(SplitterPos=splitter.saveState()) + + def _handleTabCurrentChanged(self, index, isTop=True): lastName = self.settings.value('LastViewTop' if isTop else 'LastViewBottom') if lastName: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |