edit-dialog: Split recurrency widgets in different rows
This commit is contained in:
@@ -85,11 +85,9 @@ struct _GcalEditDialog
|
||||
|
||||
GtkWidget *repeat_combo;
|
||||
GtkWidget *repeat_duration_combo;
|
||||
GtkWidget *repeat_limits_box;
|
||||
|
||||
/* Recurrence widgets */
|
||||
GtkWidget *number_of_occurrences_spin;
|
||||
GtkWidget *repeat_duration_stack;
|
||||
GtkWidget *until_date_selector;
|
||||
|
||||
/* Add Alarms popover buttons */
|
||||
@@ -1005,25 +1003,10 @@ static void
|
||||
on_repeat_duration_changed_cb (GtkComboBox *widget,
|
||||
GcalEditDialog *self)
|
||||
{
|
||||
switch (gtk_combo_box_get_active (widget))
|
||||
{
|
||||
case 0:
|
||||
gtk_widget_hide (self->repeat_duration_stack);
|
||||
break;
|
||||
gint active = gtk_combo_box_get_active (widget);
|
||||
|
||||
case 1:
|
||||
gtk_widget_show (self->repeat_duration_stack);
|
||||
gtk_stack_set_visible_child (GTK_STACK (self->repeat_duration_stack), self->number_of_occurrences_spin);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
gtk_widget_show (self->repeat_duration_stack);
|
||||
gtk_stack_set_visible_child (GTK_STACK (self->repeat_duration_stack), self->until_date_selector);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
gtk_widget_set_visible (self->number_of_occurrences_spin, active == 1);
|
||||
gtk_widget_set_visible (self->until_date_selector, active == 2);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1031,19 +1014,11 @@ on_repeat_type_changed_cb (GtkComboBox *combobox,
|
||||
GcalEditDialog *self)
|
||||
{
|
||||
GcalRecurrenceFrequency frequency;
|
||||
gboolean has_recurrence;
|
||||
|
||||
frequency = gtk_combo_box_get_active (combobox);
|
||||
has_recurrence = frequency != GCAL_RECURRENCE_NO_REPEAT;
|
||||
|
||||
gtk_widget_set_visible (self->repeat_limits_box, has_recurrence);
|
||||
|
||||
if (has_recurrence)
|
||||
{
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (self->repeat_duration_combo), GCAL_RECURRENCE_FOREVER);
|
||||
gtk_widget_show (self->repeat_duration_combo);
|
||||
gtk_widget_hide (self->repeat_duration_stack);
|
||||
}
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (self->repeat_duration_combo), GCAL_RECURRENCE_FOREVER);
|
||||
gtk_widget_set_visible (self->repeat_duration_combo, frequency != GCAL_RECURRENCE_NO_REPEAT);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1422,8 +1397,6 @@ gcal_edit_dialog_class_init (GcalEditDialogClass *klass)
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, number_of_occurrences_spin);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, repeat_combo);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, repeat_duration_combo);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, repeat_duration_stack);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, repeat_limits_box);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, scrolled_window);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, source_image);
|
||||
gtk_widget_class_bind_template_child (widget_class, GcalEditDialog, sources_popover);
|
||||
@@ -1552,11 +1525,11 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
|
||||
|
||||
if (frequency == GCAL_RECURRENCE_NO_REPEAT)
|
||||
{
|
||||
gtk_widget_hide (self->repeat_limits_box);
|
||||
gtk_widget_hide (self->repeat_duration_combo);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_show (self->repeat_limits_box);
|
||||
gtk_widget_show (self->repeat_duration_combo);
|
||||
gtk_widget_show (self->repeat_duration_combo);
|
||||
}
|
||||
|
||||
|
||||
+72
-66
@@ -344,81 +344,87 @@
|
||||
<property name="activatable-widget">repeat_combo</property>
|
||||
|
||||
<child type="action">
|
||||
<object class="GtkBox">
|
||||
<object class="GtkComboBoxText" id="repeat_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="repeat_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<signal name="changed" handler="on_repeat_type_changed_cb" object="GcalEditDialog" swapped="no"/>
|
||||
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
|
||||
<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>
|
||||
</items>
|
||||
<property name="active_id">no_repeat</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="repeat_limits_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">6</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="orientation">horizontal</property>
|
||||
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="repeat_duration_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<signal name="changed" handler="on_repeat_duration_changed_cb" object="GcalEditDialog" swapped="no"/>
|
||||
<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>
|
||||
</items>
|
||||
<property name="active_id">forever</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="repeat_duration_stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
|
||||
<child>
|
||||
<object class = "GtkSpinButton" id="number_of_occurrences_spin">
|
||||
<property name="visible">True</property>
|
||||
<property name="input_purpose">number</property>
|
||||
<property name="input-hints">no-emoji</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class = "GcalDateSelector" id="until_date_selector">
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<signal name="changed" handler="on_repeat_type_changed_cb" object="GcalEditDialog" swapped="no"/>
|
||||
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
|
||||
<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>
|
||||
</items>
|
||||
<property name="active_id">no_repeat</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<!-- End Repeat -->
|
||||
<child>
|
||||
<object class="HdyActionRow">
|
||||
<property name="visible" bind-source="repeat_duration_combo" bind-property="visible" bind-flags="default" />
|
||||
<property name="title" translatable="yes">End Repeat</property>
|
||||
<property name="activatable-widget">repeat_combo</property>
|
||||
|
||||
<child type="action">
|
||||
<object class="GtkComboBoxText" id="repeat_duration_combo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="changed" handler="on_repeat_duration_changed_cb" object="GcalEditDialog" swapped="no"/>
|
||||
<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>
|
||||
</items>
|
||||
<property name="active_id">forever</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<!-- Number of Occurrences -->
|
||||
<child>
|
||||
<object class="HdyActionRow">
|
||||
<property name="visible" bind-source="number_of_occurrences_spin" bind-property="visible" bind-flags="default" />
|
||||
<property name="title" translatable="yes">Number of Occurrences</property>
|
||||
<property name="activatable-widget">number_of_occurrences_spin</property>
|
||||
|
||||
<child type="action">
|
||||
<object class = "GtkSpinButton" id="number_of_occurrences_spin">
|
||||
<property name="input_purpose">number</property>
|
||||
<property name="input-hints">no-emoji</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<!-- End Repeat Date -->
|
||||
<child>
|
||||
<object class="HdyActionRow">
|
||||
<property name="visible" bind-source="until_date_selector" bind-property="visible" bind-flags="default" />
|
||||
<property name="title" translatable="yes">End Repeat Date</property>
|
||||
<property name="activatable-widget">until_date_selector</property>
|
||||
|
||||
<child type="action">
|
||||
<object class = "GcalDateSelector" id="until_date_selector">
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
|
||||
|
||||
</object>
|
||||
</child>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user