[nautilus/wip/gbsneto/other-locations: 3/3] files-view: implement NautilusView interface



commit 873f252a2b8f65898f0695fb18f326d101505601
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Jul 24 19:20:58 2015 -0300

    files-view: implement NautilusView interface
    
    NautilusFilesView has some of its functionalities covered
    by NautilusView interface. The interface itself was developed
    to factor out some common behavior between the future views.
    
    Implement some NautilusView methods, and use the appropriate
    functions throughout the codebase.

 src/nautilus-canvas-view.c         |   19 ++--
 src/nautilus-desktop-canvas-view.c |    4 +-
 src/nautilus-files-view.c          |  169 ++++++++++++++++++++++++++++++++----
 src/nautilus-files-view.h          |   18 +---
 src/nautilus-list-view.c           |   21 +++--
 src/nautilus-toolbar.c             |    5 +-
 src/nautilus-window-slot.c         |   22 +++---
 src/nautilus-window-slot.h         |    6 +-
 src/nautilus-window.c              |   11 +--
 9 files changed, 203 insertions(+), 72 deletions(-)
---
diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c
index b9f480c..2079fa8 100644
--- a/src/nautilus-canvas-view.c
+++ b/src/nautilus-canvas-view.c
@@ -24,6 +24,7 @@
 #include <config.h>
 
 #include "nautilus-canvas-view.h"
+#include "nautilus-view.h"
 
 #include "nautilus-canvas-view-container.h"
 #include "nautilus-desktop-canvas-view.h"
@@ -387,7 +388,7 @@ nautilus_canvas_view_remove_file (NautilusFilesView *view, NautilusFile *file, N
                g_warning ("nautilus_canvas_view_remove_file() - directory not canvas view model, shouldn't 
happen.\n"
                           "file: %p:%s, dir: %p:%s, model: %p:%s, view loading: %d\n"
                           "If you see this, please add this info to 
http://bugzilla.gnome.org/show_bug.cgi?id=368178";,
-                          file, file_uri, directory, dir_uri, nautilus_files_view_get_model (view), 
model_uri, nautilus_files_view_get_loading (view));
+                          file, file_uri, directory, dir_uri, nautilus_files_view_get_model (view), 
model_uri, nautilus_view_get_loading (NAUTILUS_VIEW (view)));
                g_free (file_uri);
                g_free (dir_uri);
                g_free (model_uri);
@@ -413,7 +414,7 @@ nautilus_canvas_view_add_file (NautilusFilesView *view, NautilusFile *file, Naut
        canvas_container = get_canvas_container (canvas_view);
 
        /* Reset scroll region for the first canvas added when loading a directory. */
-       if (nautilus_files_view_get_loading (view) && nautilus_canvas_container_is_empty (canvas_container)) {
+       if (nautilus_view_get_loading (NAUTILUS_VIEW (view)) && nautilus_canvas_container_is_empty 
(canvas_container)) {
                nautilus_canvas_container_reset_scroll_region (canvas_container);
        }
 
@@ -808,7 +809,7 @@ nautilus_canvas_view_zoom_to_level (NautilusFilesView *view,
                return;
 
        nautilus_canvas_container_set_zoom_level (canvas_container, new_level);
-       g_action_group_change_action_state (nautilus_files_view_get_action_group (view),
+       g_action_group_change_action_state (nautilus_view_get_action_group (NAUTILUS_VIEW (view)),
                                            "zoom-to-level", g_variant_new_int32 (new_level));
 
        nautilus_files_view_update_toolbar_menus (view);
@@ -1040,7 +1041,7 @@ update_sort_action_state_hint (NautilusCanvasView *canvas_view)
 
        state_hint = g_variant_builder_end (&builder);
 
-       action_group = nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW (canvas_view));
+       action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (canvas_view));
        action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "sort");
        g_simple_action_set_state_hint (G_SIMPLE_ACTION (action), state_hint);
 
@@ -1071,7 +1072,7 @@ nautilus_canvas_view_update_actions_state (NautilusFilesView *view)
 
        NAUTILUS_FILES_VIEW_CLASS (nautilus_canvas_view_parent_class)->update_actions_state (view);
 
-       view_action_group = nautilus_files_view_get_action_group (view);
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (view));
        if (nautilus_canvas_view_supports_auto_layout (canvas_view)) {
                GVariant *sort_state;
                GVariant *reversed_state;
@@ -1356,7 +1357,7 @@ canvas_container_context_click_selection_callback (NautilusCanvasContainer *cont
        g_assert (NAUTILUS_IS_CANVAS_CONTAINER (container));
        g_assert (NAUTILUS_IS_CANVAS_VIEW (canvas_view));
 
-       nautilus_files_view_pop_up_selection_context_menu (NAUTILUS_FILES_VIEW (canvas_view), event);
+       nautilus_view_popup_menu (NAUTILUS_VIEW (canvas_view), NAUTILUS_VIEW_MENU_SELECTION, event, NULL);
 }
 
 static void
@@ -1367,7 +1368,7 @@ canvas_container_context_click_background_callback (NautilusCanvasContainer *con
        g_assert (NAUTILUS_IS_CANVAS_CONTAINER (container));
        g_assert (NAUTILUS_IS_CANVAS_VIEW (canvas_view));
 
-       nautilus_files_view_pop_up_background_context_menu (NAUTILUS_FILES_VIEW (canvas_view), event);
+        nautilus_view_popup_menu (NAUTILUS_VIEW (canvas_view), NAUTILUS_VIEW_MENU_BACKGROUND, event, NULL);
 }
 
 static void
@@ -1961,13 +1962,13 @@ nautilus_canvas_view_init (NautilusCanvasView *canvas_view)
                                  "clipboard-info",
                                  G_CALLBACK (canvas_view_notify_clipboard_info), canvas_view);
 
