[nautilus/wip/csoriano/flow] f



commit eaaa5cbda3f32c4d7eb702e81fb5d0d2847b6643
Author: Carlos Soriano <csoriano gnome org>
Date:   Tue Jan 3 11:09:44 2017 +0100

    f

 src/nautilus-view-icon-controller.c |    5 ++---
 src/nautilus-view-icon-ui.c         |   17 ++++++++++++++---
 src/nautilus-view-model.c           |    6 ++++--
 3 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/src/nautilus-view-icon-controller.c b/src/nautilus-view-icon-controller.c
index b5f1393..d5d23ce 100644
--- a/src/nautilus-view-icon-controller.c
+++ b/src/nautilus-view-icon-controller.c
@@ -336,12 +336,11 @@ real_set_selection (NautilusFilesView *files_view,
     NautilusViewIconController *self = NAUTILUS_VIEW_ICON_CONTROLLER (files_view);
     g_autoptr (GQueue) selection_files;
     g_autoptr (GQueue) selection_item_models;
-    NautilusFile *file;
-    GList *l;
-    guint i = 0;
 
+    g_print ("TYPE %s\n", G_OBJECT_TYPE_NAME (selection->data));
     selection_files = convert_glist_to_queue (selection);
     selection_item_models = nautilus_view_model_get_item_models_from_files (self->model, selection_files);
+    nautilus_view_model_set_selected (self->model, NULL);
     nautilus_view_model_set_selected (self->model, selection_item_models);
     nautilus_files_view_notify_selection_changed (files_view);
 }
diff --git a/src/nautilus-view-icon-ui.c b/src/nautilus-view-icon-ui.c
index fa4960b..5fff957 100644
--- a/src/nautilus-view-icon-ui.c
+++ b/src/nautilus-view-icon-ui.c
@@ -106,8 +106,6 @@ on_view_item_model_selected_changed (GObject    *object,
     NautilusViewItemModel *item_model;
     GtkFlowBoxChild *item_ui;
 
-    g_print ("selected changed\n", self->selected, !!selected);
-
     item_model = NAUTILUS_VIEW_ITEM_MODEL (object);
     item_ui = GTK_FLOW_BOX_CHILD (nautilus_view_item_model_get_item_ui (item_model));
     gtk_flow_box_select_child (GTK_FLOW_BOX (self), item_ui);
@@ -123,7 +121,7 @@ create_widget_func (gpointer item,
     NautilusViewIconItemUi *child;
 
     child = nautilus_view_icon_item_ui_new (item_model);
-    nautilus_view_item_model_set_item_ui (item_model, child);
+    nautilus_view_item_model_set_item_ui (item_model, GTK_WIDGET (child));
     gtk_widget_show (GTK_WIDGET (child));
 
     g_signal_connect (item_model, "notify::selected",
@@ -150,6 +148,18 @@ on_child_activated (GtkFlowBox      *flow_box,
 }
 
 static void
+on_ui_selected_children_changed (GtkFlowBox *box,
+                                 gpointer    user_data)
+{
+    NautilusViewIconUi *self;
+
+    self = NAUTILUS_VIEW_ICON_UI (user_data);
+
+    nautilus_view_set_selection (NAUTILUS_VIEW (self->controller),
+                                 gtk_flow_box_get_selected_children (GTK_FLOW_BOX (self)));
+}
+
+static void
 finalize (GObject *object)
 {
     G_OBJECT_CLASS (nautilus_view_icon_ui_parent_class)->finalize (object);
@@ -181,6 +191,7 @@ constructed (GObject *object)
                              create_widget_func, self, NULL);
 
     g_signal_connect (self, "child-activated", (GCallback) on_child_activated, self);
+    g_signal_connect (self, "selected-children-changed", (GCallback) on_ui_selected_children_changed, self);
 }
 
 static void
diff --git a/src/nautilus-view-model.c b/src/nautilus-view-model.c
index 7d7afd6..15a75ff 100644
--- a/src/nautilus-view-model.c
+++ b/src/nautilus-view-model.c
@@ -155,7 +155,6 @@ nautilus_view_model_get_item_models_from_files (NautilusViewModel *self,
                                                 GQueue            *files)
 {
     GList *l;
-    gint *i;
     NautilusViewItemModel *item_model;
     GQueue *item_models;
 
@@ -163,9 +162,10 @@ nautilus_view_model_get_item_models_from_files (NautilusViewModel *self,
     for (l = g_queue_peek_head_link (files); l != NULL; l = l->next)
     {
         NautilusFile *file1;
+        gint i = 0;
 
         file1 = NAUTILUS_FILE (l->data);
-        while ((item_model = g_list_model_get_item (self->internal_model, i)))
+        while ((item_model = g_list_model_get_item (G_LIST_MODEL(self->internal_model), i)))
         {
             NautilusFile *file2;
             g_autofree gchar *file1_uri;
@@ -179,6 +179,8 @@ nautilus_view_model_get_item_models_from_files (NautilusViewModel *self,
                 g_queue_push_tail (item_models, item_model);
                 break;
             }
+
+            i++;
         }
     }
 


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