X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3bd97ea34c72164a2c583ec28eafcdfc887455cf..8f9baef848c3056cd1df772f0774decad509cff3:/src/bookmarkssidebarpage.cpp diff --git a/src/bookmarkssidebarpage.cpp b/src/bookmarkssidebarpage.cpp index 3fb031edc..677d0bd06 100644 --- a/src/bookmarkssidebarpage.cpp +++ b/src/bookmarkssidebarpage.cpp @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include @@ -36,11 +36,10 @@ #include #include "dolphinsettings.h" -#include "dolphinmainwindow.h" #include "editbookmarkdialog.h" -BookmarksSidebarPage::BookmarksSidebarPage(DolphinMainWindow* mainWindow, QWidget* parent) : - SidebarPage(mainWindow, parent) +BookmarksSidebarPage::BookmarksSidebarPage(QWidget* parent) : + SidebarPage(parent) { Q3VBoxLayout* layout = new Q3VBoxLayout(this); m_bookmarksList = new BookmarksListBox(this); @@ -63,9 +62,12 @@ BookmarksSidebarPage::~BookmarksSidebarPage() { } -void BookmarksSidebarPage::activeViewChanged() +void BookmarksSidebarPage::setUrl(const KUrl& url) { - connectToActiveView(); + if (!m_url.equals(url, KUrl::CompareWithoutTrailingSlash)) { + m_url = url; + adjustSelection(m_url); + } } void BookmarksSidebarPage::updateBookmarks() @@ -85,8 +87,6 @@ void BookmarksSidebarPage::updateBookmarks() bookmark = root.next(bookmark); } - - connectToActiveView(); } void BookmarksSidebarPage::slotMouseButtonClicked(int button, Q3ListBoxItem* item) @@ -97,7 +97,7 @@ void BookmarksSidebarPage::slotMouseButtonClicked(int button, Q3ListBoxItem* ite const int index = m_bookmarksList->index(item); KBookmark bookmark = DolphinSettings::instance().bookmark(index); - mainWindow()->activeView()->setUrl(bookmark.url()); + emit changeUrl(bookmark.url()); } void BookmarksSidebarPage::slotContextMenuRequested(Q3ListBoxItem* item, @@ -108,22 +108,28 @@ void BookmarksSidebarPage::slotContextMenuRequested(Q3ListBoxItem* item, const int deleteID = 3; const int addID = 4; - Q3PopupMenu* popup = new Q3PopupMenu(); + KMenu* popup = new KMenu(); if (item == 0) { - popup->insertItem(SmallIcon("filenew"), i18n("Add Bookmark..."), addID); + QAction *action = popup->addAction(SmallIcon("document-new"), i18n("Add Bookmark...")); + action->setData(addID); } else { - popup->insertItem(SmallIcon("filenew"), i18n("Insert Bookmark..."), insertID); - popup->insertItem(SmallIcon("edit"), i18n("Edit..."), editID); - popup->insertItem(SmallIcon("editdelete"), i18n("Delete"), deleteID); + QAction *action = popup->addAction(SmallIcon("document-new"), i18n("Insert Bookmark...")); + action->setData(insertID); + action = popup->addAction(SmallIcon("edit"), i18n("Edit...")); + action->setData(editID); + action = popup->addAction(SmallIcon("edit-delete"), i18n("Delete")); + action->setData(deleteID); + } KBookmarkManager* manager = DolphinSettings::instance().bookmarkManager(); KBookmarkGroup root = manager->root(); const int index = m_bookmarksList->index(m_bookmarksList->selectedItem()); - - const int result = popup->exec(pos); - switch (result) { + QAction *result = popup->exec(pos); + if( result) + { + switch(result->data().toInt()) { case insertID: { KBookmark newBookmark = EditBookmarkDialog::getBookmark(i18n("Insert Bookmark"), "New bookmark", @@ -182,12 +188,9 @@ void BookmarksSidebarPage::slotContextMenuRequested(Q3ListBoxItem* item, default: break; } - + } delete popup; popup = 0; - - DolphinView* view = mainWindow()->activeView(); - adjustSelection(view->url()); } @@ -233,19 +236,6 @@ void BookmarksSidebarPage::adjustSelection(const KUrl& url) m_bookmarksList->blockSignals(block); } -void BookmarksSidebarPage::slotUrlChanged(const KUrl& url) -{ - adjustSelection(url); -} - -void BookmarksSidebarPage::connectToActiveView() -{ - DolphinView* view = mainWindow()->activeView(); - adjustSelection(view->url()); - connect(view, SIGNAL(urlChanged(const KUrl&)), - this, SLOT(slotUrlChanged(const KUrl&))); -} - BookmarksListBox::BookmarksListBox(QWidget* parent) : Q3ListBox(parent) {