[gthumb: 2/3] added support for double click activation



commit 188c09e7af2cccdf41703a46a34dbb5043ca1317
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Thu Dec 24 10:29:23 2015 +0100

    added support for double click activation

 gthumb/gth-browser.c   |    2 ++
 gthumb/gth-file-view.c |   29 +++++++++++++++++++++++++++++
 gthumb/gth-file-view.h |    5 +++++
 gthumb/gth-grid-view.c |   20 +++++++++++++++++++-
 4 files changed, 55 insertions(+), 1 deletions(-)
---
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index d41168b..e77dfa4 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -4353,6 +4353,7 @@ gth_browser_init (GthBrowser *browser)
        gth_file_list_set_caption (GTH_FILE_LIST (browser->priv->thumbnail_list), "none");
        gth_grid_view_set_cell_spacing (GTH_GRID_VIEW (gth_file_list_get_view (GTH_FILE_LIST 
(browser->priv->thumbnail_list))), 0);
        gth_file_list_set_thumb_size (GTH_FILE_LIST (browser->priv->thumbnail_list), 95);
+
        if (browser->priv->viewer_thumbnails_orientation == GTK_ORIENTATION_HORIZONTAL) {
                gth_paned_set_position2 (GTH_PANED (browser->priv->viewer_thumbnails_pane), 
g_settings_get_int (browser->priv->browser_settings, PREF_BROWSER_THUMBNAIL_LIST_SIZE));
                gtk_paned_pack2 (GTK_PANED (browser->priv->viewer_thumbnails_pane), 
browser->priv->thumbnail_list, FALSE, FALSE);
@@ -4765,6 +4766,7 @@ gth_browser_init (GthBrowser *browser)
                                      g_settings_get_int (browser->priv->browser_settings, 
PREF_BROWSER_THUMBNAIL_SIZE));
        caption = g_settings_get_string (browser->priv->browser_settings, PREF_BROWSER_THUMBNAIL_CAPTION);
        gth_file_list_set_caption (GTH_FILE_LIST (browser->priv->file_list), caption);
+       gth_file_view_set_activate_on_single_click (GTH_FILE_VIEW (gth_file_list_get_view (GTH_FILE_LIST 
(browser->priv->file_list))), FALSE);
 
        g_free (caption);
        g_free (sort_type);
diff --git a/gthumb/gth-file-view.c b/gthumb/gth-file-view.c
index 536887e..0868df8 100644
--- a/gthumb/gth-file-view.c
+++ b/gthumb/gth-file-view.c
@@ -86,6 +86,12 @@ gth_file_view_default_init (GthFileViewInterface *iface)
                                                               G_MAXINT32,
                                                               DEFAULT_THUMBNAIL_SIZE,
                                                               G_PARAM_READABLE | G_PARAM_WRITABLE | 
G_PARAM_CONSTRUCT));
+       g_object_interface_install_property (iface,
+                                            g_param_spec_boolean ("activate-on-single-click",
+                                                                  "Activate on single click",
+                                                                  "Emit the activated signal after a single 
click",
+                                                                  TRUE,
+                                                                  G_PARAM_READABLE | G_PARAM_WRITABLE | 
G_PARAM_CONSTRUCT));
 }
 
 
@@ -159,6 +165,29 @@ gth_file_view_get_thumbnail_size (GthFileView *self)
 
 
 void
+gth_file_view_set_activate_on_single_click (GthFileView *self,
+                                           gboolean     single)
+{
+       g_return_if_fail (GTH_IS_FILE_VIEW (self));
+
+       g_object_set (self, "activate-on-single-click", single, NULL);
+}
+
+
+gboolean
+gth_file_view_get_activate_on_single_click (GthFileView *self)
+{
+       gboolean value;
+
+       g_return_val_if_fail (GTH_IS_FILE_VIEW (self), FALSE);
+
+       g_object_get (self, "activate-on-single-click", &value, NULL);
+
+       return value;
+}
+
+
+void
 gth_file_view_scroll_to (GthFileView *self,
                         int          pos,
                         double       yalign)
