event-editor/schedule-section: Subclass GcalEventEditorSection
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/711>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
using Gtk 4.0;
|
using Gtk 4.0;
|
||||||
using Adw 1;
|
using Adw 1;
|
||||||
|
|
||||||
template $GcalScheduleSection: Adw.PreferencesGroup {
|
template $GcalScheduleSection: $GcalEventEditorSection {
|
||||||
Adw.InlineViewSwitcher {
|
Adw.InlineViewSwitcher {
|
||||||
stack: schedule_type_stack;
|
stack: schedule_type_stack;
|
||||||
homogeneous: true;
|
homogeneous: true;
|
||||||
|
|||||||
@@ -26,8 +26,6 @@
|
|||||||
#include "gcal-date-time-chooser.h"
|
#include "gcal-date-time-chooser.h"
|
||||||
#include "gcal-debug.h"
|
#include "gcal-debug.h"
|
||||||
#include "gcal-event.h"
|
#include "gcal-event.h"
|
||||||
#include "gcal-event-editor-dialog.h"
|
|
||||||
#include "gcal-event-editor-section.h"
|
|
||||||
#include "gcal-event-schedule.h"
|
#include "gcal-event-schedule.h"
|
||||||
#include "gcal-recurrence.h"
|
#include "gcal-recurrence.h"
|
||||||
#include "gcal-schedule-section.h"
|
#include "gcal-schedule-section.h"
|
||||||
@@ -37,7 +35,7 @@
|
|||||||
|
|
||||||
struct _GcalScheduleSection
|
struct _GcalScheduleSection
|
||||||
{
|
{
|
||||||
GtkBox parent;
|
GcalEventEditorSection parent;
|
||||||
|
|
||||||
GcalEventSchedule *values;
|
GcalEventSchedule *values;
|
||||||
|
|
||||||
@@ -87,7 +85,7 @@ static void widget_state_free (WidgetState *state);
|
|||||||
|
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (WidgetState, widget_state_free);
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (WidgetState, widget_state_free);
|
||||||
|
|
||||||
G_DEFINE_FINAL_TYPE (GcalScheduleSection, gcal_schedule_section, ADW_TYPE_PREFERENCES_GROUP)
|
G_DEFINE_FINAL_TYPE (GcalScheduleSection, gcal_schedule_section, GCAL_TYPE_EVENT_EDITOR_SECTION)
|
||||||
|
|
||||||
static void on_start_date_changed_cb (GtkWidget *widget,
|
static void on_start_date_changed_cb (GtkWidget *widget,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@@ -323,16 +321,11 @@ static void
|
|||||||
update_from_event_schedule (GcalScheduleSection *self,
|
update_from_event_schedule (GcalScheduleSection *self,
|
||||||
GcalEventSchedule *values)
|
GcalEventSchedule *values)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
dialog = gtk_widget_get_ancestor (GTK_WIDGET (self), GCAL_TYPE_EVENT_EDITOR_DIALOG);
|
event = gcal_event_editor_section_get_event (GCAL_EVENT_EDITOR_SECTION (self));
|
||||||
|
|
||||||
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (dialog));
|
|
||||||
|
|
||||||
event = gcal_event_editor_dialog_get_event (GCAL_EVENT_EDITOR_DIALOG (dialog));
|
|
||||||
|
|
||||||
gcal_event_schedule_free (self->values);
|
gcal_event_schedule_free (self->values);
|
||||||
self->values = values;
|
self->values = values;
|
||||||
@@ -482,13 +475,8 @@ static void
|
|||||||
on_time_format_changed_cb (GcalScheduleSection *self)
|
on_time_format_changed_cb (GcalScheduleSection *self)
|
||||||
{
|
{
|
||||||
GcalContext *context;
|
GcalContext *context;
|
||||||
GtkWidget *dialog;
|
|
||||||
|
|
||||||
dialog = gtk_widget_get_ancestor (GTK_WIDGET (self), GCAL_TYPE_EVENT_EDITOR_DIALOG);
|
if (gcal_event_editor_section_get_event (GCAL_EVENT_EDITOR_SECTION (self)))
|
||||||
|
|
||||||
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (dialog));
|
|
||||||
|
|
||||||
if (gcal_event_editor_dialog_get_event (GCAL_EVENT_EDITOR_DIALOG (dialog)))
|
|
||||||
{
|
{
|
||||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||||
|
|
||||||
@@ -509,19 +497,13 @@ on_time_format_changed_cb (GcalScheduleSection *self)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_schedule_section_map (GtkWidget *widget)
|
gcal_schedule_section_event_set_cb (GcalEventEditorSection *section,
|
||||||
|
GcalEvent *event)
|
||||||
{
|
{
|
||||||
GcalScheduleSection *self = GCAL_SCHEDULE_SECTION (widget);
|
GcalScheduleSection *self = GCAL_SCHEDULE_SECTION (section);
|
||||||
GcalTimeFormat time_format;
|
GcalTimeFormat time_format;
|
||||||
GcalContext *context;
|
GcalContext *context;
|
||||||
GtkWidget *dialog;
|
|
||||||
GcalEvent *event;
|
|
||||||
|
|
||||||
dialog = gtk_widget_get_ancestor (widget, GCAL_TYPE_EVENT_EDITOR_DIALOG);
|
|
||||||
|
|
||||||
g_assert (GCAL_IS_EVENT_EDITOR_DIALOG (dialog));
|
|
||||||
|
|
||||||
event = gcal_event_editor_dialog_get_event (GCAL_EVENT_EDITOR_DIALOG (dialog));
|
|
||||||
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
|
||||||
|
|
||||||
time_format = gcal_context_get_time_format (context);
|
time_format = gcal_context_get_time_format (context);
|
||||||
@@ -529,8 +511,6 @@ gcal_schedule_section_map (GtkWidget *widget)
|
|||||||
|
|
||||||
if (event)
|
if (event)
|
||||||
refresh (self);
|
refresh (self);
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (gcal_schedule_section_parent_class)->map (widget);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -553,12 +533,13 @@ gcal_schedule_section_class_init (GcalScheduleSectionClass *klass)
|
|||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
GcalEventEditorSectionClass *section_class = GCAL_EVENT_EDITOR_SECTION_CLASS (klass);
|
||||||
|
|
||||||
g_type_ensure (GCAL_TYPE_DATE_TIME_CHOOSER);
|
g_type_ensure (GCAL_TYPE_DATE_TIME_CHOOSER);
|
||||||
|
|
||||||
object_class->finalize = gcal_schedule_section_finalize;
|
object_class->finalize = gcal_schedule_section_finalize;
|
||||||
|
|
||||||
widget_class->map = gcal_schedule_section_map;
|
section_class->event_set_cb = gcal_schedule_section_event_set_cb;
|
||||||
|
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/event-editor/gcal-schedule-section.ui");
|
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/event-editor/gcal-schedule-section.ui");
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,12 @@
|
|||||||
#include "gcal-enums.h"
|
#include "gcal-enums.h"
|
||||||
#include "gcal-event.h"
|
#include "gcal-event.h"
|
||||||
#include "gcal-recurrence.h"
|
#include "gcal-recurrence.h"
|
||||||
|
#include "gcal-event-editor-section.h"
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GCAL_TYPE_SCHEDULE_SECTION (gcal_schedule_section_get_type())
|
#define GCAL_TYPE_SCHEDULE_SECTION (gcal_schedule_section_get_type())
|
||||||
G_DECLARE_FINAL_TYPE (GcalScheduleSection, gcal_schedule_section, GCAL, SCHEDULE_SECTION, AdwPreferencesGroup)
|
G_DECLARE_FINAL_TYPE (GcalScheduleSection, gcal_schedule_section, GCAL, SCHEDULE_SECTION, GcalEventEditorSection)
|
||||||
|
|
||||||
|
|
||||||
/* Tests */
|
/* Tests */
|
||||||
|
|||||||
Reference in New Issue
Block a user