[Xfce4-commits] <eatmonkey:aria2-xml-rpc> Show error message for broken downloads

Mike Massonnet noreply at xfce.org
Sun Feb 28 16:32:03 CET 2010


Updating branch refs/heads/aria2-xml-rpc
         to ce1f293c8377b1f38faf0f225ca56a2b15590b29 (commit)
       from 9af840799e10a5c3d437caa2ceb69b6e830b1b3c (commit)

commit ce1f293c8377b1f38faf0f225ca56a2b15590b29
Author: Mike Massonnet <mmassonnet at xfce.org>
Date:   Sun Feb 28 16:27:54 2010 +0100

    Show error message for broken downloads
    
    Add download_error signal and emit it on download error. The manager was
    missing it to effectively being able to display an error message.
    
    Set the label layout for the error message (align left and ellipsize).

 src/eataria2.rb   |    6 +++++-
 src/eatmanager.rb |   10 ++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/eataria2.rb b/src/eataria2.rb
index 0fa1012..6d25b90 100755
--- a/src/eataria2.rb
+++ b/src/eataria2.rb
@@ -69,6 +69,9 @@ class Eat::Aria2 < GLib::Object
 	signal_new("download_stopped", GLib::Signal::RUN_FIRST, nil,
 			nil,					# Return type: void
 			String)					# Parameters: gid
+	signal_new("download_error", GLib::Signal::RUN_FIRST, nil,
+			nil,					# Return type: void
+			String)					# Parameters: gid
 
 	def signal_do_connected(); end
 	def signal_do_disconnected(); end
@@ -78,6 +81,7 @@ class Eat::Aria2 < GLib::Object
 	def signal_do_download_completed(gid); end
 	def signal_do_download_removed(gid); end
 	def signal_do_download_stopped(gid); end
+	def signal_do_download_error(gid); end
 
 	def initialize(hostname = DEFAULT_HOST, port = DEFAULT_PORT, user = nil, password = nil)
 		super(nil)
@@ -480,7 +484,7 @@ class Eat::Aria2Listener < Eat::Aria2
 						when "complete" then signal_emit("download_completed", gid)
 						when "waiting" then signal_emit("download_waiting", gid)
 						when "removed" then signal_emit("download_removed", gid)
-						when "error" then puts "Error (%s: %s)" % [gid, status["errorCode"]]
+						when "error" then signal_emit("download_error", gid)
 						else puts "Inconsistent status (%s: %s)" % [gid, status["status"]]
 					end
 					@new_downloads.delete(gid)
diff --git a/src/eatmanager.rb b/src/eatmanager.rb
index d9ff429..ae87da1 100755
--- a/src/eatmanager.rb
+++ b/src/eatmanager.rb
@@ -65,6 +65,7 @@ class Eat::Manager
 		@aria2.signal_connect("download_status") { |this, gid| update_row(gid) }
 		@aria2.signal_connect("download_completed") { |this, gid| update_row(gid) }
 		@aria2.signal_connect("download_removed") { |this, gid| update_row(gid) }
+		@aria2.signal_connect("download_error") { |this, gid| update_row(gid) }
 
 		# Setup actions
 		@action_add.signal_connect("activate") { action_add }
@@ -209,8 +210,7 @@ class Eat::Manager
 		when "removed" then
 			# TODO mark as stopped/inactive
 		when "error" then
-			# TODO display an error message
-			row_iter[8] = -1
+			@infobar.show_error("Download error (%s) on %s" % [status["errorCode"], row_iter[9]], "Close")
 		end
 	end
 
@@ -336,7 +336,7 @@ class Eat::Manager
 				row_iter[11] = uri
 			else
 				# Display an error message
-				# TODO
+				@infobar.show_error("The URI couldn't be added", "Close")
 			end
 		end
 	end
@@ -468,8 +468,10 @@ class Eat::ManagerInfoBar < HBox
 		pack_start(img, false, false, 0)
 
 		@label = Label.new
+		@label.set_ellipsize(Pango::Layout::ELLIPSIZE_END)
+		@label.set_xalign(0.0)
 		@label.set_use_markup(true)
-		pack_start(@label, false, false, 0)
+		pack_start(@label, true, true, 0)
 
 		signal_connect("hide") do
 			if @button.signal_handler_is_connected?(@callback_id)



More information about the Xfce4-commits mailing list