diff options
Diffstat (limited to 'xfce-extra/xfce4-linelight-plugin/files/xfce4-linelight-plugin-0.1.6-port-to-gio.patch')
-rw-r--r-- | xfce-extra/xfce4-linelight-plugin/files/xfce4-linelight-plugin-0.1.6-port-to-gio.patch | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/xfce-extra/xfce4-linelight-plugin/files/xfce4-linelight-plugin-0.1.6-port-to-gio.patch b/xfce-extra/xfce4-linelight-plugin/files/xfce4-linelight-plugin-0.1.6-port-to-gio.patch new file mode 100644 index 000000000000..b0934e96ad16 --- /dev/null +++ b/xfce-extra/xfce4-linelight-plugin/files/xfce4-linelight-plugin-0.1.6-port-to-gio.patch @@ -0,0 +1,279 @@ +http://bugs.ganymede.ch/index.php?do=details&task_id=155 + +--- configure.in ++++ configure.in +@@ -22,7 +22,8 @@ + dnl Check for required packages + XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.4.0]) + XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.4.0]) +-XDT_CHECK_PACKAGE([LIBTHUNAR_VFS], [thunar-vfs-1], [0.9.0]) ++XDT_CHECK_PACKAGE([LIBGIO], [gio-2.0], [2.18.0]) ++XDT_CHECK_PACKAGE([LIBGIOUNIX], [gio-unix-2.0], [2.16.0]) + XDT_CHECK_PACKAGE([LIBGTK], [gtk+-2.0], [2.12.0]) + XDT_CHECK_PACKAGE([LIBGTHREADS], [gthread-2.0], [2.16.0]) + +--- panel-plugin/main.c ++++ panel-plugin/main.c +@@ -28,7 +28,8 @@ + #include <gdk/gdkkeysyms.h> + #include <gdk/gdk.h> + +-#include <thunar-vfs/thunar-vfs.h> ++#include <gio/gio.h> ++#include <gio/gdesktopappinfo.h> + + #include <libxfcegui4/libxfcegui4.h> + +@@ -252,22 +253,33 @@ + + static void executeFile(char* path) + { +- ThunarVfsPath *thunarPath; +- ThunarVfsInfo *info; ++ GFile *file; ++ GFileInfo *info; ++ GAppInfo *app; ++ GDesktopAppInfo *desktop_app; ++ GList *fileList = NULL; + +- thunarPath = thunar_vfs_path_new (path,NULL); +- if (thunarPath == NULL) ++ file = g_file_new_for_path (path); ++ if (file == NULL) + return; + +- info = thunar_vfs_info_new_for_path(thunarPath,NULL); ++ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL); + if (info == NULL) ++ { ++ g_object_unref (file); + return; ++ } + + if (strstr(path,".desktop") != 0) + { +- thunar_vfs_info_execute(info, NULL, NULL,NULL,NULL); ++ desktop_app = g_desktop_app_info_new_from_filename (path); ++ if (desktop_app != NULL) ++ { ++ g_app_info_launch (G_APP_INFO (desktop_app), NULL, NULL, NULL); ++ g_object_unref (desktop_app); ++ } + } +- else if (info->type == THUNAR_VFS_FILE_TYPE_DIRECTORY) ++ else if (g_file_query_file_type (file, G_FILE_QUERY_INFO_NONE, NULL) == G_FILE_TYPE_DIRECTORY) + { + char command[strlen(path) + 10]; + strcpy(command, "thunar \""); +@@ -277,23 +289,17 @@ + } + else + { +- GList *pathList=NULL; +- pathList = g_list_append(pathList,thunarPath); ++ fileList = g_list_append (fileList, file); + +- ThunarVfsMimeDatabase *db = thunar_vfs_mime_database_get_default(); +- ThunarVfsMimeInfo *info = thunar_vfs_mime_database_get_info_for_file(db, path,NULL); +- ThunarVfsMimeApplication *app = thunar_vfs_mime_database_get_default_application(db,info); ++ app = g_app_info_get_default_for_type (g_file_info_get_content_type (info), FALSE); + +- thunar_vfs_mime_handler_exec (THUNAR_VFS_MIME_HANDLER(app),NULL, pathList, NULL); ++ g_app_info_launch (app, fileList, NULL, NULL); + +- g_object_unref(db); +- thunar_vfs_mime_info_unref(info); + g_object_unref(app); +- g_list_free(pathList); ++ g_list_free(fileList); + } +- thunar_vfs_info_unref(info); +- thunar_vfs_path_unref(thunarPath); +- ++ g_object_unref (info); ++ g_object_unref (file); + } + + void* show_all_search_results(void* arg) +@@ -559,7 +565,6 @@ + static void clean_up_cb(XfcePanelPlugin *plugin, gpointer userdata) + { + save_data_cb(plugin, userdata); +- thunar_vfs_shutdown(); + linelight_free(linelight); + system("rm -r /tmp/xfce4-linelight/"); + gdk_threads_leave (); +@@ -746,8 +751,7 @@ + int main (int argc, char *argv[]) + { + g_type_init (); +- thunar_vfs_init (); +- //g_thread_init (NULL); ++ g_thread_init (NULL); + gdk_threads_init(); + gdk_threads_enter(); + +@@ -772,7 +776,6 @@ + + + gtk_main (); +- thunar_vfs_shutdown(); + gdk_threads_leave (); + return 0; + } +@@ -781,8 +784,7 @@ + static void plugin_create(XfcePanelPlugin *plugin) + { + g_type_init (); +- thunar_vfs_init (); +- //g_thread_init (NULL); ++ g_thread_init (NULL); + gdk_threads_init(); + gdk_threads_enter(); + +--- panel-plugin/linelight.c ++++ panel-plugin/linelight.c +@@ -24,7 +24,7 @@ + #include <libxfce4panel/xfce-panel-plugin.h> + #include <libxfce4panel/xfce-panel-convenience.h> + +-#include <thunar-vfs/thunar-vfs.h> ++#include <gio/gio.h> + + #include <string.h> + #include <stdlib.h> +@@ -215,10 +215,10 @@ + gtk_list_store_insert(data->list, &iter, data->listPointer[sec]); + + GtkIconTheme *icon_theme = gtk_icon_theme_get_default(); +- ThunarVfsPath *thunarPath = thunar_vfs_path_new (entry,NULL); ++ GFile *file = g_file_new_for_path (entry); + + //icon +- if (thunarPath != NULL && sec == BIN_SECTION ) ++ if (g_file_query_exists (file, NULL) && sec == BIN_SECTION ) + { + XfceDesktopEntry* app = xfce_desktop_entry_new(entry,categories,3); + +@@ -228,25 +228,28 @@ + g_object_unref(app); + free(icon); + } +- thunar_vfs_path_unref(thunarPath); + } +- else if (thunarPath != NULL) ++ else if (file != NULL) + { +- ThunarVfsMimeDatabase* db = thunar_vfs_mime_database_get_default(); +- ThunarVfsMimeInfo* info = thunar_vfs_mime_database_get_info_for_file(db, entry,NULL); ++ GFileInfo *info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NONE, NULL, NULL); + if (info != NULL) + { +- const char *mime_icon = thunar_vfs_mime_info_lookup_icon_name(info, icon_theme); ++ GIcon *mime_icon = g_content_type_get_icon (g_file_info_get_content_type (info)); + if (mime_icon != NULL) + { +- pixbuf = gtk_icon_theme_load_icon(icon_theme, mime_icon, ICON_SIZE, GTK_ICON_LOOKUP_USE_BUILTIN,NULL); +- gtk_list_store_set(data->list, &iter, ICON_COL, pixbuf, -1); ++ GtkIconInfo *icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, mime_icon, ICON_SIZE, GTK_ICON_LOOKUP_USE_BUILTIN); ++ if (icon_info != NULL) ++ { ++ pixbuf = gtk_icon_info_load_icon (icon_info, NULL); ++ gtk_icon_info_free (icon_info); ++ gtk_list_store_set(data->list, &iter, ICON_COL, pixbuf, -1); ++ } ++ g_object_unref (mime_icon); + } +- thunar_vfs_mime_info_unref(info); ++ g_object_unref (info); + } +- g_object_unref(db); +- thunar_vfs_path_unref(thunarPath); + } ++ g_object_unref (file); + + //text + gtk_list_store_set(data->list, &iter, TEXT_COL, entry, -1); +@@ -275,24 +278,26 @@ + + remove_newline(result); + +- ThunarVfsPath *thunarPath = thunar_vfs_path_new (result,NULL); +- ThunarVfsInfo *info = thunar_vfs_info_new_for_path(thunarPath,NULL); +- thunar_vfs_path_unref(thunarPath); ++ GFile *file = g_file_new_for_path (result); ++ GFileInfo *info = g_file_query_info (file, "standard::*", G_FILE_QUERY_INFO_NONE, NULL, NULL); ++ g_object_unref(file); + + if (info == NULL) + { + return -1; + } + +- if ((info->type != THUNAR_VFS_FILE_TYPE_REGULAR && info->type != THUNAR_VFS_FILE_TYPE_DIRECTORY) || info->flags & THUNAR_VFS_FILE_FLAGS_HIDDEN) ++ GFileType type = g_file_info_get_file_type (info); ++ ++ if ((type != G_FILE_TYPE_REGULAR && type != G_FILE_TYPE_DIRECTORY) || g_file_info_get_is_hidden (info)) + { +- thunar_vfs_info_unref(info); ++ g_object_unref (info); + return -1; + } + +- if (info->type == THUNAR_VFS_FILE_TYPE_DIRECTORY) ++ if (type == G_FILE_TYPE_DIRECTORY) + { +- thunar_vfs_info_unref(info); ++ g_object_unref (info); + return FOLDER_SECTION; + } + +@@ -302,7 +307,7 @@ + path_lower = g_utf8_strdown(result,-1); + for (j = 0; j< SECTION_COUNT; j++) + { +- for (i = 0; i < data->listSectionPaths[j]->len && info->type != THUNAR_VFS_FILE_TYPE_DIRECTORY; i++) ++ for (i = 0; i < data->listSectionPaths[j]->len && type != G_FILE_TYPE_DIRECTORY; i++) + { + ending = g_ptr_array_index(data->listSectionPaths[j], i); + path_ending = strrchr(path_lower,'.'); +@@ -310,7 +315,7 @@ + if ( (path_ending != NULL && strcmp(path_ending, ending) == 0) || + (path_begining != NULL && j == FILES_SECTION && strcmp(path_begining, path_lower) == 0)) + { +- thunar_vfs_info_unref(info); ++ g_object_unref (info); + free(path_lower); + return j; + } +@@ -318,7 +323,7 @@ + } + + free(path_lower); +- thunar_vfs_info_unref(info); ++ g_object_unref (info); + + return -1; + } +--- panel-plugin/Makefile.am ++++ panel-plugin/Makefile.am +@@ -13,7 +13,8 @@ + -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ + $(LIBXFCEGUI4_CFLAGS) \ + $(LIBXFCE4PANEL_CFLAGS) \ +- $(LIBTHUNAR_VFS_CFLAGS) \ ++ $(LIBGIO_CFLAGS) \ ++ $(LIBGIOUNIX_CFLAGS) \ + $(LIBGTK_CFLAGS) \ + $(LIBGTHREADS_CFLAGS) + +@@ -21,7 +22,8 @@ + xfce4_linelight_plugin_LDFLAGS = \ + $(LIBXFCEGUI4_LIBS) \ + $(LIBXFCE4PANEL_LIBS) \ +- $(LIBTHUNAR_VFS_LIBS) \ ++ $(LIBGIO_LIBS) \ ++ $(LIBGIOUNIX_LIBS) \ + $(LIBGTK_LIBS) \ + $(LIBGTHREADS_LIBS) + |