Changeset 78567 in vbox for trunk/src/VBox
- Timestamp:
- May 17, 2019 12:27:12 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 130621
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 3 added
- 6 edited
- 5 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r78128 r78567 310 310 ./src/settings/global \ 311 311 ./src/settings/machine \ 312 ./src/softkeyboard \ 312 313 ./src/snapshots \ 313 314 ./src/widgets \ … … 747 748 src/runtime/seamless/UIMachineViewSeamless.h \ 748 749 src/runtime/seamless/UIMachineWindowSeamless.h \ 750 src/softkeyboard/UISoftKeyboard.h \ 751 src/softkeyboard/UISoftKeyboardDialog.h \ 749 752 src/widgets/UIMiniToolBar.h \ 750 753 src/wizards/firstrun/UIWizardFirstRun.h \ … … 961 964 src/guestctrl/UIFileManagerHostTable.cpp \ 962 965 src/guestctrl/UIGuestProcessControlWidget.cpp \ 966 src/softkeyboard/UISoftKeyboard.cpp \ 963 967 src/widgets/UIMiniToolBar.cpp 964 968 … … 1198 1202 src/runtime/seamless/UIMachineViewSeamless.cpp \ 1199 1203 src/runtime/seamless/UIMachineWindowSeamless.cpp \ 1204 src/softkeyboard/UISoftKeyboard.cpp \ 1205 src/softkeyboard/UISoftKeyboardDialog.cpp \ 1200 1206 src/widgets/UIMiniToolBar.cpp \ 1201 1207 src/wizards/firstrun/UIWizardFirstRun.cpp \ … … 1521 1527 VBoxGlobal_SOURCES += VirtualBox2_x4.qrc 1522 1528 VirtualBox2_x4.qrc_RCCFLAGS = -name BASIC2_X4 1529 VBoxGlobal_SOURCES += VirtualBox_xml.qrc 1530 VirtualBox_xml.qrc_RCCFLAGS = -name BASIC_XML 1523 1531 VBoxGlobal_SOURCES += $(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc 1524 1532 $(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc_RCCFLAGS = -name BRAND -
trunk/src/VBox/Frontends/VirtualBox/VirtualBox_xml.qrc
r78540 r78567 1 1 <RCC> 2 2 <qresource suffix="/"> 3 <file alias="adjust_win_size_16px.png">images/adjust_win_size_16px.png</file> 4 <file alias="adjust_win_size_disabled_16px.png">images/adjust_win_size_disabled_16px.png</file> 5 <file alias="arrow_down_10px.png">images/arrow_down_10px.png</file> 6 <file alias="arrow_left_10px.png">images/arrow_left_10px.png</file> 7 <file alias="arrow_right_10px.png">images/arrow_right_10px.png</file> 8 <file alias="arrow_up_10px.png">images/arrow_up_10px.png</file> 9 <file alias="attachment_add_16px.png">images/attachment_add_16px.png</file> 10 <file alias="attachment_add_disabled_16px.png">images/attachment_add_disabled_16px.png</file> 11 <file alias="attachment_remove_16px.png">images/attachment_remove_16px.png</file> 12 <file alias="attachment_remove_disabled_16px.png">images/attachment_remove_disabled_16px.png</file> 13 <file alias="audio_16px.png">images/audio_16px.png</file> 14 <file alias="audio_all_off_16px.png">images/audio_all_off_16px.png</file> 15 <file alias="audio_input_16px.png">images/audio_input_16px.png</file> 16 <file alias="audio_input_off_16px.png">images/audio_input_off_16px.png</file> 17 <file alias="audio_input_on_16px.png">images/audio_input_on_16px.png</file> 18 <file alias="audio_output_16px.png">images/audio_output_16px.png</file> 19 <file alias="audio_output_off_16px.png">images/audio_output_off_16px.png</file> 20 <file alias="audio_output_on_16px.png">images/audio_output_on_16px.png</file> 21 <file alias="auto_resize_on_16px.png">images/auto_resize_on_16px.png</file> 22 <file alias="auto_resize_on_disabled_16px.png">images/auto_resize_on_disabled_16px.png</file> 23 <file alias="auto_resize_on_on_16px.png">images/auto_resize_on_on_16px.png</file> 24 <file alias="auto_resize_on_on_disabled_16px.png">images/auto_resize_on_on_disabled_16px.png</file> 25 <file alias="cancel_16px.png">images/cancel_16px.png</file> 26 <file alias="cd_16px.png">images/cd_16px.png</file> 27 <file alias="cd_add_16px.png">images/cd_add_16px.png</file> 28 <file alias="cd_add_32px.png">images/cd_add_32px.png</file> 29 <file alias="cd_add_disabled_16px.png">images/cd_add_disabled_16px.png</file> 30 <file alias="cd_add_disabled_32px.png">images/cd_add_disabled_32px.png</file> 31 <file alias="cd_copy_16px.png">images/cd_copy_16px.png</file> 32 <file alias="cd_copy_32px.png">images/cd_copy_32px.png</file> 33 <file alias="cd_copy_disabled_16px.png">images/cd_copy_disabled_16px.png</file> 34 <file alias="cd_copy_disabled_32px.png">images/cd_copy_disabled_32px.png</file> 35 <file alias="cd_create_16px.png">images/cd_create_16px.png</file> 36 <file alias="cd_create_32px.png">images/cd_create_32px.png</file> 37 <file alias="cd_create_disabled_16px.png">images/cd_create_disabled_16px.png</file> 38 <file alias="cd_create_disabled_32px.png">images/cd_create_disabled_32px.png</file> 39 <file alias="cd_disabled_16px.png">images/cd_disabled_16px.png</file> 40 <file alias="cd_modify_16px.png">images/cd_modify_16px.png</file> 41 <file alias="cd_modify_32px.png">images/cd_modify_32px.png</file> 42 <file alias="cd_modify_disabled_16px.png">images/cd_modify_disabled_16px.png</file> 43 <file alias="cd_modify_disabled_32px.png">images/cd_modify_disabled_32px.png</file> 44 <file alias="cd_move_16px.png">images/cd_move_16px.png</file> 45 <file alias="cd_move_32px.png">images/cd_move_32px.png</file> 46 <file alias="cd_move_disabled_16px.png">images/cd_move_disabled_16px.png</file> 47 <file alias="cd_move_disabled_32px.png">images/cd_move_disabled_32px.png</file> 48 <file alias="cd_read_16px.png">images/cd_read_16px.png</file> 49 <file alias="cd_release_16px.png">images/cd_release_16px.png</file> 50 <file alias="cd_release_32px.png">images/cd_release_32px.png</file> 51 <file alias="cd_release_disabled_16px.png">images/cd_release_disabled_16px.png</file> 52 <file alias="cd_release_disabled_32px.png">images/cd_release_disabled_32px.png</file> 53 <file alias="cd_remove_16px.png">images/cd_remove_16px.png</file> 54 <file alias="cd_remove_32px.png">images/cd_remove_32px.png</file> 55 <file alias="cd_remove_disabled_16px.png">images/cd_remove_disabled_16px.png</file> 56 <file alias="cd_remove_disabled_32px.png">images/cd_remove_disabled_32px.png</file> 57 <file alias="cd_search_16px.png">images/cd_search_16px.png</file> 58 <file alias="cd_search_32px.png">images/cd_search_32px.png</file> 59 <file alias="cd_search_disabled_16px.png">images/cd_search_disabled_16px.png</file> 60 <file alias="cd_search_disabled_32px.png">images/cd_search_disabled_32px.png</file> 61 <file alias="cd_unmount_16px.png">images/cd_unmount_16px.png</file> 62 <file alias="cd_unmount_disabled_16px.png">images/cd_unmount_disabled_16px.png</file> 63 <file alias="cd_write_16px.png">images/cd_write_16px.png</file> 64 <file alias="chipset_16px.png">images/chipset_16px.png</file> 65 <file alias="chipset_24px.png">images/chipset_24px.png</file> 66 <file alias="chipset_32px.png">images/chipset_32px.png</file> 67 <file alias="chipset_warning_16px.png">images/chipset_warning_16px.png</file> 68 <file alias="close_16px.png">images/close_16px.png</file> 69 <file alias="close_popup_16px.png">images/close_popup_16px.png</file> 70 <file alias="cloud_profile_add_16px.png">images/cloud_profile_add_16px.png</file> 71 <file alias="cloud_profile_add_32px.png">images/cloud_profile_add_32px.png</file> 72 <file alias="cloud_profile_add_disabled_16px.png">images/cloud_profile_add_disabled_16px.png</file> 73 <file alias="cloud_profile_add_disabled_32px.png">images/cloud_profile_add_disabled_32px.png</file> 74 <file alias="cloud_profile_edit_16px.png">images/cloud_profile_edit_16px.png</file> 75 <file alias="cloud_profile_edit_32px.png">images/cloud_profile_edit_32px.png</file> 76 <file alias="cloud_profile_edit_disabled_16px.png">images/cloud_profile_edit_disabled_16px.png</file> 77 <file alias="cloud_profile_edit_disabled_32px.png">images/cloud_profile_edit_disabled_32px.png</file> 78 <file alias="cloud_profile_help_16px.png">images/cloud_profile_help_16px.png</file> 79 <file alias="cloud_profile_help_32px.png">images/cloud_profile_help_32px.png</file> 80 <file alias="cloud_profile_help_disabled_16px.png">images/cloud_profile_help_disabled_16px.png</file> 81 <file alias="cloud_profile_help_disabled_32px.png">images/cloud_profile_help_disabled_32px.png</file> 82 <file alias="cloud_profile_manager_16px.png">images/cloud_profile_manager_16px.png</file> 83 <file alias="cloud_profile_manager_24px.png">images/cloud_profile_manager_24px.png</file> 84 <file alias="cloud_profile_manager_32px.png">images/cloud_profile_manager_32px.png</file> 85 <file alias="cloud_profile_manager_disabled_16px.png">images/cloud_profile_manager_disabled_16px.png</file> 86 <file alias="cloud_profile_manager_disabled_24px.png">images/cloud_profile_manager_disabled_24px.png</file> 87 <file alias="cloud_profile_remove_16px.png">images/cloud_profile_remove_16px.png</file> 88 <file alias="cloud_profile_remove_32px.png">images/cloud_profile_remove_32px.png</file> 89 <file alias="cloud_profile_remove_disabled_16px.png">images/cloud_profile_remove_disabled_16px.png</file> 90 <file alias="cloud_profile_remove_disabled_32px.png">images/cloud_profile_remove_disabled_32px.png</file> 91 <file alias="cloud_profile_restore_16px.png">images/cloud_profile_restore_16px.png</file> 92 <file alias="cloud_profile_restore_32px.png">images/cloud_profile_restore_32px.png</file> 93 <file alias="cloud_profile_restore_disabled_16px.png">images/cloud_profile_restore_disabled_16px.png</file> 94 <file alias="cloud_profile_restore_disabled_32px.png">images/cloud_profile_restore_disabled_32px.png</file> 95 <file alias="cloud_profile_try_16px.png">images/cloud_profile_try_16px.png</file> 96 <file alias="cloud_profile_try_32px.png">images/cloud_profile_try_32px.png</file> 97 <file alias="cloud_profile_try_disabled_16px.png">images/cloud_profile_try_disabled_16px.png</file> 98 <file alias="cloud_profile_try_disabled_32px.png">images/cloud_profile_try_disabled_32px.png</file> 99 <file alias="collapse_all_16px.png">images/collapse_all_16px.png</file> 100 <file alias="connect_16px.png">images/connect_16px.png</file> 101 <file alias="connect_on_16px.png">images/connect_on_16px.png</file> 102 <file alias="controller_add_16px.png">images/controller_add_16px.png</file> 103 <file alias="controller_add_disabled_16px.png">images/controller_add_disabled_16px.png</file> 104 <file alias="controller_remove_16px.png">images/controller_remove_16px.png</file> 105 <file alias="controller_remove_disabled_16px.png">images/controller_remove_disabled_16px.png</file> 106 <file alias="cpu_16px.png">images/cpu_16px.png</file> 107 <file alias="description_16px.png">images/description_16px.png</file> 108 <file alias="display_hardware_16px.png">images/display_hardware_16px.png</file> 109 <file alias="display_hardware_write_16px.png">images/display_hardware_write_16px.png</file> 110 <file alias="display_software_16px.png">images/display_software_16px.png</file> 111 <file alias="download_manager_16px.png">images/download_manager_16px.png</file> 112 <file alias="download_manager_32px.png">images/download_manager_32px.png</file> 113 <file alias="download_manager_error_16px.png">images/download_manager_error_16px.png</file> 114 <file alias="download_manager_loading_16px.png">images/download_manager_loading_16px.png</file> 115 <file alias="drag_drop_16px.png">images/drag_drop_16px.png</file> 116 <file alias="drag_drop_disabled_16px.png">images/drag_drop_disabled_16px.png</file> 117 <file alias="edata_add_16px.png">images/edata_add_16px.png</file> 118 <file alias="edata_add_22px.png">images/edata_add_22px.png</file> 119 <file alias="edata_add_disabled_16px.png">images/edata_add_disabled_16px.png</file> 120 <file alias="edata_add_disabled_22px.png">images/edata_add_disabled_22px.png</file> 121 <file alias="edata_global_32px.png">images/edata_global_32px.png</file> 122 <file alias="edata_load_16px.png">images/edata_load_16px.png</file> 123 <file alias="edata_load_22px.png">images/edata_load_22px.png</file> 124 <file alias="edata_load_disabled_16px.png">images/edata_load_disabled_16px.png</file> 125 <file alias="edata_load_disabled_22px.png">images/edata_load_disabled_22px.png</file> 126 <file alias="edata_manager_16px.png">images/edata_manager_16px.png</file> 127 <file alias="edata_manager_32px.png">images/edata_manager_32px.png</file> 128 <file alias="edata_remove_16px.png">images/edata_remove_16px.png</file> 129 <file alias="edata_remove_22px.png">images/edata_remove_22px.png</file> 130 <file alias="edata_remove_disabled_16px.png">images/edata_remove_disabled_16px.png</file> 131 <file alias="edata_remove_disabled_22px.png">images/edata_remove_disabled_22px.png</file> 132 <file alias="edata_save_16px.png">images/edata_save_16px.png</file> 133 <file alias="edata_save_22px.png">images/edata_save_22px.png</file> 134 <file alias="edata_save_disabled_16px.png">images/edata_save_disabled_16px.png</file> 135 <file alias="edata_save_disabled_22px.png">images/edata_save_disabled_22px.png</file> 136 <file alias="eraser_16px.png">images/eraser_16px.png</file> 137 <file alias="exit_16px.png">images/exit_16px.png</file> 138 <file alias="expand_all_16px.png">images/expand_all_16px.png</file> 139 <file alias="expanding_collapsing_16px.png">images/expanding_collapsing_16px.png</file> 140 <file alias="export_16px.png">images/export_16px.png</file> 141 <file alias="export_32px.png">images/export_32px.png</file> 142 <file alias="export_disabled_16px.png">images/export_disabled_16px.png</file> 143 <file alias="export_disabled_32px.png">images/export_disabled_32px.png</file> 144 <file alias="extension_pack_16px.png">images/extension_pack_16px.png</file> 145 <file alias="extension_pack_24px.png">images/extension_pack_24px.png</file> 146 <file alias="extension_pack_32px.png">images/extension_pack_32px.png</file> 147 <file alias="extension_pack_install_16px.png">images/extension_pack_install_16px.png</file> 148 <file alias="extension_pack_install_disabled_16px.png">images/extension_pack_install_disabled_16px.png</file> 149 <file alias="extension_pack_uninstall_16px.png">images/extension_pack_uninstall_16px.png</file> 150 <file alias="extension_pack_uninstall_disabled_16px.png">images/extension_pack_uninstall_disabled_16px.png</file> 151 <file alias="extension_pack_warning_16px.png">images/extension_pack_warning_16px.png</file> 152 <file alias="favorite_24px.png">images/favorite_24px.png</file> 153 <file alias="favorite_pressed_24px.png">images/favorite_pressed_24px.png</file> 154 <file alias="fd_16px.png">images/fd_16px.png</file> 155 <file alias="fd_add_16px.png">images/fd_add_16px.png</file> 156 <file alias="fd_add_32px.png">images/fd_add_32px.png</file> 157 <file alias="fd_add_disabled_16px.png">images/fd_add_disabled_16px.png</file> 158 <file alias="fd_add_disabled_32px.png">images/fd_add_disabled_32px.png</file> 159 <file alias="fd_copy_16px.png">images/fd_copy_16px.png</file> 160 <file alias="fd_copy_32px.png">images/fd_copy_32px.png</file> 161 <file alias="fd_copy_disabled_16px.png">images/fd_copy_disabled_16px.png</file> 162 <file alias="fd_copy_disabled_32px.png">images/fd_copy_disabled_32px.png</file> 163 <file alias="fd_create_16px.png">images/fd_create_16px.png</file> 164 <file alias="fd_create_32px.png">images/fd_create_32px.png</file> 165 <file alias="fd_create_disabled_16px.png">images/fd_create_disabled_16px.png</file> 166 <file alias="fd_create_disabled_32px.png">images/fd_create_disabled_32px.png</file> 167 <file alias="fd_disabled_16px.png">images/fd_disabled_16px.png</file> 168 <file alias="fd_modify_16px.png">images/fd_modify_16px.png</file> 169 <file alias="fd_modify_32px.png">images/fd_modify_32px.png</file> 170 <file alias="fd_modify_disabled_16px.png">images/fd_modify_disabled_16px.png</file> 171 <file alias="fd_modify_disabled_32px.png">images/fd_modify_disabled_32px.png</file> 172 <file alias="fd_move_16px.png">images/fd_move_16px.png</file> 173 <file alias="fd_move_32px.png">images/fd_move_32px.png</file> 174 <file alias="fd_move_disabled_16px.png">images/fd_move_disabled_16px.png</file> 175 <file alias="fd_move_disabled_32px.png">images/fd_move_disabled_32px.png</file> 176 <file alias="fd_read_16px.png">images/fd_read_16px.png</file> 177 <file alias="fd_release_16px.png">images/fd_release_16px.png</file> 178 <file alias="fd_release_32px.png">images/fd_release_32px.png</file> 179 <file alias="fd_release_disabled_16px.png">images/fd_release_disabled_16px.png</file> 180 <file alias="fd_release_disabled_32px.png">images/fd_release_disabled_32px.png</file> 181 <file alias="fd_remove_16px.png">images/fd_remove_16px.png</file> 182 <file alias="fd_remove_32px.png">images/fd_remove_32px.png</file> 183 <file alias="fd_remove_disabled_16px.png">images/fd_remove_disabled_16px.png</file> 184 <file alias="fd_remove_disabled_32px.png">images/fd_remove_disabled_32px.png</file> 185 <file alias="fd_search_16px.png">images/fd_search_16px.png</file> 186 <file alias="fd_search_32px.png">images/fd_search_32px.png</file> 187 <file alias="fd_search_disabled_16px.png">images/fd_search_disabled_16px.png</file> 188 <file alias="fd_search_disabled_32px.png">images/fd_search_disabled_32px.png</file> 189 <file alias="fd_unmount_16px.png">images/fd_unmount_16px.png</file> 190 <file alias="fd_unmount_disabled_16px.png">images/fd_unmount_disabled_16px.png</file> 191 <file alias="fd_write_16px.png">images/fd_write_16px.png</file> 192 <file alias="file_manager_16px.png">images/file_manager_16px.png</file> 193 <file alias="file_manager_24px.png">images/file_manager_24px.png</file> 194 <file alias="file_manager_32px.png">images/file_manager_32px.png</file> 195 <file alias="file_manager_copy_16px.png">images/file_manager_copy_16px.png</file> 196 <file alias="file_manager_copy_24px.png">images/file_manager_copy_24px.png</file> 197 <file alias="file_manager_copy_disabled_16px.png">images/file_manager_copy_disabled_16px.png</file> 198 <file alias="file_manager_copy_disabled_24px.png">images/file_manager_copy_disabled_24px.png</file> 199 <file alias="file_manager_copy_to_guest_16px.png">images/file_manager_copy_to_guest_16px.png</file> 200 <file alias="file_manager_copy_to_guest_24px.png">images/file_manager_copy_to_guest_24px.png</file> 201 <file alias="file_manager_copy_to_guest_disabled_16px.png">images/file_manager_copy_to_guest_disabled_16px.png</file> 202 <file alias="file_manager_copy_to_guest_disabled_24px.png">images/file_manager_copy_to_guest_disabled_24px.png</file> 203 <file alias="file_manager_copy_to_host_16px.png">images/file_manager_copy_to_host_16px.png</file> 204 <file alias="file_manager_copy_to_host_24px.png">images/file_manager_copy_to_host_24px.png</file> 205 <file alias="file_manager_copy_to_host_disabled_16px.png">images/file_manager_copy_to_host_disabled_16px.png</file> 206 <file alias="file_manager_copy_to_host_disabled_24px.png">images/file_manager_copy_to_host_disabled_24px.png</file> 207 <file alias="file_manager_cut_16px.png">images/file_manager_cut_16px.png</file> 208 <file alias="file_manager_cut_24px.png">images/file_manager_cut_24px.png</file> 209 <file alias="file_manager_cut_disabled_16px.png">images/file_manager_cut_disabled_16px.png</file> 210 <file alias="file_manager_cut_disabled_24px.png">images/file_manager_cut_disabled_24px.png</file> 211 <file alias="file_manager_delete_16px.png">images/file_manager_delete_16px.png</file> 212 <file alias="file_manager_delete_24px.png">images/file_manager_delete_24px.png</file> 213 <file alias="file_manager_delete_disabled_16px.png">images/file_manager_delete_disabled_16px.png</file> 214 <file alias="file_manager_delete_disabled_24px.png">images/file_manager_delete_disabled_24px.png</file> 215 <file alias="file_manager_disabled_16px.png">images/file_manager_disabled_16px.png</file> 216 <file alias="file_manager_disabled_24px.png">images/file_manager_disabled_24px.png</file> 217 <file alias="file_manager_disabled_32px.png">images/file_manager_disabled_32px.png</file> 218 <file alias="file_manager_file_16px.png">images/file_manager_file_16px.png</file> 219 <file alias="file_manager_file_symlink_16px.png">images/file_manager_file_symlink_16px.png</file> 220 <file alias="file_manager_folder_16px.png">images/file_manager_folder_16px.png</file> 221 <file alias="file_manager_folder_symlink_16px.png">images/file_manager_folder_symlink_16px.png</file> 222 <file alias="file_manager_go_home_16px.png">images/file_manager_go_home_16px.png</file> 223 <file alias="file_manager_go_home_24px.png">images/file_manager_go_home_24px.png</file> 224 <file alias="file_manager_go_home_disabled_16px.png">images/file_manager_go_home_disabled_16px.png</file> 225 <file alias="file_manager_go_home_disabled_24px.png">images/file_manager_go_home_disabled_24px.png</file> 226 <file alias="file_manager_go_up_16px.png">images/file_manager_go_up_16px.png</file> 227 <file alias="file_manager_go_up_24px.png">images/file_manager_go_up_24px.png</file> 228 <file alias="file_manager_go_up_disabled_16px.png">images/file_manager_go_up_disabled_16px.png</file> 229 <file alias="file_manager_go_up_disabled_24px.png">images/file_manager_go_up_disabled_24px.png</file> 230 <file alias="file_manager_invert_selection_16px.png">images/file_manager_invert_selection_16px.png</file> 231 <file alias="file_manager_invert_selection_24px.png">images/file_manager_invert_selection_24px.png</file> 232 <file alias="file_manager_invert_selection_disabled_16px.png">images/file_manager_invert_selection_disabled_16px.png</file> 233 <file alias="file_manager_invert_selection_disabled_24px.png">images/file_manager_invert_selection_disabled_24px.png</file> 234 <file alias="file_manager_log_16px.png">images/file_manager_log_16px.png</file> 235 <file alias="file_manager_log_32px.png">images/file_manager_log_32px.png</file> 236 <file alias="file_manager_log_disabled_16px.png">images/file_manager_log_disabled_16px.png</file> 237 <file alias="file_manager_log_disabled_32px.png">images/file_manager_log_disabled_32px.png</file> 238 <file alias="file_manager_new_directory_16px.png">images/file_manager_new_directory_16px.png</file> 239 <file alias="file_manager_new_directory_24px.png">images/file_manager_new_directory_24px.png</file> 240 <file alias="file_manager_new_directory_disabled_16px.png">images/file_manager_new_directory_disabled_16px.png</file> 241 <file alias="file_manager_new_directory_disabled_24px.png">images/file_manager_new_directory_disabled_24px.png</file> 242 <file alias="file_manager_operations_16px.png">images/file_manager_operations_16px.png</file> 243 <file alias="file_manager_operations_32px.png">images/file_manager_operations_32px.png</file> 244 <file alias="file_manager_operations_disabled_16px.png">images/file_manager_operations_disabled_16px.png</file> 245 <file alias="file_manager_operations_disabled_32px.png">images/file_manager_operations_disabled_32px.png</file> 246 <file alias="file_manager_options_16px.png">images/file_manager_options_16px.png</file> 247 <file alias="file_manager_options_32px.png">images/file_manager_options_32px.png</file> 248 <file alias="file_manager_options_disabled_16px.png">images/file_manager_options_disabled_16px.png</file> 249 <file alias="file_manager_options_disabled_32px.png">images/file_manager_options_disabled_32px.png</file> 250 <file alias="file_manager_paste_16px.png">images/file_manager_paste_16px.png</file> 251 <file alias="file_manager_paste_24px.png">images/file_manager_paste_24px.png</file> 252 <file alias="file_manager_paste_disabled_16px.png">images/file_manager_paste_disabled_16px.png</file> 253 <file alias="file_manager_paste_disabled_24px.png">images/file_manager_paste_disabled_24px.png</file> 254 <file alias="file_manager_properties_16px.png">images/file_manager_properties_16px.png</file> 255 <file alias="file_manager_properties_24px.png">images/file_manager_properties_24px.png</file> 256 <file alias="file_manager_properties_disabled_16px.png">images/file_manager_properties_disabled_16px.png</file> 257 <file alias="file_manager_properties_disabled_24px.png">images/file_manager_properties_disabled_24px.png</file> 258 <file alias="file_manager_refresh_16px.png">images/file_manager_refresh_16px.png</file> 259 <file alias="file_manager_refresh_24px.png">images/file_manager_refresh_24px.png</file> 260 <file alias="file_manager_refresh_disabled_16px.png">images/file_manager_refresh_disabled_16px.png</file> 261 <file alias="file_manager_refresh_disabled_24px.png">images/file_manager_refresh_disabled_24px.png</file> 262 <file alias="file_manager_rename_16px.png">images/file_manager_rename_16px.png</file> 263 <file alias="file_manager_rename_24px.png">images/file_manager_rename_24px.png</file> 264 <file alias="file_manager_rename_disabled_16px.png">images/file_manager_rename_disabled_16px.png</file> 265 <file alias="file_manager_rename_disabled_24px.png">images/file_manager_rename_disabled_24px.png</file> 266 <file alias="file_manager_select_all_16px.png">images/file_manager_select_all_16px.png</file> 267 <file alias="file_manager_select_all_24px.png">images/file_manager_select_all_24px.png</file> 268 <file alias="file_manager_select_all_disabled_16px.png">images/file_manager_select_all_disabled_16px.png</file> 269 <file alias="file_manager_select_all_disabled_24px.png">images/file_manager_select_all_disabled_24px.png</file> 270 <file alias="file_manager_session_16px.png">images/file_manager_session_16px.png</file> 271 <file alias="file_manager_session_32px.png">images/file_manager_session_32px.png</file> 272 <file alias="file_manager_session_disabled_16px.png">images/file_manager_session_disabled_16px.png</file> 273 <file alias="file_manager_session_disabled_32px.png">images/file_manager_session_disabled_32px.png</file> 274 <file alias="floppy_16px.png">images/floppy_16px.png</file> 275 <file alias="floppy_add_16px.png">images/floppy_add_16px.png</file> 276 <file alias="floppy_add_disabled_16px.png">images/floppy_add_disabled_16px.png</file> 277 <file alias="floppy_collapse_16px.png">images/floppy_collapse_16px.png</file> 278 <file alias="floppy_expand_16px.png">images/floppy_expand_16px.png</file> 279 <file alias="fullscreen_16px.png">images/fullscreen_16px.png</file> 280 <file alias="fullscreen_disabled_16px.png">images/fullscreen_disabled_16px.png</file> 281 <file alias="fullscreen_on_16px.png">images/fullscreen_on_16px.png</file> 282 <file alias="fullscreen_on_disabled_16px.png">images/fullscreen_on_disabled_16px.png</file> 283 <file alias="global_settings_16px.png">images/global_settings_16px.png</file> 284 <file alias="global_settings_32px.png">images/global_settings_32px.png</file> 285 <file alias="global_settings_disabled_16px.png">images/global_settings_disabled_16px.png</file> 286 <file alias="global_settings_disabled_32px.png">images/global_settings_disabled_32px.png</file> 287 <file alias="group_abstract_16px.png">images/group_abstract_16px.png</file> 288 <file alias="guesttools_16px.png">images/guesttools_16px.png</file> 289 <file alias="guesttools_disabled_16px.png">images/guesttools_disabled_16px.png</file> 290 <file alias="hd_16px.png">images/hd_16px.png</file> 291 <file alias="hd_24px.png">images/hd_24px.png</file> 292 <file alias="hd_32px.png">images/hd_32px.png</file> 293 <file alias="hd_add_16px.png">images/hd_add_16px.png</file> 294 <file alias="hd_add_32px.png">images/hd_add_32px.png</file> 295 <file alias="hd_add_disabled_16px.png">images/hd_add_disabled_16px.png</file> 296 <file alias="hd_add_disabled_32px.png">images/hd_add_disabled_32px.png</file> 297 <file alias="hd_copy_16px.png">images/hd_copy_16px.png</file> 298 <file alias="hd_copy_32px.png">images/hd_copy_32px.png</file> 299 <file alias="hd_copy_disabled_16px.png">images/hd_copy_disabled_16px.png</file> 300 <file alias="hd_copy_disabled_32px.png">images/hd_copy_disabled_32px.png</file> 301 <file alias="hd_create_16px.png">images/hd_create_16px.png</file> 302 <file alias="hd_create_32px.png">images/hd_create_32px.png</file> 303 <file alias="hd_create_disabled_16px.png">images/hd_create_disabled_16px.png</file> 304 <file alias="hd_create_disabled_32px.png">images/hd_create_disabled_32px.png</file> 305 <file alias="hd_disabled_16px.png">images/hd_disabled_16px.png</file> 306 <file alias="hd_modify_16px.png">images/hd_modify_16px.png</file> 307 <file alias="hd_modify_32px.png">images/hd_modify_32px.png</file> 308 <file alias="hd_modify_disabled_16px.png">images/hd_modify_disabled_16px.png</file> 309 <file alias="hd_modify_disabled_32px.png">images/hd_modify_disabled_32px.png</file> 310 <file alias="hd_move_16px.png">images/hd_move_16px.png</file> 311 <file alias="hd_move_32px.png">images/hd_move_32px.png</file> 312 <file alias="hd_move_disabled_16px.png">images/hd_move_disabled_16px.png</file> 313 <file alias="hd_move_disabled_32px.png">images/hd_move_disabled_32px.png</file> 314 <file alias="hd_new_16px.png">images/hd_new_16px.png</file> 315 <file alias="hd_new_disabled_16px.png">images/hd_new_disabled_16px.png</file> 316 <file alias="hd_read_16px.png">images/hd_read_16px.png</file> 317 <file alias="hd_release_16px.png">images/hd_release_16px.png</file> 318 <file alias="hd_release_32px.png">images/hd_release_32px.png</file> 319 <file alias="hd_release_disabled_16px.png">images/hd_release_disabled_16px.png</file> 320 <file alias="hd_release_disabled_32px.png">images/hd_release_disabled_32px.png</file> 321 <file alias="hd_remove_16px.png">images/hd_remove_16px.png</file> 322 <file alias="hd_remove_32px.png">images/hd_remove_32px.png</file> 323 <file alias="hd_remove_disabled_16px.png">images/hd_remove_disabled_16px.png</file> 324 <file alias="hd_remove_disabled_32px.png">images/hd_remove_disabled_32px.png</file> 325 <file alias="hd_search_16px.png">images/hd_search_16px.png</file> 326 <file alias="hd_search_32px.png">images/hd_search_32px.png</file> 327 <file alias="hd_search_disabled_16px.png">images/hd_search_disabled_16px.png</file> 328 <file alias="hd_search_disabled_32px.png">images/hd_search_disabled_32px.png</file> 329 <file alias="hd_settings_16px.png">images/hd_settings_16px.png</file> 330 <file alias="hd_settings_disabled_16px.png">images/hd_settings_disabled_16px.png</file> 331 <file alias="hd_warning_16px.png">images/hd_warning_16px.png</file> 332 <file alias="hd_write_16px.png">images/hd_write_16px.png</file> 333 <file alias="help_16px.png">images/help_16px.png</file> 334 <file alias="help_button_normal_mac_22px.png">images/help_button_normal_mac_22px.png</file> 335 <file alias="help_button_pressed_mac_22px.png">images/help_button_pressed_mac_22px.png</file> 336 <file alias="host_iface_add_16px.png">images/host_iface_add_16px.png</file> 337 <file alias="host_iface_add_32px.png">images/host_iface_add_32px.png</file> 338 <file alias="host_iface_add_disabled_16px.png">images/host_iface_add_disabled_16px.png</file> 339 <file alias="host_iface_add_disabled_32px.png">images/host_iface_add_disabled_32px.png</file> 340 <file alias="host_iface_edit_16px.png">images/host_iface_edit_16px.png</file> 341 <file alias="host_iface_edit_32px.png">images/host_iface_edit_32px.png</file> 342 <file alias="host_iface_edit_disabled_16px.png">images/host_iface_edit_disabled_16px.png</file> 343 <file alias="host_iface_edit_disabled_32px.png">images/host_iface_edit_disabled_32px.png</file> 344 <file alias="host_iface_manager_16px.png">images/host_iface_manager_16px.png</file> 345 <file alias="host_iface_manager_24px.png">images/host_iface_manager_24px.png</file> 346 <file alias="host_iface_manager_32px.png">images/host_iface_manager_32px.png</file> 347 <file alias="host_iface_manager_disabled_16px.png">images/host_iface_manager_disabled_16px.png</file> 348 <file alias="host_iface_manager_disabled_24px.png">images/host_iface_manager_disabled_24px.png</file> 349 <file alias="host_iface_remove_16px.png">images/host_iface_remove_16px.png</file> 350 <file alias="host_iface_remove_32px.png">images/host_iface_remove_32px.png</file> 351 <file alias="host_iface_remove_disabled_16px.png">images/host_iface_remove_disabled_16px.png</file> 352 <file alias="host_iface_remove_disabled_32px.png">images/host_iface_remove_disabled_32px.png</file> 353 <file alias="hostkey_16px.png">images/hostkey_16px.png</file> 354 <file alias="hostkey_captured_16px.png">images/hostkey_captured_16px.png</file> 355 <file alias="hostkey_captured_checked_16px.png">images/hostkey_captured_checked_16px.png</file> 356 <file alias="hostkey_captured_pressed_16px.png">images/hostkey_captured_pressed_16px.png</file> 357 <file alias="hostkey_captured_pressed_checked_16px.png">images/hostkey_captured_pressed_checked_16px.png</file> 358 <file alias="hostkey_checked_16px.png">images/hostkey_checked_16px.png</file> 359 <file alias="hostkey_pressed_16px.png">images/hostkey_pressed_16px.png</file> 360 <file alias="hostkey_pressed_checked_16px.png">images/hostkey_pressed_checked_16px.png</file> 361 <file alias="hostkey_warning_16px.png">images/hostkey_warning_16px.png</file> 362 <file alias="ide_16px.png">images/ide_16px.png</file> 363 <file alias="ide_add_16px.png">images/ide_add_16px.png</file> 364 <file alias="ide_add_disabled_16px.png">images/ide_add_disabled_16px.png</file> 365 <file alias="ide_collapse_16px.png">images/ide_collapse_16px.png</file> 366 <file alias="ide_expand_16px.png">images/ide_expand_16px.png</file> 367 <file alias="import_16px.png">images/import_16px.png</file> 368 <file alias="import_32px.png">images/import_32px.png</file> 369 <file alias="import_disabled_16px.png">images/import_disabled_16px.png</file> 370 <file alias="import_disabled_32px.png">images/import_disabled_32px.png</file> 371 <file alias="interface_16px.png">images/interface_16px.png</file> 372 <file alias="interface_24px.png">images/interface_24px.png</file> 373 <file alias="interface_32px.png">images/interface_32px.png</file> 374 <file alias="interface_warning_16px.png">images/interface_warning_16px.png</file> 375 <file alias="keyboard_16px.png">images/keyboard_16px.png</file> 376 <file alias="keyboard_24px.png">images/keyboard_24px.png</file> 377 <file alias="keyboard_32px.png">images/keyboard_32px.png</file> 378 <file alias="keyboard_settings_16px.png">images/keyboard_settings_16px.png</file> 379 <file alias="keyboard_settings_disabled_16px.png">images/keyboard_settings_disabled_16px.png</file> 380 <file alias="list_movedown_16px.png">images/list_movedown_16px.png</file> 381 <file alias="list_movedown_disabled_16px.png">images/list_movedown_disabled_16px.png</file> 382 <file alias="list_moveup_16px.png">images/list_moveup_16px.png</file> 383 <file alias="list_moveup_disabled_16px.png">images/list_moveup_disabled_16px.png</file> 384 <file alias="log_viewer_bookmark_16px.png">images/log_viewer_bookmark_16px.png</file> 385 <file alias="log_viewer_bookmark_32px.png">images/log_viewer_bookmark_32px.png</file> 386 <file alias="log_viewer_bookmark_disabled_16px.png">images/log_viewer_bookmark_disabled_16px.png</file> 387 <file alias="log_viewer_bookmark_disabled_32px.png">images/log_viewer_bookmark_disabled_32px.png</file> 388 <file alias="log_viewer_bookmark_off_16px.png">images/log_viewer_bookmark_off_16px.png</file> 389 <file alias="log_viewer_bookmark_on_16px.png">images/log_viewer_bookmark_on_16px.png</file> 390 <file alias="log_viewer_choose_font_16px.png">images/log_viewer_choose_font_16px.png</file> 391 <file alias="log_viewer_delete_all_bookmarks_16px.png">images/log_viewer_delete_all_bookmarks_16px.png</file> 392 <file alias="log_viewer_delete_all_filters_16px.png">images/log_viewer_delete_all_filters_16px.png</file> 393 <file alias="log_viewer_delete_current_bookmark_16px.png">images/log_viewer_delete_current_bookmark_16px.png</file> 394 <file alias="log_viewer_delete_filter_16px.png">images/log_viewer_delete_filter_16px.png</file> 395 <file alias="log_viewer_filter_16px.png">images/log_viewer_filter_16px.png</file> 396 <file alias="log_viewer_filter_32px.png">images/log_viewer_filter_32px.png</file> 397 <file alias="log_viewer_filter_add_16px.png">images/log_viewer_filter_add_16px.png</file> 398 <file alias="log_viewer_filter_disabled_16px.png">images/log_viewer_filter_disabled_16px.png</file> 399 <file alias="log_viewer_filter_disabled_32px.png">images/log_viewer_filter_disabled_32px.png</file> 400 <file alias="log_viewer_find_16px.png">images/log_viewer_find_16px.png</file> 401 <file alias="log_viewer_find_32px.png">images/log_viewer_find_32px.png</file> 402 <file alias="log_viewer_find_disabled_16px.png">images/log_viewer_find_disabled_16px.png</file> 403 <file alias="log_viewer_find_disabled_32px.png">images/log_viewer_find_disabled_32px.png</file> 404 <file alias="log_viewer_goto_next_bookmark_16px.png">images/log_viewer_goto_next_bookmark_16px.png</file> 405 <file alias="log_viewer_goto_previous_bookmark_16px.png">images/log_viewer_goto_previous_bookmark_16px.png</file> 406 <file alias="log_viewer_goto_selected_bookmark_16px.png">images/log_viewer_goto_selected_bookmark_16px.png</file> 407 <file alias="log_viewer_options_16px.png">images/log_viewer_options_16px.png</file> 408 <file alias="log_viewer_options_32px.png">images/log_viewer_options_32px.png</file> 409 <file alias="log_viewer_options_disabled_16px.png">images/log_viewer_options_disabled_16px.png</file> 410 <file alias="log_viewer_options_disabled_32px.png">images/log_viewer_options_disabled_32px.png</file> 411 <file alias="log_viewer_refresh_16px.png">images/log_viewer_refresh_16px.png</file> 412 <file alias="log_viewer_refresh_32px.png">images/log_viewer_refresh_32px.png</file> 413 <file alias="log_viewer_refresh_disabled_16px.png">images/log_viewer_refresh_disabled_16px.png</file> 3 <file alias="us_layout.xml">xml/us_layout.xml</file> 414 4 </qresource> 415 5 </RCC> -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
r78519 r78567 569 569 RuntimeMenuInputActionType_Keyboard = RT_BIT(0), 570 570 RuntimeMenuInputActionType_KeyboardSettings = RT_BIT(1), 571 RuntimeMenuInputActionType_TypeCAD = RT_BIT(2), 571 RuntimeMenuInputActionType_SoftKeyboard = RT_BIT(2), 572 RuntimeMenuInputActionType_TypeCAD = RT_BIT(3), 572 573 #ifdef VBOX_WS_X11 573 RuntimeMenuInputActionType_TypeCABS = RT_BIT( 3),574 #endif 575 RuntimeMenuInputActionType_TypeCtrlBreak = RT_BIT( 4),576 RuntimeMenuInputActionType_TypeInsert = RT_BIT( 5),577 RuntimeMenuInputActionType_TypePrintScreen = RT_BIT( 6),578 RuntimeMenuInputActionType_TypeAltPrintScreen = RT_BIT( 7),579 RuntimeMenuInputActionType_Mouse = RT_BIT( 8),580 RuntimeMenuInputActionType_MouseIntegration = RT_BIT( 9),581 RuntimeMenuInputActionType_TypeHostKeyCombo = RT_BIT(1 0),574 RuntimeMenuInputActionType_TypeCABS = RT_BIT(4), 575 #endif 576 RuntimeMenuInputActionType_TypeCtrlBreak = RT_BIT(5), 577 RuntimeMenuInputActionType_TypeInsert = RT_BIT(6), 578 RuntimeMenuInputActionType_TypePrintScreen = RT_BIT(7), 579 RuntimeMenuInputActionType_TypeAltPrintScreen = RT_BIT(8), 580 RuntimeMenuInputActionType_Mouse = RT_BIT(9), 581 RuntimeMenuInputActionType_MouseIntegration = RT_BIT(10), 582 RuntimeMenuInputActionType_TypeHostKeyCombo = RT_BIT(11), 582 583 RuntimeMenuInputActionType_All = 0xFFFF 583 584 }; -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.cpp
r77822 r78567 1541 1541 setName(QApplication::translate("UIActionPool", "&Keyboard Settings...")); 1542 1542 setStatusTip(QApplication::translate("UIActionPool", "Display global preferences window to configure keyboard shortcuts")); 1543 } 1544 }; 1545 1546 /** Simple action extension, used as 'Show Soft Keyboard' action class. */ 1547 class UIActionSimpleRuntimeShowSoftKeyboard : public UIActionSimple 1548 { 1549 Q_OBJECT; 1550 1551 public: 1552 1553 /** Constructs action passing @a pParent to the base-class. */ 1554 UIActionSimpleRuntimeShowSoftKeyboard(UIActionPool *pParent) 1555 : UIActionSimple(pParent, ":/keyboard_settings_16px.png", ":/keyboard_settings_disabled_16px.png", true) 1556 {} 1557 1558 protected: 1559 1560 /** Returns action extra-data ID. */ 1561 virtual int extraDataID() const /* override */ 1562 { 1563 return UIExtraDataMetaDefs::RuntimeMenuInputActionType_SoftKeyboard; 1564 } 1565 /** Returns action extra-data key. */ 1566 virtual QString extraDataKey() const /* override */ 1567 { 1568 return gpConverter->toInternalString(UIExtraDataMetaDefs::RuntimeMenuInputActionType_SoftKeyboard); 1569 } 1570 /** Returns whether action is allowed. */ 1571 virtual bool isAllowed() const /* override */ 1572 { 1573 return actionPool()->toRuntime()->isAllowedInMenuInput(UIExtraDataMetaDefs::RuntimeMenuInputActionType_SoftKeyboard); 1574 } 1575 1576 /** Returns shortcut extra-data ID. */ 1577 virtual QString shortcutExtraDataID() const /* override */ 1578 { 1579 return QString("SoftKeyboard"); 1580 } 1581 1582 /** Handles translation event. */ 1583 virtual void retranslateUi() /* override */ 1584 { 1585 setName(QApplication::translate("UIActionPool", "&Soft Keyboard...")); 1586 setStatusTip(QApplication::translate("UIActionPool", "Display soft keyboard")); 1543 1587 } 1544 1588 }; … … 3346 3390 m_pool[UIActionIndexRT_M_Input_M_Keyboard] = new UIActionMenuRuntimeKeyboard(this); 3347 3391 m_pool[UIActionIndexRT_M_Input_M_Keyboard_S_Settings] = new UIActionSimpleRuntimeShowKeyboardSettings(this); 3392 m_pool[UIActionIndexRT_M_Input_M_Keyboard_S_SoftKeyboard] = new UIActionSimpleRuntimeShowSoftKeyboard(this); 3348 3393 m_pool[UIActionIndexRT_M_Input_M_Keyboard_S_TypeCAD] = new UIActionSimpleRuntimePerformTypeCAD(this); 3349 3394 #ifdef VBOX_WS_X11 … … 4083 4128 /* 'Keyboard Settings' action: */ 4084 4129 fSeparator = addAction(pMenu, action(UIActionIndexRT_M_Input_M_Keyboard_S_Settings)) || fSeparator; 4085 4130 /* 'Soft Keyboard' action: */ 4131 fSeparator = addAction(pMenu, action(UIActionIndexRT_M_Input_M_Keyboard_S_SoftKeyboard)) || fSeparator; 4086 4132 /* Separator: */ 4087 4133 if (fSeparator) -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIActionPoolRuntime.h
r77822 r78567 83 83 UIActionIndexRT_M_Input_M_Keyboard, 84 84 UIActionIndexRT_M_Input_M_Keyboard_S_Settings, 85 UIActionIndexRT_M_Input_M_Keyboard_S_SoftKeyboard, 85 86 UIActionIndexRT_M_Input_M_Keyboard_S_TypeCAD, 86 87 #ifdef VBOX_WS_X11 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
r77822 r78567 64 64 #include "UIFileManagerDialog.h" 65 65 #include "UIGuestProcessControlDialog.h" 66 #include "UISoftKeyboardDialog.h" 66 67 #ifdef VBOX_WS_MAC 67 68 # include "DockIconPreview.h" … … 849 850 , m_pFileManagerDialog(0) 850 851 , m_pProcessControlDialog(0) 852 , m_pSoftKeyboardDialog(0) 851 853 { 852 854 } … … 1055 1057 m_pRunningOrPausedActions->addAction(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard)); 1056 1058 m_pRunningOrPausedActions->addAction(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard_S_Settings)); 1059 m_pRunningOrPausedActions->addAction(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard_S_SoftKeyboard)); 1057 1060 m_pRunningOrPausedActions->addAction(actionPool()->action(UIActionIndexRT_M_Input_M_Mouse)); 1058 1061 m_pRunningOrPausedActions->addAction(actionPool()->action(UIActionIndexRT_M_Input_M_Mouse_T_Integration)); … … 1134 1137 connect(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard_S_Settings), SIGNAL(triggered()), 1135 1138 this, SLOT(sltShowKeyboardSettings())); 1139 connect(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard_S_SoftKeyboard), SIGNAL(triggered()), 1140 this, SLOT(sltShowSoftKeyboard())); 1136 1141 connect(actionPool()->action(UIActionIndexRT_M_Input_M_Keyboard_S_TypeCAD), SIGNAL(triggered()), 1137 1142 this, SLOT(sltTypeCAD())); … … 1593 1598 } 1594 1599 1600 void UIMachineLogic::sltShowSoftKeyboard() 1601 { 1602 if (machine().isNull() || !activeMachineWindow()) 1603 return; 1604 1605 /* Create the soft keyboard only once: */ 1606 if (m_pSoftKeyboardDialog) 1607 return; 1608 1609 QIManagerDialog *pSoftKeyboardDialog; 1610 UISoftKeyboardDialogFactory dialogFactory(actionPool(), machine().GetName()); 1611 dialogFactory.prepare(pSoftKeyboardDialog, activeMachineWindow()); 1612 if (pSoftKeyboardDialog) 1613 { 1614 m_pSoftKeyboardDialog = pSoftKeyboardDialog; 1615 1616 /* Show instance: */ 1617 pSoftKeyboardDialog->show(); 1618 pSoftKeyboardDialog->setWindowState(pSoftKeyboardDialog->windowState() & ~Qt::WindowMinimized); 1619 pSoftKeyboardDialog->activateWindow(); 1620 connect(pSoftKeyboardDialog, &QIManagerDialog::sigClose, 1621 this, &UIMachineLogic::sltCloseSoftKeyboard); 1622 } 1623 } 1624 1625 void UIMachineLogic::sltCloseSoftKeyboard() 1626 { 1627 QIManagerDialog* pDialog = qobject_cast<QIManagerDialog*>(sender()); 1628 if (m_pSoftKeyboardDialog != pDialog || !pDialog) 1629 return; 1630 1631 /* Set the m_pSoftKeyboardDialog to NULL before closing the dialog. or we will have redundant deletes*/ 1632 m_pSoftKeyboardDialog = 0; 1633 pDialog->close(); 1634 UISoftKeyboardDialogFactory().cleanup(pDialog); 1635 } 1636 1595 1637 void UIMachineLogic::sltToggleMouseIntegration(bool fEnabled) 1596 1638 { … … 1776 1818 return; 1777 1819 1778 /* Create a logviewer only if we don't have one already*/1820 /* Create a file manager only if we don't have one already: */ 1779 1821 if (m_pFileManagerDialog) 1780 1822 return; … … 1802 1844 return; 1803 1845 1804 /* Set the m_p LogViewerDialog to NULL before closing the dialog. or we will have redundant deletes*/1846 /* Set the m_pFileManagerDialog to NULL before closing the dialog. or we will have redundant deletes*/ 1805 1847 m_pFileManagerDialog = 0; 1806 1848 pDialog->close(); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h
r77822 r78567 265 265 /* "Machine" menu functionality: */ 266 266 void sltShowKeyboardSettings(); 267 void sltShowSoftKeyboard(); 268 void sltCloseSoftKeyboard(); 267 269 void sltToggleMouseIntegration(bool fEnabled); 268 270 void sltTypeCAD(); … … 436 438 QIManagerDialog *m_pFileManagerDialog; 437 439 QIManagerDialog *m_pProcessControlDialog; 440 QIManagerDialog *m_pSoftKeyboardDialog; 438 441 439 442 /* Friend classes: */ -
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
r78540 r78567 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GuestProcessControlWidgetclass implementation.3 * VBox Qt GUI - UISoftKeyboard class implementation. 4 4 */ 5 5 … … 18 18 /* Qt includes: */ 19 19 #include <QApplication> 20 #include <QFile> 20 21 #include <QMenu> 22 #include <QPushButton> 21 23 #include <QSplitter> 24 #include <QXmlStreamReader> 22 25 #include <QVBoxLayout> 23 26 24 27 /* GUI includes: */ 25 #include "QIDialog.h"26 28 #include "QIDialogButtonBox.h" 27 29 #include "UIExtraDataManager.h" 28 #include "UIGuestControlConsole.h" 29 #include "UIGuestControlInterface.h" 30 #include "UIGuestControlTreeItem.h" 31 #include "UIGuestProcessControlWidget.h" 32 #include "UIToolBar.h" 33 #include "UIIconPool.h" 34 #include "UIVMInformationDialog.h" 30 #include "UISoftKeyboard.h" 35 31 #include "VBoxGlobal.h" 36 32 … … 39 35 #include "CEventSource.h" 40 36 41 const bool UIGuestProcessControlWidget::m_fDeleteAfterUnregister = false; 37 /********************************************************************************************************************************* 38 * UIKeyboardLayoutReader definition. * 39 *********************************************************************************************************************************/ 42 40 43 /** A QIDialog child to display properties of a guest session on process. */ 44 class UISessionProcessPropertiesDialog : public QIDialog 41 class UIKeyboardLayoutReader 45 42 { 46 43 44 public: 45 46 bool parseXMLFile(const QString &strFileName); 47 48 private: 49 50 bool parseRow(); 51 bool parseKey(); 52 QXmlStreamReader m_xmlReader; 53 }; 54 55 56 /********************************************************************************************************************************* 57 * UISoftKeyboardKey definition. * 58 *********************************************************************************************************************************/ 59 60 class UISoftKeyboardKey : public QPushButton 61 { 47 62 Q_OBJECT; 48 63 49 64 public: 50 65 51 UISessionProcessPropertiesDialog(QWidget *pParent = 0, Qt::WindowFlags flags = 0); 52 void setPropertyText(const QString &strProperty); 53 54 private: 55 56 QVBoxLayout *m_pMainLayout; 57 QTextEdit *m_pInfoEdit; 58 QString m_strProperty; 66 UISoftKeyboardKey(QWidget *pParent); 59 67 }; 60 68 69 /********************************************************************************************************************************* 70 * UIKeyboardLayoutReader implementation. * 71 *********************************************************************************************************************************/ 72 73 bool UIKeyboardLayoutReader::parseXMLFile(const QString &strFileName) 74 { 75 QFile xmlFile(strFileName); 76 if (!xmlFile.exists()) 77 return false; 78 79 if (!xmlFile.open(QIODevice::ReadOnly)) 80 return false; 81 82 m_xmlReader.setDevice(&xmlFile); 83 84 if (!m_xmlReader.readNextStartElement() || m_xmlReader.name() != "layout") 85 return false; 86 87 while (m_xmlReader.readNextStartElement()) 88 { 89 if (m_xmlReader.name() == "row") 90 parseRow(); 91 else 92 m_xmlReader.skipCurrentElement(); 93 } 94 95 return true; 96 } 97 98 bool UIKeyboardLayoutReader::parseRow() 99 { 100 while (m_xmlReader.readNextStartElement()) 101 { 102 if (m_xmlReader.name() == "key") 103 parseKey(); 104 else 105 m_xmlReader.skipCurrentElement(); 106 } 107 108 return true; 109 } 110 111 bool UIKeyboardLayoutReader::parseKey() 112 { 113 while (m_xmlReader.readNextStartElement()) 114 { 115 116 // if (m_xmlReader.name() == "key") 117 // parseKey(); 118 // else 119 m_xmlReader.skipCurrentElement(); 120 } 121 122 return true; 123 } 61 124 62 125 /********************************************************************************************************************************* 63 * UI GuestControlTreeWidget definition.*126 * UISoftKeyboardKey implementation. * 64 127 *********************************************************************************************************************************/ 65 128 66 class UIGuestControlTreeWidget : public QITreeWidget 129 UISoftKeyboardKey::UISoftKeyboardKey(QWidget *pParent) 130 :QPushButton(pParent) 67 131 { 68 69 Q_OBJECT; 70 71 signals: 72 73 void sigCloseSessionOrProcess(); 74 void sigShowProperties(); 75 76 public: 77 78 UIGuestControlTreeWidget(QWidget *pParent = 0); 79 UIGuestControlTreeItem *selectedItem(); 80 81 protected: 82 83 void contextMenuEvent(QContextMenuEvent *pEvent) /* override */; 84 85 private slots: 86 87 void sltExpandAll(); 88 void sltCollapseAll(); 89 void sltRemoveAllTerminateSessionsProcesses(); 90 91 private: 92 93 void expandCollapseAll(bool bFlag); 94 }; 95 132 } 96 133 97 134 /********************************************************************************************************************************* 98 * UIS essionProcessPropertiesDialog implementation.*135 * UISoftKeyboard implementation. * 99 136 *********************************************************************************************************************************/ 100 137 101 UISessionProcessPropertiesDialog::UISessionProcessPropertiesDialog(QWidget *pParent /* = 0 */, Qt::WindowFlags flags /*= 0 */) 102 :QIDialog(pParent, flags) 103 , m_pMainLayout(new QVBoxLayout) 104 , m_pInfoEdit(new QTextEdit) 105 { 106 setLayout(m_pMainLayout); 107 108 if (m_pMainLayout) 109 m_pMainLayout->addWidget(m_pInfoEdit); 110 if (m_pInfoEdit) 111 { 112 m_pInfoEdit->setReadOnly(true); 113 m_pInfoEdit->setFrameStyle(QFrame::NoFrame); 114 } 115 QIDialogButtonBox *pButtonBox = 116 new QIDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, this); 117 m_pMainLayout->addWidget(pButtonBox); 118 connect(pButtonBox, &QIDialogButtonBox::accepted, this, &UISessionProcessPropertiesDialog::accept); 119 } 120 121 void UISessionProcessPropertiesDialog::setPropertyText(const QString &strProperty) 122 { 123 if (!m_pInfoEdit) 124 return; 125 m_strProperty = strProperty; 126 m_pInfoEdit->setHtml(strProperty); 127 } 128 129 130 /********************************************************************************************************************************* 131 * UIGuestControlTreeWidget implementation. * 132 *********************************************************************************************************************************/ 133 134 UIGuestControlTreeWidget::UIGuestControlTreeWidget(QWidget *pParent /* = 0 */) 135 :QITreeWidget(pParent) 136 { 137 setSelectionMode(QAbstractItemView::SingleSelection); 138 setAlternatingRowColors(true); 139 } 140 141 UIGuestControlTreeItem *UIGuestControlTreeWidget::selectedItem() 142 { 143 QList<QTreeWidgetItem*> selectedList = selectedItems(); 144 if (selectedList.isEmpty()) 145 return 0; 146 UIGuestControlTreeItem *item = 147 dynamic_cast<UIGuestControlTreeItem*>(selectedList[0]); 148 /* Return the firstof the selected items */ 149 return item; 150 } 151 152 void UIGuestControlTreeWidget::contextMenuEvent(QContextMenuEvent *pEvent) /* override */ 153 { 154 QMenu menu(this); 155 QList<QTreeWidgetItem *> selectedList = selectedItems(); 156 157 UIGuestSessionTreeItem *sessionTreeItem = 0; 158 if (!selectedList.isEmpty()) 159 sessionTreeItem = dynamic_cast<UIGuestSessionTreeItem*>(selectedList[0]); 160 QAction *pSessionCloseAction = 0; 161 bool fHasAnyItems = topLevelItemCount() != 0; 162 /* Create a guest session related context menu */ 163 if (sessionTreeItem) 164 { 165 pSessionCloseAction = menu.addAction(tr("Terminate Session")); 166 if (pSessionCloseAction) 167 connect(pSessionCloseAction, &QAction::triggered, 168 this, &UIGuestControlTreeWidget::sigCloseSessionOrProcess); 169 } 170 UIGuestProcessTreeItem *processTreeItem = 0; 171 if (!selectedList.isEmpty()) 172 processTreeItem = dynamic_cast<UIGuestProcessTreeItem*>(selectedList[0]); 173 QAction *pProcessTerminateAction = 0; 174 if (processTreeItem) 175 { 176 pProcessTerminateAction = menu.addAction(tr("Terminate Process")); 177 if (pProcessTerminateAction) 178 { 179 connect(pProcessTerminateAction, &QAction::triggered, 180 this, &UIGuestControlTreeWidget::sigCloseSessionOrProcess); 181 pProcessTerminateAction->setIcon(UIIconPool::iconSet(":/file_manager_delete_16px.png")); 182 } 183 } 184 if (pProcessTerminateAction || pSessionCloseAction) 185 menu.addSeparator(); 186 187 QAction *pRemoveAllTerminated = menu.addAction(tr("Remove All Terminated Sessions/Processes")); 188 if (pRemoveAllTerminated) 189 { 190 191 pRemoveAllTerminated->setEnabled(fHasAnyItems); 192 pRemoveAllTerminated->setIcon(UIIconPool::iconSet(":/state_aborted_16px.png")); 193 194 connect(pRemoveAllTerminated, &QAction::triggered, 195 this, &UIGuestControlTreeWidget::sltRemoveAllTerminateSessionsProcesses); 196 } 197 198 // Add actions to expand/collapse all tree items 199 QAction *pExpandAllAction = menu.addAction(tr("Expand All")); 200 if (pExpandAllAction) 201 { 202 pExpandAllAction->setIcon(UIIconPool::iconSet(":/expand_all_16px.png")); 203 connect(pExpandAllAction, &QAction::triggered, 204 this, &UIGuestControlTreeWidget::sltExpandAll); 205 } 206 207 QAction *pCollapseAllAction = menu.addAction(tr("Collapse All")); 208 if (pCollapseAllAction) 209 { 210 pCollapseAllAction->setIcon(UIIconPool::iconSet(":/collapse_all_16px.png")); 211 connect(pCollapseAllAction, &QAction::triggered, 212 this, &UIGuestControlTreeWidget::sltCollapseAll); 213 } 214 menu.addSeparator(); 215 QAction *pShowPropertiesAction = menu.addAction(tr("Properties")); 216 if (pShowPropertiesAction) 217 { 218 pShowPropertiesAction->setIcon(UIIconPool::iconSet(":/file_manager_properties_16px.png")); 219 pShowPropertiesAction->setEnabled(fHasAnyItems); 220 connect(pShowPropertiesAction, &QAction::triggered, 221 this, &UIGuestControlTreeWidget::sigShowProperties); 222 } 223 224 menu.exec(pEvent->globalPos()); 225 } 226 227 void UIGuestControlTreeWidget::sltExpandAll() 228 { 229 expandCollapseAll(true); 230 } 231 232 void UIGuestControlTreeWidget::sltCollapseAll() 233 { 234 expandCollapseAll(false); 235 } 236 237 void UIGuestControlTreeWidget::sltRemoveAllTerminateSessionsProcesses() 238 { 239 for (int i = 0; i < topLevelItemCount(); ++i) 240 { 241 if (!topLevelItem(i)) 242 break; 243 UIGuestSessionTreeItem *pSessionItem = dynamic_cast<UIGuestSessionTreeItem*>(topLevelItem(i)); 244 245 if (!pSessionItem) 246 continue; 247 248 if (pSessionItem->status() != KGuestSessionStatus_Starting && 249 pSessionItem->status() != KGuestSessionStatus_Started) 250 { 251 delete pSessionItem; 252 continue; 253 } 254 255 for (int j = 0; j < topLevelItem(i)->childCount(); ++j) 256 { 257 UIGuestProcessTreeItem *pProcessItem = dynamic_cast<UIGuestProcessTreeItem*>(topLevelItem(i)->child(j)); 258 259 if (pProcessItem) 260 { 261 if (pProcessItem->status() != KProcessStatus_Starting && 262 pProcessItem->status() != KProcessStatus_Started) 263 delete pProcessItem; 264 } 265 } 266 } 267 268 } 269 270 void UIGuestControlTreeWidget::expandCollapseAll(bool bFlag) 271 { 272 for (int i = 0; i < topLevelItemCount(); ++i) 273 { 274 if (!topLevelItem(i)) 275 break; 276 topLevelItem(i)->setExpanded(bFlag); 277 for (int j = 0; j < topLevelItem(i)->childCount(); ++j) 278 { 279 if (topLevelItem(i)->child(j)) 280 { 281 topLevelItem(i)->child(j)->setExpanded(bFlag); 282 } 283 } 284 } 285 } 286 287 288 /********************************************************************************************************************************* 289 * UIGuestProcessControlWidget implementation. * 290 *********************************************************************************************************************************/ 291 292 UIGuestProcessControlWidget::UIGuestProcessControlWidget(EmbedTo enmEmbedding, const CGuest &comGuest, 293 QWidget *pParent, QString strMachineName /* = QString()*/, 294 bool fShowToolbar /* = false */) 138 UISoftKeyboard::UISoftKeyboard(EmbedTo /* enmEmbedding */, 139 QWidget *pParent, QString strMachineName /* = QString()*/, 140 bool fShowToolbar /* = false */) 295 141 :QIWithRetranslateUI<QWidget>(pParent) 296 , m_comGuest(comGuest)297 142 , m_pMainLayout(0) 298 , m_pSplitter(0)299 , m_pTreeWidget(0)300 , m_enmEmbedding(enmEmbedding)301 143 , m_pToolBar(0) 302 , m_pQtListener(0)303 144 , m_fShowToolbar(fShowToolbar) 304 145 , m_strMachineName(strMachineName) 305 146 { 306 p repareListener();147 parseLayout(); 307 148 prepareObjects(); 308 149 prepareConnections(); 309 150 prepareToolBar(); 310 initGuestSessionTree();311 151 loadSettings(); 312 152 retranslateUi(); 313 153 } 314 154 315 UI GuestProcessControlWidget::~UIGuestProcessControlWidget()155 UISoftKeyboard::~UISoftKeyboard() 316 156 { 317 157 saveSettings(); 318 158 } 319 159 320 void UI GuestProcessControlWidget::retranslateUi()160 void UISoftKeyboard::retranslateUi() 321 161 { 322 if (m_pTreeWidget)323 {324 QStringList labels;325 labels << tr("Session/Process ID") << tr("Session Name/Process Command") << tr("Session/Process Status");326 m_pTreeWidget->setHeaderLabels(labels);327 }328 162 } 329 163 330 331 void UIGuestProcessControlWidget::prepareObjects() 164 void UISoftKeyboard::prepareObjects() 332 165 { 333 166 /* Create layout: */ … … 338 171 /* Configure layout: */ 339 172 m_pMainLayout->setSpacing(0); 340 341 m_pSplitter = new QSplitter;342 343 if (!m_pSplitter)344 return;345 346 m_pSplitter->setOrientation(Qt::Vertical);347 348 m_pMainLayout->addWidget(m_pSplitter);349 350 351 m_pTreeWidget = new UIGuestControlTreeWidget;352 353 if (m_pTreeWidget)354 {355 m_pSplitter->addWidget(m_pTreeWidget);356 m_pTreeWidget->setColumnCount(3);357 }358 359 m_pSplitter->setStretchFactor(0, 2);360 m_pSplitter->setStretchFactor(1, 1);361 362 updateTreeWidget();363 173 } 364 174 365 void UI GuestProcessControlWidget::updateTreeWidget()175 void UISoftKeyboard::prepareConnections() 366 176 { 367 if (!m_pTreeWidget)368 return;369 370 m_pTreeWidget->clear();371 QVector<QITreeWidgetItem> treeItemVector;372 update();373 177 } 374 178 375 void UI GuestProcessControlWidget::prepareConnections()179 void UISoftKeyboard::prepareToolBar() 376 180 { 377 qRegisterMetaType<QVector<int> >(); 181 } 378 182 379 if (m_pTreeWidget) 183 void UISoftKeyboard::saveSettings() 184 { 185 } 186 187 void UISoftKeyboard::loadSettings() 188 { 189 } 190 191 void UISoftKeyboard::parseLayout() 192 { 193 UIKeyboardLayoutReader reader; 194 if (!reader.parseXMLFile(":/us_layout.xml")) 380 195 { 381 connect(m_pTreeWidget, &UIGuestControlTreeWidget::sigCloseSessionOrProcess,382 this, &UIGuestProcessControlWidget::sltCloseSessionOrProcess);383 connect(m_pTreeWidget, &UIGuestControlTreeWidget::sigShowProperties,384 this, &UIGuestProcessControlWidget::sltShowProperties);385 }386 387 if (m_pQtListener)388 {389 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestSessionRegistered,390 this, &UIGuestProcessControlWidget::sltGuestSessionRegistered);391 connect(m_pQtListener->getWrapped(), &UIMainEventListener::sigGuestSessionUnregistered,392 this, &UIGuestProcessControlWidget::sltGuestSessionUnregistered);393 196 } 394 197 } 395 198 396 void UIGuestProcessControlWidget::sltGuestSessionsUpdated() 397 { 398 updateTreeWidget(); 399 } 400 401 void UIGuestProcessControlWidget::sltCloseSessionOrProcess() 402 { 403 if (!m_pTreeWidget) 404 return; 405 UIGuestControlTreeItem *selectedTreeItem = 406 m_pTreeWidget->selectedItem(); 407 if (!selectedTreeItem) 408 return; 409 UIGuestProcessTreeItem *processTreeItem = 410 dynamic_cast<UIGuestProcessTreeItem*>(selectedTreeItem); 411 if (processTreeItem) 412 { 413 CGuestProcess guestProcess = processTreeItem->guestProcess(); 414 if (guestProcess.isOk()) 415 { 416 guestProcess.Terminate(); 417 } 418 return; 419 } 420 UIGuestSessionTreeItem *sessionTreeItem = 421 dynamic_cast<UIGuestSessionTreeItem*>(selectedTreeItem); 422 if (!sessionTreeItem) 423 return; 424 CGuestSession guestSession = sessionTreeItem->guestSession(); 425 if (!guestSession.isOk()) 426 return; 427 guestSession.Close(); 428 } 429 430 void UIGuestProcessControlWidget::sltShowProperties() 431 { 432 UIGuestControlTreeItem *pItem = m_pTreeWidget->selectedItem(); 433 if (!pItem) 434 return; 435 436 UISessionProcessPropertiesDialog *pPropertiesDialog = new UISessionProcessPropertiesDialog(this); 437 if (!m_strMachineName.isEmpty()) 438 { 439 pPropertiesDialog->setWindowTitle(m_strMachineName); 440 } 441 if (!pPropertiesDialog) 442 return; 443 444 pPropertiesDialog->setPropertyText(pItem->propertyString()); 445 pPropertiesDialog->exec(); 446 447 delete pPropertiesDialog; 448 } 449 450 void UIGuestProcessControlWidget::prepareListener() 451 { 452 /* Create event listener instance: */ 453 m_pQtListener.createObject(); 454 m_pQtListener->init(new UIMainEventListener, this); 455 m_comEventListener = CEventListener(m_pQtListener); 456 457 /* Get CProgress event source: */ 458 CEventSource comEventSource = m_comGuest.GetEventSource(); 459 AssertWrapperOk(comEventSource); 460 461 /* Enumerate all the required event-types: */ 462 QVector<KVBoxEventType> eventTypes; 463 eventTypes << KVBoxEventType_OnGuestSessionRegistered; 464 465 466 /* Register event listener for CProgress event source: */ 467 comEventSource.RegisterListener(m_comEventListener, eventTypes, 468 gEDataManager->eventHandlingType() == EventHandlingType_Active ? TRUE : FALSE); 469 AssertWrapperOk(comEventSource); 470 471 /* If event listener registered as passive one: */ 472 if (gEDataManager->eventHandlingType() == EventHandlingType_Passive) 473 { 474 /* Register event sources in their listeners as well: */ 475 m_pQtListener->getWrapped()->registerSource(comEventSource, m_comEventListener); 476 } 477 } 478 479 void UIGuestProcessControlWidget::prepareToolBar() 480 { 481 /* Create toolbar: */ 482 m_pToolBar = new UIToolBar(parentWidget()); 483 if (m_pToolBar) 484 { 485 /* Configure toolbar: */ 486 const int iIconMetric = (int)(QApplication::style()->pixelMetric(QStyle::PM_LargeIconSize)); 487 m_pToolBar->setIconSize(QSize(iIconMetric, iIconMetric)); 488 m_pToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); 489 490 /* Add toolbar actions: */ 491 m_pToolBar->addSeparator(); 492 m_pToolBar->addSeparator(); 493 494 #ifdef VBOX_WS_MAC 495 /* Check whether we are embedded into a stack: */ 496 if (m_enmEmbedding == EmbedTo_Stack) 497 { 498 /* Add into layout: */ 499 m_pMainLayout->addWidget(m_pToolBar); 500 } 501 #else 502 /* Add into layout: */ 503 m_pMainLayout->addWidget(m_pToolBar); 504 #endif 505 } 506 } 507 508 void UIGuestProcessControlWidget::initGuestSessionTree() 509 { 510 if (!m_comGuest.isOk()) 511 return; 512 513 QVector<CGuestSession> sessions = m_comGuest.GetSessions(); 514 for (int i = 0; i < sessions.size(); ++i) 515 { 516 addGuestSession(sessions.at(i)); 517 } 518 } 519 520 void UIGuestProcessControlWidget::cleanupListener() 521 { 522 /* If event listener registered as passive one: */ 523 if (gEDataManager->eventHandlingType() == EventHandlingType_Passive) 524 { 525 /* Unregister everything: */ 526 m_pQtListener->getWrapped()->unregisterSources(); 527 } 528 529 /* Make sure VBoxSVC is available: */ 530 if (!vboxGlobal().isVBoxSVCAvailable()) 531 return; 532 533 /* Get CProgress event source: */ 534 CEventSource comEventSource = m_comGuest.GetEventSource(); 535 AssertWrapperOk(comEventSource); 536 537 /* Unregister event listener for CProgress event source: */ 538 comEventSource.UnregisterListener(m_comEventListener); 539 } 540 541 542 void UIGuestProcessControlWidget::sltGuestSessionRegistered(CGuestSession guestSession) 543 { 544 if (!guestSession.isOk()) 545 return; 546 addGuestSession(guestSession); 547 } 548 549 void UIGuestProcessControlWidget::addGuestSession(CGuestSession guestSession) 550 { 551 UIGuestSessionTreeItem* sessionTreeItem = new UIGuestSessionTreeItem(m_pTreeWidget, guestSession); 552 connect(sessionTreeItem, &UIGuestSessionTreeItem::sigGuessSessionUpdated, 553 this, &UIGuestProcessControlWidget::sltTreeItemUpdated); 554 } 555 556 void UIGuestProcessControlWidget::sltTreeItemUpdated() 557 { 558 if (m_pTreeWidget) 559 m_pTreeWidget->update(); 560 } 561 562 void UIGuestProcessControlWidget::sltGuestSessionUnregistered(CGuestSession guestSession) 563 { 564 if (!guestSession.isOk()) 565 return; 566 if (!m_pTreeWidget) 567 return; 568 569 UIGuestSessionTreeItem *selectedItem = NULL; 570 571 for (int i = 0; i < m_pTreeWidget->topLevelItemCount(); ++i) 572 { 573 QTreeWidgetItem *item = m_pTreeWidget->topLevelItem( i ); 574 575 UIGuestSessionTreeItem *treeItem = dynamic_cast<UIGuestSessionTreeItem*>(item); 576 if (treeItem && treeItem->guestSession() == guestSession) 577 { 578 selectedItem = treeItem; 579 break; 580 } 581 } 582 if (m_fDeleteAfterUnregister) 583 delete selectedItem; 584 } 585 586 void UIGuestProcessControlWidget::saveSettings() 587 { 588 if (!m_pSplitter) 589 return; 590 gEDataManager->setGuestControlProcessControlSplitterHints(m_pSplitter->sizes()); 591 } 592 593 void UIGuestProcessControlWidget::loadSettings() 594 { 595 if (!m_pSplitter) 596 return; 597 QList<int> splitterHints = gEDataManager->guestControlProcessControlSplitterHints(); 598 if (splitterHints.size() != 2) 599 return; 600 if (splitterHints[0] != 0 && splitterHints[1] != 0) 601 m_pSplitter->setSizes(splitterHints); 602 } 603 604 #include "UIGuestProcessControlWidget.moc" 199 #include "UISoftKeyboard.moc" -
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.h
r78540 r78567 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GuestProcessControlWidgetclass declaration.3 * VBox Qt GUI - UISoftKeyboard class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlWidget_h19 #define FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlWidget_h18 #ifndef FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboard_h 19 #define FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboard_h 20 20 #ifndef RT_WITHOUT_PRAGMA_ONCE 21 21 # pragma once … … 33 33 #include "QIManagerDialog.h" 34 34 #include "QIWithRetranslateUI.h" 35 #include "UIMainEventListener.h"36 35 37 36 /* Forward declarations: */ 38 class QITreeWidget;37 class UISoftKeyboardKey; 39 38 class QVBoxLayout; 40 class QSplitter;41 class UIGuestControlConsole;42 class UIGuestControlInterface;43 class UIGuestSessionsEventHandler;44 class UIGuestControlTreeWidget;45 39 class UIToolBar; 46 40 47 /** QWidget extension 48 * providing GUI with guest session information and control tab in session-information window. */ 49 class UIGuestProcessControlWidget : public QIWithRetranslateUI<QWidget> 41 class UISoftKeyboard : public QIWithRetranslateUI<QWidget> 50 42 { 51 43 Q_OBJECT; … … 53 45 public: 54 46 55 UI GuestProcessControlWidget(EmbedTo enmEmbedding, const CGuest &comGuest, QWidget *pParent,47 UISoftKeyboard(EmbedTo enmEmbedding, QWidget *pParent, 56 48 QString strMachineName = QString(), bool fShowToolbar = false); 57 ~UIGuestProcessControlWidget(); 58 /** When true we delete the corresponding tree item as soon as the guest session/process is unregistered. */ 59 static const bool m_fDeleteAfterUnregister; 49 ~UISoftKeyboard(); 60 50 61 51 protected: … … 65 55 private slots: 66 56 67 void sltGuestSessionsUpdated();68 void sltGuestSessionRegistered(CGuestSession guestSession);69 void sltGuestSessionUnregistered(CGuestSession guestSession);70 void sltTreeItemUpdated();71 void sltCloseSessionOrProcess();72 void sltShowProperties();73 74 57 private: 75 58 … … 77 60 void prepareConnections(); 78 61 void prepareToolBar(); 79 void prepareListener();80 void initGuestSessionTree();81 void updateTreeWidget();82 void cleanupListener();83 void addGuestSession(CGuestSession guestSession);84 62 void saveSettings(); 85 63 void loadSettings(); 64 void parseLayout(); 86 65 87 CGuest m_comGuest; 88 QVBoxLayout *m_pMainLayout; 89 QSplitter *m_pSplitter; 90 UIGuestControlTreeWidget *m_pTreeWidget; 91 const EmbedTo m_enmEmbedding; 92 UIToolBar *m_pToolBar; 93 94 /** Holds the Qt event listener instance. */ 95 ComObjPtr<UIMainEventListenerImpl> m_pQtListener; 96 /** Holds the COM event listener instance. */ 97 CEventListener m_comEventListener; 98 const bool m_fShowToolbar; 99 QString m_strMachineName; 66 QVBoxLayout *m_pMainLayout; 67 UIToolBar *m_pToolBar; 68 const bool m_fShowToolbar; 69 QString m_strMachineName; 70 QVector<UISoftKeyboardKey*> m_keys; 100 71 }; 101 72 102 #endif /* !FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlWidget_h */73 #endif /* !FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboard_h */ -
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboardDialog.cpp
r78540 r78567 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GuestProcessControlDialog class implementation.3 * VBox Qt GUI - UISoftKeyboardDialog class implementation. 4 4 */ 5 5 … … 25 25 #include "UIIconPool.h" 26 26 #include "UIGuestControlConsole.h" 27 #include "UIGuestProcessControlDialog.h" 27 #include "UISoftKeyboardDialog.h" 28 #include "UISoftKeyboard.h" 28 29 #include "VBoxGlobal.h" 29 30 #ifdef VBOX_WS_MAC … … 33 34 34 35 /********************************************************************************************************************************* 35 * Class UI GuestProcessControlDialogFactory implementation. *36 * Class UISoftKeyboardDialogFactory implementation. * 36 37 *********************************************************************************************************************************/ 37 38 38 UIGuestProcessControlDialogFactory::UIGuestProcessControlDialogFactory(UIActionPool *pActionPool /* = 0 */, 39 const CGuest &comGuest /* = CGuest() */, 39 UISoftKeyboardDialogFactory::UISoftKeyboardDialogFactory(UIActionPool *pActionPool /* = 0 */, 40 40 const QString &strMachineName /* = QString() */) 41 41 : m_pActionPool(pActionPool) 42 , m_comGuest(comGuest)43 42 , m_strMachineName(strMachineName) 44 43 { 45 44 } 46 45 47 void UI GuestProcessControlDialogFactory::create(QIManagerDialog *&pDialog, QWidget *pCenterWidget)46 void UISoftKeyboardDialogFactory::create(QIManagerDialog *&pDialog, QWidget *pCenterWidget) 48 47 { 49 pDialog = new UI GuestProcessControlDialog(pCenterWidget, m_pActionPool, m_comGuest, m_strMachineName);48 pDialog = new UISoftKeyboardDialog(pCenterWidget, m_pActionPool, m_strMachineName); 50 49 } 51 50 52 51 53 52 /********************************************************************************************************************************* 54 * Class UI GuestProcessControlDialog implementation. *53 * Class UISoftKeyboardDialog implementation. * 55 54 *********************************************************************************************************************************/ 56 55 57 UI GuestProcessControlDialog::UIGuestProcessControlDialog(QWidget *pCenterWidget,56 UISoftKeyboardDialog::UISoftKeyboardDialog(QWidget *pCenterWidget, 58 57 UIActionPool *pActionPool, 59 const CGuest &comGuest,60 58 const QString &strMachineName /* = QString() */) 61 59 : QIWithRetranslateUI<QIManagerDialog>(pCenterWidget) 62 60 , m_pActionPool(pActionPool) 63 , m_comGuest(comGuest)64 61 , m_strMachineName(strMachineName) 65 62 { 66 63 } 67 64 68 void UI GuestProcessControlDialog::retranslateUi()65 void UISoftKeyboardDialog::retranslateUi() 69 66 { 70 67 /* Translate window title: */ … … 74 71 } 75 72 76 void UI GuestProcessControlDialog::configure()73 void UISoftKeyboardDialog::configure() 77 74 { 78 75 /* Apply window icons: */ … … 80 77 } 81 78 82 void UI GuestProcessControlDialog::configureCentralWidget()79 void UISoftKeyboardDialog::configureCentralWidget() 83 80 { 84 81 /* Create widget: */ 85 UI GuestControlConsole *pConsole = new UIGuestControlConsole(m_comGuest);82 UISoftKeyboard *pSoftKeyboard = new UISoftKeyboard(EmbedTo_Dialog, 0, ""); 86 83 87 if (p Console)84 if (pSoftKeyboard) 88 85 { 89 86 /* Configure widget: */ 90 setWidget(p Console);87 setWidget(pSoftKeyboard); 91 88 //setWidgetMenu(pWidget->menu()); 92 89 #ifdef VBOX_WS_MAC … … 94 91 #endif 95 92 /* Add into layout: */ 96 centralWidget()->layout()->addWidget(p Console);93 centralWidget()->layout()->addWidget(pSoftKeyboard); 97 94 } 98 95 } 99 96 100 void UI GuestProcessControlDialog::finalize()97 void UISoftKeyboardDialog::finalize() 101 98 { 102 99 /* Apply language settings: */ … … 104 101 } 105 102 106 void UI GuestProcessControlDialog::loadSettings()103 void UISoftKeyboardDialog::loadSettings() 107 104 { 108 105 const QRect desktopRect = gpDesktop->availableGeometry(this); … … 118 115 119 116 /* Restore geometry: */ 120 LogRel2(("GUI: UI GuestProcessControlDialog: Restoring geometry to: Origin=%dx%d, Size=%dx%d\n",117 LogRel2(("GUI: UISoftKeyboardDialog: Restoring geometry to: Origin=%dx%d, Size=%dx%d\n", 121 118 geometry.x(), geometry.y(), geometry.width(), geometry.height())); 122 119 setDialogGeometry(geometry); 123 120 } 124 121 125 void UI GuestProcessControlDialog::saveSettings() const122 void UISoftKeyboardDialog::saveSettings() const 126 123 { 127 124 /* Save window geometry to extradata: */ … … 138 135 } 139 136 140 bool UI GuestProcessControlDialog::shouldBeMaximized() const137 bool UISoftKeyboardDialog::shouldBeMaximized() const 141 138 { 142 139 return gEDataManager->guestProcessControlDialogShouldBeMaximized(); 143 140 } 144 141 145 void UI GuestProcessControlDialog::sltSetCloseButtonShortCut(QKeySequence shortcut)142 void UISoftKeyboardDialog::sltSetCloseButtonShortCut(QKeySequence shortcut) 146 143 { 147 144 if (button(ButtonType_Close)) -
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboardDialog.h
r78540 r78567 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GuestProcessControlDialog class declaration.3 * VBox Qt GUI - UISoftKeyboardDialog class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlDialog_h19 #define FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlDialog_h18 #ifndef FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboardDialog_h 19 #define FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboardDialog_h 20 20 #ifndef RT_WITHOUT_PRAGMA_ONCE 21 21 # pragma once … … 35 35 /* Forward declarations: */ 36 36 class UIActionPool; 37 class UI GuestProcessControlDialog;37 class UISoftKeyboardDialog; 38 38 class CGuest; 39 39 40 40 /** QIManagerDialogFactory extension used as a factory for the Guest Control dialog. */ 41 class UI GuestProcessControlDialogFactory : public QIManagerDialogFactory41 class UISoftKeyboardDialogFactory : public QIManagerDialogFactory 42 42 { 43 43 public: 44 44 45 UI GuestProcessControlDialogFactory(UIActionPool *pActionPool = 0, const CGuest &comGuest = CGuest(), const QString &strMachineName = QString());45 UISoftKeyboardDialogFactory(UIActionPool *pActionPool = 0, const QString &strMachineName = QString()); 46 46 47 47 protected: … … 52 52 53 53 UIActionPool *m_pActionPool; 54 CGuest m_comGuest;55 54 QString m_strMachineName; 56 55 }; … … 58 57 59 58 /** QIManagerDialog extension providing GUI with the dialog displaying guest control releated logs. */ 60 class UI GuestProcessControlDialog : public QIWithRetranslateUI<QIManagerDialog>59 class UISoftKeyboardDialog : public QIWithRetranslateUI<QIManagerDialog> 61 60 { 62 61 Q_OBJECT; … … 66 65 /** Constructs Guest Control dialog. 67 66 * @param pCenterWidget Passes the widget reference to center according to. 68 * @param pActionPool Passes the action-pool reference. 69 * @param comGuest Passes the com-guest reference. */ 70 UIGuestProcessControlDialog(QWidget *pCenterWidget, UIActionPool *pActionPool, const CGuest &comGuest, const QString &strMachineName = QString()); 67 * @param pActionPool Passes the action-pool reference. */ 68 UISoftKeyboardDialog(QWidget *pCenterWidget, UIActionPool *pActionPool, const QString &strMachineName = QString()); 71 69 72 70 protected: … … 106 104 107 105 UIActionPool *m_pActionPool; 108 CGuest m_comGuest;109 106 QString m_strMachineName; 110 107 }; 111 108 112 109 113 #endif /* !FEQT_INCLUDED_SRC_ guestctrl_UIGuestProcessControlDialog_h */110 #endif /* !FEQT_INCLUDED_SRC_softkeyboard_UISoftKeyboardDialog_h */
Note:
See TracChangeset
for help on using the changeset viewer.