]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.h
SVN_SILENT: updated comment
[dolphin.git] / src / dolphinviewcontainer.h
index 88b4b3b47c6a0df694a2e66696d648ad5826e0a3..eb70c37e1aca5da2f010d50fd0841b7f44a89350 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "dolphinview.h"
 
-#include <kparts/part.h>
 #include <kfileitem.h>
 #include <kfileitemdelegate.h>
 #include <kio/job.h>
 #include <QtGui/QBoxLayout>
 #include <QtGui/QWidget>
 
-class DolphinController;
 class FilterBar;
-class KFileItemDelegate;
 class KUrl;
-class KDirModel;
+class DolphinModel;
 class KUrlNavigator;
-class DolphinColumnView;
-class DolphinDetailsView;
 class DolphinDirLister;
-class DolphinIconsView;
 class DolphinMainWindow;
 class DolphinSortFilterProxyModel;
 class DolphinStatusBar;
 class QModelIndex;
-class ViewProperties;
 
 /**
  * @short Represents a view for the directory content
@@ -71,9 +64,7 @@ class DolphinViewContainer : public QWidget
 public:
     DolphinViewContainer(DolphinMainWindow* mainwindow,
                          QWidget *parent,
-                         const KUrl& url,
-                         DolphinView::Mode mode = DolphinView::IconsView,
-                         bool showHiddenFiles = false);
+                         const KUrl& url);
 
     virtual ~DolphinViewContainer();
 
@@ -99,15 +90,8 @@ public:
     void setActive(bool active);
     bool isActive() const;
 
-    /**
-     * Triggers the renaming of the currently selected items, where
-     * the user must input a new name for the items.
-     */
-    void renameSelectedItems();
-
-    KFileItem* fileItem(const QModelIndex index) const;
-
-    DolphinStatusBar* statusBar() const;
+    const DolphinStatusBar* statusBar() const;
+    DolphinStatusBar* statusBar();
 
     /**
      * Returns true, if the URL shown by the navigation bar is editable.
@@ -115,18 +99,19 @@ public:
      */
     bool isUrlEditable() const;
 
-    inline KUrlNavigator* urlNavigator() const;
-
-    inline DolphinView* view() const;
+    const KUrlNavigator* urlNavigator() const;
+    KUrlNavigator* urlNavigator();
 
-    /** Returns true, if the filter bar is visible. */
-    bool isFilterBarVisible() const;
+    const DolphinView* view() const;
+    DolphinView* view();
 
     /**
-     * Return the DolphinMainWindow this View belongs to. It is guaranteed
-     * that we have one.
+     * Refreshes the view container to get synchronized with the (updated) Dolphin settings.
      */
-    DolphinMainWindow* mainWindow() const ;
+    void refresh();
+
+    /** Returns true, if the filter bar is visible. */
+    bool isFilterBarVisible() const;
 
 public slots:
     /**
@@ -151,16 +136,30 @@ private slots:
     void updateProgress(int percent);
 
     /**
-     * Updates the number of items (= number of directories + number of files)
-     * and shows this information in the statusbar.
+     * Assures that the viewport position is restored and updates the
+     * statusbar to reflect the current content.
      */
-    void updateItemCount();
+    void slotDirListerCompleted();
 
     /**
-     * Shows the item information for the URL \a url inside the statusbar. If the
-     * URL is empty, the default statusbar information is shown.
+     * Handles clicking on an item. If the item is a directory, the
+     * directory is opened in the view. If the item is a file, the file
+     * gets started by the corresponding application.
      */
-    void showItemInfo(const KUrl& url);
+    void slotItemTriggered(const KFileItem& item);
+
+    /**
+     * Opens a the file \a url by opening the corresponding application.
+     * Is connected with the signal urlIsFile() from DolphinDirLister and will
+     * get invoked if the user manually has entered a file into the URL navigator.
+     */
+    void openFile(const KUrl& url);
+
+    /**
+     * Shows the information for the item \a item inside the statusbar. If the
+     * item is null, the default statusbar information is shown.
+     */
+    void showItemInfo(const KFileItem& item);
 
     /** Shows the information \a msg inside the statusbar. */
     void showInfoMessage(const QString& msg);
