summaryrefslogtreecommitdiff
path: root/src/bookmarks
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks')
-rw-r--r--src/bookmarks/bookmarkowner.cpp50
-rw-r--r--src/bookmarks/bookmarkowner.h34
-rw-r--r--src/bookmarks/bookmarkprovider.cpp18
-rw-r--r--src/bookmarks/bookmarkprovider.h22
-rw-r--r--src/bookmarks/bookmarkscontextmenu.cpp48
-rw-r--r--src/bookmarks/bookmarkscontextmenu.h2
-rw-r--r--src/bookmarks/bookmarkspanel.cpp37
-rw-r--r--src/bookmarks/bookmarkspanel.h16
-rw-r--r--src/bookmarks/bookmarkstoolbar.cpp3
-rw-r--r--src/bookmarks/bookmarkstreemodel.cpp6
-rw-r--r--src/bookmarks/bookmarkstreemodel.h13
11 files changed, 135 insertions, 114 deletions
diff --git a/src/bookmarks/bookmarkowner.cpp b/src/bookmarks/bookmarkowner.cpp
index 530ad199..f9e64d68 100644
--- a/src/bookmarks/bookmarkowner.cpp
+++ b/src/bookmarks/bookmarkowner.cpp
@@ -29,6 +29,7 @@
// Self Includes
#include "bookmarkowner.h"
+#include "bookmarkowner.moc"
// Local Includes
#include "application.h"
@@ -42,6 +43,7 @@
#include <KBookmarkDialog>
#include <KLocalizedString>
#include <KMessageBox>
+#include "iconmanager.h"
// Qt Includes
#include <QtGui/QClipboard>
@@ -126,30 +128,36 @@ void BookmarkOwner::setCurrentBookmark(const KBookmark &bookmark)
}
+void BookmarkOwner::unsetCurrentBookmark()
+{
+ m_currentBookmark = KBookmark();
+}
+
+
void BookmarkOwner::openBookmark(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
emit openUrl(selected.url(), Rekonq::CurrentTab);
}
void BookmarkOwner::openBookmarkInNewTab(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
emit openUrl(selected.url(), Rekonq::NewTab);
}
void BookmarkOwner::openBookmarkInNewWindow(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
emit openUrl(selected.url(), Rekonq::NewWindow);
}
void BookmarkOwner::openBookmarkFolder(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
if (!selected.isGroup())
return;
@@ -172,9 +180,10 @@ void BookmarkOwner::openBookmarkFolder(const KBookmark &bookmark)
}
-void BookmarkOwner::bookmarkCurrentPage(const KBookmark &bookmark)
+KBookmark BookmarkOwner::bookmarkCurrentPage(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
+ KBookmark newBk;
KBookmarkGroup parent;
if (!selected.isNull())
@@ -184,22 +193,25 @@ void BookmarkOwner::bookmarkCurrentPage(const KBookmark &bookmark)
else
parent = selected.parentGroup();
- KBookmark newBk = parent.addBookmark(currentTitle().replace('&', "&&"), KUrl(currentUrl()));
+ newBk = parent.addBookmark(currentTitle().replace('&', "&&"), KUrl(currentUrl()),
+ Application::iconManager()->iconForUrl(currentUrl()).name());
parent.moveBookmark(newBk, selected);
}
else
{
parent = Application::bookmarkProvider()->rootGroup();
- parent.addBookmark(currentTitle(), KUrl(currentUrl()));
+ newBk = parent.addBookmark(currentTitle(), KUrl(currentUrl()));
}
m_manager->emitChanged(parent);
+ return newBk;
}
-void BookmarkOwner::newBookmarkFolder(const KBookmark &bookmark)
+KBookmarkGroup BookmarkOwner::newBookmarkFolder(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
+ KBookmarkGroup newBk;
KBookmarkDialog *dialog = bookmarkDialog(m_manager, QApplication::activeWindow());
QString folderName = i18n("New folder");
@@ -207,11 +219,11 @@ void BookmarkOwner::newBookmarkFolder(const KBookmark &bookmark)
{
if (selected.isGroup())
{
- dialog->createNewFolder(folderName, selected);
+ newBk = dialog->createNewFolder(folderName, selected);
}
else
{
- KBookmark newBk = dialog->createNewFolder(folderName, selected.parentGroup());
+ newBk = dialog->createNewFolder(folderName, selected.parentGroup());
if (!newBk.isNull())
{
KBookmarkGroup parent = newBk.parentGroup();
@@ -222,16 +234,17 @@ void BookmarkOwner::newBookmarkFolder(const KBookmark &bookmark)
}
else
{
- dialog->createNewFolder(folderName);
+ newBk = dialog->createNewFolder(folderName);
}
delete dialog;
+ return newBk;
}
-void BookmarkOwner::newSeparator(const KBookmark &bookmark)
+KBookmark BookmarkOwner::newSeparator(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
KBookmark newBk;
if (!selected.isNull())
@@ -254,12 +267,13 @@ void BookmarkOwner::newSeparator(const KBookmark &bookmark)
newBk.setIcon(("edit-clear"));
m_manager->emitChanged(newBk.parentGroup());
+ return newBk;
}
void BookmarkOwner::copyLink(const KBookmark &bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
if (selected.isNull())
return;
@@ -269,7 +283,7 @@ void BookmarkOwner::copyLink(const KBookmark &bookmark)
void BookmarkOwner::editBookmark(KBookmark bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
if (selected.isNull())
return;
@@ -285,7 +299,7 @@ void BookmarkOwner::editBookmark(KBookmark bookmark)
bool BookmarkOwner::deleteBookmark(KBookmark bookmark)
{
- KBookmark selected = bookmark.isNull() ? m_currentBookmark : bookmark;
+ KBookmark selected = (bookmark.isNull() && !m_currentBookmark.isNull()) ? m_currentBookmark : bookmark;
if (selected.isNull())
return false;
diff --git a/src/bookmarks/bookmarkowner.h b/src/bookmarks/bookmarkowner.h
index e0c2a8ad..febff3b0 100644
--- a/src/bookmarks/bookmarkowner.h
+++ b/src/bookmarks/bookmarkowner.h
@@ -40,6 +40,7 @@
// Forward Declarations
class KAction;
+
/**
* Reimplementation of KBookmarkOwner, this class allows to manage
* bookmarks as actions.
@@ -111,37 +112,38 @@ public:
*/
virtual void openFolderinTabs(const KBookmarkGroup &bookmark);
-signals:
- /**
- * 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:
+public Q_SLOTS:
void setCurrentBookmark(const KBookmark &bookmark);
+ void unsetCurrentBookmark();
void openBookmark(const KBookmark &bookmark = KBookmark());
void openBookmarkInNewTab(const KBookmark &bookmark = KBookmark());
void openBookmarkInNewWindow(const KBookmark &bookmark = KBookmark());
void openBookmarkFolder(const KBookmark &bookmark = KBookmark());
- void bookmarkCurrentPage(const KBookmark &bookmark = KBookmark());
- void newBookmarkFolder(const KBookmark &bookmark = KBookmark());
- void newSeparator(const KBookmark &bookmark = KBookmark());
+ KBookmark bookmarkCurrentPage(const KBookmark &bookmark = KBookmark());
+ KBookmarkGroup newBookmarkFolder(const KBookmark &bookmark = KBookmark());
+ KBookmark newSeparator(const KBookmark &bookmark = KBookmark());
void copyLink(const KBookmark &bookmark = KBookmark());
void editBookmark(KBookmark bookmark = KBookmark());
bool deleteBookmark(KBookmark bookmark = KBookmark());
-private:
- KBookmarkManager *m_manager;
-
- QVector<KAction*> m_actions;
- KBookmark m_currentBookmark;
+Q_SIGNALS:
+ /**
+ * This signal is emitted when an url has to be loaded
+ * @param url the URL to load
+ */
+ void openUrl(const KUrl &, const Rekonq::OpenType &);
+private:
void setupActions();
void createAction(const BookmarkAction &action,
const QString &text, const QString &icon,
const QString &help, const char *slot);
+
+
+ KBookmarkManager *m_manager;
+ QVector<KAction*> m_actions;
+ KBookmark m_currentBookmark;
};
#endif // BOOKMARKOWNER_H
diff --git a/src/bookmarks/bookmarkprovider.cpp b/src/bookmarks/bookmarkprovider.cpp
index f5021916..8089fb6d 100644
--- a/src/bookmarks/bookmarkprovider.cpp
+++ b/src/bookmarks/bookmarkprovider.cpp
@@ -29,17 +29,18 @@
// Self Includes
#include "bookmarkprovider.h"
+#include "bookmarkprovider.moc"
// Local Includes
#include "application.h"
#include "bookmarkspanel.h"
#include "bookmarkstoolbar.h"
#include "bookmarkowner.h"
+#include "iconmanager.h"
// KDE Includes
#include <KActionCollection>
#include <KStandardDirs>
-#include <KMimeType>
// Qt Includes
#include <QtCore/QFile>
@@ -79,14 +80,14 @@ BookmarkProvider::BookmarkProvider(QObject *parent)
m_manager = KBookmarkManager::managerForFile(bookfile.path(), "rekonq");
connect(m_manager, SIGNAL(changed(const QString &, const QString &)),
- this, SLOT(slotBookmarksChanged(const QString &, const QString &)));
+ this, SLOT(slotBookmarksChanged()));
// 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);
+ KAction *a = KStandardAction::addBookmark(bookmarkOwner(), SLOT(bookmarkCurrentPage()), this);
m_actionCollection->addAction(QL1S("rekonq_add_bookmark"), a);
kDebug() << "Loading Bookmarks Manager... DONE!";
@@ -195,7 +196,7 @@ KBookmark BookmarkProvider::bookmarkForUrl(const KUrl &url)
}
-void BookmarkProvider::slotBookmarksChanged(const QString& /*groupAddress*/, const QString& /*caller*/)
+void BookmarkProvider::slotBookmarksChanged()
{
foreach(BookmarkToolBar *bookmarkToolBar, m_bookmarkToolBars)
{
@@ -235,6 +236,7 @@ void BookmarkProvider::fillBookmarkBar(BookmarkToolBar *toolBar)
{
KBookmarkAction *action = new KBookmarkAction(bookmark, m_owner, this);
action->setIconText(action->iconText().replace('&', "&&"));
+ action->setIcon(Application::iconManager()->iconForUrl(bookmark.url()));
connect(action, SIGNAL(hovered()), toolBar, SLOT(actionHovered()));
toolBar->toolBar()->addAction(action);
toolBar->toolBar()->widgetForAction(action)->installEventFilter(toolBar);
@@ -243,14 +245,6 @@ void BookmarkProvider::fillBookmarkBar(BookmarkToolBar *toolBar)
}
-void BookmarkProvider::slotAddBookmark()
-{
- QString url = bookmarkOwner()->currentUrl();
- rootGroup().addBookmark(bookmarkOwner()->currentTitle(), url, KMimeType::favIconForUrl( KUrl(url) ) );
- bookmarkManager()->emitChanged();
-}
-
-
void BookmarkProvider::slotPanelChanged()
{
foreach (BookmarksPanel *panel, m_bookmarkPanels)
diff --git a/src/bookmarks/bookmarkprovider.h b/src/bookmarks/bookmarkprovider.h
index 36724d75..3f7a5c52 100644
--- a/src/bookmarks/bookmarkprovider.h
+++ b/src/bookmarks/bookmarkprovider.h
@@ -54,6 +54,7 @@ class KUrl;
class QAction;
class QPoint;
+
/**
* This class represent the interface to rekonq bookmarks system.
* All rekonq needs (Bookmarks Menu, Bookmarks Toolbar) is provided
@@ -114,14 +115,7 @@ public:
KBookmark bookmarkForUrl(const KUrl &url);
-signals:
- /**
- * @short This signal is emitted when an url has to be loaded
- */
- void openUrl(const KUrl &, const Rekonq::OpenType &);
-
-
-public slots:
+public Q_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
@@ -130,16 +124,20 @@ public slots:
* @param caller caller that modified the bookmarks
* @see KBookmarkManager::changed
*/
- void slotBookmarksChanged(const QString &groupAddress, const QString &caller);
+ void slotBookmarksChanged();
void fillBookmarkBar(BookmarkToolBar *toolBar);
-private slots:
- void slotAddBookmark();
+private Q_SLOTS:
void slotPanelChanged();
+
+Q_SIGNALS:
+ /**
+ * @short This signal is emitted when an url has to be loaded
+ */
+ void openUrl(const KUrl &, const Rekonq::OpenType &);
private:
void find(QList<KBookmark> *list, const KBookmark &bookmark, const QString &text);
-
KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url);
KBookmarkManager *m_manager;
diff --git a/src/bookmarks/bookmarkscontextmenu.cpp b/src/bookmarks/bookmarkscontextmenu.cpp
index da986fd2..8f1a570c 100644
--- a/src/bookmarks/bookmarkscontextmenu.cpp
+++ b/src/bookmarks/bookmarkscontextmenu.cpp
@@ -33,37 +33,37 @@
BookmarksContextMenu::BookmarksContextMenu(const KBookmark &bookmark, KBookmarkManager *manager, BookmarkOwner *owner, QWidget *parent)
: KBookmarkContextMenu(bookmark, manager, owner, parent)
- , bmOwner(owner)
+ , m_bmOwner(owner)
{
- bmOwner->setCurrentBookmark(bookmark);
+ m_bmOwner->setCurrentBookmark(bookmark);
}
BookmarksContextMenu::~BookmarksContextMenu()
{
+ m_bmOwner->unsetCurrentBookmark();
}
void BookmarksContextMenu::addBookmarkActions()
{
- addAction(bmOwner->action(BookmarkOwner::OPEN));
- addAction(bmOwner->action(BookmarkOwner::OPEN_IN_TAB));
- addAction(bmOwner->action(BookmarkOwner::OPEN_IN_WINDOW));
+ addAction(m_bmOwner->action(BookmarkOwner::OPEN_IN_TAB));
+ addAction(m_bmOwner->action(BookmarkOwner::OPEN_IN_WINDOW));
addSeparator();
- addAction(bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
- addAction(bmOwner->action(BookmarkOwner::NEW_FOLDER));
- addAction(bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
+ addAction(m_bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_FOLDER));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
addSeparator();
- addAction(bmOwner->action(BookmarkOwner::COPY));
+ addAction(m_bmOwner->action(BookmarkOwner::COPY));
addSeparator();
- addAction(bmOwner->action(BookmarkOwner::EDIT));
- addAction(bmOwner->action(BookmarkOwner::DELETE));
+ addAction(m_bmOwner->action(BookmarkOwner::EDIT));
+ addAction(m_bmOwner->action(BookmarkOwner::DELETE));
}
@@ -82,39 +82,39 @@ void BookmarksContextMenu::addFolderActions()
if (!child.isNull())
{
- addAction(bmOwner->action(BookmarkOwner::OPEN_FOLDER));
+ addAction(m_bmOwner->action(BookmarkOwner::OPEN_FOLDER));
addSeparator();
}
}
- addAction(bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
- addAction(bmOwner->action(BookmarkOwner::NEW_FOLDER));
- addAction(bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
+ addAction(m_bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_FOLDER));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
addSeparator();
- addAction(bmOwner->action(BookmarkOwner::EDIT));
- addAction(bmOwner->action(BookmarkOwner::DELETE));
+ addAction(m_bmOwner->action(BookmarkOwner::EDIT));
+ addAction(m_bmOwner->action(BookmarkOwner::DELETE));
}
void BookmarksContextMenu::addSeparatorActions()
{
- addAction(bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
- addAction(bmOwner->action(BookmarkOwner::NEW_FOLDER));
- addAction(bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
+ addAction(m_bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_FOLDER));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
addSeparator();
- addAction(bmOwner->action(BookmarkOwner::DELETE));
+ addAction(m_bmOwner->action(BookmarkOwner::DELETE));
}
void BookmarksContextMenu::addNullActions()
{
- addAction(bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
- addAction(bmOwner->action(BookmarkOwner::NEW_FOLDER));
- addAction(bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
+ addAction(m_bmOwner->action(BookmarkOwner::BOOKMARK_PAGE));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_FOLDER));
+ addAction(m_bmOwner->action(BookmarkOwner::NEW_SEPARATOR));
}
diff --git a/src/bookmarks/bookmarkscontextmenu.h b/src/bookmarks/bookmarkscontextmenu.h
index a6691fdd..d669eef6 100644
--- a/src/bookmarks/bookmarkscontextmenu.h
+++ b/src/bookmarks/bookmarkscontextmenu.h
@@ -47,7 +47,7 @@ private:
void addSeparatorActions();
void addNullActions();
- BookmarkOwner *bmOwner;
+ BookmarkOwner *m_bmOwner;
};
#endif // BOOKMARKS_CONTEXT_MENU_H
diff --git a/src/bookmarks/bookmarkspanel.cpp b/src/bookmarks/bookmarkspanel.cpp
index e88d3060..27c60e46 100644
--- a/src/bookmarks/bookmarkspanel.cpp
+++ b/src/bookmarks/bookmarkspanel.cpp
@@ -27,6 +27,7 @@
// Self Includes
#include "bookmarkspanel.h"
+#include "bookmarkspanel.moc"
// Auto Includes
#include "rekonq.h"
@@ -43,10 +44,12 @@
BookmarksPanel::BookmarksPanel(const QString &title, QWidget *parent, Qt::WindowFlags flags)
: UrlPanel(title, parent, flags)
- , m_loadingState(false)
+ , _bkTreeModel(new BookmarksTreeModel(this))
+ , _loadingState(false)
{
setObjectName("bookmarksPanel");
setVisible(ReKonfig::showBookmarksPanel());
+ connect(_bkTreeModel, SIGNAL(bookmarksUpdated()), this, SLOT(startLoadFoldedState()));
}
@@ -58,24 +61,24 @@ BookmarksPanel::~BookmarksPanel()
void BookmarksPanel::startLoadFoldedState()
{
- m_loadingState = true;
+ _loadingState = true;
loadFoldedState(QModelIndex());
- m_loadingState = false;
+ _loadingState = false;
}
void BookmarksPanel::contextMenu(const QPoint &pos)
{
- if (m_loadingState)
+ if (_loadingState)
return;
- BookmarksContextMenu menu(bookmarkForIndex( m_treeView->indexAt(pos) ),
+ BookmarksContextMenu menu(bookmarkForIndex( panelTreeView()->indexAt(pos) ),
Application::bookmarkProvider()->bookmarkManager(),
Application::bookmarkProvider()->bookmarkOwner(),
this
);
- menu.exec(m_treeView->mapToGlobal(pos));
+ menu.exec(panelTreeView()->mapToGlobal(pos));
}
@@ -99,8 +102,8 @@ void BookmarksPanel::contextMenuEmpty(const QPoint &pos)
void BookmarksPanel::deleteBookmark()
{
- QModelIndex index = m_treeView->currentIndex();
- if (m_loadingState || !index.isValid())
+ QModelIndex index = panelTreeView()->currentIndex();
+ if (_loadingState || !index.isValid())
return;
Application::bookmarkProvider()->bookmarkOwner()->deleteBookmark(bookmarkForIndex(index));
@@ -109,7 +112,7 @@ void BookmarksPanel::deleteBookmark()
void BookmarksPanel::onCollapse(const QModelIndex &index)
{
- if (m_loadingState)
+ if (_loadingState)
return;
bookmarkForIndex(index).internalElement().setAttribute("folded", "yes");
@@ -119,7 +122,7 @@ void BookmarksPanel::onCollapse(const QModelIndex &index)
void BookmarksPanel::onExpand(const QModelIndex &index)
{
- if (m_loadingState)
+ if (_loadingState)
return;
bookmarkForIndex(index).internalElement().setAttribute("folded", "no");
@@ -129,7 +132,7 @@ void BookmarksPanel::onExpand(const QModelIndex &index)
void BookmarksPanel::loadFoldedState(const QModelIndex &root)
{
- QAbstractItemModel *model = m_treeView->model();
+ QAbstractItemModel *model = panelTreeView()->model();
int count = model->rowCount(root);
QModelIndex index;
@@ -141,7 +144,7 @@ void BookmarksPanel::loadFoldedState(const QModelIndex &root)
KBookmark bm = bookmarkForIndex(index);
if (bm.isGroup())
{
- m_treeView->setExpanded(index, bm.toGroup().isOpen());
+ panelTreeView()->setExpanded(index, bm.toGroup().isOpen());
loadFoldedState(index);
}
}
@@ -154,9 +157,9 @@ void BookmarksPanel::setup()
UrlPanel::setup();
kDebug() << "Bookmarks panel...";
- connect(m_treeView, SIGNAL(delKeyPressed()), this, SLOT(deleteBookmark()));
- connect(m_treeView, SIGNAL(collapsed(const QModelIndex &)), this, SLOT(onCollapse(const QModelIndex &)));
- connect(m_treeView, SIGNAL(expanded(const QModelIndex &)), this, SLOT(onExpand(const QModelIndex &)));
+ connect(panelTreeView(), SIGNAL(delKeyPressed()), this, SLOT(deleteBookmark()));
+ connect(panelTreeView(), SIGNAL(collapsed(const QModelIndex &)), this, SLOT(onCollapse(const QModelIndex &)));
+ connect(panelTreeView(), SIGNAL(expanded(const QModelIndex &)), this, SLOT(onExpand(const QModelIndex &)));
startLoadFoldedState();
}
@@ -177,7 +180,5 @@ KBookmark BookmarksPanel::bookmarkForIndex(const QModelIndex &index)
QAbstractItemModel* BookmarksPanel::getModel()
{
- BookmarksTreeModel *model = new BookmarksTreeModel(this);
- connect(model, SIGNAL(bookmarksUpdated()), this, SLOT(startLoadFoldedState()));
- return model;
+ return _bkTreeModel;
}
diff --git a/src/bookmarks/bookmarkspanel.h b/src/bookmarks/bookmarkspanel.h
index 2418ae81..f042d4c8 100644
--- a/src/bookmarks/bookmarkspanel.h
+++ b/src/bookmarks/bookmarkspanel.h
@@ -37,9 +37,12 @@
#include "urlpanel.h"
// Forward Declarations
+class BookmarksTreeModel;
+
class KBookmark;
class QModelIndex;
+
class REKONQ_TESTS_EXPORT BookmarksPanel : public UrlPanel
{
Q_OBJECT
@@ -48,13 +51,10 @@ public:
explicit BookmarksPanel(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
virtual ~BookmarksPanel();
-signals:
- void expansionChanged();
-
-public slots:
+public Q_SLOTS:
void startLoadFoldedState();
-private slots:
+private Q_SLOTS:
void contextMenu(const QPoint &pos);
virtual void contextMenuItem(const QPoint &pos);
virtual void contextMenuGroup(const QPoint &pos);
@@ -65,13 +65,17 @@ private slots:
void onExpand(const QModelIndex &index);
void loadFoldedState(const QModelIndex &root);
+Q_SIGNALS:
+ void expansionChanged();
+
private:
virtual void setup();
KBookmark bookmarkForIndex(const QModelIndex &index);
virtual QAbstractItemModel* getModel();
- bool m_loadingState;
+ BookmarksTreeModel *_bkTreeModel;
+ bool _loadingState;
};
#endif // BOOKMARKSPANEL_H
diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp
index ddb70a65..77bff7e6 100644
--- a/src/bookmarks/bookmarkstoolbar.cpp
+++ b/src/bookmarks/bookmarkstoolbar.cpp
@@ -30,6 +30,7 @@
#include "bookmarkstoolbar.moc"
// Local Includes
+#include "iconmanager.h"
#include "bookmarkscontextmenu.h"
#include "mainwindow.h"
#include "application.h"
@@ -66,7 +67,6 @@ BookmarkMenu::~BookmarkMenu()
KMenu * BookmarkMenu::contextMenu(QAction *act)
{
-
KBookmarkActionInterface* action = dynamic_cast<KBookmarkActionInterface *>(act);
if (!action)
return 0;
@@ -91,6 +91,7 @@ QAction * BookmarkMenu::actionForBookmark(const KBookmark &bookmark)
else
{
KBookmarkAction *action = new KBookmarkAction(bookmark, owner(), this);
+ action->setIcon(Application::iconManager()->iconForUrl(bookmark.url()));
connect(action, SIGNAL(hovered()), this, SLOT(actionHovered()));
return action;
}
diff --git a/src/bookmarks/bookmarkstreemodel.cpp b/src/bookmarks/bookmarkstreemodel.cpp
index 254a914f..796208a9 100644
--- a/src/bookmarks/bookmarkstreemodel.cpp
+++ b/src/bookmarks/bookmarkstreemodel.cpp
@@ -27,6 +27,7 @@
// Self Includes
#include "bookmarkstreemodel.h"
+#include "bookmarkstreemodel.moc"
// Local Includes
#include "application.h"
@@ -69,7 +70,10 @@ QVariant BtmItem::data(int role) const
// return KIcon(m_kbm.icon());
// but I cannot let it work :(
// I really cannot understand how let this work properly...
- return Application::iconManager()->iconForUrl(KUrl(m_kbm.url()));
+ if (m_kbm.isGroup() || m_kbm.isSeparator())
+ return KIcon(m_kbm.icon());
+ else
+ return Application::iconManager()->iconForUrl(KUrl(m_kbm.url()));
}
if (role == Qt::UserRole)
diff --git a/src/bookmarks/bookmarkstreemodel.h b/src/bookmarks/bookmarkstreemodel.h
index 6b85365b..7bbce339 100644
--- a/src/bookmarks/bookmarkstreemodel.h
+++ b/src/bookmarks/bookmarkstreemodel.h
@@ -38,6 +38,7 @@
// Qt Includes
#include <QtCore/QAbstractItemModel>
+
class BtmItem
{
public:
@@ -60,10 +61,12 @@ private:
};
+// -------------------------------------------------------------------------------------------------
+
+
class REKONQ_TESTS_EXPORT BookmarksTreeModel : public QAbstractItemModel
{
Q_OBJECT
- Q_DISABLE_COPY(BookmarksTreeModel)
public:
explicit BookmarksTreeModel(QObject *parent = 0);
@@ -95,19 +98,19 @@ public:
virtual Qt::DropActions supportedDropActions() const;
virtual QMimeData *mimeData(const QModelIndexList &indexes) const;
-private slots:
+private Q_SLOTS:
void bookmarksChanged(const QString &groupAddress);
-signals:
+Q_SIGNALS:
void bookmarksUpdated();
private:
- BtmItem *m_root;
-
void resetModel();
void setRoot(KBookmarkGroup bmg);
void populate(BtmItem *node, KBookmarkGroup bmg);
KBookmark bookmarkForIndex(const QModelIndex &index) const;
+
+ BtmItem *m_root;
};
#endif // BOOKMARKSTREEMODEL_H