-       view_action_group = nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW (canvas_view));
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (canvas_view));
        g_action_map_add_action_entries (G_ACTION_MAP (view_action_group),
                                         canvas_view_entries,
                                         G_N_ELEMENTS (canvas_view_entries),
                                         canvas_view);
        /* Keep the action synced with the actual value, so the toolbar can poll it */
-       g_action_group_change_action_state (nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW 
(canvas_view)),
+       g_action_group_change_action_state (nautilus_view_get_action_group (NAUTILUS_VIEW (canvas_view)),
                                            "zoom-to-level", g_variant_new_int32 (get_default_zoom_level 
(canvas_view)));
 }
 
diff --git a/src/nautilus-desktop-canvas-view.c b/src/nautilus-desktop-canvas-view.c
index 6c1091c..4c4785d 100644
--- a/src/nautilus-desktop-canvas-view.c
+++ b/src/nautilus-desktop-canvas-view.c
@@ -648,7 +648,7 @@ real_update_context_menus (NautilusFilesView *view)
 
        NAUTILUS_FILES_VIEW_CLASS (nautilus_desktop_canvas_view_parent_class)->update_context_menus (view);
 
-       view_action_group = nautilus_files_view_get_action_group (view);
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (view));
        desktop_view = NAUTILUS_DESKTOP_CANVAS_VIEW (view);
 
        action = g_action_map_lookup_action (G_ACTION_MAP (view_action_group), "empty-trash");
@@ -755,7 +755,7 @@ nautilus_desktop_canvas_view_init (NautilusDesktopCanvasView *desktop_canvas_vie
                                  G_CALLBACK (nautilus_files_view_update_context_menus),
                                  desktop_canvas_view);
 
