From 736b724d24ec2f259fe7702318c27ef2cb88b314 Mon Sep 17 00:00:00 2001 From: Niklas Wimmer Date: Fri, 25 Sep 2026 10:43:49 +0200 Subject: [PATCH] calendar-management: Remove new-calendar page This page will be replaced by the two pages created in the previous commits, new-local-calendar and new-online-calendar. To keep the project compiling the button to add a new calendar now temporarily points at new-local-calendar. The button will be replaced by a menu exposing both new pages in one of the following commits. Part-of: --- po/POTFILES.in | 2 - .../calendar-management.gresource.xml | 1 - .../gcal-calendar-management-dialog.c | 4 +- .../calendar-management/gcal-calendars-page.c | 2 +- .../gcal-new-calendar-page.blp | 172 ------ .../gcal-new-calendar-page.c | 561 ------------------ .../gcal-new-calendar-page.h | 30 - src/gui/calendar-management/meson.build | 2 - 8 files changed, 3 insertions(+), 771 deletions(-) delete mode 100644 src/gui/calendar-management/gcal-new-calendar-page.blp delete mode 100644 src/gui/calendar-management/gcal-new-calendar-page.c delete mode 100644 src/gui/calendar-management/gcal-new-calendar-page.h diff --git a/po/POTFILES.in b/po/POTFILES.in index 4555f7a8..8f4ba19e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -10,8 +10,6 @@ src/gui/calendar-management/gcal-calendars-page.blp src/gui/calendar-management/gcal-calendars-page.c src/gui/calendar-management/gcal-edit-calendar-page.blp src/gui/calendar-management/gcal-edit-calendar-page.c -src/gui/calendar-management/gcal-new-calendar-page.blp -src/gui/calendar-management/gcal-new-calendar-page.c src/gui/calendar-management/gcal-new-local-calendar-page.blp src/gui/calendar-management/gcal-new-local-calendar-page.c src/gui/calendar-management/gcal-new-online-calendar-page.blp diff --git a/src/gui/calendar-management/calendar-management.gresource.xml b/src/gui/calendar-management/calendar-management.gresource.xml index fbac02b7..0fedbe37 100644 --- a/src/gui/calendar-management/calendar-management.gresource.xml +++ b/src/gui/calendar-management/calendar-management.gresource.xml @@ -5,7 +5,6 @@ gcal-calendar-management-dialog.ui gcal-calendars-page.ui gcal-edit-calendar-page.ui - gcal-new-calendar-page.ui gcal-new-local-calendar-page.ui gcal-new-online-calendar-page.ui diff --git a/src/gui/calendar-management/gcal-calendar-management-dialog.c b/src/gui/calendar-management/gcal-calendar-management-dialog.c index 23f4620a..597839a2 100644 --- a/src/gui/calendar-management/gcal-calendar-management-dialog.c +++ b/src/gui/calendar-management/gcal-calendar-management-dialog.c @@ -24,7 +24,7 @@ #include "gcal-calendar-management-page.h" #include "gcal-calendars-page.h" #include "gcal-edit-calendar-page.h" -#include "gcal-new-calendar-page.h" +#include "gcal-new-local-calendar-page.h" #include "gcal-utils.h" #include @@ -170,7 +170,7 @@ gcal_calendar_management_dialog_init (GcalCalendarManagementDialog *self) GType gtype; } pages[] = { { GCAL_PAGE_CALENDARS, GCAL_TYPE_CALENDARS_PAGE }, - { GCAL_PAGE_NEW_CALENDAR, GCAL_TYPE_NEW_CALENDAR_PAGE }, + { GCAL_PAGE_NEW_CALENDAR, GCAL_TYPE_NEW_LOCAL_CALENDAR_PAGE }, { GCAL_PAGE_EDIT_CALENDAR, GCAL_TYPE_EDIT_CALENDAR_PAGE }, }; diff --git a/src/gui/calendar-management/gcal-calendars-page.c b/src/gui/calendar-management/gcal-calendars-page.c index fd889bf2..e5fa5391 100644 --- a/src/gui/calendar-management/gcal-calendars-page.c +++ b/src/gui/calendar-management/gcal-calendars-page.c @@ -270,7 +270,7 @@ on_new_calendar_row_activated_cb (AdwButtonRow *button, { GcalCalendarManagementPage *page = GCAL_CALENDAR_MANAGEMENT_PAGE (self); - gcal_calendar_management_page_switch_page (page, "new-calendar", NULL); + gcal_calendar_management_page_switch_page (page, "new-local-calendar", NULL); } static void diff --git a/src/gui/calendar-management/gcal-new-calendar-page.blp b/src/gui/calendar-management/gcal-new-calendar-page.blp deleted file mode 100644 index 869faa1c..00000000 --- a/src/gui/calendar-management/gcal-new-calendar-page.blp +++ /dev/null @@ -1,172 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -template $GcalNewCalendarPage: Adw.NavigationPage { - title: _("New Calendar"); - tag: "new-calendar"; - - child: Adw.ToolbarView { - [top] - Adw.HeaderBar { - show-end-title-buttons: false; - show-start-title-buttons: false; - } - - content: Adw.PreferencesPage { - Adw.PreferencesGroup { - title: _("Create a Local Calendar"); - - Adw.EntryRow local_calendar_name_row { - title: _("Calendar Name"); - notify::text => $on_local_calendar_name_row_text_changed_cb(template) not-swapped; - } - - Adw.ActionRow { - title: _("Color"); - activatable-widget: local_calendar_color_button; - - ColorDialogButton local_calendar_color_button { - valign: center; - - dialog: ColorDialog { - modal: true; - with-alpha: false; - }; - - notify::rgba => $on_local_calendar_color_button_rgba_changed_cb(template) not-swapped; - } - } - } - - Adw.PreferencesGroup { - title: _("Connect to an Online Calendar"); - - Grid { - row-spacing: 12; - column-spacing: 12; - - Label { - label: _( - "HTTPS, CalDAV, or Webcal URLs are supported. Online calendars that can only be updated by the provider will be added as read-only." - ); - wrap: true; - xalign: 0; - - layout { - column: 0; - row: 0; - column-span: 2; - } - } - - Entry calendar_address_entry { - hexpand: true; - placeholder-text: "https://example.com/calendar.ics"; - input-purpose: url; - notify::text => $on_url_entry_text_changed_cb(template) not-swapped; - activate => $on_calendar_address_activated_cb(template) not-swapped; - - layout { - column: 0; - row: 1; - } - } - - Revealer web_sources_revealer { - transition-type: slide_down; - transition-duration: 200; - - layout { - column: 0; - row: 2; - column-span: 2; - } - - Box web_sources_listbox_box { - orientation: vertical; - spacing: 6; - - Label web_sources_calendar_label { - label: _("Calendars"); - xalign: 0; - - styles [ - "heading", - ] - } - - ListBox web_sources_listbox { - activate-on-single-click: false; - selection-mode: none; - - styles [ - "calendar-list", - ] - } - } - } - - Label web_description_label { - label: _( - "If the calendar belongs to one of your online accounts, you can add it through the online account settings." - ); - use-markup: true; - wrap: true; - xalign: 0; - activate-link => $on_web_description_label_link_activated_cb(template) not-swapped; - - layout { - column: 0; - row: 3; - column-span: 2; - } - } - } - } - - Adw.PreferencesGroup { - Button add_button { - halign: center; - label: C_("button", "Add Calendar"); - sensitive: false; - clicked => $on_add_button_clicked_cb(template) not-swapped; - - styles [ - "pill", - "suggested-action", - ] - } - } - }; - }; -} - -Adw.MessageDialog credentials_dialog { - heading: _("Credentials"); - hide-on-close: true; - - extra-child: Adw.Clamp { - ListBox { - Adw.EntryRow credentials_user_entry { - title: _("User"); - } - - Adw.PasswordEntryRow credentials_password_entry { - title: _("Password"); - } - - styles [ - "boxed-list", - ] - } - }; - - responses [ - cancel: _("_Cancel"), - connect: _("_Connect") suggested, - ] - - default-response: "connect"; - close-response: "cancel"; - response => $on_credentials_dialog_response_cb(template) not-swapped; -} diff --git a/src/gui/calendar-management/gcal-new-calendar-page.c b/src/gui/calendar-management/gcal-new-calendar-page.c deleted file mode 100644 index 3808b748..00000000 --- a/src/gui/calendar-management/gcal-new-calendar-page.c +++ /dev/null @@ -1,561 +0,0 @@ -/* gcal-new-calendar-page.c - * - * Copyright 2019 Georges Basile Stavracas Neto - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#define G_LOG_DOMAIN "GcalNewCalendarPage" - -#include "config.h" - -#include - -#include "gcal-context.h" -#include "gcal-calendar-management-page.h" -#include "gcal-debug.h" -#include "gcal-new-calendar-page.h" -#include "gcal-source-discoverer.h" -#include "gcal-utils.h" - -#define ENTRY_PROGRESS_TIMEOUT 100 // ms - -typedef enum -{ - ENTRY_STATE_EMPTY, - ENTRY_STATE_VALIDATING, - ENTRY_STATE_VALID, - ENTRY_STATE_INVALID -} EntryState; - -struct _GcalNewCalendarPage -{ - AdwNavigationPage parent; - - GtkWidget *add_button; - GtkEntry *calendar_address_entry; - EntryState calendar_address_entry_state; - AdwMessageDialog *credentials_dialog; - GtkEntry *credentials_password_entry; - GtkEntry *credentials_user_entry; - GtkColorDialogButton *local_calendar_color_button; - AdwEntryRow *local_calendar_name_row; - GtkWidget *web_sources_listbox; - GtkWidget *web_sources_revealer; - - guint calendar_address_id; - GPtrArray *remote_sources; - guint validate_url_resource_id; - - GCancellable *cancellable; - - ESource *local_source; -}; - -static gboolean pulse_web_entry (gpointer data); - -static void sources_discovered_cb (GObject *source_object, - GAsyncResult *result, - gpointer user_data); - -static void cancel_validation_discover (GcalNewCalendarPage *self); - -static void gcal_calendar_management_page_iface_init (GcalCalendarManagementPageInterface *iface); - -G_DEFINE_TYPE_WITH_CODE (GcalNewCalendarPage, gcal_new_calendar_page, ADW_TYPE_NAVIGATION_PAGE, - G_IMPLEMENT_INTERFACE (GCAL_TYPE_CALENDAR_MANAGEMENT_PAGE, - gcal_calendar_management_page_iface_init)) - - -/* - * Auxiliary methods - */ - -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->remote_sources) - n_calendars += self->remote_sources->len; - else if (self->local_source) - n_calendars++; - - 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 (C_("button", "Add Calendar")); - } - - gtk_button_set_label (GTK_BUTTON (self->add_button), add_button_label); -} - -static void -update_local_source (GcalNewCalendarPage *self) -{ - g_autofree gchar *calendar_name = NULL; - - g_clear_object (&self->local_source); - - calendar_name = g_strdup (gtk_editable_get_text (GTK_EDITABLE (self->local_calendar_name_row))); - calendar_name = g_strstrip (calendar_name); - - if (calendar_name && g_utf8_strlen (calendar_name, -1) > 0) - { - g_autofree gchar *color_string = NULL; - ESourceExtension *ext; - const GdkRGBA *color; - ESource *source; - - color = gtk_color_dialog_button_get_rgba (self->local_calendar_color_button); - color_string = gdk_rgba_to_string (color); - - /* Create the new source and add the needed extensions */ - source = e_source_new (NULL, NULL, NULL); - e_source_set_parent (source, "local-stub"); - e_source_set_display_name (source, calendar_name); - - ext = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR); - e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "local"); - e_source_selectable_set_color (E_SOURCE_SELECTABLE (ext), color_string); - - e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "local"); - - self->local_source = source; - } - - update_add_button (self); -} - -static void -toggle_url_entry_pulsing (GcalNewCalendarPage *self, - gboolean pulsing) -{ - if (pulsing && self->calendar_address_id == 0) - { - gtk_entry_set_progress_fraction (self->calendar_address_entry, 0.1); - self->calendar_address_id = g_timeout_add (ENTRY_PROGRESS_TIMEOUT, pulse_web_entry, self); - } - else if (!pulsing && self->calendar_address_id != 0) - { - gtk_entry_set_progress_fraction (self->calendar_address_entry, 0.0); - g_clear_handle_id (&self->calendar_address_id, g_source_remove); - } -} - -static void -update_url_entry_state (GcalNewCalendarPage *self, - EntryState state, - const gchar *error_message) -{ - self->calendar_address_entry_state = state; - - if (state == ENTRY_STATE_INVALID) - { - gtk_widget_add_css_class (GTK_WIDGET (self->calendar_address_entry), "error"); - if (error_message) - { - g_autofree gchar *multiline_message = NULL; - g_auto(GStrv) split_message = NULL; - - split_message = g_strsplit (error_message, ": ", -1); - multiline_message = g_strjoinv (":\n", split_message); - - gtk_entry_set_icon_from_icon_name (self->calendar_address_entry, - GTK_ENTRY_ICON_SECONDARY, - "dialog-error"); - gtk_entry_set_icon_tooltip_text (self->calendar_address_entry, - GTK_ENTRY_ICON_SECONDARY, - multiline_message); - } - } - else - { - gtk_widget_remove_css_class (GTK_WIDGET (self->calendar_address_entry), "error"); - gtk_entry_set_icon_from_icon_name (self->calendar_address_entry, - GTK_ENTRY_ICON_SECONDARY, - NULL); - gtk_entry_set_icon_tooltip_text (self->calendar_address_entry, - GTK_ENTRY_ICON_SECONDARY, - NULL); - } - - update_add_button (self); - toggle_url_entry_pulsing (self, state == ENTRY_STATE_VALIDATING); -} - -static void -discover_sources (GcalNewCalendarPage *self) -{ - const gchar *username; - const gchar *password; - const gchar *url; - - GCAL_ENTRY; - - self->validate_url_resource_id = 0; - - url = gtk_editable_get_text (GTK_EDITABLE (self->calendar_address_entry)); - username = gtk_editable_get_text (GTK_EDITABLE (self->credentials_user_entry)); - password = gtk_editable_get_text (GTK_EDITABLE (self->credentials_password_entry)); - - gcal_discover_sources_from_uri (url, - username, - password, - self->cancellable, - sources_discovered_cb, - self); - update_url_entry_state (self, ENTRY_STATE_VALIDATING, NULL); - - GCAL_EXIT; -} - -/* - * Callbacks - */ - -static gboolean -pulse_web_entry (gpointer data) -{ - GcalNewCalendarPage *self = data; - - gtk_entry_progress_pulse (self->calendar_address_entry); - return G_SOURCE_CONTINUE; -} - -static void -sources_discovered_cb (GObject *source_object, - GAsyncResult *result, - gpointer user_data) -{ - GcalNewCalendarPage *self; - g_autoptr (GPtrArray) sources = NULL; - g_autoptr (GError) error = NULL; - - GCAL_ENTRY; - - self = GCAL_NEW_CALENDAR_PAGE (user_data); - sources = gcal_discover_sources_from_uri_finish (result, &error); - - if (error) - { - if (g_error_matches (error, - GCAL_SOURCE_DISCOVERER_ERROR, - GCAL_SOURCE_DISCOVERER_ERROR_UNAUTHORIZED)) - { - GtkRoot *root; - - g_debug ("Unauthorized, asking for credentials..."); - - root = gtk_widget_get_root (GTK_WIDGET (self)); - gtk_window_set_transient_for (GTK_WINDOW (self->credentials_dialog), GTK_WINDOW (root)); - gtk_window_present (GTK_WINDOW (self->credentials_dialog)); - } - /* - * If the operation was cancelled by the user, no error message - * or error style class will be applied - */ - else if (!g_error_matches (error, - G_IO_ERROR, - G_IO_ERROR_CANCELLED)) - { - g_warning ("Error finding sources: %s", error->message); - update_url_entry_state (self, ENTRY_STATE_INVALID, error->message); - } - GCAL_RETURN (); - } - - g_debug ("Found %u sources", sources->len); - - self->remote_sources = g_steal_pointer (&sources); - update_url_entry_state (self, ENTRY_STATE_VALID, NULL); - - GCAL_EXIT; -} - -static gboolean -validate_url_cb (gpointer data) -{ - GcalNewCalendarPage *self = data; - g_autoptr (GUri) guri = NULL; - - GCAL_ENTRY; - - update_url_entry_state (self, ENTRY_STATE_VALIDATING, NULL); - self->validate_url_resource_id = 0; - - guri = g_uri_parse (gtk_editable_get_text (GTK_EDITABLE (self->calendar_address_entry)), SOUP_HTTP_URI_FLAGS | G_URI_FLAGS_PARSE_RELAXED, NULL); - - if (guri != NULL && g_uri_get_scheme (guri) && g_uri_get_host (guri)) - { - discover_sources (self); - } - else - { - update_url_entry_state (self, ENTRY_STATE_INVALID, _("The URL you have entered appears to be invalid.")); - g_debug ("Invalid URL passed"); - } - - GCAL_RETURN (G_SOURCE_REMOVE); -} - -static void -on_add_button_clicked_cb (GtkWidget *button, - GcalNewCalendarPage *self) -{ - GcalContext *context; - GcalManager *manager; - - context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION); - manager = gcal_context_get_manager (context); - - /* Commit each new remote source */ - if (self->remote_sources) - { - guint i; - - for (i = 0; i < self->remote_sources->len; i++) - gcal_manager_save_source (manager, g_ptr_array_index (self->remote_sources, i)); - - g_clear_pointer (&self->remote_sources, g_ptr_array_unref); - } - - else - { - gcal_manager_save_source (manager, self->local_source); - } - - gcal_calendar_management_page_switch_page (GCAL_CALENDAR_MANAGEMENT_PAGE (self), - "calendars", - NULL); -} - -static void -on_calendar_address_activated_cb (GtkEntry *entry, - GcalNewCalendarPage *self) -{ - cancel_validation_discover (self); - validate_url_cb (self); -} - -static void -on_credentials_dialog_response_cb (AdwMessageDialog *dialog, - const gchar *response, - GcalNewCalendarPage *self) -{ - if (g_str_equal (response, "connect")) - discover_sources (self); - else if (g_str_equal (response, "cancel")) - update_url_entry_state (self, ENTRY_STATE_INVALID, - _("A valid user and password are required to connect to this calendar.")); - - gtk_editable_set_text (GTK_EDITABLE (self->credentials_user_entry), ""); - gtk_editable_set_text (GTK_EDITABLE (self->credentials_password_entry), ""); -} - -static void -cancel_validation_discover (GcalNewCalendarPage *self) -{ - if (self->calendar_address_id != 0) - { - gtk_entry_set_progress_fraction (self->calendar_address_entry, 0); - g_clear_handle_id (&self->calendar_address_id, g_source_remove); - } - - /* Cleanup previous remote sources */ - g_clear_pointer (&self->remote_sources, g_ptr_array_unref); - - if (self->validate_url_resource_id != 0) - g_clear_handle_id (&self->validate_url_resource_id, g_source_remove); - - /* Cancel a validation in case it is on-going */ - if (self->calendar_address_entry_state == ENTRY_STATE_VALIDATING) - { - g_cancellable_cancel (self->cancellable); - g_clear_object (&self->cancellable); - self->cancellable = g_cancellable_new (); - } -} - -static void -on_url_entry_text_changed_cb (GtkEntry *entry, - GParamSpec *pspec, - GcalNewCalendarPage *self) -{ - const gchar *text; - - GCAL_ENTRY; - - text = gtk_editable_get_text (GTK_EDITABLE (entry)); - - cancel_validation_discover (self); - - if (text && g_utf8_strlen (text, -1) > 0) - { - /* - * Only validate the text after the timeout, as we don't want to bother them - * as soon as they type into the entry. - */ - self->validate_url_resource_id = g_timeout_add (750, validate_url_cb, self); - } - else - { - gtk_entry_set_progress_fraction (self->calendar_address_entry, 0); - update_url_entry_state (self, ENTRY_STATE_EMPTY, NULL); - } - - GCAL_EXIT; -} - -static void -on_local_calendar_name_row_text_changed_cb (AdwEntryRow *entry_row, - GParamSpec *pspec, - GcalNewCalendarPage *self) -{ - update_local_source (self); -} - -static void -on_local_calendar_color_button_rgba_changed_cb (GtkColorChooser *chooser, - GParamSpec *pspec, - GcalNewCalendarPage *self) -{ - update_local_source (self); -} - -static void -on_web_description_label_link_activated_cb (GtkLabel *label, - gchar *uri, - GcalNewCalendarPage *self) -{ - GDBusConnection *connection = g_application_get_dbus_connection (g_application_get_default ()); - - gcal_util_launch_gnome_settings (connection, "online-accounts", NULL); -} - - -/* - * GcalCalendarManagementPage iface - */ - -static void -gcal_new_calendar_page_deactivate (GcalCalendarManagementPage *page) -{ - GcalNewCalendarPage *self; - - GCAL_ENTRY; - - self = GCAL_NEW_CALENDAR_PAGE (page); - - g_clear_object (&self->local_source); - g_clear_pointer (&self->remote_sources, g_ptr_array_unref); - update_add_button (self); - - gtk_editable_set_text (GTK_EDITABLE (self->local_calendar_name_row), ""); - gtk_editable_set_text (GTK_EDITABLE (self->calendar_address_entry), ""); - - toggle_url_entry_pulsing (self, FALSE); - - GCAL_EXIT; -} - -static void -gcal_calendar_management_page_iface_init (GcalCalendarManagementPageInterface *iface) -{ - iface->deactivate = gcal_new_calendar_page_deactivate; -} - -/* - * GObject overrides - */ - -static void -gcal_new_calendar_page_dispose (GObject *object) -{ - GcalNewCalendarPage *self = (GcalNewCalendarPage *)object; - - gtk_widget_dispose_template (GTK_WIDGET (self), GCAL_TYPE_NEW_CALENDAR_PAGE); - - G_OBJECT_CLASS (gcal_new_calendar_page_parent_class)->dispose (object); -} - -static void -gcal_new_calendar_page_finalize (GObject *object) -{ - GcalNewCalendarPage *self = (GcalNewCalendarPage *)object; - - g_clear_handle_id (&self->calendar_address_id, g_source_remove); - g_clear_handle_id (&self->validate_url_resource_id, g_source_remove); - - g_cancellable_cancel (self->cancellable); - g_clear_object (&self->cancellable); - - G_OBJECT_CLASS (gcal_new_calendar_page_parent_class)->finalize (object); -} - -static void -gcal_new_calendar_page_class_init (GcalNewCalendarPageClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - - object_class->dispose = gcal_new_calendar_page_dispose; - object_class->finalize = gcal_new_calendar_page_finalize; - - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/calendar-management/gcal-new-calendar-page.ui"); - - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, add_button); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, calendar_address_entry); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_dialog); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_password_entry); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_user_entry); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, local_calendar_color_button); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, local_calendar_name_row); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, web_sources_listbox); - gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, web_sources_revealer); - - gtk_widget_class_bind_template_callback (widget_class, on_add_button_clicked_cb); - gtk_widget_class_bind_template_callback (widget_class, on_calendar_address_activated_cb); - gtk_widget_class_bind_template_callback (widget_class, on_credentials_dialog_response_cb); - gtk_widget_class_bind_template_callback (widget_class, on_local_calendar_name_row_text_changed_cb); - gtk_widget_class_bind_template_callback (widget_class, on_local_calendar_color_button_rgba_changed_cb); - gtk_widget_class_bind_template_callback (widget_class, on_url_entry_text_changed_cb); - gtk_widget_class_bind_template_callback (widget_class, on_web_description_label_link_activated_cb); -} - -static void -gcal_new_calendar_page_init (GcalNewCalendarPage *self) -{ - self->cancellable = g_cancellable_new (); - - gtk_widget_init_template (GTK_WIDGET (self)); -} diff --git a/src/gui/calendar-management/gcal-new-calendar-page.h b/src/gui/calendar-management/gcal-new-calendar-page.h deleted file mode 100644 index 5eb82309..00000000 --- a/src/gui/calendar-management/gcal-new-calendar-page.h +++ /dev/null @@ -1,30 +0,0 @@ -/* gcal-new-calendar-page.h - * - * Copyright 2019 Georges Basile Stavracas Neto - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -#pragma once - -#include - -G_BEGIN_DECLS - -#define GCAL_TYPE_NEW_CALENDAR_PAGE (gcal_new_calendar_page_get_type()) -G_DECLARE_FINAL_TYPE (GcalNewCalendarPage, gcal_new_calendar_page, GCAL, NEW_CALENDAR_PAGE, AdwNavigationPage) - -G_END_DECLS diff --git a/src/gui/calendar-management/meson.build b/src/gui/calendar-management/meson.build index dcfc05ff..f8f7853c 100644 --- a/src/gui/calendar-management/meson.build +++ b/src/gui/calendar-management/meson.build @@ -7,7 +7,6 @@ blueprints = custom_target( 'gcal-calendar-management-dialog.blp', 'gcal-calendars-page.blp', 'gcal-edit-calendar-page.blp', - 'gcal-new-calendar-page.blp', 'gcal-new-local-calendar-page.blp', 'gcal-new-online-calendar-page.blp', ), @@ -33,7 +32,6 @@ sources += files( 'gcal-calendar-management-page.c', 'gcal-calendars-page.c', 'gcal-edit-calendar-page.c', - 'gcal-new-calendar-page.c', 'gcal-new-local-calendar-page.c', 'gcal-new-online-calendar-page.c', )