[frogr] New function frogr_main_view_model_notify_changes_in_pictures(), to be called from dialogs modifying
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] New function frogr_main_view_model_notify_changes_in_pictures(), to be called from dialogs modifying
- Date: Sun, 11 Nov 2012 00:08:33 +0000 (UTC)
commit 5dd8765c13b91d7e17283ab0237614684b3ada24
Author: Mario Sanchez Prada <msanchez gnome org>
Date: Thu Nov 8 16:20:40 2012 +0100
New function frogr_main_view_model_notify_changes_in_pictures(), to be
called from dialogs modifying data from pictures in the model.
A 'FrogrMainViewModel::model-changed' signal will be emited.
src/frogr-add-to-group-dialog.c | 16 +++++++++++++---
src/frogr-add-to-set-dialog.c | 16 +++++++++++++---
src/frogr-create-new-set-dialog.c | 2 +-
src/frogr-details-dialog.c | 12 +++++++-----
src/frogr-main-view-model.c | 7 +++++++
src/frogr-main-view-model.h | 3 +++
6 files changed, 44 insertions(+), 12 deletions(-)
---
diff --git a/src/frogr-add-to-group-dialog.c b/src/frogr-add-to-group-dialog.c
index 6638dfc..320b081 100644
--- a/src/frogr-add-to-group-dialog.c
+++ b/src/frogr-add-to-group-dialog.c
@@ -20,7 +20,9 @@
#include "frogr-add-to-group-dialog.h"
+#include "frogr-controller.h"
#include "frogr-group.h"
+#include "frogr-main-view-model.h"
#include "frogr-picture.h"
#include <config.h>
@@ -397,10 +399,18 @@ _update_pictures (FrogrAddToGroupDialog *self)
priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
selected_groups = _get_selected_groups (self);
- for (item = priv->pictures; item; item = g_slist_next (item))
+ if (selected_groups)
{
- picture = FROGR_PICTURE (item->data);
- frogr_picture_set_groups (picture, selected_groups);
+ FrogrMainViewModel *model = NULL;
+
+ for (item = priv->pictures; item; item = g_slist_next (item))
+ {
+ picture = FROGR_PICTURE (item->data);
+ frogr_picture_set_groups (picture, selected_groups);
+ }
+
+ model = frogr_controller_get_main_view_model (frogr_controller_get_instance ());
+ frogr_main_view_model_notify_changes_in_pictures (model);
}
}
diff --git a/src/frogr-add-to-set-dialog.c b/src/frogr-add-to-set-dialog.c
index 08b4072..31b4cd6 100644
--- a/src/frogr-add-to-set-dialog.c
+++ b/src/frogr-add-to-set-dialog.c
@@ -20,6 +20,8 @@
#include "frogr-add-to-set-dialog.h"
+#include "frogr-controller.h"
+#include "frogr-main-view-model.h"
#include "frogr-photoset.h"
#include "frogr-picture.h"
@@ -398,10 +400,18 @@ _update_pictures (FrogrAddToSetDialog *self)
priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
selected_sets = _get_selected_photosets (self);
- for (item = priv->pictures; item; item = g_slist_next (item))
+ if (selected_sets)
{
- picture = FROGR_PICTURE (item->data);
- frogr_picture_set_photosets (picture, selected_sets);
+ FrogrMainViewModel *model = NULL;
+
+ for (item = priv->pictures; item; item = g_slist_next (item))
+ {
+ picture = FROGR_PICTURE (item->data);
+ frogr_picture_set_photosets (picture, selected_sets);
+ }
+
+ model = frogr_controller_get_main_view_model (frogr_controller_get_instance ());
+ frogr_main_view_model_notify_changes_in_pictures (model);
}
}
diff --git a/src/frogr-create-new-set-dialog.c b/src/frogr-create-new-set-dialog.c
index 6c8f673..9e85ca9 100644
--- a/src/frogr-create-new-set-dialog.c
+++ b/src/frogr-create-new-set-dialog.c
@@ -23,7 +23,6 @@
#include "frogr-photoset.h"
#include "frogr-controller.h"
#include "frogr-main-view-model.h"
-#include "frogr-main-view.h"
#include "frogr-picture.h"
#include "frogr-util.h"
@@ -198,6 +197,7 @@ _update_model (FrogrCreateNewSetDialog *self,
}
}
+ frogr_main_view_model_notify_changes_in_pictures (mainview_model);
}
static void
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index e27a331..9f10249 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -949,10 +949,13 @@ _save_data (FrogrDetailsDialog *self)
/* validate dialog */
if (_validate_dialog_data (self))
{
+ FrogrMainViewModel *model = NULL;
FrogrPicture *picture;
GSList *item;
guint n_pictures;
+ model = frogr_controller_get_main_view_model (frogr_controller_get_instance ());
+
/* Iterate over the rest of elements */
n_pictures = g_slist_length (priv->pictures);
for (item = priv->pictures; item; item = g_slist_next (item))
@@ -998,11 +1001,10 @@ _save_data (FrogrDetailsDialog *self)
/* Add tags to the model */
if (!g_str_equal (tags, ""))
- {
- FrogrMainViewModel *model = NULL;
- model = frogr_controller_get_main_view_model (frogr_controller_get_instance ());
- frogr_main_view_model_add_local_tags_from_string (model, tags);
- }
+ frogr_main_view_model_add_local_tags_from_string (model, tags);
+
+ /* Notify the model that pictures details have probably changed */
+ frogr_main_view_model_notify_changes_in_pictures (model);
}
else
{
diff --git a/src/frogr-main-view-model.c b/src/frogr-main-view-model.c
index 47ec610..8731018 100644
--- a/src/frogr-main-view-model.c
+++ b/src/frogr-main-view-model.c
@@ -420,6 +420,13 @@ frogr_main_view_model_reorder_pictures (FrogrMainViewModel *self,
}
void
+frogr_main_view_model_notify_changes_in_pictures (FrogrMainViewModel *self)
+{
+ /* Just emit the signal so the main view gets notified too */
+ g_signal_emit (self, signals[MODEL_CHANGED], 0);
+}
+
+void
frogr_main_view_model_set_remote_photosets (FrogrMainViewModel *self,
GSList *remote_sets)
{
diff --git a/src/frogr-main-view-model.h b/src/frogr-main-view-model.h
index 1f57899..49ad60f 100644
--- a/src/frogr-main-view-model.h
+++ b/src/frogr-main-view-model.h
@@ -70,6 +70,9 @@ GSList *frogr_main_view_model_get_pictures (FrogrMainViewModel *self);
void frogr_main_view_model_reorder_pictures (FrogrMainViewModel *self,
const gchar *property_name,
gboolean reversed);
+
+void frogr_main_view_model_notify_changes_in_pictures (FrogrMainViewModel *self);
+
/* Photosets */
void frogr_main_view_model_set_remote_photosets (FrogrMainViewModel *self,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]