X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=main.ml;h=c908bbc9d0ebed9953d55c04e9bc1b1fef64d5f5;hb=2ed92137182d4d479dddddeccaf6ad8dae967895;hp=93e2a3a82e0642f15150a849b271c214691bdcf2;hpb=1d7c4274827064c684d831c9ef51b198ba8798a2;p=guestfs-browser.git diff --git a/main.ml b/main.ml index 93e2a3a..c908bbc 100644 --- a/main.ml +++ b/main.ml @@ -33,13 +33,51 @@ let () = debug "libvirt %s" (libvirt_version_string ()); ); + (* Create the main window. *) let w = new Window.window in + + (* Wire up hooks that carry messages from the slave thread + * to the main thread. + *) Slave.set_failure_hook w#failure; Slave.set_busy_hook w#throbber_busy; Slave.set_idle_hook w#throbber_idle; Slave.set_status_hook w#set_statusbar; Slave.set_progress_hook w#progress; + (* Wire up the loosely-coupled external components of the filetree. + * See the note about signals in {!Filetree.tree} documentation. + *) + let tree = w#tree in + ignore (tree#op_checksum_file + ~callback:(Op_checksum_file.checksum_file tree)); + ignore (tree#op_copy_regvalue + ~callback:(Op_copy_regvalue.copy_regvalue tree)); + ignore (tree#op_disk_usage + ~callback:(Op_disk_usage.disk_usage tree)); + ignore (tree#op_download_as_reg + ~callback:(Op_download_as_reg.download_as_reg tree)); + ignore (tree#op_download_dir_find0 + ~callback:(Op_download_dir_find0.download_dir_find0 tree)); + ignore (tree#op_download_dir_tarball + ~callback:(Op_download_dir_tarball.download_dir_tarball tree)); + ignore (tree#op_download_file + ~callback:(Op_download_file.download_file tree)); + ignore (tree#op_file_information + ~callback:(Op_file_information.file_information tree)); + ignore (tree#op_inspection_dialog + ~callback:(Op_inspection_dialog.inspection_dialog tree)); + ignore (tree#op_view_file + ~callback:(Op_view_file.view_file tree)); + + (* Connect menu entry signals to the functions that implement them. *) + ignore (w#connect_kvm_signal + ~callback:(w#connect_to (Some "qemu:///system"))); + ignore (w#connect_xen_signal + ~callback:(w#connect_to (Some "xen:///"))); + ignore (w#connect_none_signal + ~callback:(w#connect_to None)); + (* What did the user request on the command line? *) w#run_cli_request cli_request;