diff -Nru indicator-multiload-0.3/debian/bzr-builder.manifest indicator-multiload-0.3/debian/bzr-builder.manifest --- indicator-multiload-0.3/debian/bzr-builder.manifest 2011-08-15 21:40:18.000000000 +0000 +++ indicator-multiload-0.3/debian/bzr-builder.manifest 2011-08-16 21:34:15.000000000 +0000 @@ -1,3 +1,3 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~35~15 -lp:indicator-multiload revid:mh21@piware.de-20110815213610-2ytawi1ujoooi4hg +# bzr-builder format 0.3 deb-version {debupstream}-0~36~15 +lp:indicator-multiload revid:mh21@piware.de-20110816195139-hgolccovv6sofv0g nest-part packaging lp:~indicator-multiload/indicator-multiload/trunk-packaging-gtk2 debian debian revid:mh21@piware.de-20110604184718-pwy3u1nn2etw8wby diff -Nru indicator-multiload-0.3/debian/changelog indicator-multiload-0.3/debian/changelog --- indicator-multiload-0.3/debian/changelog 2011-08-15 21:40:18.000000000 +0000 +++ indicator-multiload-0.3/debian/changelog 2011-08-16 21:34:15.000000000 +0000 @@ -1,8 +1,8 @@ -indicator-multiload (0.3-0~35~15~natty1) unstable; urgency=low +indicator-multiload (0.3-0~36~15~natty1) unstable; urgency=low * Auto build. - -- Michael Hofmann Mon, 15 Aug 2011 21:40:18 +0000 + -- Launchpad Package Builder Tue, 16 Aug 2011 21:34:15 +0000 indicator-multiload (0.3) unstable; urgency=low diff -Nru indicator-multiload-0.3/Makefile.am indicator-multiload-0.3/Makefile.am --- indicator-multiload-0.3/Makefile.am 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/Makefile.am 2011-08-16 21:34:14.000000000 +0000 @@ -22,3 +22,12 @@ -glib-compile-schemas local-xdg-data-dir/glib-2.0/schemas -XDG_DATA_DIRS=./local-xdg-data-dir:$$XDG_DATA_DIRS G_SLICE=always-malloc src/indicator-multiload -rm -rf local-xdg-data-dir + +test-debug: + -rm -rf local-xdg-data-dir + -mkdir -p local-xdg-data-dir/glib-2.0/schemas local-xdg-data-dir/indicator-multiload + -ln -s ../../../data/de.mh21.indicator.multiload.gschema.xml local-xdg-data-dir/glib-2.0/schemas + -ln -s ../../data/preferences.ui local-xdg-data-dir/indicator-multiload + -glib-compile-schemas local-xdg-data-dir/glib-2.0/schemas + -XDG_DATA_DIRS=./local-xdg-data-dir:$$XDG_DATA_DIRS G_SLICE=always-malloc gdb src/indicator-multiload + -rm -rf local-xdg-data-dir diff -Nru indicator-multiload-0.3/.pc/gtk2.diff/src/Makefile.am indicator-multiload-0.3/.pc/gtk2.diff/src/Makefile.am --- indicator-multiload-0.3/.pc/gtk2.diff/src/Makefile.am 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/.pc/gtk2.diff/src/Makefile.am 2011-08-16 21:34:14.000000000 +0000 @@ -33,6 +33,7 @@ netdata.vala \ preferences.vala \ settingsconversion.vala \ + settingscache.vala \ swapdata.vala \ utils.vala \ config.vapi \ diff -Nru indicator-multiload-0.3/src/main.vala indicator-multiload-0.3/src/main.vala --- indicator-multiload-0.3/src/main.vala 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/src/main.vala 2011-08-16 21:34:14.000000000 +0000 @@ -20,7 +20,7 @@ private MultiLoadIndicator multi; private Gtk.Dialog about; private Preferences preferences; - private FixedGSettings.Settings[] creationnotifiers; + private SettingsCache settingscache; private static string datadirectory; private string gsettings; private string autostartkey; @@ -79,7 +79,7 @@ [CCode (instance_pos = -1)] public void on_sysmon_activate(Gtk.MenuItem source) { - var settings = Utils.generalsettings(); + var settings = this.settingscache.generalsettings(); var sysmon = settings.get_string("system-monitor"); if (sysmon.length == 0) sysmon = "gnome-system-monitor.desktop"; @@ -158,14 +158,14 @@ // called a lot. Recreating the graphs is expensive, so check whether // it is really necessary. string newgraphsetups = ""; - foreach (var graphid in Utils.generalsettings().get_strv("graphs")) + foreach (var graphid in this.settingscache.generalsettings().get_strv("graphs")) newgraphsetups += "%s=%s\n".printf(graphid, string.joinv(",", - Utils.graphsettings(graphid).get_strv("traces"))); + this.settingscache.graphsettings(graphid).get_strv("traces"))); if (this.graphsetups == newgraphsetups) return; this.graphsetups = newgraphsetups; - var datasettings = Utils.generalsettings(); + var datasettings = this.settingscache.generalsettings(); GraphData[] graphdatas = null; foreach (var graphid in datasettings.get_strv("graphs")) @@ -177,21 +177,19 @@ this.addgraphbinds(graphdata); // dconf notifications for graph/trace creation - foreach (var creationnotifier in this.creationnotifiers) - SignalHandler.disconnect_by_func(creationnotifier, + foreach (var cachedsetting in this.settingscache.cachedsettings()) + SignalHandler.disconnect_by_func(cachedsetting, (void*) Main.creategraphs, this); - this.creationnotifiers = { datasettings }; datasettings.changed["graphs"].connect(this.creategraphs); foreach (var graphdata in this.multi.graphdatas) { - var graphsettings = Utils.graphsettings(graphdata.id); - this.creationnotifiers += graphsettings; + var graphsettings = this.settingscache.graphsettings(graphdata.id); graphsettings.changed["traces"].connect(this.creategraphs); } } private void addgraphbinds(GraphData graphdata) { var graphid = graphdata.id; - var graphsettings = Utils.graphsettings(graphid); + var graphsettings = this.settingscache.graphsettings(graphid); graphsettings.bind_with_mapping("background-color", graphdata, "background_color", SettingsBindFlags.DEFAULT, @@ -217,7 +215,7 @@ private void addtracebinds(TraceData tracedata, string graphid, string traceid) { - var tracesettings = Utils.tracesettings(graphid, traceid); + var tracesettings = this.settingscache.tracesettings(graphid, traceid); tracesettings.bind_with_mapping("color", tracedata, "color", SettingsBindFlags.DEFAULT, @@ -240,9 +238,11 @@ new SwapData(), new LoadData(), new DiskData() }); + this.settingscache = new SettingsCache(); + new SettingsConversion().convert(); - var datasettings = Utils.generalsettings(); + var datasettings = this.settingscache.generalsettings(); datasettings.bind("size", this.multi, "size", SettingsBindFlags.DEFAULT); diff -Nru indicator-multiload-0.3/src/Makefile.am indicator-multiload-0.3/src/Makefile.am --- indicator-multiload-0.3/src/Makefile.am 2011-08-15 21:40:18.000000000 +0000 +++ indicator-multiload-0.3/src/Makefile.am 2011-08-16 21:34:15.000000000 +0000 @@ -33,6 +33,7 @@ netdata.vala \ preferences.vala \ settingsconversion.vala \ + settingscache.vala \ swapdata.vala \ utils.vala \ config.vapi \ diff -Nru indicator-multiload-0.3/src/menupreferences.vala indicator-multiload-0.3/src/menupreferences.vala --- indicator-multiload-0.3/src/menupreferences.vala 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/src/menupreferences.vala 2011-08-16 21:34:14.000000000 +0000 @@ -43,7 +43,7 @@ this.menuitemstore = builder.get_object("menuitemstore") as Gtk.ListStore; this.menuitemview = builder.get_object("menuitemview") as Gtk.TreeView; - this.menuitemsettings = Utils.generalsettings(); + this.menuitemsettings = new SettingsCache().generalsettings(); this.menuitemsettings.changed["menu-expressions"].connect(on_menuitemsettings_changed); this.menuitemadd = builder.get_object("menuitemadd") as Gtk.Button; @@ -132,7 +132,7 @@ } this.menuitemstore.insert(out iter, (int) pos); this.menuitemview.grab_focus(); - this.menuitemview.set_cursor(this.menuitemstore.get_path(iter), + this.menuitemview.set_cursor(this.menuitemstore.get_path(iter), this.menuitemview.get_column(0), true); } @@ -156,7 +156,7 @@ return; this.menuitemview.grab_focus(); - this.menuitemview.set_cursor(this.menuitemstore.get_path(iter), + this.menuitemview.set_cursor(this.menuitemstore.get_path(iter), this.menuitemview.get_column(0), true); } diff -Nru indicator-multiload-0.3/src/preferences.vala indicator-multiload-0.3/src/preferences.vala --- indicator-multiload-0.3/src/preferences.vala 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/src/preferences.vala 2011-08-16 21:34:14.000000000 +0000 @@ -39,8 +39,9 @@ out builder) as Gtk.Dialog; return_if_fail(this.preferences != null); - var datasettings = Utils.generalsettings(); - var graphids = datasettings.get_strv("graphs"); + var settingscache = new SettingsCache(); + var prefsettings = settingscache.generalsettings(); + var graphids = prefsettings.get_strv("graphs"); foreach (var graphid in graphids) { var checkbutton = builder.get_object(@"$(graphid)_enabled") as Gtk.CheckButton; @@ -49,11 +50,14 @@ } foreach (var graphid in graphids) { - var graphsettings = Utils.graphsettings(graphid); + if (!(graphid in SettingsCache.presetgraphids)) + continue; + + var graphsettings = settingscache.graphsettings(graphid); var traceids = graphsettings.get_strv("traces"); for (uint j = 0, jsize = traceids.length; j < jsize; ++j) { var traceid = traceids[j]; - var tracesettings = Utils.tracesettings(graphid, traceid); + var tracesettings = settingscache.tracesettings(graphid, traceid); tracesettings.bind_with_mapping("color", builder.get_object(@"$(traceid)_color"), "color", SettingsBindFlags.DEFAULT, Utils.get_settings_color, @@ -72,7 +76,6 @@ SettingsBindFlags.DEFAULT); } - var prefsettings = Utils.generalsettings(); prefsettings.bind("size", builder.get_object("size"), "value", SettingsBindFlags.DEFAULT); diff -Nru indicator-multiload-0.3/src/settingscache.vala indicator-multiload-0.3/src/settingscache.vala --- indicator-multiload-0.3/src/settingscache.vala 1970-01-01 00:00:00.000000000 +0000 +++ indicator-multiload-0.3/src/settingscache.vala 2011-08-16 21:34:14.000000000 +0000 @@ -0,0 +1,62 @@ +/****************************************************************************** + * Copyright (C) 2011 Michael Hofmann * + * * + * 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 3 of the License, or * + * (at your option) any later version. * + * * + * This 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. * + * * + * You 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. * + ******************************************************************************/ + +public class SettingsCache : Object { + public static const string[] presetgraphids = {"cpu", "mem", "net", "load", "swap", "disk"}; + private HashTable cached = + new HashTable.full + (str_hash, str_equal, g_free, g_object_unref); + + private FixedGSettings.Settings settings(string key, string? path) { + var result = this.cached.lookup(key); + if (result == null) { + result = path == null ? + new FixedGSettings.Settings(key) : + new FixedGSettings.Settings.with_path(key, path); + this.cached.insert(path == null ? key : @"$key:$path", result); + } + return result; + } + + public List cachedsettings() { + return this.cached.get_values(); + } + + public FixedGSettings.Settings generalsettings() { + return this.settings("de.mh21.indicator.multiload.general", null); + } + + public FixedGSettings.Settings graphsettings(string graphid) { + if (graphid in presetgraphids) + return this.settings + (@"de.mh21.indicator.multiload.graphs.$graphid", null); + return this.settings + ("de.mh21.indicator.multiload.graph", + @"/apps/indicators/multiload/graphs/$graphid/"); + } + + public FixedGSettings.Settings tracesettings(string graphid, + string traceid) { + if (graphid in presetgraphids) + return this.settings + (@"de.mh21.indicator.multiload.traces.$traceid", null); + return this.settings + ("de.mh21.indicator.multiload.trace", + @"/apps/indicators/multiload/graphs/$graphid/$traceid/"); + } +} diff -Nru indicator-multiload-0.3/src/settingsconversion.vala indicator-multiload-0.3/src/settingsconversion.vala --- indicator-multiload-0.3/src/settingsconversion.vala 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/src/settingsconversion.vala 2011-08-16 21:34:14.000000000 +0000 @@ -17,11 +17,10 @@ ******************************************************************************/ public class SettingsConversion : Object { - public SettingsConversion() { - } + SettingsCache settingscache = new SettingsCache(); public uint oldversion() { - var settings = Utils.generalsettings(); + var settings = this.settingscache.generalsettings(); return settings.get_value("settings-version").get_uint32(); } @@ -30,7 +29,7 @@ } public void convert() { - var settings = Utils.generalsettings(); + var settings = this.settingscache.generalsettings(); while (!this.is_current()) { switch (this.oldversion()) { @@ -54,118 +53,118 @@ // no problem yet as we are only at settings version 2 switch (key) { case "cpuload-alpha4": - Utils.graphsettings("cpu").set_value("alpha", value); + this.settingscache.graphsettings("cpu").set_value("alpha", value); break; case "memload-alpha4": - Utils.graphsettings("mem").set_value("alpha", value); + this.settingscache.graphsettings("mem").set_value("alpha", value); break; case "netload-alpha3": - Utils.graphsettings("net").set_value("alpha", value); + this.settingscache.graphsettings("net").set_value("alpha", value); break; case "swapload-alpha1": - Utils.graphsettings("swap").set_value("alpha", value); + this.settingscache.graphsettings("swap").set_value("alpha", value); break; case "loadavg-alpha1": - Utils.graphsettings("load").set_value("alpha", value); + this.settingscache.graphsettings("load").set_value("alpha", value); break; case "diskload-alpha2": - Utils.graphsettings("disk").set_value("alpha", value); + this.settingscache.graphsettings("disk").set_value("alpha", value); break; case "view-cpuload": - Utils.graphsettings("cpu").set_value("enabled", value); + this.settingscache.graphsettings("cpu").set_value("enabled", value); break; case "view-memload": - Utils.graphsettings("mem").set_value("enabled", value); + this.settingscache.graphsettings("mem").set_value("enabled", value); break; case "view-netload": - Utils.graphsettings("net").set_value("enabled", value); + this.settingscache.graphsettings("net").set_value("enabled", value); break; case "view-swapload": - Utils.graphsettings("swap").set_value("enabled", value); + this.settingscache.graphsettings("swap").set_value("enabled", value); break; case "view-loadavg": - Utils.graphsettings("load").set_value("enabled", value); + this.settingscache.graphsettings("load").set_value("enabled", value); break; case "view-diskload": - Utils.graphsettings("disk").set_value("enabled", value); + this.settingscache.graphsettings("disk").set_value("enabled", value); break; case "cpuload-color0": - Utils.tracesettings("cpu", "cpu1").set_value("color", value); + this.settingscache.tracesettings("cpu", "cpu1").set_value("color", value); break; case "cpuload-color1": - Utils.tracesettings("cpu", "cpu2").set_value("color", value); + this.settingscache.tracesettings("cpu", "cpu2").set_value("color", value); break; case "cpuload-color2": - Utils.tracesettings("cpu", "cpu3").set_value("color", value); + this.settingscache.tracesettings("cpu", "cpu3").set_value("color", value); break; case "cpuload-color3": - Utils.tracesettings("cpu", "cpu4").set_value("color", value); + this.settingscache.tracesettings("cpu", "cpu4").set_value("color", value); break; case "cpuload-color4": - Utils.graphsettings("cpu").set_value("background-color", value); + this.settingscache.graphsettings("cpu").set_value("background-color", value); break; case "memload-color0": - Utils.tracesettings("mem", "mem1").set_value("color", value); + this.settingscache.tracesettings("mem", "mem1").set_value("color", value); break; case "memload-color1": - Utils.tracesettings("mem", "mem2").set_value("color", value); + this.settingscache.tracesettings("mem", "mem2").set_value("color", value); break; case "memload-color2": - Utils.tracesettings("mem", "mem3").set_value("color", value); + this.settingscache.tracesettings("mem", "mem3").set_value("color", value); break; case "memload-color3": - Utils.tracesettings("mem", "mem4").set_value("color", value); + this.settingscache.tracesettings("mem", "mem4").set_value("color", value); break; case "memload-color4": - Utils.graphsettings("mem").set_value("background-color", value); + this.settingscache.graphsettings("mem").set_value("background-color", value); break; case "netload-color0": - Utils.tracesettings("net", "net1").set_value("color", value); + this.settingscache.tracesettings("net", "net1").set_value("color", value); break; case "netload-color1": - Utils.tracesettings("net", "net2").set_value("color", value); + this.settingscache.tracesettings("net", "net2").set_value("color", value); break; case "netload-color2": - Utils.tracesettings("net", "net3").set_value("color", value); + this.settingscache.tracesettings("net", "net3").set_value("color", value); break; case "netload-color3": - Utils.graphsettings("net").set_value("background-color", value); + this.settingscache.graphsettings("net").set_value("background-color", value); break; case "swapload-color0": - Utils.tracesettings("swap", "swap1").set_value("color", value); + this.settingscache.tracesettings("swap", "swap1").set_value("color", value); break; case "swapload-color1": - Utils.graphsettings("swap").set_value("background-color", value); + this.settingscache.graphsettings("swap").set_value("background-color", value); break; case "loadavg-color0": - Utils.tracesettings("load", "load1").set_value("color", value); + this.settingscache.tracesettings("load", "load1").set_value("color", value); break; case "loadavg-color1": - Utils.graphsettings("load").set_value("background-color", value); + this.settingscache.graphsettings("load").set_value("background-color", value); break; case "diskload-color0": - Utils.tracesettings("disk", "disk1").set_value("color", value); + this.settingscache.tracesettings("disk", "disk1").set_value("color", value); break; case "diskload-color1": - Utils.tracesettings("disk", "disk2").set_value("color", value); + this.settingscache.tracesettings("disk", "disk2").set_value("color", value); break; case "diskload-color2": - Utils.graphsettings("disk").set_value("background-color", value); + this.settingscache.graphsettings("disk").set_value("background-color", value); break; case "speed": - Utils.generalsettings().set_value("speed", value); + this.settingscache.generalsettings().set_value("speed", value); break; case "size": - Utils.generalsettings().set_value("size", value); + this.settingscache.generalsettings().set_value("size", value); break; case "height": - Utils.generalsettings().set_value("height", value); + this.settingscache.generalsettings().set_value("height", value); break; case "system-monitor": - Utils.generalsettings().set_value("system-monitor", value); + this.settingscache.generalsettings().set_value("system-monitor", value); break; case "autostart": - Utils.generalsettings().set_value("autostart", value); + this.settingscache.generalsettings().set_value("autostart", value); break; } } diff -Nru indicator-multiload-0.3/src/utils.vala indicator-multiload-0.3/src/utils.vala --- indicator-multiload-0.3/src/utils.vala 2011-08-15 21:40:17.000000000 +0000 +++ indicator-multiload-0.3/src/utils.vala 2011-08-16 21:34:14.000000000 +0000 @@ -106,29 +106,6 @@ return builder.get_object(objectid); } - public FixedGSettings.Settings generalsettings() { - return new FixedGSettings.Settings("de.mh21.indicator.multiload.general"); - } - - public FixedGSettings.Settings graphsettings(string graphid) { - if (graphid.has_prefix("custom")) - return new FixedGSettings.Settings.with_path - ("de.mh21.indicator.multiload.graph", - @"/apps/indicators/multiload/graphs/$graphid/"); - return new FixedGSettings.Settings - (@"de.mh21.indicator.multiload.graphs.$graphid"); - } - - public FixedGSettings.Settings tracesettings(string graphid, - string traceid) { - if (traceid.has_prefix("custom")) - return new FixedGSettings.Settings.with_path - ("de.mh21.indicator.multiload.trace", - @"/apps/indicators/multiload/graphs/$graphid/$traceid/"); - return new FixedGSettings.Settings - (@"de.mh21.indicator.multiload.traces.$traceid"); - } - public bool get_settings_color(Value value, Variant variant, void *user_data) { Gdk.Color color;