diff options
author | Carlos Soriano <csoriano@gnome.org> | 2016-03-18 14:57:29 +0100 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2016-04-06 10:38:08 +0200 |
commit | 7df9ea75c2fd0532bcee25c3a5159bf4075a07e0 (patch) | |
tree | 5afaeca013ef489a922753ca2512f1f4fe8f9686 | |
parent | b831d0d63f2a720d010dd0107561350028f20fe1 (diff) | |
download | nautilus-7df9ea75c2fd0532bcee25c3a5159bf4075a07e0.tar.gz |
files-view: use inheritance for get_backing_uri
So we remove another desktop special case
-rw-r--r-- | src/nautilus-desktop-canvas-view.c | 33 | ||||
-rw-r--r-- | src/nautilus-files-view.c | 17 |
2 files changed, 34 insertions, 16 deletions
diff --git a/src/nautilus-desktop-canvas-view.c b/src/nautilus-desktop-canvas-view.c index bc6dfa8ce..2d8e5a5da 100644 --- a/src/nautilus-desktop-canvas-view.c +++ b/src/nautilus-desktop-canvas-view.c @@ -39,6 +39,7 @@ #include <gdk/gdkx.h> #include <glib/gi18n.h> #include <libnautilus-private/nautilus-desktop-icon-file.h> +#include <libnautilus-private/nautilus-desktop-directory.h> #include <libnautilus-private/nautilus-directory-notify.h> #include <libnautilus-private/nautilus-file-changes-queue.h> #include <libnautilus-private/nautilus-file-operations.h> @@ -65,6 +66,7 @@ struct NautilusDesktopCanvasViewDetails static void default_zoom_level_changed (gpointer user_data); static void real_update_context_menus (NautilusFilesView *view); +static char* real_get_backing_uri (NautilusFilesView *view); static void nautilus_desktop_canvas_view_update_canvas_container_fonts (NautilusDesktopCanvasView *view); static void font_changed_callback (gpointer callback_data); @@ -289,6 +291,7 @@ nautilus_desktop_canvas_view_class_init (NautilusDesktopCanvasViewClass *class) vclass->update_context_menus = real_update_context_menus; vclass->get_view_id = real_get_id; vclass->end_loading = nautilus_desktop_canvas_view_end_loading; + vclass->get_backing_uri = real_get_backing_uri; g_type_class_add_private (class, sizeof (NautilusDesktopCanvasViewDetails)); } @@ -555,6 +558,36 @@ const GActionEntry desktop_view_entries[] = { { "unstretch", action_unstretch }, }; +static char* +real_get_backing_uri (NautilusFilesView *view) +{ + gchar *uri; + NautilusDirectory *directory; + NautilusDirectory *model; + + g_return_val_if_fail (NAUTILUS_IS_FILES_VIEW (view), NULL); + + model = nautilus_files_view_get_model (view); + + if (model == NULL) { + return NULL; + } + + directory = model; + + if (NAUTILUS_IS_DESKTOP_DIRECTORY (directory)) { + directory = nautilus_desktop_directory_get_real_directory (NAUTILUS_DESKTOP_DIRECTORY (directory)); + } else { + nautilus_directory_ref (directory); + } + + uri = nautilus_directory_get_uri (directory); + + nautilus_directory_unref (directory); + + return uri; +} + static void real_update_context_menus (NautilusFilesView *view) { diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index 64b0b3848..5e2c6268d 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -526,28 +526,13 @@ set_floating_bar_status (NautilusFilesView *view, static char * real_get_backing_uri (NautilusFilesView *view) { - NautilusDirectory *directory; - char *uri; - g_return_val_if_fail (NAUTILUS_IS_FILES_VIEW (view), NULL); if (view->details->model == NULL) { return NULL; } - directory = view->details->model; - - if (NAUTILUS_IS_DESKTOP_DIRECTORY (directory)) { - directory = nautilus_desktop_directory_get_real_directory (NAUTILUS_DESKTOP_DIRECTORY (directory)); - } else { - nautilus_directory_ref (directory); - } - - uri = nautilus_directory_get_uri (directory); - - nautilus_directory_unref (directory); - - return uri; + return nautilus_directory_get_uri (view->details->model); } /** |