[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiFriends.ml
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiFriends.ml |
Date: |
Sat, 12 Nov 2005 06:16:39 -0500 |
Index: mldonkey/src/gtk2/gui/guiFriends.ml
diff -u mldonkey/src/gtk2/gui/guiFriends.ml:1.2
mldonkey/src/gtk2/gui/guiFriends.ml:1.3
--- mldonkey/src/gtk2/gui/guiFriends.ml:1.2 Mon Oct 31 18:34:02 2005
+++ mldonkey/src/gtk2/gui/guiFriends.ml Sat Nov 12 11:16:36 2005
@@ -259,6 +259,7 @@
(*************************************************************************)
method content (col : GTree.view_column) c =
+ let autosize = match col#sizing with `AUTOSIZE -> true | _ -> false in
match c with
Col_friend_name ->
begin
@@ -273,9 +274,12 @@
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
+ col#add_attribute renderer "foreground" friend_color;
+ if autosize
+ then col#add_attribute renderer "text" friend_name
+ else col#set_cell_data_func renderer
+ (fun model row ->
+ match !view_context with
Some context when col#width > 0 ->
begin
let width =
@@ -287,9 +291,8 @@
let s = GuiTools.fit_string_to_pixels name ~context
~pixels:width in
renderer#set_properties [ `TEXT s ]
end
- | _ -> renderer#set_properties [ `TEXT "" ]
- );
- col#add_attribute renderer "foreground" friend_color;
+ | _ -> renderer#set_properties [ `TEXT "" ]
+ )
end
| Col_friend_network ->
@@ -329,35 +332,38 @@
(*************************************************************************)
method force_update_icons () =
+ let f k row =
+ let s = friend_of_key k in
+ store#set ~row ~column:friend_network_pixb (Mi.network_pixb
s.source_network ~size:A.SMALL ());
+ store#set ~row ~column:friend_type_pixb (Mi.source_type_to_icon
s.source_type ~size:A.SMALL);
+ store#set ~row ~column:friend_state_pixb (Mi.client_state_to_icon
false ~size:A.SMALL);
+ let rec iter items =
+ match items with
+ [] -> ()
+ | (GTreeDirectory tree) :: tail ->
+ begin
+ tree.g_file_tree_pixb <- folder_closed ();
+ iter tail
+ end
+ | (GTreeFile r) :: tail ->
+ begin
+ r.res_network_pixb <- Mi.network_pixb r.res_num
~size:A.SMALL ();
+ r.res_name_pixb <- Mi.file_type_of_name r.res_name
~size:A.SMALL;
+ iter tail
+ end
+ in
+ match s.source_files with
+ None -> ()
+ | Some ft ->
+ begin
+ ft.g_file_tree_pixb <- folder_closed ();
+ iter ft.g_file_tree_list
+ end
+ in
List.iter (fun k ->
try
- let s = friend_of_key k in
let row = self#find_row k in
- store#set ~row ~column:friend_network_pixb (Mi.network_pixb
s.source_network ~size:A.SMALL ());
- store#set ~row ~column:friend_type_pixb (Mi.source_type_to_icon
s.source_type ~size:A.SMALL);
- store#set ~row ~column:friend_state_pixb (Mi.client_state_to_icon
false ~size:A.SMALL);
- let rec iter items =
- match items with
- [] -> ()
- | (GTreeDirectory tree) :: tail ->
- begin
- tree.g_file_tree_pixb <- folder_closed ();
- iter tail
- end
- | (GTreeFile r) :: tail ->
- begin
- r.res_network_pixb <- Mi.network_pixb r.res_num
~size:A.SMALL ();
- r.res_name_pixb <- Mi.file_type_of_name r.res_name
~size:A.SMALL;
- iter tail
- end
- in
- match s.source_files with
- None -> ()
- | Some ft ->
- begin
- ft.g_file_tree_pixb <- folder_closed ();
- iter ft.g_file_tree_list
- end
+ Gaux.may ~f:(f k) row
with _ -> ()
) (self#all_items ())
@@ -607,7 +613,7 @@
let rec insert_dir ft id ?parent () =
ft.g_file_tree_num <- !id;
- let parent = folderstore#add_item ft ?parent () in
+ folderstore#add_item ft ?parent ();
H.add ft_by_num ft;
incr id;
match ft.g_file_tree_list with
@@ -616,7 +622,11 @@
List.iter (fun tree_item ->
match tree_item with
GTreeFile _ -> ()
- | GTreeDirectory d -> insert_dir d id ~parent ()
+ | GTreeDirectory d ->
+ try
+ let parent = folderstore#find_row (folder_key
ft.g_file_tree_num) in
+ insert_dir d id ~parent ()
+ with _ -> ()
) ft.g_file_tree_list
let on_select_friend sel =
@@ -703,10 +713,9 @@
let ft = folder_of_key k in
List.iter (fun tree_item ->
match tree_item with
- GTreeFile r -> ignore (resultstore#add_item r)
+ GTreeFile r -> resultstore#add r ~f:update_results_label ()
| _ -> ()
- ) ft.g_file_tree_list;
- update_results_label ()
+ ) ft.g_file_tree_list
with _ -> ()
end
@@ -787,6 +796,16 @@
let remove_friend s =
friendstore#remove_item (friend_key s.source_num);
+ let _ =
+ match s.source_files with
+ None -> ()
+ | Some ft ->
+ List.iter (fun tree_item ->
+ match tree_item with
+ GTreeFile r -> Hashtbl.remove G.results r.res_num
+ | _ -> ()
+ ) ft.g_file_tree_list
+ in
update_friends_label ();
if List.mem_assoc s.source_num !source_has_file
then source_has_file := List.remove_assoc s.source_num !source_has_file
@@ -796,12 +815,11 @@
let row = friendstore#find_row (friend_key s_new.source_num) in
if client_browsed_tag land s_new.source_type = 0
then remove_friend s
- else friendstore#update_item row s s_new
+ else Gaux.may ~f:(fun r -> friendstore#update_item r s s_new) row
with _ ->
if client_browsed_tag land s_new.source_type <> 0
then begin
- ignore (friendstore#add_item s_new);
- update_friends_label ()
+ friendstore#add_item s_new ~f:update_friends_label ()
end
let add_friend_files (source_num , dirname, result_num) =
@@ -816,7 +834,6 @@
in
Mi.add_file tree dirname r;
let s_new = {s with source_files = Some tree} in
- Hashtbl.remove G.results result_num;
(if not (List.mem_assoc source_num !source_has_file)
then source_has_file := (source_num, false) :: !source_has_file);
h_update_friend s s_new;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Mldonkey-commits] Changes to mldonkey/src/gtk2/gui/guiFriends.ml,
mldonkey-commits <=