diff options
author | Cyber Phantom <inam123451@gmail.com> | 2023-03-19 01:20:09 +0530 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2023-04-22 10:14:22 +0000 |
commit | e2e73059716f91167ba9ae96322eb50865f930af (patch) | |
tree | f120212c55ad8852ceb00ce2eda13c57e95d0f2a | |
parent | 6d4b7d7bcc2f40d6aa0b7f0be1ddb5409d474f5b (diff) | |
download | gnome-calendar-e2e73059716f91167ba9ae96322eb50865f930af.tar.gz |
gcal-schedule-section: Port "Repeat" to AdwComboRow
GtkComboBox is going to be deprecated in GTK 4.10.
This commit updates the "Repeat" rows in new schedule window to use AdwComboRow.
-rw-r--r-- | src/gui/event-editor/gcal-schedule-section.c | 26 | ||||
-rw-r--r-- | src/gui/event-editor/gcal-schedule-section.h | 1 | ||||
-rw-r--r-- | src/gui/event-editor/gcal-schedule-section.ui | 51 |
3 files changed, 36 insertions, 42 deletions
diff --git a/src/gui/event-editor/gcal-schedule-section.c b/src/gui/event-editor/gcal-schedule-section.c index 5c631fc5..90f9baa5 100644 --- a/src/gui/event-editor/gcal-schedule-section.c +++ b/src/gui/event-editor/gcal-schedule-section.c @@ -384,24 +384,26 @@ out: */ static void -on_repeat_duration_changed_cb (GtkComboBox *widget, +on_repeat_duration_changed_cb (GtkWidget *widget, + GParamSpec *pspec, GcalScheduleSection *self) { - gint active = gtk_combo_box_get_active (widget); + gint active = adw_combo_row_get_selected (ADW_COMBO_ROW (widget)); gtk_widget_set_visible (self->number_of_occurrences_spin, active == 1); gtk_widget_set_visible (self->until_date_selector, active == 2); } static void -on_repeat_type_changed_cb (GtkComboBox *combobox, +on_repeat_type_changed_cb (GtkWidget *widget, + GParamSpec *pspec, GcalScheduleSection *self) { GcalRecurrenceFrequency frequency; - frequency = gtk_combo_box_get_active (combobox); + frequency = adw_combo_row_get_selected (ADW_COMBO_ROW (widget)); - gtk_combo_box_set_active (GTK_COMBO_BOX (self->repeat_duration_combo), GCAL_RECURRENCE_FOREVER); + adw_combo_row_set_selected (ADW_COMBO_ROW (self->repeat_duration_combo), GCAL_RECURRENCE_FOREVER); gtk_widget_set_visible (self->repeat_duration_combo, frequency != GCAL_RECURRENCE_NO_REPEAT); } @@ -462,8 +464,8 @@ gcal_schedule_section_set_event (GcalEventEditorSection *section, frequency = recur ? recur->frequency : GCAL_RECURRENCE_NO_REPEAT; limit_type = recur ? recur->limit_type : GCAL_RECURRENCE_FOREVER; - gtk_combo_box_set_active (GTK_COMBO_BOX (self->repeat_combo), frequency); - gtk_combo_box_set_active (GTK_COMBO_BOX (self->repeat_duration_combo), limit_type); + adw_combo_row_set_selected (ADW_COMBO_ROW (self->repeat_combo), frequency); + adw_combo_row_set_selected (ADW_COMBO_ROW (self->repeat_duration_combo), limit_type); if (frequency == GCAL_RECURRENCE_NO_REPEAT) { @@ -605,7 +607,7 @@ gcal_schedule_section_apply (GcalEventEditorSection *section) /* Check Repeat popover and set recurrence-rules accordingly */ old_recur = gcal_event_get_recurrence (self->event); - freq = gtk_combo_box_get_active (GTK_COMBO_BOX (self->repeat_combo)); + freq = adw_combo_row_get_selected (ADW_COMBO_ROW (self->repeat_combo)); if (freq != GCAL_RECURRENCE_NO_REPEAT) { @@ -613,7 +615,7 @@ gcal_schedule_section_apply (GcalEventEditorSection *section) recur = gcal_recurrence_new (); recur->frequency = freq; - recur->limit_type = gtk_combo_box_get_active (GTK_COMBO_BOX (self->repeat_duration_combo)); + recur->limit_type = adw_combo_row_get_selected (ADW_COMBO_ROW (self->repeat_duration_combo)); if (recur->limit_type == GCAL_RECURRENCE_UNTIL) recur->limit.until = g_date_time_ref (gcal_date_selector_get_date (GCAL_DATE_SELECTOR (self->until_date_selector))); @@ -813,13 +815,13 @@ gcal_schedule_section_recurrence_changed (GcalScheduleSection *self) g_return_val_if_fail (GCAL_IS_SCHEDULE_SECTION (self), FALSE); - freq = gtk_combo_box_get_active (GTK_COMBO_BOX (self->repeat_combo)); + freq = adw_combo_row_get_selected (ADW_COMBO_ROW (self->repeat_combo)); if (freq == GCAL_RECURRENCE_NO_REPEAT && !gcal_event_get_recurrence (self->event)) GCAL_RETURN (FALSE); recurrence = gcal_recurrence_new (); - recurrence->frequency = gtk_combo_box_get_active (GTK_COMBO_BOX (self->repeat_combo)); - recurrence->limit_type = gtk_combo_box_get_active (GTK_COMBO_BOX (self->repeat_duration_combo)); + recurrence->frequency = adw_combo_row_get_selected (ADW_COMBO_ROW (self->repeat_combo)); + recurrence->limit_type = adw_combo_row_get_selected (ADW_COMBO_ROW (self->repeat_duration_combo)); if (recurrence->limit_type == GCAL_RECURRENCE_UNTIL) recurrence->limit.until = g_date_time_ref (gcal_date_selector_get_date (GCAL_DATE_SELECTOR (self->until_date_selector))); else if (recurrence->limit_type == GCAL_RECURRENCE_COUNT) diff --git a/src/gui/event-editor/gcal-schedule-section.h b/src/gui/event-editor/gcal-schedule-section.h index def974c3..e817a33b 100644 --- a/src/gui/event-editor/gcal-schedule-section.h +++ b/src/gui/event-editor/gcal-schedule-section.h @@ -20,6 +20,7 @@ #pragma once +#include <adwaita.h> #include <gtk/gtk.h> G_BEGIN_DECLS diff --git a/src/gui/event-editor/gcal-schedule-section.ui b/src/gui/event-editor/gcal-schedule-section.ui index 60683e0e..eb7e05a9 100644 --- a/src/gui/event-editor/gcal-schedule-section.ui +++ b/src/gui/event-editor/gcal-schedule-section.ui @@ -116,49 +116,40 @@ <!-- Repeat --> <child> - <object class="AdwActionRow"> + <object class="AdwComboRow" id="repeat_combo"> <property name="title" translatable="yes">Repeat</property> - <property name="activatable-widget">repeat_combo</property> - - <child> - <object class="GtkComboBoxText" id="repeat_combo"> - <property name="valign">center</property> - <signal name="changed" handler="on_repeat_type_changed_cb" object="GcalScheduleSection" swapped="no"/> + <property name="valign">center</property> + <property name="model"> + <object class="GtkStringList"> <items> - <item translatable="yes" id="no_repeat">No Repeat</item> - <item translatable="yes" id="daily">Daily</item> - <item translatable="yes" id="mon_fri">Monday – Friday</item> - <item translatable="yes" id="weekly">Weekly</item> - <item translatable="yes" id="monthly">Monthly</item> - <item translatable="yes" id="yearly">Yearly</item> + <item translatable="yes">No Repeat</item> + <item translatable="yes">Daily</item> + <item translatable="yes">Monday – Friday</item> + <item translatable="yes">Weekly</item> + <item translatable="yes">Monthly</item> + <item translatable="yes">Yearly</item> </items> - <property name="active_id">no_repeat</property> </object> - </child> - + </property> + <signal name="notify::selected-item" handler="on_repeat_type_changed_cb" swapped="no"/> </object> </child> <!-- End Repeat --> <child> - <object class="AdwActionRow"> - <property name="visible" bind-source="repeat_duration_combo" bind-property="visible" bind-flags="default" /> + <object class="AdwComboRow" id="repeat_duration_combo"> <property name="title" translatable="yes">End Repeat</property> - <property name="activatable-widget">repeat_combo</property> - - <child> - <object class="GtkComboBoxText" id="repeat_duration_combo"> - <property name="valign">center</property> - <signal name="changed" handler="on_repeat_duration_changed_cb" object="GcalScheduleSection" swapped="no"/> + <property name="valign">center</property> + <property name="model"> + <object class="GtkStringList"> <items> - <item translatable="yes" id="forever">Forever</item> - <item translatable="yes" id="number_of_occurrences_spin">No. of occurrences</item> - <item translatable="yes" id="until_date">Until Date</item> + <item translatable="yes">Forever</item> + <item translatable="yes">No. of occurrences</item> + <item translatable="yes">Until Date</item> </items> - <property name="active_id">forever</property> </object> - </child> - + </property> + <signal name="notify::selected-item" handler="on_repeat_duration_changed_cb" swapped="no"/> </object> </child> |