Add Gtk.ShortcutsWindows to application (resolve #14)

This commit is contained in:
coderkun 2017-04-26 11:48:32 +02:00
commit 03fa9c4db7
5 changed files with 164 additions and 0 deletions

View file

@ -32,6 +32,7 @@ class Application(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self, application_id=Application.ID, flags=Gio.ApplicationFlags.FLAGS_NONE)
self._window = None
self._shortcuts_window = None
self._info_dialog = None
self._verbosity = logging.WARNING
self.add_main_option_entries([
@ -68,6 +69,14 @@ class Application(Gtk.Application):
self._window.present()
def on_menu_shortcuts(self, action, value):
builder = Gtk.Builder()
builder.set_translation_domain(Application.DOMAIN)
builder.add_from_resource(self._get_resource_path('gtk.shortcuts.ui'))
shortcuts_dialog = widgets.ShortcutsDialog(builder, self._window)
shortcuts_dialog.present()
def on_menu_info(self, action, value):
if not self._info_dialog:
self._info_dialog = widgets.InfoDialog(self._builder)
@ -119,6 +128,9 @@ class Application(Gtk.Application):
def _setup_actions(self):
action = Gio.SimpleAction.new("shortcuts", None)
action.connect('activate', self.on_menu_shortcuts)
self.add_action(action)
action = Gio.SimpleAction.new("info", None)
action.connect('activate', self.on_menu_info)
self.add_action(action)

View file

@ -24,6 +24,25 @@ from mcg.zeroconf import ZeroconfProvider
class ShortcutsDialog():
def __init__(self, builder, window):
# Widgets
self._window = builder.get_object('shortcuts-dialog')
self._window.set_transient_for(window.get())
def get(self):
return self._window
def present(self):
self._window.present()
class InfoDialog():
@ -183,6 +202,10 @@ class Window():
self._appwindow.add_action(self._panel_action)
def get(self):
return self._appwindow
def present(self):
self._appwindow.present()
self._appwindow.resize(800, 600)