From c4122aeb04c5499230836c2e0f4f4fd9095db2ab Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 12 Jan 2011 21:36:30 -0600 Subject: [PATCH] Porting the main window to the qwappers --- src/dialcentral_qt.py | 104 ++++++++----------------------------------------- 1 file changed, 16 insertions(+), 88 deletions(-) diff --git a/src/dialcentral_qt.py b/src/dialcentral_qt.py index d6baf18..825be06 100755 --- a/src/dialcentral_qt.py +++ b/src/dialcentral_qt.py @@ -294,7 +294,7 @@ def _tab_factory(tab, app, session, errorLog): return gv_views.__dict__[tab](app, session, errorLog) -class MainWindow(object): +class MainWindow(qwrappers.WindowWrapper): KEYPAD_TAB = 0 RECENT_TAB = 1 @@ -336,10 +336,10 @@ class MainWindow(object): assert len(_TAB_SETTINGS_NAMES) == MAX_TABS def __init__(self, parent, app): - self._app = app - - self._errorLog = qui_utils.QErrorLog() - self._errorDisplay = qui_utils.ErrorDisplay(self._errorLog) + qwrappers.WindowWrapper.__init__(self, parent, app) + self._window.setWindowTitle("%s" % constants.__pretty_app_name__) + self._freezer = qwrappers.AutoFreezeWindowFeature(self._app, self._window) + self._errorLog = self._app.errorLog self._session = session.Session(self._errorLog, constants._data_path_) self._session.error.connect(self._on_session_error) @@ -388,21 +388,8 @@ class MainWindow(object): self._tabWidget.currentChanged.connect(self._on_tab_changed) self._tabWidget.setContentsMargins(0, 0, 0, 0) - self._layout = QtGui.QVBoxLayout() - self._layout.setContentsMargins(0, 0, 0, 0) - self._layout.addWidget(self._errorDisplay.toplevel) self._layout.addWidget(self._tabWidget) - centralWidget = QtGui.QWidget() - centralWidget.setLayout(self._layout) - centralWidget.setContentsMargins(0, 0, 0, 0) - - self._window = QtGui.QMainWindow(parent) - self._window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True) - qui_utils.set_stackable(self._window, True) - self._window.setWindowTitle("%s" % constants.__pretty_app_name__) - self._window.setCentralWidget(centralWidget) - self._loginTabAction = QtGui.QAction(None) self._loginTabAction.setText("Login") self._loginTabAction.triggered.connect(self._on_login_requested) @@ -420,50 +407,19 @@ class MainWindow(object): self._refreshTabAction.setShortcut(QtGui.QKeySequence("CTRL+r")) self._refreshTabAction.triggered.connect(self._on_refresh) - self._closeWindowAction = QtGui.QAction(None) - self._closeWindowAction.setText("Close") - self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w")) - self._closeWindowAction.triggered.connect(self._on_close_window) - - if constants.IS_MAEMO: - fileMenu = self._window.menuBar().addMenu("&File") - fileMenu.addAction(self._loginTabAction) - fileMenu.addAction(self._refreshTabAction) - - toolsMenu = self._window.menuBar().addMenu("&Tools") - toolsMenu.addAction(self._accountTabAction) - toolsMenu.addAction(self._importTabAction) - toolsMenu.addAction(self._app.aboutAction) - - self._window.addAction(self._closeWindowAction) - self._window.addAction(self._app.quitAction) - self._window.addAction(self._app.fullscreenAction) - else: - fileMenu = self._window.menuBar().addMenu("&File") - fileMenu.addAction(self._loginTabAction) - fileMenu.addAction(self._refreshTabAction) - fileMenu.addAction(self._closeWindowAction) - fileMenu.addAction(self._app.quitAction) - - viewMenu = self._window.menuBar().addMenu("&View") - viewMenu.addAction(self._app.fullscreenAction) + fileMenu = self._window.menuBar().addMenu("&File") + fileMenu.addAction(self._loginTabAction) + fileMenu.addAction(self._refreshTabAction) - toolsMenu = self._window.menuBar().addMenu("&Tools") - toolsMenu.addAction(self._accountTabAction) - toolsMenu.addAction(self._importTabAction) - toolsMenu.addAction(self._app.aboutAction) - - self._window.addAction(self._app.orientationAction) - self._window.addAction(self._app.logAction) + toolsMenu = self._window.menuBar().addMenu("&Tools") + toolsMenu.addAction(self._accountTabAction) + toolsMenu.addAction(self._importTabAction) + toolsMenu.addAction(self._app.aboutAction) self._initialize_tab(self._tabWidget.currentIndex()) self.set_fullscreen(self._app.fullscreenAction.isChecked()) self.set_orientation(self._app.orientationAction.isChecked()) - @property - def window(self): - return self._window - def set_default_credentials(self, username, password): self._defaultCredentials = username, password @@ -474,6 +430,7 @@ class MainWindow(object): return () def start(self): + qwrappers.WindowWrapper.start(self) assert self._session.state == self._session.LOGGEDOUT_STATE, "Initialization messed up" if self._defaultCredentials != ("", ""): username, password = self._defaultCredentials[0], self._defaultCredentials[1] @@ -483,9 +440,6 @@ class MainWindow(object): self._prompt_for_login() def close(self): - for child in self.walk_children(): - child.window.destroyed.disconnect(self._on_child_close) - child.close() for diag in ( self._credentialsDialog, self._smsEntryDialog, @@ -493,9 +447,10 @@ class MainWindow(object): ): if diag is not None: diag.close() - self._window.close() + qwrappers.WindowWrapper.close(self) def destroy(self): + qwrappers.WindowWrapper.destroy(self) if self._session.state != self._session.LOGGEDOUT_STATE: self._session.logout() @@ -544,36 +499,15 @@ class MainWindow(object): for settingName, settingValue in tabSettings.iteritems(): config.set(sectionName, settingName, settingValue) - def show(self): - self._window.show() - for child in self.walk_children(): - child.show() - - def hide(self): - for child in self.walk_children(): - child.hide() - self._window.hide() - - def set_fullscreen(self, isFullscreen): - if isFullscreen: - self._window.showFullScreen() - else: - self._window.showNormal() - for child in self.walk_children(): - child.set_fullscreen(isFullscreen) - def set_orientation(self, isPortrait): + qwrappers.WindowWrapper.set_orientation(self, isPortrait) if isPortrait: self._tabWidget.setTabPosition(QtGui.QTabWidget.South) - qui_utils.set_window_orientation(self.window, QtCore.Qt.Vertical) else: self._tabWidget.setTabPosition(QtGui.QTabWidget.West) - qui_utils.set_window_orientation(self.window, QtCore.Qt.Horizontal) for child in (self._smsEntryDialog, ): if child is not None: child.set_orientation(isPortrait) - for child in self.walk_children(): - child.set_orientation(isPortrait) def _initialize_tab(self, index): assert index < self.MAX_TABS, "Invalid tab" @@ -703,12 +637,6 @@ class MainWindow(object): with qui_utils.notify_error(self._errorLog): self._show_account_dialog() - @QtCore.pyqtSlot() - @QtCore.pyqtSlot(bool) - @misc_utils.log_exception(_moduleLogger) - def _on_close_window(self, checked = True): - self.close() - def run(): app = QtGui.QApplication([]) -- 1.7.9.5