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/CMakeLists.txt | 6 +- src/application.cpp | 46 ++--- 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 +- src/mainwindow.cpp | 2 +- src/mainwindow.h | 10 +- src/newtabpage.cpp | 2 +- src/urlbar/bookmarkwidget.cpp | 2 +- src/urlbar/urlbar.cpp | 24 +-- src/urlbar/urlresolver.cpp | 64 +++---- src/webtab.cpp | 8 +- src/webview.cpp | 16 +- 18 files changed, 584 insertions(+), 584 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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cc381c94..03c1e062 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,7 +43,7 @@ SET( rekonq_KDEINIT_SRCS settings/webkitwidget.cpp settings/networkwidget.cpp #---------------------------------------- - bookmarks/bookmarksmanager.cpp + bookmarks/bookmarkprovider.cpp bookmarks/bookmarkspanel.cpp bookmarks/bookmarkstreemodel.cpp bookmarks/bookmarksproxy.cpp @@ -118,9 +118,9 @@ KDE4_ADD_KDEINIT_EXECUTABLE( rekonq ${rekonq_KDEINIT_SRCS} main.cpp ) ### --------------- TARGETTING LINK LIBRARIES... TARGET_LINK_LIBRARIES ( kdeinit_rekonq - ${QT_LIBRARIES} + ${QT_LIBRARIES} ${QT_QTSCRIPT_LIBRARY} - ${QT_QTWEBKIT_LIBRARY} + ${QT_QTWEBKIT_LIBRARY} ${KDE4_KDEWEBKIT_LIBS} ${KDE4_KUTILS_LIBS} ${KDE4_KDEUI_LIBS} diff --git a/src/application.cpp b/src/application.cpp index 065c0ef2..db71c602 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -36,7 +36,7 @@ // Local Includes #include "mainwindow.h" #include "historymanager.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "mainview.h" #include "webtab.h" #include "urlbar.h" @@ -100,7 +100,7 @@ Application::~Application() delete s_adblockManager.data(); s_adblockManager.clear(); - + delete s_opensearchManager.data(); s_opensearchManager.clear(); } @@ -112,7 +112,7 @@ int Application::newInstance() KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); // not that easy, indeed - // We have to consider 3 variables here: + // We have to consider 3 variables here: // 1) Is first load? // 2) Are there arguments? // 3) Is rekonq recovering from crash? @@ -120,13 +120,13 @@ int Application::newInstance() bool isFirstLoad = m_mainWindows.isEmpty(); bool areThereArguments = (args->count() > 0); bool isRekonqCrashed = (ReKonfig::recoverOnCrash() == 1); - + kDebug() << "is first load? " << isFirstLoad; kDebug() << "are there arguments? " << areThereArguments; kDebug() << "is rekonq crashed? " << isRekonqCrashed; - + int exitValue = 1 * isFirstLoad + 2 * areThereArguments + 4 * isRekonqCrashed; - + if(isRekonqCrashed) { if( isFirstLoad && sessionManager()->restoreSession() ) @@ -144,7 +144,7 @@ int Application::newInstance() loadUrl( KUrl("about:blank"), Rekonq::NewFocusedTab); } } - + if(areThereArguments) { KUrl::List urlList; @@ -156,7 +156,7 @@ int Application::newInstance() else urlList += KUrl( args->arg(i) ); // "rekonq kde.org" || "rekonq kde:kdialog" case } - + if (isFirstLoad) { // No windows in the current desktop? No windows at all? @@ -183,7 +183,7 @@ int Application::newInstance() Q_FOREACH(const KUrl &u, urlList) loadUrl(u, Rekonq::NewFocusedTab); } - } + } } else { @@ -223,16 +223,16 @@ int Application::newInstance() break; } - } + } } - - + + if(isFirstLoad) { // give me some time to do the other things.. QTimer::singleShot(100, this, SLOT(postLaunch())); } - + return exitValue; } @@ -408,7 +408,7 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) Q_ASSERT( tabIndex != -1 ); UrlBar *barForTab = qobject_cast(w->mainView()->widgetBar()->widget(tabIndex)); barForTab->setQUrl(url); - + WebView *view = tab->view(); if (view) @@ -486,16 +486,16 @@ void Application::updateConfiguration() { MainView *mv = w.data()->mainView(); mv->updateTabBar(); - + if (b) mv->tabBar()->setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); else mv->tabBar()->setSelectionBehaviorOnRemove(QTabBar::SelectRightTab); } - QWebSettings *defaultSettings = QWebSettings::globalSettings(); - - // =========== Fonts ============== + QWebSettings *defaultSettings = QWebSettings::globalSettings(); + + // =========== Fonts ============== defaultSettings->setFontFamily(QWebSettings::StandardFont, ReKonfig::standardFontFamily() ); defaultSettings->setFontFamily(QWebSettings::FixedFont, ReKonfig::fixedFontFamily() ); defaultSettings->setFontFamily(QWebSettings::SerifFont, ReKonfig::serifFontFamily() ); @@ -503,15 +503,15 @@ void Application::updateConfiguration() defaultSettings->setFontFamily(QWebSettings::CursiveFont, ReKonfig::cursiveFontFamily()); defaultSettings->setFontFamily(QWebSettings::FantasyFont, ReKonfig::fantasyFontFamily()); - // compute font size + // compute font size // (I have to admit I know nothing about these DPI questions..: copied from kwebkitpart, as someone suggested) // font size in pixels = font size in inches × screen dpi - int defaultFontSize = ReKonfig::defaultFontSize(); + int defaultFontSize = ReKonfig::defaultFontSize(); int minimumFontSize = ReKonfig::minFontSize(); - + int logDpiY = mainWindow()->currentTab()->view()->logicalDpiY(); kDebug() << "Logical Dot per Inch Y: " << logDpiY; - + float toPix = (logDpiY < 96.0) ? 96.0/72.0 : logDpiY/72.0 ; @@ -519,7 +519,7 @@ void Application::updateConfiguration() defaultSettings->setFontSize(QWebSettings::DefaultFontSize, qRound(defaultFontSize * toPix) ); defaultSettings->setFontSize(QWebSettings::MinimumFontSize, qRound(minimumFontSize * toPix) ); - + // ================ WebKit ============================ defaultSettings->setAttribute(QWebSettings::AutoLoadImages, ReKonfig::autoLoadImages()); defaultSettings->setAttribute(QWebSettings::DnsPrefetchEnabled, ReKonfig::dnsPrefetch()); 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 diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f0cb5e61..262714e1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -37,7 +37,7 @@ // Local Includes #include "settingsdialog.h" #include "historymanager.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "bookmarkstoolbar.h" #include "webtab.h" #include "mainview.h" diff --git a/src/mainwindow.h b/src/mainwindow.h index 6ae99b5e..eeb58171 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -35,8 +35,8 @@ #include "rekonq_defines.h" // Local Includes -#include "bookmarksmanager.h" - +#include "bookmarkprovider.h" + // KDE Includes #include #include @@ -75,7 +75,7 @@ public: inline MainView *mainView() const { return m_view; } inline QAction *actionByName(const QString &name) { return actionCollection()->action(name); } - + WebTab *currentTab() const; virtual QSize sizeHint() const; void setWidgetsVisible(bool makeFullScreen); @@ -123,7 +123,7 @@ protected: void keyPressEvent(QKeyEvent *event); bool queryClose(); - + private slots: void postLaunch(); void browserLoading(bool); @@ -167,7 +167,7 @@ private slots: void enableNetworkAnalysis(bool); void initBookmarkBar(); - + private: MainView *m_view; FindBar *m_findBar; diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp index 78496bc2..0f2a0bc7 100644 --- a/src/newtabpage.cpp +++ b/src/newtabpage.cpp @@ -34,7 +34,7 @@ // Local Includes #include "historymodels.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "application.h" #include "mainwindow.h" #include "mainview.h" diff --git a/src/urlbar/bookmarkwidget.cpp b/src/urlbar/bookmarkwidget.cpp index bcf85e1f..0e05e776 100644 --- a/src/urlbar/bookmarkwidget.cpp +++ b/src/urlbar/bookmarkwidget.cpp @@ -30,7 +30,7 @@ // Local includes #include "application.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "bookmarkowner.h" // KDE Includes diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index e64959bd..6a5599cd 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -41,7 +41,7 @@ #include "webpage.h" #include "webview.h" #include "completionwidget.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "bookmarkwidget.h" // KDE Includes @@ -105,7 +105,7 @@ UrlBar::UrlBar(QWidget *parent) _tab = qobject_cast(parent); connect(_tab, SIGNAL(loadProgressing()), this, SLOT(update())); - + connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &))); connect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); connect(_tab->view(), SIGNAL(loadStarted()), this, SLOT(clearRightIcons())); @@ -114,13 +114,13 @@ UrlBar::UrlBar(QWidget *parent) _icon->setIcon(KIcon("bookmarks").pixmap(32,32, QIcon::Disabled)); connect(Application::bookmarkProvider()->bookmarkManager(), SIGNAL(changed(const QString &, const QString &)), this, SLOT(onBookmarksChanged())); connect(_icon, SIGNAL(clicked(const QPoint &)), this, SLOT(showBookmarkInfo(const QPoint &))); - + // load typed urls connect(this, SIGNAL(returnPressed(const QString &)), this, SLOT(loadTyped(const QString &))); _suggestionTimer->setSingleShot(true); connect(_suggestionTimer, SIGNAL(timeout()), this, SLOT(suggest())); - + activateSuggestions(true); } @@ -163,10 +163,10 @@ void UrlBar::activated(const KUrl& url, Rekonq::OpenType type) void UrlBar::paintEvent(QPaintEvent *event) -{ +{ QColor backgroundColor; QColor foregroundColor; - + if (_privateMode) { backgroundColor = QColor(220, 220, 220); // light gray @@ -199,7 +199,7 @@ void UrlBar::paintEvent(QPaintEvent *event) int r = (highlight.red()+2*backgroundColor.red())/3; int g = (highlight.green()+2*backgroundColor.green())/3; int b = (highlight.blue()+2*backgroundColor.blue())/3; - + QColor loadingColor(r, g, b); if (abs(loadingColor.lightness() - backgroundColor.lightness()) < 20) //eg. Gaia color scheme @@ -320,7 +320,7 @@ void UrlBar::loadFinished() _icon->setIcon(KIcon("bookmarks")); _icon->setToolTip(i18n("Edit this bookmark")); } - + // show KGet downloads?? if (!KStandardDirs::findExe("kget").isNull() && ReKonfig::kgetList()) { @@ -343,7 +343,7 @@ void UrlBar::loadFinished() } // we need to update urlbar after the right icon settings - // removing this code (where setStyleSheet automatically calls update) needs adding again + // removing this code (where setStyleSheet automatically calls update) needs adding again // an update call kDebug() << "resetting stylesheet"; int rightIconWidth = 25 * (_rightIconsList.count()); @@ -355,7 +355,7 @@ void UrlBar::showBookmarkInfo(const QPoint &pos) { if( _tab->url().scheme() == QL1S("about") ) return; - + KBookmark bookmark = Application::bookmarkProvider()->bookmarkForUrl(_tab->url()); IconButton *bt = qobject_cast(this->sender()); @@ -367,7 +367,7 @@ void UrlBar::showBookmarkInfo(const QPoint &pos) bookmark = Application::bookmarkProvider()->rootGroup().addBookmark(_tab->view()->title(), _tab->url()); Application::bookmarkProvider()->bookmarkManager()->emitChanged(); } - + BookmarkWidget *widget = new BookmarkWidget(bookmark, window()); widget->showAt(pos); } @@ -480,7 +480,7 @@ void UrlBar::detectTypedString(const QString &typed) QTimer::singleShot(0, this, SLOT(suggest())); return; } - + if(_suggestionTimer->isActive()) _suggestionTimer->stop(); _suggestionTimer->start(50); diff --git a/src/urlbar/urlresolver.cpp b/src/urlbar/urlresolver.cpp index 0505dad1..db1276dc 100644 --- a/src/urlbar/urlresolver.cpp +++ b/src/urlbar/urlresolver.cpp @@ -30,7 +30,7 @@ // Local Includes #include "application.h" #include "historymanager.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "searchengine.h" // KDE Includes @@ -47,7 +47,7 @@ #define MAX_ELEMENTS 10 #define MIN_SUGGESTIONS 3 -// NOTE +// NOTE // default kurifilter plugin list (at least in my box): // 1. "kshorturifilter" // 2. "kurisearchfilter" @@ -69,18 +69,18 @@ UrlResolver::UrlResolver(const QString &typedUrl) if ( _browseRegexp.isEmpty() ) { kDebug() << "browse regexp empty. Setting value.."; - + QString protocol = "^(http://|https://|file://|ftp://|man:|info:|apt:)"; - + QString localhost = "^localhost"; - + QString local = "^/"; - + QString ipv4 = "^0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])"\ "\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])"; - + QString ipv6 = "^([0-9a-fA-F]{4}|0)(\\:([0-9a-fA-F]{4}|0)){7}"; - + QString address = "[\\d\\w-.]+\\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|"\ "c[acdfghiklmnoruvxyz]|d[ejkmnoz]|e[ceghrst]|f[ijkmnor]|g[abdefghilmnpqrstuwy]|"\ "h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|"\ @@ -88,10 +88,10 @@ UrlResolver::UrlResolver(const QString &typedUrl) "s[abcdeghijklmnortuvyz]|t[cdfghjkmnoprtvwz]|u[augkmsyz]|v[aceginu]|w[fs]|"\ "y[etu]|z[amw]|aero|arpa|biz|com|coop|edu|info|int|gov|mil|museum|name|net|org|"\ "pro)"; - + _browseRegexp = QRegExp('(' + protocol + ")|(" + localhost + ")|(" + local + ")|(" + address + ")|(" + ipv6 + ")|(" + ipv4 +')'); } - + if ( _searchEnginesRegexp.isEmpty() ) { QString reg; @@ -99,9 +99,9 @@ UrlResolver::UrlResolver(const QString &typedUrl) Q_FOREACH(KService::Ptr s, SearchEngine::favorites()) { engineUrl = QRegExp::escape(s->property("Query").toString()).replace("\\\\\\{@\\}","[\\d\\w-.]+"); - if (reg.isEmpty()) + if (reg.isEmpty()) reg = '(' + engineUrl + ')'; - else + else reg = reg + "|(" + engineUrl + ')'; } _searchEnginesRegexp = QRegExp(reg); @@ -126,10 +126,10 @@ UrlSearchList UrlResolver::orderedSearchItems() list << hist; UrlSearchItem down(UrlSearchItem::Browse, QString("about:downloads"), QL1S("downloads") ); list << down; - + return list; } - + _computedListsCount = 0; //compute lists @@ -144,7 +144,7 @@ UrlSearchList UrlResolver::orderedSearchItems() while (_computedListsCount < 5 && time.msec() < 1000) { - Application::instance()->processEvents(QEventLoop::WaitForMoreEvents | QEventLoop::ExcludeUserInputEvents); + Application::instance()->processEvents(QEventLoop::WaitForMoreEvents | QEventLoop::ExcludeUserInputEvents); } return orderLists(); @@ -153,7 +153,7 @@ UrlSearchList UrlResolver::orderedSearchItems() UrlSearchList UrlResolver::orderLists() { - // NOTE + // NOTE // the logic here is : "we wanna suggest (at least) 10 elements" // so we have (more or less) 2 from first results (1 from QUrl Resolutions, 1 from // search engines). @@ -162,9 +162,9 @@ UrlSearchList UrlResolver::orderLists() QTime myTime; myTime.start(); - + UrlSearchList list; - + if(_browseRegexp.indexIn(_typedString) != -1) { list << _qurlFromUserInput; @@ -179,7 +179,7 @@ UrlSearchList UrlResolver::orderLists() //find the history items that match the typed string UrlSearchItem privileged = privilegedItem(&_history); int historyCount = _history.count(); - + //find the bookmarks items that match the typed string if (privileged.type == UrlSearchItem::Undefined) { @@ -190,14 +190,14 @@ UrlSearchList UrlResolver::orderLists() privileged.type |= UrlSearchItem::Bookmark; } int bookmarksCount = _bookmarks.count(); - + if (privileged.type != UrlSearchItem::Undefined) { list.prepend(privileged); } int availableEntries = MAX_ELEMENTS - list.count() - MIN_SUGGESTIONS; - + UrlSearchList common; int commonCount = 0; @@ -221,7 +221,7 @@ UrlSearchList UrlResolver::orderLists() } } } - + commonCount = common.count(); if(commonCount >= availableEntries) { @@ -265,10 +265,10 @@ UrlSearchList UrlResolver::orderLists() common << urlSearchItem; } } - + availableEntries -= common.count(); } - + historyCount = _history.count(); bookmarksCount = _bookmarks.count(); commonCount = common.count(); @@ -278,7 +278,7 @@ UrlSearchList UrlResolver::orderLists() { int historyEntries = ((int) (availableEntries / 2)) + availableEntries % 2; int bookmarksEntries = availableEntries - historyEntries; - + if (historyCount >= historyEntries && bookmarksCount >= bookmarksEntries) { _history = _history.mid(0, historyEntries); @@ -310,7 +310,7 @@ UrlSearchList UrlResolver::orderLists() list = list + _history + common + _bookmarks + _suggestions; qWarning() << "orderedSearchItems leave: " << " elapsed: " << myTime.elapsed(); - + return list; } @@ -382,9 +382,9 @@ void UrlResolver::computeSuggestions() { if (Application::opensearchManager()->isSuggestionAvailable()) { - connect(Application::opensearchManager(), - SIGNAL(suggestionReceived(const QStringList &)), - this, + connect(Application::opensearchManager(), + SIGNAL(suggestionReceived(const QStringList &)), + this, SLOT(suggestionsReceived(const QStringList &))); Application::opensearchManager()->requestSuggestion(_typedString); @@ -398,7 +398,7 @@ void UrlResolver::computeSuggestions() void UrlResolver::suggestionsReceived(const QStringList &suggestion) { - + foreach (QString s, suggestion) { UrlSearchItem gItem(UrlSearchItem::Suggestion, s, s); @@ -412,10 +412,10 @@ void UrlResolver::suggestionsReceived(const QStringList &suggestion) UrlSearchItem UrlResolver::privilegedItem(UrlSearchList* list) { UrlSearchItem item; - QString dot = QString(QL1C('.')); + QString dot = QString(QL1C('.')); QString test1 = QString(QL1C('/')) + _typedString + dot; QString test2 = dot + _typedString + dot; - + for(int i = 0; icount(); i++) { item = list->at(i); diff --git a/src/webtab.cpp b/src/webtab.cpp index 9e168d36..0b58d7c5 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -36,7 +36,7 @@ #include "application.h" #include "mainwindow.h" #include "mainview.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "walletbar.h" #include "previewselectorbar.h" #include "rsswidget.h" @@ -66,7 +66,7 @@ WebTab::WebTab(QWidget *parent) , m_progress(0) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - + QVBoxLayout *l = new QVBoxLayout(this); l->setMargin(0); l->setSpacing(0); @@ -158,7 +158,7 @@ void WebTab::createPreviewSelectorBar(int index) { PreviewSelectorBar *bar = new PreviewSelectorBar(index, this); qobject_cast(layout())->insertWidget(0, bar); - + connect(page(), SIGNAL(loadStarted()), bar, SLOT(loadProgress())); connect(page(), SIGNAL(loadProgress(int)), bar, SLOT(loadProgress())); connect(page(), SIGNAL(loadFinished(bool)), bar, SLOT(loadFinished())); @@ -183,7 +183,7 @@ void WebTab::showRSSInfo(QPoint pos) col.append(page()->mainFrame()->findAllElements("link[type=\"application/atom+xml\"]")); QMap map; - + foreach(const QWebElement &el, col) { QString urlString; diff --git a/src/webview.cpp b/src/webview.cpp index c15478c2..1ffb2f1e 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -36,7 +36,7 @@ #include "mainwindow.h" #include "mainview.h" #include "webpage.h" -#include "bookmarksmanager.h" +#include "bookmarkprovider.h" #include "searchengine.h" #include "websnap.h" @@ -79,8 +79,8 @@ WebView::WebView(QWidget* parent) { WebPage *page = new WebPage(this); setPage(page); - - // // NOTE This is a lot hackish. We copied it from Arora, but using a "Windows Style" + + // // NOTE This is a lot hackish. We copied it from Arora, but using a "Windows Style" // // seems really a pity to me. The problem is that using a KStyle everything seems "broken" // // (at least with dark colors). So I think the code should be somthing like: // KStyle s; @@ -93,7 +93,7 @@ WebView::WebView(QWidget* parent) p = s.standardPalette(); setPalette(p); } - + // download system connect(this, SIGNAL(linkShiftClicked(const KUrl &)), page, SLOT(downloadUrl(const KUrl &))); connect(page, SIGNAL(downloadRequested(const QNetworkRequest &)), page, SLOT(downloadRequest(const QNetworkRequest &))); @@ -126,7 +126,7 @@ WebView::~WebView() disconnect(); WebPage* p = page(); - + QPixmap preview = WebSnap::renderClosingPagePreview(*p); QString path = WebSnap::imagePathFromUrl(p->mainFrame()->url().toString()); QFile::remove(path); @@ -168,7 +168,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) menu.addAction(pageAction(KWebPage::DownloadLinkToDisk)); menu.addAction(pageAction(KWebPage::CopyLinkToClipboard)); - menu.addSeparator(); + menu.addSeparator(); } // is content editable && selected? Add CUT @@ -215,7 +215,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) } menu.addSeparator(); - + menu.addAction(inspectAction); // TODO Add translate, show translation } @@ -234,7 +234,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) menu.addAction(pageAction(KWebPage::DownloadImageToDisk)); menu.addAction(pageAction(KWebPage::CopyImageToClipboard)); menu.addSeparator(); - + menu.addAction(inspectAction); } -- cgit v1.2.1 From dd413ce2d00d4f484402384529161194605f7e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Fri, 20 Aug 2010 16:12:39 +0200 Subject: Removed unused includes in src/bookmarks/bookmarkprovider.h --- src/bookmarks/bookmarkowner.cpp | 2 ++ src/bookmarks/bookmarkprovider.cpp | 14 ++++----- src/bookmarks/bookmarkprovider.h | 56 +++++++++++++++++++----------------- src/bookmarks/bookmarkstreemodel.cpp | 23 ++++++++------- src/newtabpage.cpp | 2 ++ src/urlbar/urlbar.cpp | 1 + src/urlbar/urlresolver.cpp | 1 + src/zoombar.cpp | 3 +- 8 files changed, 58 insertions(+), 44 deletions(-) diff --git a/src/bookmarks/bookmarkowner.cpp b/src/bookmarks/bookmarkowner.cpp index 7861f0ac..862a7de4 100644 --- a/src/bookmarks/bookmarkowner.cpp +++ b/src/bookmarks/bookmarkowner.cpp @@ -38,7 +38,9 @@ #include "mainview.h" // KDE Includes +#include #include +#include #include // Qt Includes diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp index 03a3cc70..133cd4b8 100644 --- a/src/bookmarks/bookmarkprovider.cpp +++ b/src/bookmarks/bookmarkprovider.cpp @@ -50,7 +50,7 @@ BookmarkProvider::BookmarkProvider(QObject *parent) , m_manager(0) , m_owner(0) , m_actionCollection(new KActionCollection(this)) - , _bookmarkActionMenu(0) + , m_bookmarkActionMenu(0) { kDebug() << "Loading Bookmarks Manager..."; @@ -164,13 +164,13 @@ 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")); + m_bookmarkActionMenu = new KActionMenu(parent); + m_bookmarkActionMenu->setMenu(menu); + m_bookmarkActionMenu->setText(i18n("&Bookmarks")); new BookmarkMenu(m_manager, m_owner, menu, m_actionCollection); kDebug() << "new Bookmarks Menu...DONE"; - return _bookmarkActionMenu; + return m_bookmarkActionMenu; } @@ -215,7 +215,7 @@ KBookmarkGroup BookmarkProvider::rootGroup() } -QList BookmarkProvider::find(QString text) +QList BookmarkProvider::find(const QString &text) { QList list; KBookmarkGroup bookGroup = Application::bookmarkProvider()->rootGroup(); @@ -235,7 +235,7 @@ QList BookmarkProvider::find(QString text) } -QList BookmarkProvider::find(QList list, const KBookmark &bookmark, QString text) +QList BookmarkProvider::find(QList list, const KBookmark &bookmark, const QString &text) { if (bookmark.isGroup()) { diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h index 0c2b9ee2..2630910c 100644 --- a/src/bookmarks/bookmarkprovider.h +++ b/src/bookmarks/bookmarkprovider.h @@ -27,30 +27,38 @@ * ============================================================ */ -#ifndef BOOKMARKS_H -#define BOOKMARKS_H +#ifndef BOOKMARKPROVIDER_H +#define BOOKMARKPROVIDER_H // Rekonq Includes #include "rekonq_defines.h" -// KDE Includes -#include -#include +// Qt Includes +#include // Forward Declarations class BookmarksPanel; class BookmarkToolBar; class BookmarkOwner; +class KAction; +class KActionCollection; +class KActionMenu; +class KBookmark; +class KBookmarkGroup; +class KBookmarkManager; +class KToolBar; +class KUrl; + +class QAction; +class QPoint; /** * 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 - * - * + * So it implements code to have each one. */ class BookmarkProvider : public QObject { @@ -60,11 +68,10 @@ public: /** * @short Class constructor. * Connect BookmarksProvider with bookmarks source - * (actually konqueror's bookmarks) - * @param parent The MainWindow to provide bookmarks objects - * + * (actually konqueror's bookmarks). + * @param parent The MainWindow to provide bookmarks objects. */ - BookmarkProvider(QObject* parent = 0); + BookmarkProvider(QObject *parent = 0); ~BookmarkProvider(); /** @@ -72,14 +79,13 @@ public: * @param the parent widget * @return the Bookmarks Menu */ - KActionMenu *bookmarkActionMenu(QWidget *parent); + KActionMenu* bookmarkActionMenu(QWidget *parent); /** * @short set the Bookmarks Toolbar Action */ - void registerBookmarkBar(BookmarkToolBar *); - - void removeToolBar(BookmarkToolBar *); + void registerBookmarkBar(BookmarkToolBar *toolbar); + void removeToolBar(BookmarkToolBar *toolbar); /** * @short Get action by name @@ -88,7 +94,7 @@ public: * @param name Name of action you want to get * @return It returns actions if one exists or empty object */ - QAction *actionByName(const QString &name); + QAction* actionByName(const QString &name); /** * returns Bookmark Manager root group @@ -97,11 +103,11 @@ public: */ KBookmarkGroup rootGroup(); - inline KBookmarkManager *bookmarkManager() { return m_manager; } + inline KBookmarkManager* bookmarkManager() { return m_manager; } - inline BookmarkOwner *bookmarkOwner() { return m_owner; } + inline BookmarkOwner* bookmarkOwner() { return m_owner; } - QList find(QString text); + QList find(const QString &text); void registerBookmarkPanel(BookmarksPanel *panel); void removeBookmarkPanel(BookmarksPanel *panel); @@ -111,8 +117,6 @@ public: 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 &); @@ -140,7 +144,7 @@ private slots: void slotPanelChanged(); private: - QList find(QList list, const KBookmark &bookmark, QString text); + QList find(QList list, const KBookmark &bookmark, const QString &text); QString titleForBookmarkUrl(const KBookmark &bookmark, const QString &url); KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url); @@ -148,11 +152,11 @@ private: KBookmarkManager *m_manager; BookmarkOwner *m_owner; KActionCollection *m_actionCollection; - QList m_bookmarkToolBars; + QList m_bookmarkToolBars; QList m_bookmarkPanels; - KActionMenu *_bookmarkActionMenu; + KActionMenu *m_bookmarkActionMenu; }; -#endif +#endif // BOOKMARKPROVIDER_H diff --git a/src/bookmarks/bookmarkstreemodel.cpp b/src/bookmarks/bookmarkstreemodel.cpp index 14b9c734..ee19daf1 100644 --- a/src/bookmarks/bookmarkstreemodel.cpp +++ b/src/bookmarks/bookmarkstreemodel.cpp @@ -32,6 +32,10 @@ #include "application.h" #include "bookmarkprovider.h" +// KDE Includes +#include +#include + // Qt Includes #include @@ -56,28 +60,27 @@ QVariant BtmItem::data(int role) const if (role == Qt::DisplayRole) return m_kbm.text(); + if (role == Qt::DecorationRole) return KIcon(m_kbm.icon()); + if (role == Qt::UserRole) return m_kbm.url(); + if (role == Qt::ToolTipRole) { - QString tooltip = ""; - - if (!m_kbm.fullText().isEmpty()) - { - tooltip += m_kbm.fullText(); - } + QString tooltip = m_kbm.fullText(); if (m_kbm.isGroup()) - { tooltip += i18ncp("%1=Number of items in bookmark folder", " (1 item)", " (%1 items)", childCount()); - } - if (!m_kbm.url().url().isEmpty()) + + QString url = m_kbm.url().url(); + if (!url.isEmpty()) { if (!tooltip.isEmpty()) tooltip += '\n'; - tooltip += m_kbm.url().url(); + tooltip += url; } + return tooltip; } diff --git a/src/newtabpage.cpp b/src/newtabpage.cpp index 0f2a0bc7..44b76e11 100644 --- a/src/newtabpage.cpp +++ b/src/newtabpage.cpp @@ -47,9 +47,11 @@ #include #include #include +#include // Qt Includes #include +#include NewTabPage::NewTabPage(QWebFrame *frame) diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index 6a5599cd..c272d819 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -45,6 +45,7 @@ #include "bookmarkwidget.h" // KDE Includes +#include #include #include diff --git a/src/urlbar/urlresolver.cpp b/src/urlbar/urlresolver.cpp index db1276dc..d60dc563 100644 --- a/src/urlbar/urlresolver.cpp +++ b/src/urlbar/urlresolver.cpp @@ -34,6 +34,7 @@ #include "searchengine.h" // KDE Includes +#include #include #include #include diff --git a/src/zoombar.cpp b/src/zoombar.cpp index b07aee03..041e6118 100644 --- a/src/zoombar.cpp +++ b/src/zoombar.cpp @@ -36,6 +36,7 @@ #include #include #include +#include // Qt Includes #include @@ -57,7 +58,7 @@ ZoomBar::ZoomBar(QWidget *parent) QToolButton *hideButton = new QToolButton(this); hideButton->setAutoRaise(true); - hideButton->setIcon(KIcon("dialog-close")); + hideButton->setIcon(KIcon("dialog-close")); connect(hideButton, SIGNAL(clicked()), this, SLOT(hide())); layout->addWidget(hideButton); -- cgit v1.2.1 From 370db961cdfe61687d8cf11c64f45db530e49a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Fri, 20 Aug 2010 17:37:56 +0200 Subject: Improved the code to load the bookmarks file using KStandardDirs and other minor changes to BookmarkProvider. --- src/bookmarks/bookmarkprovider.cpp | 62 ++++++++++++++++---------------------- src/bookmarks/bookmarkprovider.h | 2 -- 2 files changed, 26 insertions(+), 38 deletions(-) diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp index 133cd4b8..0cd0d3eb 100644 --- a/src/bookmarks/bookmarkprovider.cpp +++ b/src/bookmarks/bookmarkprovider.cpp @@ -32,13 +32,13 @@ // Local Includes #include "application.h" -#include "mainwindow.h" #include "bookmarkspanel.h" #include "bookmarkscontextmenu.h" #include "bookmarkstoolbar.h" #include "bookmarkowner.h" // KDE Includes +#include #include // Qt Includes @@ -50,28 +50,19 @@ BookmarkProvider::BookmarkProvider(QObject *parent) , m_manager(0) , m_owner(0) , m_actionCollection(new KActionCollection(this)) - , m_bookmarkActionMenu(0) { kDebug() << "Loading Bookmarks Manager..."; - KUrl bookfile = KUrl("~/.kde/share/apps/konqueror/bookmarks.xml"); // share konqueror bookmarks + QString bookmarkFile = KStandardDirs::locate("data", "konqueror/bookmarks.xml"); // share konqueror's bookmarks - if (!QFile::exists(bookfile.path())) + if (!QFile::exists(bookmarkFile)) { - 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); - } + bookmarkFile = KStandardDirs::locateLocal("appdata", "bookmarks.xml", true); + QFile bkms( KStandardDirs::locate("appdata" , "defaultbookmarks.xbel") ); + bkms.copy(bookmarkFile); } - m_manager = KBookmarkManager::managerForFile(bookfile.path(), "rekonq"); + m_manager = KBookmarkManager::managerForFile(bookmarkFile, "rekonq"); connect(m_manager, SIGNAL(changed(const QString &, const QString &)), this, SLOT(slotBookmarksChanged(const QString &, const QString &))); @@ -89,8 +80,6 @@ BookmarkProvider::BookmarkProvider(QObject *parent) BookmarkProvider::~BookmarkProvider() { - delete m_actionCollection; - delete m_owner; delete m_manager; } @@ -116,11 +105,8 @@ void BookmarkProvider::removeToolBar(BookmarkToolBar *toolbar) } -void BookmarkProvider::slotBookmarksChanged(const QString &group, const QString &caller) +void BookmarkProvider::slotBookmarksChanged(const QString& /*group*/, const QString& /*caller*/) { - Q_UNUSED(group) - Q_UNUSED(caller) - foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars) { if (bookmarkToolBar) @@ -132,7 +118,7 @@ void BookmarkProvider::slotBookmarksChanged(const QString &group, const QString } -QAction *BookmarkProvider::actionByName(const QString &name) +QAction* BookmarkProvider::actionByName(const QString &name) { QAction *action = m_actionCollection->action(name); if (action) @@ -150,7 +136,7 @@ void BookmarkProvider::contextMenu(const QPoint &point) if (!bookmarkToolBar) return; - KBookmarkActionInterface* action = dynamic_cast(bookmarkToolBar->actionAt(point)); + KBookmarkActionInterface *action = dynamic_cast(bookmarkToolBar->actionAt(point)); if (!action) return; @@ -161,16 +147,17 @@ void BookmarkProvider::contextMenu(const QPoint &point) KActionMenu* BookmarkProvider::bookmarkActionMenu(QWidget *parent) { - kDebug() << "new Bookmarks Menu..."; + kDebug() << "new Bookmarks menu..."; KMenu *menu = new KMenu(parent); - m_bookmarkActionMenu = new KActionMenu(parent); - m_bookmarkActionMenu->setMenu(menu); - m_bookmarkActionMenu->setText(i18n("&Bookmarks")); + KActionMenu *bookmarkActionMenu = new KActionMenu(menu); + bookmarkActionMenu->setMenu(menu); + bookmarkActionMenu->setText(i18n("&Bookmarks")); new BookmarkMenu(m_manager, m_owner, menu, m_actionCollection); - kDebug() << "new Bookmarks Menu...DONE"; - return m_bookmarkActionMenu; + kDebug() << "new Bookmarks menu... DONE"; + + return bookmarkActionMenu; } @@ -187,19 +174,19 @@ void BookmarkProvider::fillBookmarkBar(BookmarkToolBar *toolBar) 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); + KBookmarkAction *action = new KBookmarkAction(bookmark, m_owner, this); action->setIconText(action->iconText().replace('&', "&&")); connect(action, SIGNAL(hovered()), toolBar, SLOT(actionHovered())); toolBar->toolBar()->addAction(action); @@ -243,7 +230,7 @@ QList BookmarkProvider::find(QList list, const KBookmark & KBookmark bm = group.first(); while (!bm.isNull()) { - list = find(list, bm, text); // it is .bookfolder + list = find(list, bm, text); bm = group.next(bm); } } @@ -258,8 +245,7 @@ QList BookmarkProvider::find(QList list, const KBookmark & void BookmarkProvider::slotAddBookmark() { - KBookmarkGroup parentBookmark = rootGroup(); - parentBookmark.addBookmark(bookmarkOwner()->currentTitle(), bookmarkOwner()->currentUrl()); + rootGroup().addBookmark(bookmarkOwner()->currentTitle(), bookmarkOwner()->currentUrl()); bookmarkManager()->emitChanged(); } @@ -276,7 +262,11 @@ void BookmarkProvider::registerBookmarkPanel(BookmarksPanel *panel) void BookmarkProvider::removeBookmarkPanel(BookmarksPanel *panel) { + if (!panel) + return; + m_bookmarkPanels.removeOne(panel); + panel->disconnect(this); if (m_bookmarkPanels.isEmpty()) { diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h index 2630910c..61b5d12d 100644 --- a/src/bookmarks/bookmarkprovider.h +++ b/src/bookmarks/bookmarkprovider.h @@ -154,8 +154,6 @@ private: KActionCollection *m_actionCollection; QList m_bookmarkToolBars; QList m_bookmarkPanels; - - KActionMenu *m_bookmarkActionMenu; }; -- cgit v1.2.1 From 89772b99957eff256f87d822b7741bb3e8f62276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Fri, 20 Aug 2010 22:29:56 +0200 Subject: Minor changes in BookmarkProvider. Searching for bookmarks should be a bit faster --- src/bookmarks/bookmarkprovider.cpp | 45 ++++++++++++-------------------------- src/bookmarks/bookmarkprovider.h | 6 ++--- 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp index 0cd0d3eb..ac08e76e 100644 --- a/src/bookmarks/bookmarkprovider.cpp +++ b/src/bookmarks/bookmarkprovider.cpp @@ -69,7 +69,8 @@ BookmarkProvider::BookmarkProvider(QObject *parent) // 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 &))); + 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); @@ -93,7 +94,7 @@ void BookmarkProvider::registerBookmarkBar(BookmarkToolBar *toolbar) m_bookmarkToolBars.append(toolbar); toolbar->toolBar()->setContextMenuPolicy(Qt::CustomContextMenu); - connect(toolbar->toolBar(), SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(contextMenu(const QPoint &))); + connect(toolbar->toolBar(), SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(contextMenu(const QPoint&))); kDebug() << "new bookmark bar... DONE!"; } @@ -105,7 +106,7 @@ void BookmarkProvider::removeToolBar(BookmarkToolBar *toolbar) } -void BookmarkProvider::slotBookmarksChanged(const QString& /*group*/, const QString& /*caller*/) +void BookmarkProvider::slotBookmarksChanged(const QString& /*groupAddress*/, const QString& /*caller*/) { foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars) { @@ -123,7 +124,7 @@ 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 + return new QAction(this); } @@ -205,41 +206,28 @@ KBookmarkGroup BookmarkProvider::rootGroup() QList BookmarkProvider::find(const 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); - } + KBookmarkGroup root = Application::bookmarkProvider()->rootGroup(); + if (!root.isNull()) + for (KBookmark bookmark = root.first(); !bookmark.isNull(); bookmark = root.next(bookmark)) + find(&list, bookmark, text); return list; } -QList BookmarkProvider::find(QList list, const KBookmark &bookmark, const QString &text) +void BookmarkProvider::find(QList *list, const KBookmark &bookmark, const QString &text) { if (bookmark.isGroup()) { KBookmarkGroup group = bookmark.toGroup(); - KBookmark bm = group.first(); - while (!bm.isNull()) - { - list = find(list, bm, text); - bm = group.next(bm); - } + for (KBookmark bm = group.first(); !bm.isNull(); bm = group.next(bm)) + find(list, bm, text); } else if (bookmark.url().url().contains(text) || bookmark.fullText().contains(text)) { - list << bookmark; + *list << bookmark; } - - return list; } @@ -269,9 +257,7 @@ void BookmarkProvider::removeBookmarkPanel(BookmarksPanel *panel) panel->disconnect(this); if (m_bookmarkPanels.isEmpty()) - { Application::bookmarkProvider()->bookmarkManager()->emitChanged(); - } } @@ -289,10 +275,7 @@ KBookmark BookmarkProvider::bookmarkForUrl(const KUrl &url) { KBookmarkGroup root = rootGroup(); if (root.isNull()) - { - KBookmark found; - return found; - } + return KBookmark(); return bookmarkForUrl(root, url); } diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h index 61b5d12d..6036011e 100644 --- a/src/bookmarks/bookmarkprovider.h +++ b/src/bookmarks/bookmarkprovider.h @@ -132,11 +132,11 @@ public slots: * @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 groupAddress bookmark group address * @param caller caller that modified the bookmarks * @see KBookmarkManager::changed */ - void slotBookmarksChanged(const QString &group, const QString &caller); + void slotBookmarksChanged(const QString &groupAddress, const QString &caller); void fillBookmarkBar(BookmarkToolBar *toolBar); private slots: @@ -144,7 +144,7 @@ private slots: void slotPanelChanged(); private: - QList find(QList list, const KBookmark &bookmark, const QString &text); + void find(QList *list, const KBookmark &bookmark, const QString &text); QString titleForBookmarkUrl(const KBookmark &bookmark, const QString &url); KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url); -- cgit v1.2.1 From d564d3b50c83f55ebc66fd9019891251ac072bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Ander=20Pe=C3=B1alba?= Date: Fri, 20 Aug 2010 22:36:11 +0200 Subject: BookmarkProvider's code reordered --- src/bookmarks/bookmarkprovider.cpp | 162 ++++++++++++++++++------------------- src/bookmarks/bookmarkprovider.h | 9 +-- src/mainwindow.cpp | 4 +- 3 files changed, 87 insertions(+), 88 deletions(-) diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp index ac08e76e..41704f58 100644 --- a/src/bookmarks/bookmarkprovider.cpp +++ b/src/bookmarks/bookmarkprovider.cpp @@ -85,6 +85,22 @@ BookmarkProvider::~BookmarkProvider() } +KActionMenu* BookmarkProvider::bookmarkActionMenu(QWidget *parent) +{ + kDebug() << "new Bookmarks menu..."; + + KMenu *menu = new KMenu(parent); + KActionMenu *bookmarkActionMenu = new KActionMenu(menu); + 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::registerBookmarkBar(BookmarkToolBar *toolbar) { if (m_bookmarkToolBars.contains(toolbar)) @@ -100,25 +116,35 @@ void BookmarkProvider::registerBookmarkBar(BookmarkToolBar *toolbar) } -void BookmarkProvider::removeToolBar(BookmarkToolBar *toolbar) +void BookmarkProvider::removeBookmarkBar(BookmarkToolBar *toolbar) { m_bookmarkToolBars.removeOne(toolbar); } -void BookmarkProvider::slotBookmarksChanged(const QString& /*groupAddress*/, const QString& /*caller*/) +void BookmarkProvider::registerBookmarkPanel(BookmarksPanel *panel) { - foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars) + if (panel && !m_bookmarkPanels.contains(panel)) { - if (bookmarkToolBar) - { - bookmarkToolBar->toolBar()->clear(); - fillBookmarkBar(bookmarkToolBar); - } + m_bookmarkPanels.append(panel); + connect(panel, SIGNAL(expansionChanged()), this, SLOT(slotPanelChanged())); } } +void BookmarkProvider::removeBookmarkPanel(BookmarksPanel *panel) +{ + if (!panel) + return; + + m_bookmarkPanels.removeOne(panel); + panel->disconnect(this); + + if (m_bookmarkPanels.isEmpty()) + Application::bookmarkProvider()->bookmarkManager()->emitChanged(); +} + + QAction* BookmarkProvider::actionByName(const QString &name) { QAction *action = m_actionCollection->action(name); @@ -128,6 +154,35 @@ QAction* BookmarkProvider::actionByName(const QString &name) } +KBookmarkGroup BookmarkProvider::rootGroup() +{ + return m_manager->root(); +} + + +QList BookmarkProvider::find(const QString &text) +{ + QList list; + + KBookmarkGroup root = Application::bookmarkProvider()->rootGroup(); + if (!root.isNull()) + for (KBookmark bookmark = root.first(); !bookmark.isNull(); bookmark = root.next(bookmark)) + find(&list, bookmark, text); + + return list; +} + + +KBookmark BookmarkProvider::bookmarkForUrl(const KUrl &url) +{ + KBookmarkGroup root = rootGroup(); + if (root.isNull()) + return KBookmark(); + + return bookmarkForUrl(root, url); +} + + void BookmarkProvider::contextMenu(const QPoint &point) { if (m_bookmarkToolBars.isEmpty()) @@ -146,19 +201,16 @@ void BookmarkProvider::contextMenu(const QPoint &point) } -KActionMenu* BookmarkProvider::bookmarkActionMenu(QWidget *parent) +void BookmarkProvider::slotBookmarksChanged(const QString& /*groupAddress*/, const QString& /*caller*/) { - kDebug() << "new Bookmarks menu..."; - - KMenu *menu = new KMenu(parent); - KActionMenu *bookmarkActionMenu = new KActionMenu(menu); - bookmarkActionMenu->setMenu(menu); - bookmarkActionMenu->setText(i18n("&Bookmarks")); - new BookmarkMenu(m_manager, m_owner, menu, m_actionCollection); - - kDebug() << "new Bookmarks menu... DONE"; - - return bookmarkActionMenu; + foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars) + { + if (bookmarkToolBar) + { + bookmarkToolBar->toolBar()->clear(); + fillBookmarkBar(bookmarkToolBar); + } + } } @@ -197,22 +249,20 @@ void BookmarkProvider::fillBookmarkBar(BookmarkToolBar *toolBar) } -KBookmarkGroup BookmarkProvider::rootGroup() +void BookmarkProvider::slotAddBookmark() { - return m_manager->root(); + rootGroup().addBookmark(bookmarkOwner()->currentTitle(), bookmarkOwner()->currentUrl()); + bookmarkManager()->emitChanged(); } -QList BookmarkProvider::find(const QString &text) +void BookmarkProvider::slotPanelChanged() { - QList list; - - KBookmarkGroup root = Application::bookmarkProvider()->rootGroup(); - if (!root.isNull()) - for (KBookmark bookmark = root.first(); !bookmark.isNull(); bookmark = root.next(bookmark)) - find(&list, bookmark, text); - - return list; + foreach (BookmarksPanel *panel, m_bookmarkPanels) + { + if (panel && panel != sender()) + panel->startLoadFoldedState(); + } } @@ -231,56 +281,6 @@ void BookmarkProvider::find(QList *list, const KBookmark &bookmark, c } -void BookmarkProvider::slotAddBookmark() -{ - rootGroup().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) -{ - if (!panel) - return; - - m_bookmarkPanels.removeOne(panel); - panel->disconnect(this); - - 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()) - return KBookmark(); - - return bookmarkForUrl(root, url); -} - - KBookmark BookmarkProvider::bookmarkForUrl(const KBookmark &bookmark, const KUrl &url) { KBookmark found; diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h index 6036011e..e21bd227 100644 --- a/src/bookmarks/bookmarkprovider.h +++ b/src/bookmarks/bookmarkprovider.h @@ -85,7 +85,10 @@ public: * @short set the Bookmarks Toolbar Action */ void registerBookmarkBar(BookmarkToolBar *toolbar); - void removeToolBar(BookmarkToolBar *toolbar); + void removeBookmarkBar(BookmarkToolBar *toolbar); + + void registerBookmarkPanel(BookmarksPanel *panel); + void removeBookmarkPanel(BookmarksPanel *panel); /** * @short Get action by name @@ -109,9 +112,6 @@ public: QList find(const QString &text); - void registerBookmarkPanel(BookmarksPanel *panel); - void removeBookmarkPanel(BookmarksPanel *panel); - KBookmark bookmarkForUrl(const KUrl &url); signals: @@ -146,7 +146,6 @@ private slots: private: void find(QList *list, const KBookmark &bookmark, const QString &text); - QString titleForBookmarkUrl(const KBookmark &bookmark, const QString &url); KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url); KBookmarkManager *m_manager; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 262714e1..4927ce4e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -163,7 +163,7 @@ MainWindow::MainWindow() MainWindow::~MainWindow() { - Application::bookmarkProvider()->removeToolBar(m_bookmarksBar); + Application::bookmarkProvider()->removeBookmarkBar(m_bookmarksBar); Application::bookmarkProvider()->removeBookmarkPanel(m_bookmarksPanel); Application::instance()->removeMainWindow(this); @@ -211,7 +211,7 @@ void MainWindow::initBookmarkBar() if (m_bookmarksBar) { - Application::bookmarkProvider()->removeToolBar(m_bookmarksBar); + Application::bookmarkProvider()->removeBookmarkBar(m_bookmarksBar); delete m_bookmarksBar; } m_bookmarksBar = new BookmarkToolBar(XMLGUIBkBar, this); -- cgit v1.2.1