Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| dev:xfdesktop:port-to-gio [2010/10/03 11:59] – 85.176.151.17 | dev:xfdesktop:port-to-gio [2010/10/17 13:10] (current) – 217.229.117.83 | ||
|---|---|---|---|
| Line 40: | Line 40: | ||
| Make the interface method '' | Make the interface method '' | ||
| - | |||
| ==== xfdesktop-file-icon-manager.{c, | ==== xfdesktop-file-icon-manager.{c, | ||
| Line 217: | Line 216: | ||
| and equal functions for them. URIs are easier due to the availability of string | and equal functions for them. URIs are easier due to the availability of string | ||
| hash and equal functions, I guess. | hash and equal functions, I guess. | ||
| + | |||
| + | We'll have to change the '' | ||
| + | to a '' | ||
| + | '' | ||
| + | if the '' | ||
| === xfdesktop_file_icon_manager_fini() === | === xfdesktop_file_icon_manager_fini() === | ||
| - | TODO | + | The counterpart to the previous function. Same deal. |
| === xfdesktop_file_icon_manager_drag_drop() === | === xfdesktop_file_icon_manager_drag_drop() === | ||
| - | TODO | + | Use ''' |
| + | can then be determined with '' | ||
| + | |||
| + | Use '' | ||
| + | instead of '' | ||
| === xfdesktop_file_icon_manager_drag_data_received() === | === xfdesktop_file_icon_manager_drag_data_received() === | ||
| - | TODO | + | Use '' |
| + | '' | ||
| + | of '' | ||
| + | |||
| + | * http:// | ||
| + | |||
| + | We'll need a bit of custom code to execute the executable target file with the dropped | ||
| + | files as parameters. There are two possibilities: | ||
| + | then we can parse it into a '' | ||
| + | then we can simply spawn it (make sure to pass the file parameters and implement startup | ||
| + | notification). | ||
| + | |||
| + | The code block dealing with jobs needs to be reworked around '' | ||
| + | and the Thunar D-Bus API completely. Maybe danielm' | ||
| === xfdesktop_file_icon_manager_drag_data_get() === | === xfdesktop_file_icon_manager_drag_data_get() === | ||
| - | TODO | + | We need to replace '' |
| + | like '' | ||
| + | '' | ||
| + | Thunar can serve as an inspiration here: | ||
| + | |||
| + | * http:// | ||
| === xfdesktop_file_icon_manager_new() === | === xfdesktop_file_icon_manager_new() === | ||
| - | TODO | + | Change the '' |
| === _XfdesktopFileIconManagerPrivate === | === _XfdesktopFileIconManagerPrivate === | ||
| - | TODO | + | Change the '' |
| + | |||
| + | Replace the '' | ||
| + | the '' | ||
| + | |||
| + | Remove the '' | ||
| === xfdesktop_file_icon_manager_class_init() === | === xfdesktop_file_icon_manager_class_init() === | ||
| - | TODO | + | Alter the " |
| + | using the '' | ||
| === xfdesktop_file_icon_manager_set_property() === | === xfdesktop_file_icon_manager_set_property() === | ||
| - | TODO | + | Change the " |
| + | type made in the class_init function. | ||
| === xfdesktop_file_icon_manager_get_property() === | === xfdesktop_file_icon_manager_get_property() === | ||
| - | TODO | + | Same here, see above. |
| === xfdesktop_file_icon_manager_finalize() === | === xfdesktop_file_icon_manager_finalize() === | ||
| - | TODO | + | Use '' |
| === xfdesktop_file_icon_manager_check_create_desktop_folder() === | === xfdesktop_file_icon_manager_check_create_desktop_folder() === | ||
| + | |||
| + | Replace the code with something similar based on '' | ||
| + | '' | ||
| + | |||
| + | ==== xfdesktop-file-properties-dialog.{c, | ||
| + | |||
| + | Remove entirely. We'll re-use Thunar' | ||
| + | ==== xfdesktop-file-utils.{c, | ||
| + | |||
| + | === xfdesktop_file_utils_interactive_job_ask() === | ||
| + | |||
| + | Remove. We'll no longer implement anything job-related in xfdesktop itself. | ||
| + | |||
| + | === xfdesktop_file_utils_handle_fileop_error() === | ||
| + | |||
| + | Remove as well. | ||
| + | |||
| + | === xfdesktop_file_utils_get_file_kind() === | ||
| + | |||
| + | If this is still needed after refactoring, | ||
| + | and rewrite the checks based on '' | ||
| + | |||
| + | === xfdesktop_file_utils_file_icon_list_to_path_list() === | ||
| + | |||
| + | Replace with a function called '' | ||
| + | that creates a list of '' | ||
| + | |||
| + | === xfdesktop_file_utils_get_fallback_icon() === | ||
| + | |||
| + | No longer needed, remove. '' | ||
| + | |||
| + | === xfdesktop_file_utils_get_file_icon() === | ||
| + | |||
| + | We have two options here: either remove and use '' | ||
| + | load and return a '' | ||
| + | |||
| + | TODO We'll have to investigate where '' | ||
| + | being used and how. | ||
| + | |||
| + | === xfdesktop_file_utils_launch_fallback() === | ||
| + | |||
| + | Remove. We don't use a D-Bus fallback here as we rely on the D-Bus API of Thunar so | ||
| + | hard that we can't provide any real functionality without it anyway. | ||
| + | |||
| + | === xfdesktop_file_utils_display_folder_cb() === | ||
| + | |||
| + | Remove fallback code. | ||
| + | ==== xfdesktop-regular-file-icon.{c, | ||
| + | |||
| + | === _XfdesktopRegularFileIconPrivate === | ||
| + | |||
| + | Replace the '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_peek_info() === | ||
| + | |||
| + | Return a '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_update_info() === | ||
| + | |||
| + | TODO: Replace the '' | ||
| + | to add a '' | ||
| + | |||
| + | === xfdesktop_delete_regular_file_finished() === | ||
| + | |||
| + | Remove. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_finalize() === | ||
| + | |||
| + | Call '' | ||
| + | new '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_tfi_init() === | ||
| + | |||
| + | Update this to Thunarx 2. Need to set '' | ||
| + | and '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_peek_pixbuf() === | ||
| + | |||
| + | Need to rewrite this to make use of '' | ||
| + | or icon factory class like in thunar could be introduced. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_get_allowed_drag_actions() === | ||
| + | |||
| + | Use '' | ||
| + | to query '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_get_allowed_drop_actions() === | ||
| + | |||
| + | See the previous function. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_drag_job_error() === | ||
| + | |||
| + | I don't think we need this any longer. Thunar will display errors for us. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_interactive_job_ask() === | ||
| + | |||
| + | Remove. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_drag_job_finished() === | ||
| + | |||
| + | Remove. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_do_drop_dest() === | ||
| + | |||
| + | Rewrite the code based on '' | ||
| + | to launch executable files. Use a NULL check with '' | ||
| + | replace the call to '' | ||
| + | '' | ||
| + | |||
| + | Instead of implement the Thunar D-Bus client manually we could rely on code | ||
| + | generation. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_peek_tooltip() === | ||
| + | |||
| + | What we need is to read the last modification time, the file type and a human readable | ||
| + | version of the size of the file. There are attributes for the modification time, the | ||
| + | file type and the file size in '' | ||
| + | something similar to [[http:// | ||
| + | for the file size we can use '' | ||
| + | |||
| + | === xfdesktop_regular_file_can_write_parent() === | ||
| + | |||
| + | Here we can simply rewrite the code to use '' | ||
| + | |||
| + | === xfdesktop_delete_file_error() === | ||
| + | |||
| + | Remove. | ||
| + | |||
| + | === xfdesktop_delete_file_finished() === | ||
| + | |||
| + | Remove. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_delete_file() === | ||
| + | |||
| + | Instead of '' | ||
| + | and forget. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_rename_file() === | ||
| + | |||
| + | See previous function. | ||
| + | |||
| + | === xfdesktop_regular_file_icon_peek_info() === | ||
| + | |||
| + | Change the return type to '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_update_info() === | ||
| + | |||
| + | TODO: Check how and where this function is being used and what we can do in order | ||
| + | to replace the '' | ||
| + | |||
| + | === xfdesktop_regular_file_icon_new() === | ||
| + | |||
| + | Add a '' | ||
| + | '' | ||
| + | |||
| + | ==== xfdesktop_special_file_icon.{c, | ||
| + | |||
| + | === _XfdesktopSpecialFileIconPrivate === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_finalize() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_tfi_init() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_get_allowed_drag_actions() === | ||
| + | |||
| + | TODO: we no longer need the thunar-vfs workaround I think. | ||
| + | |||
| + | === xfdesktop_special_file_icon_get_allowed_drop_actions() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_drag_job_error() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_interactive_job_ask() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_drag_job_finished() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_do_drop_dest() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_peek_tooltip() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_peek_info() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_special_file_icon_new() === | ||
| + | |||
| + | TODO | ||
| + | ==== xfdesktop-volume-icon.{c, | ||
| + | |||
| + | === _XfdesktopVolumeIconPrivate === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_finalize() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_tfi_init() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_volume_changed_cb() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_peek_pixbuf() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_peek_label() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_get_allowed_drag_actions() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_get_allowed_drop_actions() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_drag_job_error() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_interactive_job_ask() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_drag_job_finished() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_do_drop_dest() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_peek_tooltip() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_menu_toggle_mount() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_menu_eject() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_populate_context_menu() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_peek_info() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_update_info() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_activated() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_new() === | ||
| + | |||
| + | TODO | ||
| + | |||
| + | === xfdesktop_volume_icon_peek_volume() === | ||
| TODO | TODO | ||