Updating branch refs/heads/aria2-xml-rpc
         to fd103e266cf3e8b0f8aba5dd5fd0594a8bbd6cf5 (commit)
       from 32127e76efd4aa52c4fd4969a5f33e205197176a (commit)

commit fd103e266cf3e8b0f8aba5dd5fd0594a8bbd6cf5
Author: Mike Massonnet <mmasson...@xfce.org>
Date:   Wed Feb 10 01:25:57 2010 +0100

    Add comments and switch Gtk.TreeIter#get/set_value against Gtk.TreeIter#[]

 src/eataria2.rb   |    8 ++++++++
 src/eatmanager.rb |   42 +++++++++++++++++++++++++-----------------
 2 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/src/eataria2.rb b/src/eataria2.rb
index 468978f..e07b88a 100644
--- a/src/eataria2.rb
+++ b/src/eataria2.rb
@@ -164,6 +164,10 @@ class Eat::Aria2 < GLib::Object
                end
        end
 
+=begin
+       spawn_server:
+       Execute an aria2c process in background and wait for a positive 
response.
+=end
        def spawn_server(command)
                pid = Process.spawn(command, :pgroup=>true, :chdir=>ENV['HOME'],
                                STDOUT=>"/dev/null", STDIN=>"/dev/null")
@@ -183,6 +187,10 @@ class Eat::Aria2 < GLib::Object
                pid
        end
 
+=begin
+       call:
+       Make an XML-RPC call to the server. Try to connect if the connection is 
broken.
+=end
        def call(method, *args)
                begin
                        result = @@client.call(method, *args)
diff --git a/src/eatmanager.rb b/src/eatmanager.rb
index fea43f2..fecb8d4 100644
--- a/src/eatmanager.rb
+++ b/src/eatmanager.rb
@@ -119,6 +119,7 @@ class Eat::Manager
        end
 
        def set_sensitive(sensitive)
+               # Set/Unset sensitivity of widgets that need aria2
                @treeview.set_sensitive(sensitive)
                @action_add.set_sensitive(sensitive)
                @action_pause.set_sensitive(sensitive)
@@ -134,59 +135,62 @@ class Eat::Manager
                result = @aria2.tell_status(gid)
                return if result.empty?
 
+               # Find gid in model
                @liststore.each do |model, path, iter|
-                       next unless iter.get_value(0) == gid_i
+                       next unless iter[0] == gid_i
                        row_iter = iter
                        break
                end
 
+               # Add inexistent gid
                if !row_iter
                        # Avoid adding rows with incomplete information
                        return if result["totalLength"] == "0" or 
result["status"] != "active"
 
                        # Add unknown active download to liststore
                        row_iter = @liststore.append
-                       @liststore.set_value(row_iter, 0, gid_i)
+                       row_iter[0] = gid_i
                        uris = @aria2.get_uris(gid)
                        p uris
                        begin
                                # TODO Torrent downloads don't have a URI
-                               @liststore.set_value(row_iter, 10, 
uris[0]["uri"])
+                               row_iter[10] = uris[0]["uri"]
                        rescue
                        end
                end
 
+               # Update status of gid in the model
                case result["status"]
                when "active" then
-                       @liststore.set_value(row_iter, 1, 
result["connections"].to_i)
-                       @liststore.set_value(row_iter, 2, 
result["completedLength"].to_i)
-                       @liststore.set_value(row_iter, 3, 
result["uploadLength"].to_i)
-                       @liststore.set_value(row_iter, 4, 
result["totalLength"].to_i)
-                       @liststore.set_value(row_iter, 5, 
result["downloadSpeed"].to_i)
-                       @liststore.set_value(row_iter, 6, 
result["uploadSpeed"].to_i)
-                       @liststore.set_value(row_iter, 7, result["infoHash"])
+                       row_iter[1] = result["connections"].to_i
+                       row_iter[2] = result["completedLength"].to_i
+                       row_iter[3] = result["uploadLength"].to_i
+                       row_iter[4] = result["totalLength"].to_i
+                       row_iter[5] = result["downloadSpeed"].to_i
+                       row_iter[6] = result["uploadSpeed"].to_i
+                       row_iter[7] = result["infoHash"]
 
                        completed = result["completedLength"].to_i
                        total = result["totalLength"].to_i
                        percent = total > 0 ? 100 * completed / total : 0
-                       @liststore.set_value(row_iter, 8, percent)
+                       row_iter[8] = percent
 
                        result = @aria2.get_files(gid.to_s)
                        if result != nil and !result[0]["path"].empty?
-                               @liststore.set_value(row_iter, 9, 
File.basename(result[0]["path"]))
+                               row_iter[9] = File.basename(result[0]["path"])
                        end
                when "complete" then
-                       @liststore.set_value(row_iter, 8, 100)
+                       row_iter[8] = 100
                        # Update the name, useful for very small files for which
                        # this callback didn't run with the "active" state.
                        result = @aria2.get_files(gid.to_s)
                        if result != nil and !result[0]["path"].empty?
-                               @liststore.set_value(row_iter, 9, 
File.basename(result[0]["path"]))
+                               row_iter[9] = File.basename(result[0]["path"])
                        end
                when "removed" then
                        # TODO mark as stopped/inactive
                when "error" then
-                       @liststore.set_value(row_iter, 8, -1)
+                       row_iter[8] = -1
                end
        end
 
@@ -295,13 +299,15 @@ class Eat::Manager
        end
 
        def action_pause()
+               # Remove gid from aria2 but keep them in model
                @treeview.selection.selected_each do |model, path, iter|
-                       gid = iter.get_value(0)
+                       gid = iter[0]
                        @aria2.remove(gid.to_s)
                end
        end
 
        def action_resume()
+               # Resume gid that have been removed
                @treeview.selection.selected_each do |model, path, iter|
                        gid = iter[0].to_s
                        status = @aria2.tell_status(gid)
@@ -331,7 +337,9 @@ class Eat::Manager
 
        def action_remove()
                @treeview.selection.selected_each do |model, path, iter|
-                       gid = iter.get_value(0)
+                       # TODO aria2 may respond to the remove request after 
the callback
+                       # and thus re-add a new iter
+                       gid = iter[0]
                        @aria2.remove(gid.to_s)
                        @liststore.remove(iter)
                end
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to