From 039672b0e8f440d6822cc61b65e30ae26b2d56cd Mon Sep 17 00:00:00 2001 From: Patrick Ulbrich Date: Fri, 24 Jun 2016 19:23:01 +0200 Subject: [PATCH] Add app menu --- data/appmenu.ui | 17 +++++++++++++++++ mailnag-config | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 data/appmenu.ui diff --git a/data/appmenu.ui b/data/appmenu.ui new file mode 100644 index 0000000..2ad6bae --- /dev/null +++ b/data/appmenu.ui @@ -0,0 +1,17 @@ + + + + +
+ + _About + app.about + + + _Quit + app.quit + <Primary>q + +
+
+
diff --git a/mailnag-config b/mailnag-config index 6b75a67..ba1f475 100755 --- a/mailnag-config +++ b/mailnag-config @@ -23,17 +23,19 @@ import gi gi.require_version('Gtk', '3.0') +gi.require_version('GLib', '2.0') import os import subprocess -from gi.repository import Gtk +from gi.repository import Gtk, Gio from Mailnag.common.utils import fix_cwd fix_cwd() -from Mailnag.common.utils import set_procname, shutdown_existing_instance, get_data_paths -from Mailnag.common.dist_cfg import BIN_DIR +from Mailnag.common.i18n import _ +from Mailnag.common.utils import set_procname, shutdown_existing_instance, get_data_file, get_data_paths +from Mailnag.common.dist_cfg import BIN_DIR, PACKAGE_NAME from Mailnag.configuration.configwindow import ConfigWindow @@ -52,6 +54,19 @@ class App(Gtk.Application): icon_theme = Gtk.IconTheme.get_default() for path in get_data_paths(): icon_theme.append_search_path(os.path.join(path, "icons")) + + builder = Gtk.Builder() + builder.set_translation_domain(PACKAGE_NAME) + builder.add_from_file(get_data_file("appmenu.ui")) + self.set_app_menu(builder.get_object("appmenu")) + + about_action = Gio.SimpleAction.new("about", None) + about_action.connect("activate", self.about_cb) + self.add_action(about_action) + + quit_action = Gio.SimpleAction.new("quit", None) + quit_action.connect("activate", self.quit_cb) + self.add_action(quit_action) def do_activate(self): @@ -76,6 +91,25 @@ class App(Gtk.Application): else: # shutdown running Mailnag daemon shutdown_existing_instance(wait_for_completion = False) + + + def about_cb(self, action, parameter): + aboutdialog = Gtk.AboutDialog() + aboutdialog.set_title(_("About %s") % PACKAGE_NAME.title()) + aboutdialog.set_program_name(PACKAGE_NAME.title()) + aboutdialog.set_copyright(_("Copyright (c) 2011 - 2016 Patrick Ulbrich and contributors.")) + aboutdialog.set_logo_icon_name("mailnag") + aboutdialog.set_website("https://github.com/pulb/mailnag") + aboutdialog.set_website_label(_("Homepage")) + aboutdialog.set_license_type(Gtk.License.GPL_2_0) + aboutdialog.set_authors([ "Patrick Ulbrich " ]) + aboutdialog.connect("response", lambda w, r: aboutdialog.destroy()) + aboutdialog.set_transient_for(self.win.get_gtk_window()) + aboutdialog.show() + + + def quit_cb(self, action, parameter): + self.win.get_gtk_window().close() def main():