parent
9a7e12aa45
commit
b4f8eecaa7
@ -0,0 +1,100 @@
|
|||||||
|
Index: configure.in
|
||||||
|
===================================================================
|
||||||
|
--- configure.in (revision 2182)
|
||||||
|
+++ configure.in (working copy)
|
||||||
|
@@ -18,13 +18,13 @@
|
||||||
|
dnl
|
||||||
|
dnl ==========================================================================
|
||||||
|
|
||||||
|
-GLIB_REQUIRED=2.12.0
|
||||||
|
+GLIB_REQUIRED=2.15.0
|
||||||
|
GTK_REQUIRED=2.10.0
|
||||||
|
LIBGNOME_REQUIRED=2.6.0
|
||||||
|
LIBGNOMEUI_REQUIRED=2.6.0
|
||||||
|
GNOME_VFS_REQUIRED=2.10.0
|
||||||
|
LIBGLADE_REQUIRED=2.4.0
|
||||||
|
-NAUTILUS_REQUIRED=2.10.0
|
||||||
|
+NAUTILUS_REQUIRED=2.21.0
|
||||||
|
|
||||||
|
AC_SUBST(GLIB_REQUIRED)
|
||||||
|
AC_SUBST(GTK_REQUIRED)
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(FR, \
|
||||||
|
glib-2.0 >= $GLIB_REQUIRED \
|
||||||
|
+ gio-2.0 >= $GLIB_REQUIRED \
|
||||||
|
gthread-2.0 \
|
||||||
|
gtk+-2.0 >= $GTK_REQUIRED \
|
||||||
|
libgnome-2.0 >= $LIBGNOME_REQUIRED \
|
||||||
|
Index: nautilus/nautilus-fileroller.c
|
||||||
|
===================================================================
|
||||||
|
--- nautilus/nautilus-fileroller.c (revision 2182)
|
||||||
|
+++ nautilus/nautilus-fileroller.c (working copy)
|
||||||
|
@@ -24,9 +24,7 @@
|
||||||
|
#include <config.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <glib/gi18n-lib.h>
|
||||||
|
-#include <libgnomevfs/gnome-vfs-utils.h>
|
||||||
|
-#include <libgnomevfs/gnome-vfs-file-info.h>
|
||||||
|
-#include <libgnomevfs/gnome-vfs-ops.h>
|
||||||
|
+#include <gio/gio.h>
|
||||||
|
#include <libnautilus-extension/nautilus-extension-types.h>
|
||||||
|
#include <libnautilus-extension/nautilus-file-info.h>
|
||||||
|
#include <libnautilus-extension/nautilus-menu-provider.h>
|
||||||
|
@@ -204,34 +202,31 @@
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
for (scan = files; scan; scan = scan->next) {
|
||||||
|
- NautilusFileInfo *file = scan->data;
|
||||||
|
+ NautilusFileInfo *file = scan->data;
|
||||||
|
|
||||||
|
- if (all_archives && ! is_archive (file))
|
||||||
|
- all_archives = FALSE;
|
||||||
|
+ if ((all_archives = is_archive (file)) == FALSE)
|
||||||
|
+ break;
|
||||||
|
|
||||||
|
+ /* FIXME: Here we should get the parent of the current
|
||||||
|
+ * file and check if it is the same parent as for the
|
||||||
|
+ * other files and then check if the parent is writable
|
||||||
|
+ *
|
||||||
|
+ * We *MUST NOT* do that synchronous since this function
|
||||||
|
+ * gets called very often (every time a selection changed)
|
||||||
|
+ * and it could be a remote location. MUST NOT DO SYNC IO.
|
||||||
|
+ *
|
||||||
|
+ * Nautilus actually already has stat'ed the parent and
|
||||||
|
+ * knows if the parent is writable or not. The API is
|
||||||
|
+ * just missing. This is filed under bug #521612. Once that
|
||||||
|
+ * bug is fixed we can actually implement the funcionality.
|
||||||
|
+ * Until then we just set can_write to TRUE. If that is an
|
||||||
|
+ * lie we will find out once the user tries to really extract
|
||||||
|
+ * stuff.
|
||||||
|
+ *
|
||||||
|
+ * Christian Kellner
|
||||||
|
+ * */
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (can_write) {
|
||||||
|
- char *parent_uri;
|
||||||
|
- GnomeVFSFileInfo *info;
|
||||||
|
- GnomeVFSResult result;
|
||||||
|
-
|
||||||
|
- parent_uri = nautilus_file_info_get_parent_uri (file);
|
||||||
|
- info = gnome_vfs_file_info_new ();
|
||||||
|
-
|
||||||
|
- result = gnome_vfs_get_file_info (parent_uri,
|
||||||
|
- info,
|
||||||
|
- (GNOME_VFS_FILE_INFO_FOLLOW_LINKS
|
||||||
|
- | GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS));
|
||||||
|
- if ((result == GNOME_VFS_OK) && (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS))
|
||||||
|
- can_write = (info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) || (info->permissions & GNOME_VFS_PERM_USER_WRITE);
|
||||||
|
-
|
||||||
|
- gnome_vfs_file_info_unref (info);
|
||||||
|
- g_free (parent_uri);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /**/
|
||||||
|
-
|
||||||
|
one_item = (files != NULL) && (files->next == NULL);
|
||||||
|
one_archive = one_item && all_archives;
|
||||||
|
|
Loading…
Reference in new issue