event-editor/date-time-chooser: Add "editable" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/499>
This commit is contained in:
@@ -5,10 +5,12 @@ template $GcalDateTimeChooser: Adw.PreferencesGroup {
|
||||
$GcalDateChooserRow date_row {
|
||||
title: _("Date");
|
||||
notify::date => $on_date_changed_cb(template);
|
||||
editable: bind template.editable;
|
||||
}
|
||||
|
||||
Adw.EntryRow time_row {
|
||||
title: _("Time");
|
||||
editable: bind template.editable;
|
||||
|
||||
EventControllerFocus {
|
||||
notify::contains-focus => $on_time_row_contains_focus_changed_cb(template) not-swapped;
|
||||
@@ -18,6 +20,7 @@ template $GcalDateTimeChooser: Adw.PreferencesGroup {
|
||||
icon-name: "clock-alt-symbolic";
|
||||
valign: center;
|
||||
tooltip-text: _("Edit Time");
|
||||
sensitive: bind template.editable;
|
||||
|
||||
popover: Popover time_popover {
|
||||
position: bottom;
|
||||
|
||||
@@ -41,6 +41,8 @@ struct _GcalDateTimeChooser
|
||||
|
||||
GDateTime *date_time;
|
||||
GcalTimeFormat time_format;
|
||||
|
||||
gboolean editable;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (GcalDateTimeChooser, gcal_date_time_chooser, ADW_TYPE_PREFERENCES_GROUP);
|
||||
@@ -51,6 +53,7 @@ enum
|
||||
PROP_DATE_TIME,
|
||||
PROP_DATE_LABEL,
|
||||
PROP_TIME_LABEL,
|
||||
PROP_EDITABLE,
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
@@ -526,6 +529,10 @@ gcal_date_time_chooser_get_property (GObject *object,
|
||||
g_value_set_string (value, gcal_date_time_chooser_get_time_label (self));
|
||||
break;
|
||||
|
||||
case PROP_EDITABLE:
|
||||
g_value_set_boolean (value, self->editable);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -553,6 +560,10 @@ gcal_date_time_chooser_set_property (GObject *object,
|
||||
gcal_date_time_chooser_set_time_label (self, g_value_get_string (value));
|
||||
break;
|
||||
|
||||
case PROP_EDITABLE:
|
||||
self->editable = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@@ -603,6 +614,18 @@ gcal_date_time_chooser_class_init (GcalDateTimeChooserClass *klass)
|
||||
"",
|
||||
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* GcalDateTimeChooser:editable:
|
||||
*
|
||||
* Whether the chooser is editable.
|
||||
*
|
||||
* This property is only meant to be bound with, for example, [method@GObject.Object.bind_property].
|
||||
*/
|
||||
properties[PROP_EDITABLE] =
|
||||
g_param_spec_boolean ("editable", NULL, NULL,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (object_class, N_PROPS, properties);
|
||||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/event-editor/gcal-date-time-chooser.ui");
|
||||
|
||||
Reference in New Issue
Block a user