diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-01-07 16:17:58 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-01-07 10:05:00 +0100 |
| commit | 19046566a62f9e616a23584ebbe045ddbc132023 (patch) | |
| tree | 903ed2a82eddd1c318574725b498fc1938f6c472 /src/favouritecollection.cpp | |
| parent | 772cad15cef23559986869733f541b5f3ea4d130 (diff) | |
| download | kristall-19046566a62f9e616a23584ebbe045ddbc132023.tar.gz | |
favourite popup: adding group combobox!
Diffstat (limited to 'src/favouritecollection.cpp')
| -rw-r--r-- | src/favouritecollection.cpp | 44 |
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; |
