| 569 | } |
| 570 | |
| 571 | void BookmarkManager::removeBookmarks(const QUrl &documentUrl, const KBookmark::List &list) |
| 572 | { |
| 573 | if (!documentUrl.isValid() || list.isEmpty()) { |
| 574 | return; |
| 575 | } |
| 576 | |
| 577 | const QUrl referurl = mostCanonicalUrl(documentUrl); |
| 578 | |
| 579 | KBookmarkGroup thebg; |
| 580 | QHash<QUrl, QString>::iterator it = d->bookmarkFind(referurl, false, &thebg); |
| 581 | if (it == d->knownFiles.end()) { |
| 582 | return; |
| 583 | } |
| 584 | |
| 585 | const QHash<int, int> oldUrlBookmarks = d->urlBookmarks; |
| 586 | bool deletedAny = false; |
| 587 | for (const KBookmark &bm : list) { |
| 588 | if (bm.parentGroup() == thebg) { |
| 589 | thebg.deleteBookmark(bm); |
| 590 | deletedAny = true; |
| 591 | |
| 592 | DocumentViewport vp(bm.url().fragment(QUrl::FullyDecoded)); |
| 593 | if (referurl == d->document->m_url) { |
| 594 | d->urlBookmarks[vp.pageNumber]--; |
| 595 | } |
| 596 | } |
| 597 | } |
| 598 | |
| 599 | if (referurl == d->document->m_url) { |
| 600 | for (int i = 0; i < qMax(oldUrlBookmarks.size(), d->urlBookmarks.size()); i++) { |
| 601 | bool oldContains = oldUrlBookmarks.contains(i) && oldUrlBookmarks[i] > 0; |
| 602 | bool curContains = d->urlBookmarks.contains(i) && d->urlBookmarks[i] > 0; |
| 603 | |
| 604 | if (oldContains != curContains) { |
| 605 | foreachObserver(notifyPageChanged(i, DocumentObserver::Bookmark)); |
| 606 | } else if (oldContains && oldUrlBookmarks[i] != d->urlBookmarks[i]) { |
| 607 | foreachObserver(notifyPageChanged(i, DocumentObserver::Bookmark)); |
| 608 | } |
| 609 | } |
| 610 | } |
| 611 | if (deletedAny) { |
| 612 | d->manager.emitChanged(thebg); |
| 613 | } |
| 614 | } |
| 615 | |
| 616 | QList<QAction *> BookmarkManager::actionsForUrl(const QUrl &documentUrl) const |
| 617 | { |
no test coverage detected