aboutsummaryrefslogtreecommitdiff
path: root/src/favouritecollection.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-01-07 16:17:58 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-01-07 10:05:00 +0100
commit19046566a62f9e616a23584ebbe045ddbc132023 (patch)
tree903ed2a82eddd1c318574725b498fc1938f6c472 /src/favouritecollection.cpp
parent772cad15cef23559986869733f541b5f3ea4d130 (diff)
downloadkristall-19046566a62f9e616a23584ebbe045ddbc132023.tar.gz
favourite popup: adding group combobox!
Diffstat (limited to 'src/favouritecollection.cpp')
-rw-r--r--src/favouritecollection.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/favouritecollection.cpp b/src/favouritecollection.cpp
index 253ec15..29b79b7 100644
--- a/src/favouritecollection.cpp
+++ b/src/favouritecollection.cpp
@@ -202,6 +202,36 @@ void FavouriteCollection::editFavouriteDest(const QModelIndex &index, const QUrl
this->getMutableFavourite(index)->destination = url;
}
+bool FavouriteCollection::editFavouriteGroup(const QUrl &u, const QString &group_name)
+{
+ // Find and erase favourite node
+ QUrl url = IoUtil::uniformUrl(u);
+ for (auto const & group : this->root.children)
+ {
+ size_t index = 0;
+ for (auto it = group->children.begin(); it != group->children.end(); it++, index++)
+ {
+ auto& fav = it->get()->as<FavouriteNode>();
+ if(IoUtil::uniformUrl(fav.favourite.destination) == url)
+ {
+ Favourite f = Favourite {
+ fav.favourite.title,
+ fav.favourite.destination
+ };
+
+ beginRemoveRows(this->index(fav.parent->index, 0), index, index + 1);
+ group->children.erase(it);
+ endRemoveRows();
+ this->relayout();
+
+ this->addFavourite(group_name, f);
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
Favourite FavouriteCollection::getFavourite(const QUrl &u) const
{
QUrl url = IoUtil::uniformUrl(u);
@@ -249,6 +279,20 @@ Favourite * FavouriteCollection::getMutableFavourite(const QModelIndex &index)
}
}
+QString FavouriteCollection::groupForFavourite(const QUrl &url) const
+{
+ for (auto const & group : this->root.children)
+ {
+ for (auto const & ident : group->children)
+ {
+ FavouriteNode* node = &ident->as<FavouriteNode>();
+ if (node->favourite.destination == url)
+ return node->parent->as<GroupNode>().title;
+ }
+ }
+ return QString { };
+}
+
QStringList FavouriteCollection::groups() const
{
QStringList result;