@@ -168,21 +167,24 @@ private slots:
     /** Shows the error message \a msg inside the statusbar. */
     void showErrorMessage(const QString& msg);
 
+    /** Shows the "operation completed" message \a msg inside the statusbar. */
+    void showOperationCompletedMessage(const QString& msg);
+
     void closeFilterBar();
 
     /**
      * Filters the currently shown items by \a nameFilter. All items
      * which contain the given filter string will be shown.
      */
-    void changeNameFilter(const QString& nameFilter);
+    void setNameFilter(const QString& nameFilter);
 
     /**
-     * Opens the context menu on the current mouse postition.
+     * Opens the context menu on the current mouse position.
      * @item  File item context. If item is 0, the context menu
      *        should be applied to \a url.
      * @url   URL which contains \a item.
      */
-    void openContextMenu(KFileItem* item, const KUrl& url);
+    void openContextMenu(const KFileItem& item, const KUrl& url);
 
     /**
      * Saves the position of the contents to the
@@ -202,26 +204,37 @@ private slots:
      */
     void activate();
 
-private:
     /**
-     * Returns the default text of the status bar, if no item is
-     * selected.
+     * Restores the current view to show \a url and assures
+     * that the root URL of the view is respected.
+     */
+    void restoreView(const KUrl& url);
+
+    /**
+     * Saves the root URL of the current URL \a url
+     * into the URL navigator.
      */
-    QString defaultStatusBarText() const;
+    void saveRootUrl(const KUrl& url);
 
     /**
-     * Returns the text for the status bar, if at least one item
-     * is selected.
+     * Is connected with the URL navigator and drops the URLs
+     * above the destination \a destination.
      */
-    QString selectionStatusBarText() const;
+    void dropUrls(const KUrl& destination, QDropEvent* event);
+
+    /**
+     * Is invoked when a redirection is done and changes the
+     * URL of the URL navigator to \a newUrl without triggering
+     * a reloading of the directory.
+     */
+    void redirect(const KUrl& oldUrl, const KUrl& newUrl);
+
+    /** Requests the focus for the view \a m_view. */
+    void requestFocus();
 
 private:
     bool m_showProgress;
 
-    int m_iconSize;
-    int m_folderCount;
-    int m_fileCount;
-
     DolphinMainWindow* m_mainWindow;
     QVBoxLayout* m_topLayout;
     KUrlNavigator* m_urlNavigator;
@@ -231,17 +244,37 @@ private:
     FilterBar* m_filterBar;
     DolphinStatusBar* m_statusBar;
 
-    KDirModel* m_dirModel;
+    DolphinModel* m_dolphinModel;
     DolphinDirLister* m_dirLister;
     DolphinSortFilterProxyModel* m_proxyModel;
 };
 
-KUrlNavigator* DolphinViewContainer::urlNavigator() const
+inline const DolphinStatusBar* DolphinViewContainer::statusBar() const
+{
+    return m_statusBar;
+}
+
+inline DolphinStatusBar* DolphinViewContainer::statusBar()
+{
+    return m_statusBar;
+}
+
+inline const KUrlNavigator* DolphinViewContainer::urlNavigator() const
+{
+    return m_urlNavigator;
+}
+
+inline KUrlNavigator* DolphinViewContainer::urlNavigator()
 {
     return m_urlNavigator;
 }
 
-DolphinView* DolphinViewContainer::view() const
+inline const DolphinView* DolphinViewContainer::view() const
+{
+    return m_view;
+}
+
+inline DolphinView* DolphinViewContainer::view()
 {
     return m_view;
 }