-       view_action_group = nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW (desktop_canvas_view));
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (desktop_canvas_view));
 
        g_action_map_add_action_entries (G_ACTION_MAP (view_action_group),
                                         desktop_view_entries,
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 7806b45..74f6b24 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -38,6 +38,7 @@
 #include "nautilus-properties-window.h"
 #include "nautilus-window.h"
 #include "nautilus-toolbar.h"
+#include "nautilus-view.h"
 
 #if ENABLE_EMPTY_VIEW
 #include "nautilus-empty-view.h"
@@ -137,6 +138,11 @@ enum {
 enum {
        PROP_WINDOW_SLOT = 1,
        PROP_SUPPORTS_ZOOMING,
+        PROP_ACTION_GROUP,
+        PROP_LOADING,
+        PROP_LOCATION,
+        PROP_SEARCH_QUERY,
+        PROP_OPERATIONS,
        NUM_PROPERTIES
 };
 
@@ -226,6 +232,8 @@ struct NautilusFilesViewDetails
        GMenu *pathbar_menu;
 
        GActionGroup *view_action_group;
+
+        NautilusViewOperation supported_operations;
 };
 
 typedef struct {
@@ -268,7 +276,16 @@ static void     update_templates_directory                     (NautilusFilesVie
 
 static void unschedule_pop_up_pathbar_context_menu (NautilusFilesView *view);
 
-G_DEFINE_TYPE (NautilusFilesView, nautilus_files_view, GTK_TYPE_SCROLLED_WINDOW);
+static void     nautilus_view_iface_init                         (NautilusViewInterface *view);
+
+static void     nautilus_files_view_pop_up_pathbar_context_menu  (NautilusFilesView *view,
+                                                                  GdkEventButton    *event,
+                                                                  const gchar       *location);
+
+G_DEFINE_TYPE_WITH_CODE (NautilusFilesView,
+                         nautilus_files_view,
+                         GTK_TYPE_SCROLLED_WINDOW,
+                         G_IMPLEMENT_INTERFACE (NAUTILUS_TYPE_VIEW, nautilus_view_iface_init));
 
 static char *
 real_get_backing_uri (NautilusFilesView *view)
@@ -2887,6 +2904,7 @@ done_loading (NautilusFilesView *view,
 
        view->details->loading = FALSE;
        g_signal_emit (view, signals[END_LOADING], 0, all_files_seen);
+        g_object_notify (G_OBJECT (view), "loading");
 
        nautilus_profile_end (NULL);
 }
@@ -3667,12 +3685,12 @@ nautilus_files_view_remove_subdirectory (NautilusFilesView  *view,
  * Return value: #gboolean inicating whether @view is currently loaded.
  * 
  **/
-gboolean
-nautilus_files_view_get_loading (NautilusFilesView *view)
+static gboolean
+nautilus_files_view_get_loading (NautilusView *view)
 {
-       g_return_val_if_fail (NAUTILUS_IS_VIEW (view), FALSE);
+       g_return_val_if_fail (NAUTILUS_IS_FILES_VIEW (view), FALSE);
 
-       return view->details->loading;
+       return NAUTILUS_FILES_VIEW (view)->details->loading;
 }
 
 /**
@@ -5982,12 +6000,12 @@ all_in_trash (GList *files)
        return TRUE;
 }
 
-GActionGroup *
-nautilus_files_view_get_action_group (NautilusFilesView *view)
+static GActionGroup*
+nautilus_files_view_get_action_group (NautilusView *view)
 {
        g_assert (NAUTILUS_IS_VIEW (view));
 
-       return view->details->view_action_group;
+       return NAUTILUS_FILES_VIEW (view)->details->view_action_group;
 }
 
 static void
@@ -6593,9 +6611,9 @@ nautilus_files_view_update_toolbar_menus (NautilusFilesView *view)
  * @event: The event that triggered this context menu.
  * 
  **/
-void 
-nautilus_files_view_pop_up_selection_context_menu  (NautilusFilesView *view, 
-                                             GdkEventButton  *event)
+static void
+nautilus_files_view_pop_up_selection_context_menu  (NautilusFilesView *view,
+                                                    GdkEventButton    *event)
 {
        g_assert (NAUTILUS_IS_VIEW (view));
 
@@ -6616,9 +6634,9 @@ nautilus_files_view_pop_up_selection_context_menu  (NautilusFilesView *view,
  * @view: NautilusFilesView of interest.
  *
  **/
-void 
-nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view, 
-                                             GdkEventButton  *event)
+static void
+nautilus_files_view_pop_up_background_context_menu (NautilusFilesView *view,
+                                                    GdkEventButton    *event)
 {
        g_assert (NAUTILUS_IS_VIEW (view));
 
@@ -6713,10 +6731,10 @@ schedule_pop_up_pathbar_context_menu (NautilusFilesView *view,
  * or NULL for the currently displayed location.
  *
  **/
-void 
-nautilus_files_view_pop_up_pathbar_context_menu (NautilusFilesView *view, 
-                                          GdkEventButton  *event,
-                                          const char      *location)
+static void
+nautilus_files_view_pop_up_pathbar_context_menu (NautilusFilesView *view,
+                                                 GdkEventButton    *event,
+                                                 const char        *location)
 {
        NautilusFile *file;
 
@@ -6877,6 +6895,7 @@ load_directory (NautilusFilesView *view,
        g_signal_emit (view, signals[CLEAR], 0);
 
        view->details->loading = TRUE;
+        g_object_notify (G_OBJECT (view), "loading");
 
        /* Update menus when directory is empty, before going to new
         * location, so they won't have any false lingering knowledge
@@ -7347,6 +7366,55 @@ real_get_selected_icon_locations (NautilusFilesView *view)
         return g_array_new (FALSE, TRUE, sizeof (GdkPoint));
 }
 
+
+static gint
+nautilus_files_view_get_supported_operations (NautilusView *view)
+{
+  return NAUTILUS_VIEW_OPERATION_BROWSE_GRID |
+         NAUTILUS_VIEW_OPERATION_BROWSE_LIST;
+}
+
+static void
+nautilus_files_view_get_property (GObject    *object,
+                                  guint       prop_id,
+                                  GValue     *value,
+                                  GParamSpec *pspec)
+{
+        NautilusFilesView *self;
+        NautilusView *view;
+        GFile *file;
+
+        self = NAUTILUS_FILES_VIEW (object);
+        view = NAUTILUS_VIEW (object);
+
+        switch (prop_id) {
+        case PROP_ACTION_GROUP:
+                g_value_set_object (value, nautilus_view_get_action_group (view));
+                break;
+
+        case PROP_LOADING:
+                g_value_set_boolean (value, nautilus_view_get_loading (view));
+                break;
+
+        case PROP_LOCATION:
+                file = nautilus_file_get_location (nautilus_files_view_get_directory_as_file (self));
+                g_value_set_object (value, file);
+                break;
+
+        case PROP_OPERATIONS:
+                g_value_set_flags (value, nautilus_files_view_get_supported_operations (view));
+                break;
+
+        case PROP_SEARCH_QUERY:
+                g_value_set_object (value, NULL);
+                break;
+
+        default:
+                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+                break;
+        }
+}
+
 static void
 nautilus_files_view_set_property (GObject         *object,
                            guint            prop_id,
@@ -7375,6 +7443,9 @@ nautilus_files_view_set_property (GObject         *object,
        case PROP_SUPPORTS_ZOOMING:
                directory_view->details->supports_zooming = g_value_get_boolean (value);
                break;
+
+        case PROP_SEARCH_QUERY:
+                break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                break;
@@ -7479,6 +7550,41 @@ nautilus_files_view_parent_set (GtkWidget *widget,
 }
 
 static void
+nautilus_files_view_pop_up_menu (NautilusView         *view,
+                                 NautilusViewMenutype  menu_type,
+                                 GdkEventButton       *event,
+                                 const gchar          *location)
+{
+        NautilusFilesView *files_view = NAUTILUS_FILES_VIEW (view);
+
+        switch (menu_type) {
+        case NAUTILUS_VIEW_MENU_BACKGROUND:
+                nautilus_files_view_pop_up_background_context_menu (files_view, event);
+                break;
+
+        case NAUTILUS_VIEW_MENU_PATHBAR:
+                nautilus_files_view_pop_up_pathbar_context_menu (files_view, event, location);
+                break;
+
+        case NAUTILUS_VIEW_MENU_SELECTION:
+                nautilus_files_view_pop_up_selection_context_menu (files_view, event);
+                break;
+
+        default:
+                g_assert_not_reached ();
+        }
+}
+
+static void
+nautilus_view_iface_init (NautilusViewInterface *iface)
+{
+        iface->get_action_group = nautilus_files_view_get_action_group;
+        iface->get_loading = nautilus_files_view_get_loading;
+        iface->get_supported_operations = nautilus_files_view_get_supported_operations;
+        iface->popup_menu = nautilus_files_view_pop_up_menu;
+}
+
+static void
 nautilus_files_view_class_init (NautilusFilesViewClass *klass)
 {
        GObjectClass *oclass;
@@ -7491,6 +7597,7 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass)
 
        oclass->finalize = nautilus_files_view_finalize;
        oclass->set_property = nautilus_files_view_set_property;
+        oclass->get_property = nautilus_files_view_get_property;
 
        widget_class->destroy = nautilus_files_view_destroy;
        widget_class->scroll_event = nautilus_files_view_scroll_event;
@@ -7602,7 +7709,28 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass)
                                      G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY |
                                      G_PARAM_STATIC_STRINGS);
 
-       g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
+        g_object_class_override_property (oclass,
+                                          PROP_ACTION_GROUP,
+                                          "action-group");
+
+        g_object_class_override_property (oclass,
+                                          PROP_LOADING,
+                                          "loading");
+
+        g_object_class_override_property (oclass,
+                                          PROP_LOCATION,
+                                          "location");
+
+
+        g_object_class_override_property (oclass,
+                                          PROP_OPERATIONS,
+                                          "operations");
+
+        g_object_class_override_property (oclass,
+                                          PROP_SEARCH_QUERY,
+                                          "search-query");
+
+        g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
 }
 
 static void
@@ -7624,6 +7752,9 @@ nautilus_files_view_init (NautilusFilesView *view)
        view->details = G_TYPE_INSTANCE_GET_PRIVATE (view, NAUTILUS_TYPE_FILES_VIEW,
                                                     NautilusFilesViewDetails);
 
+        /* Supported operations */
+        view->details->supported_operations = nautilus_files_view_get_supported_operations (NAUTILUS_VIEW 
(view));
+
        /* Default to true; desktop-icon-view sets to false */
        view->details->show_foreign_files = TRUE;
 
diff --git a/src/nautilus-files-view.h b/src/nautilus-files-view.h
index 23b743e..46d80a5 100644
--- a/src/nautilus-files-view.h
+++ b/src/nautilus-files-view.h
@@ -52,9 +52,9 @@ typedef struct NautilusFilesViewClass NautilusFilesViewClass;
         (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_FILES_VIEW, NautilusFilesView))
 #define NAUTILUS_FILES_VIEW_CLASS(klass)\
         (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_FILES_VIEW, NautilusFilesViewClass))
-#define NAUTILUS_IS_VIEW(obj)\
+#define NAUTILUS_IS_FILES_VIEW(obj)\
         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_FILES_VIEW))
-#define NAUTILUS_IS_VIEW_CLASS(klass)\
+#define NAUTILUS_IS_FILES_VIEW_CLASS(klass)\
         (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_FILES_VIEW))
 #define NAUTILUS_FILES_VIEW_GET_CLASS(obj)\
         (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_FILES_VIEW, NautilusFilesViewClass))
@@ -296,10 +296,9 @@ GdkAtom                    nautilus_files_view_get_copied_files_atom
  * only by NautilusFilesView itself. They have corresponding signals
  * that observers might want to connect with.
  */
-gboolean            nautilus_files_view_get_loading                      (NautilusFilesView  *view);
 
-/* Hooks for subclasses to call. These are normally called only by 
- * NautilusFilesView and its subclasses 
+/* Hooks for subclasses to call. These are normally called only by
+ * NautilusFilesView and its subclasses
  */
 void                nautilus_files_view_activate_files                   (NautilusFilesView        *view,
                                                                           GList                    *files,
@@ -313,10 +312,6 @@ void                nautilus_files_view_stop_batching_selection_changes  (Nautil
 void                nautilus_files_view_notify_selection_changed         (NautilusFilesView  *view);
 NautilusDirectory  *nautilus_files_view_get_model                        (NautilusFilesView  *view);
 NautilusFile       *nautilus_files_view_get_directory_as_file            (NautilusFilesView  *view);
-void                nautilus_files_view_pop_up_background_context_menu   (NautilusFilesView  *view,
-                                                                          GdkEventButton     *event);
-void                nautilus_files_view_pop_up_selection_context_menu    (NautilusFilesView  *view,
-                                                                          GdkEventButton     *event); 
 gboolean            nautilus_files_view_should_show_file                 (NautilusFilesView  *view,
                                                                           NautilusFile       *file);
 gboolean            nautilus_files_view_should_sort_directories_first    (NautilusFilesView  *view);
@@ -377,9 +372,6 @@ void              nautilus_files_view_zoom_to_level              (NautilusFilesV
 void              nautilus_files_view_restore_default_zoom_level (NautilusFilesView      *view);
 gboolean          nautilus_files_view_can_zoom_in                (NautilusFilesView      *view);
 gboolean          nautilus_files_view_can_zoom_out               (NautilusFilesView      *view);
-void              nautilus_files_view_pop_up_pathbar_context_menu (NautilusFilesView     *view,
-                                                                   GdkEventButton        *event,
-                                                                   const char            *location);
 void              nautilus_files_view_grab_focus                 (NautilusFilesView      *view);
 void              nautilus_files_view_update_menus               (NautilusFilesView      *view);
 
@@ -390,6 +382,4 @@ void              nautilus_files_view_update_actions_state       (NautilusFilesV
 void              nautilus_files_view_action_show_hidden_files   (NautilusFilesView      *view,
                                                                   gboolean                show_hidden);
 
-GActionGroup *    nautilus_files_view_get_action_group           (NautilusFilesView      *view);
-
 #endif /* NAUTILUS_FILES_VIEW_H */
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 6e77db5..c52078a 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -604,9 +604,15 @@ static void
 do_popup_menu (GtkWidget *widget, NautilusListView *view, GdkEventButton *event)
 {
        if (tree_view_has_selection (GTK_TREE_VIEW (widget))) {
-               nautilus_files_view_pop_up_selection_context_menu (NAUTILUS_FILES_VIEW (view), event);
+                nautilus_view_popup_menu (NAUTILUS_VIEW (view),
+                                          NAUTILUS_VIEW_MENU_SELECTION,
+                                          event,
+                                          NULL);
        } else {
-                nautilus_files_view_pop_up_background_context_menu (NAUTILUS_FILES_VIEW (view), event);
+                nautilus_view_popup_menu (NAUTILUS_VIEW (view),
+                                          NAUTILUS_VIEW_MENU_BACKGROUND,
+                                          event,
+                                          NULL);
        }
 }
 
@@ -1038,7 +1044,10 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
        switch (event->keyval) {
        case GDK_KEY_F10:
                if (event->state & GDK_CONTROL_MASK) {
-                       nautilus_files_view_pop_up_background_context_menu (view, &button_event);
+                        nautilus_view_popup_menu (NAUTILUS_VIEW (view),
+                                                  NAUTILUS_VIEW_MENU_BACKGROUND,
+                                                  &button_event,
+                                                  NULL);
                        handled = TRUE;
                }
                break;
@@ -2655,7 +2664,7 @@ nautilus_list_view_zoom_to_level (NautilusFilesView *view,
        }
 
        nautilus_list_view_set_zoom_level (list_view, zoom_level);
-       g_action_group_change_action_state (nautilus_files_view_get_action_group (view),
+       g_action_group_change_action_state (nautilus_view_get_action_group (NAUTILUS_VIEW (view)),
                                            "zoom-to-level", g_variant_new_int32 (zoom_level));
 
        nautilus_files_view_update_toolbar_menus (view);
@@ -3316,13 +3325,13 @@ nautilus_list_view_init (NautilusListView *list_view)
                                  "clipboard-info",
                                  G_CALLBACK (list_view_notify_clipboard_info), list_view);
 
-       view_action_group = nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW (list_view));
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (list_view));
        g_action_map_add_action_entries (G_ACTION_MAP (view_action_group),
                                        list_view_entries,
                                        G_N_ELEMENTS (list_view_entries),
                                        list_view);
        /* Keep the action synced with the actual value, so the toolbar can poll it */
-       g_action_group_change_action_state (nautilus_files_view_get_action_group (NAUTILUS_FILES_VIEW 
(list_view)),
+       g_action_group_change_action_state (nautilus_view_get_action_group (NAUTILUS_VIEW (list_view)),
                                            "zoom-to-level", g_variant_new_int32 (get_default_zoom_level ()));
 }
 
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index b99bb84..a3c3b0d 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -25,6 +25,7 @@
 #include <config.h>
 
 #include "nautilus-toolbar.h"
+#include "nautilus-view.h"
 
 #include "nautilus-location-entry.h"
 #include "nautilus-pathbar.h"
@@ -417,7 +418,7 @@ zoom_level_changed (GtkRange *range,
        slot = nautilus_window_get_active_slot (self->priv->window);
        view = nautilus_window_slot_get_current_view (slot);
 
-       g_action_group_change_action_state (nautilus_files_view_get_action_group (view),
+       g_action_group_change_action_state (nautilus_view_get_action_group (NAUTILUS_VIEW (view)),
                                            "zoom-to-level",
                                            g_variant_new_int32 ((gint) zoom_level));
 }
@@ -932,7 +933,7 @@ nautilus_toolbar_reset_menus (NautilusToolbar *self)
         * the view menu and action menu of the toolbar */
        slot = nautilus_window_get_active_slot (self->priv->window);
        view = nautilus_window_slot_get_current_view (slot);
-       view_action_group = nautilus_files_view_get_action_group (view);
+       view_action_group = nautilus_view_get_action_group (NAUTILUS_VIEW (view));
        gtk_widget_insert_action_group (GTK_WIDGET (self),
                                        "view",
                                        G_ACTION_GROUP (view_action_group));
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index 7ccd841..5b2608a 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -28,7 +28,6 @@
 #include "nautilus-canvas-view.h"
 #include "nautilus-desktop-window.h"
 #include "nautilus-floating-bar.h"
-#include "nautilus-list-view.h"
 #include "nautilus-special-location-bar.h"
 #include "nautilus-trash-bar.h"
 #include "nautilus-window.h"
@@ -82,8 +81,8 @@ struct NautilusWindowSlotDetails {
        gchar *title;
 
        /* Viewed file */
-       NautilusFilesView *content_view;
-       NautilusFilesView *new_content_view;
+       NautilusView *content_view;
+       NautilusView *new_content_view;
        NautilusFile *viewed_file;
        gboolean viewed_file_seen;
        gboolean viewed_file_in_trash;
@@ -146,14 +145,15 @@ nautilus_window_slot_sync_search_widgets (NautilusWindowSlot *slot)
        NautilusDirectory *directory;
        gboolean toggle;
 
-       if (slot != nautilus_window_get_active_slot (slot->details->window)) {
+        if (!NAUTILUS_IS_FILES_VIEW (slot->details->content_view) ||
+            slot != nautilus_window_get_active_slot (slot->details->window)) {
                return;
        }
 
        toggle = slot->details->search_visible;
 
        if (slot->details->content_view != NULL) {
-               directory = nautilus_files_view_get_model (slot->details->content_view);
+               directory = nautilus_files_view_get_model (NAUTILUS_FILES_VIEW (slot->details->content_view));
                if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
                        toggle = TRUE;
                }
@@ -1484,7 +1484,7 @@ create_content_view (NautilusWindowSlot *slot,
                     GError **error_out)
 {
        NautilusWindow *window;
-        NautilusFilesView *view;
+        NautilusView *view;
        GList *selection;
        gboolean ret = TRUE;
        GError *error = NULL;
@@ -1596,7 +1596,7 @@ load_new_location (NautilusWindowSlot *slot,
                   gboolean tell_new_content_view)
 {
        GList *selection_copy;
-       NautilusFilesView *view;
+       NautilusView *view;
 
        g_assert (slot != NULL);
        g_assert (location != NULL);
@@ -1912,7 +1912,7 @@ nautilus_window_slot_queue_reload (NautilusWindowSlot *slot)
 
        if (slot->details->pending_location != NULL
            || slot->details->content_view == NULL
-           || nautilus_files_view_get_loading (slot->details->content_view)) {
+           || nautilus_view_get_loading (slot->details->content_view)) {
                /* there is a reload in flight */
                slot->details->needs_reload = TRUE;
                return;
@@ -2187,7 +2187,7 @@ static void
 nautilus_window_slot_show_trash_bar (NautilusWindowSlot *slot)
 {
        GtkWidget *bar;
-       NautilusFilesView *view;
+       NautilusView *view;
 
        view = nautilus_window_slot_get_current_view (slot);
        bar = nautilus_trash_bar_new (view);
@@ -2723,7 +2723,7 @@ nautilus_window_slot_set_window (NautilusWindowSlot *slot,
        }
 }
 
-NautilusFilesView *
+NautilusView *
 nautilus_window_slot_get_view (NautilusWindowSlot *slot)
 {
        return slot->details->content_view;
@@ -2911,7 +2911,7 @@ nautilus_window_slot_get_current_uri (NautilusWindowSlot *slot)
        return NULL;
 }
 
-NautilusFilesView *
+NautilusView *
 nautilus_window_slot_get_current_view (NautilusWindowSlot *slot)
 {
        if (slot->details->content_view != NULL) {
diff --git a/src/nautilus-window-slot.h b/src/nautilus-window-slot.h
index f546989..439ad02 100644
--- a/src/nautilus-window-slot.h
+++ b/src/nautilus-window-slot.h
@@ -29,7 +29,7 @@ typedef struct NautilusWindowSlot NautilusWindowSlot;
 typedef struct NautilusWindowSlotClass NautilusWindowSlotClass;
 typedef struct NautilusWindowSlotDetails NautilusWindowSlotDetails;
 
-#include "nautilus-files-view.h"
+#include "nautilus-view.h"
 #include "nautilus-window.h"
 
 #define NAUTILUS_TYPE_WINDOW_SLOT       (nautilus_window_slot_get_type())
@@ -87,9 +87,9 @@ char *  nautilus_window_slot_get_location_uri            (NautilusWindowSlot *slot);
 
 NautilusFile *    nautilus_window_slot_get_file            (NautilusWindowSlot *slot);
 NautilusBookmark *nautilus_window_slot_get_bookmark        (NautilusWindowSlot *slot);
-NautilusFilesView *    nautilus_window_slot_get_view            (NautilusWindowSlot *slot);
+NautilusView*  nautilus_window_slot_get_view               (NautilusWindowSlot *slot);
 
-NautilusFilesView * nautilus_window_slot_get_current_view       (NautilusWindowSlot *slot);
+NautilusView*  nautilus_window_slot_get_current_view       (NautilusWindowSlot *slot);
 char *         nautilus_window_slot_get_current_uri        (NautilusWindowSlot *slot);
 
 GList * nautilus_window_slot_get_back_history              (NautilusWindowSlot *slot);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 826efcf..14d450e 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -40,8 +40,7 @@
 #include "nautilus-properties-window.h"
 #include "nautilus-toolbar.h"
 #include "nautilus-window-slot.h"
-#include "nautilus-list-view.h"
-#include "nautilus-files-view.h"
+#include "nautilus-view.h"
 
 #include <eel/eel-debug.h>
 #include <eel/eel-gtk-extensions.h>
@@ -1662,7 +1661,7 @@ path_bar_path_event_callback (NautilusPathBar *path_bar,
        NautilusWindowSlot *slot;
        NautilusWindowOpenFlags flags;
        int mask;
-       NautilusFilesView *view;
+       NautilusView *view;
        char *uri;
 
        if (event->type == GDK_BUTTON_RELEASE) {
@@ -1688,7 +1687,7 @@ path_bar_path_event_callback (NautilusPathBar *path_bar,
                view = nautilus_window_slot_get_view (slot);
                if (view != NULL) {
                        uri = g_file_get_uri (location);
-                       nautilus_files_view_pop_up_pathbar_context_menu (view, event, uri);
+                       nautilus_view_popup_menu (view, NAUTILUS_VIEW_MENU_PATHBAR, event, uri);
                        g_free (uri);
                }
 
@@ -2392,7 +2391,7 @@ nautilus_window_key_press_event (GtkWidget *widget,
 {
        NautilusWindow *window;
        NautilusWindowSlot *active_slot;
-       NautilusFilesView *view;
+       NautilusView *view;
        GtkWidget *focus_widget;
        int i;
 
@@ -2419,7 +2418,7 @@ nautilus_window_key_press_event (GtkWidget *widget,
 
                        action = g_action_map_lookup_action (G_ACTION_MAP (window), 
extra_window_keybindings[i].action);
                        if (action == NULL) {
-                               action_group = nautilus_files_view_get_action_group (view);
+                               action_group = nautilus_view_get_action_group (view);
                                action = g_action_map_lookup_action (G_ACTION_MAP (action_group), 
extra_window_keybindings[i].action);
                        }
 


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