/usr/lib/python3/dist-packages/typecatcher_lib/Window.py is in typecatcher 0.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
### BEGIN LICENSE
# Copyright (C) 2012 Andrew Starr-Bochicchio <a.starr.b@gmail.com>
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
### END LICENSE
### DO NOT EDIT THIS FILE ###
from gi.repository import Gtk # pylint: disable=E0611
import logging
import subprocess
logger = logging.getLogger('typecatcher_lib')
from . helpers import get_builder, show_uri, get_help_uri
# This class is meant to be subclassed by TypeCatcherWindow. It provides
# common functions and some boilerplate.
class Window(Gtk.ApplicationWindow):
__gtype_name__ = "Window"
# To construct a new instance of this method, the following notable
# methods are called in this order:
# __new__(cls)
# __init__(self)
# finish_initializing(self, builder)
# __init__(self)
#
# For this reason, it's recommended you leave __init__ empty and put
# your initialization code in finish_initializing
def __new__(cls):
"""Special static method that's automatically called by Python when
constructing a new instance of this class.
Returns a fully instantiated BaseTypeCatcherWindow object.
"""
builder = get_builder('TypeCatcherWindow')
new_object = builder.get_object("typecatcher_window")
new_object.finish_initializing(builder)
return new_object
def finish_initializing(self, builder):
"""Called while initializing this instance in __new__
finish_initializing should be called after parsing the UI definition
and creating a TypeCatcherWindow object with it in order to finish
initializing the start of the new TypeCatcherWindow instance.
"""
# Get a reference to the builder and set up the signals.
self.builder = builder
self.ui = builder.get_ui(self, True)
self.PreferencesDialog = None # class
self.preferences_dialog = None # instance
self.AboutDialog = None # class
def on_mnu_contents_activate(self, widget, data=None):
show_uri(self, "help:%s" % get_help_uri())
def on_mnu_about_activate(self, widget, data=None):
"""Display the about box for typecatcher."""
if self.AboutDialog is not None:
about = self.AboutDialog() # pylint: disable=E1102
response = about.run()
about.destroy()
def on_mnu_close_activate(self, widget, data=None):
"""Signal handler for closing the TypeCatcherWindow."""
self.destroy()
def on_destroy(self, widget, data=None):
"""Called when the TypeCatcherWindow is closed."""
# Clean up code for saving application state should be added here.
pass
def on_mnu_report_activate(self, button):
try: # Use apport if we can.
subprocess.Popen(['ubuntu-bug', 'typecatcher'])
except OSError: # If not, just open a browser.
bug_url = "https://bugs.launchpad.net/typecatcher/+filebug"
Gtk.show_uri(None, bug_url, 0)
def on_mnu_trans_activate(self, button):
bug_url = "https://translations.launchpad.net/typecatcher"
Gtk.show_uri(None, bug_url, 0)
def info_dialog(self, head, message):
dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.INFO,
Gtk.ButtonsType.OK,
head)
dialog.format_secondary_text(message)
dialog.set_modal(True)
dialog.run()
dialog.destroy()
|