Add pcmanfm 0.1.9.8 (from poky)
authorRichard Purdie <rpurdie@rpsys.net>
Thu, 23 Mar 2006 23:02:17 +0000 (23:02 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Thu, 23 Mar 2006 23:02:17 +0000 (23:02 +0000)
packages/pcmanfm/.mtn2git_empty [new file with mode: 0644]
packages/pcmanfm/files/.mtn2git_empty [new file with mode: 0644]
packages/pcmanfm/files/emblem-symbolic-link.png [new file with mode: 0644]
packages/pcmanfm/files/gnome-fs-directory.png [new file with mode: 0644]
packages/pcmanfm/files/gnome-fs-regular.png [new file with mode: 0644]
packages/pcmanfm/files/gnome-mime-text-plain.png [new file with mode: 0644]
packages/pcmanfm/files/no-fam-gtk2.6.patch [new file with mode: 0644]
packages/pcmanfm/files/pcmanfm.desktop [new file with mode: 0644]
packages/pcmanfm/files/pcmanfm.png [new file with mode: 0644]
packages/pcmanfm/pcmanfm_0.1.9.8.bb [new file with mode: 0644]

diff --git a/packages/pcmanfm/.mtn2git_empty b/packages/pcmanfm/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/pcmanfm/files/.mtn2git_empty b/packages/pcmanfm/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/pcmanfm/files/emblem-symbolic-link.png b/packages/pcmanfm/files/emblem-symbolic-link.png
new file mode 100644 (file)
index 0000000..b8e5594
Binary files /dev/null and b/packages/pcmanfm/files/emblem-symbolic-link.png differ
diff --git a/packages/pcmanfm/files/gnome-fs-directory.png b/packages/pcmanfm/files/gnome-fs-directory.png
new file mode 100644 (file)
index 0000000..05921a6
Binary files /dev/null and b/packages/pcmanfm/files/gnome-fs-directory.png differ
diff --git a/packages/pcmanfm/files/gnome-fs-regular.png b/packages/pcmanfm/files/gnome-fs-regular.png
new file mode 100644 (file)
index 0000000..ce77a8e
Binary files /dev/null and b/packages/pcmanfm/files/gnome-fs-regular.png differ
diff --git a/packages/pcmanfm/files/gnome-mime-text-plain.png b/packages/pcmanfm/files/gnome-mime-text-plain.png
new file mode 100644 (file)
index 0000000..bfe4bad
Binary files /dev/null and b/packages/pcmanfm/files/gnome-mime-text-plain.png differ
diff --git a/packages/pcmanfm/files/no-fam-gtk2.6.patch b/packages/pcmanfm/files/no-fam-gtk2.6.patch
new file mode 100644 (file)
index 0000000..40ced49
--- /dev/null
@@ -0,0 +1,374 @@
+diff -urNd pcmanfm-0.1.9.8.old/configure.in pcmanfm-0.1.9.8/configure.in
+--- pcmanfm-0.1.9.8.old/configure.in   2006-02-08 17:13:05.000000000 +0000
++++ pcmanfm-0.1.9.8/configure.in       2006-02-14 22:53:22.000000000 +0000
+@@ -10,8 +10,12 @@
+ AM_PROG_CC_STDC
+ AC_HEADER_STDC
+-pkg_modules="gtk+-2.0 >= 2.8.0 gthread-2.0"
+-PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
++PKG_CHECK_MODULES(PACKAGE, [glib-2.0 >= 2.8.0 gtk+-2.0 >= 2.6.0 gthread-2.0], [
++  PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.8.0], have_gtk28=yes, have_gtk28=no)
++])
++if test x"$have_gtk28" = x"yes"; then
++  AC_DEFINE([HAVE_GTK_2_8],,[Define if you have gtk+-2.0 >= 2.8.0])
++fi
+ AC_SUBST(PACKAGE_CFLAGS)
+ AC_SUBST(PACKAGE_LIBS)
+@@ -38,8 +42,8 @@
+   LIBS="$LIBS $FAM_LIBS"
+   AC_CHECK_FUNCS([FAMNoExists])
+   LIBS="$save_LIBS"
+-else
+-  AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
++#else
++#  AC_MSG_ERROR([Fatal Error: no fam or gamin detected.])
+ fi
+ AC_SUBST([FAM_CFLAGS])
+diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.c pcmanfm-0.1.9.8/src/foldercontent.c
+--- pcmanfm-0.1.9.8.old/src/foldercontent.c    2006-02-08 18:36:52.000000000 +0000
++++ pcmanfm-0.1.9.8/src/foldercontent.c        2006-02-15 02:51:03.000000000 +0000
+@@ -31,9 +31,11 @@
+ }FolderContentCallback;
+ static GHashTable* folder_hash = NULL;
++#ifdef HAVE_FAM_H
+ static FAMConnection fam;
+ static GIOChannel* fam_io_channel = NULL;
+ static guint fam_io_watch = 0;
++#endif
+ typedef enum{
+   FCM_FOLDER_VIEW = 1 << 0,
+@@ -58,6 +60,9 @@
+ static FolderContent* folder_content_get( const char* path,
+                                           FolderContentMode mode,
+                                           GtkTreeRowReference* tree_parent,
++#ifndef HAVE_GTK_2_8
++                                          GtkTreeModel* tree_model,
++#endif
+                                           FolderContentUpdateFunc cb,
+                                           gpointer user_data );
+@@ -72,6 +77,7 @@
+ static gboolean connect_to_fam()
+ {
++#ifdef HAVE_FAM_H
+   if( FAMOpen( &fam ) )
+   {
+     fam_io_channel = NULL;
+@@ -100,10 +106,14 @@
+ /*
+   g_print("Connected to FAM server\n");
+ */
++#else
++  return FALSE;
++#endif
+ }
+ static void disconnect_from_fam()
+ {
++#ifdef HAVE_FAM_H
+   if( fam_io_channel )
+   {
+     g_io_channel_unref(fam_io_channel);
+@@ -115,6 +125,7 @@
+   g_print("Disonnected from FAM server\n");
+ */
+   }
++#endif
+ }
+ /*
+@@ -336,7 +347,11 @@
+   if( ! tree_node )
+     return;
++#ifdef HAVE_GTK_2_8
+   tree = gtk_tree_row_reference_get_model (tree_node);
++#else
++  tree = folder_content->tree_model;
++#endif
+   tree_path = gtk_tree_row_reference_get_path (tree_node);
+   if( !tree || !tree_path ){
+     return;
+@@ -428,6 +443,9 @@
+ FolderContent* folder_content_get( const char* path,
+                                    FolderContentMode mode,
+                                    GtkTreeRowReference* tree_node,
++#ifndef HAVE_GTK_2_8
++                                   GtkTreeModel* tree_model,
++#endif
+                                    FolderContentUpdateFunc callback,
+                                    gpointer user_data )
+ {
+@@ -467,6 +485,9 @@
+     */
+     if( ! folder_content->tree_node )
+     {
++#ifndef HAVE_GTK_2_8
++      folder_content->tree_model = tree_model;
++#endif
+       folder_content->tree_node = tree_node;
+       dir_tree_sub_folders_new( folder_content );
+     }
+@@ -475,10 +496,12 @@
+   /* First new instance */
+   if( add_new ){
++#ifdef HAVE_FAM_H
+     FAMMonitorDirectory( &fam,
+                           path,
+                           &folder_content->request,
+                           folder_content );
++#endif
+   }
+   if( callback ) /* Install a callback */
+@@ -548,7 +571,9 @@
+       && 0 >= folder_content->n_ref_tree )
+   {
+     /* g_print("cancel monitor!\n"); */
++#ifdef HAVE_FAM_H
+     FAMCancelMonitor( &fam, &folder_content->request );
++#endif
+     g_hash_table_remove( folder_hash, folder_content->path );
+     g_free( folder_content->path );
+     g_array_free( folder_content->callbacks, TRUE );
+@@ -561,6 +586,7 @@
+                              GIOCondition cond,
+                              gpointer user_data )
+ {
++#ifdef HAVE_FAM_H
+   FAMEvent evt;
+   FolderContent* content = NULL;
+   GdkPixbuf *folder_icon = get_folder_icon32();
+@@ -613,21 +639,36 @@
+     }
+   }
+   return TRUE;
++#else
++  return FALSE;
++#endif
+ }
+ FolderContent* folder_content_list_get( const char* path,
+                                         FolderContentUpdateFunc cb,
+                                         gpointer user_data )
+ {
++#ifdef HAVE_GTK_2_8
+   return folder_content_get( path, FCM_FOLDER_VIEW, NULL, cb, user_data );
++#else
++  return folder_content_get( path, FCM_FOLDER_VIEW, NULL, NULL, cb, user_data );
++#endif
+ }
+ FolderContent* folder_content_tree_get( const char* path,
+                                         GtkTreeRowReference* tree_parent,
++#ifndef HAVE_GTK_2_8
++                                        GtkTreeModel* tree_model,
++#endif
+                                         FolderContentUpdateFunc cb,
+                                         gpointer user_data )
+ {
++#ifdef HAVE_GTK_2_8
+   return folder_content_get( path, FCM_DIR_TREE, tree_parent, cb, user_data );
++#else
++  return folder_content_get( path, FCM_DIR_TREE, tree_parent, tree_model, cb,
++                             user_data );
++#endif
+ }
+ void folder_content_list_unref( FolderContent* folder_content,
+@@ -688,7 +729,11 @@
+   }
+   if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+     model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++    model = content->tree_model;
++#endif
+     tree_path = gtk_tree_row_reference_get_path(
+         content->tree_node );
+     gtk_tree_model_get_iter( model, &parent_it, tree_path );
+@@ -724,7 +769,11 @@
+   }
+   if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+     model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++    model = content->tree_model;
++#endif
+     tree_path = gtk_tree_row_reference_get_path(
+                                   content->tree_node );
+     gtk_tree_model_get_iter( model, &parent_it, tree_path );
+@@ -776,7 +825,11 @@
+   /* There is no need to update the dir tree currently. */
+   if( content->tree_node ) {
++#ifdef HAVE_GTK_2_8
+     model = gtk_tree_row_reference_get_model( content->tree_node );
++#else
++    model = content->tree_model;
++#endif
+     tree_path = gtk_tree_row_reference_get_path(
+         content->tree_node );
+     gtk_tree_model_get_iter( model, &parent_it, tree_path );
+diff -urNd pcmanfm-0.1.9.8.old/src/foldercontent.h pcmanfm-0.1.9.8/src/foldercontent.h
+--- pcmanfm-0.1.9.8.old/src/foldercontent.h    2006-02-07 10:26:03.000000000 +0000
++++ pcmanfm-0.1.9.8/src/foldercontent.h        2006-02-15 02:13:40.000000000 +0000
+@@ -15,7 +15,12 @@
+ #include <gtk/gtk.h>
+ #include <glib.h>
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++#ifdef HAVE_FAM_H
+ #include <fam.h>
++#endif
+ /* Columns of folderView */
+ enum{
+@@ -42,10 +47,20 @@
+ typedef struct{
+   GtkListStore* list; /* for Folder View */
+   int n_ref_list;  /* reference counting */
++#ifndef HAVE_GTK_2_8
++  GtkTreeModel* tree_model;
++#endif
+   GtkTreeRowReference* tree_node;  /* for Dir Tree */
+   int n_ref_tree;
++#ifdef HAVE_FAM_H
+   FAMRequest request;
++#else
++  /* A structure the same size as FAMRequest */
++  struct unused {
++    int unused;
++  };
++#endif
+   gchar* path;
+   int n_files;
+@@ -82,6 +97,9 @@
+ FolderContent* folder_content_tree_get( const char* path,
+                                         GtkTreeRowReference* tree_node,
++#ifndef HAVE_GTK_2_8
++                                        GtkTreeModel* tree_model,
++#endif
+                                         FolderContentUpdateFunc callback,
+                                         gpointer user_data );
+diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c
+--- pcmanfm-0.1.9.8.old/src/ptk/ptkfilebrowser.c       2006-02-09 04:29:32.000000000 +0000
++++ pcmanfm-0.1.9.8/src/ptk/ptkfilebrowser.c   2006-02-15 02:07:16.000000000 +0000
+@@ -31,6 +31,9 @@
+ #include "ptkutils.h"
+ #include "settings.h"
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
+ /* If set to FALSE, all selection changes in folder_view are prevented. */
+@@ -1127,7 +1130,11 @@
+     }
+     row_ref = gtk_tree_row_reference_new( store, real_path );
++#ifdef HAVE_GTK_2_8
+     content = folder_content_tree_get( dir_path, row_ref, NULL, NULL );
++#else
++    content = folder_content_tree_get( dir_path, row_ref, model, NULL, NULL );
++#endif
+     gtk_tree_model_get_iter( model, &it, tree_path );
+     if( gtk_tree_model_iter_children( model, &child, &it ) ) {
+@@ -1231,12 +1238,15 @@
+     model = ptk_icon_view_get_model( PTK_ICON_VIEW(folder_view) );
+   }
+   else if( file_browser->view_mode == FBVM_LIST_VIEW ) {
++#ifdef HAVE_GTK_2_8
+     if( !gtk_tree_view_get_visible_range ( GTK_TREE_VIEW(folder_view),
+                                            &start_path, &end_path ) )
+       return;
++#endif
+     model = gtk_tree_view_get_model( GTK_TREE_VIEW(folder_view) );
+   }
++#ifdef HAVE_GTK_2_8
+   /*
+     NOTE:It seems that this is a bug of gtk+ 2.8.
+     gtk_tree_view_get_visible_range sometimes returns invalid paths.
+@@ -1252,6 +1262,7 @@
+       gtk_tree_path_free( end_path );
+     return;
+   }
++#endif
+   model_sorter = PTK_TREE_MODEL_SORT( gtk_tree_model_filter_get_model(
+                                             GTK_TREE_MODEL_FILTER(model) ) );
+diff -urNd pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c
+--- pcmanfm-0.1.9.8.old/src/ptk/ptkfileiconrenderer.c  2006-02-03 04:24:09.000000000 +0000
++++ pcmanfm-0.1.9.8/src/ptk/ptkfileiconrenderer.c      2006-02-15 02:09:00.000000000 +0000
+@@ -346,7 +346,9 @@
+   GdkPixbuf *colorized = NULL;
+   GdkRectangle pix_rect;
+   GdkRectangle draw_rect;
++#ifdef HAVE_GTK_2_8
+   cairo_t *cr;
++#endif
+   GtkCellRendererClass* parent_renderer_class;
+@@ -432,16 +434,23 @@
+       pixbuf = colorized;
+     }
+   }
++#ifdef HAVE_GTK_2_8
+   cr = gdk_cairo_create (window);
+   gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y);
+   gdk_cairo_rectangle (cr, &draw_rect);
+   cairo_fill (cr);
++#else
++  gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, pixbuf, 0, 0,
++                   pix_rect.x, pix_rect.y, pix_rect.width, pix_rect.height,
++                   GDK_RGB_DITHER_NORMAL, 0, 0);
++#endif
+   if( PTK_FILE_ICON_RENDERER(cell)->file_stat )
+   {
+     if( S_ISLNK(PTK_FILE_ICON_RENDERER(cell)->file_stat->st_mode) )
+     {
++#ifdef HAVE_GTK_2_8
+       gdk_cairo_set_source_pixbuf (cr, link_icon_large,
+                                    pix_rect.x - 2,
+                                    pix_rect.y - 2 );
+@@ -449,10 +458,18 @@
+       draw_rect.y -= 2;
+       gdk_cairo_rectangle (cr, &draw_rect);
+       cairo_fill (cr);
++#else
++      gdk_draw_pixbuf (GDK_DRAWABLE (window), NULL, link_icon_large, 0, 0,
++                       pix_rect.x - 2, pix_rect.y - 2,
++                       -1, -1, GDK_RGB_DITHER_NORMAL,
++                       0, 0);
++#endif
+     }
+   }
+-
++  
++#ifdef HAVE_GTK_2_8
+   cairo_destroy (cr);
++#endif
+   if (invisible)
+     g_object_unref (invisible);
diff --git a/packages/pcmanfm/files/pcmanfm.desktop b/packages/pcmanfm/files/pcmanfm.desktop
new file mode 100644 (file)
index 0000000..052d38c
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=File Manager
+Exec=/usr/bin/pcmanfm
+Icon=pcmanfm.png
+Terminal=false
+Type=Application
+Categories=Utility;
+SingleInstance=true
+StartupNotify=true
+
diff --git a/packages/pcmanfm/files/pcmanfm.png b/packages/pcmanfm/files/pcmanfm.png
new file mode 100644 (file)
index 0000000..3d35360
Binary files /dev/null and b/packages/pcmanfm/files/pcmanfm.png differ
diff --git a/packages/pcmanfm/pcmanfm_0.1.9.8.bb b/packages/pcmanfm/pcmanfm_0.1.9.8.bb
new file mode 100644 (file)
index 0000000..f35d0d4
--- /dev/null
@@ -0,0 +1,29 @@
+LICENSE = "GPL"
+DESCRIPTION = "procfs tools"
+SECTION = "x11"
+PRIORITY = "optional"
+MAINTAINER = "Chris Lord <chris@openedhand.com>"
+DEPENDS = "gtk+"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.gz \
+          file://pcmanfm.desktop \
+          file://pcmanfm.png \
+          file://gnome-fs-directory.png \
+          file://gnome-fs-regular.png \
+          file://gnome-mime-text-plain.png \
+          file://emblem-symbolic-link.png \
+          file://no-fam-gtk2.6.patch;patch=1;pnum=1"
+
+inherit autotools pkgconfig
+
+do_install_append () {
+       install -d ${D}/${datadir}
+       install -d ${D}/${datadir}/applications
+       install -d ${D}/${datadir}/pixmaps/
+
+       install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
+       install -m 0644 ${WORKDIR}/pcmanfm.desktop ${D}/${datadir}/applications
+}
+
+FILES_${PN} += "${datadir}/applications/pcmanfm.desktop ${datadir}/pixmaps/*.png"
+