diff options
Diffstat (limited to 'src/bookmarks/bookmarksmanager.cpp')
-rw-r--r-- | src/bookmarks/bookmarksmanager.cpp | 332 |
1 files changed, 0 insertions, 332 deletions
diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp deleted file mode 100644 index ea7b313d..00000000 --- a/src/bookmarks/bookmarksmanager.cpp +++ /dev/null @@ -1,332 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2008-2010 by Andrea Diamantini <adjam7 at gmail dot com> -* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com> -* Copyright (C) 2009-2010 by Lionel Chauvin <megabigbug@yahoo.fr> -* Copyright (C) 2010 by Yoann Laissus <yoann dot laissus at gmail dot com> -* -* -* 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 <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -// Self Includes -#include "bookmarksmanager.h" - -// Local Includes -#include "application.h" -#include "mainwindow.h" -#include "bookmarkspanel.h" -#include "bookmarkscontextmenu.h" -#include "bookmarkstoolbar.h" -#include "bookmarkowner.h" - -// KDE Includes -#include <KStandardDirs> - -// Qt Includes -#include <QtCore/QFile> - - -BookmarkProvider::BookmarkProvider(QObject *parent) - : QObject(parent) - , m_manager(0) - , m_owner(0) - , m_actionCollection(new KActionCollection(this)) - , _bookmarkActionMenu(0) -{ - kDebug() << "Loading Bookmarks Manager..."; - - KUrl bookfile = KUrl("~/.kde/share/apps/konqueror/bookmarks.xml"); // share konqueror bookmarks - - if (!QFile::exists(bookfile.path())) - { - bookfile = KUrl("~/.kde4/share/apps/konqueror/bookmarks.xml"); - if (!QFile::exists(bookfile.path())) - { - QString bookmarksDefaultPath = KStandardDirs::locate("appdata" , "defaultbookmarks.xbel"); - QFile bkms(bookmarksDefaultPath); - QString bookmarksPath = KStandardDirs::locateLocal("appdata", "bookmarks.xml", true); - bookmarksPath.replace("rekonq", "konqueror"); - bkms.copy(bookmarksPath); - - bookfile = KUrl(bookmarksPath); - } - } - - m_manager = KBookmarkManager::managerForFile(bookfile.path(), "rekonq"); - - connect(m_manager, SIGNAL(changed(const QString &, const QString &)), - this, SLOT(slotBookmarksChanged(const QString &, const QString &))); - - // setup menu - m_owner = new BookmarkOwner(m_manager, this); - connect(m_owner, SIGNAL(openUrl(const KUrl&, const Rekonq::OpenType &)), this, SIGNAL(openUrl(const KUrl&, const Rekonq::OpenType &))); - - KAction *a = KStandardAction::addBookmark(this, SLOT(slotAddBookmark()), this); - m_actionCollection->addAction(QL1S("rekonq_add_bookmark"), a); - - kDebug() << "Loading Bookmarks Manager... DONE!"; -} - - -BookmarkProvider::~BookmarkProvider() -{ - delete m_actionCollection; - delete m_owner; - delete m_manager; -} - - -void BookmarkProvider::registerBookmarkBar(BookmarkToolBar *toolbar) -{ - if (m_bookmarkToolBars.contains(toolbar)) - return; - - kDebug() << "new bookmark bar..."; - - m_bookmarkToolBars.append(toolbar); - toolbar->toolBar()->setContextMenuPolicy(Qt::CustomContextMenu); - connect(toolbar->toolBar(), SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(contextMenu(const QPoint &))); - - kDebug() << "new bookmark bar... DONE!"; -} - - -void BookmarkProvider::removeToolBar(BookmarkToolBar *toolbar) -{ - m_bookmarkToolBars.removeOne(toolbar); -} - - -void BookmarkProvider::slotBookmarksChanged(const QString &group, const QString &caller) -{ - Q_UNUSED(group) - Q_UNUSED(caller) - - foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars) - { - if (bookmarkToolBar) - { - bookmarkToolBar->toolBar()->clear(); - fillBookmarkBar(bookmarkToolBar); - } - } -} - - -QAction *BookmarkProvider::actionByName(const QString &name) -{ - QAction *action = m_actionCollection->action(name); - if (action) - return action; - return new QAction(this); // return empty object instead of NULL pointer -} - - -void BookmarkProvider::contextMenu(const QPoint &point) -{ - if (m_bookmarkToolBars.isEmpty()) - return; - - KToolBar *bookmarkToolBar = m_bookmarkToolBars.at(0)->toolBar(); - if (!bookmarkToolBar) - return; - - KBookmarkActionInterface* action = dynamic_cast<KBookmarkActionInterface *>(bookmarkToolBar->actionAt(point)); - if (!action) - return; - - BookmarksContextMenu menu(action->bookmark(), bookmarkManager(), bookmarkOwner()); - menu.exec(bookmarkToolBar->mapToGlobal(point)); -} - - -KActionMenu* BookmarkProvider::bookmarkActionMenu(QWidget *parent) -{ - kDebug() << "new Bookmarks Menu..."; - - KMenu *menu = new KMenu(parent); - _bookmarkActionMenu = new KActionMenu(parent); - _bookmarkActionMenu->setMenu(menu); - _bookmarkActionMenu->setText(i18n("&Bookmarks")); - new BookmarkMenu(m_manager, m_owner, menu, m_actionCollection); - - kDebug() << "new Bookmarks Menu...DONE"; - return _bookmarkActionMenu; -} - - -void BookmarkProvider::fillBookmarkBar(BookmarkToolBar *toolBar) -{ - KBookmarkGroup root = m_manager->toolbar(); - if (root.isNull()) - return; - - for (KBookmark bookmark = root.first(); !bookmark.isNull(); bookmark = root.next(bookmark)) - { - if (bookmark.isGroup()) - { - KBookmarkActionMenu *menuAction = new KBookmarkActionMenu(bookmark.toGroup(), this); - menuAction->setDelayed(false); - new BookmarkMenu(bookmarkManager(), bookmarkOwner(), menuAction->menu(), bookmark.address()); - connect(menuAction->menu(), SIGNAL(aboutToShow()), toolBar, SLOT(menuDisplayed())); - connect(menuAction->menu(), SIGNAL(aboutToHide()), toolBar, SLOT(menuHidden())); - toolBar->toolBar()->addAction(menuAction); - } - - else if (bookmark.isSeparator()) - { - toolBar->toolBar()->addSeparator(); - } - - else - { - KBookmarkAction* action = new KBookmarkAction(bookmark, m_owner, this); - action->setIconText(action->iconText().replace('&', "&&")); - connect(action, SIGNAL(hovered()), toolBar, SLOT(actionHovered())); - toolBar->toolBar()->addAction(action); - toolBar->toolBar()->widgetForAction(action)->installEventFilter(toolBar); - } - } -} - - -KBookmarkGroup BookmarkProvider::rootGroup() -{ - return m_manager->root(); -} - - -QList<KBookmark> BookmarkProvider::find(QString text) -{ - QList<KBookmark> list; - KBookmarkGroup bookGroup = Application::bookmarkProvider()->rootGroup(); - if (bookGroup.isNull()) - { - return list; - } - - KBookmark bookmark = bookGroup.first(); - while (!bookmark.isNull()) - { - list = find(list, bookmark, text); - bookmark = bookGroup.next(bookmark); - } - - return list; -} - - -QList<KBookmark> BookmarkProvider::find(QList<KBookmark> list, const KBookmark &bookmark, QString text) -{ - if (bookmark.isGroup()) - { - KBookmarkGroup group = bookmark.toGroup(); - KBookmark bm = group.first(); - while (!bm.isNull()) - { - list = find(list, bm, text); // it is .bookfolder - bm = group.next(bm); - } - } - else if (bookmark.url().url().contains(text) || bookmark.fullText().contains(text)) - { - list << bookmark; - } - - return list; -} - - -void BookmarkProvider::slotAddBookmark() -{ - KBookmarkGroup parentBookmark = rootGroup(); - parentBookmark.addBookmark(bookmarkOwner()->currentTitle(), bookmarkOwner()->currentUrl()); - bookmarkManager()->emitChanged(); -} - - -void BookmarkProvider::registerBookmarkPanel(BookmarksPanel *panel) -{ - if (panel && !m_bookmarkPanels.contains(panel)) - { - m_bookmarkPanels.append(panel); - connect(panel, SIGNAL(expansionChanged()), this, SLOT(slotPanelChanged())); - } -} - - -void BookmarkProvider::removeBookmarkPanel(BookmarksPanel *panel) -{ - m_bookmarkPanels.removeOne(panel); - - if (m_bookmarkPanels.isEmpty()) - { - Application::bookmarkProvider()->bookmarkManager()->emitChanged(); - } -} - - -void BookmarkProvider::slotPanelChanged() -{ - foreach (BookmarksPanel *panel, m_bookmarkPanels) - { - if (panel && panel != sender()) - panel->startLoadFoldedState(); - } -} - - -KBookmark BookmarkProvider::bookmarkForUrl(const KUrl &url) -{ - KBookmarkGroup root = rootGroup(); - if (root.isNull()) - { - KBookmark found; - return found; - } - - return bookmarkForUrl(root, url); -} - - -KBookmark BookmarkProvider::bookmarkForUrl(const KBookmark &bookmark, const KUrl &url) -{ - KBookmark found; - - if (bookmark.isGroup()) - { - KBookmarkGroup group = bookmark.toGroup(); - KBookmark bookmark = group.first(); - - while (!bookmark.isNull() && found.isNull()) - { - found = bookmarkForUrl(bookmark, url); - bookmark = group.next(bookmark); - } - } - else if (!bookmark.isSeparator() && bookmark.url() == url) - { - found = bookmark; - } - - return found; -} |