[nautilus/gnome-3-6] directory: simplify directory creation in a single place
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/gnome-3-6] directory: simplify directory creation in a single place
- Date: Mon, 15 Oct 2012 13:43:30 +0000 (UTC)
commit eb24dfed83b3fa37aff7f2fade1d1de3729592a3
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Tue Oct 2 13:04:05 2012 -0400
directory: simplify directory creation in a single place
nautilus_directory_new() is now the only place that calls g_object_new()
to create a new directory. Replace the _from_saved_search() constructor
with a setter.
libnautilus-private/nautilus-directory.c | 22 ++++++++++++++--------
libnautilus-private/nautilus-search-directory.c | 16 +++++-----------
libnautilus-private/nautilus-search-directory.h | 4 ++--
3 files changed, 21 insertions(+), 21 deletions(-)
---
diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c
index c35f842..1e8df6d 100644
--- a/libnautilus-private/nautilus-directory.c
+++ b/libnautilus-private/nautilus-directory.c
@@ -554,22 +554,28 @@ static NautilusDirectory *
nautilus_directory_new (GFile *location)
{
NautilusDirectory *directory;
+ GType type;
char *uri;
+ gboolean is_saved_search;
uri = g_file_get_uri (location);
-
+ is_saved_search = g_str_has_suffix (uri, NAUTILUS_SAVED_SEARCH_EXTENSION);
+
if (eel_uri_is_desktop (uri)) {
- directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_DESKTOP_DIRECTORY, "location", location, NULL));
- } else if (eel_uri_is_search (uri)) {
- directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_SEARCH_DIRECTORY, "location", location, NULL));
- } else if (g_str_has_suffix (uri, NAUTILUS_SAVED_SEARCH_EXTENSION)) {
- directory = NAUTILUS_DIRECTORY (nautilus_search_directory_new_from_saved_search (uri));
+ type = NAUTILUS_TYPE_DESKTOP_DIRECTORY;
+ } else if (eel_uri_is_search (uri) || is_saved_search) {
+ type = NAUTILUS_TYPE_SEARCH_DIRECTORY;
} else {
- directory = NAUTILUS_DIRECTORY (g_object_new (NAUTILUS_TYPE_VFS_DIRECTORY, "location", location, NULL));
+ type = NAUTILUS_TYPE_VFS_DIRECTORY;
}
g_free (uri);
-
+
+ directory = g_object_new (type, "location", location, NULL);
+ if (is_saved_search) {
+ nautilus_search_directory_set_saved_search (NAUTILUS_SEARCH_DIRECTORY (directory), location);
+ }
+
return directory;
}
diff --git a/libnautilus-private/nautilus-search-directory.c b/libnautilus-private/nautilus-search-directory.c
index 96b53b4..ff56e5b 100644
--- a/libnautilus-private/nautilus-search-directory.c
+++ b/libnautilus-private/nautilus-search-directory.c
@@ -925,20 +925,15 @@ nautilus_search_directory_get_query (NautilusSearchDirectory *search)
return NULL;
}
-NautilusSearchDirectory *
-nautilus_search_directory_new_from_saved_search (const char *uri)
+void
+nautilus_search_directory_set_saved_search (NautilusSearchDirectory *search,
+ GFile *saved_search)
{
- NautilusSearchDirectory *search;
NautilusQuery *query;
char *file;
- GFile *location;
-
- location = g_file_new_for_uri (uri);
- search = NAUTILUS_SEARCH_DIRECTORY (g_object_new (NAUTILUS_TYPE_SEARCH_DIRECTORY, "location", location, NULL));
- search->details->saved_search_uri = g_strdup (uri);
- file = g_file_get_path (location);
- g_object_unref (location);
+ search->details->saved_search_uri = g_file_get_uri (saved_search);
+ file = g_file_get_path (saved_search);
if (file != NULL) {
query = nautilus_query_load (file);
@@ -952,7 +947,6 @@ nautilus_search_directory_new_from_saved_search (const char *uri)
}
search->details->modified = FALSE;
- return search;
}
gboolean
diff --git a/libnautilus-private/nautilus-search-directory.h b/libnautilus-private/nautilus-search-directory.h
index 9f734d1..e8b0c67 100644
--- a/libnautilus-private/nautilus-search-directory.h
+++ b/libnautilus-private/nautilus-search-directory.h
@@ -55,8 +55,8 @@ GType nautilus_search_directory_get_type (void);
char *nautilus_search_directory_generate_new_uri (void);
-NautilusSearchDirectory *nautilus_search_directory_new_from_saved_search (const char *uri);
-
+void nautilus_search_directory_set_saved_search (NautilusSearchDirectory *search,
+ GFile *saved_search);
gboolean nautilus_search_directory_is_saved_search (NautilusSearchDirectory *search);
gboolean nautilus_search_directory_is_modified (NautilusSearchDirectory *search);
void nautilus_search_directory_save_search (NautilusSearchDirectory *search);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]