Update for Vala 0.8.0
[tor-status] / src / status-area-applet-tor.vala
index dc7e35e..e2ff9d5 100644 (file)
@@ -52,6 +52,7 @@ class TorStatusMenuItem : HD.StatusMenuItem {
 
        // Widgets
        Hildon.Button button;
+       Gtk.Label log_label;
 
        // Icons
        Gdk.Pixbuf icon_connecting;
@@ -139,6 +140,9 @@ class TorStatusMenuItem : HD.StatusMenuItem {
                                /* var status = */ source.read_line (out line, out length, null);
 
                                tor_log += line;
+                               if (log_label != null)
+                                       log_label.label = tor_log;
+
                                if ("[notice]" in line) {
                                        if ("Bootstrapped 100%" in line) {
                                                tor_connected = true;
@@ -254,6 +258,8 @@ class TorStatusMenuItem : HD.StatusMenuItem {
                }
 
                tor_log = "";
+               if (log_label != null)
+                       log_label.label = tor_log;
                update_status ();
        }
 
@@ -459,12 +465,14 @@ class TorStatusMenuItem : HD.StatusMenuItem {
 
                        if (response_id == RESPONSE_DELETE) {
                                if (path != null) {
-                                       store.remove (iter);
+                                       Gtk.TreeIter iter2;
+                                       store.get_iter (out iter2, path);
+                                       store.remove (iter2);
                                        string bridge;
-                                       if (store.get_iter_first (out iter)) do {
-                                               store.@get (iter, 0, out bridge);
+                                       if (store.get_iter_first (out iter2)) do {
+                                               store.@get (iter2, 0, out bridge);
                                                bridges.append (bridge);
-                                       } while (store.iter_next (ref iter));
+                                       } while (store.iter_next (ref iter2));
                                        try {
                                                gconf.set_list (GCONF_KEY_BRIDGES,
                                                                GConf.ValueType.STRING,
@@ -488,10 +496,13 @@ class TorStatusMenuItem : HD.StatusMenuItem {
                                                                        _("Invalid port number"));
                                        return;
                                }
+                               Gtk.TreeIter iter2;
                                if (path == null) {
-                                       store.append (out iter);
+                                       store.append (out iter2);
+                               } else {
+                                       store.get_iter (out iter2, path);
                                }
-                               store.@set (iter, 0, "%s:%d".printf (ip_entry.get_text (), port));
+                               store.@set (iter2, 0, "%s:%d".printf (ip_entry.get_text (), port));
                                try {
                                        bridges = gconf.get_list (GCONF_KEY_BRIDGES,
                                                                  GConf.ValueType.STRING);
@@ -504,10 +515,10 @@ class TorStatusMenuItem : HD.StatusMenuItem {
                                } else {
                                        bridges = null;
                                        string bridge;
-                                       if (store.get_iter_first (out iter)) do {
-                                               store.@get (iter, 0, out bridge);
+                                       if (store.get_iter_first (out iter2)) do {
+                                               store.@get (iter2, 0, out bridge);
                                                bridges.append (bridge);
-                                       } while (store.iter_next (ref iter));
+                                       } while (store.iter_next (ref iter2));
                                }
                                try {
                                        gconf.set_list (GCONF_KEY_BRIDGES,
@@ -555,10 +566,15 @@ class TorStatusMenuItem : HD.StatusMenuItem {
 
                var pannable = new Hildon.PannableArea ();
                pannable.mov_mode = Hildon.MovementMode.BOTH;
-               var label = new Gtk.Label (tor_log);
-               pannable.add_with_viewport (label);
+               log_label = new Gtk.Label (tor_log);
+               log_label.set_alignment (0, 0);
+               pannable.add_with_viewport (log_label);
                content.pack_start (pannable, true, true, 0);
 
+               dialog.response.connect (() => {
+                       log_label = null;
+               });
+
                dialog.show_all ();
        }
 
@@ -689,6 +705,8 @@ class TorStatusMenuItem : HD.StatusMenuItem {
 
                add (button);
 
+               log_label = null;
+
                // Status area icon
                update_status ();