]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/bookmarkssidebarpage.cpp
Patch by Luca Gugelmann: get rid of any mainwindow dependency from the sidebars.
[dolphin.git] / src / bookmarkssidebarpage.cpp
index 3fb031edc9523b23567f2e12d0202181b0fd318a..677d0bd064c489735b7136081c65bab7a24b823f 100644 (file)
@@ -27,7 +27,7 @@
 #include <Q3VBoxLayout>
 #include <QPaintEvent>
 #include <assert.h>
-#include <q3popupmenu.h>
+#include <kmenu.h>
 
 #include <kbookmark.h>
 #include <kbookmarkmanager.h>
 #include <klocale.h>
 
 #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)
 {