mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiUploads.ml


From: mldonkey-commits
Subject: [Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiUploads.ml
Date: Sat, 12 Nov 2005 06:16:47 -0500

Index: mldonkey/src/gtk2/gui/guiUploads.ml
diff -u mldonkey/src/gtk2/gui/guiUploads.ml:1.4 
mldonkey/src/gtk2/gui/guiUploads.ml:1.5
--- mldonkey/src/gtk2/gui/guiUploads.ml:1.4     Mon Oct 31 18:34:02 2005
+++ mldonkey/src/gtk2/gui/guiUploads.ml Sat Nov 12 11:16:36 2005
@@ -236,6 +236,7 @@
 (*************************************************************************)
 
     method content (col : GTree.view_column) c =
+      let autosize = match col#sizing with `AUTOSIZE -> true | _ -> false in
       match c with
           Col_shared_file ->
             begin
@@ -247,9 +248,11 @@
                 end;
               let renderer = GTree.cell_renderer_text [`XALIGN 0.] in
               col#pack ~expand:false renderer;
-              col#set_cell_data_func renderer
-                (fun model row ->
-                   match !view_context with
+              if autosize
+                then col#add_attribute renderer "text" shared_name
+                else col#set_cell_data_func renderer
+                  (fun model row ->
+                     match !view_context with
                        Some context when col#width > 0 ->
                          begin
                            let width =
@@ -262,7 +265,7 @@
                            renderer#set_properties [ `TEXT s ]
                          end
                      | _ -> renderer#set_properties [ `TEXT "" ]
-              )
+                  )
             end
 
         | Col_shared_upsize ->
@@ -333,12 +336,15 @@
 (*************************************************************************)
 
     method force_update_icons () =
+      let f k row =
+        let si = shared_file_of_key k in
+        store#set ~row ~column:shared_network_pixb (Mi.network_pixb 
si.g_shared_network ~size:A.SMALL ());
+        store#set ~row ~column:shared_name_pixb (Mi.file_type_of_name 
si.g_shared_filename ~size:A.SMALL);
+      in
       List.iter (fun k ->
         try
-          let si = shared_file_of_key k in
           let row = self#find_row k in
-          store#set ~row ~column:shared_network_pixb (Mi.network_pixb 
si.g_shared_network ~size:A.SMALL ());
-          store#set ~row ~column:shared_name_pixb (Mi.file_type_of_name 
si.g_shared_filename ~size:A.SMALL);
+          Gaux.may ~f:(f k) row
         with _ -> ()
       ) (self#all_items ())
 
@@ -464,6 +470,7 @@
 (*************************************************************************)
 
     method content (col : GTree.view_column) c =
+      let autosize = match col#sizing with `AUTOSIZE -> true | _ -> false in
       match c with
           Col_client_name ->
             begin
@@ -475,9 +482,11 @@
                 end;
               let renderer = GTree.cell_renderer_text [`XALIGN 0.] in
               col#pack ~expand:false renderer;
-              col#set_cell_data_func renderer
-                (fun model row ->
-                   match !view_context with
+              if autosize
+                then col#add_attribute renderer "text" uploader_name
+                else col#set_cell_data_func renderer
+                  (fun model row ->
+                     match !view_context with
                        Some context when col#width > 0 ->
                          begin
                            let width =
@@ -490,7 +499,7 @@
                            renderer#set_properties [ `TEXT s ]
                          end
                      | _ -> renderer#set_properties [ `TEXT "" ]
-              )
+                  )
             end
 
         | Col_client_state ->
@@ -567,10 +576,12 @@
             begin
               let renderer = GTree.cell_renderer_text [`XALIGN 0.] in
               col#pack renderer;
-              col#set_cell_data_func renderer
-                (fun model row ->
-                   let upload = model#get ~row ~column:uploader_upload in
-                   match (!view_context, upload) with
+              if autosize
+                then col#add_attribute renderer "text" uploader_upload
+                else col#set_cell_data_func renderer
+                  (fun model row ->
+                     let upload = model#get ~row ~column:uploader_upload in
+                     match (!view_context, upload) with
                        (Some context, Some file_name) when col#width > 0 ->
                          begin
                            let width = col#width - 4 * !G.char_width in
@@ -578,7 +589,7 @@
                            renderer#set_properties [ `TEXT s ]
                          end
                      | _ -> renderer#set_properties [ `TEXT "" ]
