From: Ed Page Date: Thu, 3 Jun 2010 23:45:15 +0000 (-0500) Subject: Close Window and Quit X-Git-Url: http://git.maemo.org/git/?p=gonvert;a=commitdiff_plain;h=53ea7aac515848a4cbc8d9b812392b855e33e3b5 Close Window and Quit --- diff --git a/src/gonvert_qt.py b/src/gonvert_qt.py index 5163a71..0ac3d6a 100755 --- a/src/gonvert_qt.py +++ b/src/gonvert_qt.py @@ -55,7 +55,6 @@ class Gonvert(object): # @todo Favorites # @todo Add menus to all windows # @bug Fix the resurrecting window problem - # @todo Close Window / Quit keyboard shortcuts # @todo Ctrl+l support # @todo Unit conversion window: focus always on input, arrows switch units @@ -103,6 +102,11 @@ class Gonvert(object): self._fullscreenAction.setShortcut(QtGui.QKeySequence("CTRL+Enter")) self._fullscreenAction.triggered.connect(self._on_toggle_fullscreen) + self._quitAction = QtGui.QAction(None) + self._quitAction.setText("Quit") + self._quitAction.setShortcut(QtGui.QKeySequence("CTRL+q")) + self._quitAction.triggered.connect(self._on_quit) + self.request_category() def request_category(self): @@ -160,6 +164,10 @@ class Gonvert(object): def fullscreenAction(self): return self._fullscreenAction + @property + def quitAction(self): + return self._quitAction + def _walk_children(self): if self._catWindow is not None: yield self._catWindow @@ -182,6 +190,11 @@ class Gonvert(object): def _on_recent_start(self, checked = False): self.show_recent() + @misc_utils.log_exception(_moduleLogger) + def _on_quit(self, checked = False): + for window in self._walk_children(): + window.close() + class CategoryWindow(object): @@ -211,6 +224,15 @@ class CategoryWindow(object): self._window.setWindowIcon(QtGui.QIcon(self._app.appIconPath)) self._window.setCentralWidget(centralWidget) + self._closeWindowAction = QtGui.QAction(None) + self._closeWindowAction.setText("Window") + self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w")) + self._closeWindowAction.triggered.connect(self._on_close_window) + + fileMenu = self._window.menuBar().addMenu("&File") + fileMenu.addAction(self._closeWindowAction) + fileMenu.addAction(self._app.quitAction) + viewMenu = self._window.menuBar().addMenu("&View") viewMenu.addAction(self._app.fullscreenAction) viewMenu.addSeparator() @@ -243,6 +265,10 @@ class CategoryWindow(object): child.setFullscreen(isFullscreen) @misc_utils.log_exception(_moduleLogger) + def _on_close_window(self, checked = True): + self.close() + + @misc_utils.log_exception(_moduleLogger) def _on_category_clicked(self, item, columnIndex): categoryName = unicode(item.text(0)) self.selectCategory(categoryName) @@ -283,6 +309,18 @@ class QuickJump(object): self._window.setWindowIcon(QtGui.QIcon(self._app.appIconPath)) self._window.setCentralWidget(centralWidget) + self._closeWindowAction = QtGui.QAction(None) + self._closeWindowAction.setText("Window") + self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w")) + self._closeWindowAction.triggered.connect(self._on_close_window) + + fileMenu = self._window.menuBar().addMenu("&File") + fileMenu.addAction(self._closeWindowAction) + fileMenu.addAction(self._app.quitAction) + + viewMenu = self._window.menuBar().addMenu("&View") + viewMenu.addAction(self._app.fullscreenAction) + self._window.show() def close(self): @@ -295,6 +333,10 @@ class QuickJump(object): self._window.showNormal() @misc_utils.log_exception(_moduleLogger) + def _on_close_window(self, checked = True): + self.close() + + @misc_utils.log_exception(_moduleLogger) def _on_result_clicked(self, item, columnIndex): categoryName = unicode(item.text(0)) unitName = unicode(item.text(1)) @@ -350,6 +392,18 @@ class Recent(object): twi.setText(0, cat) twi.setText(1, unit) + self._closeWindowAction = QtGui.QAction(None) + self._closeWindowAction.setText("Window") + self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w")) + self._closeWindowAction.triggered.connect(self._on_close_window) + + fileMenu = self._window.menuBar().addMenu("&File") + fileMenu.addAction(self._closeWindowAction) + fileMenu.addAction(self._app.quitAction) + + viewMenu = self._window.menuBar().addMenu("&View") + viewMenu.addAction(self._app.fullscreenAction) + self._window.show() def close(self): @@ -362,6 +416,10 @@ class Recent(object): self._window.showNormal() @misc_utils.log_exception(_moduleLogger) + def _on_close_window(self, checked = True): + self.close() + + @misc_utils.log_exception(_moduleLogger) def _on_result_clicked(self, item, columnIndex): categoryName = unicode(item.text(0)) unitName = unicode(item.text(1)) @@ -621,6 +679,15 @@ class UnitWindow(object): self._sortByValueAction.setChecked(True) + self._closeWindowAction = QtGui.QAction(None) + self._closeWindowAction.setText("Close Window") + self._closeWindowAction.setShortcut(QtGui.QKeySequence("CTRL+w")) + self._closeWindowAction.triggered.connect(self._on_close_window) + + fileMenu = self._window.menuBar().addMenu("&File") + fileMenu.addAction(self._closeWindowAction) + fileMenu.addAction(self._app.quitAction) + viewMenu = self._window.menuBar().addMenu("&View") viewMenu.addAction(self._app.fullscreenAction) viewMenu.addSeparator() @@ -651,6 +718,10 @@ class UnitWindow(object): self._select_unit(index) @misc_utils.log_exception(_moduleLogger) + def _on_close_window(self, checked = True): + self.close() + + @misc_utils.log_exception(_moduleLogger) def _on_sort_by_name(self, checked = False): self._unitsModel.sort(0, QtCore.Qt.DescendingOrder)