- | (Subscribed (_, tutors)) as msg ->
- let msg_string = Hbugs_messages.string_of_msg msg in
- let subscribedTutors = List.sort compare tutors in
- let msg =
- if subscribedTutors = selectedTutors then
- sprintf "Subscription OK\n: %s" msg_string
- else
- sprintf "Subscription mismatch\n: %s" msg_string
- in
- self#showDialog msg;
- subscribeWindow#subscribeWindow#misc#hide ()
+ | (Subscribed (_, subscribedTutors)) as msg ->
+ let sort = List.sort compare in
+ mainWindow#subscriptionCList#clear ();
+ List.iter
+ (fun tutor_id ->
+ ignore
+ (mainWindow#subscriptionCList#append
+ [ try
+ List.assoc tutor_id availableTutors;
+ with Not_found -> assert false ]))
+ tutors_id;
+ subscribeWindow#subscribeWindow#misc#hide ();
+ if sort subscribedTutors <> sort tutors_id then
+ self#showDialog
+ (sprintf "Subscription mismatch\n: %s"
+ (Hbugs_messages.string_of_msg msg))