From 949156cf381c63a9207b103f9ef3f74c3bf4f4ff Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 5 Sep 2010 18:23:57 -0600 Subject: [PATCH] Enable Esc key in preferences window --- src/calibre/gui2/preferences/main.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/preferences/main.py b/src/calibre/gui2/preferences/main.py index 9b3f932a08..596cd5cc0a 100644 --- a/src/calibre/gui2/preferences/main.py +++ b/src/calibre/gui2/preferences/main.py @@ -9,8 +9,8 @@ import textwrap from functools import partial from PyQt4.Qt import QMainWindow, Qt, QIcon, QStatusBar, QFont, QWidget, \ - QScrollArea, QStackedWidget, QVBoxLayout, QLabel, QFrame, \ - QToolBar, QSize, pyqtSignal, QSizePolicy, QToolButton + QScrollArea, QStackedWidget, QVBoxLayout, QLabel, QFrame, QKeySequence, \ + QToolBar, QSize, pyqtSignal, QSizePolicy, QToolButton, QAction from calibre.constants import __appname__, __version__ from calibre.gui2 import gprefs, min_available_height, available_width, \ @@ -41,7 +41,7 @@ class StatusBar(QStatusBar): # {{{ # }}} -class Category(QWidget): +class Category(QWidget): # {{{ plugin_activated = pyqtSignal(object) @@ -82,8 +82,9 @@ class Category(QWidget): def triggered(self, plugin, *args): self.plugin_activated.emit(plugin) +# }}} -class Browser(QScrollArea): +class Browser(QScrollArea): # {{{ show_plugin = pyqtSignal(object) @@ -122,7 +123,7 @@ class Browser(QScrollArea): self._layout.addWidget(w) w.plugin_activated.connect(self.show_plugin.emit) - +# }}} class Preferences(QMainWindow): @@ -141,6 +142,10 @@ class Preferences(QMainWindow): nh = min(self.height(), nh) nw = min(self.width(), nw) self.resize(nw, nh) + self.esc_action = QAction(self) + self.addAction(self.esc_action) + self.esc_action.setShortcut(QKeySequence(Qt.Key_Escape)) + self.esc_action.triggered.connect(self.esc) geom = gprefs.get('preferences_window_geometry', None) if geom is not None: @@ -236,6 +241,12 @@ class Preferences(QMainWindow): self.stack.setCurrentIndex(0) self.setWindowIcon(QIcon(I('config.png'))) + def esc(self, *args): + if self.stack.currentIndex() == 1: + self.hide_plugin() + elif self.stack.currentIndex() == 0: + self.close() + def commit(self, *args): try: must_restart = self.showing_widget.commit()