[gnome-photos] application, selection-toolbar: Use the GAction for opening
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] application, selection-toolbar: Use the GAction for opening
- Date: Wed, 17 Feb 2016 15:06:23 +0000 (UTC)
commit d8a812ab35487357c7154f1936d3285a569ed0bc
Author: Rafael Fonseca <r4f4rfs gmail com>
Date: Wed Feb 17 15:03:57 2016 +0100
application, selection-toolbar: Use the GAction for opening
https://bugzilla.gnome.org/show_bug.cgi?id=761587
src/photos-application.c | 38 +++++++++++++++++++++++++++++++++-----
src/photos-selection-toolbar.c | 30 ------------------------------
src/photos-selection-toolbar.ui | 3 +--
3 files changed, 34 insertions(+), 37 deletions(-)
---
diff --git a/src/photos-application.c b/src/photos-application.c
index 3fce884..f3d1035 100644
--- a/src/photos-application.c
+++ b/src/photos-application.c
@@ -299,6 +299,7 @@ photos_application_actions_update (PhotosApplication *self)
GList *selection;
PhotosLoadState load_state;
PhotosWindowMode mode;
+ gboolean can_open;
gboolean can_trash;
gboolean enable;
gboolean selection_mode;
@@ -340,7 +341,6 @@ photos_application_actions_update (PhotosApplication *self)
enable = (load_state == PHOTOS_LOAD_STATE_FINISHED && mode == PHOTOS_WINDOW_MODE_PREVIEW);
g_simple_action_set_enabled (priv->gear_action, enable);
- g_simple_action_set_enabled (priv->open_action, enable);
g_simple_action_set_enabled (priv->properties_action, enable);
g_simple_action_set_enabled (priv->set_bg_action, enable);
g_simple_action_set_enabled (priv->set_ss_action, enable);
@@ -350,6 +350,7 @@ photos_application_actions_update (PhotosApplication *self)
g_simple_action_set_enabled (priv->print_action, enable);
g_simple_action_set_enabled (priv->save_action, enable);
+ can_open = FALSE;
can_trash = selection != NULL;
for (l = selection; l != NULL; l = l->next)
{
@@ -358,6 +359,9 @@ photos_application_actions_update (PhotosApplication *self)
selected_item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (priv->state->item_mngr, urn));
can_trash = can_trash && photos_base_item_can_trash (selected_item);
+
+ if (photos_base_item_get_default_app_name (selected_item) != NULL)
+ can_open = TRUE;
}
enable = ((load_state == PHOTOS_LOAD_STATE_FINISHED
@@ -366,6 +370,10 @@ photos_application_actions_update (PhotosApplication *self)
|| (selection_mode && can_trash));
g_simple_action_set_enabled (priv->delete_action, enable);
+ enable = ((load_state == PHOTOS_LOAD_STATE_FINISHED && mode == PHOTOS_WINDOW_MODE_PREVIEW)
+ || (selection_mode && can_open));
+ g_simple_action_set_enabled (priv->open_action, enable);
+
enable = (load_state == PHOTOS_LOAD_STATE_FINISHED
&& mode == PHOTOS_WINDOW_MODE_PREVIEW
&& photos_base_item_can_edit (item));
@@ -793,12 +801,32 @@ photos_application_open_current (PhotosApplication *self)
PhotosBaseItem *item;
guint32 time;
- item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->state->item_mngr));
- g_return_if_fail (item != NULL);
-
screen = gtk_window_get_screen (GTK_WINDOW (priv->main_window));
time = gtk_get_current_event_time ();
- photos_base_item_open (item, screen, time);
+
+ if (photos_selection_controller_get_selection_mode (priv->sel_cntrlr))
+ {
+ GList *l;
+ GList *selection;
+
+ selection = photos_selection_controller_get_selection (priv->sel_cntrlr);
+ for (l = selection; l != NULL; l = l->next)
+ {
+ const gchar *urn = (gchar *) l->data;
+
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (priv->state->item_mngr, urn));
+ photos_base_item_open (item, screen, time);
+ }
+ }
+ else
+ {
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->state->item_mngr));
+ g_return_if_fail (item != NULL);
+
+ photos_base_item_open (item, screen, time);
+ }
+
+ photos_selection_controller_set_selection_mode (priv->sel_cntrlr, FALSE);
}
diff --git a/src/photos-selection-toolbar.c b/src/photos-selection-toolbar.c
index cf03427..b6de14b 100644
--- a/src/photos-selection-toolbar.c
+++ b/src/photos-selection-toolbar.c
@@ -185,31 +185,6 @@ photos_selection_toolbar_favorite_clicked (GtkButton *button, gpointer user_data
static void
-photos_selection_toolbar_open_clicked (GtkButton *button, gpointer user_data)
-{
- PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
- GList *selection;
- GList *l;
-
- selection = photos_selection_controller_get_selection (self->sel_cntrlr);
- for (l = selection; l != NULL; l = l->next)
- {
- const gchar *urn = (gchar *) l->data;
- GdkScreen *screen;
- PhotosBaseItem *item;
- guint32 time;
-
- item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr, urn));
- screen = gtk_widget_get_screen (GTK_WIDGET (button));
- time = gtk_get_current_event_time ();
- photos_base_item_open (item, screen, time);
- }
-
- photos_selection_controller_set_selection_mode (self->sel_cntrlr, FALSE);
-}
-
-
-static void
photos_selection_toolbar_properties_response (GtkDialog *dialog, gint response_id, gpointer user_data)
{
PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data);
@@ -252,7 +227,6 @@ photos_selection_toolbar_set_item_visibility (PhotosSelectionToolbar *self)
gboolean has_selection;
gboolean show_collection;
gboolean show_favorite;
- gboolean show_open;
gboolean show_properties;
gchar *favorite_label;
gchar *open_label;
@@ -266,7 +240,6 @@ photos_selection_toolbar_set_item_visibility (PhotosSelectionToolbar *self)
show_collection = has_selection;
show_favorite = has_selection;
- show_open = has_selection;
show_properties = has_selection;
for (l = selection; l != NULL; l = g_list_next (l))
@@ -289,7 +262,6 @@ photos_selection_toolbar_set_item_visibility (PhotosSelectionToolbar *self)
}
show_favorite = show_favorite && ((fav_count == 0) || (fav_count == sel_length));
- show_open = apps != NULL;
if (sel_length > 1)
{
@@ -324,7 +296,6 @@ photos_selection_toolbar_set_item_visibility (PhotosSelectionToolbar *self)
gtk_widget_set_sensitive (self->toolbar_collection, show_collection);
gtk_widget_set_sensitive (self->toolbar_properties, show_properties);
- gtk_widget_set_sensitive (self->toolbar_open, show_open);
gtk_widget_set_sensitive (self->toolbar_favorite, show_favorite);
self->inside_refresh = FALSE;
@@ -445,7 +416,6 @@ photos_selection_toolbar_class_init (PhotosSelectionToolbarClass *class)
gtk_widget_class_bind_template_child (widget_class, PhotosSelectionToolbar, toolbar_properties);
gtk_widget_class_bind_template_child (widget_class, PhotosSelectionToolbar, toolbar_collection);
gtk_widget_class_bind_template_callback (widget_class, photos_selection_toolbar_favorite_clicked);
- gtk_widget_class_bind_template_callback (widget_class, photos_selection_toolbar_open_clicked);
gtk_widget_class_bind_template_callback (widget_class, photos_selection_toolbar_properties_clicked);
gtk_widget_class_bind_template_callback (widget_class, photos_selection_toolbar_collection_clicked);
}
diff --git a/src/photos-selection-toolbar.ui b/src/photos-selection-toolbar.ui
index 9ae3008..ec69bec 100644
--- a/src/photos-selection-toolbar.ui
+++ b/src/photos-selection-toolbar.ui
@@ -27,8 +27,7 @@
<object class="GtkButton" id="toolbar_open">
<property name="visible">1</property>
<property name="label" translatable="yes">Open</property>
- <signal name="clicked" object="PhotosSelectionToolbar" swapped="no"
- handler="photos_selection_toolbar_open_clicked" />
+ <property name="action_name">app.open-current</property>
</object>
<packing>
<property name="pack_type">start</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]