File: application.py

package info (click to toggle)
snapper-gui 0git.960a94834f-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 260 kB
  • sloc: python: 728; makefile: 4
file content (57 lines) | stat: -rw-r--r-- 1,893 bytes parent folder | download | duplicates (4)
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
import pkg_resources, sys, signal
from gi.repository import Gtk, GLib, GdkPixbuf, Gio
from snappergui.mainWindow import SnapperGUI
from snappergui.propertiesDialog import propertiesDialog

def start_ui():
    app = Application()
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    exit_status = app.run(sys.argv)
    sys.exit(exit_status)

class Application(Gtk.Application):
    def __init__(self):
        Gtk.Application.__init__(self)
        GLib.set_application_name("SnapperGUI")
        GLib.set_prgname('snappergui')

        self.snappergui = None

    def build_app_menu(self):
        builder = Gtk.Builder()
        builder.add_from_file(pkg_resources.resource_filename("snappergui",
                                                              "ui/app-menu.ui"))
        menu = builder.get_object('app-menu')
        self.set_app_menu(menu)

        propertiesAction = Gio.SimpleAction.new('properties', None)
        propertiesAction.connect('activate', self.show_configs_properties)
        self.add_action(propertiesAction)

        aboutAction = Gio.SimpleAction.new('about', None)
        aboutAction.connect('activate', self.about)
        self.add_action(aboutAction)

        quitAction = Gio.SimpleAction.new('quit', None)
        quitAction.connect('activate', self.quit)
        self.add_action(quitAction)

    def show_configs_properties(self, action, param):
        dialog = propertiesDialog(self, self.snappergui.window)
        dialog.dialog.run()
        dialog.dialog.hide()

    def about(self, action, param):
        pass

    def quit(self, action=None, param=None):
        self.snappergui.window.destroy()

    def do_startup(self):
        Gtk.Application.do_startup(self)
        self.build_app_menu()

    def do_activate(self):
        if not self.snappergui:
            self.snappergui = SnapperGUI(self)
        self.snappergui.window.present()