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.
This commit is contained in:
Georges Basile Stavracas Neto
2017-12-16 21:44:09 -02:00
parent c306bbc1ef
commit 5c1bf907fa
4 changed files with 18 additions and 48 deletions
+2 -15
View File
@@ -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");
+14
View File
@@ -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);
}
/**
+1 -16
View File
@@ -77,12 +77,6 @@ static void gcal_view_interface_init (GcalViewInterf
static void gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *iface);
enum
{
EVENT_ACTIVATED,
LAST_SIGNAL
};
enum
{
PROP_0,
@@ -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);
+1 -17
View File
@@ -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);