def _run_about(self): info = get_utility(IAppInfo) about = gtk.AboutDialog() about.set_name(info.get("name")) about.set_version(info.get("version")) about.set_website(stoq.website) release_date = stoq.release_date about.set_comments(_("Release date: %s") % datetime.datetime(*release_date).strftime("%x")) about.set_copyright("Copyright (C) 2005-2012 Async Open Source") about.set_logo(render_logo_pixbuf("about")) # License if locale.getlocale()[0] == "pt_BR": filename = "COPYING.pt_BR" else: filename = "COPYING" data = self._read_resource("docs", filename) about.set_license(data) # Authors & Contributors data = self._read_resource("docs", "AUTHORS") lines = data.split("\n") lines.append("") # separate authors from contributors data = self._read_resource("docs", "CONTRIBUTORS") lines.extend([c.strip() for c in data.split("\n")]) about.set_authors(lines) about.set_transient_for(get_current_toplevel()) about.run() about.destroy()
def _run_about(self): info = get_utility(IAppInfo) about = gtk.AboutDialog() about.set_name(info.get("name")) about.set_version(info.get("version")) about.set_website(stoq.website) release_date = stoq.release_date about.set_comments(_('Release date: %s') % datetime.datetime(*release_date).strftime('%x')) about.set_copyright('Copyright (C) 2005-2012 Async Open Source') about.set_logo(render_logo_pixbuf('about')) # License if locale.getlocale()[0] == 'pt_BR': filename = 'COPYING.pt_BR' else: filename = 'COPYING' data = self._read_resource('docs', filename) about.set_license(data) # Authors & Contributors data = self._read_resource('docs', 'AUTHORS') lines = data.split('\n') lines.append('') # separate authors from contributors data = self._read_resource('docs', 'CONTRIBUTORS') lines.extend([c.strip() for c in data.split('\n')]) about.set_authors(lines) about.set_transient_for(get_current_toplevel()) about.run() about.destroy()
def _run_about(self): info = get_utility(IAppInfo) about = Gtk.AboutDialog() about.set_name(info.get("name")) about.set_version(info.get("version")) about.set_website(stoq.website) release_date = stoq.release_date about.set_comments( _('Release date: %s') % datetime.datetime(*release_date).strftime('%x')) about.set_copyright('Copyright (C) 2005-2012 Async Open Source') about.set_logo(render_logo_pixbuf('about')) # License if locale.getlocale()[0] == 'pt_BR': filename = 'COPYING.pt_BR' else: filename = 'COPYING' data = self._read_resource('docs', filename) about.set_license(data) # Authors & Contributors data = self._read_resource('docs', 'AUTHORS') lines = data.split('\n') lines.append('') # separate authors from contributors data = self._read_resource('docs', 'CONTRIBUTORS') lines.extend([c.strip() for c in data.split('\n')]) about.set_authors(lines) about.set_transient_for(get_current_toplevel()) about.run() about.destroy()
def show_section(section, screen=None): if library.uninstalled: root = library.get_root() uri = os.path.join(root, 'docs', 'manual', 'pt_BR') if section != '': uri += '/' + section + '.page' else: if library.get_resource_exists('stoq', 'docs', 'manual', 'pt_BR'): manual_dir = library.get_resource_filename('stoq', 'docs', 'manual', 'pt_BR') if section: uri = os.path.join(manual_dir, section + '.page') else: uri = manual_dir else: uri = 'stoq' if section: uri += '?' + section if not screen: toplevel = get_current_toplevel() if toplevel: screen = toplevel.get_screen() try: gtk.show_uri(screen, 'ghelp:' + uri, gtk.get_current_event_time()) except glib.GError: open_browser( 'http://doc.stoq.com.br/manual/%s/%s.html' % ( stoq.short_version, section or 'index', ), screen)
def show_section(section, screen=None): if library.uninstalled: root = library.get_root() uri = os.path.join(root, 'docs', 'manual', 'pt_BR') if section != '': uri += '/' + section + '.page' else: if library.get_resource_exists('stoq', 'docs', 'manual', 'pt_BR'): manual_dir = library.get_resource_filename( 'stoq', 'docs', 'manual', 'pt_BR') if section: uri = os.path.join(manual_dir, section + '.page') else: uri = manual_dir else: uri = 'stoq' if section: uri += '?' + section if not screen: toplevel = get_current_toplevel() if toplevel: screen = toplevel.get_screen() try: Gtk.show_uri(screen, 'ghelp:' + uri, Gtk.get_current_event_time()) except GLib.GError: open_browser('http://doc.stoq.com.br/manual/%s/%s.html' % ( stoq.short_version, section or 'index', ), screen)
def _write_exception_hook(self, exctype, value, tb): # NOTE: This exception hook depends on gtk, kiwi, twisted being present # In the future we might want it to run without some of these # dependencies, so we can crash reports that happens really # really early on for users with weird environments. if not self.entered_main: self._setup_twisted(raise_=False) try: from psycopg2 import OperationalError if exctype == OperationalError: from stoqlib.lib.message import error from stoqlib.lib.translation import stoqlib_gettext as _ return error(_('There was an error quering the database'), str(value)) except ImportError: pass appname = 'unknown' try: from stoq.gui.shell.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s' % ( appname, window_name)) exc_lines = traceback.format_exception(exctype, value, tb) for line in ''.join(exc_lines).split('\n')[:-1]: log.error(line) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return from stoqlib.gui.dialogs.crashreportdialog import show_dialog d = show_dialog() from twisted.internet import reactor d.addCallback(lambda *x: reactor.stop()) reactor.run() raise SystemExit
def _write_exception_hook(self, exctype, value, tb): # NOTE: This exception hook depends on gtk, kiwi, twisted being present # In the future we might want it to run without some of these # dependencies, so we can crash reports that happens really # really early on for users with weird environments. if not self.entered_main: self._setup_twisted(raise_=False) try: from psycopg2 import OperationalError if exctype == OperationalError: from stoqlib.lib.message import error from stoqlib.lib.translation import stoqlib_gettext as _ return error(_('There was an error quering the database'), str(value)) except ImportError: pass appname = 'unknown' try: from stoq.gui.shell.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s' % (appname, window_name)) exc_lines = traceback.format_exception(exctype, value, tb) for line in ''.join(exc_lines).split('\n')[:-1]: log.error(line) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return from stoqlib.gui.dialogs.crashreportdialog import show_dialog d = show_dialog() from twisted.internet import reactor d.addCallback(lambda *x: reactor.stop()) reactor.run() raise SystemExit
def run(self): gtk.PrintOperation.run(self, gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, parent=get_current_toplevel()) # GtkPrintOperation.run() is not blocking by default, as the rendering # is threaded we need to wait for the operation to finish before we can # return from here, since currently the rendering depends on state that # might be released just after exiting this function. if self._threaded: self._in_nested_main_loop = True gtk.main() self._in_nested_main_loop = False
def _write_exception_hook(self, exctype, value, tb): try: from psycopg2 import OperationalError if exctype == OperationalError: from stoqlib.lib.message import error from stoqlib.lib.translation import stoqlib_gettext as _ return error(_('There was an error quering the database'), str(value)) except ImportError: pass appname = 'unknown' try: from stoq.gui.shell.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s' % ( appname, window_name)) exc_lines = traceback.format_exception(exctype, value, tb) for line in ''.join(exc_lines).split('\n')[:-1]: log.error(line) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return import gtk from stoqlib.gui.dialogs.crashreportdialog import show_dialog show_dialog(callback=gtk.main_quit) gtk.main() raise SystemExit
def _write_exception_hook(self, exctype, value, tb): try: from psycopg2 import OperationalError if exctype == OperationalError: from stoqlib.lib.message import error from stoqlib.lib.translation import stoqlib_gettext as _ return error(_('There was an error quering the database'), str(value)) except ImportError: pass appname = 'unknown' try: from stoq.gui.shell.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s' % (appname, window_name)) exc_lines = traceback.format_exception(exctype, value, tb) for line in ''.join(exc_lines).split('\n')[:-1]: log.error(line) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return from gi.repository import Gtk from stoqlib.gui.dialogs.crashreportdialog import show_dialog show_dialog(callback=Gtk.main_quit) Gtk.main() raise SystemExit
def run(self): Gtk.PrintOperation.run(self, Gtk.PrintOperationAction.PRINT_DIALOG, parent=get_current_toplevel()) # GtkPrintOperation.run() is not blocking by default, as the rendering # is threaded we need to wait for the operation to finish before we can # return from here, since currently the rendering depends on state that # might be released just after exiting this function. if self._threaded: self._in_nested_main_loop = True # Before creating a nested main loop, we need to process everything # that was pending on the main one as even the PrintOperation may # be waiting at this point. while Gtk.events_pending(): Gtk.main_iteration() Gtk.main() self._in_nested_main_loop = False
def _write_exception_hook(self, exctype, value, tb): # NOTE: This exception hook depends on gtk, kiwi, twisted being present # In the future we might want it to run without some of these # dependencies, so we can crash reports that happens really # really early on for users with weird environments. if not self.entered_main: self._setup_twisted(raise_=False) appname = 'unknown' try: from stoq.gui.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s:' % (appname, window_name)) traceback.print_exception(exctype, value, tb, file=self.stream) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return from stoqlib.gui.dialogs.crashreportdialog import show_dialog d = show_dialog() from twisted.internet import reactor d.addCallback(lambda *x: reactor.stop()) reactor.run() raise SystemExit
def _write_exception_hook(self, exctype, value, tb): # NOTE: This exception hook depends on gtk, kiwi, twisted being present # In the future we might want it to run without some of these # dependencies, so we can crash reports that happens really # really early on for users with weird environments. if not self.entered_main: self._setup_twisted(raise_=False) appname = 'unknown' try: from stoq.gui.shell import get_shell shell = get_shell() if shell: appname = shell.get_current_app_name() except ImportError: pass window_name = 'unknown' try: from stoqlib.gui.base.dialogs import get_current_toplevel window = get_current_toplevel() if window: window_name = window.get_name() except ImportError: pass log.info('An error occurred in application "%s", toplevel window=%s:' % ( appname, window_name)) traceback.print_exception(exctype, value, tb, file=self.stream) from stoqlib.lib.crashreport import collect_traceback collect_traceback((exctype, value, tb)) if self.entered_main: return from stoqlib.gui.dialogs.crashreportdialog import show_dialog d = show_dialog() from twisted.internet import reactor d.addCallback(lambda *x: reactor.stop()) reactor.run() raise SystemExit
def run(self): gtk.PrintOperation.run(self, gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, parent=get_current_toplevel())
def show_dialog(callback=None): """Show a crash report dialog """ parent = get_current_toplevel() crd = CrashReportDialog(parent, callback=callback) return crd.run()
def show_dialog(interactive=True): """Show a crash report dialog """ parent = get_current_toplevel() crd = CrashReportDialog(parent) return crd.run()