From 19046566a62f9e616a23584ebbe045ddbc132023 Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Thu, 7 Jan 2021 16:17:58 +1100 Subject: favourite popup: adding group combobox! --- src/favouritecollection.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/favouritecollection.cpp') 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(); + 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(); + if (node->favourite.destination == url) + return node->parent->as().title; + } + } + return QString { }; +} + QStringList FavouriteCollection::groups() const { QStringList result; -- cgit v1.2.3