]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/bookmarkselector.h
Create a SidebarTreeView which will include support for drag & drop in later releases...
[dolphin.git] / src / bookmarkselector.h
index 50fc2e3e5799b76b5f0ae6feaad5a414ac66824f..334f25ba379c0004c1ca18d3c3e69cbe522bcdb8 100644 (file)
@@ -24,7 +24,7 @@
 #include <urlbutton.h>
 
 class UrlNavigator;
-class Q3PopupMenu;
+class KMenu;
 class KUrl;
 
 /**
@@ -49,11 +49,11 @@ public:
     virtual ~BookmarkSelector();
 
     /**
-     * Updates the selection dependent from the given Url \a url. The
-     * Url must not match exactly to one of the available bookmarks:
-     * The bookmark which is equal to the Url or at least is a parent Url
-     * is selected. If there are more than one possible parent Url candidates,
-     * the bookmark which covers the bigger range of the Url is selected.
+     * Updates the selection dependent from the given URL \a url. The
+     * URL must not match exactly to one of the available bookmarks:
+     * The bookmark which is equal to the URL or at least is a parent URL
+     * is selected. If there are more than one possible parent URL candidates,
+     * the bookmark which covers the bigger range of the URL is selected.
      */
     void updateSelection(const KUrl& url);
 
@@ -69,6 +69,22 @@ public:
     /** @see QWidget::sizeHint() */
     virtual QSize sizeHint() const;
 
+    /**
+     * Returns the base bookmark for the URL \a url.
+     * The base bookmark is defined as bookmark which is equal to
+     * the URL or at least is a parent URL. If there are more than
+     * one possible parent URL candidates, the bookmark which covers
+     * the bigger range of the URL is returned.
+     *
+     * Example: the url is '/home/peter/Documents/Music. Available
+     * bookmarks are:
+     * - /home/peter
+     * - /home/peter/Documents
+     *
+     * The base URL will be '/home/peter/Documents'.
+     */
+    static KBookmark baseBookmark(const KUrl& url);
+
 signals:
     /**
      * Is send when a bookmark has been activated by the user.
@@ -85,15 +101,18 @@ protected:
 
 private slots:
     /**
-     * Updates the selected index and the icon if a bookmark
-     * has been activated by the user.
+     * Updates the selected index and the icon to the bookmark
+     * which is indicated by the triggered action \a action.
      */
-    void slotBookmarkActivated(int index);
+    void activateBookmark(QAction* action);
+
+private:
+    static int baseBookmarkIndex(const KUrl& url);
 
 private:
     int m_selectedIndex;
     UrlNavigator* m_urlNavigator;
-    Q3PopupMenu* m_bookmarksMenu;
+    KMenu* m_bookmarksMenu;
 
 };