commit abe57845eb7620894a2e4c09769857d16b63d2f1 Author: Jannis Pohlmann Date: Fri Aug 21 16:32:43 2009 +0200 Fix crash in the URI completion of the path entry. Patch by Nick. commit 62ad9ea08c84849d6e4384e03f58ec29295c2b5a Author: Jannis Pohlmann Date: Fri Aug 21 16:19:02 2009 +0200 Properly support startup notify when opening files or the bulk renamer. When calling thunar from the command line, it now uses the DESKTOP_STARTUP_ID environment variable and passes it to the functions responsible to open/execute files and to open the bulk renamer. An additional startup id paremeter is added to the functions thunar_application_bulk_rename() thunar_application_open_window() thunar_application_process_filenames() thunar_file_launch() thunar_show_renamer_dialog() thunar_dbus_client_launch_files() thunar_dbus_service_launch_files() as well as to the following D-Bus methods: org.xfce.FileManager.Launch() org.xfce.Thunar.BulkRename() org.xfce.Thunar.LaunchFiles() This was made possible by Nick who provided the entire patch. commit 91a9e1cb861d4331164a886c032a83efc8862644 Author: Jannis Pohlmann Date: Fri Aug 21 16:09:26 2009 +0200 Fetch po-doc/*.po files from master. Drop po-doc/LINGUAS. commit f466f34d6eaec7d40e709364da006f97e048e53d Author: Jannis Pohlmann Date: Fri Aug 21 05:55:49 2009 +0200 Fetch translations from master. commit 56708e9e6a73d063357be717d12e19de21899e00 Author: Jannis Pohlmann Date: Fri Aug 21 05:53:34 2009 +0200 Really minor changes. commit fa99ba46e9bd63cd2ba5e9dfbfcd4282f3d330d0 Author: Jannis Pohlmann Date: Fri Aug 21 05:31:14 2009 +0200 Prefix g_file* functions with thunar_ to avoid conflicts. commit 9412b3e8d8f6193b503aea6d0464d5da8e7a1ccb Author: Jannis Pohlmann Date: Fri Aug 21 05:30:51 2009 +0200 Depend on GLib/GIO 2.18. commit 3f90607afcc272eb021aa00f3ef8e36544aa07aa Author: Jannis Pohlmann Date: Fri Aug 21 05:06:51 2009 +0200 In the open action, resolve them one after another, then open/execute. This is similar as the ThunarApplication code dealing with opening multiple files (usually at startup). Files are poked/resolved asynchronously one after another until there's nothing left to resolve. Then the old open/execute code kicks in. commit d2dd00573f2900af759f312d9d963d2b975d2839 Author: Jannis Pohlmann Date: Fri Aug 21 05:05:22 2009 +0200 Use new xdt-autogen features. Drop the LINGUAS file and THUNAR_VERINFO. commit c8af60f515e4b293d47f5a5ccd0ebe3b916f9cfd Author: Jannis Pohlmann Date: Wed Aug 19 03:32:37 2009 +0200 Tweak and add the .gitignore file. commit 6ae73a21b90d35dd024ea248997ba5760f704de2 Author: Jannis Pohlmann Date: Mon Aug 17 00:46:29 2009 +0200 Add GIO >= 2.18 functions to thunar-gio-extensions.{c,h}. This includes: g_file_monitor(), g_file_query_file_type() and g_file_make_directory_with_parents(). Needs testing. commit 179bced1e1dce8fb4de08462b15630ec6f9f3e40 Author: Jannis Pohlmann Date: Mon Aug 17 00:44:20 2009 +0200 Really get rid of the INSTALL file. commit ad654af892d44b6393655face8ed88859e6f2706 Author: Jannis Pohlmann Date: Mon Aug 17 00:02:18 2009 +0200 Avoid GIO 2.20 symbols. Avoid INSTALL file being tracked. commit 0f916f1581462526c0cbc84ab7f08ced4b9a2c0f Author: Jannis Pohlmann Date: Sun Aug 16 00:04:37 2009 +0200 Same as before. Forgot to add these files. commit 4234139ddc3fe3ab20ec9b08540bd2389869f71c Author: Jannis Pohlmann Date: Sun Aug 16 00:01:36 2009 +0200 Drop g_file_size_humanize(), use g_format_size_for_display() instead. commit 577080d1d35de25942d2ec3cf6b4b24cf6a0c129 Author: Jannis Pohlmann Date: Thu Aug 13 16:02:26 2009 +0200 Drop exo_gtk_object_ref_sink and exo_gtk_radio_action_set_current_value. Use g_object_ref_sink() and gtk_radio_action_set_current_value() instead. Conflicts: thunar/thunar-templates-action.c commit 621c0f4b44e7536d0a1f12a804eab332f596b0a3 Author: Jannis Pohlmann Date: Thu Aug 13 02:42:30 2009 +0200 Don't depend on an SVN revision of exo-1. Compiles, installs and runs. commit f337590df872cad44fbe5f335f0696a07b7d02de Author: Jannis Pohlmann Date: Thu Aug 13 02:35:25 2009 +0200 Depend on exo-1 instead of exo-0.3. commit 278f8cefedd7a95d7185fe18c67d3a9d6871b077 Author: Jannis Pohlmann Date: Thu Aug 13 02:19:53 2009 +0200 Add module.xml. commit 04d5a929771b0cef6f7cdcdc0001adf5f366647c Author: Jannis Pohlmann Date: Wed Jul 22 15:58:17 2009 +0000 * thunar/thunar-file.c: Fix typo in thunar_file_info_has_mime_type() which caused a lot of problems. Patch by Nick. (Old svn revision: 30378) commit b94863fd31010cf74795d080210a433a68afb446 Author: Jannis Pohlmann Date: Sat Jul 18 17:28:56 2009 +0000 * thunar/thunar-file.c: Only return true from thunar_file_is_executable() if the file is either a desktop file or is an application/x-executable or application/x-shellscript. On Windows we use g_content_type_can_be_executable() directly instead of checking for these two content types. Patch by Nick. (Old svn revision: 30347) commit 42f81cc9f1dbb0f2db1cd654fb30266f43f7faff Author: Jannis Pohlmann Date: Sat Jul 18 16:55:47 2009 +0000 * thunar/thunar-file.{c,h}: Introduce new function thunar_file_same_filesystem() which uses G_FILE_ATTRIBUTE_ID_FILESYSTEM to check whether two files reside on the same device/filesystem. Use this to fix the copy/move decision in thunar_file_accepts_drop(). * thunarx/thunarx-file-info.h: Add the "id" namespace to THUNARX_FILE_INFO_NAMESPACE. (Old svn revision: 30346) commit b98c69ce99f209a96a6cdf90247044773429f94a Author: Jannis Pohlmann Date: Sat Jul 18 14:24:27 2009 +0000 * thunar/thunar-launcher.c: Make executing files work again. Note that this only works for one selected file right now. Poking/launching multiple files/directories still have to be worked on anyway. (Old svn revision: 30344) commit 3557a2c333764691943a38e70b389c84a1586ff2 Author: Jannis Pohlmann Date: Sat Jun 20 03:07:01 2009 +0000 * po/POTFILES.in: Add thunar-settings.desktop.in. (Old svn revision: 30066) commit d358ea500b1788fddc3af37b90c7e7a386c0612b Author: Jannis Pohlmann Date: Sat Jun 20 03:01:00 2009 +0000 * po/POTFILES.in: Remove thunar-vfs source files, update those of Thunar itself. (Old svn revision: 30065) commit 449e5e755d3495b7e0b12799419de1003d09c62a Author: Jannis Pohlmann Date: Sat Jun 20 02:53:37 2009 +0000 * docs/reference/thunarx/Makefile.am: Use THUNARX_VERSION_API instead of THUNAR_VERSION_API. (Old svn revision: 30064) commit c7b32b79ccc3ea8294e9bfd23de1e9e1542cdf37 Author: Jannis Pohlmann Date: Sat Jun 20 02:44:21 2009 +0000 * configure.in.in, Makefile.am, tests/: Remove test folder which only tests thunar-vfs anyway. * docs/reference/thunar-vfs/, thunar-vfs/: Remove empty folders. (Old svn revision: 30063) commit 4e928968f6f0639b0bec668ea470ffb28c16ad12 Author: Jannis Pohlmann Date: Sat Jun 20 02:36:55 2009 +0000 * configure.in.in: Add header and function checks required for tdb. (Old svn revision: 30062) commit d3f714b7305318b3a6ab11d74381caabb689c4f3 Author: Jannis Pohlmann Date: Sat Jun 20 02:26:54 2009 +0000 * Remove thunar-vfs. There might be some pieces left which will be cleaned up next. Update the list of functions and headers the configure script checks because a lot of them were only required for thunar-vfs. (Old svn revision: 30061) commit a0a5032b288117c956ca2f5770b7a24783c77072 Author: Jannis Pohlmann Date: Sat Jun 20 01:07:08 2009 +0000 * Makefile.am, configure.in.in, plugins/, thunarx/, thunar/: thunarx-1 is dead, long live thunarx-2. thunarx-2 introduces three new functions: thunarx_file_info_get_file_info() which returns the GFileInfo of a ThunarxFileInfo, thunarx_file_info_get_filesystem_info() which returns a GFileInfo with filesystem information for a ThunarxFileInfo and thunarx_file_info_get_location() which returns the GFile the ThunarxFileInfo refers to. thunarx-2 doesn't have thunarx_file_info_get_vfs_info() anymore. Port all plugins shipped with Thunar from thunarx-1 to thunarx-2. Especially thunar-uca and thunar-sendto-email need testing due to non-trivial changes. Don't link Thunar against ThunarVFS anymore - ALL REFERENCES ARE GONE! (Old svn revision: 30057) commit bc0e7621123b1ae676526dc83767a387b1e62fbf Author: Jannis Pohlmann Date: Fri Jun 19 19:45:24 2009 +0000 * thunar/thunar-file.c: Nothing really. * thunar/thunar-window.c: Derive from ThunarBrowser and use thunar_browser_poke_file() to resolve/mount files when the location dialog is activated. (Old svn revision: 30056) commit bdc323b56932aadb79b9bac68713ae00c6065043 Author: Jannis Pohlmann Date: Fri Jun 19 17:05:11 2009 +0000 * thunar/thunar-list-model.c: Fix thunar_list_model_get_value() and thunar_list_model_get_statusbar_text() for files without content type. Use special statusbar texts for mountables and shortcuts. (Old svn revision: 30055) commit 6562e9e61259aabfec6f68606306b2203b02fb24 Author: Jannis Pohlmann Date: Fri Jun 19 17:05:07 2009 +0000 * thunar/thunar-file.c: Assume the file is read- and writable if it has no G_FILE_ATTRIBUTE_ACCESS_CAN_READ or G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE attribute. This usually is the case with shortcuts and mountables. This change removes all those irritating emblems when browsing computer://, network:// and smb://. Only show the "drive-harddisk" icon for local root directories (this should only be the filesystem root, not media or anything). (Old svn revision: 30054) commit 6cff9ccf227728ba6287fccc4124745abf6ac015 Author: Jannis Pohlmann Date: Fri Jun 19 17:05:02 2009 +0000 * thunar/Makefile.am: Add missing entries for thunar-browser.{c,h}. (Old svn revision: 30053) commit 6e08fa408a7741fd2433e61334b51f8b11f03bd5 Author: Jannis Pohlmann Date: Fri Jun 19 15:34:30 2009 +0000 * thunar/thunar-launcher.c: Derive from ThunarBrowser and use the poke file function to resolve/mount/open the selected file, if there is only one selected. Still need to work on selections of more files. (Old svn revision: 30052) commit 206199a89cf785266190716cba852befb9eaff3d Author: Jannis Pohlmann Date: Fri Jun 19 15:34:25 2009 +0000 * thunar/thunar-path-entry.c: Unescape URIs before displaying them. This is to make sure we don't see things like "%20" in the location bar/dialog. (Old svn revision: 30051) commit 0f8696dd6b0d3afbd44ca0f51b669ff722f60899 Author: Jannis Pohlmann Date: Fri Jun 19 15:34:20 2009 +0000 * thunar/thunar-location-entry.c: Simplify the activate code by deriving from ThunarBrowser and using the poke functions to mount volumes or resolve files asynchronously and on demand. (Old svn revision: 30050) commit 072496c5401629bd487db3dfe266ce0d40b76ef5 Author: Jannis Pohlmann Date: Fri Jun 19 15:34:16 2009 +0000 * thunar/thunar-shortcuts-view.c: Dramatically simplify the way directories and volumes are mounted and opened by deriving from ThunarBrowser and calling thunar_browser_poke_file() and thunar_browser_poke_volume() to resolve directories and volumes before opening them. (Old svn revision: 30049) commit 6ff479527e3d0fe8b7aef23326cda238522d4f19 Author: Jannis Pohlmann Date: Fri Jun 19 15:34:11 2009 +0000 * thunar/thunar-browser.{c,h}: Add a new interface with two convenience functions for browsing (possibly not yet mounted or resolved) volumes and files. thunar_browser_poke_file() can be used to asynchronously resolve shortcuts, mount mountables or enclosing volumes. When finished, the ThunarBrowserPokeFileFunc callback is called with the source and target file. thunar_browser_poke_volume() mounts volumes on demand and resolves the mount point and passes it to the ThunarBrowsePokeVolumeFunc callback. Both functions are possibly asynchronous. (Old svn revision: 30048) commit 21a791b00eed0850edfaef76aecc33b32038878c Author: Jannis Pohlmann Date: Fri Jun 19 15:34:06 2009 +0000 * thunar/thunar-file.{c,h}: Add "mountable::*" namespace to the file info attributes we request from the GFileInfo. In thunar_file_load(), check for type G_FILE_TYPE_MOUNTABLE and set is_mounted to FALSE if its G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT is TRUE. Add function thunar_file_get_target_location() which returns a GFile for the target location of a file of type G_FILE_TYPE_SHORTCUT or G_FILE_TYPE_MOUNTABLE and otherwise returns NULL. Don't assume all files have a content type - shortcuts and mountables don't. Work around this in thunar_file_is_desktop_file() and thunar_file_list_get_applications(). Check if we have a GFileInfo before querying the original path in thunar_file_get_original_path(). (Old svn revision: 30047) commit 14a8f43e77dd7f90484f45ffe5e0f330a5b63ec7 Author: Jannis Pohlmann Date: Fri Jun 19 15:34:00 2009 +0000 * thunar/thunar-file.c: Use special icon names for root folders other than trash://: "disk-harddrive" for the local root and "folder-remote" for root folders on other machines. * thunar/thunar-location-button.c: Show a label even for the local root, just to be more consistent. (Old svn revision: 30046) commit dc389f4e4e667bd98d735a788c26c869e638492a Author: Jannis Pohlmann Date: Wed Jun 17 17:57:51 2009 +0000 * thunar/thunar-shortcuts-view.c: Rework mounting and mounting + open. Also make opening items other than volumes work asynchronously. To do that, first check if the file to be opened is mounted already. If that's the case, open it directly. If not, mount the enclosing volume asynchronously and open the file in the mount callback. This works for opening in the same or a new window. (Old svn revision: 30045) commit 01a7cabd0aa3544530abbd4d45bc77a205db4676 Author: Jannis Pohlmann Date: Wed Jun 17 17:57:46 2009 +0000 * thunar/thunar-shortcuts-model.c: Minor code reorganization. (Old svn revision: 30044) commit 98603b95049c25b990befde368a66f35ee8db739 Author: Jannis Pohlmann Date: Wed Jun 17 17:57:41 2009 +0000 * thunar/thunar-window.c: Split thunar_window_start_open_location() up into three functions and load unmounted files asynchronously. (Old svn revision: 30043) commit d3d850ea657a35bac7c878a16364e27be0f2d9a2 Author: Jannis Pohlmann Date: Wed Jun 17 17:57:37 2009 +0000 * thunar/thunar-location-entry.c: Check if files are mounted before mounting their volumes asynchronously. If they are, just open them directly. Rework the code a bit, add a new private method thunar_location_entry_open_or_launch(). (Old svn revision: 30042) commit 92ae8573323125744390723483818b9867261186 Author: Jannis Pohlmann Date: Wed Jun 17 17:57:30 2009 +0000 * thunar/thunar-file.{c,h}: Add new boolean is_mounted member to ThunarFile. It is FALSE iff the GFileInfo of the file couldn't be loaded due to G_IO_ERROR_NO_MOUNTED. Return TRUE from thunar_file_load() only when the file info could be loaded or the file is not mounted yet. Use the path instead of the file:// URI for the display name of local files. Add new method thunar_file_is_mounted(). Add support for GFileIcons in thunar_file_get_icon_name() by returning the path to the icon filename if the file has a GFileIcon. Call thunar_file_reload() instead of thunar_file_destroy() on G_FILE_MONITOR_EVENT_DELETED and G_FILE_MONITOR_EVEN_PRE_UNMOUNT. The reload function will then destroy the file if it doesn't exist anymore. Not mounted files will not be destroyed though. (Old svn revision: 30041) commit 1f08f689e31e59b9ddb793ab013863ba669d20a9 Author: Jannis Pohlmann Date: Wed Jun 17 00:27:48 2009 +0000 * thunar/thunar-thumbnailer.c: Make all D-Bus related code only available when D-Bus is installed at compile time. (Old svn revision: 30040) commit 1dfc7e19e41ae0cbf5ddb4224edc049e55f3629a Author: Jannis Pohlmann Date: Wed Jun 17 00:13:13 2009 +0000 * thunar/thunar-shortcuts-view.c: Don't request context menu items from Thunarx for files which don't exist. Reported by Nick. (Old svn revision: 30039) commit c42b5af8c52b9b66e2fde6e89626470241a8a936 Author: Jannis Pohlmann Date: Wed Jun 17 00:13:08 2009 +0000 * thunar/thunar-file.c: Refactor thunar_file_load() and thunar_file_get() a bit. For now, thunar_file_load() will always return successful, even if the GFileInfo cannot be loaded. This is because we want ThunarFiles for remote URIs that are not yet mounted. To compensate for that, there's a new method thunar_file_exists() which returns TRUE iff the ThunarFile exists. (Old svn revision: 30038) commit a5195f410289a5d5391dd955f01687c8e43683de Author: Jannis Pohlmann Date: Tue Jun 16 23:28:53 2009 +0000 * thunar/main.c, thunar/thunar-application.{c,h}: thunar_application_process_filenames() now works asynchronously because it might have to mount the enclosing volumes of one of the filenames first (which is only possible asynchronously). Add new method thunar_application_is_processing() which returns whether ThunarApplication is still busy processing filenames or not. In main(), always enter the main loop but schedule an idle source to repeatedly check whether ThunarApplication has finished processing the command line arguments. Once this is the case, exit if there are no open Thunar windows. All in all, this gives us about the same behaviour main() had before, except that it the application might exit with a short delay. The result: Calling "thunar " from the shell works now! (Old svn revision: 30037) commit 2758d7001d03b4381b92e3f76f32d1407c87d771 Author: Jannis Pohlmann Date: Tue Jun 16 17:50:46 2009 +0000 * thunar/thunar-location-entry.c: Split thunar_location_entry_activate() up into two functions, thunar_location_entry_activate() an thunar_location_entry_activate_finished(). Use g_file_mount_enclosing_volume() to make sure the volume is mounted before we switch to the new directory or launch the file. Remote machine browsing, here we come! (Old svn revision: 30034) commit 9e76adf70cf20caca5a1d41d833f7086d873bbcc Author: Jannis Pohlmann Date: Tue Jun 16 17:50:39 2009 +0000 * thunar/thunar-file.c: In thunar_file_reload(), always reload the file first, before checking if it still exists and needs to be destroyed. (Old svn revision: 30033) commit d0e64d3d05f827d6cff710256e82dbf4fa0e3dcd Author: Jannis Pohlmann Date: Tue Jun 16 10:15:06 2009 +0000 * thunar/thunar-path-entry.c: Display the local path only for native files. If there is no path, use the URI. Always use the URI for non-native files. (Old svn revision: 30032) commit f7c49838718c4a517ee1a248ed467229b20b3a0b Author: Jannis Pohlmann Date: Mon Jun 15 23:38:26 2009 +0000 * thunar/thunar-renamer-model.c: Remove the ThunarVfsInfo member of ThunarRenamerModelItem. Always invalidate and update the item/row when the ThunarFile changes (unless the model is frozen of course). ThunarRenamerModel is now ThunarVFS-free. (Old svn revision: 30029) commit 0c92b59eeb87c757002e0c9ba9b104bbd9354afe Author: Jannis Pohlmann Date: Mon Jun 15 23:38:03 2009 +0000 * thunar/thunar-file.c: Use S_ISCHR, S_ISSOCK, S_ISFIFO and S_ISBLK to generate the first character of mode strings for special/unknown file types because we don't have THUNAR_VFS_FILE_TYPE_SOCKET etc. anymore. There will be no replacements for THUNAR_VFS_FILE_TYPE_PORT and THUNAR_VFS_FILE_TYPE_DOOR for now. (Old svn revision: 30028) commit eced573a73da912eaa920c7519f175dd6d3a7662 Author: Jannis Pohlmann Date: Mon Jun 15 23:37:41 2009 +0000 * thunar/thunar-icon-factory.c: Remove commented code. (Old svn revision: 30027) commit 38bd8e46728ad8481a794d9b5f8d0e582131b51d Author: Jannis Pohlmann Date: Mon Jun 15 20:06:54 2009 +0000 * thunar/thunar-thumbnailer.c: Don't queue files that are part of an already queued thumbnailer request or a ready idle struct. This dramatically reduces the amount of D-Bus messages being sent. (Old svn revision: 30026) commit b658734d31447bbef8e536231e67f7aa2644607a Author: Jannis Pohlmann Date: Mon Jun 15 20:06:36 2009 +0000 * thunar/thunar-icon-factory.c: Drop the ThunarVfsThumbFactory reference. Don't cache SVGs. The number of SVGs we need to load that are not ThunarFiles is relatively small, I don't think we need to cache them. ThunarThumbnailer takes care of the ThunarFiles that are SVGs. Always try to load thumbnails for files, even though their thumbnail state is not ready. Don't use the loading icon. Together, this reduces flicker when switching folders. ThunarIconFactory is now ThunarVFS-free. (Old svn revision: 30025) commit f6c0fb741acbd09d728378b9b26bfa6e2db24c4f Author: Jannis Pohlmann Date: Mon Jun 15 20:06:18 2009 +0000 * thunar/thunar-file.{c,h}: Add new boolean method thunar_file_is_thumbnail() which returns TRUE if, and only if a file resides in $HOME/.thumbnails/. (Old svn revision: 30024) commit 45b22dae9f2dae88d35a2f631635476664b419fc Author: Jannis Pohlmann Date: Sun Jun 14 22:58:18 2009 +0000 * thunar/thunar-icon-factory.c: Rewrite the file icon loading process once again, this time based on the also rewritten ThunarThumbnailer. We first assume no thumbnail exists and use the default icon for the MIME type. At the same time we request a thumbnail. Once the thumbnailer has started processing the request, we change to a loading icon. Once thumbnailer has the thumbnail ready, we change to the thumbnail. If there's an error with the thumbnail, we fall back to the default icon. * thunar/thunar-image.c: Simplify this one. It now always requests the icon from the icon factory and uses ThunarFileMonitor to watch the file for changes. After each change it requests the icon from the factory again. It's probably a good idea to use the thumbnailer directly, so this will change in the future. * thunar/thunar-list-model.c: Don't request thumbnails for the entire content of new folders. Instead, just let the icon renderers do their job. In the future, the model should at least unqueue all requests for the old folder when the folder changes. * thunar/thunar-thumbnailer.{c,h}: Rewrite the class entirely. It does asynchronous D-Bus calls now and uses idle sources for updating the thumbnail state of the ThunarFiles for which it requests the thumbnails. It doesn't emit any signals anymore. In the future, there should be a method to cancel all requests made by a component for a certain base URI, so that we can cancel all pending requests when leaving a folder. (Old svn revision: 30018) commit 7e42b87d40571721183f85e709a93585b503215f Author: Jannis Pohlmann Date: Sun Jun 14 22:58:11 2009 +0000 * thunar/thunar-file.{c,h}: Emit a ThunarFileMonitor "file-changed" signal whenever the thumbnail state of a ThunarFile is changed. This helps all components in refreshing their file information and possibly update the file icon. (Old svn revision: 30017) commit 436f408ead26fa33b7a5609f24372c18750d4f28 Author: Jannis Pohlmann Date: Fri Jun 12 01:09:47 2009 +0000 * thunar/Makefile.am, thunar/thunar-thumbnailer-manager-dbus.xml: Add XML D-Bus information for the org.freedesktop.thumbnails.Manager interface. * thunar/thunar-thumbnailer.{c,h}: Start implementing the client side of the org.freedesktop.thumbnails.Manager interface. Add new method thunar_thumbnailer_file_is_supported() which requests the supported content types from the thumbnailer manager on demand and checks if the content type of a ThunarFile is a subtype of any of these. Use this in thunar_thumbnailer_queue_files() and thunar_thumbnailer_queue_file() to filter out files which are not supported by the thumbnailer anyway. Make queue requests fail when there are no supported files in the request. (Old svn revision: 30002) commit b1508ea84c8717590f144248cfc236ec48560740 Author: Jannis Pohlmann Date: Fri Jun 12 00:21:23 2009 +0000 * Makefile.am, thunar/thunar-image.{c,h}, thunar/thunar-thumbnailer-dbus.xml, thunar/thunar-thumbnailer.{c,h}: Add two new classes ThunarImage and ThunarThumbnailer. ThunarImage is a subclass of GtkImage which takes a ThunarFile and asynchronously loads a thumbnail for the file using the org.freedesktop.thumbnails.Thumbnailer D-Bus service. ThunarThumbnailer is essentially a proxy client for this service which adds a few convenience methods around the DBusGProxy API. It can be used by other classes to request thumbnails over D-Bus. * thunar/thunar-file.{c,h}: Add a new method thunar_file_get_thumbnail_path(), which returns the thumbnail path for a ThunarFile. GFileInfo has something similar but unfortunately it's only set if the thumbnail exists, which means you have to reload the GFileInfo whenever a new thumbnail has been generated ... and unfortunately that requires a thunar_file_reload() which causes a lot of flicker. Another new method is thunar_file_get_preview_icon() which returns a preview GIcon that can act as a thumbnail replacement if there is any. * thunar/thunar-folder.c: Make sure never to emit the "files-added" signal with an empty list. * thunar/thunar-icon-factory.c: Use thunar_file_get_preview_icon() and thunar_file_get_thumbnail_path() to load ThunarFile icons. Drop the reference on ThunarThumbnailGenerator. Thumbnails are now requested by ThunarListModel and ThunarImage instead of the icon factory. * thunar/thunar-list-model.c: Request thumbnails from ThunarThumbnailer whenever the "files-added" signal is emitted. Unqueue all pending requests when the folder changes or the list model is destroyed. Still missing: thumbnail requests after file change events. * thunar/thunar-marshal.list: Add another marshaller: VOID:UINT,POINTER,UINT,STRING. * thunar/thunar-private.h: Remove ifdefs for GLib <= 2.14. * thunar/thunar-properties-dialog.c: Use ThunarImage for the file icon instead of a regular GtkImage. * thunar/thunar-thumbnail-generator.{c,h}: Remove the ThunarThumbnailerGenerator class. We no longer need it. (Old svn revision: 30001) commit 038b0ce314ea485a0518699ff117ac3d998da721 Author: Jannis Pohlmann Date: Mon May 11 23:23:08 2009 +0000 * configure.in.in: Depend on libexo-0.3.101svn-r29948 for exo_job_send_to_mainloop(). * thunar/thunar-dialogs.{c,h}, thunar/thunar-io-jobs.{c,h}, thunar/thunar-dialogs.{c,h}, thunar/thunar-properties-dialog.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c: Add new simple job thunar_io_jobs_rename_file() which renames a ThunarFile asynchronously. Make us of it in thunar_dialogs_show_rename_file() which now launches and returns the rename job instead of calling thunar_file_rename() directly. Update ThunarPropertiesDialog, ThunarStandardView and ThunarTreeView to handle the error/finished signals and destroy the job when it's finished. * thunar/thunar-file.{c,h}: Add a GCancellable parameter and a boolean parameter called "called_from_job". The latter is used to disable the thunarx_file_info_renamed() and thunar_file_changed() calls. The rename job is responsible to call these in the mainloop of the application after the rename has succeeded. * thunar/thunar-simple-job.{c,h}: Add new function thunar_simple_job_get_param_values() which returns the GValueArray created from the parameters passed to thunar_simple_job_launch(). (Old svn revision: 29949) commit 551ba5c889690870ead0ea931187a4fc2ee02cf9 Author: Jannis Pohlmann Date: Mon May 11 01:37:08 2009 +0000 * thunar/Makefile.am, thunar/thunar-exec.{c,h}: Import thunar_exec_*() functions from ThunarVFS. A part of that can probably be replaced with calls to libxfce4ui. * thunar/thunar-dialogs.{c,h}: Rename left-out THUNAR_VFS_JOB_RESPONSE* defines to THUNAR_JOB_RESPONSE*. Remove thunar-vfs.h include. * thunar/thunar-file.{c,h}: Remove the ThunarVfsInfo struct member of ThunarFile. In all function calls, make sure that we don't crash if we can't load the GFileInfo for the file. Cache the basename and display name of the file in thunar_file_load(). If no GFileInfo is available, try to guess them from the GFile. Use the new methods for querying a GKeyFile for a GFile to determine the custom icon name, if available. Cache that one, too. Remove thunar_file_get_for_info(), thunar_file_get_for_path(), rewrite thunar_file_get_for_uri(), rewrite thunar_file_get_parent(), thunar_file_execute() (based on thunar_exec_*() functions), thunar_file_rename() (based on g_file_set_display_name()), replace/disable ThunarVfsFileType references in thunar_file_get_mode_string(), return TRUE from thunar_file_is_executable() for .desktop files, rewrite thunar_file_is_renamable(), thunar_file_get_custom_icon(), thunar_file_set_custom_icon(), thunar_file_reload(), remove thunar_file_cache_lookup_path(), thunar_file_list_to_path_list(), thunar_file_get_path() and thunar_file_get_mime_info(). Make thunar_file_get_info() return the GFileInfo. Rewrite thunarx_file_info_get_vfs_info() which for now creates a new ThunarVfsInfo and returns it. Callers now have to release the ThunarVfsInfo later. Add GMount member to ThunarFile. * thunar/thunar-folder.c: Make sure to set the job to NULL after unref'ing it. Otherwise thunar_folder_get_loading() will always return TRUE and the watch cursor won't disappear. * thunar/thunar-gio-extensions.{c,h}: Add new functions g_file_query_key_file() and g_file_write_key_file(). Also add g_file_get_location() which returns a path for local files and an URI for the rest, and g_mount_is_same_drive() which checks whether two GMounts belong to the same GDrive. * thunar/thunar-icon-factory.c, thunar/thunar-renamer-model.c, thunar/thunar-thumbnail-generator.{c,h}: Migrate to the new thunarx_file_info_get_vfs_info() function. * thunar/thunar-list-model.c: Make sure not to crash when trying to compare two ThunarFile of which at least one has no GFileInfo. * thunar/thunar-metafile.{c,h}: Remove thunar-vfs.h include. * thunar/thunar-progress-dialog.{c,h}: Use ThunarJob instead of ExoJob whenever it is appropriate. Remove thunar-vfs.h include. * thunar/thunar-window.c: Rewrite thunar_window_current_directory_destroy() so that it simply searches for the first parent directory that still exists and falls back to $HOME otherwise. (Old svn revision: 29935) commit 3dea16cea8a78594885f71ea90ed042c0ee08d83 Author: Jannis Pohlmann Date: Thu May 7 16:42:51 2009 +0000 * Makefile.am, thunar/thunar-misc-jobs.{c,h}: Add new file for miscellaneous jobs. Add new job thunar_misc_jobs_load_template_files() which recursively loads all template files/directories as ThunarFile objects from G_USER_DIRECTORY_TEMPLATES. * thunar/thunar-gio-extensions.{c,h}: Add new method g_file_new_for_user_special_dir() which creates a GFile for a GUserDirectory and falls back to $HOME (so it's ignored later) if the special dir is not set. * thunar/thunar-create-dialog.h, thunar/thunar-standard-view.c, thunar/thunar-templates-action.c: Migrate ThunarTemplatesAction away from ThunarVFS. Use ThunarFile instead of ThunarVfsInfo for the "create-template" signal. Load the templates menu using thunar_misc_jobs_load_template_files(). (Old svn revision: 29929) commit e204e358983bf9eaa52c08833ee74376f1220654 Author: Jannis Pohlmann Date: Tue May 5 22:12:08 2009 +0000 * configure.in.in: Depend on exo-0.3.101svn-r29926 for ExoJob. * thunar/thunar-application.c, thunar/thunar-deep-count-job.{c,h}, thunar/thunar-folder.c, thunar/thunar-io-jobs-util.c, thunar/thunar-io-jobs.c, thunar/thunar-io-scan-directory.{c,h}, thunar/thunar-job.{c,h}, thunar/thunar-permissions-chooser.c, thunar/thunar-progress-dialog.{c,h}, thunar/thunar-simple-job.{c,h}, thunar/thunar-size-label.c, thunar/thunar-transfer-job.c: Implement ThunarJob based on ExoJob. Update a lot of classes to use the equivalent ExoJob functions instead the ones from ThunarJob which have been removed. (Old svn revision: 29928) commit e724285f602d64b9320019c7921aaead179bfed6 Author: Jannis Pohlmann Date: Fri May 1 00:20:23 2009 +0000 Erm, yeah. Remove duplicate ChangeLog entry. (Old svn revision: 29923) commit 5b136d802fdf1e5d3a2784d01a86f24a456c5496 Author: Jannis Pohlmann Date: Fri May 1 00:14:51 2009 +0000 * thunar/thunar-file.{c,h}, thnuar/thunar-standard-view.c, thunar/thunar-util.{c,h}: Do it right this time by using guint64 and GFileInfo instead of the ThunarVfsMimeInfo to determine the access/changed/modified time. Update thunar_util_humanize_file_time() to reflect this. * thunar/thunar-standard-view.c: Rewrite tsv_reload_directory() based on GFileMonitor. * thunar/thunar-launcher.c: Use GVolumeMonitor/GVolume for the volume send-to actions. Another class free of ThunarVFS. * thunar/thunar-file.{c,h}, thunar/thunar-util.{c,h}: Do it right this time by using guint64 and GFileInfo instead of the ThunarVfsMimeInfo to determine the access/changed/modified time. (Old svn revision: 29922) commit 47028e572cd2c628bc3540d455f414cee65f2291 Author: Jannis Pohlmann Date: Thu Apr 30 13:52:42 2009 +0000 * thunar/*.c: Remove all occurances of GLIB_CHECK_VERSION() and GTK_CHECK_VERSION() because we depend on much more recent GLib/GTK+ versions now anyway. * thunar/thnuar-file.{c,h}, thunar/thunar-util.{c,h}: Actually, time_t instead of guint64 is the correct type to use (fixes the previous commit). * thunar/thunar-window.c: Implement thunar_window_directory_destroy() around g_file_find_enclosing_mount(). I'm not 100% happy with this implementation but it'll do for now. Open the home directory if the new directory cannot be determined. (Old svn revision: 29921) commit af96af940b198f97b441e44a2e169e41496bc695 Author: Jannis Pohlmann Date: Thu Apr 30 13:07:11 2009 +0000 * thunar/thunar-util.{c,h}: Replace ThunarVfsFileTime with guint64. (Old svn revision: 29920) commit 128dd5cf35dd046f1051833b7d620960f307c2e4 Author: Jannis Pohlmann Date: Thu Apr 30 13:04:36 2009 +0000 * thunar/thunar-file.{c,h}, thunar/thunar-properties-dialog.c: Re-implement thunar_file_get_volume() around g_file_find_enclosing_mount(). Ideally this would be asynchronous but for now it'll stay the old way. Remove the ThunarVfsVolumeManager member from the properties dialog. We only need thunar_file_get_volume() here now. (Old svn revision: 29919) commit 4654651f01da331a4f3deaccef37298fca1f788f Author: Jannis Pohlmann Date: Thu Apr 30 01:11:53 2009 +0000 * thunar/thunar-application.c: Replace "hal-udi" with G_VOLUME_IDENTIFIER_KIND_HAL_UDI. * thunar/thunar-gio-extensions.c: Change g_volume_is_removable() so that it returns TRUE for almost all volumes. I feel that something is very wrong in GHalVolumeManager ... * thunar/thunar-location-entry.c: Replace ThunarVfsVolume with GVolume. Mount+open launcher entry items asynchronously when activated. (Old svn revision: 29917) commit 4763e862f282c47b9be912a351f0d3dce05be973 Author: Jannis Pohlmann Date: Wed Apr 29 16:28:31 2009 +0000 * thunar/thunar-tree-model.c, thunar/thunar-tree-view.c: Rewrite the volume management code based on GVolumeMonitor/GVolume. This code still has quite a few problems with trying to mount several times in a row and mount+open doesn't seem to work. (Old svn revision: 29916) commit cd04fc317d3059f5086ec48deafba5df53a015b8 Author: Jannis Pohlmann Date: Wed Apr 29 16:28:21 2009 +0000 * thunar/thunar-shortcuts-view.c: Avoid segfaults due to an invalid GtkTreeSelection being used in thunar_shortcuts_view_open_selection() and thunar_shortcuts_view_open_selection_in_new_window(). This can happen when the shortcuts view is essentially being destroyed but a reference to it is still being kept for the mount/unmount/eject handler. Increase the reference counter before passing the view to asynchronous mount/unmount/eject functions and release the reference in the handler. (Old svn revision: 29915) commit 376e32262784dd0b135f6909669926827ea3a17a Author: Jannis Pohlmann Date: Wed Apr 29 16:24:19 2009 +0000 * thunar/thunar-shortcuts-model.c: In thunar_shortcuts_model_init() don't increase the reference counter on the volumes, otherwise we'd leak them here. (Old svn revision: 29914) commit 33f4d77acb26844548479b4942a5acb41289b2d0 Author: Jannis Pohlmann Date: Wed Apr 29 07:42:23 2009 +0000 * thunar/thunar-gio-extensions.{c,h}: Add new function g_volume_is_present() which checks whether the GDrive of a volume has media or not. * thunar/thunar-shortcuts-icon-renderer.c: Use GVolume instead of ThunarVfsVolume and create the icon by loading a GtkIconInfo based on the volume GIcon in thunar_shortcuts_renderer_render(). * thunar/thunar-shortcuts-model.{c,h}: Use GVolumeMonitor and GVolume/GMount instead of ThunarVfsVolumeManager/ThunarVfsVolume everywhere. * thunar/thunar-shortcuts-view.c: Rewrite the mount/eject/unmount code to use GVolume/GMount. Need to review this again to make sure it works. * thunar/thunar-window.c: Re-implement the mount-pre-unmount signal handler by using GVolumeMonitor/GMount. error handling. Use thunar_file_list_free() instead of iterating over (Old svn revision: 29913) commit c0707c83273430b5025fd1af7cc0b13d892bf3f5 Author: Jannis Pohlmann Date: Tue Apr 28 19:55:34 2009 +0000 * thunar/thunar-io-jobs.c, thunar/thunar-io-scan-directory.c: Improve error handling. Use thunar_file_list_free() instead of iterating over the ThunarFile list manually. Make sure to release the GFileEnumerator in thunar_io_scan_directory(), otherwise unmounting volumes fails due to open file descriptors. * thunar/thunar-job.c: Cancel jobs in thunar_job_finalize() before destroying the GCancellable. (Old svn revision: 29912) commit f828793040c3e83bbb1dc3ada8677d1c8b10dac1 Author: Jannis Pohlmann Date: Tue Apr 28 16:45:32 2009 +0000 * thunar/thunar-file.{c,h}: Make the ThunarFile cache somewhat thread-safe. * thunar/thunar-gio-extensions.{c,h}: Add new functions g_volume_is_removable() and g_volume_is_mounted(). (Old svn revision: 29911) commit 2a24b4ad8f05dbfd586c0738f970e06ce88e327c Author: Jannis Pohlmann Date: Mon Apr 27 14:41:42 2009 +0000 * thunar/thunar-io-jobs-util.{c,h}: Add missing files. (Old svn revision: 29910) commit bbdaff3c188db42ce3f8aed9ccb2be39891ec7d3 Author: Jannis Pohlmann Date: Mon Apr 27 14:34:41 2009 +0000 * thunar/thunar-preferences-dialog.c: Always assume we have volume management. Remove the ThunarVfsVolumeManager reference here. (Old svn revision: 29909) commit af2a421d4acbfbe26a432f514201cb8c59dbd264 Author: Jannis Pohlmann Date: Mon Apr 27 14:17:51 2009 +0000 * thunar/thunar-application.c: Use GVolumeMonitor instead of ThunarVfsVolumeManager. Connect to the "drive-connected", "drive-disconnected" and "drive-eject-button" signals and determine the device UDIs using g_drive_get_identifier(). Rename thunar_application_volman_device_added(), thunar_application_volman_device_removed(), thunar_application_volman_device_eject() to thunar_application_drive_connected(), thunar_application_drive_disconnected() and thunar_application_drive_eject(). ThunarApplication is now ThunarVFS-free! * thunar/thunar-io-scan-directory.c: Avoid segfault when cancelling the job and trying to free the error. (Old svn revision: 29908) commit a74572292bb7229abf7e3df9ed9539ac1c3c86c4 Author: Jannis Pohlmann Date: Fri Apr 24 19:06:04 2009 +0000 * thunar/thunar-tree-view.c: Add missing include statement for thunar-job.h. (Old svn revision: 29906) commit 6a904d846bb0becdb4271aebc894b8f38d13707c Author: Jannis Pohlmann Date: Fri Apr 24 19:03:45 2009 +0000 * thunar/thunar-dialogs.c, thunar/thunar-progress-dialog.{c,h}, thunar/thunar-standard-view.c thunar/thunar-tree-view.c: Remove all references to ThunarVfsJob/ThunarVfsJobResponse from comments and source code. * thunar/thunar-io-jobs.c: Fix overwriting of a GError when cancelling the list_directory job. (Old svn revision: 29905) commit 7ae69bd189926f98ec81672f73becb4761cd4556 Author: Jannis Pohlmann Date: Fri Apr 24 18:48:54 2009 +0000 * thunar/thunar-file.c: Implement thunar_file_get_group(), thunar_file_get_user() and thunar_file_get_emblem_names() based on GFile/GFileInfo. * thunar/thunar-folder.c, thunar/thunar-io-jobs.{c,h}, thunar/thunar-job.{c,h}: Add new "files-ready" signal to ThunarJob which is emitted when a list of ThunarFiles is ready. Also add a new function called thunar_job_files_ready() which emits the signal. Implement a new job thunar_io_jobs_list_directory() as an equivalent to thunar_vfs_listdir(), using the new "files-ready" signal. Update ThunarJob to use "files-ready" instead of "infos-ready". For the first time in a while you can open the trash again without crashing Thunar. (Old svn revision: 29904) commit 1ab753a4c21081b6d50ef7b7ec4f67884e5835f8 Author: Jannis Pohlmann Date: Fri Apr 24 16:36:08 2009 +0000 * thunar/thunar-folder.c: Add "corresponding-file" property for the ThunarFile member of ThunarFolder. Monitor folders using GFileMonitor instead of ThunarVfsMonitor. (Old svn revision: 29903) commit 378e79bef2bc5596451a35c3026565f2b5833ae3 Author: Jannis Pohlmann Date: Fri Apr 24 15:26:31 2009 +0000 * thunar/thunar-enum-types.{c,h}, thunar/thunar-file.h: Move ThunarFileMode into the enum types file. Add THUNAR_TYPE_FILE_MODE macro and thunar_file_mode_get_type() function which registers a flags type for file modes. * thunar/thunar-io-jobs.{c,h}: Add new jobs thunar_io_jobs_change_group() and thunar_io_jobs_change_mode(). * thunar/thunar-permissions-chooser.c: Migrate the permissions chooser to the new jobs. (Old svn revision: 29902) commit 4d6fd3c78f0f3e8c608fead53f5187d64b023d70 Author: Jannis Pohlmann Date: Thu Apr 23 23:04:58 2009 +0000 * thunar/thunar-application, thunar/thunar-io-jobs.{c,h}, thunar/thunar-job.{c,h}, thunar/thunar-transfer-job.c: Re-implement thunar_application_restore_files() based on a new job called thunar_io_jobs_restore_files(). Modify ThunarTransferJob so that it checks whether the parent directory of the original path exists and otherwise tries to create it (with user interaction). Add new function thunar_job_ask_create() to ThunarJob. ThunarApplication is now almost ThunarVFS free. (Old svn revision: 29899) commit f005d7bbac1b90fbc3da480eab4e4afec590d6d5 Author: Jannis Pohlmann Date: Thu Apr 23 20:39:59 2009 +0000 * thunar/thunar-dialogs.c: Use more fine-grained labels for files, directories and links in thunar_dialogs_show_job_ask_replace(). (Old svn revision: 29898) commit 0b2031bf4d8ddf47908e058cb52eb4f17db6ae1e Author: Jannis Pohlmann Date: Thu Apr 23 20:31:23 2009 +0000 * thunar/thunar-application.c, thunar/thunar-job.{c,h}, thunar/thunar-io-jobs.c, thunar/thunar-transfer-job.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c: Implement and connect to the "new-files" signal again. Update ThunarStandardView and ThunarTreeView to use a GFile list for the new_files_closure. (Old svn revision: 29897) commit a6ccd17834e4a5590e070e94cf3d236f5c910d26 Author: Jannis Pohlmann Date: Thu Apr 23 20:00:34 2009 +0000 * thunar/thunar-application.{c,h}, thunar/thunar-dbus-service.c, thunar/thunar-io-jobs.{c,h},: Add new job thunar_io_jobs_trash_files() and a new function thunar_application_trash() which are used in thunar_dbus_service_move_to_trash(), thunar_application_move_into() and thunar_application_unlink() to move files into the trash. * thunar/thunar-standard-view.c: Use GFiles for the drag file list. (Old svn revision: 29896) commit 0c701627d8084870d5cb814430cc2c3cf38f7f65 Author: Jannis Pohlmann Date: Thu Apr 23 19:10:14 2009 +0000 * thunar/thunar-application.h: Fix thunar_appliation_link_into() declaration and rename a few parameters. (Old svn revision: 29895) commit 51c6fa1bcc6ea4fedf67e1ed9576ee90791fb562 Author: Jannis Pohlmann Date: Thu Apr 23 18:57:21 2009 +0000 * thunar/Makefile.am, thunar/thunar-io-jobs-util.{c,h}: Add new files for I/O job utility functions. Right now there's only one new function called thunar_io_jobs_util_next_duplicate_file() which generates alternative "copy of X", "another copy of X", "third copy of X" and "nth copy of X" #GFiles for an input #GFile. It also works for symbolic links. * thunar/thunar-application.{c,h}, thunar/thunar-dnd.c, thunar/thunar-io-jobs.{c,h}, thunar/thunar-launcher.c, thunar-standard-view.c: Add new job thunar_io_jobs_link_files() and use it in thunar_application_link_into(). Disable thunar_application_restore_files() for now so that we can replace thunar_application_collect_and_launch() and thunar_application_launch() with the implementations based on GIO. Enable creating links in thunar-dnd.c again. Update ThunarLauncher and ThunarStandardView to reflect the API changes in ThunarApplication. * thunar/thunar-dialogs.c: In thunar_dialogs_show_job_ask_replace(), use different labels for target symlinks than for normal files to make clear that we're only replacing the symlinks, not the files they point to. * thunar/thunar-permissions-chooser.c: Make sure the array index is never out of bounds when iterating over the combos. * thunar/thunar-transfer-job.{c,h}: Improve the copy/move algorithm so that it resembles the old behaviour, creates "copy of X" files when copying/linking files into the same directory, handles directory merges properly and is more readable. (Old svn revision: 29894) commit 6841b29cb9f21247c4fd1c1c4bfc42074d77ca0a Author: Jannis Pohlmann Date: Thu Apr 23 18:57:14 2009 +0000 Revert " * thunar/Makefile.am, thunar/thunar-io-jobs-util.{c,h}: Add new files" This reverts commit 236c1464283640f8e37ba267cc5e92843ac4c997. (Old svn revision: 29893) commit 0477573e346a228c26a878772b414e3d564f46ab Author: Jannis Pohlmann Date: Thu Apr 23 18:57:05 2009 +0000 * thunar/Makefile.am, thunar/thunar-io-jobs-util.{c,h}: Add new files for I/O job utility functions. Right now there's only one new function called thunar_io_jobs_util_next_duplicate_file() which generates alternative "copy of X", "another copy of X", "third copy of X" and "nth copy of X" #GFiles for an input #GFile. It also works for symbolic links. * thunar/thunar-application.{c,h}, thunar/thunar-dnd.c, thunar/thunar-io-jobs.{c,h}, thunar/thunar-launcher.c, thunar-standard-view.c: Add new job thunar_io_jobs_link_files() and use it in thunar_application_link_into(). Disable thunar_application_restore_files() for now so that we can replace thunar_application_collect_and_launch() and thunar_application_launch() with the implementations based on GIO. Enable creating links in thunar-dnd.c again. Update ThunarLauncher and ThunarStandardView to reflect the API changes in ThunarApplication. * thunar/thunar-dialogs.c: In thunar_dialogs_show_job_ask_replace(), use different labels for target symlinks than for normal files to make clear that we're only replacing the symlinks, not the files they point to. * thunar/thunar-permissions-chooser.c: Make sure the array index is never out of bounds when iterating over the combos. * thunar/thunar-transfer-job.{c,h}: Improve the copy/move algorithm so that it resembles the old behaviour, creates "copy of X" files when copying/linking files into the same directory, handles directory merges properly and is more readable. (Old svn revision: 29892) commit 0047e28451d4f48e0b53726aedf9efc6da2cdb1c Author: Jannis Pohlmann Date: Thu Apr 23 00:56:37 2009 +0000 * thunar/Makefile.am, thunar/thunar-transfer-job.{c,h}: Implement ThunarTransferJob as an equivalent to ThunarVfsTransferJob. The code is very similar except that the error handling is a bit different and all basic operations (non-recursive copy/move) is done based on GFile and GFileInfo. Copying a file into the same directory currently does not work the way it did before (new file 'copy of "%s"' was created). This will be fixed soon. * thunar/thunar-application.{c,h}: Add new function thunar_application_collect_and_launch_job() as an alternative to thunar_application_collect_and_launch() but based on GFile and JobLauncher. Implement thunar_application_move_into(), thunar_application_copy_into() and thunar_application_copy_to() based on ThunarTransferJob and GFile instead of ThunarVfsTransferJob. * thunar/thunar-clipboard-manager.{c,h}, thunar/thunar-dialogs.{c,h}, thunar/thunar-dnd.c, thunar/thunar-dbus-service.c, thunar/thunar-launcher.c, thunar/thunar-location-button.c, thunar/thunar-location-buttons.c, thunar/thunar-progress-dialog.c, thunar/thunar-shortcuts-view.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c: Update to new API of ThunarClipboardManager, ThunarApplication and ThunarJob. Replace *a lot* of ThunarVFS references with code based on GIO. * thunar/thunar-file.{c,h}: Re-implement thunar_file_accepts_drop() based on a GFile input list. Add new function thunar_file_can_be_trashed(). * thunar/thunar-io-jobs.{c,h}: Add new jobs thunar_io_jobs_move_files() and thunar_io_jobs_copy_files(). * thunar/thunar-job.{c,h}: Add "ask-replace" signal and public function thunar_job_ask_replace(), mainly for ThunarTransferJob. * thunar/thunar-marshal.list: Add new marshal function _thunar_marshal_FLAGS__OBJECT_OBJECT(). (Old svn revision: 29891) commit 2b650ad845ab1944eb0974192780c7e8efd38129 Author: Jannis Pohlmann Date: Wed Apr 22 00:49:04 2009 +0000 * thunar/Makefile.am, thunar/thunar-io-scan-directory.{c,h}: Port _thunar_vfs_info_scan_directory() to GIO and rename it to thunar_io_scan_directory(). * thunar/thunar-application.c, thunar/thunar-io-jobs.{c,h}: Implement thunar_io_jobs_unlink_files() as an equivalent to thunar_vfs_jobs_unlink_files(). Use it in unlink_stub() and modify thunar_application_unlink_files() and hunar_application_empty_trash() to use thunar_application_job_launch() and GFile lists. * thunar/thunar-gio-extensions.{c,h}: Add g_file_list_prepend(). * thunar/thunar-job.c: Don't treat cancellation as an error for now. * thunar/thunar-simple-job.c: Use g_clear_error() instead of g_error_free() in thunar_simple_job_execute(). (Old svn revision: 29883) commit 0f7b6133ec183e26e4214f6f6af144ea9482a24b Author: Jannis Pohlmann Date: Tue Apr 21 13:33:08 2009 +0000 * thunar/thunar-application.c, thunar/thunar-io-jobs.{c,h}, thunar/thunar-location-buttons.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c: Add new simple job thunar_io_jobs_make_directories(). Rename all I/O job functions from thunar_io_job_*() to thunar_io_jobs*(). Use the make directories job in thunar_application_mkdir() and modify mkdir_stub() according to this. Pass a GFile list to thunar_application_mkdir() in ThunarLocationButtons, ThunarStandardView and ThunarTreeView. (Old svn revision: 29878) commit f89c2e5333f4f9d43b2cd61d7cee3909eba37290 Author: Jannis Pohlmann Date: Tue Apr 21 12:28:17 2009 +0000 * thunar/Makefile.am, thunar/thunar-io-jobs.{c,h}, thunar/thunar-simple.job.{c,h}: Add ThunarSimpleJob class which is equivalent to ThunarVfsSimpleJob. Add the first simple job by implementing thunar_io_job_create_files() as an equivalent to thunar_vfs_create_files(). The "new-files" signal is not implemented yet because it would break the new_files_closure. * thunar/thunar-application.c: Add JobLauncher function pointer type as an equivalent to Launcher. Add thunar_application_launch_job() as an equivalent to thunar_application_launch() based on ThunarJob instead of ThunarVfsJob. Modify creat_stub() according to this. Use thunar_application_launch_job() in thunar_application_creat(). * thunar/thunar-job.{c,h}: Implement thunar_job_ask_skip(). * thunar/thunar-standard-view.c: Pass a GFile list instaed of a ThunarVfsPath list to thunar_application_creat(). (Old svn revision: 29877) commit d579fa09e042a63047ec88dab4706df06547258c Author: Jannis Pohlmann Date: Tue Apr 21 11:23:09 2009 +0000 Add thunar-enum-types.c which I forgot in the last commit. (Old svn revision: 29876) commit b7bddece2461120aab10e061ff66f200a23c53e9 Author: Jannis Pohlmann Date: Tue Apr 21 11:22:26 2009 +0000 * thunar/thunar-enum-types.c: Remove vfs_ from thunar_vfs_job_response_get_type(). * thunar/thunar-gio-extensions.c: Include exo.h for the I_() macro. * thunar/thunar-job.{c,h}: Add functions thunar_job_ask_overwrite(), thunar_job_info_message(), thunar_job_percent(), thunar_job_set_total_files() and thunar_job_processing_file(). Add signals "ask", "info-message" and "percent". * thunar/thunar-progress-dialog.{c,h}: Make ThunarProgressDialog work with both, ThunarVfsJob and ThunarJob by using a G_TYPE_OBJECT property and gpointer parameters. (Old svn revision: 29875) commit 283be80f7b7c381f5a4f829b14386e5f7f3fc2c6 Author: Jannis Pohlmann Date: Tue Apr 21 10:08:08 2009 +0000 * thunar/thunar-deep-count-job.c: Improve the error handling code in thunar_deep_count_job_execute(). * thunar/thunar-gio-extensions.{c,h}: Add G_TYPE_FILE_LIST macro and g_file_list_get_type() for a boxed GFile list type. Fix g_file_list_copy() to actually return the list copy and not the original. Don't set the original to NULL before iterating over it. (Old svn revision: 29874) commit d21517cceab85cfa00bf00621444ec90666952a3 Author: Jannis Pohlmann Date: Mon Apr 20 18:07:26 2009 +0000 * thunar/thunar-window.c: Fix runtime error due to an NULL path being passed to g_file_new_for_path() in thunar_window_setup_user_dir_menu_entries(). (Old svn revision: 29869) commit 976108c14939f159432a7b53826971748e3b9677 Author: Jannis Pohlmann Date: Mon Apr 20 17:52:41 2009 +0000 * thunar/thunar-chooser-dialog.c, thunar/thunar-deep-count-job.c, thunar/thunar-job.c, thunar/thunar-preferences.c, thunar/thunar-shortcuts-model.c, thunar/thunar-size-label.c: Fix compiler warnings and errors. (Old svn revision: 29868) commit df475abaf389fd03ca839826c8ac5e4ee1077ee8 Author: Jannis Pohlmann Date: Mon Apr 20 16:28:52 2009 +0000 * thunar/Makefile.am, thunar/thunar-deep-count-job.{c,h}: Add new class for computing the total size of a file/directory recursively while also counting the total number of files and directories. This implementation is almost equivalent to ThunarVfsDeepCountJob except that it is an implementation of ThunarJob and uses GIOScheduler for the asynchronous operation. * thunar/thunar-enum-types.h: Add missing public declaration of thunar_job_response_get_type(). * thunar/thunar-job.{c,h}: Add new functions thunar_job_get_cancellable() and thunar_job_set_error_if_cancelled(). Make thunar_job_emit() public so that it can be used in subclasses. Don't try to emit signals in thunar_job_finished() and thunar_job_error() using GIOScheduler because they are only emitted in thunar_job_async_ready() which is called from the GUI thread. * thunar/thunar-size-label.c: Drop all ThunarVFS references by replacing ThunarVfsDeepCountJob with ThunarDeepCountJob. Yay, it works! (Old svn revision: 29867) commit 803463e84c0c93e452cccad9c65009c1ee8dedfe Author: Jannis Pohlmann Date: Mon Apr 20 01:02:32 2009 +0000 * thunar/Makefile.am, thunar/thunar-enum-types.{c,h}, thunar/thunar-job.{c,h}, thunar/thunar-marshal.list: Add abstract class ThunarJob which is going to be an equivalent to ThunarVfsJob. The main difference is that ThunarJob uses GIOScheduler to handle the asynchronous execution of the job instead of managing worker threads on its own. It's not finished yet though. Add ThunarJobResponse enum type and new marshal functions for job signals. (Old svn revision: 29853) commit 25e46597fc649ef2a42f3f0d540b5f38dccb5283 Author: Jannis Pohlmann Date: Sun Apr 19 20:48:31 2009 +0000 Merge branch 'master' into migration-to-gio Conflicts: ChangeLog (Old svn revision: 29850) commit fbaaa140477caa3c3ecb207906dc76a35335edcd Author: Jannis Pohlmann Date: Sun Apr 19 20:45:15 2009 +0000 * thunar/thunar-location-button.c: Use g_file_list_to_string() instead of thunar_vfs_path_list_to_string() in thunar_location_button_drag_data_get(). (Old svn revision: 29849) commit dfae489817f7e1b2db38bbd82c97b6236e1f9aa7 Author: Jannis Pohlmann Date: Thu Apr 16 22:23:12 2009 +0000 * thunar/thunar-clipboard-manager.c: Remove GTK+ 2.6 check. * thunar/thunar-dbus-service.c: Replace ThunarVfsPath with GFile in thunar_dbus_service_connect_trash_bin() and thunar_dbus_service_display_folder_and_select(). (Old svn revision: 29825) commit e19f41f686c5b09b8bd1a3b3828e51578e4cd7ac Author: Jannis Pohlmann Date: Thu Apr 16 22:23:08 2009 +0000 * thunar/thunar-clipboard-manager.c: Remove GTK+ 2.6 check. * thunar/thunar-dbus-service.c: Replace ThunarVfsPath with GFile in thunar_dbus_service_connect_trash_bin() and thunar_dbus_service_display_folder_and_select(). (Old svn revision: 29824) commit 57989502ec92679538d3c32211ad038786c7ac13 Author: Jannis Pohlmann Date: Tue Apr 14 22:45:20 2009 +0000 * thunar/thunar-standard-view.c: Use GFile instead of ThunarVfsPath in thunar_standard_view_drag_drop(). (Old svn revision: 29816) commit 7ad9ffbb25e3cb0fca690b860408182c172ca9ef Author: Jannis Pohlmann Date: Tue Apr 14 22:32:29 2009 +0000 * thunar/thunar-preferences.c, thunar/thunar-sendto-model.c, thunar/thunar-shortcuts-model.c: Check whether the created file monitor is != NULL before connecting to its "changed" signal. (Old svn revision: 29815) commit d9c02640e57298a9531fffa72dab0ee6e82b152a Author: Jannis Pohlmann Date: Tue Apr 14 22:25:39 2009 +0000 * thunar/thunar-gio-extensions.c: Add new functions g_file_new_for_desktop() and g_file_is_desktop(). * thunar/thunar-shortcuts-model.c: Monitor ~/.gtk-bookmarks using GFileMOnitor instead of ThunarVfsMonitor. Replace all ThunarVfsPath references with equivalent code based on GFile. (Old svn revision: 29814) commit f087b78e20a01a36265041bbb75fc38510686c22 Author: Jannis Pohlmann Date: Tue Apr 14 16:00:38 2009 +0000 * thunar/thunar-preferences.c: Monitor thunarrc with GFileMonitor instead of ThunarVfsMonitor. All ThunarVFS references removed from the class. (Old svn revision: 29798) commit 6ba9f96db7e8fc67fa94abf60007d61ffd7a0489 Author: Jannis Pohlmann Date: Mon Apr 13 19:45:33 2009 +0000 * thunar/thunar-sendto-model.c: Monitor sendto/ directories with GFileMonitor instead of ThunarVfsMonitor. (Old svn revision: 29797) commit 03451f3505ef1e90702f658cfbde5f3a4f88346a Author: Jannis Pohlmann Date: Mon Apr 13 15:00:58 2009 +0000 * thunar/thunar-icon-factory.c: Replace ThunarVfsFileTime with guint64. * thunar/thunar-path-entry.c, thunar/thunar-util.{c,h}: Replace thunar_vfs_expand_filename() with thunar_util_expand_filename(). * thunar/thunar-renamer-model.c: Use GFile instead of ThunarVfsPath in trm_same_directory(). (Old svn revision: 29795) commit 44db6cfd1566c1133ade8acb96f73abab9f94f56 Author: Jannis Pohlmann Date: Mon Apr 13 11:37:18 2009 +0000 * thunar/thunar-permissions-chooser.c: Rename all occurances of ThunarVfsFileMode to ThunarFileMode. (Old svn revision: 29794) commit c81f1fae9a8c34745be7332a3bbae6d1f0a6c362 Author: Jannis Pohlmann Date: Mon Apr 13 11:30:35 2009 +0000 * thunar/thunar-renamer-dialog.c: Use a GFile instead of a ThunarVfsPath list in thunar_renamer_dialog_drag_data_received(). (Old svn revision: 29793) commit 9c10f796f1f98217d05bf08d14c0772caa6826d1 Author: Jannis Pohlmann Date: Mon Apr 13 11:22:23 2009 +0000 * thunar/thunar-list-model.c: Remove all ThunarVFS references left. (Old svn revision: 29792) commit 31bbf10286b658cb7d3e5d9ebb138717daef02aa Author: Jannis Pohlmann Date: Mon Apr 13 11:10:50 2009 +0000 * thunar/thunar-chooser-dialog.c: Expand the recommended/other rows properly after initializing the ThunarChooserModel. (Old svn revision: 29791) commit ab565658a66212304bdb961c1ea0d1a8bdf99a94 Author: Jannis Pohlmann Date: Mon Apr 13 02:59:04 2009 +0000 * configure.in.in: Bump exo dependency for the "gicon" property of ExoCellRendererIcon. * thunar/main.c: Set the desktop environment for GDesktopAppInfo if gio-unix is available. * thunar/thunar-chooser-dialog.c, thunar-chooser-model.{c,h}: Replace all ThunarVfsMime* references with code based on GAppInfo. Use the new "gicon" property of ExoCellRendererIcon. Only regression is that there is no way to check whether a GAppInfo was created by the user in GIO. (Old svn revision: 29790) commit 9af7ecc485a9d2d6aa39c497df96c3cbbc556125 Author: Jannis Pohlmann Date: Sun Apr 12 23:59:06 2009 +0000 * thunar/thunar-properties-dialog.c: Remove ThunarVfsMimeInfo and use a content type string in thunar_properties_dialog_update(). (Old svn revision: 29788) commit c9fbf9d27f119c1a5236b50ffcd33c5aee51831f Author: Jannis Pohlmann Date: Sun Apr 12 23:44:41 2009 +0000 * thunar/thunar-create-dialog.{c,h}: Replace the ThunarVfsMimeInfo member/property of ThunarCreateDialog with a content type string member/property. Rename thunar_create_dialog_{get,set}_mime_info() to thunar_create_dialog_{get,set}_content_type(). * thunar/thunar-location-buttons.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c: Update calls to thunar_show_create_dialog() to use a content type string rather than ThunarVfsMimeInfo. (Old svn revision: 29787) commit cb9b7fddab33abacea39e8df12f350fe90a9eca1 Author: Jannis Pohlmann Date: Sun Apr 12 18:07:32 2009 +0000 * thunar/thunar-chooser-button.c: Don't leak GAppInfos in thunar_chooser_button_pressed(). (Old svn revision: 29783) commit c42d3cf427845e3647d87ac4f296e61728a830e0 Author: Jannis Pohlmann Date: Sun Apr 12 16:37:06 2009 +0000 * thunar/thunar-chooser-button.c: Migrate ThunarChooserButton from ThunarVFS to GIO, using GAppInfo instead if ThunarVfsMime* classes. (Old svn revision: 29782) commit 20404ab67d887082de76aa826df11c7bde8e2f56 Author: Jannis Pohlmann Date: Sun Apr 12 14:00:11 2009 +0000 * thunar/thunar-file.{c,h}: Use GFileMonitor instead of ThunarVfsMonitor for monitoring a ThunarFile. Rewrite thunar_file_monitor(), remove thunar_file_watch_handle_quark and thunar_file_watch_free(). Add GFileMonitor member to ThunarFile. Make thunar_file_info_get_name() use thunar_file_get_basename(). * thunar/thunar-gio-extensions.c: Don't escape URIs when appending them to the string in g_file_list_to_string(). This seems to break copy&paste. (Old svn revision: 29781) commit 9c1dc5e841e5cbe048401b824ed504c0d008e518 Author: Jannis Pohlmann Date: Sun Apr 12 12:44:31 2009 +0000 * thunar/thunar-application.c, thunar/thunar-file.{c,h}, thunar/thunar-list-model.c, thunar/thunar-properties-dialog.c: Make thunar_file_get_original_path() and thunar_file_get_symlink_target() to return const strings. Update ThunarApplication, ThunarListModel and ThunarPropertiesDialog to reflect these changes. Implement thunar_file_is_trashed(), thunar_file_is_desktop_file() and thunar_file_get_display_name() based on GIO. Remove thunar_file_read_link(). (Old svn revision: 29780) commit 61f4342c1d2b6956103f7abc03fccf18c6dcd242 Author: Jannis Pohlmann Date: Sun Apr 12 01:02:59 2009 +0000 * thunar/thunar-file.{c,h}: Re-implement thunar_file_is_local(), thunar_file_is_ancestor(), thunar_file_is_executable(), thunar_file_is_readable(), thunar_file_is_writable(), thunar_file_is_hidden(), thunar_file_is_home(), thunar_file_is_regular() and thunar_file_dup_uri() based on GIO. (Old svn revision: 29775) commit e7784e8a578d134abfa713af269676e0ff8dfb67 Author: Jannis Pohlmann Date: Sun Apr 12 00:33:36 2009 +0000 * thunar/thunar-file.{c,h}: Add GFileInfo filesystem info member to ThunarFile. Initialize it in thunar_file_load(), otherwise make sure it's set to NULL. Make thunar_file_get_default_handler(), thunar_file_get_kind(), thunar_file_get_mode(), thunar_file_get_free_space(), thunar_file_is_directory() real functions and make them use GFile/GFileInfo. * thunar/thunar-list-model.c, thunar/thunar-properties-dialog.c: Use guint64 instead of ThunarVfsFileSize. Use g_file_size_humanize() instead of thunar_vfs_humanize_size(). (Old svn revision: 29774) commit 48747413bd71424be0bac641b0fa1939d8669ad8 Author: Jannis Pohlmann Date: Sat Apr 11 23:31:23 2009 +0000 * thunar/thunar-clipboard-manager.c: Use a GFile list and thunar_file_list_to_g_file_list() instead of the ThunarVFS equivalents in thunar_clipboard_manager_get_callback(). (Old svn revision: 29773) commit 899117959b11fb3f629dba56a4b63388dd5e9cd2 Author: Jannis Pohlmann Date: Sat Apr 11 23:04:06 2009 +0000 * thunar/thunar-file.{c,h}: Add new or re-implement the functions or macros thunar_file_get_content_type(), thunar_file_get_symlink_target(), thunar_file_get_basename(), thunar_file_is_symlink(), thunar_file_get_size() based on GIO. * thunar/thunar-list-model.c: Re-implement thunar_list_model_get_value() based on the new/changed functions. Same goes for sort_by_file_name(), sort_by_mime_type(), sort_by_type() and thunar_list_model_get_statusbar_text() which are almost ThunarVFS-free now. (Old svn revision: 29772) commit 8f019912a7b8d12da5c67e12a989e7aa5763afbc Author: Jannis Pohlmann Date: Sat Apr 11 22:04:43 2009 +0000 * thunar/thunar-path-entry.c: Re-implement thunar_path_entry_drag_data_get(), thunar_path_entry_changed() and thunar_path_entry_set_current_file() with GFile. file:// URI completion doesn't work yet. (Old svn revision: 29771) commit e32404588460e2d1bf9a8ec6b0c03927e3a09401 Author: Jannis Pohlmann Date: Sat Apr 11 21:42:51 2009 +0000 * thunar/thunar-file.c, thunar/thunar-metafile.{c,h}: Migrate ThunarMetadata to GIO. Update ThunarFile to pass the GFile instead of ThunarVfsPath to thunar_metafile_fetch() and thunar_metafile_store(). * thunar/thunar-tree-model.c: Re-implement thunar_tree_model_init() based on GFile. Unfortunately this breaks the trash (again) and thus the whole tree view. (Old svn revision: 29770) commit c6ed49a26ffdd0bb8d0dd8fd3ad508f37e40890b Author: Jannis Pohlmann Date: Sat Apr 11 21:07:38 2009 +0000 * thunar/thunar-trash-action.c: Replace all ThunarVfsPath references with GFile. (Old svn revision: 29769) commit 68405b0aadf49a56ab735eaf764f0be21591254d Author: Jannis Pohlmann Date: Sat Apr 11 19:56:14 2009 +0000 * thunar/thunar-file.c: Add assertion to thunar_file_load() to see for which files it fails rather than to see that in some random function later. * thunar/thunar-window.c: Re-implement thunar_window_open_trash() based on GFile. * thunar/thunar-file.c: Fix segfault in thunar_file_get(). (Old svn revision: 29768) commit d2deb320ee648fcff44d0e43598de0a48986ee53 Author: Jannis Pohlmann Date: Sat Apr 11 19:45:00 2009 +0000 * thunar/thunar-file.c: Fix segfault in thunar_file_get(). * thunar/thunar-window.c: Re-implement thunar_window_open_user_folder() based on GFile. (Old svn revision: 29767) commit 40e32768214dc42bf803c28b8b91766b22fb7405 Author: Jannis Pohlmann Date: Sat Apr 11 19:10:11 2009 +0000 * thunar/thunar-file.{c,h}: Add new function thunar_file_get(GFile*). Internally this still uses thunar_file_load() and can thus block the UI. For the sake of a smoother transition, asynchronous loading will be implemented at a later stage. * thunar/thunar-window.c: Re-implement thunar_window_open_home() based on thunar_file_get(). (Old svn revision: 29766) commit 81521de0364c1e7331f22ce69b058457cbec2ed9 Author: Jannis Pohlmann Date: Sat Apr 11 18:51:09 2009 +0000 * thunar/thunar-file.c: Tweak thunar_file_is_desktop() a little bit. * thunar/thunar-window.c: Re-implement thunar_window_setup_user_dir_menu_entries() based on GFile. Remove the special code for GLib < 2.14. (Old svn revision: 29765) commit df3ee89bcf60f0b528d59f28d36582f650c106d9 Author: Jannis Pohlmann Date: Sat Apr 11 16:33:07 2009 +0000 * thunar/thunar-file.{c,h}: Change thunar_file_get_custom_icon() to return a newly allocated string instead of a const one. Re-implement thunar_file_get_icon_name() based on GFileInfo and GThemedIcon. It now returns a string that has to be freed. * thunar/thunar-icon-factory.c, thunar/thunar-location-button.c, thunar/thunar-properties-dialog.c: Avoid leaks by freeing the strings returned by thunar_file_get_custom_icon() and thunar_file_get_icon_name(). * thunar/thunar-launcher.c, thunar/thunar-sendto-model.c: Remove debug statements. (Old svn revision: 29764) commit d892663ba804c9bf7c87379cb51d4568faea0b15 Author: Jannis Pohlmann Date: Sat Apr 11 15:36:06 2009 +0000 * configure.in.in, thunar/Makefile.am: Add optional dependency on gio-unix-2.0. * thunar/thunar-launcher.c, thunar/thunar-sendto-model.c: Load sendto handlers using GDesktopAppInfo (only supported on UNIX for whatever reason). Update ThunarLauncher to use GAppInfo for handlers retrieved from ThunarSendtoModel. Unfortunately, GIO doesn't support checking whether a GAppInfo supports more than one file argument. There's also no way to find out what MIME types a GAppInfo supports which forces us to drop a few nice sanity checks in thunar_sendto_model_get_matching(). (Old svn revision: 29763) commit 8f5c684d809c454521d822147de8efee70896511 Author: Jannis Pohlmann Date: Sat Apr 11 14:45:15 2009 +0000 * thunar/thunar-file.{c,h}: Add new macro thunar_file_get_default_handler() for querying the default GAppInfo to handle a ThunarFile. Use it in thunar_file_launch(). Fix pointer corruption issue thunar_file_reload(). Re-implement thunar_file_list_get_applications() based on GFileInfo/GAppInfo. Add new method thunar_file_list_to_g_file_list() as the GFile equivalent to thunar_file_list_to_path_list(). Add new macro thunar_file_get_file() to get the GFile for a ThunarFile. * thunar/thunar-gio-extensions.{c,h}: Add new function g_file_list_append() to append a GFile to a GFile list. * thunar/thunar-launcher.c: Replace most occurances of ThunarVfsMimeHandler with GAppInfo based on the changes made to ThunarFile. This currently breaks ThunarSendtoModel which will be worked on next. (Old svn revision: 29762) commit 42b0bbd32d3db03f294fecb33f3cf82ed5718461 Author: Jannis Pohlmann Date: Fri Apr 10 23:51:35 2009 +0000 * thunar/thunar-file.{c,h}: Re-implement thunar_file_get_size_string() based on GFileInfo and the new function g_file_size_humanize(). Re-implement thunar_file_get_deletion_date(), thunar_file_get_original_path() as well. They currently fail because there are no GFileInfos for objects in the Thunar trash at the moment. Also rewrite thunar_file_is_desktop() and make sure to reload the GFileInfo in thunar_file_reload(). * thunar/thunar-gio-extensions.{c,h}: Add new method g_file_size_humanize() to create nice file size labels. (Old svn revision: 29761) commit 4b710bcb1fc82a79bc6521eebbfc9e3ab78630f3 Author: Jannis Pohlmann Date: Fri Apr 10 23:14:49 2009 +0000 * thunar/thunar-file.{c,h}: Re-implement thunar_file_get_parent(), thunar_file_launch(), thunar_file_is_root() and thunar_file_has_parent() based on GFile/GFileInfo/GAppInfo. * thunar/thunar-gio-extensions.c: Fix problem in g_file_is_root(). (Old svn revision: 29760) commit ffe9d1a1e3e3ec40d753ce1c33e0db0fdee3eda1 Author: Jannis Pohlmann Date: Fri Apr 10 22:31:19 2009 +0000 * thunar/thunar-file.{c,h}: Replace all occurances of ThunarVfsFileMode with ThunarFileMode, which is the same, just moved from ThunarVFS into thunar-file.h. Re-implement thunar_file_info_get_name(), thunar_file_info_get_uri(), thunar_file_info_get_parent(), thunar_file_info_get_uri_scheme(), thunar_file_info_get_mime_type() and thunar_file_info_has_mime_type() based on GFile/GFileInfo. (Old svn revision: 29759) commit a27ecf7448921e07e64efe6ea5cce7be57630ede Author: Jannis Pohlmann Date: Fri Apr 10 22:00:47 2009 +0000 * thunar/Makefile.am, thunar/thunar-file.{c,h}, thunar/thunar-list-model.c, thunar/thunar-permissions-chooser.c, thunar/thunar-user.{c,h}: Move ThunarVfsUserManager, ThunarVfsUser and ThunarVfsGroup into Thunar, renaming them to ThunarUserManager, ThunarUser and ThunarGroup. Update the Thunar code to reflect this change. (Old svn revision: 29758) commit b889fee30a083e56c33ce82d13964f559f022ce5 Author: Jannis Pohlmann Date: Fri Apr 10 21:14:07 2009 +0000 * thunar/thunar-file.{c,h}: Use GFile in thunar_file_atexit_foreach(). When finalizing, creating or loading a ThunarFile, check whether the GFileInfo is NULL before unref'ing it. Use the GFile member instead of the ThunarVfsPath in thunar_file_rename(). Tweak thunar_file_accepts_drop() so that it converts the ThunarVfsPath elements of the path list into GFile objects for everything. This will make the transition away from ThunarVfsPath easier later. Rewrite thunar_file_is_trashed() so that it uses g_file_is_trashed(). * thunar/thunar-gio-extensions.{c,h}: Add new function g_file_is_trashed() which checks whether a GFile resides in the trash. * thunar/thunar-launcher.c, thunar/thunar-location-buttons.c, thunar/thunar-properties-dialog.c, thunar/thunar-shortcuts-view.c, thunar/thunar-standard-view.c, thunar/thunar-tree-model.c, thunar/thunar-tree-view.c, thunar/thunar-window.c: Include thunar-gio-extensions.h to compile with thunar_file_is_trashed(). (Old svn revision: 29757) commit bdf7cb149ec8541b67da5a6ded6a4cf86d6e907e Author: Jannis Pohlmann Date: Fri Apr 10 20:32:31 2009 +0000 * thunar/thunar-dnd.c, thunar/thunar-standard-view.c, thunar/thunar-tree-view.c, thunar/thunar-window.c: Use thunar_file_cache_lookup_path() instead of thunar_file_cache_lookup(). * thunar/thunar-file.{c,h}: Add new function thunar_file_load() for loading the GFileInfo of a ThunarFile synchronously. Use it in thunar_file_get_for_info() to load GIO data for a ThunarFile in addition to ThunarVFS information. Use GFile for the keys of the file cache and change the function signature of thunar_file_cache_lookup(). Add thunar_file_cache_lookup_path() for a smoother transition. (Old svn revision: 29756) commit 3b6b9a37d140fc7ef5a9b6e5adc74212f30d0414 Author: Jannis Pohlmann Date: Fri Apr 10 19:42:52 2009 +0000 * thunar/thunar-gio-extensions.c: Remove unused variable in g_file_list_new_from_string(). (Old svn revision: 29755) commit 90e6364192d4b37ddd6133d1acca4a24c1c8eae4 Author: Jannis Pohlmann Date: Fri Apr 10 19:42:47 2009 +0000 * thunar/Makefile.am, thunar/thunar-gio-extensions.{c,h}: Add a set of functions extending the GIO API, like g_file_new_for_home(), g_file_list_new_from_string(), g_file_list_to_string() and more. (Old svn revision: 29754) commit bb915fe25b700d2ff9d2c7aec2c5652c0e84da65 Author: Jannis Pohlmann Date: Fri Apr 10 19:42:40 2009 +0000 * AUTHORS: Put my name in. Yeah, yeah ... * configure.in.in, thunar/Makefile.am, thunarx/Makefile.am: Add dependency on GIO. Bump required GTK+/GLib version to 2.14/2.16. (Old svn revision: 29753) commit 762433ead3396bdbdff8d7b6b7aad634bada9d11 Author: Jannis Pohlmann Date: Thu Apr 9 21:49:51 2009 +0000 * README: Add information about the purpose of this branch and the thesis. (Old svn revision: 29746) commit 7891db503e2772d7329cd845995809623faab480 Author: Jannis Pohlmann Date: Thu Apr 9 21:43:36 2009 +0000 Create branch migration-to-gio (Old svn revision: 29745)