From d9802226e443ecd7a7062fd7a0fb320a183e341f Mon Sep 17 00:00:00 2001 From: aqua Date: Mon, 15 Aug 2022 14:25:29 +0300 Subject: Migrate BookmarkManager --- src/bookmarks/bookmarksmenu.cpp | 194 +++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 110 deletions(-) (limited to 'src/bookmarks/bookmarksmenu.cpp') diff --git a/src/bookmarks/bookmarksmenu.cpp b/src/bookmarks/bookmarksmenu.cpp index 1f89df04..445b81b7 100644 --- a/src/bookmarks/bookmarksmenu.cpp +++ b/src/bookmarks/bookmarksmenu.cpp @@ -1,159 +1,133 @@ /* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2008-2013 by Andrea Diamantini -* Copyright (C) 2010 by Yoann Laissus -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* -* ============================================================ */ - + * + * This file is a part of the rekonq project + * + * Copyright (C) 2008-2013 by Andrea Diamantini + * Copyright (C) 2010 by Yoann Laissus + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License or (at your option) version 3 or any later version + * accepted by the membership of KDE e.V. (or its successor approved + * by the membership of KDE e.V.), which shall act as a proxy + * defined in Section 14 of version 3 of the license. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * ============================================================ */ // Self Includes #include "bookmarksmenu.h" #include "bookmarksmenu.moc" // Local Includes -#include "bookmarkscontextmenu.h" #include "bookmarkmanager.h" #include "bookmarkowner.h" +#include "bookmarkscontextmenu.h" #include "iconmanager.h" #include "webwindow.h" // Qt Includes -#include #include #include +#include - -BookmarkMenu::BookmarkMenu(KBookmarkManager *manager, - KBookmarkOwner *owner, - KMenu *menu, - KActionCollection* actionCollection) +BookmarkMenu::BookmarkMenu(KBookmarkManager *manager, KBookmarkOwner *owner, KMenu *menu, + KActionCollection *actionCollection) : KBookmarkMenu(manager, owner, menu, actionCollection) { } - -BookmarkMenu::BookmarkMenu(KBookmarkManager *manager, - KBookmarkOwner *owner, - KMenu *parentMenu, +BookmarkMenu::BookmarkMenu(KBookmarkManager *manager, KBookmarkOwner *owner, KMenu *parentMenu, const QString &parentAddress) : KBookmarkMenu(manager, owner, parentMenu, parentAddress) { } - BookmarkMenu::~BookmarkMenu() { - kDebug() << "Deleting BookmarkMenu.. See http://svn.reviewboard.kde.org/r/5606/ about."; + kDebug() << "Deleting BookmarkMenu.. See http://svn.reviewboard.kde.org/r/5606/ about."; } - -KMenu * BookmarkMenu::contextMenu(QAction *act) +KMenu *BookmarkMenu::contextMenu(QAction *act) { - KBookmarkActionInterface* action = dynamic_cast(act); - if (!action) - return 0; - return new BookmarksContextMenu(action->bookmark(), manager(), static_cast(owner())); + KBookmarkActionInterface *action = dynamic_cast(act); + if (!action) return 0; + return new BookmarksContextMenu(action->bookmark(), manager(), static_cast(owner())); } - -QAction * BookmarkMenu::actionForBookmark(const KBookmark &bookmark) +QAction *BookmarkMenu::actionForBookmark(const KBookmark &bookmark) { - if (bookmark.isGroup()) - { - KBookmarkActionMenu *actionMenu = new KBookmarkActionMenu(bookmark, this); - BookmarkMenu *menu = new BookmarkMenu(manager(), owner(), actionMenu->menu(), bookmark.address()); - // An hack to get rid of bug 219274 - connect(actionMenu, SIGNAL(hovered()), menu, SLOT(slotAboutToShow())); - return actionMenu; - } - else if (bookmark.isSeparator()) - { - return KBookmarkMenu::actionForBookmark(bookmark); - } - else - { - KBookmarkAction *action = new KBookmarkAction(bookmark, owner(), this); - action->setIcon(IconManager::self()->iconForUrl(KUrl(bookmark.url()))); - return action; - } + if (bookmark.isGroup()) { + KBookmarkActionMenu *actionMenu = new KBookmarkActionMenu(bookmark, this); + BookmarkMenu *menu = new BookmarkMenu(manager(), owner(), actionMenu->menu(), bookmark.address()); + // An hack to get rid of bug 219274 + connect(actionMenu, SIGNAL(hovered()), menu, SLOT(slotAboutToShow())); + return actionMenu; + } + else if (bookmark.isSeparator()) { + return KBookmarkMenu::actionForBookmark(bookmark); + } + else { + KBookmarkAction *action = new KBookmarkAction(bookmark, owner(), this); + action->setIcon(IconManager::self()->iconForUrl(KUrl(bookmark.url()))); + return action; + } } - void BookmarkMenu::refill() { - clear(); - - if (isRoot()) - { - addAddBookmark(); - addAddBookmarksList(); - - if (parentMenu()->actions().count() > 0) - parentMenu()->addSeparator(); - - WebWindow *w = qobject_cast(parentMenu()->parent()); - QAction *a; - // bk page - a = w->actionByName(QL1S("open_bookmarks_page")); - parentMenu()->addAction(a); - a = w->actionByName(QL1S("show_bookmarks_toolbar")); - parentMenu()->addAction(a); - - addEditBookmarks(); - - if (parentMenu()->actions().count() > 0) - parentMenu()->addSeparator(); - } + clear(); - fillBookmarks(); - - if (!isRoot()) - { - if (parentMenu()->actions().count() > 0) - parentMenu()->addSeparator(); + if (isRoot()) { + addAddBookmark(); + addAddBookmarksList(); - addOpenFolderInTabs(); - addAddBookmarksList(); - } -} + if (parentMenu()->actions().count() > 0) parentMenu()->addSeparator(); + + WebWindow *w = qobject_cast(parentMenu()->parent()); + QAction *a; + // bk page + a = w->actionByName(QL1S("open_bookmarks_page")); + parentMenu()->addAction(a); + a = w->actionByName(QL1S("show_bookmarks_toolbar")); + parentMenu()->addAction(a); + addEditBookmarks(); + + if (parentMenu()->actions().count() > 0) parentMenu()->addSeparator(); + } + + fillBookmarks(); + + if (!isRoot()) { + if (parentMenu()->actions().count() > 0) parentMenu()->addSeparator(); + + addOpenFolderInTabs(); + addAddBookmarksList(); + } +} void BookmarkMenu::addOpenFolderInTabs() { - KBookmarkGroup group = manager()->findByAddress(parentAddress()).toGroup(); + KBookmarkGroup group = manager()->findByAddress(parentAddress()).toGroup(); - if (!group.first().isNull()) - { - KBookmark bookmark = group.first(); + if (!group.first().isNull()) { + KBookmark bookmark = group.first(); - while (bookmark.isGroup() || bookmark.isSeparator()) - { - bookmark = group.next(bookmark); - } + while (bookmark.isGroup() || bookmark.isSeparator()) { bookmark = group.next(bookmark); } - if (!bookmark.isNull()) - { - parentMenu()->addAction(BookmarkManager::self()->owner()->createAction(group, BookmarkOwner::OPEN_FOLDER)); - } + if (!bookmark.isNull()) { + parentMenu()->addAction(BookmarkManager::self()->owner()->createAction(group, BookmarkOwner::OPEN_FOLDER)); } + } } -- cgit v1.2.1