From 9867a676c7e7f6eb552db2d3cc35a0128ff84a91 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 18 Sep 2021 13:46:32 +0200 Subject: [PATCH 01/17] Added tag manager UI, can now rename tags --- src/contents/ui/GlobalMenu.qml | 5 ++ src/contents/ui/Sidebar.qml | 3 + src/contents/ui/TagManagerPage.qml | 90 ++++++++++++++++++++++++++++++ src/contents/ui/WindowMenu.qml | 7 +++ src/contents/ui/main.qml | 9 +++ src/kalendarapplication.cpp | 6 ++ src/kalendarapplication.h | 1 + src/resources.qrc | 1 + src/tagmanager.cpp | 34 +++++++++++ src/tagmanager.h | 3 + 10 files changed, 159 insertions(+) create mode 100644 src/contents/ui/TagManagerPage.qml diff --git a/src/contents/ui/GlobalMenu.qml b/src/contents/ui/GlobalMenu.qml index 081dde47..b6fa083c 100644 --- a/src/contents/ui/GlobalMenu.qml +++ b/src/contents/ui/GlobalMenu.qml @@ -116,6 +116,11 @@ Labs.MenuBar { } Labs.Menu { title: i18nc("@action:menu", "Settings") + NativeMenuItemFromAction { + kalendarAction: 'open_tag_manager' + } + Labs.MenuSeparator { + } NativeMenuItemFromAction { kalendarAction: 'options_configure_keybinding' } diff --git a/src/contents/ui/Sidebar.qml b/src/contents/ui/Sidebar.qml index 87b87334..becd59cd 100644 --- a/src/contents/ui/Sidebar.qml +++ b/src/contents/ui/Sidebar.qml @@ -188,6 +188,9 @@ Kirigami.OverlayDrawer { enabled: CalendarManager.undoRedoData.redoAvailable onTriggered: CalendarManager.redoAction(); }, + KActionFromAction { + kalendarAction: "open_tag_manager" + }, Kirigami.Action { text: i18n("Settings") icon.name: KalendarApplication.iconName(configureAction.icon) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml new file mode 100644 index 00000000..b9c384fd --- /dev/null +++ b/src/contents/ui/TagManagerPage.qml @@ -0,0 +1,90 @@ +// SPDX-FileCopyrightText: 2021 Claudio Cambra +// SPDX-License-Identifier: LGPL-2.1-or-later + +import QtQuick 2.15 +import QtQuick.Controls 2.15 as QQC2 +import QtQuick.Layouts 1.15 +import org.kde.kirigami 2.15 as Kirigami +import org.kde.kalendar 1.0 + +Kirigami.ScrollablePage { + id: root + + title: i18n("Manage Tags") + + ListView { + currentIndex: -1 + model: TagManager.tagModel + delegate: Kirigami.BasicListItem { + contentItem: Item { + implicitWidth: delegateLayout.implicitWidth + implicitHeight: delegateLayout.implicitHeight + RowLayout { + id: delegateLayout + + property bool editMode: false + + anchors { + left: parent.left + top: parent.top + right: parent.right + } + + QQC2.Label { + Layout.fillWidth: true + text: model.display + visible: !delegateLayout.editMode + } + QQC2.ToolButton { + icon.name: "edit-rename" + onClicked: delegateLayout.editMode = true + visible: !delegateLayout.editMode + } + QQC2.ToolButton { + icon.name: "delete" + visible: !delegateLayout.editMode + } + + QQC2.TextField { + id: tagNameField + Layout.fillWidth: true + text: model.display + visible: delegateLayout.editMode + } + QQC2.ToolButton { + icon.name: "gtk-apply" + visible: delegateLayout.editMode + onClicked: { + TagManager.renameTag(model.tag, tagNameField.text) + delegateLayout.editMode = false; + } + } + QQC2.ToolButton { + icon.name: "gtk-cancel" + onClicked: { + delegateLayout.editMode = false; + tagNameField.text = model.display; + } + visible: delegateLayout.editMode + } + } + } + } + } + + + footer: ColumnLayout { + + RowLayout { + QQC2.TextField { + Layout.fillWidth: true + placeholderText: i18n("Create a New Tag...") + } + QQC2.Button { + Layout.column: 4 + Layout.row: 0 + text: i18n("Create Tag") + } + } + } +} diff --git a/src/contents/ui/WindowMenu.qml b/src/contents/ui/WindowMenu.qml index 68a00804..aba47e9a 100644 --- a/src/contents/ui/WindowMenu.qml +++ b/src/contents/ui/WindowMenu.qml @@ -192,6 +192,13 @@ QQC2.MenuBar { QQC2.Menu { title: i18nc("@action:menu", "Settings") + KActionFromAction { + kalendarAction: "open_tag_manager" + } + + QQC2.MenuSeparator { + } + KActionFromAction { kalendarAction: 'options_configure_keybinding' } diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml index 5ea616c6..c021010d 100644 --- a/src/contents/ui/main.qml +++ b/src/contents/ui/main.qml @@ -147,6 +147,15 @@ Kirigami.ApplicationWindow { height: root.height - (Kirigami.Units.gridUnit * 3) }) } + + function onOpenTagManager() { + pageStack.pushDialogLayer("qrc:/TagManagerPage.qml", { + width: root.width + }, { + width: Kirigami.Units.gridUnit * 30, + height: Kirigami.Units.gridUnit * 30 + }) + } } Connections { diff --git a/src/kalendarapplication.cpp b/src/kalendarapplication.cpp index 249acbd3..9e0d81ed 100644 --- a/src/kalendarapplication.cpp +++ b/src/kalendarapplication.cpp @@ -81,6 +81,12 @@ void KalendarApplication::setupActions(const QString &actionName) mCollection.addAction(action->objectName(), action); } + if (actionName == QLatin1String("open_tag_manager") && KAuthorized::authorizeAction(actionName)) { + auto openTagManagerAction = mCollection.addAction(actionName, this, &KalendarApplication::openTagManager); + openTagManagerAction->setText(i18n("Manage Tags…")); + openTagManagerAction->setIcon(QIcon::fromTheme(QStringLiteral("action-rss_tag"))); + } + if (actionName == QLatin1String("switch_application_language") && KAuthorized::authorizeAction(actionName)) { auto action = KStandardAction::switchApplicationLanguage(this, &KalendarApplication::openLanguageSwitcher, this); mCollection.addAction(action->objectName(), action); diff --git a/src/kalendarapplication.h b/src/kalendarapplication.h index 7ef0bbc3..d11f3046 100644 --- a/src/kalendarapplication.h +++ b/src/kalendarapplication.h @@ -33,6 +33,7 @@ Q_SIGNALS: void windowChanged(); void openSettings(); void openLanguageSwitcher(); + void openTagManager(); void quit(); void undo(); void redo(); diff --git a/src/resources.qrc b/src/resources.qrc index ef36c877..d385f6c2 100644 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -37,5 +37,6 @@ contents/ui/KActionFromAction.qml contents/ui/ColoredCheckbox.qml contents/ui/Tag.qml + contents/ui/TagManagerPage.qml diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 5049e6b6..c63fe359 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -1,6 +1,10 @@ // SPDX-FileCopyrightText: 2021 Claudio Cambra // SPDX-License-Identifier: LGPL-2.1-or-later +#include +#include +#include +#include #include class FlatTagModel : public QSortFilterProxyModel @@ -21,6 +25,18 @@ public: sort(0); }; + QHash roleNames() const override { + auto rolenames = QSortFilterProxyModel::roleNames(); + rolenames[Akonadi::TagModel::Roles::NameRole] = "name"; + rolenames[Akonadi::TagModel::Roles::IdRole] = "id"; + rolenames[Akonadi::TagModel::Roles::GIDRole] = "gid"; + rolenames[Akonadi::TagModel::Roles::TypeRole] = "type"; + rolenames[Akonadi::TagModel::Roles::ParentRole] = "parent"; + rolenames[Akonadi::TagModel::Roles::TagRole] = "tag"; + + return rolenames; + } + protected: bool filterAcceptsRow(int row, const QModelIndex &sourceParent) const override { @@ -45,4 +61,22 @@ QSortFilterProxyModel * TagManager::tagModel() return m_tagModel; } +void TagManager::createTag(QString name) +{ + +} + +void TagManager::deleteTag(Akonadi::Tag tag) +{ + +} +void TagManager::renameTag(Akonadi::Tag tag, QString newName) +{ + tag.setName(newName); + Akonadi::TagModifyJob *job = new Akonadi::TagModifyJob(tag); + connect(job, &Akonadi::TagModifyJob::result, this, [=](KJob *job) { + if (job->error()) + qDebug() << "Error occurred renaming tag"; + }); +} diff --git a/src/tagmanager.h b/src/tagmanager.h index 351f1787..1fd647d2 100644 --- a/src/tagmanager.h +++ b/src/tagmanager.h @@ -18,6 +18,9 @@ public: ~TagManager() = default; QSortFilterProxyModel *tagModel(); + Q_INVOKABLE void createTag(QString name); + Q_INVOKABLE void renameTag(Akonadi::Tag tag, QString newName); + Q_INVOKABLE void deleteTag(Akonadi::Tag tag); private: QSortFilterProxyModel *m_tagModel = nullptr; -- GitLab From 8bff1332b3af1366de7d91bc5787e6ad6f4dd6ae Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 18 Sep 2021 14:00:50 +0200 Subject: [PATCH 02/17] Can now create new tags --- src/contents/ui/TagManagerPage.qml | 6 ++++++ src/tagmanager.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml index b9c384fd..fa291e86 100644 --- a/src/contents/ui/TagManagerPage.qml +++ b/src/contents/ui/TagManagerPage.qml @@ -77,13 +77,19 @@ Kirigami.ScrollablePage { RowLayout { QQC2.TextField { + id: newTagField Layout.fillWidth: true placeholderText: i18n("Create a New Tag...") } QQC2.Button { Layout.column: 4 Layout.row: 0 + icon.name: "tag-new" text: i18n("Create Tag") + onClicked: { + TagManager.createTag(newTagField.text); + newTagField.text = ""; + } } } } diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index c63fe359..cd8c1fa9 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -63,7 +63,12 @@ QSortFilterProxyModel * TagManager::tagModel() void TagManager::createTag(QString name) { - + Akonadi::Tag tag(name); + Akonadi::TagCreateJob *job = new Akonadi::TagCreateJob(tag, this); + connect(job, &Akonadi::TagCreateJob::finished, this, [=](KJob *job) { + if (job->error()) + qDebug() << "Error occurred creating tag"; + }); } void TagManager::deleteTag(Akonadi::Tag tag) -- GitLab From 15418b3674cf6468aba4cef43e221c81a76240c1 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 18 Sep 2021 14:24:47 +0200 Subject: [PATCH 03/17] Can now delete tags --- src/contents/ui/TagManagerPage.qml | 37 ++++++++++++++++++++++++++++-- src/tagmanager.cpp | 7 ++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml index fa291e86..2d02f23a 100644 --- a/src/contents/ui/TagManagerPage.qml +++ b/src/contents/ui/TagManagerPage.qml @@ -12,6 +12,32 @@ Kirigami.ScrollablePage { title: i18n("Manage Tags") + Kirigami.OverlaySheet { + id: deleteConfirmSheet + title: i18n("Delete Tag") + + property string tagName + property var tag + + ColumnLayout { + QQC2.Label { + Layout.fillWidth: true + text: i18n("Are you sure you want to delete tag \"%1\"?", deleteConfirmSheet.tagName) + wrapMode: Text.Wrap + } + } + + footer: QQC2.DialogButtonBox { + standardButtons: QQC2.DialogButtonBox.Ok | QQC2.DialogButtonBox.Cancel + + onAccepted: { + TagManager.deleteTag(deleteConfirmSheet.tag); + deleteConfirmSheet.close(); + } + onRejected: deleteConfirmSheet.close() + } + } + ListView { currentIndex: -1 model: TagManager.tagModel @@ -42,6 +68,11 @@ Kirigami.ScrollablePage { } QQC2.ToolButton { icon.name: "delete" + onClicked: { + deleteConfirmSheet.tag = model.tag; + deleteConfirmSheet.tagName = model.name; + deleteConfirmSheet.open(); + } visible: !delegateLayout.editMode } @@ -87,8 +118,10 @@ Kirigami.ScrollablePage { icon.name: "tag-new" text: i18n("Create Tag") onClicked: { - TagManager.createTag(newTagField.text); - newTagField.text = ""; + if(newTagField.text !== "") { + TagManager.createTag(newTagField.text); + newTagField.text = ""; + } } } } diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index cd8c1fa9..29ad5f80 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include class FlatTagModel : public QSortFilterProxyModel @@ -73,7 +72,11 @@ void TagManager::createTag(QString name) void TagManager::deleteTag(Akonadi::Tag tag) { - + Akonadi::TagDeleteJob *job = new Akonadi::TagDeleteJob(tag); + connect(job, &Akonadi::TagDeleteJob::result, this, [=](KJob *job) { + if (job->error()) + qDebug() << "Error occurred renaming tag"; + }); } void TagManager::renameTag(Akonadi::Tag tag, QString newName) -- GitLab From c7dbce1318550906b78fae9b078820f1e857ee85 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 18 Sep 2021 14:28:24 +0200 Subject: [PATCH 04/17] Added manage tags button to incidence editor --- src/contents/ui/IncidenceEditor.qml | 40 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/contents/ui/IncidenceEditor.qml b/src/contents/ui/IncidenceEditor.qml index d8738b08..13508742 100644 --- a/src/contents/ui/IncidenceEditor.qml +++ b/src/contents/ui/IncidenceEditor.qml @@ -741,28 +741,36 @@ Kirigami.ScrollablePage { } } - QQC2.ComboBox { + RowLayout { Kirigami.FormData.label: i18n("Tags:") Layout.fillWidth: true - model: TagManager.tagModel - displayText: root.incidenceWrapper.categories.length > 0 ? - root.incidenceWrapper.categories.join(i18nc("List separator", ", ")) : - Kirigami.Settings.tabletMode ? i18n("Tap to set tags...") : i18n("Click to set tags...") - - delegate: Kirigami.CheckableListItem { - label: model.display - reserveSpaceForIcon: false - checked: root.incidenceWrapper.categories.includes(model.display) - action: QQC2.Action { - onTriggered: { - checked = !checked; - root.incidenceWrapper.categories.includes(model.display) ? - root.incidenceWrapper.categories = root.incidenceWrapper.categories.filter(tag => tag !== model.display) : - root.incidenceWrapper.categories = [...root.incidenceWrapper.categories, model.display] + QQC2.ComboBox { + Layout.fillWidth: true + + model: TagManager.tagModel + displayText: root.incidenceWrapper.categories.length > 0 ? + root.incidenceWrapper.categories.join(i18nc("List separator", ", ")) : + Kirigami.Settings.tabletMode ? i18n("Tap to set tags...") : i18n("Click to set tags...") + + delegate: Kirigami.CheckableListItem { + label: model.display + reserveSpaceForIcon: false + checked: root.incidenceWrapper.categories.includes(model.display) + action: QQC2.Action { + onTriggered: { + checked = !checked; + root.incidenceWrapper.categories.includes(model.display) ? + root.incidenceWrapper.categories = root.incidenceWrapper.categories.filter(tag => tag !== model.display) : + root.incidenceWrapper.categories = [...root.incidenceWrapper.categories, model.display] + } } } } + QQC2.Button { + text: i18n("Manage tags...") + onClicked: KalendarApplication.action("open_tag_manager").trigger() + } } Kirigami.Separator { -- GitLab From 0d40c4c59dd7bfb99e1af7a0508c539b25b7195a Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 18 Sep 2021 16:50:54 +0200 Subject: [PATCH 05/17] Changed color of textfield --- src/contents/ui/TagManagerPage.qml | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml index 2d02f23a..3f359151 100644 --- a/src/contents/ui/TagManagerPage.qml +++ b/src/contents/ui/TagManagerPage.qml @@ -104,26 +104,26 @@ Kirigami.ScrollablePage { } - footer: ColumnLayout { - - RowLayout { - QQC2.TextField { - id: newTagField - Layout.fillWidth: true - placeholderText: i18n("Create a New Tag...") - } - QQC2.Button { - Layout.column: 4 - Layout.row: 0 - icon.name: "tag-new" - text: i18n("Create Tag") - onClicked: { - if(newTagField.text !== "") { - TagManager.createTag(newTagField.text); - newTagField.text = ""; - } - } + footer: Kirigami.ActionTextField { + id: newTagField + Layout.fillWidth: true + placeholderText: i18n("Create a New Tag...") + + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.Window + + function addTag() { + if(newTagField.text !== "") { + TagManager.createTag(newTagField.text); + newTagField.text = ""; } } + + rightActions: Kirigami.Action { + icon.name: "tag-new" + tooltip: i18n("Quickly Add a New Tag.") + onTriggered: newTagField.addTag() + } + onAccepted: newTagField.addTag() } } -- GitLab From 5fc6dd886022cff5b995c38b59ad6302ca9318b1 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:54:58 +0000 Subject: [PATCH 06/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 29ad5f80..57f8c42b 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -65,7 +65,7 @@ void TagManager::createTag(QString name) Akonadi::Tag tag(name); Akonadi::TagCreateJob *job = new Akonadi::TagCreateJob(tag, this); connect(job, &Akonadi::TagCreateJob::finished, this, [=](KJob *job) { - if (job->error()) + if (job->error()) qDebug() << "Error occurred creating tag"; }); } -- GitLab From b3b2eff5b4b62271cfd7ff132ecb7adf13a3d947 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:55:23 +0000 Subject: [PATCH 07/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 57f8c42b..943a075b 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -84,7 +84,7 @@ void TagManager::renameTag(Akonadi::Tag tag, QString newName) tag.setName(newName); Akonadi::TagModifyJob *job = new Akonadi::TagModifyJob(tag); connect(job, &Akonadi::TagModifyJob::result, this, [=](KJob *job) { - if (job->error()) + if (job->error()) qDebug() << "Error occurred renaming tag"; }); } -- GitLab From 62d8a66af4b94d6ac6cb17d130717dea7c6fa1f8 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:55:26 +0000 Subject: [PATCH 08/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 943a075b..0af82a22 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -74,7 +74,7 @@ void TagManager::deleteTag(Akonadi::Tag tag) { Akonadi::TagDeleteJob *job = new Akonadi::TagDeleteJob(tag); connect(job, &Akonadi::TagDeleteJob::result, this, [=](KJob *job) { - if (job->error()) + if (job->error()) qDebug() << "Error occurred renaming tag"; }); } -- GitLab From 1bc6bd7b9da77340b85f68f08c9b5b449aa7bb65 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:55:32 +0000 Subject: [PATCH 09/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 0af82a22..c4bceb96 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -79,7 +79,7 @@ void TagManager::deleteTag(Akonadi::Tag tag) }); } -void TagManager::renameTag(Akonadi::Tag tag, QString newName) +void TagManager::renameTag(Akonadi::Tag tag, const QString &newName) { tag.setName(newName); Akonadi::TagModifyJob *job = new Akonadi::TagModifyJob(tag); -- GitLab From fae613a86599e422ecb410e08cb345fcc5878527 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:55:38 +0000 Subject: [PATCH 10/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index c4bceb96..61c59b86 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -60,7 +60,7 @@ QSortFilterProxyModel * TagManager::tagModel() return m_tagModel; } -void TagManager::createTag(QString name) +void TagManager::createTag(const QString &name) { Akonadi::Tag tag(name); Akonadi::TagCreateJob *job = new Akonadi::TagCreateJob(tag, this); -- GitLab From 66accfa46be1512bb7b358f11cf21eae84b464a2 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:55:42 +0000 Subject: [PATCH 11/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.h b/src/tagmanager.h index 1fd647d2..115dae5a 100644 --- a/src/tagmanager.h +++ b/src/tagmanager.h @@ -18,7 +18,7 @@ public: ~TagManager() = default; QSortFilterProxyModel *tagModel(); - Q_INVOKABLE void createTag(QString name); + Q_INVOKABLE void createTag(const QString &name); Q_INVOKABLE void renameTag(Akonadi::Tag tag, QString newName); Q_INVOKABLE void deleteTag(Akonadi::Tag tag); -- GitLab From 1ec168f76bf783f6982dff40b1e2d6a162e89e44 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:58:14 +0000 Subject: [PATCH 12/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.h b/src/tagmanager.h index 115dae5a..54ae5736 100644 --- a/src/tagmanager.h +++ b/src/tagmanager.h @@ -19,7 +19,7 @@ public: QSortFilterProxyModel *tagModel(); Q_INVOKABLE void createTag(const QString &name); - Q_INVOKABLE void renameTag(Akonadi::Tag tag, QString newName); + Q_INVOKABLE void renameTag(Akonadi::Tag tag, const QString &newName); Q_INVOKABLE void deleteTag(Akonadi::Tag tag); private: -- GitLab From 088d75a0e284ec95eca2b75de3622c422819dfb0 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sat, 18 Sep 2021 23:58:38 +0000 Subject: [PATCH 13/17] Apply 1 suggestion(s) to 1 file(s) --- src/contents/ui/TagManagerPage.qml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml index 3f359151..46629525 100644 --- a/src/contents/ui/TagManagerPage.qml +++ b/src/contents/ui/TagManagerPage.qml @@ -108,9 +108,18 @@ Kirigami.ScrollablePage { id: newTagField Layout.fillWidth: true placeholderText: i18n("Create a New Tag...") - - Kirigami.Theme.inherit: false - Kirigami.Theme.colorSet: Kirigami.Theme.Window + background: Rectangle { + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.Window + color: Kirigami.Theme.backgroundColor + Kirigami.Separator { + anchors { + top: parent.top + left: parent.left + right: parent.right + } + } + } function addTag() { if(newTagField.text !== "") { -- GitLab From 5cdb8c3f0aa8aeef647eff3224d0d5eeeb2ed8f0 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sun, 19 Sep 2021 02:08:06 +0200 Subject: [PATCH 14/17] Tag manager textfield and todopage textfield now match --- src/contents/ui/Sidebar.qml | 2 +- src/contents/ui/TodoPage.qml | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/contents/ui/Sidebar.qml b/src/contents/ui/Sidebar.qml index becd59cd..e9309c65 100644 --- a/src/contents/ui/Sidebar.qml +++ b/src/contents/ui/Sidebar.qml @@ -377,7 +377,7 @@ Kirigami.OverlayDrawer { Layout.fillWidth: true } Kirigami.BasicListItem { - Layout.topMargin: -Kirigami.Units.smallSpacing + Layout.topMargin: -Kirigami.Units.smallSpacing - 1 icon: "show-all-effects" label: i18n("View all todos") labelItem.color: Kirigami.Theme.textColor diff --git a/src/contents/ui/TodoPage.qml b/src/contents/ui/TodoPage.qml index 4daa6086..09ae63cd 100644 --- a/src/contents/ui/TodoPage.qml +++ b/src/contents/ui/TodoPage.qml @@ -275,6 +275,19 @@ Kirigami.Page { Layout.fillWidth: true placeholderText: i18n("Create a New Todo…") + background: Rectangle { + Kirigami.Theme.inherit: false + Kirigami.Theme.colorSet: Kirigami.Theme.Window + color: Kirigami.Theme.backgroundColor + Kirigami.Separator { + anchors { + top: parent.top + left: parent.left + right: parent.right + } + } + } + function addTodo() { if(addField.text) { let incidenceWrapper = Qt.createQmlObject('import org.kde.kalendar 1.0; IncidenceWrapper {id: incidence}', this, "incidence"); -- GitLab From 089a6dbe262eab4731fbed884e4a3fcd4c87161c Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sun, 19 Sep 2021 10:52:33 +0000 Subject: [PATCH 15/17] Apply 1 suggestion(s) to 1 file(s) --- src/contents/ui/TagManagerPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contents/ui/TagManagerPage.qml b/src/contents/ui/TagManagerPage.qml index 46629525..1c2c707a 100644 --- a/src/contents/ui/TagManagerPage.qml +++ b/src/contents/ui/TagManagerPage.qml @@ -122,7 +122,7 @@ Kirigami.ScrollablePage { } function addTag() { - if(newTagField.text !== "") { + if(newTagField.text.length > 0) { TagManager.createTag(newTagField.text); newTagField.text = ""; } -- GitLab From 1b3309bdfab87baec299f2dc1ccd87245c03080f Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sun, 19 Sep 2021 10:52:58 +0000 Subject: [PATCH 16/17] Apply 1 suggestion(s) to 1 file(s) --- src/tagmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 61c59b86..63ad580c 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -27,7 +27,7 @@ public: QHash roleNames() const override { auto rolenames = QSortFilterProxyModel::roleNames(); rolenames[Akonadi::TagModel::Roles::NameRole] = "name"; - rolenames[Akonadi::TagModel::Roles::IdRole] = "id"; + rolenames[Akonadi::TagModel::Roles::IdRole] = QByteArrayLiteral("id"); rolenames[Akonadi::TagModel::Roles::GIDRole] = "gid"; rolenames[Akonadi::TagModel::Roles::TypeRole] = "type"; rolenames[Akonadi::TagModel::Roles::ParentRole] = "parent"; -- GitLab From e6df319ca12e994b2cb960b6fd9661bcdc927f96 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sun, 19 Sep 2021 12:56:11 +0200 Subject: [PATCH 17/17] Micro optimisations --- src/tagmanager.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tagmanager.cpp b/src/tagmanager.cpp index 63ad580c..130230fd 100644 --- a/src/tagmanager.cpp +++ b/src/tagmanager.cpp @@ -26,12 +26,12 @@ public: QHash roleNames() const override { auto rolenames = QSortFilterProxyModel::roleNames(); - rolenames[Akonadi::TagModel::Roles::NameRole] = "name"; + rolenames[Akonadi::TagModel::Roles::NameRole] = QByteArrayLiteral("name"); rolenames[Akonadi::TagModel::Roles::IdRole] = QByteArrayLiteral("id"); - rolenames[Akonadi::TagModel::Roles::GIDRole] = "gid"; - rolenames[Akonadi::TagModel::Roles::TypeRole] = "type"; - rolenames[Akonadi::TagModel::Roles::ParentRole] = "parent"; - rolenames[Akonadi::TagModel::Roles::TagRole] = "tag"; + rolenames[Akonadi::TagModel::Roles::GIDRole] = QByteArrayLiteral("gid"); + rolenames[Akonadi::TagModel::Roles::TypeRole] = QByteArrayLiteral("type"); + rolenames[Akonadi::TagModel::Roles::ParentRole] = QByteArrayLiteral("parent"); + rolenames[Akonadi::TagModel::Roles::TagRole] = QByteArrayLiteral("tag"); return rolenames; } -- GitLab