From d002e3ede6b703b1e561a64c8f8ca9017ef87049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Fri, 20 Aug 2010 21:42:38 +0200 Subject: Changed the name of the files src/bookmarks/bookmarksmanager.* to src/bookmarks/bookmarkprovider.* --- src/bookmarks/bookmarkowner.cpp | 2 +- src/bookmarks/bookmarkprovider.cpp | 332 +++++++++++++++++++++++++++++++++++ src/bookmarks/bookmarkprovider.h | 158 +++++++++++++++++ src/bookmarks/bookmarksmanager.cpp | 332 ----------------------------------- src/bookmarks/bookmarksmanager.h | 158 ----------------- src/bookmarks/bookmarkspanel.cpp | 2 +- src/bookmarks/bookmarkstoolbar.cpp | 2 +- src/bookmarks/bookmarkstreemodel.cpp | 2 +- 8 files changed, 494 insertions(+), 494 deletions(-) create mode 100644 src/bookmarks/bookmarkprovider.cpp create mode 100644 src/bookmarks/bookmarkprovider.h delete mode 100644 src/bookmarks/bookmarksmanager.cpp delete mode 100644 src/bookmarks/bookmarksmanager.h (limited to 'src/bookmarks') diff --git a/src/bookmarks/bookmarkowner.cpp b/src/bookmarks/bookmarkowner.cpp index d9df6e82..7861f0ac 100644 --- a/src/bookmarks/bookmarkowner.cpp +++ b/src/bookmarks/bookmarkowner.cpp @@ -32,7 +32,7 @@ // Local Includes #include "application.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "mainwindow.h" #include "webtab.h" #include "mainview.h" diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp new file mode 100644 index 00000000..03a3cc70 --- /dev/null +++ b/src/bookmarks/bookmarkprovider.cpp @@ -0,0 +1,332 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2008-2010 by Andrea Diamantini +* Copyright (C) 2009 by Paweł Prażak +* Copyright (C) 2009-2010 by Lionel Chauvin +* 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 "bookmarkprovider.h" + +// Local Includes +#include "application.h" +#include "mainwindow.h" +#include "bookmarkspanel.h" +#include "bookmarkscontextmenu.h" +#include "bookmarkstoolbar.h" +#include "bookmarkowner.h" + +// KDE Includes +#include + +// Qt Includes +#include + + +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(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 BookmarkProvider::find(QString text) +{ + QList 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 BookmarkProvider::find(QList 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; +} diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h new file mode 100644 index 00000000..0c2b9ee2 --- /dev/null +++ b/src/bookmarks/bookmarkprovider.h @@ -0,0 +1,158 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2008-2010 by Andrea Diamantini +* Copyright (C) 2009 by Paweł Prażak +* Copyright (C) 2009-2010 by Lionel Chauvin +* 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 . +* +* ============================================================ */ + + +#ifndef BOOKMARKS_H +#define BOOKMARKS_H + + +// Rekonq Includes +#include "rekonq_defines.h" + +// KDE Includes +#include +#include + +// Forward Declarations +class BookmarksPanel; +class BookmarkToolBar; +class BookmarkOwner; + + +/** + * This class represent the interface to rekonq bookmarks system. + * All rekonq needs (Bookmarks Menu, Bookmarks Toolbar) is provided + * from this class. + * So it implements code to have each one + * + * + */ +class BookmarkProvider : public QObject +{ + Q_OBJECT + +public: + /** + * @short Class constructor. + * Connect BookmarksProvider with bookmarks source + * (actually konqueror's bookmarks) + * @param parent The MainWindow to provide bookmarks objects + * + */ + BookmarkProvider(QObject* parent = 0); + ~BookmarkProvider(); + + /** + * @short Get the Bookmarks Menu Action + * @param the parent widget + * @return the Bookmarks Menu + */ + KActionMenu *bookmarkActionMenu(QWidget *parent); + + /** + * @short set the Bookmarks Toolbar Action + */ + void registerBookmarkBar(BookmarkToolBar *); + + void removeToolBar(BookmarkToolBar *); + + /** + * @short Get action by name + * This method returns poiner bookmark action of given name. + * @pre m_actionCollection != NULL + * @param name Name of action you want to get + * @return It returns actions if one exists or empty object + */ + QAction *actionByName(const QString &name); + + /** + * returns Bookmark Manager root group + * + * @return the root bookmark group + */ + KBookmarkGroup rootGroup(); + + inline KBookmarkManager *bookmarkManager() { return m_manager; } + + inline BookmarkOwner *bookmarkOwner() { return m_owner; } + + QList find(QString text); + + void registerBookmarkPanel(BookmarksPanel *panel); + void removeBookmarkPanel(BookmarksPanel *panel); + + KBookmark bookmarkForUrl(const KUrl &url); + +signals: + /** + * @short This signal is emitted when an url has to be loaded + * + * @param url the URL to load + */ + void openUrl(const KUrl &, const Rekonq::OpenType &); + + +public slots: + /** + * @short Opens the context menu on given position + * @param point Point on which you want to open this menu + */ + void contextMenu(const QPoint &point); + + /** + * @short Waits for signal that the group with the address has been modified by the caller. + * Waits for signal that the group (or any of its children) with the address + * @p groupAddress (e.g. "/4/5") has been modified by the caller @p caller. + * @param group bookmark group address + * @param caller caller that modified the bookmarks + * @see KBookmarkManager::changed + */ + void slotBookmarksChanged(const QString &group, const QString &caller); + void fillBookmarkBar(BookmarkToolBar *toolBar); + +private slots: + void slotAddBookmark(); + void slotPanelChanged(); + +private: + QList find(QList list, const KBookmark &bookmark, QString text); + + QString titleForBookmarkUrl(const KBookmark &bookmark, const QString &url); + KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url); + + KBookmarkManager *m_manager; + BookmarkOwner *m_owner; + KActionCollection *m_actionCollection; + QList m_bookmarkToolBars; + QList m_bookmarkPanels; + + KActionMenu *_bookmarkActionMenu; +}; + + +#endif 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 -* Copyright (C) 2009 by Paweł Prażak -* Copyright (C) 2009-2010 by Lionel Chauvin -* 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 "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 - -// Qt Includes -#include - - -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(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 BookmarkProvider::find(QString text) -{ - QList 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 BookmarkProvider::find(QList 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; -} diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h deleted file mode 100644 index 0c2b9ee2..00000000 --- a/src/bookmarks/bookmarksmanager.h +++ /dev/null @@ -1,158 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2008-2010 by Andrea Diamantini -* Copyright (C) 2009 by Paweł Prażak -* Copyright (C) 2009-2010 by Lionel Chauvin -* 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 . -* -* ============================================================ */ - - -#ifndef BOOKMARKS_H -#define BOOKMARKS_H - - -// Rekonq Includes -#include "rekonq_defines.h" - -// KDE Includes -#include -#include - -// Forward Declarations -class BookmarksPanel; -class BookmarkToolBar; -class BookmarkOwner; - - -/** - * This class represent the interface to rekonq bookmarks system. - * All rekonq needs (Bookmarks Menu, Bookmarks Toolbar) is provided - * from this class. - * So it implements code to have each one - * - * - */ -class BookmarkProvider : public QObject -{ - Q_OBJECT - -public: - /** - * @short Class constructor. - * Connect BookmarksProvider with bookmarks source - * (actually konqueror's bookmarks) - * @param parent The MainWindow to provide bookmarks objects - * - */ - BookmarkProvider(QObject* parent = 0); - ~BookmarkProvider(); - - /** - * @short Get the Bookmarks Menu Action - * @param the parent widget - * @return the Bookmarks Menu - */ - KActionMenu *bookmarkActionMenu(QWidget *parent); - - /** - * @short set the Bookmarks Toolbar Action - */ - void registerBookmarkBar(BookmarkToolBar *); - - void removeToolBar(BookmarkToolBar *); - - /** - * @short Get action by name - * This method returns poiner bookmark action of given name. - * @pre m_actionCollection != NULL - * @param name Name of action you want to get - * @return It returns actions if one exists or empty object - */ - QAction *actionByName(const QString &name); - - /** - * returns Bookmark Manager root group - * - * @return the root bookmark group - */ - KBookmarkGroup rootGroup(); - - inline KBookmarkManager *bookmarkManager() { return m_manager; } - - inline BookmarkOwner *bookmarkOwner() { return m_owner; } - - QList find(QString text); - - void registerBookmarkPanel(BookmarksPanel *panel); - void removeBookmarkPanel(BookmarksPanel *panel); - - KBookmark bookmarkForUrl(const KUrl &url); - -signals: - /** - * @short This signal is emitted when an url has to be loaded - * - * @param url the URL to load - */ - void openUrl(const KUrl &, const Rekonq::OpenType &); - - -public slots: - /** - * @short Opens the context menu on given position - * @param point Point on which you want to open this menu - */ - void contextMenu(const QPoint &point); - - /** - * @short Waits for signal that the group with the address has been modified by the caller. - * Waits for signal that the group (or any of its children) with the address - * @p groupAddress (e.g. "/4/5") has been modified by the caller @p caller. - * @param group bookmark group address - * @param caller caller that modified the bookmarks - * @see KBookmarkManager::changed - */ - void slotBookmarksChanged(const QString &group, const QString &caller); - void fillBookmarkBar(BookmarkToolBar *toolBar); - -private slots: - void slotAddBookmark(); - void slotPanelChanged(); - -private: - QList find(QList list, const KBookmark &bookmark, QString text); - - QString titleForBookmarkUrl(const KBookmark &bookmark, const QString &url); - KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url); - - KBookmarkManager *m_manager; - BookmarkOwner *m_owner; - KActionCollection *m_actionCollection; - QList m_bookmarkToolBars; - QList m_bookmarkPanels; - - KActionMenu *_bookmarkActionMenu; -}; - - -#endif diff --git a/src/bookmarks/bookmarkspanel.cpp b/src/bookmarks/bookmarkspanel.cpp index 1b561515..08f99155 100644 --- a/src/bookmarks/bookmarkspanel.cpp +++ b/src/bookmarks/bookmarkspanel.cpp @@ -30,7 +30,7 @@ // Local Includes #include "application.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "bookmarkstreemodel.h" #include "bookmarksproxy.h" #include "bookmarkscontextmenu.h" diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index bce2bd1e..64e9c3b9 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -33,7 +33,7 @@ #include "bookmarkscontextmenu.h" #include "mainwindow.h" #include "application.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "bookmarkowner.h" // Qt Includes diff --git a/src/bookmarks/bookmarkstreemodel.cpp b/src/bookmarks/bookmarkstreemodel.cpp index 7f0bf66f..14b9c734 100644 --- a/src/bookmarks/bookmarkstreemodel.cpp +++ b/src/bookmarks/bookmarkstreemodel.cpp @@ -30,7 +30,7 @@ // Local Includes #include "application.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" // Qt Includes #include -- cgit v1.2.1