Update the log while the viewer is opened
authorPhilipp Zabel <philipp.zabel@gmail.com>
Fri, 5 Mar 2010 14:10:47 +0000 (15:10 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Fri, 5 Mar 2010 14:35:10 +0000 (15:35 +0100)
src/status-area-applet-tor.vala

index dc7e35e..9b8910f 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 ();
        }
 
@@ -555,10 +561,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 +700,8 @@ class TorStatusMenuItem : HD.StatusMenuItem {
 
                add (button);
 
+               log_label = null;
+
                // Status area icon
                update_status ();