[gnome-calendar] edit-calendar-page: Add back button
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] edit-calendar-page: Add back button
- Date: Tue, 25 Jun 2019 00:34:30 +0000 (UTC)
commit f7df717e1bc693b624349a33d82161130128c988
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sun Jun 23 19:24:17 2019 -0300
edit-calendar-page: Add back button
And remove the remaining code (and a few extras) from the
calendar management dialog.
data/ui/edit-calendar-page.ui | 14 +++++
.../gcal-calendar-management-dialog.c | 68 ----------------------
.../calendar-management/gcal-edit-calendar-page.c | 28 ++++++++-
3 files changed, 40 insertions(+), 70 deletions(-)
---
diff --git a/data/ui/edit-calendar-page.ui b/data/ui/edit-calendar-page.ui
index 03c5d242..80c91540 100644
--- a/data/ui/edit-calendar-page.ui
+++ b/data/ui/edit-calendar-page.ui
@@ -211,4 +211,18 @@
</object>
</child>
</template>
+
+ <!-- Headerbar buttons -->
+ <object class="GtkButton" id="back_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="on_back_button_clicked_cb" object="GcalEditCalendarPage" swapped="no" />
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">go-previous-symbolic</property>
+ </object>
+ </child>
+ </object>
</interface>
diff --git a/src/gui/calendar-management/gcal-calendar-management-dialog.c
b/src/gui/calendar-management/gcal-calendar-management-dialog.c
index 8f9e4669..7a765ea8 100644
--- a/src/gui/calendar-management/gcal-calendar-management-dialog.c
+++ b/src/gui/calendar-management/gcal-calendar-management-dialog.c
@@ -84,12 +84,6 @@ typedef enum
GCAL_ACCOUNT_TYPE_NOT_SUPPORTED
} GcalAccountType;
-static void action_widget_activated (GtkWidget *widget,
- gpointer user_data);
-
-static void back_button_clicked (GtkButton *button,
- gpointer user_data);
-
static void calendar_file_selected (GtkFileChooser *button,
gpointer user_data);
@@ -139,65 +133,6 @@ import_file_extensions[] = {
".vcs"
};
-static void
-add_button_clicked (GtkWidget *button,
- gpointer user_data)
-{
- GcalCalendarManagementDialog *self = GCAL_CALENDAR_MANAGEMENT_DIALOG (user_data);
- GcalManager *manager;
-
- manager = gcal_context_get_manager (self->context);
-
- if (self->source != NULL)
- {
- /* Commit the new source */
- gcal_manager_save_source (manager, self->source);
-
- self->source = NULL;
-
- gcal_calendar_management_dialog_set_mode (GCAL_CALENDAR_MANAGEMENT_DIALOG (user_data),
- GCAL_CALENDAR_MANAGEMENT_MODE_NORMAL);
- }
-#if 0
- if (self->remote_sources != NULL)
- {
- GList *l;
-
- /* Commit each new remote source */
- for (l = self->remote_sources; l != NULL; l = l->next)
- gcal_manager_save_source (manager, l->data);
-
- g_list_free (self->remote_sources);
- self->remote_sources = NULL;
-
- /* Go back to overview */
- gcal_calendar_management_dialog_set_mode (GCAL_CALENDAR_MANAGEMENT_DIALOG (user_data),
- GCAL_CALENDAR_MANAGEMENT_MODE_NORMAL);
- }
-#endif
-}
-
-static void
-action_widget_activated (GtkWidget *widget,
- gpointer user_data)
-{
- GcalCalendarManagementDialog *self = GCAL_CALENDAR_MANAGEMENT_DIALOG (user_data);
- gint response = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "response"));
-
- self->old_default_source = NULL;
-
- gtk_dialog_response (GTK_DIALOG (user_data), response);
-}
-
-static void
-back_button_clicked (GtkButton *button,
- gpointer user_data)
-{
- GcalCalendarManagementDialog *self = GCAL_CALENDAR_MANAGEMENT_DIALOG (user_data);
-
- gcal_calendar_management_dialog_set_mode (self, GCAL_CALENDAR_MANAGEMENT_MODE_NORMAL);
-}
-
static void
calendar_visible_check_toggled (GObject *object,
GParamSpec *pspec,
@@ -584,9 +519,6 @@ gcal_calendar_management_dialog_class_init (GcalCalendarManagementDialogClass *k
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, headerbar);
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, stack);
- gtk_widget_class_bind_template_callback (widget_class, add_button_clicked);
- gtk_widget_class_bind_template_callback (widget_class, action_widget_activated);
- gtk_widget_class_bind_template_callback (widget_class, back_button_clicked);
gtk_widget_class_bind_template_callback (widget_class, calendar_file_selected);
gtk_widget_class_bind_template_callback (widget_class, calendar_visible_check_toggled);
gtk_widget_class_bind_template_callback (widget_class, response_signal);
diff --git a/src/gui/calendar-management/gcal-edit-calendar-page.c
b/src/gui/calendar-management/gcal-edit-calendar-page.c
index 396eb0c1..adedbeac 100644
--- a/src/gui/calendar-management/gcal-edit-calendar-page.c
+++ b/src/gui/calendar-management/gcal-edit-calendar-page.c
@@ -33,6 +33,7 @@ struct _GcalEditCalendarPage
GtkWidget *account_box;
GtkLabel *account_label;
GtkWidget *account_dim_label;
+ GtkWidget *back_button;
GtkColorChooser *calendar_color_button;
GtkToggleButton *calendar_visible_check;
GtkWidget *calendar_url_button;
@@ -227,6 +228,20 @@ update_calendar (GcalEditCalendarPage *self)
* Callbacks
*/
+static void
+on_back_button_clicked_cb (GtkButton *back_button,
+ GcalEditCalendarPage *self)
+{
+ GcalCalendarManagementPage *page;
+
+ GCAL_ENTRY;
+
+ page = GCAL_CALENDAR_MANAGEMENT_PAGE (self);
+ gcal_calendar_management_page_switch_page (page, "calendars", NULL);
+
+ GCAL_EXIT;
+}
+
static void
on_remove_button_clicked_cb (GtkButton *button,
GcalEditCalendarPage *self)
@@ -292,13 +307,16 @@ gcal_edit_calendar_page_activate (GcalCalendarManagementPage *page,
gpointer data)
{
GcalEditCalendarPage *self;
+ GtkHeaderBar *headerbar;
GcalCalendar *calendar;
g_assert (GCAL_IS_CALENDAR (data));
self = GCAL_EDIT_CALENDAR_PAGE (page);
- calendar = GCAL_CALENDAR (data);
+ headerbar = gcal_calendar_management_page_get_titlebar (page);
+ gtk_header_bar_pack_start (headerbar, self->back_button);
+ calendar = GCAL_CALENDAR (data);
setup_calendar (self, calendar);
}
@@ -306,14 +324,18 @@ static void
gcal_edit_calendar_page_deactivate (GcalCalendarManagementPage *page)
{
GcalEditCalendarPage *self;
+ GtkHeaderBar *headerbar;
GcalManager *manager;
GCAL_ENTRY;
self = GCAL_EDIT_CALENDAR_PAGE (page);
- manager = gcal_context_get_manager (self->context);
+ headerbar = gcal_calendar_management_page_get_titlebar (page);
+ gtk_container_remove (GTK_CONTAINER (headerbar), self->back_button);
update_calendar (self);
+
+ manager = gcal_context_get_manager (self->context);
gcal_manager_save_source (manager, gcal_calendar_get_source (self->calendar));
g_clear_object (&self->calendar);
@@ -401,6 +423,7 @@ gcal_edit_calendar_page_class_init (GcalEditCalendarPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, account_box);
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, account_label);
+ gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, back_button);
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_color_button);
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_url_button);
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_visible_check);
@@ -409,6 +432,7 @@ gcal_edit_calendar_page_class_init (GcalEditCalendarPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, name_entry);
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, remove_button);
+ gtk_widget_class_bind_template_callback (widget_class, on_back_button_clicked_cb);
gtk_widget_class_bind_template_callback (widget_class, on_remove_button_clicked_cb);
gtk_widget_class_bind_template_callback (widget_class, on_settings_button_clicked_cb);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]