Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
dev:xfdesktop:port-to-gio [2010/10/03 12:58] 85.176.151.17dev:xfdesktop:port-to-gio [2010/10/17 13:01] 217.229.117.83
Line 295: Line 295:
 Replace the code with something similar based on ''GFile'', ''g_file_query_exists()'', Replace the code with something similar based on ''GFile'', ''g_file_query_exists()'',
 ''g_file_query_file_type()'' and ''g_file_make_directory()''. ''g_file_query_file_type()'' and ''g_file_make_directory()''.
 +
 +==== xfdesktop-file-properties-dialog.{c,h} ====
 +
 +Remove entirely. We'll re-use Thunar's properties dialog via its D-Bus API.
 +==== xfdesktop-file-utils.{c,h} ====
 +
 +=== 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, then make it take a ''GFileInfo''
 +and rewrite the checks based on ''GFileInfo'' attributes.
 +
 +=== xfdesktop_file_utils_file_icon_list_to_path_list() ===
 +
 +Replace with a function called ''xfdesktop_file_utils_file_icon_list_to_g_file_list()''
 +that creates a list of ''GFile'' objects.
 +
 +=== xfdesktop_file_utils_get_fallback_icon() ===
 +
 +No longer needed, remove. ''g_file_info_get_icon()'' always returns a valid ''GIcon''.
 +
 +=== xfdesktop_file_utils_get_file_icon() ===
 +
 +We have two options here: either remove and use ''g_file_info_get_icon()'' or make it
 +load and return a ''GdkPixbuf'' from the ''GIcon''
 +
 +TODO We'll have to investigate where ''xfdesktop_file_utils_get_file_icon()'' is 
 +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,h} ====
 +
 +=== _XfdesktopRegularFileIconPrivate ===
 +
 +Replace the ''ThunarVfsInfo *info'' member with ''GFile'' and ''GFileInfo'' members.
 +
 +=== xfdesktop_regular_file_icon_peek_info() ===
 +
 +Return a ''GFileInfo''.
 +
 +=== xfdesktop_regular_file_icon_update_info() ===
 +
 +TODO: Replace the ''ThunarVfsInfo'' parameter with ''GFileInfo''. Maybe we also need
 +to add a ''GFile'' parameter because ''GFileInfo'' contains no path information.
 +
 +=== xfdesktop_delete_regular_file_finished() ===
 +
 +Remove.
 +
 +=== xfdesktop_regular_file_icon_finalize() ===
 +
 +Call ''g_object_unref()'' instead of ''thunar_vfs_info_unref()''. Also release the
 +new ''GFile'' member.
 +
 +=== xfdesktop_regular_file_icon_tfi_init() ===
 +
 +Update this to Thunarx 2. Need to set ''iface->get_file_info'', ''iface->get_filesystem_info''
 +and ''iface->get_location''.
 +
 +=== xfdesktop_regular_file_icon_peek_pixbuf() ===
 +
 +Need to rewrite this to make use of ''g_file_get_icon()'' and tumbler. Maybe a new thumbnailer
 +or icon factory class like in thunar could be introduced.
 +
 +=== xfdesktop_regular_file_icon_get_allowed_drag_actions() ===
 +
 +Use ''GFileInfo'' instead of ''ThunarVfsInfo''. Instead of ''ThunarVfsInfo'' flags we have
 +to query ''GFileInfo'' attributes to determine the readable/writable state of the target icon.
 +
 +=== 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 ''GFileInfo'' and ''GFile''. Use the Thunar D-Bus API
 +to launch executable files. Use a NULL check with ''g_file_get_parent()'' to
 +replace the call to ''thunar_vfs_path_is_root()''. Instead of ''thunar_vfs_move_file()'',
 +''thunar_vfs_copy_file()'' etc. use the Thunar D-Bus API.
 +
 +Instead of implement the Thunar D-Bus client manually we could rely on code
 +generation.
 +
 +=== xfdesktop_regular_file_icon_peek_tooltip() ===
 +
 +TODO
 +
 +=== xfdesktop_regular_file_can_write_parent() ===
 +
 +TODO
 +
 +=== xfdesktop_delete_file_error() ===
 +
 +TODO
 +
 +=== xfdesktop_delete_file_finished() ===
 +
 +TODO
 +
 +=== xfdesktop_regular_file_icon_delete_file() ===
 +
 +TODO
 +
 +=== xfdesktop_regular_file_icon_rename_file() ===
 +
 +TODO
 +
 +=== xfdesktop_regular_file_icon_peek_info() ===
 +
 +TODO
 +
 +=== 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 ''ThunarVfsInfo'' parameter.
 +
 +=== xfdesktop_regular_file_icon_new() ===
 +
 +TODO
 +
 +==== xfdesktop_special_file_icon.{c,h} ====
 +
 +=== _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,h} ====
 +
 +=== _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