2005-09-22 Benedikt Meurer * thunar-vfs/thunar-vfs-*.c: Documentation tweaks. * configure.in.in, docs/reference/Makefile.am, docs/reference/thunar-vfs/: Prepare Thunar-VFS reference manual. * thunar/thunar-list-model.c(thunar_list_model_get_statusbar_text): Use ngettext() for the statusbar text. * thunar/thunar-launcher.c(thunar_launcher_update): Use ngettext() for the "Open in n New Windows" menu label. * thunar/thunar-launcher.c(thunar_launcher_open_new_windows): Use ngettext() for the question whether to open n separate windows. * thunar/thunar-launcher.c(thunar_launcher_open_uris): Use ngettext() to format the error message when opening multiple URIs at once failes. * po/*.po: Update po files. * configure.in.in, examples/open-terminal-here/Makefile.am, thunar-vfs/Makefile.am, thunar/Makefile.am, thunarx/Makefile.am: Don't add debugging and visibility flags to CFLAGS, CPPFLAGS and LDFLAGS, but use PLATFORM_CFLAGS, PLATFORM_CPPFLAGS and PLATFORM_LDFLAGS instead to avoid trouble with certain conftests when checking the distribution. 2005-09-22 Benedikt Meurer * thunar-vfs/thunar-vfs-trash.h: Fix typo. * thunar/thunar-chooser-dialog.c(thunar_chooser_dialog_response): Handle absolute paths properly for custom commands. 2005-09-20 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-application.{c,h}, thunar-vfs/thunar-vfs.symbols: Load the supported mime types for the applications. * thunar-vfs/thunar-vfs-mime-application.{c,h}, thunar-vfs/thunar-vfs.symbols: Add a new constructor thunar_vfs_mime_application_new_from_file() for the special case where a particular file should be loaded by path. * thunar-vfs/thunar-vfs-mime-application.c (thunar_vfs_mime_application_equal): Properly initialize the application variables. * thunar-vfs/thunar-vfs-mime-application.c (thunar_vfs_mime_application_lookup_icon_name): Permit applications to specify absolute paths for the icon name. * thunar-vfs/thunar-vfs-mime-database.{c,h}, thunar-vfs/thunar-vfs.symbols: Extend the mime database by a new method thunar_vfs_mime_database_set_default_application(), which is used to set the default application for a given mime type. * thunar-vfs/thunar-vfs-sysdep.c(_thunar_vfs_sysdep_parse_exec): Fix typo to properly execute applications that require a terminal. * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_applications): Always prepend the default applications for the given mime info to the list returned from this method. * thunar/thunar-favourites-model.c(thunar_favourites_model_save): Use g_mkstemp() to create the temporary file. * thunar-vfs/thunar-vfs-mime-application.{c,h}, thunar-vfs/thunar-vfs.symbols: Add public flags to the mime applications. * thunar-vfs/thunar-vfs-mime-application.c (thunar_vfs_mime_application_new_from_file): Strip off known suffixes for image files if a themed icon is specified. This way we can work-around quite a few broken .desktop files. * thunar-vfs/thunar-vfs-mime-database.{c,h}, thunar-vfs/thunar-vfs.symbols: Support the addition of custom applications using thunar_vfs_mime_database_add_application() in a way compatible to what Nautilus does (which is actually quite a mess). * thunar/thunar-chooser-dialog.{c,h}, thunar/thunar-chooser-model.{c,h}, thunar/Makefile.am: Import the "Open With" dialog based on the two classes ThunarChooserDialog and ThunarChooserModel, which in turn are based on the new functionality provided by Thunar-VFS, and thereby permit the user to associate applications with files (actually mime types) and add new applications. * thunar/thunar-launcher.c: Connect the "Open With Other" action to the new ThunarChooserDialog. * thunar/thunar-favourites-model.c: Document the drag source functions. * README: Add a list of dependencies for Thunar. * TODO: Drop completed items. 2005-09-17 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-database.c: Include exo/exo.h. 2005-09-15 Benedikt Meurer * thunar-vfs/thunar-vfs-volume-bsd.c, thunar-vfs/thunar-vfs-volume-sysv.c: Include thunar-vfs-alias.h. 2005-09-15 Benedikt Meurer * thunar/thunar-progress-dialog.c: Use GObject for the job instead of ExoObject. 2005-09-15 Benedikt Meurer * thunar-vfs/thunar-vfs-interactive-job.{c,h}, thunar-vfs/thunar-vfs-job.{c,h}, thunar-vfs/thunar-vfs-listdir-job.{c,h}, thunar-vfs/thunar-vfs-transfer-job.{c,h}, thunar-vfs/thunar-vfs-unlink-job.{c,h}: Allocate a new main loop for every running job so we can terminate them properly and be sure to run the finalize method in the main thread. This enables us to use arbitrary GObjects within a job without having to worry about the reference counting problem in GLib 2.6. The jobs are GObjects as well now to easily support language bindings and allow us to drop the problematic ExoObject class. 2005-09-14 Benedikt Meurer * thunar/thunar-launcher.c(thunar_launcher_open_files): Use g_object_unref() instead of exo_object_unref(). 2005-09-14 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-application.{c,h}, thunar-vfs/thunar-vfs-mime-database.c, thunar-vfs/thunar-vfs.symbols, thunar/thunar-launcher.c, thunar/thunar-marshal.list, thunar/thunar-open-with-action.c: Turn ThunarVfsMimeApplication into a boxed type. * thunar/thunar-window.c: Apply Daichis patch to make the dynamic actions titles translatable (#1153). 2005-09-13 Benedikt Meurer * thunar-vfs/thunar-vfs-info.c, thunar-vfs/thunar-vfs-mime-database.c, thunar-vfs/thunar-vfs-mime-info.{c,h}, thunar-vfs/thunar-vfs-thumb.c, thunar-vfs/thunar-vfs.symbols: Turn ThunarVfsMimeInfo into a boxed type. * thunar-vfs/thunar-vfs-mime-provider.c: No need to provide fallback implementations for the virtual methods, as both providers implement all virtual methods. * thunar-vfs/thunar-vfs-mime-provider.{c,h}, thunar-vfs/thunar-vfs-mime-cache.c, thunar-vfs/thunar-vfs-mime-legacy.c, thunar-vfs/thunar-vfs-mime-database.c: Derive the MIME providers from GObject instead of ExoObject. * thunar-vfs/thunar-vfs-mime-database.c, thunar-vfs/thunar-vfs-info.c, thunar-vfs/thunar-vfs-thumb.c, thunar-vfs/thunar-vfs.c, thunar/thunar-computer-folder.c, thunar/thunar-file.c, thunar/thunar-open-with-action.c, thunar/thunar-trash-folder.c: Derive ThunarVfsMimeDatabase from GObject instead of ExoObject. 2005-09-13 Benedikt Meurer * thunar-vfs/thunar-vfs-sysdep.h: Add inline atomic operations. * thunar-vfs/thunar-vfs-info.c, thunar-vfs/thunar-vfs-listdir-job.c, thunar-vfs/thunar-vfs-mime-application.c, thunar-vfs/thunar-vfs-mime-database.c, thunar-vfs/thunar-vfs-monitor.c, thunar-vfs/thunar-vfs-sysdep.c, thunar-vfs/thunar-vfs-thumb.c, thunar-vfs/thunar-vfs-transfer-job.c, thunar-vfs/thunar-vfs-trash.c, thunar-vfs/thunar-vfs-uri.{c,h}, thunar-vfs/thunar-vfs.c, thunar-vfs/thunar-vfs.symbols, thunar/thunar-clipboard-manager.c, thunar/thunar-computer-folder.c, thunar/thunar-favourites-model.c, thunar/thunar-favourites-view.c, thunar/thunar-file.c, thunar/thunar-icon-factory.c, thunar/thunar-local-file.c, thunar/thunar-local-folder.c, thunar/thunar-location-buttons.c, thunar/thunar-path-entry.c, thunar/thunar-standard-view.c, thunar/thunar-statusbar.c, thunar/thunar-trash-file.c, thunar/thunar-trash-folder.c: Turn ThunarVfsURI into a boxed type to make language bindings easier and reduce the overhead. Drop the foreign host support code, as we can't use it anyways, since nearly every other existing application that handles file URIs is broken when it comes to file URIs with authorities. Simplify the thunar_vfs_uri_to_string() method again and return only escaped versions of the URI. * thunar/thunar-path-entry.c(thunar_path_entry_set_current_file): Display file URIs for non-UTF8 paths. * tests/test-thunar-vfs-uri.c, tests/test-thunar-vfs-volume-bsd.c: Update the tests. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-info.h, thunar-vfs/thunar-vfs-types.h: Move the system-dependent types to thunar-vfs-types.h. * thunar-vfs/thunar-vfs-info.{c,h}, thunar-vfs/thunar-vfs.symbols: Turn ThunarVfsInfo into a boxed type. 2005-09-11 Benedikt Meurer * thunar/thunar-standard-view.c: Sort the extension actions by their names instead of their labels. * thunar/thunar-extension-manager.c(thunar_extension_class_init): Properly initialize the parent class reference. * examples/open-terminal-here/Makefile.am: Don't specify CLEANFILES explicitly. * thunar/thunar-file.c(thunar_file_get_mime_info): Documentation fix. * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_info_for_file): When generating an application/x-extension- mime type and no valid extension is found for the file name, fallback to the whole filename as suggested by jrb. This way we can make sure that we will never return application/octet-stream from this method and thereby allow the program chooser to set default applications for every mime type used in the file manager. * thunar/Makefile.am: Add $(top_builddir) to INCLUDES. 2005-09-11 Benedikt Meurer * thunar/thunar-standard-view.c: Sort the extension actions by their labels prior to adding them to the UI manager. 2005-09-11 Benedikt Meurer * examples/open-terminal-here/open-terminal-here.c (open_terminal_here_activate): Remove unused debug statement. 2005-09-09 Benedikt Meurer * configure.in.in: Substitute version information. * thunar/thunar-window.c(thunar_window_action_about): Escape the copyright sign. * thunar/thunar-gdk-pixbuf-extensions.{c,h}, thunar/thunar-gtk-extensions.{c,h}, thunar/thunar-desktop-view.c, thunar/thunar-icon-factory.c, thunar/thunar-icon-renderer.c, thunar/thunar-standard-view.c, thunar/thunar-window.c, thunar/Makefile.am: Merge the GdkPixbuf and GTK+ extensions into the thunar namespace. * configure.in.in, thunarx/: Import the initial extensions library. * configure.in.in, docs/Makefile.am, Makefile.am, docs/reference/: Import the reference manual for the extensions library. * thunar/thunar-file.c: Implement the ThunarxFileInfo interface. * thunar/thunar-extension-manager.{c,h}, thunar/Makefile.am: Import the ThunarExtensionManager class. * thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.c: Add support for context menu providers to the standard views. * po/POTFILES.in: Add thunarx/thunarx-property-page.c here. * thunar/thunar-properties-dialog.c: Add support for property page providers here. * Makefile.am, configure.in.in, examples/Makefile.am, examples/open-terminal-here/: Add "Open Terminal Here" menu provider example. 2005-09-06 Benedikt Meurer * thunar/thunar-list-model.c: Don't emit the "row-inserted" and "row-deleted" signals when changing folders unless somebody is actually interested in these signals. * thunar/thunar-list-model.c(thunar_list_model_set_folder): Actually specify the correct path when deleting the previous items from the model. * thunar/thunar-local-folder.c(thunar_local_folder_file_destroy): No need to request a new list from GLib here. * thunar/thunar-local-folder.c(thunar_local_folder_infos_ready): Don't add new files to two lists. Instead add them to one temporary list and append the temporary list to the internal list later. * thunar/thunar-local-file.c(thunar_local_file_get_for_info): Fix an invalid instance cast check. * thunar/thunar-file.c: Manage the file cache directly without using weak references to avoid problems and save memory (weak references are allocated in the GObject dataset). 2005-09-06 Benedikt Meurer * thunar/thunar-local-file.c: Store the VFS monitor handle in the GObject dataset as it's used only for explicit file monitoring (e.g. for the properties dialog). * thunar/thunar-list-model.c(thunar_list_model_get_iter): Skip every second comparison for iter lookups. * icons/, configure.in.in, Makefile.am: Add the Thunar icon. 2005-09-06 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c: Invoke the parent's finalize method, as that will be required for language bindings once we have weak/toggle references for ExoObject. * thunar/thunar-local-file.c(thunar_local_file_rename): Re-register with the VFS monitor if the rename succeeds. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_hash): Don't hash the hostname if it's NULL. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_equal): We don't need to query the hostname string here, as local files will always have host set to NULL. * tests/test-thunar-vfs-uri.c(main): Extend the ThunarVfsURI test. * pixmaps/, Makefile.am, configure.in.in, thunar/thunar-window.c, thunar/Makefile.am: Initial idea for the about dialog logo. 2005-09-05 Benedikt Meurer * thunar-vfs/thunar-vfs-info.{c,h}, thunar-vfs/thunar-vfs-listdir-job.c: Use GList instead of GSList to manage ThunarVfsInfo lists, which increases data locality and decreases memory usage (as there's no need to keep another allocator around any more). * thunar/thunar-computer-folder.c, thunar/thunar-folder.{c,h}, thunar/thunar-list-model.c, thunar/thunar-local-folder.c, thunar/thunar-trash-folder.c: Use GList instead of GSList to manage the list of files for a folder for the same reason. * thunar/thunar-file.{c,h}, thunar/thunar-folder.c, thunar/thunar-local-folder.c, thunar/thunar-local-file.c: ThunarFile is derived from GObject now, instead of GtkObject. * thunar/thunar-list-model.c: No need to implement GtkTreeDragDest, as that's handled in ThunarStandardView. 2005-09-05 Benedikt Meurer * thunar/thunar-launcher.c, thunar/thunar-list-model.c, thunar/thunar-open-with-action.c, thunar/thunar-properties-dialog.c: We don't need to check the result of thunar_file_get_mime_info() any more as it's garantied to be a valid ThunarVfsMimeInfo. 2005-09-05 Benedikt Meurer * thunar/thunar-computer-folder.c, thunar/thunar-file.c, thunar/thunar-list-model.c: Always return a valid ThunarVfsMimeInfo from the get_mime_info() method. 2005-09-05 Benedikt Meurer * thunar/thunar-list-model.{c,h}: Drop the unused icon columns from the ThunarListModel. 2005-09-04 Benedikt Meurer * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Generate the colorized/spotlighted version of the icon only if the icon area is affected by expose event. 2005-09-04 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c(escape): And of course, we need to escape the '+' and '%' characters in URIs. 2005-09-04 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c(escape): Also escape '&' in URIs. 2005-09-04 Benedikt Meurer * thunar-vfs/thunar-vfs-thumb.{c,h}: Implement the store thumbnail functionality. * thunar-vfs/thunar-vfs-sysdep.c, thunar-vfs/thunar-vfs-trash.c, thunar-vfs/thunar-vfs-uri.{c,h}, thunar-vfs/thunar-vfs.symbols, thunar/thunar-clipboard-manager.c, thunar/thunar-favourites-model.c, thunar/thunar-favourites-view.c, thunar/thunar-file.c, thunar/thunar-location-buttons.c, thunar/thunar-path-entry.c, thunar/thunar-standard-view.c, thunar/thunar-statusbar.c: Improve the thunar_vfs_uri_to_string() method to support UTF-8 URI strings and escaping of URIs, which is required for proper Drag'n'Drop interaction with other applications. 2005-09-04 Benedikt Meurer * thunar/thunar-file.{c,h}: Store the watch count in the GObject data list, as it seldomly used. * thunar/thunar-file.c(thunar_file_load_icon): Try to load the "loading" icon directly instead of checking the icon theme first. * thunar/thunar-standard-view.c: Revert the "num-files" special handling as it leads to a bug where the actions aren't updated properly when changing directories. * thunar-vfs/thunar-vfs-sysdep.h: Fix typo. * thunar-vfs/thunar-vfs-transfer-job.c, thunar-vfs/thunar-vfs-unlink-job.c: Unlink thumbnails after removing a file to reduce the junk in ~/.thumbnails/. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_get_md5sum): Escape the path properly, so the thumbnail paths we determine are equal to those of other file managers. 2005-09-04 Benedikt Meurer * thunar/Makefile.am: Add the thumbnail frame source image to the distribution. * thunar/thunar-icon-factory.c: Add some more cleverness in determining whether or not to add a frame to a thumbnail. 2005-09-03 Benedikt Meurer * thunar-vfs/thunar-vfs.symbols, thunar-vfs/thunar-vfs-mime-info.{c,h}, thunar-vfs/thunar-vfs-mime-database.c: Determine media and subtype of a ThunarVfsMimeInfo on-demand. * thunar-vfs/thunar-vfs-info.c(thunar_vfs_info_new_for_uri): Move the .desktop file handling to the regular file case. * thunar-vfs/thunar-vfs-thumb.{c,h}, thunar-vfs/thunar-vfs.symbols, thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs.h: Import the ThunarVfsThumbFactory class, which implements the freedesktop thumbnail management specification. * thunarx/thunarx-gdk-pixbuf-extensions.{c,h}: Add new helper function thunarx_gdk_pixbuf_frame(), which is used to embed an arbitrary image into a frame (e.g. for thumbnails). * thunar/thunar-favourites-model.c, thunar/thunar-file.c, thunar/thunar-icon-factory.{c,h}, thunar/thunar-icon-renderer.c, thunar/thunar-list-model.c, thunar/thunar-location-buttons.c, thunar/thunar-window.c: Make sure we don't leak the default icon factory instance on exit. * thunar/Makefile.am, thunar/thunar-thumbnail-frame.{h,png}: Import the thumbnail frame image used by Nautilus. * thunar/thunar-icon-factory.{c,h}: Add thumbnail loading support to the icon factory and reorganize the internals a bit. * thunar/thunar-file.c: Load thumbnails for regular if possible. 2005-09-02 Benedikt Meurer * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Don't scale the icon if it fits into the cell area. 2005-09-02 Benedikt Meurer * thunar/thunar-text-renderer.c: Select the text prior to the last dot when starting to edit a cell. * thunar/thunar-properties-dialog.c(thunar_properties_dialog_update): Place input focus on the name entry widget and select the text prior to the last dot. 2005-09-02 Benedikt Meurer * thunar/thunar-open-with-action.c(thunar_open_with_action_activated): Remove obsolete code. * thunar/thunar-standard-view.c (thunar_standard_view_button_release_event): Don't popup the context menu using the just released button, as that would render the items unclickable. 2005-09-02 Benedikt Meurer * thunar/thunar-standard-view.c: Avoid going through the selection changed handling whenever the number of files in a model changes, as the only thing that needs updating here is the statusbar text. * thunar-vfs/thunar-vfs-mime-cache.c (thunar_vfs_mime_cache_lookup_parents): Fix the offset from which the parent mime type name is read. * thunar-vfs/thunar-vfs-mime-cache.c(cache_node_lookup_suffix): Optimize the tail-recursive suffix lookup. * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_info_for_file): Use fast stack memory for the extattr and content lookups. 2005-09-02 Benedikt Meurer * thunar/thunar-icon-factory.c(thunar_icon_factory_lookup_icon): Add support to load icons from absolute paths. * thunar/thunar-local-file.c(thunar_local_file_get_icon_name): Allow the VFS layer to pass absolute paths for the file icon hint. This is required for some .desktop files, that specify absolute icon paths instead of themed icon names. * thunar/thunar-location-buttons.c(thunar_location_buttons_make_button): Don't permit location buttons to grab the focus. 2005-09-02 Benedikt Meurer * thunar/thunar-standard-view.c: Be sure to override the default drag-data-delete handler of ExoIconView/GtkTreeView. * thunar/thunar-icon-view.c(thunar_icon_view_get_path_at_pos): The exo_icon_view_get_path_at_pos() method really accepts widget coordinates now, like GtkTreeView does, so we don't need to translate the widget coordinates to icon window coordinates first. 2005-09-02 Benedikt Meurer * thunar/thunar-standard-view.c(thunar_standard_view_get_dest_actions): Set the drop-file icon renderer property only if we have a valid drag action. * thunar/thunar-local-file.c(thunar_local_file_accepts_uri_drop): Do not accept directory drops if the directory isn't writable. 2005-09-02 Benedikt Meurer * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Prelight drop destination icons. 2005-09-01 Benedikt Meurer * thunar/thunar-computer-folder.c, thunar/thunar-desktop-view.c, thunar/thunar-favourites-model.c, thunar/thunar-file.{c,h}, thunar/thunar-list-model.c, thunar/thunar-local-file.c, thunar/thunar-location-buttons.c, thunar/thunar-path-entry.c, thunar/thunar-properties-dialog.c, thunar/thunar-standard-view.c, thunar/thunar-statusbar.c, thunar/thunar-trash-file.c, thunar/thunar-trash-folder.c, thunar/thunar-window.c: Add an icon state parameter to the ThunarFile icon loader, which allows to grab icons for a certain state from a given file. * thunar/thunar-file.c: Drop the cached icon, as the ThunarIconFactory does this pretty well already and we don't need to keep an additional cached version of every file's icon. * thunar/thunar-icon-renderer.c, thunar/thunar-standard-view.c: Use the drop icon for the views while dragging over an item/row in the view. 2005-09-01 Benedikt Meurer * thunar-vfs/thunar-vfs-listdir-job.c: Fix the pre-sorting of files, so upper layers always receive the info list sorted by name. * thunar/thunar-details-view.c(thunar_details_view_button_press_event), thunar/thunar-icon-view.c(thunar_icon_view_button_press_event): Don't popup the context menu immediately on right-clicks, but schedule the menu popup using thunar_standard_view_queue_popup(). * thunar/thunar-standard-view.{c,h}: Add the ability to start a drag operation using the right mouse button. * thunar/thunar-file.{c,h}: Add virtual method accepts_uri_drop() and method thunar_file_accepts_uri_drop(), which are used to determine whether it is possible to drop a certain list of ThunarVfsURIs on a given ThunarFile (using a set of actions specified by the drag source). * thunar/thunar-local-file.c: Implement the accepts_uri_drop() method for local file handling. * thunar/thunar-progress-dialog.c(thunar_progress_dialog_ask), (thunar_progress_dialog_error): Be sure to display the progress dialog prior to opening an error or question dialog. * thunar-vfs/thunar-vfs-info.c(thunar_vfs_info_rename): Fix gcc4 warning. * thunar-vfs/thunar-vfs.symbols: Add missing thunar_vfs_rename symbol. * thunar/thunar-favourites-model.c(thunar_favourites_model_get_value): Work-around a compiler bug with newer gcc versions. * thunar/thunar-standard-view.{c,h}: Turn ThunarStandardView into a valid drop site with support for text/uri-list drops. * thunar/Makefile.am, thunar/thunar-dnd.{c,h}: Add DnD helper functions, which can be used by other modules as well (e.g. for the desktop view). 2005-08-30 Benedikt Meurer * thunar/thunar-favourites-model.c: Drop the icon caching from the favourites model as it causes trouble with icon theme changing and is unnecessary since the ThunarIconFactory already performs quite well at caching icons. * thunar/thunar-location-buttons.c: Reload the icons for the location buttons when the active icon/gtk theme is changed. 2005-08-30 Benedikt Meurer * thunar/thunar-local-file.c(thunar_local_folder_infos_ready): Do not compare the newly inserted files, as they are garantied to be different from each other. * thunar-vfs/thunar-vfs-info.c(thunar_vfs_info_matches): Move the URI comparison to the end as that takes most of the time. * thunar-vfs/thunar-vfs-listdir-job.c(thunar_vfs_listdir_job_execute): Pre-sort the names in ascending order to get faster inserts for the usual case where the user sorts its views by name. 2005-08-30 Benedikt Meurer * thunar/thunar-properties-dialog.c: Adjust the "editability" of the name entry widget depending on whether the file can be renamed. * thunar-vfs/thunar-vfs-info.{c,h}: Add methd thunar_vfs_info_rename() which supports renaming of regular files and .desktop files. * thunar/thunar-file.{c,h}: Add _thunar_file_cache_rename() to support ThunarFile implementations that provide the thunar_file_rename() method. * thunar/thunar-local-file.c: Add support to rename local files based on thunar_vfs_info_rename(). * thunar/thunar-properties-dialog.c: Allow users to rename files using the name entry widget. * thunar/thunar-list-model.c(thunar_list_model_file_changed): Re-sort the model as the file may have changed its name. * thunar/thunar-list-model.c(thunar_list_model_sort): Avoid the GArray overhead and try to use stack memory if possible. * thunar/thunar-standard-view.h, thunar/thunar-details-view.c, thunar/thunar-icon-view.c: Add virtual methods set_cursor() and scroll_to_path() to the ThunarStandardView class and implement them in ThunarDetailsView and ThunarIconView. * thunar/thunar-standard-view.c: Implement the "Rename" action based on the inline editing capabilities of ThunarTextRenderer. 2005-08-30 Benedikt Meurer * thunar/thunar-favourites-view.c(thunar_favourites_view_init): Use auto-sizing for the favourites column. * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.c: Add support for Gtk+ 2.8 shortcuts, which allow the user to assign aliases with mutable shortcuts. 2005-08-29 Benedikt Meurer * thunar/thunar-details-view.c, thunar/thunar-icon-view.c, thunar/thunar-standard-view.{c,h}: Turn the name cell renderer into a property of the ThunarStandardView class, so related functionality can be easily shared between the icon and details views. * thunar/thunar-standard-view-ui.xml, thunar/thunar-window-ui.xml: Add placeholder for alteration actions to the "Edit" menu in the thunar window and fill this placeholder with the "Rename" action in the standard view. In addition, add the "Rename" action to the file context menu. * thunar/thunar-file.{c,h}: Add rename functionality to the ThunarFile interface. * thunar/thunar-standard-view.c(thunar_standard_view_selection_changed): Enable the "Rename" action if exactly one file is selected and that file is renameable. 2005-08-29 Benedikt Meurer * thunar/thunar-favourites-model.c: Use GLib linked lists to manage the favourites. * thunar/thunar-favourites-model.c: Monitor the bookmarks file for changes. 2005-08-29 Benedikt Meurer * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Add side pane selection to the View menu. 2005-08-29 Benedikt Meurer * configure.in.in: Check for Intel MMX Intrinsics header. * thunarx/thunarx-gdk-pixbuf-extensions.c: Use Intel MMX Intrinsics to speed up pixbuf operations, if supported by the compiler (the -mmmx option in gcc). * thunar/thunar-window.c(thunar_window_action_location_bar_changed): Apply the location bar patch submitted by Jeffs Franks in a slightly modified form. 2005-08-28 Benedikt Meurer * po/POTFILES.in: Remove thunar-vfs-mime.{c,h}. * po/*.po: Update .po files. 2005-08-28 Benedikt Meurer * thunar/thunar-list-model.c(thunar_list_model_sort): Use temporary storage on the stack, rather than the heap. * thunar/thunar-list-model.c: Derive from GObject rather than GtkObject, as we don't need GtkObject's features anymore in ThunarListModel. * thunar/thunar-list-model.c(thunar_list_model_class_init): Use EXO_PARAM_* macros rather than G_PARAM_*. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_equal): Add a check to see whether the compared references refer to the same object, which can happen quite often (in case of a positive match). * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_list_to_string): Prealloc a buffer of 512 bytes for the URI list string representation. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_list_free): Use g_list_foreach() to unref the URIs. * thunar/thunar-local-file.c(thunar_local_file_get_emblem_names): Properly verify the parent uri when testing for the Desktop directory. * thunar-vfs/thunar-vfs.{c,h}, thunar-vfs/Makefile.am: Drop the thunar_vfs_mime_info_get() and thunar_vfs_mime_info_get_for_file() methods, and merge the thunar-vfs-mime initialization into the thunar-vfs initialization routines. 2005-08-28 Benedikt Meurer * thunar/thunar-file.{c,h}, thunar/thunar-local-file.c, thunar/thunar-standard-view.c: Rename can_execute(), can_read() and can_write() to is_executable(), is_readable() and is_writable() to get consistent naming. * thunar-vfs/thunar-vfs-info.{c,h}: Add THUNAR_VFS_FILE_FLAGS_EXECUTABLE to the ThunarVfsFileFlags, which will be set if a ThunarVfsInfo can be executed, either as regular binary or as .desktop file. * thunar-vfs/thunar-vfs-mime-application.c, thunar-vfs/thunar-vfs-sysdep.{c,h}: Move the Exec parsing code from ThunarVfsMimeApplication to thunar-vfs-sysdep, so it can be used by other modules as well. * thunar-vfs/thunar-vfs-info.{c,h}, thunar-vfs/thunar-vfs.symbols: Add new method thunar_vfs_info_execute(), which is used to execute files with a list of URIs. These method can handle both regular executable files as well as .desktop files. * thunar/thunar-file.{c,h}, thunar/thunar-launcher.c, thunar/thunar-local-file.c: Add support to execute files that are marked as executable by the ThunarVfsInfo module. * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_info_locked), (thunar_vfs_mime_database_get_infos_for_info_locked): Be sure to always unalias MIME-types prior to returning them from the mime database instance. This way we don't need to care for unaliasing when determining the MIME-type comment or MIME-type icon. * thunar-vfs/thunar-vfs-mime-database.{c,h}, thunar-vfs/thunar-vfs.symbols: Add new method thunar_vfs_mime_database_get_infos_for_info() to the public API, to allow other components to access the subclassing information. * FAQ, Makefile.am: Add initial items for the list of frequently asked questions. * TODO: Remove obsolete items. 2005-08-27 Benedikt Meurer * thunar-vfs/thunar-vfs-info.{c,h}: Add support to pass hints from the ThunarVfsInfo to the upper layers. Use these hints to pass icon and name information from .desktop files. * thunar-vfs/thunar-vfs.symbols: Add new symbols. * thunar/thunar-local-file.c: Use the new hints to display appropriate names and icons for .desktop files. 2005-08-27 Benedikt Meurer * thunar-vfs/thunar-vfs-trash.c: Use ThunarVfsMonitor instead of polling the trash files/ directories manually. 2005-08-27 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-legacy.c: Add support for MIME-type aliases and parents to the legacy implementation. * configure.in.in, thunar-vfs/thunar-vfs-mime-database.c: Add support for determining the MIME type from an extended attribute on SunOS and Linux. 2005-08-22 Benedikt Meurer * thunar/thunar-path-entry.c: Add drag support for the path entry icon. * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Add view selection to the "View" menu. * thunar/thunar-icon-view.c(thunar_icon_view_button_press_event): Use gtk_accelerator_get_default_mod_mask() rather than hardcoding GDK_CONTROL_MASK. * thunar/thunar-details-view.c(thunar_details_view_button_press_event): Add support to open the folder menu by right-clicking on an empty area in the tree view. * thunar/thunar-details-view.c: Work-around the problem that GtkTreeView resets the search column whenever the model changes. * thunar/thunar-standard-view.c(thunar_standard_view_grab_focus): Properly forward any grab-focus request to the child view. * thunar/thunar-marshal.list, thunar/Makefile.am, thunar/thunar-text-renderer.c: Add initial cell editing support to the text renderer. We'll need a multiline entry widget for the icon view. * thunar/thunar-details-view.c, thunar/thunar-icon-view.c, thunar/thunar-standard-view.c, thunar/thunar-standard-view.h: Add drag source support to the standard views. * thunar/thunar-list-model.c: Don't implement GtkTreeDragSource, as that's handled by ThunarStandardView now. 2005-08-20 Benedikt Meurer * thunar-vfs/thunar-vfs-job.c(thunar_vfs_job_emit): Use G_VA_COPY to copy variable argument lists in a portable manner. 2005-08-19 Benedikt Meurer * thunar/thunar-standard-view.{c,h}: Allow derived classes to add custom actions to the user interface. * thunar/thunar-standard-view-ui.xml, thunar/thunar-window-ui.xml: Add support for custom view item actions. * thunar/Makefile.am, thunar/thunar-icon-view-ui.xml, thunar/thunar-icon-view.c: Add support to arrange items within the icon view. * thunar/thunar-file.h, thunar/thunar-local-file.c: Provide an emblem for the desktop folder in regular file listings. * thunar/thunar-icon-view.c(thunar_icon_view_init): Add 3 pixel padding in vertical direction to the icon cell, to allow better placement of the emblems. * thunar/thunar-icon-renderer.c(thunar_icon_renderer_render): Improve the emblem placement and drawing code to work-around issues with most icon themes, that don't provide emblems in the appropriate sizes. 2005-08-19 Benedikt Meurer * thunar/thunar-statusbar.c: Drop the dependency on X11. * thunar/thunar-desktop-window.c: Include explicitly (since that's no longer done by libexo -> libxfcegui4). 2005-08-18 Benedikt Meurer * thunarx/thunarx-gdk-pixbuf-extensions.{c,h}: Add new function thunarx_gdk_pixbuf_spotlight(), which is used to create a special icon for the Gtk prelight state. * thunar/thunar-icon-renderer.{c,h}, thunar/Makefile.am, thunar/thunar-details-view.c, po/POTFILES.in: Rename ThunarDetailsViewIconRenderer to ThunarIconRenderer, as it will also be used by the icon view now. * thunar/thunar-text-renderer.{c,h}, thunar/Makefile.am, thunar/thunar-details-view.c, po/POTFILES.in: Rename ThunarDetailsViewTextRenderer to ThunarTextRenderer, as it will also be used by the icon view now. * thunar/thunar-icon-renderer.{c,h}, thunar/thunar-text-renderer.{c,h}: Add required functionality to use these renderers with the new ExoIconView. * thunar/thunar-icon-view.c: Update to use the new ExoIconView class, with the modified ThunarIconRenderer and ThunarTextRenderer. * thunar/thunar-launcher.h, thunar/thunar-open-with-action.h: Use G_GNUC_MALLOC instead of EXO_GNUC_MALLOC. * thunar/thunar-window.c(thunar_window_init): Use the icon view by default for testing now. * configure.in.in: Bump version to 0.1.2. * thunar/thunar-window.c(thunar_window_action_about): Switch to GtkAboutDialog. 2005-08-18 Benedikt Meurer * thunar/thunar-list-model.c(thunar_list_model_files_added): Speed up inserts if the order of the files match the current sort order, which is usually the case with sorting by name. 2005-08-18 Benedikt Meurer * thunar/thunar-list-model.c(thunar_list_model_set_folder): Speed up the removal of existing rows when changing folders. It's now O(n) instead of O(n^2). * thunar/thunar-list-model.c: The memory chunk used for the rows is now an object attribute, rather than a global variable. 2005-08-11 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-application.c (thunar_vfs_mime_application_new_from_desktop_id): Use "Name" instead of "GenericName" for the application's name, as the "Name" usually includes the project name in addition to the functional description of the application, which provides better results than having several applications named "Text Editor", etc. * configure.in.in: Prefer Gamin over FAM to avoid the C++ dependency if possible. Besides that, Gamin offers several other advantages over FAM, which makes it better suitable to be used in Thunar. * po/POTFILES.in: Add missing source files here, and remove obsolete files. * Thunar.desktop.in, Makefile.am, configure.in.in, po/POTFILES.in: Add desktop file for Thunar. 2005-08-10 Benedikt Meurer * thunar-vfs/thunar-vfs-jobs.{c,h}, thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs.{c,h}: Merge thunar-vfs-jobs.[ch] into thunar-vfs.[ch]. * thunar-vfs/thunar-vfs-mime-database.c, thunar/thunar-local-folder.c, thunar-vfs/thunar-vfs-monitor.{c,h}, thunar/thunar-local-file.c: Rename thunar_vfs_monitor_get() to thunar_vfs_monitor_get_default(). * thunar-vfs/thunar-vfs-mime-database.{c,h}, thunar-vfs/thunar-vfs-mime.c, thunar-vfs/thunar-vfs-info.c, thunar/thunar-launcher.c, thunar/thunar-open-with-action.c, thunar/thunar-trash-folder.c: Rename thunar_vfs_mime_database_get() to thunar_vfs_mime_database_get_default(). * thunar-vfs/, thunar/Makefile.am, tests/Makefile.am, configure.in.in: Turn libthunar-vfs into a shared library, so we can use it in other applications/plugins as well. 2005-08-10 Benedikt Meurer * configure.in.in: Bump version to 0.1.1. * thunar-vfs/thunar-vfs-mime-info.h: Add list handling method thunar_vfs_mime_info_list_free(). * thunar-vfs/thunar-vfs-mime-info.c(thunar_vfs_mime_info_get_comment): Automatically generate a comment for 'application/x-extension-' types if no comment is found on the disk. * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_info_for_file): Automatically generate an 'application/x-extension-' type on the fly if all other checks fail and the file name has an extension. * thunar-vfs/thunar-vfs-mime-cache.c, thunar-vfs/thunar-vfs-mime-legacy.c, thunar-vfs/thunar-vfs-mime-database.c, thunar-vfs/thunar-vfs-mime-provider.{c,h}: Add provider methods to unalias mime types and to determine the parents of a given mime type. Use these information to query additional MIME applications. 2005-08-10 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-database.c (thunar_vfs_mime_database_get_default_application): Fall back to the first available application if no explicit default application is set by the user. * thunar/thunar-file.{c,h}, thunar/thunar-launcher.c: Rename thunar_file_list_dup() to thunar_file_list_copy() to get consistent naming. * thunar-vfs/thunar-vfs-mime-application.{c,h}: Add support methods required for hashing. * thunar-vfs/thunar-vfs-mime-application.{c,h}: Add methods to launch an application on a given list of URIs on a specific screen. Implement the Desktop Entry Specification 0.9.4, except for startup notification support, which will be added soon. * thunar/thunar-launcher.c, thunar/thunar-open-with-action.c: Allow users to open files using the newly added ThunarVfsMimeApplication functionality. 2005-08-10 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-database.c: According to the specification the defaults.list may specify more than one desktop-id per MIME type, where the first available application should be used. 2005-08-10 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-info.{c,h}: Add support methods required for hashing. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-mime-application.{c,h}, thunar-vfs/thunar-vfs-mime-database.{c,h}: Add initial MIME application support to the MIME database. * thunar/thunar-launcher.{c,h}: Add ThunarLauncher class, which provides actions to launch files using appropriate MIME applications. The ThunarLauncher class will also be used by the desktop view. * thunar/thunar-open-with-action.{c,h}: Add special action class ThunarOpenWithAction, which provides a GtkAction implementation, that - when used as menu - displays a submenu with all available MIME applications for a given file. * thunar/thunar-window-ui.xml: Add a placeholder to include the launcher support in the "File" menu on the main menu bar. * thunar/thunar-standard-view.c, thunar/thunar-standard-view-ui.xml, thunar/thunar-icon-view.c, thunar/thunar-details-view.c: Add file launcher support based on the new ThunarLauncher class. * thunar/thunar-file.{c,h}: Add methods to handle lists of ThunarFile items easily. * thunar/thunar-icon-factory.c(thunar_icon_factory_load_icon): Handle the case of passing a NULL or empty name properly. 2005-08-07 Benedikt Meurer * configure.in.in, po/ja.po, THANKS: Add initial japanese translations, thanks to Daichi Kawahata . This fixes #1004. 2005-08-06 Benedikt Meurer * thunar-vfs/thunar-vfs-mime-legacy.c: Add support for the various globs to the legacy mime provider. * thunar-vfs/thunar-vfs-mime-database.c(thunar_vfs_mime_database_init): Read atleast 64 bytes from every file to reliably detect text files. * thunar-vfs/thunar-vfs-mime-database.c: When looking up the MIME info for a given file, and the magic check doesn't return a match, we'll return "application/x-executable" for every regular file that is atleast 1 byte in size and has the executable bit set, as this is more precise than "application/octet-stream". 2005-08-06 Benedikt Meurer * configure.in.in: Use AC_TRY_LINK() to avoid trouble with funky systems. 2005-08-06 Benedikt Meurer * configure.in.in: Add some autoconf magic to get posix_madvise() working with glibc. 2005-08-06 Benedikt Meurer * thunar-vfs/thunar-vfs-info.{c,h}: Determine the display_name for each file info. * thunar-vfs/thunar-vfs-info.c(thunar_vfs_info_new_for_uri): Hand the display name to thunar_vfs_mime_database_get_info_for_file(), so we don't need to determine it again. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_get_display_name): Don't use g_filename_display_basename(), because it may returned a somehow translated file name. * thunar/thunar-local-file.c: Use the display_name supplied with the ThunarVfsInfo rather than determining it again. 2005-08-06 Benedikt Meurer * configure.in.in, thunar-vfs/thunar-vfs-mime-database.c: Add support to query the MIME type stored in the extended attribute "user.mime_type" as specified in the Shared MIME-info spec. * docs/design/mime.xmi, docs/design/Makefile.am: Import description for the ThunarVFS mime module. * thunar-vfs/thunar-vfs-mime-cache.c(thunar_vfs_mime_cache_lookup_glob): Use correct offset when iterating over the GlobEntries. * thunar-vfs/thunar-vfs-mime-cache.c (thunar_vfs_mime_cache_lookup_literal): Fix the offset returned for the MIME-type name. 2005-08-06 Benedikt Meurer * configure.in.in: Check for fnmatch.h and sys/mman.h. Add checks for working mmap and posix_madvise. * configure.in.in, thunar-vfs/xdgmime/, thunar-vfs/Makefile.am: Drop the xdgmime library. * thunar-vfs/thunar-vfs-mime-cache.{c,h}, thunar-vfs/thunar-vfs-mime-database.{c,h}, thunar-vfs/thunar-vfs-mime-info.{c,h}, thunar-vfs/thunar-vfs-mime-legacy.{c,h}, thunar-vfs/thunar-vfs-mime-provider.{c,h}, thunar-vfs/thunar-vfs-mime.{c,h}: Import thread-safe replacement for the xdgmime library. Works only with very recent shared-mime-info right now. * thunar-vfs/Makefile.am: Add new files to the build framework. * thunar-vfs/thunar-vfs-job.c, thunar-vfs/thunar-vfs-mime.c, thunar-vfs/thunar-vfs.c, thunar-vfs/thunar-vfs.h, thunar/main.c: Add ability to shutdown the VFS library. 2005-08-04 Benedikt Meurer * configure.in.in: Add "r" in front of the revision for the version string. * thunar-vfs/thunar-vfs-job.{c,h}, thunar-vfs/thunar-vfs-listdir-job.c, thunar-vfs/thunar-vfs-mime.{c,h}, thunar-vfs/thunar-vfs-unlink-job.c, thunar-vfs/thunar-vfs-uri.{c,h}, thunar-vfs/thunar-vfs-transfer-job.c, thunar/thunar-progress-dialog.c: Use ExoObject as base class for ThunarVfsJob, ThunarVfsMimeInfo and ThunarVfsUri, which were fun- damental types previously. ExoObject does exactly what we need here, without any additional overhead. In particular, the ref- counting is atomic, even with GLib < 2.7.4. * configure.in.in: Connect greek translations, previously committed by Stavros Giannouris . * thunar/thunar-file.c: Use exo-noops for the defaults where possible instead of providing several fallback implementations. * configure.in.in: Bump version number to 0.1.0. 2005-08-03 Benedikt Meurer * thunar/main.c(main): Connect the translation domain and setup the application name. * thunar/thunar-standard-view.c(thunar_standard_view_init): Setup the translation domain for the action group. * thunar/thunar-window.c(thunar_window_init): Setup the translation domain for the action group. * po/hu.po, configure.in.in, THANKS: Add hungarian translations, thanks to Szervác Attila . 2005-08-03 Benedikt Meurer * thunar/thunar-folder.c(thunar_folder_files_removed): Update docu- mentation. * thunar/thunar-local-folder.c(thunar_local_folder_file_destroy): In- voke the "files-removed" signal when a file in this folder is de- stroyed. * thunar/thunar-list-model.c: Do not connect the "destroy" signal of ThunarFile anymore, but instead we rely on the folder to emit "files-removed" appropriately. * thunar/thunar-list-model.c(thunar_list_model_class_init): Increase the number of preallocated rows. * po/, Makefile.am, configure.in.in: Add i18n support. 2005-08-03 Benedikt Meurer * thunar/thunar-details-view-text-renderer.c: Calculating the approxi- mate sizes based on the font metrics requires way too much additional data memory (because Pango loads the whole fontset for this calcu- lation), so we base our calculation on a sample text instead. 2005-08-03 Benedikt Meurer * thunar-vfs/thunar-vfs-job.c(thunar_vfs_job_emit_valist): Lower the Job signal priority to increase the responsiveness of the user interface. 2005-08-03 Benedikt Meurer * thunar/thunar-details-view-text-renderer.{c,h}: Fast text cell renderer, which provides less accurate cell area size calculation. * thunar/Makefile.am: Add ThunarDetailsViewTextRenderer to the build framework. * thunar/thunar-details-view.c: Use the new text renderer. 2005-08-02 Benedikt Meurer * thunar-vfs/thunar-vfs-monitor.c: Implement the thunar_vfs_monitor_feed() method in a reentrant way. 2005-08-02 Benedikt Meurer * thunar/thunar-list-model.c: Add sort_by_name() calls missing from the initial patch. 2005-08-02 Benedikt Meurer * thunar/thunar-local-file.c(thunar_local_file_monitor): Actually reload the file info when the VFS monitor notices a change. * thunar/thunar-list-model.c: Apply Jens Luedickes patch to add sub-sorting on the filename. * thunar-vfs/thunar-vfs-monitor.c: Add missing header files. * configure.in.in: Drop the kevent related checks. 2005-08-02 Benedikt Meurer * configure.in.in: Add check for the FAM/Gamin library. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-monitor.{c,h}: Redesign the VFS monitor to use FAM if available. It also provides an interface to feed the monitor with external events, which will be used by the VFS jobs, which know for sure that they changed/created/deleted a file. The interface is not yet implemented. * thunar/thunar-file.{c,h}: Add a virtual method reload(), which allows external entities to trigger a reload on a ThunarFile. * thunar/thunar-local-file.c: Implement the reload() method. * thunar/thunar-local-file.c, thunar/thunar-local-folder.c: Add support for the new VFS monitor. 2005-08-01 Benedikt Meurer * thunar/thunar-list-model.{c,h}: Add new method thunar_list_model_get_paths_for_pattern(), which is used to generate a list of GtkTreePaths for all rows matching a certain pattern. * thunar/thunar-details-view.c, thunar/thunar-icon-view.c, thunar/thunar-standard-view.h: Add virtual methods select_all(), unselect_all() and select_path(), and implement them in the details and icon views. * thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.c, thunar/thunar-window-ui.xml: Add actions "select-all" and "select-by-pattern" to the "Edit" menu. * thunar-vfs/thunar-vfs-trash.c: Cosmetic fix. 2005-07-31 Benedikt Meurer * thunar/thunar-local-folder.c: Properly disconnect all signal handlers prior to releasing the job. * TODO: Remove completed items. Add note about the copy&paste behaviour within the same folder. * thunar-vfs/thunar-vfs-transfer-job.c (thunar_vfs_transfer_job_insert_base): Fix the check whether source and target directory are equal. * thunar-vfs/thunar-vfs-user.c(thunar_vfs_user_local_class_init): Fix a crash, where the thunar_vfs_local_user_parent_class wasn't initia- lized properly. * thunar/thunar-location-buttons.c: Allow users to automatically enter directories while dragging a text/uri-list over one of the folder buttons. 2005-07-31 Benedikt Meurer * thunar-vfs/thunar-vfs-transfer-job.c: Include since we use the time() library call. g_chmod() will be introduced with GLib 2.8.0, so adjust the check. 2005-07-31 Benedikt Meurer * thunar/thunar-clipboard-manager.c (thunar_clipboard_manager_contents_received): Properly clear the CLIPBOARD selection after a paste on "cutted data". Manually trigger an "owner-changed" after a successfully initiating the paste operation if either the Xserver or the GTK+ version doesn't support the XFixes extension. * thunar-vfs/thunar-vfs-transfer-job.c, configure.in.in: Add work-around for systems that lack the lchmod() system call. * thunar/thunar-standard-view.{c,h}: Query all actions from the group when initializing the view to speed up access later. * thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.c: Add a "paste-into-folder" action, which is only available from the context menu. * autogen.sh, configure.in.in: Adopt the version numbering scheme from libexo and ditch the date. 2005-07-31 Benedikt Meurer * thunar/thunar-clipboard-manager.{c,h}: Implement paste support based on the recent API additions to ThunarApplication. * thunar/thunar-standard-view.c(thunar_standard_view_action_paste): Implement the paste action based on the new functionality in ThunarClipboardManager. 2005-07-31 Benedikt Meurer * thunar-vfs/thunar-vfs-unlink-job.c: Allocate dirent buffer for the job instead of the stack on every thunar_vfs_unlink_item_collect call to reduce the stack overhead for the threads. * thunar-vfs/thunar-vfs-interactive-job.c: Check the cancellation state prior to invoking the "ask" signal. * thunar-vfs/thunar-vfs-interactive-job.{c,h}: Reduce the number of "percent" signal invokations to one per second to reduce the overall load on the main thread. * thunar-vfs/thunar-vfs-job.c(thunar_vfs_job_emit_valist): Lower the priority of inter-thread signals. * thunar/thunar-progress-dialog.c(thunar_progress_dialog_init): Use an ellipsizing label for the progress info message to avoid automatic resizing of the progress dialog. * thunar/thunar-application.{c,h}: Add "copy" and "move" actions. Drop "unlink" action, will be replaced with "trash" and "empty-trash-bin" later. * thunar-vfs/thunar-vfs-transfer-job.{c,h}: Import the ThunarVfsTransferJob class, which can only handle 'file:'-URI transfers right now. 2005-07-30 Benedikt Meurer * thunarx/thunarx-gtk-extensions.{c,h}, thunarx/Makefile.am: Add a helper function thunarx_gtk_action_group_set_action_sensitive(), which is used to easily change the sensitivity of a GtkAction within a GtkActionGroup. * thunar/thunar-window.c, thunar/thunar-standard-view.c: Use the newly added thunarx_gtk_action_group_set_action_sensitive() method. * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Add new actions "open-new-window" and "close-all-windows". * thunar/thunar-application.{c,h}: Add support for progress dialogs based on the ThunarVfsInteractiveJob. Turn the ThunarApplication class into a single-instance class. Add support to open new windows and querying the list of currently open windows. * thunar/thunar-progress-dialog.{c,h}: GtkWindow already provides the "icon-name" property (since Gtk 2.6), no need to duplicate that. * thunar/main.c: Switch to ThunarApplication. 2005-07-30 Benedikt Meurer * thunar/thunar-clipboard-manager.c, thunar/thunar-favourites-view.c, thunar/thunar-location-buttons.c, thunar/thunar-statusbar.c: Fix GCC 4.0 cast warnings, thanks to Jeff Franks . 2005-07-30 Benedikt Meurer * thunar-vfs/thunar-vfs-job.c: Emit signals independant of the cancellation state of the current job. * thunar-vfs/thunar-vfs-trash.{c,h}: Add a way to query the absolute path to the .trashinfo file. Support relative paths and not just filenames for several trash methods. * thunar-vfs/thunar-vfs-interactive-job.{c,h}: Import the ThunarVfsInteractiveJob class, which provides the base for all jobs, that require extended user interaction. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-marshal.list: Add required marshallers, which are not provided by GObject out of the box. * thunar-vfs/thunar-vfs-unlink-job.{c,h}: Import ThunarVfsUnlinkJob class, which is used to unlink a bunch of local or trashed files. * thunar-vfs/thunar-vfs-jobs.{c,h}: Add public interface to the various jobs provided by Thunar-VFS. * thunar-vfs/thunar-vfs.h: Remove the listdir job from the public interface. Add the jobs and the interactive job headers. * thunar/thunar-progress-dialog.{c,h}: Add ThunarProgressDialog class, which provides a dialog, that monitors the progress of an interactive and supports the required user interaction. * thunar/Makefile.am, thunar/thunar-local-folder.c: Catch up with Thunar-VFS changes. 2005-07-29 Benedikt Meurer * thunar-vfs/thunar-vfs-job.{c,h}, thunar-vfs/thunar-vfs-listdir-job.c: Move "error" signal to the ThunarVfsJob class. Make proper use of the virtual finalize method. * thunar/thunar-local-folder.c: Catch up with the ThunarVfsJob interface changes. 2005-07-29 Benedikt Meurer * thunar-vfs/thunar-vfs-job.{c,h}: Add a parameter spec for ThunarVfsJob and derived types. Add support methods to handle GValues easily. * thunar-vfs/thunar-vfs-listdir-job.{c,h}, thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs.h, thunar/thunar-local-folder.c: Rename the ThunarVfsJobListdir class to ThunarVfsListdirJob. 2005-07-25 Benedikt Meurer * thunar-vfs/thunar-vfs-sysdep.{c,h}: Add _thunar_vfs_sysdep_readdir() as a portable, thread-safe readdir replacement. * thunar-vfs/thunar-vfs-job-listdir.c(thunar_vfs_job_listdir_execute): Use _thunar_vfs_sysdep_readdir(). * thunar-vfs/Makefile.am: Add the sysdep component to the build framework. 2005-07-24 Benedikt Meurer * thunar/thunar-desktop-view.c, thunar/thunar-details-view-icon-renderer.c, thunar/thunar-favourites-model.c, thunar/thunar-file.{c,h}, thunar/thunar-list-model.c, thunar/thunar-location-buttons.c, thunar/thunar-path-entry.c, thunar/thunar-properties-dialog.c, thunar/thunar-statusbar.c, thunar/thunar-window.c: Do not hardcode the default icon factory in thunar_file_load_icon. Instead the icon factory is now a parameter to that function, which permits for proper multi-screen support. 2005-07-24 Benedikt Meurer * thunar/thunar-icon-factory.c(thunar_icon_factory_load_icon): Handle the case where no XSETTINGS manager is running on one of the connected screens. 2005-07-24 Benedikt Meurer * thunar/thunar-file.c(thunar_file_load_icon): Actually cache the result of an icon lookup. * thunarx/, thunarx/Makefile.am, configure.in.in: Add "thunarx" namespace, which contains extensions to existing frameworks and various helper functions that don't fit anywhere else. * thunarx/thunarx-gdk-pixbuf-extensions.{c,h}: Add a method to colorize a GdkPixbuf to a given GdkColor. * thunar/main.c, thunar/thunar-desktop-model.{c,h}, thunar/Makefile.am, thunar/thunar-desktop-window.{c,h}, thunar/thunar-desktop-view.{c,h}: Add proof-of-concept for the desktop support. 2005-07-23 Benedikt Meurer * thunar/thunar-list-model.c: Fix incorrect ThunarVfsMimeInfo -> GObject casts. 2005-07-22 Benedikt Meurer * configure.in.in: Add -O0 if debugging is enabled. * thunar-vfs/thunar-vfs-job.{c,h}, thunar/thunar-local-folder.c, thunar-vfs/thunar-vfs-job-listdir.{c,h}: Do the ThunarVfsJob communication based on GSignals to provide more flexibility for the various upcoming jobs. 2005-07-22 Benedikt Meurer * thunar/thunar-clipboard-manager.c, thunar/thunar-standard-view.c, thunar/thunar-window.c: Remove duplicate "const"s. 2005-07-22 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.{c,h}: Use "const" parameters if possible to give more hints to the compiler. * thunar-vfs/thunar-vfs-uri.{c,h}: Add thunar_vfs_uri_get_md5sum() method to calculate the MD5 digest of an URI. * thunar/thunar-local-file.c: Preallocate 512 instances of the ThunarLocalFile class to speed up the creation of new objects. * thunar/thunar-details-view.c(thunar_details_view_init): Do not allow reordering of treeview columns. 2005-07-22 Benedikt Meurer * configure.in.in: Add --disable-debug option, which can be used to disable all kinds of debugging support, and thereby may speed up the whole application in certain cases. * thunar/thunar-statusbar.c: Use the foreground color from the selected style instead of hard coding black for the animation. 2005-07-21 Benedikt Meurer * thunar/thunar-favourites-view.c: Add support for the LINK DnD action. * thunar/thunar-location-buttons.c(thunar_location_buttons_init): Use GDK_ACTION_LINK instead of GDK_ACTION_COPY to avoid accident copying of directories. * thunar/thunar-statusbar.{c,h}: Implement the ThunarNavigator interface. * thunar/thunar-statusbar.{c,h}: Add a "loading" indicator to the statusbar. Add support to dnd from the shortcut indicator to the favourites list. * thunar/thunar-window.c(thunar_window_init): Connect the statusbar as a navigator. Forward the "loading" property from the view to the statusbar. * configure.in.in: Check for additional headers. Add optional dependency on cairo. 2005-07-20 Benedikt Meurer * configure.in.in: Rename to "thunar" again, as this is now the main development line. * thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.{c,h}: Add context-menu support to the standard view's action framework. * thunar/thunar-details-view.c: Implement context-menu support for right-button click and "Menu"/"F10" keyboard shortcuts. 2005-07-18 Benedikt Meurer * thunar-vfs/thunar-vfs-job-listdir.c(thunar_vfs_job_listdir_execute): Always ignore the "." and ".." entries for directories. * thunar/thunar-location-bar.{c,h}: Add virtual method accept_focus(), which tries to transfer keyboard focus to the location bar if it provides a way for the user to enter the location as text. Else the method returns FALSE and the window will open a separate dialog. * thunar/thunar-location-buttons.c, thunar/thunar-location-entry.c: Implement the accept_focus() method on the ThunarLocationBar interface appropriately. * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Make the location bar configurable using the action system. 2005-07-17 Benedikt Meurer * thunar/thunar-path-entry.c: Do not handle the focus-out-event here, as it's better to handle it in the upper layers. * thunar/thunar-path-entry.c(thunar_path_entry_set_current_file): Set the cursor to the end and queue a redraw on the whole widget. * thunar/thunar-window.c: Include . * thunar/thunar-location-entry.{c,h}, thunar/Makefile.am: Add ThunarLocationEntry, which implements ThunarLocationBar using a ThunarPathEntry widget. 2005-07-17 Benedikt Meurer * thunar/thunar-path-entry.{c,h}: Add ThunarPathEntry class, which implements a widget to which the user can enter paths. The auto completion support is not yet provided. * thunar/thunar-location-dialog.{c,h}: Add ThunarLocationDialog class, which provides a "Open Location"-dialog similar to the one found in GtkFileChooser. * thunar/Makefile.am: Add new classes to the build framework. * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Add "Open Location" action to the window, which will bring up a ThunarLocationDialog. 2005-07-17 Benedikt Meurer * configure.in.in: Use "thunar-threaded" instead of "Thunar-threaded". * tests/test-thunar-vfs-volume-bsd.c(main): Get this test working again. 2005-07-17 Benedikt Meurer * TODO: Add note to based the ThunarVfsJob communication on the GSignal mechanism. * configure.in.in: Set tarname to be "Thunar-threaded". * thunar-vfs/thunar-vfs-info.{c,h}: Let thunar_vfs_info_list_free() return NULL. * thunar-vfs/thunar-vfs-job-listdir.c: Invoke the callback every two seconds, so for large directories, the user does not need to wait for the whole folder to be loaded. Also sort the item names prior to loading the infos. * thunar/thunar-local-folder.c: Support partial loading, as implemented for ThunarVfsJobListdir. 2005-07-17 Benedikt Meurer * thunar-vfs/thunar-vfs-volume-sysv.c: Fix compile warning with wrong parameters to thunar_vfs_volume_manager_sysv_get_volume_by_info(). This fixes bug #1083. 2005-07-17 Benedikt Meurer * thunar-vfs/xdgmime/: Import the XDG mime implementation with the patches from libexo. * thunar-vfs/: The ThunarVfsInfo framework is now thread-safe, using the ThunarVfsMime framework provided by ThunarVFS. * thunar/: Turn Thunar into a threaded application. 2005-07-16 Benedikt Meurer * thunar/thunar-folder.{c,h}: Add a "files-removed" signal, which can be used by ThunarFolder implementation to solve the reload problem, and probably other problems as well (like asynchronous loading). * thunar/thunar-local-folder.c(thunar_local_folder_rescan): Use "files-removed" instead of destroying the no longer present files, so we don't accidently terminate other stuff here. * thunar/thunar-list-model.c: Handle the "files-removed" signal of the ThunarFolder. 2005-07-15 Benedikt Meurer * thunar/thunar-details-view.c: Unselect all selected items if the user clicks on an empty area of the treeview and neither Control nor Shift is active. * thunar/thunar-properties-dialog.{c,h}: Add the first draft for the ThunarPropertiesDialog class, which implements a properties dialog for a single file. * thunar/Makefile.am: Add ThunarPropertiesDialog to the build framework. * thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.c, thunar/thunar-window-ui.xml: Add the "properties" action to the menu structure, which displays a properties dialog for the selected file. 2005-07-15 Benedikt Meurer * thunar-vfs/thunar-vfs-volume.{c,h}: Extend the ThunarVfsVolumeManager interface to be able to query the ThunarVfsVolume for a given ThunarVfsInfo. * thunar-vfs/thunar-vfs-volume-{bsd,sysv}.c: Catch up with the latest ThunarVfsVolumeManager changes. * thunar-vfs/thunar-vfs-volume-bsd.c(thunar_vfs_volume_bsd_new): Add support for SCSI direct access devices. * thunar/thunar-file.{c,h}: Add thunar_file_get_volume() to be able to query the ThunarVfsVolume for a given ThunarFile, if possible. * thunar/thunar-local-file.c: Implement the newly added get_volume() method based on the ThunarVfsVolumeManager. * thunar/thunar-list-model.c: Use the new volume related functionality to display the free space of the currently active directory in the statusbar. 2005-07-15 Benedikt Meurer * docs/papers/HackingOnThunar.odt: Improve the "Hacking on Thunar" guide. * thunar-vfs/thunar-vfs-volume.{c,h}: Change the icon lookup mechanism to return an icon name instead of a GtkIconInfo object. Also allow the ThunarVfsVolume implementation to specify a custom icon by overriding the lookup_icon_name() method. Add a new method get_free_space() which can be used to determine the amount of free space on a given volume. * thunar-vfs/thunar-vfs-volume-bsd.c: Catch up with the changes to ThunarVfsVolume. * thunar/thunar-favourites-model.c: Cache icons for the favourites and reload them whenever the file/volume changes. Adopt the new icon lookup mechanism for ThunarVfsVolume. 2005-07-14 Benedikt Meurer * thunar/thunar-standard-view.c(thunar_standard_view_init): Add frame shadow to the standard views. 2005-07-13 Benedikt Meurer * thunar/thunar-clipboard-manager.c: Fake an "owner-changed" event for the clipboard if either GDK or the Xserver do not support the XFixes extension. * thunar/thunar-standard-view.c: Monitor the associated clipboard for changes. Enable the "paste" action only if the both the current directory is writable and the clipboard contents are pastable. 2005-07-13 Benedikt Meurer * thunar-vfs/thunar-vfs-user.c(thunar_vfs_user_manager_init): Use direct hashing instead of int hashing. * thunar/thunar-local-file.c(thunar_local_file_get_emblem_names): If the file cannot be written, return the "noread" emblem as well. * thunar/thunar-file.{c,h}: Add can_execute(), can_read() and can_write() methods, and a default implementation, so not every class derived from ThunarFile needs to implement these methods of its own. * thunar/thunar-standard-view.c(thunar_standard_view_selection_changed): Update the "cut" and "paste" actions depending on whether the current directory is writable. 2005-07-12 Benedikt Meurer * thunar/thunar-vfs-uri.c(thunar_vfs_uri_list_to_string): Use GString to build the URI list string. * thunar/thunar-vfs-uri.{c,h}: Add a method thunar_vfs_uri_list_copy() which duplicates a list of ThunarVfsURIs. * thunar-vfs/thunar-vfs-volume-bsd.c(thunar_vfs_volume_bsd_finalize): Properly remove the update timer here. * thunar/thunar-list-model.c(thunar_list_model_remove): Perform the GtkTreeModel delete operation prior to notifying the "num-files" property to make sure the selection of the view is updated before the standard-view requests the statusbar text for the selection. * TODO: Add another two issues. * thunar/thunar-clipboard-manager.{c,h}, thunar/Makefile.am: Add the new ThunarClipboardManager class, which does the interaction with the clipboard. * thunar/thunar-standard-view.{c,h}: Implement Copy/Cut operations based on the newly added ThunarClipboardManager class. * thunar/thunar-standard-view-ui.xml, thunar/thunar-window-ui.xml: Add clipboard operations to the "Edit" menu. 2005-07-12 Benedikt Meurer * thunar/thunar-window.c: Add a readonly property "ui-manager" to the ThunarWindow and use property binding to sync the UI manager with the ThunarView. 2005-07-12 Benedikt Meurer * thunar/thunar-standard-view-ui.xml, thunar/thunar-window-ui.xml: Specify the name in addition to the action. 2005-07-11 Benedikt Meurer * thunar/thunar-navigator.c(thunar_navigator_class_init): Use EXO_PARAM_READWRITE instead of G_PARAM_READWRITE. * thunar/thunar-list-model.c: Fix several bugs related to incorrect signal registration/removal in the hidden files handling. * thunar/thunar-view.{c,h}: Add a new "ui-manager" property, which is set by the surrounding window for the view in question. The view in turn can hook its own actions - and thereby menu and toolbar items - into the ui manager, using GtkUIManager's merging capabilities. * thunar/thunar-window.c(thunar_window_init): Tell the main view about our UI manager. * thunar/thunar-window-ui.xml, thunar/thunar-standard-view-ui.xml, thunar/thunar-standard-view.{c,h}, thunar/Makefile.am: Add initial support for menu merging to the standard view class - and thereby to the icon and details view. You can now control the "show-hidden" property of the main view's model from the menu bar. 2005-07-10 Benedikt Meurer * thunar/thunar-list-model.{c,h}: Readd the get_statusbar_text() method. * thunar/thunar-favourites-view.c(thunar_favourites_view_row_activated): Make sure the activated row is not the separator row, as calling thunar_navigator_change_directory() with NULL for the directory parameter will lead to a crash. * thunar/thunar-standard-view.{c,h}, thunar/thunar-details-view.{c,h}, thunar/thunar-icon-view.{c,h}, thunar/Makefile.am: Add a new abstract base class ThunarStandardView, which is inherited by ThunarIconView and ThunarDetailsView. ThunarStandardView itself is derived from GtkScrolledWindow. This change was made to reduce the amount of duplicated code in ThunarIconView and ThunarDetailsView, and to workaround the problem that Gtk style properties don't pickup the custom properties for certain widgets once you have a derived class. * thunar/thunar-statusbar.{c,h}: Revert to the previous ThunarStatusbar implementation, which has a single "text" property that is bound to the "statusbar-text" property of the active view. * thunar/thunar-view.{c,h}: ThunarView now inherits (in terms of interface inheritance) from ThunarNavigator, which will allow for unified handling in ThunarWindow. In addition, the ThunarView now provides a "loading" and a "statusbar-text" property (both readonly) to put the view back in control of the loading process. 2005-07-07 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c: Be sure to register the type in a thread-safe manner. 2005-07-05 Benedikt Meurer * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.c: Also provide a GtkWindow instance to the action list generator, so actions can fire dialogs if necessary. 2005-07-05 Benedikt Meurer * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.c: Add possibility to remove user-defined shortcuts from the list. 2005-07-03 Benedikt Meurer * thunar/thunar-favourites-model.c(thunar_favourites_model_get_value): The ThunarVfsVolume interface does no longer provide the "name" property. * thunar-vfs/thunar-vfs-volume-bsd.c: Read the label from the ISO9660 volume descriptor block whenever a new medium is inserted and use this label as name. 2005-07-02 Benedikt Meurer * thunar/thunar-window-ui.xml, thunar/Makefile.am, thunar/thunar-window.c: The UI description for the ThunarWindow is now placed in a separate XML file for easier editing, and compiled into the binary using the exo-csource utility. 2005-07-02 Benedikt Meurer * configure.in.in: Add checks for functions used in the user module. * thunar-vfs/thunar-vfs-user.{c,h}: Add a user module to the VFS library, which is extensible and performs some caching to reduce the overhead caused by the underlying NSS implementation. * docs/papers/HackingOnThunar.odt: Add comments about the newly added ThunarVfsUser module. * thunar-vfs/thunar-vfs-info.h: Add ThunarVfsUserId and ThunarVfsGroupId typedefs. * thunar-vfs/thunar-vfs.h, thunar-vfs/Makefile.am: Add the new ThunarVfsUser module to the build framework. * thunar/thunar-file.{c,h}, thunar/thunar-local-file.c, thunar/thunar-trash-file.c: Add two new methods to the ThunarFile class - get_group() and get_user() - and add an implementation of these methods to the local and trash backends. 2005-06-29 Benedikt Meurer * thunar/thunar-details-view-icon-renderer.c (thunar_details_view_icon_renderer_render): Add support to render the primary emblem of the given file. * thunar/thunar-file.{c,h}: Add support to query the list of emblems for a given ThunarFile. * thunar/thunar-local-file.c: Implement the ThunarFile emblem support for symbolic links. 2005-06-29 Benedikt Meurer * thunar/thunar-details-view-icon-renderer.{c,h}: Add a custom icon renderer for the details view. * thunar/thunar-list-model.{c,h}: Allow consumers of this model to query the file for a given row. * thunar/Makefile.am: Add the new ThunarDetailsViewIconRenderer class to the build framework. * thunar/thunar-details-view.c(thunar_details_view_init): Use the custom icon renderer instead of the generic pixbuf renderer provided by Gtk+. 2005-06-29 Benedikt Meurer * thunar/thunar-location-buttons.c: Make this behave like GtkFileChooser again. 2005-06-28 Benedikt Meurer * thunar-vfs/thunar-vfs-volume-bsd.c, thunar-vfs/thunar-vfs-volume.c: Remove the GObject properties from the ThunarVfsVolume interface. 2005-06-26 Benedikt Meurer * thunar-vfs/thunar-vfs-info.{c,h}: Do not automatically determine the link target for ThunarVfsInfo objects. Instead, we'll add a method to ThunarVfsInfo later, so modules can do this on-demand. This speeds up loading directories with lots of symlinks within. * TODO: Remove the ThunarVfsInfo symlink item. 2005-06-26 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.{c,h}: Don't use a GObject for the ThunarVfsURI class. GObject is really overhead here, as we don't need anything of whats provided by GObject. * TODO: Add note about missing GValue handling for ThunarVfsURI. * TODO: Add note to fix ThunarVfsInfo to not implicitly query the link target. * thunar-vfs/*.[ch], thunar/*.[ch]: Use thunar_vfs_uri_unref() and thunar_vfs_uri_ref() instead of g_object_unref() and g_object_ref(), as ThunarVfsURI is no longer a GObject derived type. * thunar/thunar-window.c: Make loading new directories look and feel "smoother". Still not perfect. 2005-06-25 Benedikt Meurer * thunar/thunar-local-file.c: Use a static variable for the VFS monitor instead of a class variable, that never gets freed with static types. * thunar/thunar-favourites-model.c: Watch the files in the favourites list for changes, so that folders that no longer exists are automatically removed from the list. 2005-06-25 Benedikt Meurer * thunar/thunar-navigator.c(thunar_navigator_get_type): Do not require derived classes to inherit GtkWidget. This enables us to let arbitrary classes implement the ThunarNavigator interface and therefore reduce the amount of hardcoded knowledge in ThunarWindow. * thunar/thunar-side-pane.c(thunar_side_pane_get_type): Require derived classes to inhert GtkWidget. 2005-06-25 Benedikt Meurer * thunar/thunar-details-view.c(thunar_details_view_init): Use a GtkCellRendererText instead of an ExoCellRendererEllipsizedText for the name column. * thunar/thunar-details-view.c, thunar/thunar-icon-view.c: Set proper ATK name and descriptions here. 2005-06-25 Benedikt Meurer * thunar/main.c(main): Disable thread support for now, as it's not used and just slows down stuff. * thunar/thunar-file.{c,h}, thunar/thunar-local-file.{c,h}, thunar/thunar-local-folder.c, thunar/thunar-trash-file.c: Watch local directories and trashed files for changes. 2005-06-25 Benedikt Meurer * thunar/thunar-location-buttons.c (thunar_location_buttons_set_current_directory): Don't display the real root node - the 'computer:'-node - if a sub-node is active. So currently we have four distinctive possible roots for the location buttons bar, which are the home directory of the user, the file system root node ('file:/'), the trash root ('trash:') and the real computer root node ('computer:'), which are checked in the given order. * thunar/thunar-list-model.c(thunar_list_model_get_value): Use slightly larger icons for the details view. * thunar/thunar-window.c: Add preliminary menu support with 'Close' and 'Go up'. 2005-06-24 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.{c,h}: Add support for the 'computer://' URI. * thunar/thunar-trash-folder.c, thunar/thunar-local-folder.c, thunar/thunar-folder.c: Drop the GObject properties, as they are mostly useless here. * thunar/main.c(main): Use thunar_vfs_uri_new() for the optional command line parameter to be able to open arbitrary URIs from the command line. * thunar/Makefile.am: Add new class ThunarComputerFolder to the build framework. * thunar/thunar-computer-folder.{c,h}: Add ThunarComputerFolder class, which implements the 'computer:' URI. This vfolder is the root of all other root folders, currently 'file:/' and 'trash:'. * thunar/thunar-file.{c,h}, thunar/thunar-folder.c, thunar/thunar-list-model.c, thunar/thunar-local-file.c, thunar/thunar-local-folder.c, thunar/thunar-statusbar.c, thunar/thunar-trash-file.c, thunar/thunar-trash-folder.c: Add support for the 'computer:' vfolder as overall root node. Rearrange the get_size() method to be able to support objects for which no size is known, currently vfolders and directories in general. The virtual get_mime_info() method now automatically takes a reference on the returned object for the caller. 2005-06-24 Benedikt Meurer * configure.in.in: Add check for localtime_r. * thunar/thunar-file.{c,h}: Add support to query accessed, changed and modified dates of ThunarFiles. * thunar/thunar-local-file.c, thunar/thunar-trash-file.c: Implement the virtual get_date() method. * thunar/thunar-list-model.{c,h}: Add new columns accessed date, modified date and mime type. Fix the sorting for the mime comment column. * thunar/thunar-details-view.c: Display type and date modified columns as well. 2005-06-23 Benedikt Meurer * docs/papers/HackingOnThunar.odt, docs/papers/Makefile.am, configure.in.in, docs/Makefile.am: Add initial draft of the "Hacking on Thunar" paper. 2005-06-22 Benedikt Meurer * thunar/thunar-local-file.c, thunar/thunar-local-folder.c: If for some reason the constructor fails, we need to make sure to handle the floating reference correctly, therefore we call gtk_object_sink() instead of g_object_unref() in this case now. 2005-06-22 Benedikt Meurer * thunar/thunar-file.c, thunar/thunar-local-folder.c: Add an assertion to verify that an object has a floating reference before we call gtk_object_sink() on it. 2005-06-22 Benedikt Meurer * TODO: Addd new TODO items and remove solved issues. * thunar/Makefile.am: Add new class ThunarTrashFile to the build framework. * thunar-vfs/thunar-vfs-monitor.c(thunar_vfs_monitor_add_info): Do not use kevent for symlinks, it's way easier to watch them using regular polling. This shouldn't be a problem anyways, as watching symlinks is not a common case. * thunar-vfs/thunar-vfs-trash.{c,h}: Add functionality to handle trash: URIs and determine the real path for a file in a particular trash can. * thunar-vfs/thunar-vfs-trash.c(thunar_vfs_trash_manager_get_trashes): Fix a typo where the order of arguments to the g_list_prepend() function was wrong. * thunar/thunar-trash-file.{c,h}: Add a ThunarTrashFile class, which represents a trashed file. * thunar/thunar-trash-folder.c: Add support for listing the contents of the various trash cans, and also provide a simple proxy mechanism, that automatically forwards the constructor invokation to the ThunarTrashFile class if required. The trash can handling must be improved, see bug #1027. 2005-06-21 Benedikt Meurer * thunar/thunar-window.c(thunar_window_set_current_directory): Use thunar_file_open_as_folder() to open new folders. * thunar/thunar-folder.{c,h}: ThunarFolder is now an interface, which can be implemented in different ways. * thunar/thunar-local-folder.{c,h}: The previous ThunarFolder is now named ThunarLocalFolder. * thunar/thunar-file.{c,h}: Add thunar_file_open_as_folder() virtual method, which allows the ThunarFile implementation to choose an appropriate ThunarFolder implementation and thereby removes the need for the surrounding modules to "guess" the correct ThunarFolder. * thunar/thunar-local-file.c: Implement the open_as_folder() method for local files by simply instantiating a ThunarLocalFolder on the file in question. * thunar/thunar-trash-folder.{c,h}: The ThunarTrashFile class is now named ThunarTrashFolder as it really represents the trash toplevel folder. It also implements the ThunarFolder interface now. The real folder implementation is missing currently. * thunar/Makefile.am: Sync the build framework with the changes described above. 2005-06-20 Benedikt Meurer * thunar-vfs/thunar-vfs-monitor.c(thunar_vfs_monitor_event): Remove unused variables. * thunar/thunar-folder.c: Apply the same optimization concerning signal id lookups and closure generations as done with ThunarListModel earlier. * thunar/thunar-folder.c: Actually react to events on the corresponding file. We still need a mode in which we'll handle errors in async folder reloads. * thunar/thunar-local-file.c: Drop the cached MIME type whenever the file changes. The MIME type will be recalculated on demand when needed. * thunar/thunar-icon-factory.c: Instead of binding to the icon theme instance's "changed" signal and risking that somebody else already registered a handler earlier, we use a signal emission hook now, which is garantied to be fired before any of the signal handlers are invoked. See the code for details and additional comments. 2005-06-20 Benedikt Meurer * thunar/thunar-local-file.h: Add missing THUNAR_LOCAL_FILE_GET_CLASS(). * configure.in.in: Add checks for kqueue() and required headers. * thunar-vfs/thunar-vfs-info.{c,h}: thunar_vfs_info_update() is now part of the public API as it's used by monitor and will be used by the ThunarLocalFile implementation later as well. * thunar-vfs/thunar-vfs-monitor.{c,h}: Add implementation for most of the ThunarVfsMonitor. The current implementation uses kqueue() if available with a fallback to regular polling. 2005-06-20 Benedikt Meurer * thunar/thunar-list-model.c: Instead of resolving the ids for the "destroy" and "changed" signals on ThunarFile everytime we need to register it, we query the signal id in the constructor and remember it. In addition, instead of creating a closure for every signal registration on a ThunarFile, we create a closure for "changed" and a closure for "destroy" in the constructor and reuse that closure everytime we need to register a signal handler. * thunar/thunar-list-model.c: Watch hidden files for "destroy" condition as well. * thunar/thunar-trash-file.c: Emit the "changed" signal whenever the "empty" property on the trash manager changes. * thunar/thunar-file.{c,h}: Add a method thunar_file_changed(), which is used by derived classes to emit the "changed" signal on a given ThunarFile. 2005-06-19 Benedikt Meurer * thunar-vfs/thunar-vfs-trash.{c,h}: Import first implementation of a trash manager into thunar-vfs. Does currently only support the "home trash", but will be extended to use the volume manager in order to support foreign trashes as well. * thunar-vfs/Makefile.am: Add the trash manager to the build framework. * thunar-vfs/thunar-vfs.h: Include the trash manager header. * thunar/thunar-trash-file.c: Make use of the experimental trash manager to display the proper icon depending on whether the trash is full or empty. 2005-06-19 Benedikt Meurer * thunar/thunar-statusbar.c, thunar/thunar-list-model.c, thunar/thunar-favourites-model.c: Fix bug, where Thunar crashed when NULL was returned for a mime info. * thunar/thunar-file.{c,h}: Turn this into an abstract base class, which can be implemented in different ways. * thunar/thunar-local-file.{c,h}: Implementation of the abstract ThunarFile class for local files handled by the 'file:///' URI scheme. * thunar/thunar-trash-file.{c,h}: Implementation of the abstract ThunarFile class for trashed files handled by the 'trash:///' URI scheme and the trash can itself. This is currently only a boilerplate and waiting for the trash backend to show up. * thunar/Makefile.am: Add new classes to the build framework. 2005-06-17 Benedikt Meurer * thunar/thunar-details-view.c(thunar_details_view_init): Use the ellipsizing text renderer for the name column and get the sizing correct. 2005-06-17 Benedikt Meurer * thunar/thunar-view.{c,h}: Further improve the interface to ease the implementation and reduce the amount of duplicated code in the view implementations. * thunar/thunar-details-view.{c,h}: Add a first implementation for a details view. * thunar/thunar-icon-view.c: Catch up with the changes to ThunarView. * thunar/thunar-window.c: Test the new ThunarDetailsView. * thunar/Makefile.am: Add ThunarDetailsView class to the build framework. 2005-06-17 Benedikt Meurer * thunar/thunar-view.{c,h}: Adjust the interface for views to be more like the FilerView interface, which makes things slightly easier and adds more flexibility for the statusbar. Also the "list-model" property is now named "model", which is the easiest way for both ExoIconView and GtkTreeView, and it's safe to name it that way, as the ThunarView interface is the only way to change models anyways. * thunar/thunar-list-model.{c,h}: Drop the statusbar text generator. It's now handled completely within the ThunarStatusbar class, which provides more flexibility. * thunar/thunar-statusbar.{c,h}: Each statusbar instance is now associated with a ThunarView instance and automatically updates the status text according to the view. * thunar/thunar-icon-view.c: Implement modified ThunarView interface, which makes things very easy here for now. * thunar/thunar-window.c: Catch up with the changes to the other classes. 2005-06-15 Benedikt Meurer * thunar/thunar-icon-factory.c: Implement the recently used list using a circular buffer. This saves us from having to memmove() the list content on every icon lookup. * thunar/thunar-window.c(thunar_window_set_current_directory): Use a simple optimization when loading new folders into a view. See the code comments for details about the trick. 2005-06-14 Benedikt Meurer * configure.in.in: Depend on GLib 2.6 for now. 2005-06-14 Benedikt Meurer * thunar-vfs/thunar-vfs-volume-sysv.{c,h}: Add no-op implementation to make it possible to compile Thunar on non-BSD systems again. * configure.in.in, thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-volume.c, thunar-vfs/thunar-vfs-volume-bsd.c: Add a rather hacky way to support different system flavours based on AC_CONFIG_LINKS(). Needs to be replaced by a real solution at some time. * TODO: Add note about the wacky AC_CONFIG_LINKS() hacks mentioned above. 2005-06-14 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_new_for_path): Add some code to automatically remove trailing slashes from path names, which would otherwise confuse the whole file manager. * thunar/thunar-fallback-icon.{h,png}, thunar/Makefile.am: The fallback icon is now stored in a C file and automatically generated at compile time if maintainer mode is enabled, while dist tarballs will ship the generated C file. * thunar/thunar-icon-factory.{c,h}: Add new class ThunarIconFactory, which provides caching of themed icons. The basic concept is based on the NautilusIconFactory class, but the implementation is simpler and faster than the implementation found in Nautilus. * thunar/thunar-file.c: Use the new ThunarIconFactory class and the new exo_mime_info_lookup_icon_name() method to lookup and cache icons for files. This speeds up folder loading quite a lot. * docs/design/overview.xmi: Add ThunarIconFactory diagram. 2005-06-13 Benedikt Meurer * configure.in.in: Add header checks required for the BSD volume manager implementation. * thunar/thunar-window.c: Display the current folder's special name. * thunar/thunar-file.{c,h}: Add property "special-name", which contains the special name of a given file if any, else it contains the same value as the "display-name" property. * thunar/thunar-location-buttons.c: Use the home directory as root. Don't display a label for the 'Filesystem' node, similar to how it is done with GtkFileChooser. * thunar-vfs/thunar-vfs-volume.{c,h}, thunar-vfs/thunar-vfs-volume-bsd.c: Try more advanced features, like detecting whether a medium is present for a given volume. This is currently just testing, based on what is provided by the BSD interface. The final design may look different, maybe even a D-BUS based thunar-volume-manager service, which can be run with special permissions in order to be able to query device stats and mount volumes. * thunar/thunar-favourites-model.c: Use the new features provided by the volume manager to dynamically display volumes when a medium is inserted. 2005-06-12 Benedikt Meurer * docs/design/overview.xmi: Refined the basic ideas for the volume manager, which will provide core functionality required by the trash system. The ThunarVfsVolume and ThunarVfsVolumeManager concepts are interfaces now, which will be implemented by the backend (usually one backend per operating system family). * tests/data/test-thunar-vfs-volume-bsd.fstab, tests/data/Makefile.am, tests/test-thunar-vfs-volume-bsd.c, tests/Makefile.am: Add test case for the BSD specific implementation of the ThunarVfsVolumeManager module. * tests/test-thunar-vfs-uri.c: Fix copyright and includes. * TODO: Add item about possible improvements of the BSD specific volume manager implementation. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs.h, configure.in.in: Add new classes and interfaces to the build framework. * thunar-vfs/thunar-vfs-volume.{c,h}: Import the basic interfaces to the volume manager module, with a minimum set of methods and signals, which will be extended later. * thunar-vfs/thunar-vfs-volume-bsd.{c,h}: Add first try of an implementation of the the volume manager interfaces for BSD systems. 2005-06-11 Benedikt Meurer * docs/design/overview.xmi: Extend the ThunarVfsURI functionality. * thunar-vfs/thunar-vfs-uri.{c,h}: Add host handling to ThunarVfsURI. Add support for different URI schemes, currently 'file://' and 'trash://'. * thunar/thunar-favourites-model.c, thunar/thunar-favourites-view.c, thunar/thunar-location-buttons.c: Sync with the little API change to ThunarVfsURI. * tests/Makefile.am: Delete core files on `make clean'. * tests/test-thunar-vfs-uri.c(main): Add test cases for the trash: scheme. 2005-06-11 Benedikt Meurer * configure.in.in, Makefile.am, tests/: Import first test program for ThunarVfsURI validation. 2005-06-11 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.{c,h}: Add functions to ease the handling of URI lists, specifically to automatically parse and generate string representations of URI lists that conform to the text/uri-list mime type. * thunar/thunar-location-buttons.c (thunar_location_buttons_drag_data_get): Use new ThunarVfsURI list handling functions instead. * thunar/thunar-favourites-model.c (thunar_favourites_model_file_destroy): Handle the case where a directory referenced by a favourite disappears from the backend media. * thunar/thunar-favourites-model.c (thunar_favourites_model_file_changed): Remove a given favourite if the system notices that the favourite's file no longer refers to a directory. * thunar/thunar-favourites-model.c(thunar_favourites_model_init): Do not re-add favourites initially, that do not refer to a directory. * thunar/thunar-favourites-model.{c,h}: Add a new method thunar_favourites_model_add(), which is used by the ThunarFavouritesView to add new favourites to the list and automatically sync the changes with the Gtk+ bookmarks list. * thunar/thunar-favourites-view.c: Handle "text/uri-list" drops, adding new favourites as appropriate. Add note, that the initial idea is based on the GtkFileChooser written by Red Hat for Gtk+. * TODO: Remove the 'text/uri-list'-handling for ThunarFavouritesView. Add item concerning the Trash in the favourites list. 2005-06-10 Benedikt Meurer * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.c: Add initial drag&drop-support for the favourites view. This is currently limited to rearranging favourites in the list. Support for adding new favourites by dropping text/uri-list's will be added soon. Also, the ThunarFavouritesModel also saves changes made by the user back to the .gtk-bookmarks file now. * TODO: Add note about missing text/uri-list support in ThunarFavouritesView, and missing .gtk-bookmarks monitor support. 2005-06-08 Benedikt Meurer * thunar/thunar-favourites-model.c: Use a signed gint for the number of favourites to be compatible with the Gtk+ API. 2005-06-08 Benedikt Meurer * autogen.sh: Better determine the file dynamically, which is used to query the sandbox revision. 2005-06-08 Benedikt Meurer * autogen.sh, configure.in.in: Add build number to the version during development. 2005-06-08 Benedikt Meurer * docs/design/overview.xmi: All navigational UI elements in a ThunarWindow now implement the ThunarNavigator interface, which defines the "current-directory" property and the "change-directory" signal. See the ThunarNavigator gtk-docs for details about the behaviour. * thunar/thunar-navigator.{h,c}: Provide source code for the current ThunarNavigator interface. * thunar/thunar-side-pane.{h,c}, thunar/thunar-favourites-pane.c: Changed to use ThunarNavigator instead. ThunarSidePane is currently an empty interface. * thunar-vfs/thunar-vfs-uri.{h,c}: Add a thunar_vfs_uri_to_string() method, which transform a ThunarVfsURI into a file:// uri. * thunar/thunar-location-bar.{h,c}: Provide source code for the ThunarLocationBar interface, which extends the ThunarNavigator interface. The ThunarLocationBar interface does not add anything new currently, but that will change in future revisions. * thunar/thunar-location-buttons.{c,h}: Add location path buttons implementation of the ThunarLocationBar interface. The layouting code was mostly copied from gtkpathbar.c, which was initially written by Jonathan Blandford. The implementation is not complete yet, and the layouting code is still very buggy. * TODO: Add a bunch of TODO items for Thunar 1.0. 2005-06-07 Benedikt Meurer * thunar/thunar-list-model.c(thunar_list_model_set_folder): Fix a bug where the signals for the ThunarFolder weren't connected if the folder contained no files initially. * thunar/thunar-side-pane.c(thunar_side_pane_class_init): Fix typo in the documentation. * thunar/thunar-file.{c,h}: Add new method thunar_file_get_parent() to figure out the parent directory for a given ThunarFile. 2005-06-06 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_finalize): Use the parent_class variable set by G_DEFINE_TYPE instead of dynamically querying the parent class on-demand. * thunar/thunar-application.c, thunar/thunar-desktop-view.c, thunar/thunar-favourites-model.c, thunar/thunar-favourites-pane.c, thunar/thunar-favourites-view.c, thunar/thunar-file.c, thunar/thunar-folder.c, thunar/thunar-icon-view.c, thunar/thunar-preferences.c, thunar/thunar-statusbar.c, thunar/thunar-window.c: G_DEFINE_TYPE and G_DEFINE_TYPE_WITH_CODE already generate a parent_class variable, so we don't need to do that manually as well. It looks like this was added with GLib 2.4.x and I somehow missed that change. Thanks to Jeff Franks for pointing this out. 2005-06-05 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.c: Fix a bug in the thunar_vfs_uri_parent() and thunar_vfs_uri_relative() methods, where the name attribute of the newly created objects wasn't initialized properly. * thunar-vfs/thunar-vfs-uri.c(thunar_vfs_uri_equal): Instead of always comparing the full path of both URIs, a simple optimization was introduced, which checks the basenames first, if they are equal, it'll check whether the dirnames have the same length, and as the last fallback, it'll compare the dirnames char by char. This way we can optimize the common case - with GHashTable - that two URIs differ. 2005-06-05 Benedikt Meurer * thunar/thunar-favourites-model.{c,h}: Add new method thunar_favourites_model_file_for_iter() to be able to easily determine the ThunarFile for a given favourite. * thunar/thunar-file.c(thunar_file_class_init): Fix a type in the "changed" signal definition. * thunar/thunar-file.c(thunar_file_finalize): Fix a bug where the ThunarVfsURI was freed first, and then an attempt was made to remove the ThunarFile from the file_cache using the previously freed ThunarVfsURI as key. * thunar/thunar-view.{c,h}: Add the "change-directory" signal, which is emitted by ThunarIconView and ThunarListView whenever the user double clicks a folder (or otherwise requests a directory change from within the view). * thunar/thunar-list-model.{c,h}: Add a thunar_list_model_new() default constructor, which does not take a ThunarFolder instance. * thunar/thunar-icon-view.c: Implement the "change-directory" signal in ThunarView. * thunar/thunar-favourites-view.c, thunar/thunar-favourites-pane.c: Double-clicking a favourite now opens the associated directory (using the "current-directory" property, which is linked to the "current-directory" property of ThunarWindow). * thunar/thunar-window.{c,h}: Add a "current-directory" property, which describes the directory currently displayed in this window. Remove the thunar_window_new_with_folder() constructor and replace it by a default constructor. Automatically synchronize the current directory with both the view and the side pane. * thunar/main.c(main): ThunarWindow now uses ThunarFile to refer to the active directory and so we do here as well. 2005-06-05 Benedikt Meurer * configure.in.in: Bumped version to 0.0.2. * docs/design/overview.xmi: Fix some issues, see the code changes below. * thunar-vfs/Makefile.am: Don't install the thunar-vfs library for now. Makes debugging easier. * thunar/Makefile.am: Add new classes to the build framework. * thunar/thunar-view.{c,h}: Implement first draft for the ThunarView interface, which is to beimplemented by all views. * thunar/thunar-icon-view.{c,h}: Implement first draft for the ThunarIconView class, which implements the ThunarView interface to provide an icon view of the current folder. * thunar/thunar-statusbar.{c,h}: Add basic implementation of the ThunarStatusbar class. In order to avoid an association between the ThunarView or ThunarListModel classes and the ThunarStatusbar and in order to provide more flexibility about what is to be displayed in the statusbar, we use a write-only property "text" for the ThunarStatusbar, which can be connected to another string property using the ExoBindings module. * thunar/thunar-list-model.{c,h}: The number of rows should be a gint rather than a guint, as that's what GtkTreeModel uses. Add a new method thunar_list_model_get_statusbar_text(), that will be used by both ThunarIconView and ThunarListView to determine the proper statusbar text that should be displayed for a given selection. Add a new column THUNAR_LIST_MODEL_COLUMN_TYPE, which provides a string representation of the MIME-Type (using the comment set for the MIME-Type). The sort function is not yet implemented tho. 2005-06-05 Benedikt Meurer * thunar/thunar-favourites-model.c(thunar_favourites_model_get_value): The display_name's of ThunarFile's can be considered static (as the name cannot change during the ThunarFile's life-time), so we don't need to take a copy here. * thunar/thunar-list-model.c(thunar_list_model_get_value): Same here, the ThunarFile's display_name is static. * thunar/thunar-file.c: Add the simple caching on the ThunarFile level. If a ThunarFile for the same ThunarVfsURI is requested multiple times, the same ThunarFile instance will be used, instead of allocating a new one. Future versions will extend this scheme using a smarter caching mechanism. * thunar/thunar-side-pane.{c,h}: Add implementation for the ThunarSidePane interface, which is to be implemented by all widgets that can be placed on the right side. The interface currently includes only the "current-directory" property, which is the most important communication mechanism. We'll need some way to pass in other per-window settings here (e.g. "show-hidden" and such). Hopefully somebody will pick up the preferences task soon. * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.{c,h}, thunar/thunar-favourites-pane.{c,h}: More work on the ThunarFavourites module. The ThunarFavouritesPane class implements the ThunarSidePane interface and acts as a bridge to the underlying ThunarFavouritesView. * thunar/thunar-window.c: Test the new ThunarFavouritesPane class. * thunar/Makefile.am: Add the new classes to the build framework. 2005-06-05 Benedikt Meurer * thunar-vfs/thunar-vfs-uri.{c,h}: Add thunar_vfs_uri_new() constructor, that creates a new ThunarVfsURI object from a resource identifier string. * thunar-vfs/thunar-vfs-uri.{c,h}: Add thunar_vfs_uri_is_home(), which determines whether a given ThunarVfsURI referes to the home directory of the current user. * thunar/thunar-file.c(thunar_file_load_icon): Pay attention to special icons for the home folder and the file system root. * thunar/thunar-favourites-model.{c,h}, thunar/thunar-favourites-view.{c,h}: Add experimental ThunarFavouritesModel and ThunarFavouritesView classes, that will be used in the implementation of the ThunarFavouritesPane class. Other than with the mockups, I've skipped the 'Desktop' favourite for now, as it does not make much sense. The usablity team should evaluate this at some time. * thunar/thunar-window.c: Add ThunarFavouritesView on the left side for testing. * thunar/Makefile.am: Add ThunarFavouritesModel and ThunarFavouritesView to the build system. 2005-06-04 Benedikt Meurer * configure.in.in: Fix copyright texts. * docs/design/overview.xmi: Add is_local() and is_root() for ThunarVfsURI, which were missing. * thunar-vfs/thunar-vfs-uri.{c,h}: Implemented the missing thunar_vfs_uri_is_root() and thunar_vfs_uri_parent() methods. 2005-06-04 Benedikt Meurer * COPYING.LIB: Add license text for the thunar-vfs library (which is licensed under the LGPL). * HACKING: Add information for people that plan to hack on Thunar. * AUTHORS: Add Jeff Franks. * THANKS: Import the THANKS template. * README: Add some basic information about Thunar. Needs more details. * docs/design/overview.xmi: Import the current overview diagram for Thunar. * Makefile.am, configure.in.in, docs/Makefile.am, docs/design/Makefile.am: Include the docs/ tree with the build framework. * configure.in.in, thunar/Makefile.am, thunar-vfs/Makefile.am: Link against GThread (not yet required from what is coded so far). * configure.in.in: Check for several required header files. * thunar-vfs/Makefile.am, thunar-vfs/thunar-vfs-info.{c,h}, thunar-vfs/thunar-vfs-monitor.{c,h}, thunar-vfs/thunar-vfs-uri.{c,h}, thunar-vfs/thunar-vfs-util.{c,h}, thunar-vfs/thunar-vfs.h: Add some experimental source code to implement parts of the VFS module. * thunar/fallback-icon.h, thunar/fallback-icon.png: Import the fallback icon. * thunar/thunar-application.{c,h}: Import Jeff's ThunarApplication boilerplate (adjusting style as required). * thunar/thunar-desktop-view.{c,h}: Boilerplate for the ThunarDesktopView class with the very basic requirements. * thunar/thunar-file.{c,h}, thunar/thunar-folder.{c,h}: Experimental implementation of ThunarFile and ThunarFolder based on the experimental source for the VFS module. * thunar/thunar-list-model.{c,h}: Sample implementation of the ThunarListModel class, based on an earlier implementation found in Filer. * thunar/thunar-preferences.{c,h}: Template for the ThunarPreferences class. * thunar/thunar-window.{c,h}: Quick-and-dirty ThunarWindow implementation to be able to roughly test the ThunarListModel class. * thunar/main.c: Add code to start a single ThunarWindow. * autogen.sh: Copyright fixes. Substitute date to make it easier to identify snapshots during the early development stages. 2005-05-30 Benedikt Meurer * Initial import. # vi:set ts=8 sw=8 noet ai nocindent: