gui/quick-add-popover: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
This commit is contained in:
@@ -39,8 +39,6 @@ struct _GcalQuickAddPopover
|
||||
GcalRange *range;
|
||||
|
||||
GListModel *read_write_calendars_model;
|
||||
|
||||
GcalContext *context;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (GcalQuickAddPopover, gcal_quick_add_popover, GTK_TYPE_POPOVER)
|
||||
@@ -48,7 +46,6 @@ G_DEFINE_TYPE (GcalQuickAddPopover, gcal_quick_add_popover, GTK_TYPE_POPOVER)
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_RANGE,
|
||||
PROP_CONTEXT,
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
@@ -95,13 +92,15 @@ create_row_func (gpointer data,
|
||||
GcalCalendar *default_calendar;
|
||||
GcalCalendar *calendar = data;
|
||||
GcalQuickAddPopover *self = user_data;
|
||||
GcalContext *context;
|
||||
GcalManager *manager;
|
||||
g_autoptr (GdkPaintable) paintable = NULL;
|
||||
g_autofree gchar *parent_name = NULL;
|
||||
g_autofree gchar *tooltip = NULL;
|
||||
GtkWidget *first_row, *row, *check_button;
|
||||
|
||||
manager = gcal_context_get_manager (self->context);
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
manager = gcal_context_get_manager (context);
|
||||
|
||||
default_calendar = gcal_manager_get_default_calendar (manager);
|
||||
|
||||
@@ -142,17 +141,6 @@ bind_model (GcalQuickAddPopover *self)
|
||||
create_row_func, self, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
set_up_context (GcalQuickAddPopover *self)
|
||||
{
|
||||
GcalManager *manager;
|
||||
|
||||
manager = gcal_context_get_manager (self->context);
|
||||
self->read_write_calendars_model = gcal_create_writable_calendars_model (manager);
|
||||
|
||||
bind_model (self);
|
||||
}
|
||||
|
||||
static gint
|
||||
get_number_of_days_from_today (GDateTime *day)
|
||||
{
|
||||
@@ -372,7 +360,7 @@ update_header (GcalQuickAddPopover *self)
|
||||
g_autoptr (GDateTime) range_end = NULL;
|
||||
g_autofree gchar *title_date = NULL;
|
||||
gboolean multiday_or_timed;
|
||||
|
||||
GcalContext *context;
|
||||
|
||||
if (!self->range)
|
||||
return;
|
||||
@@ -403,7 +391,8 @@ update_header (GcalQuickAddPopover *self)
|
||||
GcalTimeFormat time_format;
|
||||
const gchar *hour_format;
|
||||
|
||||
time_format = gcal_context_get_time_format (self->context);
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
time_format = gcal_context_get_time_format (context);
|
||||
|
||||
if (time_format == GCAL_TIME_FORMAT_24H)
|
||||
hour_format = "%R";
|
||||
@@ -455,6 +444,7 @@ edit_or_create_event (GcalQuickAddPopover *self,
|
||||
ECalComponent *component;
|
||||
GcalCalendar *calendar;
|
||||
GtkListBoxRow *selected_row;
|
||||
GcalContext *context;
|
||||
GcalManager *manager;
|
||||
GDateTime *date_start, *date_end;
|
||||
GTimeZone *tz;
|
||||
@@ -465,7 +455,8 @@ edit_or_create_event (GcalQuickAddPopover *self,
|
||||
range_start = gcal_range_get_start (self->range);
|
||||
range_end = gcal_range_get_end (self->range);
|
||||
|
||||
manager = gcal_context_get_manager (self->context);
|
||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
manager = gcal_context_get_manager (context);
|
||||
selected_row = gtk_list_box_get_selected_row (GTK_LIST_BOX (self->calendars_list_box));
|
||||
calendar = gcal_calendar_row_get_calendar (GCAL_CALENDAR_ROW (selected_row));
|
||||
|
||||
@@ -554,16 +545,6 @@ summary_entry_activated (AdwEntryRow *entry,
|
||||
* Overrides
|
||||
*/
|
||||
|
||||
static void
|
||||
gcal_quick_add_popover_finalize (GObject *object)
|
||||
{
|
||||
GcalQuickAddPopover *self = (GcalQuickAddPopover *)object;
|
||||
|
||||
g_clear_object (&self->context);
|
||||
|
||||
G_OBJECT_CLASS (gcal_quick_add_popover_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gcal_quick_add_popover_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
@@ -578,10 +559,6 @@ gcal_quick_add_popover_get_property (GObject *object,
|
||||
g_value_set_object (value, self->range);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, self->context);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -601,31 +578,6 @@ gcal_quick_add_popover_set_property (GObject *object,
|
||||
gcal_quick_add_popover_set_range (self, g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
{
|
||||
GcalManager *manager;
|
||||
|
||||
g_assert (self->context == NULL);
|
||||
self->context = g_value_dup_object (value);
|
||||
|
||||
manager = gcal_context_get_manager (self->context);
|
||||
set_up_context (self);
|
||||
|
||||
/* Connect to the manager signals and keep the list updates */
|
||||
g_signal_connect_object (manager,
|
||||
"notify::default-calendar",
|
||||
G_CALLBACK (bind_model),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
|
||||
g_signal_connect_object (self->context,
|
||||
"notify::time-format",
|
||||
G_CALLBACK (update_header),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -658,7 +610,6 @@ gcal_quick_add_popover_class_init (GcalQuickAddPopoverClass *klass)
|
||||
|
||||
popover_class->closed = gcal_quick_add_popover_closed;
|
||||
|
||||
object_class->finalize = gcal_quick_add_popover_finalize;
|
||||
object_class->get_property = gcal_quick_add_popover_get_property;
|
||||
object_class->set_property = gcal_quick_add_popover_set_property;
|
||||
|
||||
@@ -690,19 +641,6 @@ gcal_quick_add_popover_class_init (GcalQuickAddPopoverClass *klass)
|
||||
G_TYPE_DATE_TIME,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
* GcalQuickAddPopover::context:
|
||||
*
|
||||
* The context of the application.
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_CONTEXT,
|
||||
g_param_spec_object ("context",
|
||||
"Context of the application",
|
||||
"The singleton context of the application",
|
||||
GCAL_TYPE_CONTEXT,
|
||||
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
||||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/gcal-quick-add-popover.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalQuickAddPopover, add_button);
|
||||
@@ -720,7 +658,27 @@ gcal_quick_add_popover_class_init (GcalQuickAddPopoverClass *klass)
|
||||
static void
|
||||
gcal_quick_add_popover_init (GcalQuickAddPopover *self)
|
||||
{
|
||||
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||
GcalManager *manager = gcal_context_get_manager (context);
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
self->read_write_calendars_model = gcal_create_writable_calendars_model (manager);
|
||||
|
||||
bind_model (self);
|
||||
|
||||
/* Connect to the manager signals and keep the list updates */
|
||||
g_signal_connect_object (manager,
|
||||
"notify::default-calendar",
|
||||
G_CALLBACK (bind_model),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
|
||||
g_signal_connect_object (context,
|
||||
"notify::time-format",
|
||||
G_CALLBACK (update_header),
|
||||
self,
|
||||
G_CONNECT_SWAPPED);
|
||||
}
|
||||
|
||||
GtkWidget*
|
||||
|
||||
@@ -1225,7 +1225,6 @@ gcal_window_constructed (GObject *object)
|
||||
* FIXME: this is a hack around the issue that happens when trying to bind
|
||||
* these properties using the GtkBuilder .ui file.
|
||||
*/
|
||||
g_object_bind_property (self, "context", self->quick_add_popover, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
||||
g_object_bind_property (self, "context", self->sync_indicator, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
||||
g_object_bind_property (self, "context", self->search_button, "context", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user