Restart and context menu added to console

This commit is contained in:
Kovid Goyal 2010-09-21 22:21:36 -06:00
parent 8d09778514
commit e7adf45c01
3 changed files with 22 additions and 8 deletions

View File

@ -15,7 +15,7 @@ def console_config():
desc='Settings to control the calibre console' desc='Settings to control the calibre console'
c = Config('console', desc) c = Config('console', desc)
c.add_opt('theme', default='default', help='The color theme') c.add_opt('theme', default='native', help='The color theme')
return c return c

View File

@ -49,7 +49,7 @@ class Prepender(object): # {{{
self.console.cursor_pos = self.opos self.console.cursor_pos = self.opos
# }}} # }}}
class ThemeMenu(QMenu): class ThemeMenu(QMenu): # {{{
def __init__(self, parent): def __init__(self, parent):
QMenu.__init__(self, _('Choose theme (needs restart)')) QMenu.__init__(self, _('Choose theme (needs restart)'))
@ -62,6 +62,7 @@ class ThemeMenu(QMenu):
self.actions = [] self.actions = []
for style in alls: for style in alls:
ac = self.group.addAction(style) ac = self.group.addAction(style)
ac.setCheckable(True)
if current == style: if current == style:
ac.setChecked(True) ac.setChecked(True)
self.actions.append(ac) self.actions.append(ac)
@ -71,6 +72,7 @@ class ThemeMenu(QMenu):
def set_theme(self, style, *args): def set_theme(self, style, *args):
prefs['theme'] = style prefs['theme'] = style
# }}}
class Console(QTextEdit): class Console(QTextEdit):
@ -163,7 +165,6 @@ class Console(QTextEdit):
self.context_menu.popup(event.globalPos()) self.context_menu.popup(event.globalPos())
event.accept() event.accept()
# Prompt management {{{ # Prompt management {{{
@dynamic_property @dynamic_property

View File

@ -9,7 +9,7 @@ __version__ = '0.1.0'
from functools import partial from functools import partial
from PyQt4.Qt import QDialog, QToolBar, QStatusBar, QLabel, QFont, Qt, \ from PyQt4.Qt import QDialog, QToolBar, QStatusBar, QLabel, QFont, Qt, \
QApplication, QIcon, QVBoxLayout QApplication, QIcon, QVBoxLayout, QAction
from calibre.constants import __appname__, __version__ from calibre.constants import __appname__, __version__
from calibre.utils.pyconsole.console import Console from calibre.utils.pyconsole.console import Console
@ -19,8 +19,9 @@ class MainWindow(QDialog):
def __init__(self, def __init__(self,
default_status_msg=_('Welcome to') + ' ' + __appname__+' console', default_status_msg=_('Welcome to') + ' ' + __appname__+' console',
parent=None): parent=None):
QDialog.__init__(self, parent) QDialog.__init__(self, parent)
self.restart_requested = False
self.l = QVBoxLayout() self.l = QVBoxLayout()
self.setLayout(self.l) self.setLayout(self.l)
@ -51,14 +52,26 @@ class MainWindow(QDialog):
self.setWindowTitle(__appname__ + ' console') self.setWindowTitle(__appname__ + ' console')
self.setWindowIcon(QIcon(I('console.png'))) self.setWindowIcon(QIcon(I('console.png')))
self.restart_action = QAction(_('Restart'), self)
self.restart_action.setShortcut(_('Ctrl+R'))
self.addAction(self.restart_action)
self.restart_action.triggered.connect(self.restart)
self.console.context_menu.addAction(self.restart_action)
def restart(self):
self.restart_requested = True
self.reject()
def main(): def main():
QApplication.setApplicationName(__appname__+' console') QApplication.setApplicationName(__appname__+' console')
QApplication.setOrganizationName('Kovid Goyal') QApplication.setOrganizationName('Kovid Goyal')
app = QApplication([]) app = QApplication([])
m = MainWindow() app
m.show() while True:
app.exec_() m = MainWindow()
m.exec_()
if not m.restart_requested:
break
if __name__ == '__main__': if __name__ == '__main__':