From aebeed8a22f4fdb32b2f5a4408d87e540760eb52 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 19 Oct 2021 17:36:14 +0200 Subject: [PATCH 1/2] Added 'Go' menu --- src/contents/ui/GlobalMenu.qml | 12 ++++++++++++ src/contents/ui/WindowMenu.qml | 12 ++++++++++++ src/contents/ui/main.qml | 10 ++++++++++ src/kalendarapplication.cpp | 26 ++++++++++++++++++++++++++ src/kalendarapplication.h | 2 ++ 5 files changed, 62 insertions(+) diff --git a/src/contents/ui/GlobalMenu.qml b/src/contents/ui/GlobalMenu.qml index c33d20dd..b6a5fb83 100644 --- a/src/contents/ui/GlobalMenu.qml +++ b/src/contents/ui/GlobalMenu.qml @@ -99,6 +99,18 @@ Labs.MenuBar { kalendarAction: 'todoview_show_completed' } } + + Labs.Menu { + title: i18nc("@action:menu", "Go") + + NativeMenuItemFromAction { + kalendarAction: "move_view_backwards" + } + NativeMenuItemFromAction { + kalendarAction: "move_view_forwards" + } + } + Labs.Menu { title: i18nc("@action:menu", "Create") diff --git a/src/contents/ui/WindowMenu.qml b/src/contents/ui/WindowMenu.qml index 1af3580f..549ab385 100644 --- a/src/contents/ui/WindowMenu.qml +++ b/src/contents/ui/WindowMenu.qml @@ -174,6 +174,18 @@ QQC2.MenuBar { } } + + QQC2.Menu { + title: i18nc("@action:menu", "Go") + + KActionFromAction { + kalendarAction: "move_view_backwards" + } + KActionFromAction { + kalendarAction: "move_view_forwards" + } + } + QQC2.Menu { title: i18nc("@action:menu", "Create") diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index edc67db1..65545e1e 100644 --- a/src/contents/ui/main.qml +++ b/src/contents/ui/main.qml @@ -34,6 +34,8 @@ Kirigami.ApplicationWindow { readonly property var weekViewAction: KalendarApplication.action("open_week_view") readonly property var scheduleViewAction: KalendarApplication.action("open_schedule_view") readonly property var todoViewAction: KalendarApplication.action("open_todo_view") + readonly property var moveViewForwardsAction: KalendarApplication.action("move_view_forwards") + readonly property var moveViewBackwardsAction: KalendarApplication.action("move_view_backwards") readonly property var aboutPageAction: KalendarApplication.action("open_about_page") readonly property var toggleMenubarAction: KalendarApplication.action("toggle_menubar") readonly property var createEventAction: KalendarApplication.action("create_event") @@ -104,6 +106,14 @@ Kirigami.ApplicationWindow { root.switchView(todoPageComponent); } + function onMoveViewForwards() { + pageStack.currentItem.nextAction.trigger(); + } + + function onMoveViewBackwards() { + pageStack.currentItem.previousAction.trigger(); + } + function onOpenAboutPage() { pageStack.layers.push("AboutPage.qml") } diff --git a/src/kalendarapplication.cpp b/src/kalendarapplication.cpp index 5aca5456..1cfa9859 100644 --- a/src/kalendarapplication.cpp +++ b/src/kalendarapplication.cpp @@ -133,6 +133,32 @@ void KalendarApplication::setupActions() action->setIcon(QIcon::fromTheme(QStringLiteral("help-about"))); } + actionName = QLatin1String("move_view_backwards"); + if (KAuthorized::authorizeAction(actionName)) { + auto moveViewBackwardsAction = mCollection.addAction(actionName, this, &KalendarApplication::moveViewBackwards); + moveViewBackwardsAction->setText(i18n("Backwards")); + moveViewBackwardsAction->setIcon(QIcon::fromTheme(QStringLiteral("go-previous"))); + if (openTodoAction) { + connect(openTodoAction, &QAction::changed, this, [moveViewBackwardsAction, openTodoAction]() { + moveViewBackwardsAction->setEnabled(!openTodoAction->isChecked()); + }); + moveViewBackwardsAction->setEnabled(!openTodoAction->isChecked()); + } + } + + actionName = QLatin1String("move_view_forwards"); + if (KAuthorized::authorizeAction(actionName)) { + auto moveViewForwardsAction = mCollection.addAction(actionName, this, &KalendarApplication::moveViewForwards); + moveViewForwardsAction->setText(i18n("Forwards")); + moveViewForwardsAction->setIcon(QIcon::fromTheme(QStringLiteral("go-next"))); + if (openTodoAction) { + connect(openTodoAction, &QAction::changed, this, [moveViewForwardsAction, openTodoAction]() { + moveViewForwardsAction->setEnabled(!openTodoAction->isChecked()); + }); + moveViewForwardsAction->setEnabled(!openTodoAction->isChecked()); + } + } + actionName = QLatin1String("toggle_menubar"); if (KAuthorized::authorizeAction(actionName)) { auto action = mCollection.addAction(actionName, this, &KalendarApplication::toggleMenubar); diff --git a/src/kalendarapplication.h b/src/kalendarapplication.h index 26594d78..0ba1b7c6 100644 --- a/src/kalendarapplication.h +++ b/src/kalendarapplication.h @@ -38,6 +38,8 @@ Q_SIGNALS: void openScheduleView(); void openTodoView(); void openAboutPage(); + void moveViewForwards(); + void moveViewBackwards(); void toggleMenubar(); void createNewEvent(); void createNewTodo(); -- GitLab From c7f35a2a028491c64b1f8f05c11b8fcf48f2b21d Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 19 Oct 2021 17:54:43 +0200 Subject: [PATCH 2/2] Added action to open date changer --- src/contents/ui/GlobalMenu.qml | 9 +++++++++ src/contents/ui/MonthView.qml | 11 ++++++----- src/contents/ui/ScheduleView.qml | 12 +++++++----- src/contents/ui/WeekView.qml | 11 ++++++----- src/contents/ui/WindowMenu.qml | 9 +++++++++ src/contents/ui/main.qml | 10 ++++++++++ src/kalendarapplication.cpp | 26 ++++++++++++++++++++++++++ src/kalendarapplication.h | 2 ++ 8 files changed, 75 insertions(+), 15 deletions(-) diff --git a/src/contents/ui/GlobalMenu.qml b/src/contents/ui/GlobalMenu.qml index b6a5fb83..a972e1f3 100644 --- a/src/contents/ui/GlobalMenu.qml +++ b/src/contents/ui/GlobalMenu.qml @@ -109,6 +109,15 @@ Labs.MenuBar { NativeMenuItemFromAction { kalendarAction: "move_view_forwards" } + + Labs.MenuSeparator {} + + NativeMenuItemFromAction { + kalendarAction: "move_view_to_today" + } + NativeMenuItemFromAction { + kalendarAction: "open_date_changer" + } } Labs.Menu { diff --git a/src/contents/ui/MonthView.qml b/src/contents/ui/MonthView.qml index 858d3719..451a50b3 100644 --- a/src/contents/ui/MonthView.qml +++ b/src/contents/ui/MonthView.qml @@ -80,14 +80,15 @@ Kirigami.Page { onTriggered: setToDate(DateUtils.addMonthsToDate(pathView.currentItem.firstDayOfMonth, 1)) displayHint: Kirigami.DisplayHint.IconOnly } + readonly property Kirigami.Action todayAction: Kirigami.Action { + icon.name: "go-jump-today" + text: i18n("Today") + onTriggered: setToDate(new Date()) + } actions { left: Qt.application.layoutDirection === Qt.RightToLeft ? nextAction : previousAction right: Qt.application.layoutDirection === Qt.RightToLeft ? previousAction : nextAction - main: Kirigami.Action { - icon.name: "go-jump-today" - text: i18n("Today") - onTriggered: setToDate(new Date()) - } + main: todayAction } PathView { diff --git a/src/contents/ui/ScheduleView.qml b/src/contents/ui/ScheduleView.qml index ebbc5849..4d170f37 100644 --- a/src/contents/ui/ScheduleView.qml +++ b/src/contents/ui/ScheduleView.qml @@ -91,14 +91,16 @@ Kirigami.Page { onTriggered: setToDate(DateUtils.addMonthsToDate(pathView.currentItem.firstDayOfMonth, 1)) displayHint: Kirigami.DisplayHint.IconOnly } + readonly property Kirigami.Action todayAction: Kirigami.Action { + icon.name: "go-jump-today" + text: i18n("Today") + onTriggered: setToDate(new Date()) + } + actions { left: Qt.application.layoutDirection === Qt.RightToLeft ? nextAction : previousAction right: Qt.application.layoutDirection === Qt.RightToLeft ? previousAction : nextAction - main: Kirigami.Action { - icon.name: "go-jump-today" - text: i18n("Today") - onTriggered: setToDate(new Date()) - } + main: todayAction } padding: 0 diff --git a/src/contents/ui/WeekView.qml b/src/contents/ui/WeekView.qml index f669d31f..6fe8a239 100644 --- a/src/contents/ui/WeekView.qml +++ b/src/contents/ui/WeekView.qml @@ -102,15 +102,16 @@ Kirigami.Page { onTriggered: setToDate(DateUtils.addDaysToDate(pathView.currentItem.startDate, root.daysToShow)) displayHint: Kirigami.DisplayHint.IconOnly } + readonly property Kirigami.Action todayAction: Kirigami.Action { + icon.name: "go-jump-today" + text: i18n("Today") + onTriggered: setToDate(new Date()) + } actions { left: Qt.application.layoutDirection === Qt.RightToLeft ? nextAction : previousAction right: Qt.application.layoutDirection === Qt.RightToLeft ? previousAction : nextAction - main: Kirigami.Action { - icon.name: "go-jump-today" - text: i18n("Today") - onTriggered: setToDate(new Date()) - } + main: todayAction } padding: 0 diff --git a/src/contents/ui/WindowMenu.qml b/src/contents/ui/WindowMenu.qml index 549ab385..27a39da2 100644 --- a/src/contents/ui/WindowMenu.qml +++ b/src/contents/ui/WindowMenu.qml @@ -184,6 +184,15 @@ QQC2.MenuBar { KActionFromAction { kalendarAction: "move_view_forwards" } + + QQC2.MenuSeparator {} + + KActionFromAction { + kalendarAction: "move_view_to_today" + } + KActionFromAction { + kalendarAction: "open_date_changer" + } } QQC2.Menu { diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index 65545e1e..d7319973 100644 --- a/src/contents/ui/main.qml +++ b/src/contents/ui/main.qml @@ -36,6 +36,8 @@ Kirigami.ApplicationWindow { readonly property var todoViewAction: KalendarApplication.action("open_todo_view") readonly property var moveViewForwardsAction: KalendarApplication.action("move_view_forwards") readonly property var moveViewBackwardsAction: KalendarApplication.action("move_view_backwards") + readonly property var moveViewToTodayAction: KalendarApplication.action("move_view_to_today") + readonly property var openDateChangerAction: KalendarApplication.action("open_date_changer") readonly property var aboutPageAction: KalendarApplication.action("open_about_page") readonly property var toggleMenubarAction: KalendarApplication.action("toggle_menubar") readonly property var createEventAction: KalendarApplication.action("create_event") @@ -114,6 +116,14 @@ Kirigami.ApplicationWindow { pageStack.currentItem.previousAction.trigger(); } + function onMoveViewToToday() { + pageStack.currentItem.todayAction.trigger(); + } + + function onOpenDateChanger() { + dateChangeDrawer.open() + } + function onOpenAboutPage() { pageStack.layers.push("AboutPage.qml") } diff --git a/src/kalendarapplication.cpp b/src/kalendarapplication.cpp index 1cfa9859..d233e152 100644 --- a/src/kalendarapplication.cpp +++ b/src/kalendarapplication.cpp @@ -159,6 +159,32 @@ void KalendarApplication::setupActions() } } + actionName = QLatin1String("move_view_to_today"); + if (KAuthorized::authorizeAction(actionName)) { + auto moveViewToTodayAction = mCollection.addAction(actionName, this, &KalendarApplication::moveViewToToday); + moveViewToTodayAction->setText(i18n("To Today")); + moveViewToTodayAction->setIcon(QIcon::fromTheme(QStringLiteral("go-jump-today"))); + if (openTodoAction) { + connect(openTodoAction, &QAction::changed, this, [moveViewToTodayAction, openTodoAction]() { + moveViewToTodayAction->setEnabled(!openTodoAction->isChecked()); + }); + moveViewToTodayAction->setEnabled(!openTodoAction->isChecked()); + } + } + + actionName = QLatin1String("open_date_changer"); + if (KAuthorized::authorizeAction(actionName)) { + auto openDateChangerAction = mCollection.addAction(actionName, this, &KalendarApplication::openDateChanger); + openDateChangerAction->setText(i18n("To Date…")); + openDateChangerAction->setIcon(QIcon::fromTheme(QStringLiteral("change-date-symbolic"))); + if (openTodoAction) { + connect(openTodoAction, &QAction::changed, this, [openDateChangerAction, openTodoAction]() { + openDateChangerAction->setEnabled(!openTodoAction->isChecked()); + }); + openDateChangerAction->setEnabled(!openTodoAction->isChecked()); + } + } + actionName = QLatin1String("toggle_menubar"); if (KAuthorized::authorizeAction(actionName)) { auto action = mCollection.addAction(actionName, this, &KalendarApplication::toggleMenubar); diff --git a/src/kalendarapplication.h b/src/kalendarapplication.h index 0ba1b7c6..2d910082 100644 --- a/src/kalendarapplication.h +++ b/src/kalendarapplication.h @@ -40,6 +40,8 @@ Q_SIGNALS: void openAboutPage(); void moveViewForwards(); void moveViewBackwards(); + void moveViewToToday(); + void openDateChanger(); void toggleMenubar(); void createNewEvent(); void createNewTodo(); -- GitLab