~ubuntu-branches/ubuntu/karmic/calibre/karmic

« back to all changes in this revision

Viewing changes to src/calibre/gui2/main_window.py

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-07-30 12:49:41 UTC
  • mfrom: (1.3.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090730124941-qjdsmri25zt8zocn
Tags: 0.6.3+dfsg-0ubuntu1
* New upstream release. Please see http://calibre.kovidgoyal.net/new_in_6/
  for the list of new features and changes.
* remove_postinstall.patch: Update for new version.
* build_debug.patch: Does not apply any more, disable for now. Might not be
  necessary any more.
* debian/copyright: Fix reference to versionless GPL.
* debian/rules: Drop obsolete dh_desktop call.
* debian/rules: Add workaround for weird Python 2.6 setuptools behaviour of
  putting compiled .so files into src/calibre/plugins/calibre/plugins
  instead of src/calibre/plugins.
* debian/rules: Drop hal fdi moving, new upstream version does not use hal
  any more. Drop hal dependency, too.
* debian/rules: Install udev rules into /lib/udev/rules.d.
* Add debian/calibre.preinst: Remove unmodified
  /etc/udev/rules.d/95-calibre.rules on upgrade.
* debian/control: Bump Python dependencies to 2.6, since upstream needs
  it now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
                     QAction, QMenu, QMenuBar, QIcon
8
8
from calibre.gui2.dialogs.conversion_error import ConversionErrorDialog
9
9
from calibre.utils.config import OptionParser
 
10
from calibre.gui2 import error_dialog
 
11
from calibre import prints
10
12
 
11
13
def option_parser(usage='''\
12
14
Usage: %prog [options]
19
21
    return parser
20
22
 
21
23
class DebugWindow(ConversionErrorDialog):
22
 
    
 
24
 
23
25
    def __init__(self, parent):
24
26
        ConversionErrorDialog.__init__(self, parent, 'Console output', '')
25
27
        self.setModal(Qt.NonModal)
26
28
        font = QFont()
27
29
        font.setStyleHint(QFont.TypeWriter)
28
30
        self.text.setFont(font)
29
 
        
 
31
 
30
32
    def write(self, msg):
31
33
        self.text.setPlainText(self.text.toPlainText()+QString(msg))
32
 
        
 
34
 
33
35
    def flush(self):
34
 
        pass    
 
36
        pass
35
37
 
36
38
class MainWindow(QMainWindow):
37
39
 
38
40
    ___menu_bar = None
39
41
    ___menu     = None
40
 
    __actions   = [] 
41
 
    
 
42
    __actions   = []
 
43
 
42
44
    @classmethod
43
45
    def create_application_menubar(cls):
44
46
        mb = QMenuBar(None)
50
52
        mb.addMenu(menu)
51
53
        cls.___menu_bar = mb
52
54
        cls.___menu = menu
53
 
        
54
 
    
 
55
 
 
56
 
55
57
    @classmethod
56
58
    def get_menubar_actions(cls):
57
59
        preferences_action = QAction(QIcon(':/images/config.svg'), _('&Preferences'), None)
59
61
        preferences_action.setMenuRole(QAction.PreferencesRole)
60
62
        quit_action.setMenuRole(QAction.QuitRole)
61
63
        return preferences_action, quit_action
62
 
    
 
64
 
63
65
    def __init__(self, opts, parent=None):
64
66
        QMainWindow.__init__(self, parent)
65
67
        app = QCoreApplication.instance()
69
71
            self.__console_redirect = DebugWindow(self)
70
72
            sys.stdout = sys.stderr = self.__console_redirect
71
73
            self.__console_redirect.show()
72
 
    
 
74
 
73
75
    def unix_signal(self, signal):
74
76
        print 'Received signal:', repr(signal)
75
 
    
 
77
 
76
78
    def unhandled_exception(self, type, value, tb):
77
79
        try:
78
80
            sio = StringIO.StringIO()
79
81
            traceback.print_exception(type, value, tb, file=sio)
80
82
            fe = sio.getvalue()
81
 
            print >>sys.stderr, fe
82
 
            msg = '<p><b>' + unicode(str(value), 'utf8', 'replace') + '</b></p>'
83
 
            msg += '<p>Detailed <b>traceback</b>:<pre>'+fe+'</pre>'
84
 
            d = ConversionErrorDialog(self, _('ERROR: Unhandled exception'), msg)
85
 
            d.exec_()
 
83
            prints(fe, file=sys.stderr)
 
84
            msg = '<b>%s</b>:'%type.__name__ + unicode(str(value), 'utf8', 'replace')
 
85
            error_dialog(self, _('ERROR: Unhandled exception'), msg, det_msg=fe,
 
86
                    show=True)
86
87
        except:
87
88
            pass