[nautilus] Don't show properties for the Network locations



commit 423675f1de01c312cc8ed0454b8d47809f419b7a
Author: William Jon McCann <jmccann redhat com>
Date:   Tue Aug 21 12:21:15 2012 -0400

    Don't show properties for the Network locations
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682371

 libnautilus-private/nautilus-directory.c |   13 +++++++++++++
 libnautilus-private/nautilus-directory.h |    1 +
 libnautilus-private/nautilus-file.c      |   17 +++++++++++++++++
 libnautilus-private/nautilus-file.h      |    1 +
 src/nautilus-view.c                      |   25 +++++++++++++++++++------
 5 files changed, 51 insertions(+), 6 deletions(-)
---
diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c
index fee04d7..219cc33 100644
--- a/libnautilus-private/nautilus-directory.c
+++ b/libnautilus-private/nautilus-directory.c
@@ -548,6 +548,19 @@ nautilus_directory_is_in_recent (NautilusDirectory *directory)
 }
 
 gboolean
+nautilus_directory_is_in_network (NautilusDirectory *directory)
+{
+	g_assert (NAUTILUS_IS_DIRECTORY (directory));
+
+	if (directory->details->location == NULL) {
+		return FALSE;
+	}
+
+	return g_file_has_uri_scheme (directory->details->location, "network") ||
+		g_file_has_uri_scheme (directory->details->location, "dns-sd");
+}
+
+gboolean
 nautilus_directory_are_all_files_seen (NautilusDirectory *directory)
 {
 	g_return_val_if_fail (NAUTILUS_IS_DIRECTORY (directory), FALSE);
diff --git a/libnautilus-private/nautilus-directory.h b/libnautilus-private/nautilus-directory.h
index ac9cc7e..a11377e 100644
--- a/libnautilus-private/nautilus-directory.h
+++ b/libnautilus-private/nautilus-directory.h
@@ -217,6 +217,7 @@ gboolean           nautilus_directory_is_local                 (NautilusDirector
 
 gboolean           nautilus_directory_is_in_trash              (NautilusDirectory         *directory);
 gboolean           nautilus_directory_is_in_recent             (NautilusDirectory         *directory);
+gboolean           nautilus_directory_is_in_network            (NautilusDirectory         *directory);
 
 /* Return false if directory contains anything besides a Nautilus metafile.
  * Only valid if directory is monitored. Used by the Trash monitor.
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 3a9d321..847a7b0 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -6800,6 +6800,23 @@ nautilus_file_is_in_recent (NautilusFile *file)
 	return nautilus_directory_is_in_recent (file->details->directory);
 }
 
+/**
+ * nautilus_file_is_in_network
+ * 
+ * Check if this file is a file in Network.
+ * @file: NautilusFile representing the file in question.
+ * 
+ * Returns: TRUE if @file is in Network.
+ * 
+ **/
+gboolean
+nautilus_file_is_in_network (NautilusFile *file)
+{
+	g_assert (NAUTILUS_IS_FILE (file));
+
+	return nautilus_directory_is_in_network (file->details->directory);
+}
+
 GError *
 nautilus_file_get_file_info_error (NautilusFile *file)
 {
diff --git a/libnautilus-private/nautilus-file.h b/libnautilus-private/nautilus-file.h
index a1bedf1..79677b2 100644
--- a/libnautilus-private/nautilus-file.h
+++ b/libnautilus-private/nautilus-file.h
@@ -192,6 +192,7 @@ gboolean                nautilus_file_is_in_search                      (Nautilu
 gboolean                nautilus_file_is_in_trash                       (NautilusFile                   *file);
 gboolean                nautilus_file_is_in_recent                      (NautilusFile                   *file);
 gboolean                nautilus_file_is_in_desktop                     (NautilusFile                   *file);
+gboolean                nautilus_file_is_in_network                     (NautilusFile                   *file);
 gboolean		nautilus_file_is_home				(NautilusFile                   *file);
 gboolean                nautilus_file_is_desktop_directory              (NautilusFile                   *file);
 GError *                nautilus_file_get_file_info_error               (NautilusFile                   *file);
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index f224358..4b4b98a 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -536,6 +536,18 @@ showing_trash_directory (NautilusView *view)
 }
 
 static gboolean
+showing_network_directory (NautilusView *view)
+{
+	NautilusFile *file;
+
+	file = nautilus_view_get_directory_as_file (view);
+	if (file != NULL) {
+		return nautilus_file_is_in_network (file);
+	}
+	return FALSE;
+}
+
+static gboolean
 showing_recent_directory (NautilusView *view)
 {
 	NautilusFile *file;
@@ -7400,7 +7412,7 @@ static const GtkActionEntry directory_view_entries[] = {
   /* name, stock id, label */  { "New Documents", "document-new", N_("New _Document") },
   /* name, stock id, label */  { "Open With", NULL, N_("Open Wit_h"),
 				 NULL, N_("Choose a program with which to open the selected item") },
-  /* name, stock id */         { "Properties", GTK_STOCK_PROPERTIES,
+  /* name, stock id */         { NAUTILUS_ACTION_PROPERTIES, GTK_STOCK_PROPERTIES,
   /* label, accelerator */       N_("P_roperties"), "<alt>Return",
   /* tooltip */                  N_("View or modify the properties of each selected item"),
 				 G_CALLBACK (action_properties_callback) },
@@ -7667,7 +7679,7 @@ static const GtkActionEntry directory_view_entries[] = {
   /* tooltip */                  N_("Detect media in the selected drive"),
 				 G_CALLBACK (action_location_detect_media_callback) },
 
-  /* name, stock id */         { "LocationProperties", GTK_STOCK_PROPERTIES,
+  /* name, stock id */         { NAUTILUS_ACTION_LOCATION_PROPERTIES, GTK_STOCK_PROPERTIES,
   /* label, accelerator */       N_("P_roperties"), NULL,
   /* tooltip */                  N_("View or modify the properties of this folder"),
 				 G_CALLBACK (action_location_properties_callback) },
@@ -8998,13 +9010,15 @@ real_update_menus (NautilusView *view)
 			      	"Ma_ke Links",
 				selection_count),
 		      NULL);
-	
-	show_properties = (!NAUTILUS_IS_DESKTOP_CANVAS_VIEW (view) || selection_count > 0);
+
+	show_properties = !showing_network_directory (view)
+		&& (!NAUTILUS_IS_DESKTOP_CANVAS_VIEW (view) || selection_count > 0);
 
 	action = gtk_action_group_get_action (view->details->dir_action_group,
 					      NAUTILUS_ACTION_PROPERTIES);
 
 	gtk_action_set_sensitive (action, show_properties);
+	gtk_action_set_visible (action, show_properties);
 
 	if (selection_count == 0) {
 		gtk_action_set_tooltip (action, _("View or modify the properties of the open folder"));
@@ -9012,12 +9026,11 @@ real_update_menus (NautilusView *view)
 		gtk_action_set_tooltip (action, _("View or modify the properties of each selected item"));
 	}
 
-	gtk_action_set_visible (action, show_properties);
-
 	action = gtk_action_group_get_action (view->details->dir_action_group,
 					      NAUTILUS_ACTION_PROPERTIES_ACCEL);
 
 	gtk_action_set_sensitive (action, show_properties);
+	gtk_action_set_visible (action, show_properties);
 
 	action = gtk_action_group_get_action (view->details->dir_action_group,
 					      NAUTILUS_ACTION_EMPTY_TRASH);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]