-              )
+                  )
             end
 
         | Col_client_network ->
@@ -628,12 +639,15 @@
 (*************************************************************************)
 
     method force_update_icons () =
+      let f k row =
+        let s = uploader_of_key k in
+        store#set ~row ~column:uploader_network_pixb (Mi.network_pixb 
s.source_network ~size:A.SMALL ());
+        store#set ~row ~column:uploader_name_pixb (Mi.source_type_to_icon 
s.source_type ~size:A.SMALL);
+      in
       List.iter (fun k ->
         try
-          let s = uploader_of_key k in
           let row = self#find_row k in
-          store#set ~row ~column:uploader_network_pixb (Mi.network_pixb 
s.source_network ~size:A.SMALL ());
-          store#set ~row ~column:uploader_name_pixb (Mi.source_type_to_icon 
s.source_type ~size:A.SMALL);
+          Gaux.may ~f:(f k) row
         with _ -> ()
       ) (self#all_items ())
 
@@ -784,9 +798,8 @@
   si.g_shared_last_seen <- si_new.g_shared_last_seen
 
 let add_upload si =
-  ignore (uploadstore#add_item si);
+  uploadstore#add_item si ~f:update_uploads_label ();
   Hashtbl.add G.shared_files si.g_shared_num si;
-  update_uploads_label ();
   let si_uid = Mi.to_uid_type si.g_shared_uids in
   GuiGraphBase.add_file si_uid;
   Hashtbl.add G.file_by_uid si_uid (U.utf8_of si.g_shared_filename)
@@ -806,7 +819,7 @@
                (si_new.g_shared_last_seen -. si.g_shared_last_seen)
     in
     let row = uploadstore#find_row (shared_file_key si_new.g_shared_num) in
-    uploadstore#update_item row si si_new;
+    Gaux.may ~f:(fun r -> uploadstore#update_item r si si_new) row;
     hashtbl_update_shared_files si si_new;
     let rate = int_of_float rate in
     GuiGraphBase.save_record rate (GraphFile ((Mi.to_uid_type 
si.g_shared_uids), GraphUploads));
@@ -825,7 +838,7 @@
                (si_new.g_shared_last_seen -. si.g_shared_last_seen)
     in
     let rate = int_of_float rate in
-    uploadstore#update_item row si si_new;
+    Gaux.may ~f:(fun r -> uploadstore#update_item r si si_new) row;
     si.g_shared_size <- si_new.g_shared_size;
     si.g_shared_uploaded <- si_new.g_shared_uploaded;
     si.g_shared_requests <- si_new.g_shared_requests;
@@ -956,7 +969,8 @@
 let remove_uploader s =
   uploaderstore#remove_item (uploader_key s.source_num);
   (if s.source_has_upload = source_has_upload then decr nuploading);
-  s.source_has_upload <- source_only
+  s.source_has_upload <- source_only;
+  update_uploaders_label ()
 
 let update_uploaders () =
   let keys = uploaderstore#all_items () in
@@ -971,7 +985,7 @@
       let s_new = {s with source_has_upload = has_upload} in
       try
         let row = uploaderstore#find_row (uploader_key num) in
-        uploaderstore#update_item row s s_new;
+        Gaux.may ~f:(fun r -> uploaderstore#update_item r s s_new) row;
         begin
           if s_new.source_has_upload = source_has_upload && 
s.source_has_upload <> source_has_upload
             then incr nuploading
@@ -982,7 +996,7 @@
       with _ ->
         begin
           s.source_has_upload <- s_new.source_has_upload;
-          ignore (uploaderstore#add_item s);
+          uploaderstore#add_item s ~f:update_uploaders_label ();
           (if s.source_has_upload = source_has_upload then incr nuploading)
         end
     with _ ->
@@ -990,13 +1004,12 @@
         GuiCom.send (GetClient_info num)
       end
   ) !uploaders_n_pendings;
-  uploaders_n_pendings := [];
-  update_uploaders_label ()
+  uploaders_n_pendings := []
 
 let h_update_uploader s s_new =
   try
     let row = uploaderstore#find_row (uploader_key s_new.source_num) in
-    uploaderstore#update_item row s s_new
+    Gaux.may ~f:(fun r -> uploaderstore#update_item r s s_new) row
   with _ -> ()
 
 let h_update_uploaders uploaders =




reply via email to

[Prev in Thread] Current Thread [Next in Thread]