calendar-management: Port to AdwNavigationView
The interfacing that GcalCalendarManagementDialog had is somewhat similar to AdwNavigationView, with pages and signaling basically matching the same semantics. We can save some code by switching to AdwNavigationView then, as the heavy-lifting of page management is done there now. The headerbar of the dialog is no more; instead, each page has its own headerbar that automatically gets a back button. Page activation and deactivation works essentially the same, but uses AdwNavigationView signals to manage that.
This commit is contained in:
@@ -55,10 +55,7 @@ struct _GcalCalendarManagementDialog
|
|||||||
{
|
{
|
||||||
AdwWindow parent;
|
AdwWindow parent;
|
||||||
|
|
||||||
GtkHeaderBar *headerbar;
|
AdwNavigationView *navigation_view;
|
||||||
GtkWidget *notebook;
|
|
||||||
GtkWidget *stack;
|
|
||||||
AdwWindowTitle *window_title;
|
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ESource *source;
|
ESource *source;
|
||||||
@@ -97,29 +94,21 @@ set_page (GcalCalendarManagementDialog *self,
|
|||||||
const gchar *page_name,
|
const gchar *page_name,
|
||||||
GcalCalendar *calendar)
|
GcalCalendar *calendar)
|
||||||
{
|
{
|
||||||
GcalCalendarManagementPage *current_page;
|
GcalCalendarManagementPage *next_page;
|
||||||
guint i;
|
AdwNavigationPage *page;
|
||||||
|
|
||||||
GCAL_TRACE_MSG ("Switching to page '%s'", page_name);
|
GCAL_TRACE_MSG ("Switching to page '%s'", page_name);
|
||||||
|
|
||||||
current_page = (GcalCalendarManagementPage*) gtk_stack_get_visible_child (GTK_STACK (self->stack));
|
page = adw_navigation_view_find_page (self->navigation_view, page_name);
|
||||||
|
g_assert (page != NULL);
|
||||||
|
next_page = GCAL_CALENDAR_MANAGEMENT_PAGE (adw_navigation_page_get_child (page));
|
||||||
|
|
||||||
for (i = 0; i < N_PAGES; i++)
|
gcal_calendar_management_page_activate (next_page, calendar);
|
||||||
{
|
|
||||||
GcalCalendarManagementPage *page = self->pages[i];
|
|
||||||
|
|
||||||
if (g_strcmp0 (page_name, gcal_calendar_management_page_get_name (page)) != 0)
|
adw_navigation_view_pop (self->navigation_view);
|
||||||
continue;
|
|
||||||
|
|
||||||
gtk_stack_set_visible_child (GTK_STACK (self->stack), GTK_WIDGET (page));
|
if (page != adw_navigation_view_get_visible_page (self->navigation_view))
|
||||||
gcal_calendar_management_page_activate (page, calendar);
|
adw_navigation_view_push (self->navigation_view, page);
|
||||||
|
|
||||||
adw_window_title_set_title (self->window_title,
|
|
||||||
gcal_calendar_management_page_get_title (page));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
gcal_calendar_management_page_deactivate (current_page);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -140,16 +129,16 @@ setup_context (GcalCalendarManagementDialog *self)
|
|||||||
for (i = 0; i < N_PAGES; i++)
|
for (i = 0; i < N_PAGES; i++)
|
||||||
{
|
{
|
||||||
GcalCalendarManagementPage *page;
|
GcalCalendarManagementPage *page;
|
||||||
|
AdwNavigationPage *navigation_page;
|
||||||
|
|
||||||
page = g_object_new (pages[i].gtype,
|
page = g_object_new (pages[i].gtype,
|
||||||
"context", self->context,
|
"context", self->context,
|
||||||
NULL);
|
NULL);
|
||||||
gtk_widget_set_visible (GTK_WIDGET (page), TRUE);
|
|
||||||
|
|
||||||
gtk_stack_add_titled (GTK_STACK (self->stack),
|
navigation_page = adw_navigation_page_new (GTK_WIDGET (page),
|
||||||
GTK_WIDGET (page),
|
|
||||||
gcal_calendar_management_page_get_name (page),
|
|
||||||
gcal_calendar_management_page_get_title (page));
|
gcal_calendar_management_page_get_title (page));
|
||||||
|
adw_navigation_page_set_tag (navigation_page, gcal_calendar_management_page_get_name (page));
|
||||||
|
adw_navigation_view_add (self->navigation_view, navigation_page);
|
||||||
|
|
||||||
g_signal_connect_object (page,
|
g_signal_connect_object (page,
|
||||||
"switch-page",
|
"switch-page",
|
||||||
@@ -170,6 +159,19 @@ setup_context (GcalCalendarManagementDialog *self)
|
|||||||
* Callbacks
|
* Callbacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_navigation_view_popped_cb (AdwNavigationView *navigation_view,
|
||||||
|
AdwNavigationPage *popped_page,
|
||||||
|
GcalCalendarManagementDialog *self)
|
||||||
|
{
|
||||||
|
GcalCalendarManagementPage *page;
|
||||||
|
|
||||||
|
page = GCAL_CALENDAR_MANAGEMENT_PAGE (adw_navigation_page_get_child (popped_page));
|
||||||
|
g_assert (page != NULL);
|
||||||
|
|
||||||
|
gcal_calendar_management_page_deactivate (page);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_page_switched_cb (GcalCalendarManagementPage *page,
|
on_page_switched_cb (GcalCalendarManagementPage *page,
|
||||||
const gchar *next_page,
|
const gchar *next_page,
|
||||||
@@ -266,9 +268,9 @@ gcal_calendar_management_dialog_class_init (GcalCalendarManagementDialogClass *k
|
|||||||
|
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/calendar-management/gcal-calendar-management-dialog.ui");
|
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/calendar-management/gcal-calendar-management-dialog.ui");
|
||||||
|
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, headerbar);
|
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, navigation_view);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, stack);
|
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalCalendarManagementDialog, window_title);
|
gtk_widget_class_bind_template_callback (widget_class, on_navigation_view_popped_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -276,11 +278,3 @@ gcal_calendar_management_dialog_init (GcalCalendarManagementDialog *self)
|
|||||||
{
|
{
|
||||||
gtk_widget_init_template (GTK_WIDGET (self));
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkHeaderBar*
|
|
||||||
gcal_calendar_management_dialog_get_titlebar (GcalCalendarManagementDialog *self)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GCAL_IS_CALENDAR_MANAGEMENT_DIALOG (self), NULL);
|
|
||||||
|
|
||||||
return self->headerbar;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -36,6 +36,4 @@ G_DECLARE_FINAL_TYPE (GcalCalendarManagementDialog,
|
|||||||
GCAL, CALENDAR_MANAGEMENT_DIALOG,
|
GCAL, CALENDAR_MANAGEMENT_DIALOG,
|
||||||
AdwWindow)
|
AdwWindow)
|
||||||
|
|
||||||
GtkHeaderBar* gcal_calendar_management_dialog_get_titlebar (GcalCalendarManagementDialog *self);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
@@ -9,32 +9,8 @@
|
|||||||
<property name="destroy_with_parent">True</property>
|
<property name="destroy_with_parent">True</property>
|
||||||
<property name="hide-on-close">True</property>
|
<property name="hide-on-close">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="AdwLeaflet">
|
<object class="AdwNavigationView" id="navigation_view">
|
||||||
<property name="can-unfold">False</property>
|
<signal name="popped" handler="on_navigation_view_popped_cb" object="GcalCalendarManagementDialog" swapped="no" />
|
||||||
<child>
|
|
||||||
<object class="AdwToolbarView" id="vbox">
|
|
||||||
<child type="top">
|
|
||||||
<object class="GtkHeaderBar" id="headerbar">
|
|
||||||
<property name="show-title-buttons">True</property>
|
|
||||||
<property name="title-widget">
|
|
||||||
<object class="AdwWindowTitle" id="window_title" />
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<property name="content">
|
|
||||||
<object class="GtkOverlay" id="overlay">
|
|
||||||
<child>
|
|
||||||
<object class="GtkStack" id="stack">
|
|
||||||
<property name="hexpand">True</property>
|
|
||||||
<property name="vhomogeneous">False</property>
|
|
||||||
<property name="transition_type">crossfade</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -107,14 +107,3 @@ gcal_calendar_management_page_switch_page (GcalCalendarManagementPage *self,
|
|||||||
|
|
||||||
g_signal_emit (self, signals[SWITCH_PAGE], 0, page_name, calendar);
|
g_signal_emit (self, signals[SWITCH_PAGE], 0, page_name, calendar);
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkHeaderBar*
|
|
||||||
gcal_calendar_management_page_get_titlebar (GcalCalendarManagementPage *self)
|
|
||||||
{
|
|
||||||
GtkNative *native;
|
|
||||||
|
|
||||||
native = gtk_widget_get_native (GTK_WIDGET (self));
|
|
||||||
g_assert (native != NULL);
|
|
||||||
|
|
||||||
return gcal_calendar_management_dialog_get_titlebar (GCAL_CALENDAR_MANAGEMENT_DIALOG (native));
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -61,6 +61,4 @@ void gcal_calendar_management_page_switch_page (GcalCalendarMa
|
|||||||
const gchar *page_name,
|
const gchar *page_name,
|
||||||
GcalCalendar *calendar);
|
GcalCalendar *calendar);
|
||||||
|
|
||||||
GtkHeaderBar* gcal_calendar_management_page_get_titlebar (GcalCalendarManagementPage *self);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
@@ -46,6 +46,20 @@
|
|||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
|
<object class="AdwToolbarView">
|
||||||
|
|
||||||
|
<child type="top">
|
||||||
|
<object class="GtkHeaderBar">
|
||||||
|
<property name="show-title-buttons">True</property>
|
||||||
|
<property name="title-widget">
|
||||||
|
<object class="AdwWindowTitle">
|
||||||
|
<property name="title" translatable="yes">Calendars</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<property name="content">
|
||||||
<object class="GtkScrolledWindow">
|
<object class="GtkScrolledWindow">
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
@@ -84,8 +98,12 @@
|
|||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ struct _GcalEditCalendarPage
|
|||||||
GtkBox parent;
|
GtkBox parent;
|
||||||
|
|
||||||
AdwActionRow *account_row;
|
AdwActionRow *account_row;
|
||||||
GtkWidget *back_button;
|
|
||||||
GtkColorDialogButton *calendar_color_button;
|
GtkColorDialogButton *calendar_color_button;
|
||||||
AdwSwitchRow *calendar_visible_row;
|
AdwSwitchRow *calendar_visible_row;
|
||||||
AdwActionRow *calendar_url_row;
|
AdwActionRow *calendar_url_row;
|
||||||
@@ -225,20 +224,6 @@ update_calendar (GcalEditCalendarPage *self)
|
|||||||
* Callbacks
|
* 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
|
static void
|
||||||
on_remove_button_clicked_cb (GtkButton *button,
|
on_remove_button_clicked_cb (GtkButton *button,
|
||||||
GcalEditCalendarPage *self)
|
GcalEditCalendarPage *self)
|
||||||
@@ -303,28 +288,22 @@ static void
|
|||||||
gcal_edit_calendar_page_activate (GcalCalendarManagementPage *page,
|
gcal_edit_calendar_page_activate (GcalCalendarManagementPage *page,
|
||||||
GcalCalendar *calendar)
|
GcalCalendar *calendar)
|
||||||
{
|
{
|
||||||
GcalEditCalendarPage *self;
|
GCAL_ENTRY;
|
||||||
GtkHeaderBar *headerbar;
|
|
||||||
|
|
||||||
self = GCAL_EDIT_CALENDAR_PAGE (page);
|
setup_calendar (GCAL_EDIT_CALENDAR_PAGE (page), calendar);
|
||||||
headerbar = gcal_calendar_management_page_get_titlebar (page);
|
|
||||||
gtk_header_bar_pack_start (headerbar, self->back_button);
|
|
||||||
|
|
||||||
setup_calendar (self, calendar);
|
GCAL_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_edit_calendar_page_deactivate (GcalCalendarManagementPage *page)
|
gcal_edit_calendar_page_deactivate (GcalCalendarManagementPage *page)
|
||||||
{
|
{
|
||||||
GcalEditCalendarPage *self;
|
GcalEditCalendarPage *self;
|
||||||
GtkHeaderBar *headerbar;
|
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
self = GCAL_EDIT_CALENDAR_PAGE (page);
|
self = GCAL_EDIT_CALENDAR_PAGE (page);
|
||||||
headerbar = gcal_calendar_management_page_get_titlebar (page);
|
|
||||||
gtk_header_bar_remove (headerbar, self->back_button);
|
|
||||||
|
|
||||||
update_calendar (self);
|
update_calendar (self);
|
||||||
|
|
||||||
@@ -415,7 +394,6 @@ gcal_edit_calendar_page_class_init (GcalEditCalendarPageClass *klass)
|
|||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/calendar-management/gcal-edit-calendar-page.ui");
|
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/calendar-management/gcal-edit-calendar-page.ui");
|
||||||
|
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, account_row);
|
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, account_row);
|
||||||
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_color_button);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_url_row);
|
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_url_row);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_visible_row);
|
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, calendar_visible_row);
|
||||||
@@ -423,7 +401,6 @@ 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, name_entry);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalEditCalendarPage, remove_button);
|
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_remove_button_clicked_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_settings_button_clicked_cb);
|
gtk_widget_class_bind_template_callback (widget_class, on_settings_button_clicked_cb);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,19 @@
|
|||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
|
<object class="AdwToolbarView">
|
||||||
|
|
||||||
|
<child type="top">
|
||||||
|
<object class="AdwHeaderBar">
|
||||||
|
<property name="show-end-title-buttons">False</property>
|
||||||
|
<property name="show-start-title-buttons">False</property>
|
||||||
|
<property name="title-widget">
|
||||||
|
<object class="AdwWindowTitle" />
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<property name="content">
|
||||||
<object class="AdwPreferencesPage">
|
<object class="AdwPreferencesPage">
|
||||||
<child>
|
<child>
|
||||||
<object class="AdwPreferencesGroup">
|
<object class="AdwPreferencesGroup">
|
||||||
@@ -114,14 +127,12 @@
|
|||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- Headerbar buttons -->
|
|
||||||
<object class="GtkButton" id="back_button">
|
|
||||||
<property name="icon-name">go-previous-symbolic</property>
|
|
||||||
<property name="tooltip-text" translatable="yes">Back</property>
|
|
||||||
<signal name="clicked" handler="on_back_button_clicked_cb" object="GcalEditCalendarPage" swapped="no" />
|
|
||||||
</object>
|
|
||||||
</interface>
|
</interface>
|
||||||
|
|||||||
@@ -48,10 +48,9 @@ struct _GcalNewCalendarPage
|
|||||||
GtkEntry *calendar_address_entry;
|
GtkEntry *calendar_address_entry;
|
||||||
EntryState calendar_address_entry_state;
|
EntryState calendar_address_entry_state;
|
||||||
GcalFileChooserButton *calendar_file_chooser_button;
|
GcalFileChooserButton *calendar_file_chooser_button;
|
||||||
GtkWidget *cancel_button;
|
|
||||||
GtkWidget *credentials_cancel_button;
|
GtkWidget *credentials_cancel_button;
|
||||||
GtkWidget *credentials_connect_button;
|
GtkWidget *credentials_connect_button;
|
||||||
AdwWindow *credentials_dialog;
|
GtkWindow *credentials_dialog;
|
||||||
GtkEntry *credentials_password_entry;
|
GtkEntry *credentials_password_entry;
|
||||||
GtkEntry *credentials_user_entry;
|
GtkEntry *credentials_user_entry;
|
||||||
GtkColorDialogButton *local_calendar_color_button;
|
GtkColorDialogButton *local_calendar_color_button;
|
||||||
@@ -466,13 +465,6 @@ on_url_entry_text_changed_cb (GtkEntry *entry,
|
|||||||
GCAL_EXIT;
|
GCAL_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
on_cancel_button_clicked_cb (GtkWidget *button,
|
|
||||||
GcalCalendarManagementPage *page)
|
|
||||||
{
|
|
||||||
gcal_calendar_management_page_switch_page (page, "calendars", NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_local_calendar_name_row_text_changed_cb (AdwEntryRow *entry_row,
|
on_local_calendar_name_row_text_changed_cb (AdwEntryRow *entry_row,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@@ -516,38 +508,14 @@ gcal_new_calendar_page_get_title (GcalCalendarManagementPage *page)
|
|||||||
return _("New Calendar");
|
return _("New Calendar");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gcal_new_calendar_page_activate (GcalCalendarManagementPage *page,
|
|
||||||
GcalCalendar *calendar)
|
|
||||||
{
|
|
||||||
GcalNewCalendarPage *self;
|
|
||||||
GtkHeaderBar *headerbar;
|
|
||||||
|
|
||||||
GCAL_ENTRY;
|
|
||||||
|
|
||||||
self = GCAL_NEW_CALENDAR_PAGE (page);
|
|
||||||
headerbar = gcal_calendar_management_page_get_titlebar (page);
|
|
||||||
|
|
||||||
gtk_header_bar_pack_start (headerbar, self->cancel_button);
|
|
||||||
gtk_header_bar_pack_end (headerbar, self->add_button);
|
|
||||||
gtk_header_bar_set_show_title_buttons (headerbar, FALSE);
|
|
||||||
|
|
||||||
GCAL_EXIT;
|
|
||||||
}
|
|
||||||
static void
|
static void
|
||||||
gcal_new_calendar_page_deactivate (GcalCalendarManagementPage *page)
|
gcal_new_calendar_page_deactivate (GcalCalendarManagementPage *page)
|
||||||
{
|
{
|
||||||
GcalNewCalendarPage *self;
|
GcalNewCalendarPage *self;
|
||||||
GtkHeaderBar *headerbar;
|
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
self = GCAL_NEW_CALENDAR_PAGE (page);
|
self = GCAL_NEW_CALENDAR_PAGE (page);
|
||||||
headerbar = gcal_calendar_management_page_get_titlebar (page);
|
|
||||||
|
|
||||||
gtk_header_bar_remove (headerbar, self->cancel_button);
|
|
||||||
gtk_header_bar_remove (headerbar, self->add_button);
|
|
||||||
gtk_header_bar_set_show_title_buttons (headerbar, TRUE);
|
|
||||||
|
|
||||||
g_clear_object (&self->local_source);
|
g_clear_object (&self->local_source);
|
||||||
g_clear_pointer (&self->remote_sources, g_ptr_array_unref);
|
g_clear_pointer (&self->remote_sources, g_ptr_array_unref);
|
||||||
@@ -566,7 +534,6 @@ gcal_calendar_management_page_iface_init (GcalCalendarManagementPageInterface *i
|
|||||||
{
|
{
|
||||||
iface->get_name = gcal_new_calendar_page_get_name;
|
iface->get_name = gcal_new_calendar_page_get_name;
|
||||||
iface->get_title = gcal_new_calendar_page_get_title;
|
iface->get_title = gcal_new_calendar_page_get_title;
|
||||||
iface->activate = gcal_new_calendar_page_activate;
|
|
||||||
iface->deactivate = gcal_new_calendar_page_deactivate;
|
iface->deactivate = gcal_new_calendar_page_deactivate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -658,7 +625,6 @@ gcal_new_calendar_page_class_init (GcalNewCalendarPageClass *klass)
|
|||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, add_button);
|
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, calendar_address_entry);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, calendar_file_chooser_button);
|
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, calendar_file_chooser_button);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, cancel_button);
|
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_cancel_button);
|
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_cancel_button);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_connect_button);
|
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_connect_button);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_dialog);
|
gtk_widget_class_bind_template_child (widget_class, GcalNewCalendarPage, credentials_dialog);
|
||||||
@@ -671,7 +637,6 @@ gcal_new_calendar_page_class_init (GcalNewCalendarPageClass *klass)
|
|||||||
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_add_button_clicked_cb);
|
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_calendar_address_activated_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_cancel_button_clicked_cb);
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_credential_button_clicked_cb);
|
gtk_widget_class_bind_template_callback (widget_class, on_credential_button_clicked_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_credential_entry_activate_cb);
|
gtk_widget_class_bind_template_callback (widget_class, on_credential_entry_activate_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_file_chooser_button_file_changed_cb);
|
gtk_widget_class_bind_template_callback (widget_class, on_file_chooser_button_file_changed_cb);
|
||||||
|
|||||||
@@ -4,6 +4,34 @@
|
|||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
|
<object class="AdwToolbarView">
|
||||||
|
|
||||||
|
<child type="top">
|
||||||
|
<object class="AdwHeaderBar">
|
||||||
|
<property name="show-end-title-buttons">False</property>
|
||||||
|
<property name="show-start-title-buttons">False</property>
|
||||||
|
|
||||||
|
<property name="title-widget">
|
||||||
|
<object class="AdwWindowTitle">
|
||||||
|
<property name="title" translatable="yes">New Calendar</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="add_button">
|
||||||
|
<property name="label" translatable="yes">Add</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<signal name="clicked" handler="on_add_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
|
||||||
|
<style>
|
||||||
|
<class name="suggested-action"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<property name="content">
|
||||||
<object class="AdwPreferencesPage">
|
<object class="AdwPreferencesPage">
|
||||||
|
|
||||||
<!-- Local calendar -->
|
<!-- Local calendar -->
|
||||||
@@ -173,6 +201,8 @@
|
|||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
@@ -286,17 +316,4 @@
|
|||||||
</property>
|
</property>
|
||||||
</object>
|
</object>
|
||||||
|
|
||||||
<!-- Headerbar buttons -->
|
|
||||||
<object class="GtkButton" id="cancel_button">
|
|
||||||
<property name="label" translatable="yes">Cancel</property>
|
|
||||||
<signal name="clicked" handler="on_cancel_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
|
|
||||||
</object>
|
|
||||||
<object class="GtkButton" id="add_button">
|
|
||||||
<property name="label" translatable="yes">Add</property>
|
|
||||||
<property name="sensitive">False</property>
|
|
||||||
<signal name="clicked" handler="on_add_button_clicked_cb" object="GcalNewCalendarPage" swapped="no" />
|
|
||||||
<style>
|
|
||||||
<class name="suggested-action"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</interface>
|
</interface>
|
||||||
|
|||||||
Reference in New Issue
Block a user