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 {
|
$GcalDateChooserRow date_row {
|
||||||
title: _("Date");
|
title: _("Date");
|
||||||
notify::date => $on_date_changed_cb(template);
|
notify::date => $on_date_changed_cb(template);
|
||||||
|
editable: bind template.editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adw.EntryRow time_row {
|
Adw.EntryRow time_row {
|
||||||
title: _("Time");
|
title: _("Time");
|
||||||
|
editable: bind template.editable;
|
||||||
|
|
||||||
EventControllerFocus {
|
EventControllerFocus {
|
||||||
notify::contains-focus => $on_time_row_contains_focus_changed_cb(template) not-swapped;
|
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";
|
icon-name: "clock-alt-symbolic";
|
||||||
valign: center;
|
valign: center;
|
||||||
tooltip-text: _("Edit Time");
|
tooltip-text: _("Edit Time");
|
||||||
|
sensitive: bind template.editable;
|
||||||
|
|
||||||
popover: Popover time_popover {
|
popover: Popover time_popover {
|
||||||
position: bottom;
|
position: bottom;
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ struct _GcalDateTimeChooser
|
|||||||
|
|
||||||
GDateTime *date_time;
|
GDateTime *date_time;
|
||||||
GcalTimeFormat time_format;
|
GcalTimeFormat time_format;
|
||||||
|
|
||||||
|
gboolean editable;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (GcalDateTimeChooser, gcal_date_time_chooser, ADW_TYPE_PREFERENCES_GROUP);
|
G_DEFINE_TYPE (GcalDateTimeChooser, gcal_date_time_chooser, ADW_TYPE_PREFERENCES_GROUP);
|
||||||
@@ -51,6 +53,7 @@ enum
|
|||||||
PROP_DATE_TIME,
|
PROP_DATE_TIME,
|
||||||
PROP_DATE_LABEL,
|
PROP_DATE_LABEL,
|
||||||
PROP_TIME_LABEL,
|
PROP_TIME_LABEL,
|
||||||
|
PROP_EDITABLE,
|
||||||
N_PROPS
|
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));
|
g_value_set_string (value, gcal_date_time_chooser_get_time_label (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_EDITABLE:
|
||||||
|
g_value_set_boolean (value, self->editable);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
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));
|
gcal_date_time_chooser_set_time_label (self, g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_EDITABLE:
|
||||||
|
self->editable = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
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);
|
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);
|
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");
|
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