]> 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 c662618ec5a32d8fe42c0f87b47c4463f89af081..334f25ba379c0004c1ca18d3c3e69cbe522bcdb8 100644 (file)
@@ -1,6 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2006 by Peter Penz                                      *
- *   peter.penz@gmx.at                                                     *
+ *   Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at)                  *
  *                                                                         *
  *   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  *
@@ -25,7 +24,7 @@
 #include <urlbutton.h>
 
 class UrlNavigator;
-class Q3PopupMenu;
+class KMenu;
 class KUrl;
 
 /**
@@ -35,7 +34,6 @@ class KUrl;
  * inside the bookmark selector.
  *
  * @see UrlNavigator
- * @author Peter Penz <peter.penz@gmx.at>
  */
 class BookmarkSelector : public UrlButton
 {
@@ -51,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);
 
@@ -71,12 +69,28 @@ 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.
-     * @param index Index of the selected bookmark.
+     * @param url URL of the selected bookmark.
      */
-    void bookmarkActivated(int index);
+    void bookmarkActivated(const KUrl& url);
 
 protected:
     /**
@@ -87,14 +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;
-    Q3PopupMenu* m_bookmarksMenu;
+    UrlNavigator* m_urlNavigator;
+    KMenu* m_bookmarksMenu;
 
 };