mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Interpret a Keyboard interrupt (Ctrl+C) as a request to quit the main GUI
This commit is contained in:
parent
c97464fd22
commit
2660fcae0f
@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
import StringIO, traceback, sys
|
||||
|
||||
from PyQt4.Qt import QMainWindow, QString, Qt, QFont, QCoreApplication, SIGNAL,\
|
||||
QAction, QMenu, QMenuBar, QIcon
|
||||
QAction, QMenu, QMenuBar, QIcon, pyqtSignal
|
||||
from calibre.gui2.dialogs.conversion_error import ConversionErrorDialog
|
||||
from calibre.utils.config import OptionParser
|
||||
from calibre.gui2 import error_dialog
|
||||
@ -41,6 +41,8 @@ class MainWindow(QMainWindow):
|
||||
___menu = None
|
||||
__actions = []
|
||||
|
||||
keyboard_interrupt = pyqtSignal()
|
||||
|
||||
@classmethod
|
||||
def create_application_menubar(cls):
|
||||
mb = QMenuBar(None)
|
||||
@ -76,6 +78,9 @@ class MainWindow(QMainWindow):
|
||||
print 'Received signal:', repr(signal)
|
||||
|
||||
def unhandled_exception(self, type, value, tb):
|
||||
if type == KeyboardInterrupt:
|
||||
self.keyboard_interrupt.emit()
|
||||
return
|
||||
try:
|
||||
sio = StringIO.StringIO()
|
||||
traceback.print_exception(type, value, tb, file=sio)
|
||||
|
@ -634,6 +634,8 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
||||
height = v.rowHeight(0)
|
||||
self.library_view.verticalHeader().setDefaultSectionSize(height)
|
||||
|
||||
self.keyboard_interrupt.connect(self.quit, type=Qt.QueuedConnection)
|
||||
|
||||
|
||||
def resizeEvent(self, ev):
|
||||
MainWindow.resizeEvent(self, ev)
|
||||
|
Loading…
x
Reference in New Issue
Block a user