calendar-management: Replace bottom button with menu
The new menu allows opening either the new-local-calendar or the new-online-calendar page. As of this commit both pages still show the same content, this will be fixed in the following commits. Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/850>
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
#include "gcal-calendars-page.h"
|
#include "gcal-calendars-page.h"
|
||||||
#include "gcal-edit-calendar-page.h"
|
#include "gcal-edit-calendar-page.h"
|
||||||
#include "gcal-new-local-calendar-page.h"
|
#include "gcal-new-local-calendar-page.h"
|
||||||
|
#include "gcal-new-online-calendar-page.h"
|
||||||
#include "gcal-utils.h"
|
#include "gcal-utils.h"
|
||||||
|
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
@@ -46,7 +47,8 @@
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GCAL_PAGE_CALENDARS,
|
GCAL_PAGE_CALENDARS,
|
||||||
GCAL_PAGE_NEW_CALENDAR,
|
GCAL_PAGE_NEW_LOCAL_CALENDAR,
|
||||||
|
GCAL_PAGE_NEW_ONLINE_CALENDAR,
|
||||||
GCAL_PAGE_EDIT_CALENDAR,
|
GCAL_PAGE_EDIT_CALENDAR,
|
||||||
N_PAGES,
|
N_PAGES,
|
||||||
} GcalPageType;
|
} GcalPageType;
|
||||||
@@ -170,7 +172,8 @@ gcal_calendar_management_dialog_init (GcalCalendarManagementDialog *self)
|
|||||||
GType gtype;
|
GType gtype;
|
||||||
} pages[] = {
|
} pages[] = {
|
||||||
{ GCAL_PAGE_CALENDARS, GCAL_TYPE_CALENDARS_PAGE },
|
{ GCAL_PAGE_CALENDARS, GCAL_TYPE_CALENDARS_PAGE },
|
||||||
{ GCAL_PAGE_NEW_CALENDAR, GCAL_TYPE_NEW_LOCAL_CALENDAR_PAGE },
|
{ GCAL_PAGE_NEW_LOCAL_CALENDAR, GCAL_TYPE_NEW_LOCAL_CALENDAR_PAGE },
|
||||||
|
{ GCAL_PAGE_NEW_ONLINE_CALENDAR, GCAL_TYPE_NEW_ONLINE_CALENDAR_PAGE },
|
||||||
{ GCAL_PAGE_EDIT_CALENDAR, GCAL_TYPE_EDIT_CALENDAR_PAGE },
|
{ GCAL_PAGE_EDIT_CALENDAR, GCAL_TYPE_EDIT_CALENDAR_PAGE },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,18 @@ template $GcalCalendarsPage: Adw.NavigationPage {
|
|||||||
child: Adw.ToastOverlay toast_overlay {
|
child: Adw.ToastOverlay toast_overlay {
|
||||||
Adw.ToolbarView {
|
Adw.ToolbarView {
|
||||||
[top]
|
[top]
|
||||||
Adw.HeaderBar {}
|
Adw.HeaderBar {
|
||||||
|
[start]
|
||||||
|
MenuButton {
|
||||||
|
tooltip-text: _("Add Calendar");
|
||||||
|
icon-name: "plus-large-symbolic";
|
||||||
|
|
||||||
|
menu-model: menu {
|
||||||
|
item (_("New Local Calendar…"), "calendar-management.new-local-calendar")
|
||||||
|
item (_("Add Remote Calendar…"), "calendar-management.new-online-calendar")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
content: Adw.PreferencesPage {
|
content: Adw.PreferencesPage {
|
||||||
Adw.PreferencesGroup {
|
Adw.PreferencesGroup {
|
||||||
@@ -23,37 +34,6 @@ template $GcalCalendarsPage: Adw.NavigationPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
[bottom]
|
|
||||||
Adw.Clamp {
|
|
||||||
ListBox {
|
|
||||||
selection-mode: none;
|
|
||||||
margin-top: 15;
|
|
||||||
margin-bottom: 15;
|
|
||||||
margin-start: 12;
|
|
||||||
margin-end: 12;
|
|
||||||
|
|
||||||
Adw.ButtonRow {
|
|
||||||
title: _("_Add Calendar");
|
|
||||||
use-underline: true;
|
|
||||||
end-icon-name: "go-next-symbolic";
|
|
||||||
activated => $on_new_calendar_row_activated_cb(template) not-swapped;
|
|
||||||
|
|
||||||
ShortcutController {
|
|
||||||
scope: managed;
|
|
||||||
|
|
||||||
Shortcut {
|
|
||||||
trigger: "<Ctrl>n";
|
|
||||||
action: "activate";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
styles [
|
|
||||||
"boxed-list",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,6 +213,22 @@ clear_toast_and_delete_calendar (GcalCalendarsPage *self,
|
|||||||
* Callbacks
|
* Callbacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_new_local_calendar_action_activated (GtkWidget *widget)
|
||||||
|
{
|
||||||
|
GcalCalendarManagementPage *page = GCAL_CALENDAR_MANAGEMENT_PAGE (widget);
|
||||||
|
|
||||||
|
gcal_calendar_management_page_switch_page (page, "new-local-calendar", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_new_online_calendar_action_activated (GtkWidget *widget)
|
||||||
|
{
|
||||||
|
GcalCalendarManagementPage *page = GCAL_CALENDAR_MANAGEMENT_PAGE (widget);
|
||||||
|
|
||||||
|
gcal_calendar_management_page_switch_page (page, "new-online-calendar", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
listbox_sort_func (GtkListBoxRow *row1,
|
listbox_sort_func (GtkListBoxRow *row1,
|
||||||
GtkListBoxRow *row2,
|
GtkListBoxRow *row2,
|
||||||
@@ -264,15 +280,6 @@ on_listbox_row_activated_cb (GtkListBox *listbox,
|
|||||||
gcal_calendar_management_page_switch_page (page, "edit-calendar", calendar);
|
gcal_calendar_management_page_switch_page (page, "edit-calendar", calendar);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
on_new_calendar_row_activated_cb (AdwButtonRow *button,
|
|
||||||
GcalCalendarsPage *self)
|
|
||||||
{
|
|
||||||
GcalCalendarManagementPage *page = GCAL_CALENDAR_MANAGEMENT_PAGE (self);
|
|
||||||
|
|
||||||
gcal_calendar_management_page_switch_page (page, "new-local-calendar", NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_manager_calendar_added_cb (GcalManager *manager,
|
on_manager_calendar_added_cb (GcalManager *manager,
|
||||||
GcalCalendar *calendar,
|
GcalCalendar *calendar,
|
||||||
@@ -417,7 +424,11 @@ gcal_calendars_page_class_init (GcalCalendarsPageClass *klass)
|
|||||||
gtk_widget_class_bind_template_child (widget_class, GcalCalendarsPage, toast_overlay);
|
gtk_widget_class_bind_template_child (widget_class, GcalCalendarsPage, toast_overlay);
|
||||||
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_listbox_row_activated_cb);
|
gtk_widget_class_bind_template_callback (widget_class, on_listbox_row_activated_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_new_calendar_row_activated_cb);
|
|
||||||
|
gtk_widget_class_install_action (widget_class, "calendar-management.new-local-calendar", NULL,
|
||||||
|
(GtkWidgetActionActivateFunc) on_new_local_calendar_action_activated);
|
||||||
|
gtk_widget_class_install_action (widget_class, "calendar-management.new-online-calendar", NULL,
|
||||||
|
(GtkWidgetActionActivateFunc) on_new_online_calendar_action_activated);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
<file compressed="true">globe-symbolic.svg</file>
|
<file compressed="true">globe-symbolic.svg</file>
|
||||||
<file compressed="true">info-outline-symbolic.svg</file>
|
<file compressed="true">info-outline-symbolic.svg</file>
|
||||||
<file compressed="true">loupe-large-symbolic.svg</file>
|
<file compressed="true">loupe-large-symbolic.svg</file>
|
||||||
|
<file compressed="true">plus-large-symbolic.svg</file>
|
||||||
<file compressed="true">share-symbolic.svg</file>
|
<file compressed="true">share-symbolic.svg</file>
|
||||||
<file compressed="true">map-symbolic.svg</file>
|
<file compressed="true">map-symbolic.svg</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 7 1 v 6 h -6 v 2 h 6 v 6 h 2 v -6 h 6 v -2 h -6 v -6 z m 0 0" fill="#222222"/></svg>
|
||||||
|
After Width: | Height: | Size: 222 B |
Reference in New Issue
Block a user