summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2012-05-01 17:07:40 +1200
committerRobert Ancell <robert.ancell@canonical.com>2012-05-02 09:44:14 +1200
commitaaf4b042e87e7c2970127648f80f7a73081ceccd (patch)
treeeda3a0994da43ac4df0ffd0b335b22017f4e9a76
parent4be0e3f533c869a6368cac14eafecc7430a48e62 (diff)
downloaddconf-aaf4b042e87e7c2970127648f80f7a73081ceccd.tar.gz
editor: Add a GMenu
-rw-r--r--editor/Makefile.am4
-rw-r--r--editor/dconf-editor-menu.ui15
-rw-r--r--editor/dconf-editor.vala48
3 files changed, 63 insertions, 4 deletions
diff --git a/editor/Makefile.am b/editor/Makefile.am
index 55575fb..a030c7d 100644
--- a/editor/Makefile.am
+++ b/editor/Makefile.am
@@ -1,6 +1,6 @@
bin_PROGRAMS = dconf-editor
-AM_CFLAGS = $(gtk_CFLAGS) $(libxml_CFLAGS) -I$(top_srcdir)/common -I$(top_srcdir)/client -DPKGDATADIR=\"@datadir@/dconf-editor\"
+AM_CFLAGS = $(gtk_CFLAGS) $(libxml_CFLAGS) -I$(top_srcdir)/common -I$(top_srcdir)/client -DPKGDATADIR=\"@datadir@/dconf-editor\" -DVERSION=\"$(VERSION)\" -DGETTEXT_PACKAGE=\"dconf-editor\"
AM_VALAFLAGS = --vapidir ../client --pkg gtk+-3.0 --pkg libxml-2.0 --pkg dconf
CFLAGS += -Wno-error -Wno-unused-but-set-variable -Wno-unused-variable
dconf_editor_LDADD = ../client/libdconf.so.0 $(gtk_LIBS) $(gee_LIBS) $(libxml_LIBS)
@@ -29,6 +29,6 @@ update-icon-cache:
fi
uidir = $(datadir)/dconf-editor
-dist_ui_DATA = dconf-editor.ui
+dist_ui_DATA = dconf-editor.ui dconf-editor-menu.ui
EXTRA_DIST = $(gsettings_SCHEMAS) $(icons)
diff --git a/editor/dconf-editor-menu.ui b/editor/dconf-editor-menu.ui
new file mode 100644
index 0000000..8f62c3c
--- /dev/null
+++ b/editor/dconf-editor-menu.ui
@@ -0,0 +1,15 @@
+<interface>
+ <menu id="menu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">app.about</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="action">app.quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/editor/dconf-editor.vala b/editor/dconf-editor.vala
index c49cd5e..62058c7 100644
--- a/editor/dconf-editor.vala
+++ b/editor/dconf-editor.vala
@@ -17,14 +17,24 @@ class ConfigurationEditor : Gtk.Application
private Key? selected_key;
+ private const GLib.ActionEntry[] action_entries =
+ {
+ { "about", about_cb },
+ { "quit", quit_cb }
+ };
+
public ConfigurationEditor()
{
Object(application_id: "ca.desrt.dconf-editor", flags: ApplicationFlags.FLAGS_NONE);
}
-
+
protected override void startup()
{
base.startup();
+
+ Environment.set_application_name (_("DConf Editor"));
+
+ add_action_entries (action_entries, this);
settings = new Settings ("ca.desrt.dconf-editor.Settings");
@@ -33,7 +43,7 @@ class ConfigurationEditor : Gtk.Application
ui = new Gtk.Builder();
try
{
- string[] objects = { "set_default_action", "hpaned1" };
+ string[] objects = { "set_default_action", "hpaned1", "menu" };
ui.add_objects_from_file(Path.build_filename(Config.PKGDATADIR, "dconf-editor.ui"), objects);
}
catch (Error e)
@@ -47,6 +57,17 @@ class ConfigurationEditor : Gtk.Application
window.configure_event.connect(main_window_configure_event_cb);
window.add((Gtk.HPaned)ui.get_object("hpaned1"));
+ var menu_ui = new Gtk.Builder();
+ try
+ {
+ menu_ui.add_from_file(Path.build_filename(Config.PKGDATADIR, "dconf-editor-menu.ui"));
+ }
+ catch (Error e)
+ {
+ critical("Failed to load menu UI: %s", e.message);
+ }
+ set_app_menu((MenuModel)menu_ui.get_object("menu"));
+
window.set_default_size (settings.get_int ("width"), settings.get_int ("height"));
if (settings.get_boolean ("maximized"))
window.maximize ();
@@ -216,6 +237,29 @@ class ConfigurationEditor : Gtk.Application
return false;
}
+ private void about_cb()
+ {
+ string[] authors = { "Robert Ancell", null };
+ string license = _("This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA");
+ Gtk.show_about_dialog (window,
+ "program-name", _("DConf Editor"),
+ "version", Config.VERSION,
+ "comments",
+ _("Directly edit your entire configuration database"),
+ "copyright", "Copyright \xc2\xa9 Canonical Ltd",
+ "license", license,
+ "wrap-license", true,
+ "authors", authors,
+ "translator-credits", _("translator-credits"),
+ "logo-icon-name", "dconf-editor",
+ null);
+ }
+
+ private void quit_cb()
+ {
+ window.destroy();
+ }
+
public static int main(string[] args)
{
var app = new ConfigurationEditor();