[gnome-calendar] views: move :event-activated signal to GcalView



commit 5c1bf907fa6cc348d8dfbd1e29e496821c5f0091
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Sat Dec 16 21:44:09 2017 -0200

    views: move :event-activated signal to GcalView
    
    We don't really need to copy this signal to every GcalView
    implementation. It's just wasting code.

 src/views/gcal-month-view.c | 17 ++---------------
 src/views/gcal-view.c       | 14 ++++++++++++++
 src/views/gcal-week-view.c  | 17 +----------------
 src/views/gcal-year-view.c  | 18 +-----------------
 4 files changed, 18 insertions(+), 48 deletions(-)
---
diff --git a/src/views/gcal-month-view.c b/src/views/gcal-month-view.c
index f648ff4f..79a9e525 100644
--- a/src/views/gcal-month-view.c
+++ b/src/views/gcal-month-view.c
@@ -162,14 +162,7 @@ enum
   N_PROPS
 };
 
-enum
-{
-  EVENT_ACTIVATED,
-  NUM_SIGNALS
-};
-
 static gpointer month_view_parent_class = NULL;
-static guint signals[NUM_SIGNALS] = { 0, };
 
 
 /*
@@ -191,7 +184,7 @@ event_activated (GcalMonthView   *self,
   cancel_selection (self);
   gcal_month_popover_popdown (self->overflow_popover);
 
-  g_signal_emit (self, signals[EVENT_ACTIVATED], 0, widget);
+  g_signal_emit_by_name (self, "event-activated", widget);
 }
 
 static void
@@ -2213,13 +2206,7 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
   g_object_class_override_property (object_class, PROP_MANAGER, "manager");
   g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service");
 
-  signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
-                                           GCAL_TYPE_MONTH_VIEW,
-                                           G_SIGNAL_RUN_LAST,
-                                           0, NULL, NULL, NULL,
-                                           G_TYPE_NONE,
-                                           1,
-                                           GCAL_TYPE_EVENT_WIDGET);
+
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/month-view.ui");
 
diff --git a/src/views/gcal-view.c b/src/views/gcal-view.c
index 7bf3aea0..581cec9d 100644
--- a/src/views/gcal-view.c
+++ b/src/views/gcal-view.c
@@ -21,6 +21,7 @@
 
 #define G_LOG_DOMAIN "GcalView"
 
+#include "gcal-event-widget.h"
 #include "gcal-view.h"
 #include "gcal-utils.h"
 
@@ -97,6 +98,19 @@ gcal_view_default_init (GcalViewInterface *iface)
                 G_STRUCT_OFFSET (GcalViewInterface, create_event_detailed),
                 NULL, NULL, NULL,
                 G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_POINTER);
+
+  /**
+   * GcalView::event-activated:
+   *
+   * Emitted when an event widget inside the view is activated.
+   */
+  g_signal_new ("event-activated",
+                GCAL_TYPE_VIEW,
+                G_SIGNAL_RUN_LAST,
+                0, NULL, NULL, NULL,
+                G_TYPE_NONE,
+                1,
+                GCAL_TYPE_EVENT_WIDGET);
 }
 
 /**
diff --git a/src/views/gcal-week-view.c b/src/views/gcal-week-view.c
index bc1122fe..1c7c41a5 100644
--- a/src/views/gcal-week-view.c
+++ b/src/views/gcal-week-view.c
@@ -79,12 +79,6 @@ static void          gcal_data_model_subscriber_interface_init   (ECalDataModelS
 
 enum
 {
-  EVENT_ACTIVATED,
-  LAST_SIGNAL
-};
-
-enum
-{
   PROP_0,
   PROP_DATE,
   PROP_MANAGER,
@@ -92,7 +86,6 @@ enum
   NUM_PROPS
 };
 
-static guint signals[LAST_SIGNAL] = { 0, };
 
 G_DEFINE_TYPE_WITH_CODE (GcalWeekView, gcal_week_view, GTK_TYPE_BOX,
                          G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init)
@@ -104,7 +97,7 @@ static void
 on_event_activated (GcalWeekView *self,
                     GtkWidget    *widget)
 {
-  g_signal_emit (self, signals[EVENT_ACTIVATED], 0, widget);
+  g_signal_emit_by_name (self, "event-activated", widget);
 }
 
 static void
@@ -627,14 +620,6 @@ gcal_week_view_class_init (GcalWeekViewClass *klass)
   g_object_class_override_property (object_class, PROP_MANAGER, "manager");
   g_object_class_override_property (object_class, PROP_WEATHER_SERVICE, "weather-service");
 
-  signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
-                                           GCAL_TYPE_WEEK_VIEW,
-                                           G_SIGNAL_RUN_FIRST,
-                                           0,  NULL, NULL, NULL,
-                                           G_TYPE_NONE,
-                                           1,
-                                           GCAL_TYPE_EVENT_WIDGET);
-
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/week-view.ui");
 
   gtk_widget_class_bind_template_child (widget_class, GcalWeekView, header);
diff --git a/src/views/gcal-year-view.c b/src/views/gcal-year-view.c
index eaf0f607..ae1386ee 100644
--- a/src/views/gcal-year-view.c
+++ b/src/views/gcal-year-view.c
@@ -130,13 +130,6 @@ enum {
   LAST_PROP
 };
 
-enum
-{
-  EVENT_ACTIVATED,
-  NUM_SIGNALS
-};
-
-static guint signals[NUM_SIGNALS] = { 0, };
 static gpointer year_view_parent_class = NULL;
 
 static void          gcal_view_interface_init                    (GcalViewInterface  *iface);
@@ -184,7 +177,7 @@ event_activated (GcalEventWidget *widget,
 
   if (view->popover_mode)
     gtk_widget_hide (view->popover);
-  g_signal_emit (GCAL_YEAR_VIEW (user_data), signals[EVENT_ACTIVATED], 0, widget);
+  g_signal_emit_by_name (view, "event-activated", widget);
 }
 
 static void
@@ -2009,15 +2002,6 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
                                                          FALSE,
                                                          G_PARAM_READWRITE));
 
-  /* FIXME: it will problably go back to GcalView */
-  signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
-                                           GCAL_TYPE_YEAR_VIEW,
-                                           G_SIGNAL_RUN_LAST,
-                                           0, NULL, NULL, NULL,
-                                           G_TYPE_NONE,
-                                           1,
-                                           GCAL_TYPE_EVENT_WIDGET);
-
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/year-view.ui");
 
   gtk_widget_class_bind_template_child (widget_class, GcalYearView, navigator);


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