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
|
import StringIO, traceback, sys
|
||||||
|
|
||||||
from PyQt4.Qt import QMainWindow, QString, Qt, QFont, QCoreApplication, SIGNAL,\
|
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.gui2.dialogs.conversion_error import ConversionErrorDialog
|
||||||
from calibre.utils.config import OptionParser
|
from calibre.utils.config import OptionParser
|
||||||
from calibre.gui2 import error_dialog
|
from calibre.gui2 import error_dialog
|
||||||
@ -41,6 +41,8 @@ class MainWindow(QMainWindow):
|
|||||||
___menu = None
|
___menu = None
|
||||||
__actions = []
|
__actions = []
|
||||||
|
|
||||||
|
keyboard_interrupt = pyqtSignal()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create_application_menubar(cls):
|
def create_application_menubar(cls):
|
||||||
mb = QMenuBar(None)
|
mb = QMenuBar(None)
|
||||||
@ -76,6 +78,9 @@ class MainWindow(QMainWindow):
|
|||||||
print 'Received signal:', repr(signal)
|
print 'Received signal:', repr(signal)
|
||||||
|
|
||||||
def unhandled_exception(self, type, value, tb):
|
def unhandled_exception(self, type, value, tb):
|
||||||
|
if type == KeyboardInterrupt:
|
||||||
|
self.keyboard_interrupt.emit()
|
||||||
|
return
|
||||||
try:
|
try:
|
||||||
sio = StringIO.StringIO()
|
sio = StringIO.StringIO()
|
||||||
traceback.print_exception(type, value, tb, file=sio)
|
traceback.print_exception(type, value, tb, file=sio)
|
||||||
|
@ -634,6 +634,8 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
height = v.rowHeight(0)
|
height = v.rowHeight(0)
|
||||||
self.library_view.verticalHeader().setDefaultSectionSize(height)
|
self.library_view.verticalHeader().setDefaultSectionSize(height)
|
||||||
|
|
||||||
|
self.keyboard_interrupt.connect(self.quit, type=Qt.QueuedConnection)
|
||||||
|
|
||||||
|
|
||||||
def resizeEvent(self, ev):
|
def resizeEvent(self, ev):
|
||||||
MainWindow.resizeEvent(self, ev)
|
MainWindow.resizeEvent(self, ev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user