[gnome-calendar] date-chooser: Add the show-events property
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] date-chooser: Add the show-events property
- Date: Thu, 16 Jun 2022 11:44:37 +0000 (UTC)
commit 6cb57b0ad574bca334755af984ca8dcacb6aebc4
Author: Adrien Plazas <kekun plazas laposte net>
Date: Thu Apr 7 11:16:44 2022 +0200
date-chooser: Add the show-events property
This allows showing events from the timeline via a dot.
src/gui/event-editor/gcal-date-chooser.c | 43 ++++++++++++++++++++++++++++++
src/gui/event-editor/gcal-date-chooser.h | 5 ++++
src/gui/event-editor/gcal-date-selector.ui | 1 +
3 files changed, 49 insertions(+)
---
diff --git a/src/gui/event-editor/gcal-date-chooser.c b/src/gui/event-editor/gcal-date-chooser.c
index b55277e3..f9f09ce2 100644
--- a/src/gui/event-editor/gcal-date-chooser.c
+++ b/src/gui/event-editor/gcal-date-chooser.c
@@ -57,6 +57,7 @@ struct _GcalDateChooser
gboolean show_day_names;
gboolean show_week_numbers;
gboolean show_selected_week;
+ gboolean show_events;
GcalRangeTree *events;
@@ -84,6 +85,7 @@ enum
PROP_SHOW_DAY_NAMES,
PROP_SHOW_WEEK_NUMBERS,
PROP_SHOW_SELECTED_WEEK,
+ PROP_SHOW_EVENTS,
NUM_PROPERTIES
};
@@ -477,6 +479,10 @@ calendar_set_property (GObject *obj,
gcal_date_chooser_set_show_selected_week (self, g_value_get_boolean (value));
break;
+ case PROP_SHOW_EVENTS:
+ gcal_date_chooser_set_show_events (self, g_value_get_boolean (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
break;
@@ -513,6 +519,10 @@ calendar_get_property (GObject *obj,
g_value_set_boolean (value, self->show_selected_week);
break;
+ case PROP_SHOW_EVENTS:
+ g_value_set_boolean (value, self->show_events);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
break;
@@ -637,6 +647,12 @@ gcal_date_chooser_class_init (GcalDateChooserClass *class)
TRUE,
G_PARAM_READWRITE);
+ properties[PROP_SHOW_EVENTS] = g_param_spec_boolean ("show-events",
+ "Show Events",
+ "If TRUE, events are displayed",
+ TRUE,
+ G_PARAM_READWRITE);
+
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
signals[DAY_SELECTED] = g_signal_new ("day-selected",
@@ -694,6 +710,7 @@ gcal_date_chooser_init (GcalDateChooser *self)
self->show_day_names = TRUE;
self->show_week_numbers = TRUE;
self->show_selected_week = TRUE;
+ self->show_events = TRUE;
self->date = g_date_time_new_now_local ();
g_date_time_get_ymd (self->date, &self->this_year, NULL, NULL);
@@ -793,6 +810,12 @@ gcal_date_chooser_init (GcalDateChooser *self)
{
self->days[row][col] = gcal_date_chooser_day_new ();
+ g_object_bind_property (self,
+ "show-events",
+ self->days[row][col],
+ "has-dot",
+ G_BINDING_SYNC_CREATE);
+
g_signal_connect_object (self->days[row][col],
"clicked",
G_CALLBACK (day_selected_cb),
@@ -915,6 +938,26 @@ gcal_date_chooser_get_show_selected_week (GcalDateChooser *self)
return self->show_selected_week;
}
+void
+gcal_date_chooser_set_show_events (GcalDateChooser *self,
+ gboolean setting)
+{
+ if (self->show_events == setting)
+ return;
+
+ self->show_events = setting;
+
+ calendar_update_selected_day_display (self);
+
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SHOW_EVENTS]);
+}
+
+gboolean
+gcal_date_chooser_get_show_events (GcalDateChooser *self)
+{
+ return self->show_events;
+}
+
void
gcal_date_chooser_set_date (GcalDateChooser *self,
GDateTime *date)
diff --git a/src/gui/event-editor/gcal-date-chooser.h b/src/gui/event-editor/gcal-date-chooser.h
index a33e2576..c6f42fda 100644
--- a/src/gui/event-editor/gcal-date-chooser.h
+++ b/src/gui/event-editor/gcal-date-chooser.h
@@ -53,6 +53,11 @@ gboolean gcal_date_chooser_get_show_selected_week (GcalDateChoose
void gcal_date_chooser_set_show_selected_week (GcalDateChooser *self,
gboolean setting);
+gboolean gcal_date_chooser_get_show_events (GcalDateChooser *self);
+
+void gcal_date_chooser_set_show_events (GcalDateChooser *self,
+ gboolean setting);
+
G_END_DECLS
#endif /* __GCAL_DATE_CHOOSER_H__ */
diff --git a/src/gui/event-editor/gcal-date-selector.ui b/src/gui/event-editor/gcal-date-selector.ui
index 864ed74a..250cfd2c 100644
--- a/src/gui/event-editor/gcal-date-selector.ui
+++ b/src/gui/event-editor/gcal-date-selector.ui
@@ -22,6 +22,7 @@
<property name="margin-end">12</property>
<child>
<object class="GcalDateChooser" id="date_chooser">
+ <property name="show_events">False</property>
<property name="show_selected_week">False</property>
<property name="show_week_numbers">True</property>
<signal name="day-selected" handler="calendar_day_selected" object="GcalDateSelector"
swapped="yes"/>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]