]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/sidebarpage.h
replace QList<KFileItem> by KFileItemList, as KFileItemList is not QList<KFileItem...
[dolphin.git] / src / sidebarpage.h
index b1e758824c80ef8d5f5027d68f5dfff59bf3a531..697e8de58d30688fec43271663ccc41b0014047f 100644 (file)
@@ -1,6 +1,6 @@
 /***************************************************************************
  *   Copyright (C) 2006 by Cvetoslav Ludmiloff <ludmiloff@gmail.com>       *
- *   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  *
 #ifndef _SIDEBARPAGE_H_
 #define _SIDEBARPAGE_H_
 
-#include <qwidget.h>
-
-class DolphinMainWindow;
-class Sidebar;
+#include <QtGui/QWidget>
+#include <kurl.h>
+#include <kfileitem.h>
 
 /**
  * @brief Base widget for all pages that can be embedded into the Sidebar.
- *
- * TODO
  */
 class SidebarPage : public QWidget
 {
-       Q_OBJECT
-
+    Q_OBJECT
 public:
-    explicit SidebarPage(DolphinMainWindow* mainwindow, QWidget* parent=0);
+    explicit SidebarPage(QWidget* parent = 0);
     virtual ~SidebarPage();
 
-protected slots:
+    /** Returns the current set URL of the active Dolphin view. */
+    const KUrl& url() const;
+
+    /** Returns the current selected items of the active Dolphin view. */
+    const KFileItemList& selection() const;
+
+public slots:
     /**
-     * Is invoked whenever the active view from Dolphin has been changed.
-     * The active view can be retrieved by Dolphin::mainWin().activeView();
+     * This is invoked every time the folder being displayed in the
+     * active Dolphin view changes.
      */
-    virtual void activeViewChanged();
+    virtual void setUrl(const KUrl& url);
 
-protected:
-    DolphinMainWindow* mainWindow() const;
+    /**
+     * This is invoked to inform the sidebar that the user has selected a new
+     * set of items.
+     */
+    virtual void setSelection(const KFileItemList& selection);
+
+signals:
+    /**
+     * This signal is emitted when the sidebar requests an URL-change in the
+     * currently active file-management view. The view is not requested to
+     * accept this change, if it is accepted the sidebar will be informed via
+     * the setUrl() slot.
+     */
+    void changeUrl(const KUrl& url);
+
+    /**
+     * This signal is emitted when the sidebar requests a change in the
+     * current selection. The file-management view recieving this signal is
+     * not required to select all listed files, limiting the selection to
+     * e.g. the current folder. The new selection will be reported via the
+     * setSelection slot.
+     */
+    void changeSelection(const KFileItemList& selection);
+
+    /**
+     * This signal is emitted whenever a drop action on this widget needs the
+     * MainWindow's attention.
+     */
+    void urlsDropped(const KUrl::List& urls, const KUrl& destination);
 
 private:
-    DolphinMainWindow *m_mainWindow;
+    KUrl m_url;
+    KFileItemList m_currentSelection;
 };
 
 #endif // _SIDEBARPAGE_H_