From 5e5eb75be0be60d07e2b7dc3251c5bb3b792db76 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 20 Jun 2023 18:37:28 -0300 Subject: [PATCH] calendar-management/new-calendar: Move add button to dialog Move the add button from the headerbar into the dialog, make it a pill button, and update the button label with the number of calendars that will be added. --- .../gcal-new-calendar-page.c | 25 ++++++++++++++++ .../gcal-new-calendar-page.ui | 30 ++++++++++++------- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/gui/calendar-management/gcal-new-calendar-page.c b/src/gui/calendar-management/gcal-new-calendar-page.c index c74bbe7e..834e2211 100644 --- a/src/gui/calendar-management/gcal-new-calendar-page.c +++ b/src/gui/calendar-management/gcal-new-calendar-page.c @@ -20,6 +20,8 @@ #define G_LOG_DOMAIN "GcalNewCalendarPage" +#include "config.h" + #include #include "gcal-context.h" @@ -136,13 +138,36 @@ calendar_path_to_name_suggestion (GFile *file) static void update_add_button (GcalNewCalendarPage *self) { + g_autofree gchar *add_button_label = NULL; gboolean valid; + uint32_t n_calendars; valid = (self->local_source != NULL || self->remote_sources != NULL) && self->calendar_address_entry_state != ENTRY_STATE_VALIDATING && self->calendar_address_entry_state != ENTRY_STATE_INVALID; gtk_widget_set_sensitive (self->add_button, valid); + + n_calendars = 0; + if (self->local_source) + n_calendars++; + if (self->remote_sources) + n_calendars += self->remote_sources->len; + + if (n_calendars > 0) + { + add_button_label = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE, + "Add Calendar", + "Add %1$u Calendars", + n_calendars), + n_calendars); + } + else + { + add_button_label = g_strdup (_("Add Calendar")); + } + + gtk_button_set_label (GTK_BUTTON (self->add_button), add_button_label); } static void diff --git a/src/gui/calendar-management/gcal-new-calendar-page.ui b/src/gui/calendar-management/gcal-new-calendar-page.ui index 00ca3d14..0a9f2731 100644 --- a/src/gui/calendar-management/gcal-new-calendar-page.ui +++ b/src/gui/calendar-management/gcal-new-calendar-page.ui @@ -15,17 +15,6 @@ - - - Add - False - - - - - @@ -199,6 +188,25 @@ + + + + + + center + Add Calendar + False + + + + + + + +