diff -Naur gnome-do-0.9.orig/configure.ac gnome-do-0.9/configure.ac --- gnome-do-0.9.orig/configure.ac 2012-03-04 08:46:12.000000000 +0100 +++ gnome-do-0.9/configure.ac 2012-06-24 19:31:49.150955445 +0200 @@ -60,17 +60,29 @@ PKG_CHECK_MODULES([GCONF_SHARP_20], [gconf-sharp-2.0]) PKG_CHECK_MODULES([GLADE_SHARP_20], [glade-sharp-2.0]) PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0]) + +dnl gio-sharp is an unstable api library +PKG_CHECK_MODULES([GIO_SHARP], [gio-sharp-2.0]) +files="`$PKG_CONFIG --variable=Libraries gio-sharp-2.0`" +for file in $files; do + GIO_SHARP_SOURCE_ASSEMBLIES="$GIO_SHARP_SOURCE_ASSEMBLIES $file" + GIO_SHARP_ASSEMBLIES="$GIO_SHARP_ASSEMBLIES $top_srcdir/build/$(basename $file)" + [[ -r "$file.config" ]] && GIO_SHARP_SOURCE_ASSEMBLIES="$GIO_SHARP_SOURCE_ASSEMBLIES $file.config" + [[ -r "$file.config" ]] && GIO_SHARP_ASSEMBLIES="$GIO_SHARP_ASSEMBLIES $top_srcdir/build/$(basename $file).config" + + GIO_SHARP_LIBS="$GIO_SHARP_LIBS -r:$top_srcdir/build/$(basename $file)" +done +AC_SUBST([GIO_SHARP_SOURCE_ASSEMBLIES]) +AC_SUBST([GIO_SHARP_ASSEMBLIES]) +AC_SUBST([GIO_SHARP_LIBS]) + PKG_CHECK_MODULES([GNOME_DESKTOP_SHARP_20], [gnome-desktop-sharp-2.0]) PKG_CHECK_MODULES([GNOME_KEYRING_SHARP], [gnome-keyring-sharp-1.0]) -PKG_CHECK_MODULES([GNOME_SHARP_20], [gnome-sharp-2.0]) -PKG_CHECK_MODULES([GNOME_VFS_SHARP_20], [gnome-vfs-sharp-2.0]) PKG_CHECK_MODULES([GTK_SHARP_20], [gtk-sharp-2.0]) -PKG_CHECK_MODULES([LIBRSVG_SHARP], [rsvg2-sharp-2.0]) PKG_CHECK_MODULES([MONO_ADDINS], [mono-addins]) PKG_CHECK_MODULES([MONO_ADDINS_GUI], [mono-addins-gui]) PKG_CHECK_MODULES([MONO_ADDINS_SETUP], [mono-addins-setup]) PKG_CHECK_MODULES([NOTIFY_SHARP], [notify-sharp]) -PKG_CHECK_MODULES([WNCK_SHARP_10], [wnck-sharp-1.0]) AC_SUBST([GCONF_SHARP_20_LIBS]) @@ -78,10 +90,7 @@ AC_SUBST([GLIB_SHARP_20_LIBS]) AC_SUBST([GNOME_DESKTOP_SHARP_20_LIBS]) AC_SUBST([GNOME_KEYRING_SHARP_LIBS]) -AC_SUBST([GNOME_SHARP_20_LIBS]) -AC_SUBST([GNOME_VFS_SHARP_20_LIBS]) AC_SUBST([GTK_SHARP_20_LIBS]) -AC_SUBST([LIBRSVG_SHARP_LIBS]) AC_SUBST([MONO_ADDINS_LIBS]) AC_SUBST([MONO_ADDINS_GUI_LIBS]) AC_SUBST([MONO_ADDINS_SETUP_LIBS]) diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/Do.Platform.Linux.dll.config.in gnome-do-0.9/Do.Platform.Linux/Do.Platform.Linux.dll.config.in --- gnome-do-0.9.orig/Do.Platform.Linux/Do.Platform.Linux.dll.config.in 2012-01-14 14:49:58.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/Do.Platform.Linux.dll.config.in 2012-06-24 19:31:49.124289904 +0200 @@ -1,3 +1,4 @@ + diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/Makefile.am gnome-do-0.9/Do.Platform.Linux/Makefile.am --- gnome-do-0.9.orig/Do.Platform.Linux/Makefile.am 2012-01-14 14:49:58.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/Makefile.am 2012-06-24 19:31:49.127623096 +0200 @@ -27,6 +27,8 @@ src/Do.Platform/Do.Platform.Linux/KeyBindingService.cs \ src/Do.Universe/ApplicationItem.cs \ src/Do.Universe/CategoryItem.cs \ + src/Do.Universe/Desktop.cs \ + src/Do.Universe/DesktopThumbnailSize.cs \ src/Do.Universe/NullApplicationItem.cs \ src/Do.Universe/FileItem.cs \ src/Do.Universe/ApplicationItemSource.cs \ @@ -54,7 +56,7 @@ Mono.Posix \ $(GTK_SHARP_20_LIBS) \ $(GNOME_KEYRING_SHARP_LIBS) \ - $(GNOME_SHARP_20_LIBS) \ + $(GIO_SHARP_LIBS) \ $(GNOME_DESKTOP_SHARP_20_LIBS) \ $(GCONF_SHARP_20_LIBS) \ $(MONO_ADDINS_LIBS) \ diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs gnome-do-0.9/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs --- gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs 2012-01-14 14:49:58.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs 2012-06-24 19:31:49.130956287 +0200 @@ -166,7 +166,8 @@ string AutoStartUri { get { - return Gnome.Vfs.Uri.GetUriFromLocalPath (AutoStartFileName); + var uri = new Uri(AutoStartFileName).ToString(); + return uri; } } diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/Desktop.cs gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/Desktop.cs --- gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/Desktop.cs 1970-01-01 01:00:00.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/Desktop.cs 2012-06-24 19:31:49.134289478 +0200 @@ -0,0 +1,76 @@ +// This file was generated by the Gtk# code generator. +// Any changes made will be lost if regenerated. + +namespace Gnome { + + using System; + using System.Runtime.InteropServices; + +#region Autogenerated code + public class Desktop { + + [DllImport("gnome-desktop-2")] + static extern void gnome_desktop_prepend_terminal_to_vector(out int argc, IntPtr argv); + + public static int PrependTerminalToVector(string argv) { + int argc; + gnome_desktop_prepend_terminal_to_vector(out argc, GLib.Marshaller.StringToPtrGStrdup(argv)); + return argc; + } + + [DllImport("gnome-desktop-2")] + static extern bool gnome_desktop_thumbnail_has_uri(IntPtr pixbuf, IntPtr uri); + + public static bool ThumbnailHasUri(Gdk.Pixbuf pixbuf, string uri) { + IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri); + bool raw_ret = gnome_desktop_thumbnail_has_uri(pixbuf == null ? IntPtr.Zero : pixbuf.Handle, native_uri); + bool ret = raw_ret; + GLib.Marshaller.Free (native_uri); + return ret; + } + + [DllImport("gnome-desktop-2")] + static extern IntPtr gnome_desktop_thumbnail_scale_down_pixbuf(IntPtr pixbuf, int dest_width, int dest_height); + + public static Gdk.Pixbuf ThumbnailScaleDownPixbuf(Gdk.Pixbuf pixbuf, int dest_width, int dest_height) { + IntPtr raw_ret = gnome_desktop_thumbnail_scale_down_pixbuf(pixbuf == null ? IntPtr.Zero : pixbuf.Handle, dest_width, dest_height); + Gdk.Pixbuf ret = GLib.Object.GetObject(raw_ret) as Gdk.Pixbuf; + return ret; + } + + [DllImport("gnome-desktop-2")] + static extern IntPtr gnome_desktop_thumbnail_path_for_uri(IntPtr uri, int size); + + public static string ThumbnailPathForUri(string uri, Gnome.DesktopThumbnailSize size) { + IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri); + IntPtr raw_ret = gnome_desktop_thumbnail_path_for_uri(native_uri, (int) size); + string ret = GLib.Marshaller.PtrToStringGFree(raw_ret); + GLib.Marshaller.Free (native_uri); + return ret; + } + + [DllImport("gnome-desktop-2")] + static extern bool gnome_desktop_thumbnail_is_valid(IntPtr pixbuf, IntPtr uri, IntPtr mtime); + + public static bool ThumbnailIsValid(Gdk.Pixbuf pixbuf, string uri, System.DateTime mtime) { + IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri); + bool raw_ret = gnome_desktop_thumbnail_is_valid(pixbuf == null ? IntPtr.Zero : pixbuf.Handle, native_uri, GLib.Marshaller.DateTimeTotime_t (mtime)); + bool ret = raw_ret; + GLib.Marshaller.Free (native_uri); + return ret; + } + + [DllImport("gnome-desktop-2")] + static extern IntPtr gnome_desktop_thumbnail_md5(IntPtr uri); + + public static string ThumbnailMd5(string uri) { + IntPtr native_uri = GLib.Marshaller.StringToPtrGStrdup (uri); + IntPtr raw_ret = gnome_desktop_thumbnail_md5(native_uri); + string ret = GLib.Marshaller.PtrToStringGFree(raw_ret); + GLib.Marshaller.Free (native_uri); + return ret; + } + +#endregion + } +} diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/DesktopThumbnailSize.cs gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/DesktopThumbnailSize.cs --- gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/DesktopThumbnailSize.cs 1970-01-01 01:00:00.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/DesktopThumbnailSize.cs 2012-06-24 19:31:49.137622670 +0200 @@ -0,0 +1,16 @@ +// This file was generated by the Gtk# code generator. +// Any changes made will be lost if regenerated. + +namespace Gnome { + + using System; + using System.Runtime.InteropServices; + +#region Autogenerated code + public enum DesktopThumbnailSize { + + Normal, + Large, + } +#endregion +} diff -Naur gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/FileItem.cs gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/FileItem.cs --- gnome-do-0.9.orig/Do.Platform.Linux/src/Do.Universe/FileItem.cs 2012-01-14 14:49:58.000000000 +0100 +++ gnome-do-0.9/Do.Platform.Linux/src/Do.Universe/FileItem.cs 2012-06-24 19:31:49.140955864 +0200 @@ -63,8 +63,6 @@ static FileItem () { - Gnome.Vfs.Vfs.Initialize (); - // Initialize SpecialFolderIcons by expanding paths in // SpecialFolderIconsXDG. // @@ -130,7 +128,11 @@ } public string MimeType { - get { return Gnome.Vfs.Global.GetMimeType (Path); } + get { + GLib.File file = GLib.FileFactory.NewFromCommandlineArg(Path); + var info = file.QueryInfo ("standard::content-type", GLib.FileQueryInfoFlags.None, null); + return info.ContentType; + } } public override string Icon { @@ -142,8 +144,8 @@ icon = MaybeGetSpecialFolderIconForPath (Path); if (icon != null) return icon; - string large_thumb = Thumbnail.PathForUri (Uri, ThumbnailSize.Large); - string normal_thumb = Thumbnail.PathForUri (Uri, ThumbnailSize.Normal); + string large_thumb = Desktop.ThumbnailPathForUri (Uri, DesktopThumbnailSize.Large); + string normal_thumb = Desktop.ThumbnailPathForUri (Uri, DesktopThumbnailSize.Normal); // Generating the thumbnail ourself is too slow for large files. // Suggestion: generate thumbnails asynchronously. Banshee's diff -Naur gnome-do-0.9.orig/Makefile.am gnome-do-0.9/Makefile.am --- gnome-do-0.9.orig/Makefile.am 2012-01-14 14:49:58.000000000 +0100 +++ gnome-do-0.9/Makefile.am 2012-06-24 19:31:56.837297364 +0200 @@ -2,6 +2,22 @@ ACLOCAL_AMFLAGS = -I m4 -I m4/shamrock +# Install copied assemblies to our libdir +copiedlibsdir = $(pkglibdir) +copiedlibs_DATA = \ + $(GIO_SHARP_ASSEMBLIES) + +$(GIO_SHARP_ASSEMBLIES): $(GIO_SHARP_SOURCE_ASSEMBLIES) + @mkdir -p $(top_builddir)/build + @for file in $@ ; do \ + for source in $? ; do \ + if [ $$(basename $$source) == $$(basename $$file) ] ; then \ + echo " CP " $$(basename $$file) ; \ + cp $$source $$file ; \ + fi ;\ + done ; \ + done + SUBDIRS = \ . \ data \