diff --git a/gthumb/gth-file-view.h b/gthumb/gth-file-view.h
index dd30544..8c98677 100644
--- a/gthumb/gth-file-view.h
+++ b/gthumb/gth-file-view.h
@@ -107,6 +107,11 @@ char *          gth_file_view_get_caption        (GthFileView             *self)
 void            gth_file_view_set_thumbnail_size (GthFileView             *self,
                                                  int                      value);
 gboolean        gth_file_view_get_thumbnail_size (GthFileView             *self);
+void           gth_file_view_set_activate_on_single_click
+                                                (GthFileView             *self,
+                                                 gboolean                 single);
+gboolean        gth_file_view_get_activate_on_single_click
+                                                (GthFileView             *self);
 void            gth_file_view_scroll_to          (GthFileView             *self,
                                                  int                      pos,
                                                  double                   yalign);
diff --git a/gthumb/gth-grid-view.c b/gthumb/gth-grid-view.c
index 30f8f9d..6c1d9e8 100644
--- a/gthumb/gth-grid-view.c
+++ b/gthumb/gth-grid-view.c
@@ -89,6 +89,7 @@ enum {
        PROP_HSCROLL_POLICY,
        PROP_MODEL,
        PROP_THUMBNAIL_SIZE,
+       PROP_ACTIVATE_ON_SINGLE_CLICK,
        PROP_VADJUSTMENT,
        PROP_VSCROLL_POLICY
 };
@@ -3042,7 +3043,8 @@ gth_grid_view_button_release (GtkWidget      *widget,
                _gth_grid_view_set_item_selected_and_emit_signal (self, TRUE, self->priv->select_pending_pos);
                self->priv->last_selected_pos = self->priv->select_pending_pos;
                self->priv->last_selected_item = self->priv->select_pending_item;
-               gth_file_view_activated (GTH_FILE_VIEW (self), self->priv->last_selected_pos);
+               if (self->priv->activate_on_single_click)
+                       gth_file_view_activated (GTH_FILE_VIEW (self), self->priv->last_selected_pos);
        }
 
        if (self->priv->activate_pending) {
@@ -3534,6 +3536,15 @@ _gth_grid_view_set_caption (GthGridView *self,
 
 
 static void
+_gth_grid_view_set_activate_on_single_click (GthGridView *self,
+                                            gboolean     value)
+{
+       self->priv->activate_on_single_click = value;
+       g_object_notify (G_OBJECT (self), "activate-on-single-click");
+}
+
+
+static void
 gth_grid_view_set_property (GObject      *object,
                            guint         prop_id,
                            const GValue *value,
@@ -3559,6 +3570,9 @@ gth_grid_view_set_property (GObject      *object,
        case PROP_THUMBNAIL_SIZE:
                _gth_grid_view_set_thumbnail_size (self, g_value_get_int (value));
                break;
+       case PROP_ACTIVATE_ON_SINGLE_CLICK:
+               _gth_grid_view_set_activate_on_single_click (self, g_value_get_boolean (value));
+               break;
        case PROP_VADJUSTMENT:
                _gth_grid_view_set_vadjustment (self, g_value_get_object (value));
                break;
@@ -3600,6 +3614,9 @@ gth_grid_view_get_property (GObject    *object,
        case PROP_THUMBNAIL_SIZE:
                g_value_set_int (value, self->priv->thumbnail_size);
                break;
+       case PROP_ACTIVATE_ON_SINGLE_CLICK:
+               g_value_set_boolean (value, self->priv->activate_on_single_click);
+               break;
        case PROP_VADJUSTMENT:
                g_value_set_object (value, self->priv->vadjustment);
                break;
@@ -3732,6 +3749,7 @@ gth_grid_view_class_init (GthGridViewClass *grid_view_class)
        g_object_class_override_property (gobject_class, PROP_CAPTION, "caption");
        g_object_class_override_property (gobject_class, PROP_MODEL, "model");
        g_object_class_override_property (gobject_class, PROP_THUMBNAIL_SIZE, "thumbnail-size");
+       g_object_class_override_property (gobject_class, PROP_ACTIVATE_ON_SINGLE_CLICK, 
"activate-on-single-click");
 
        /* Key bindings */
 


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