]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.h
SVN_SILENT: minor coding style fix (Sebastian likes spaces :-))
[dolphin.git] / src / dolphinviewcontainer.h
index 7c81384d2be019e99c768a2507e11d9206d4eed6..0f2ab9aad387ab8b61d55cccb87d126ed772f514 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <kfileitem.h>
 #include <kfileitemdelegate.h>
+#include <kglobalsettings.h>
 #include <kio/job.h>
 
 #include <kurlnavigator.h>
@@ -43,7 +44,6 @@ class DolphinDirLister;
 class DolphinMainWindow;
 class DolphinSortFilterProxyModel;
 class DolphinStatusBar;
-class QModelIndex;
 
 /**
  * @short Represents a view for the directory content
@@ -68,15 +68,6 @@ public:
 
     virtual ~DolphinViewContainer();
 
-    /**
-     * Sets the current active URL, where all actions are applied. The
-     * URL navigator is synchronized with this URL. The signals
-     * KUrlNavigator::urlChanged() and KUrlNavigator::historyChanged()
-     * are emitted.
-     * @see DolphinViewContainer::urlNavigator()
-     */
-    void setUrl(const KUrl& url);
-
     /**
      * Returns the current active URL, where all actions are applied.
      * The URL navigator is synchronized with this URL.
@@ -105,21 +96,28 @@ public:
     const DolphinView* view() const;
     DolphinView* view();
 
+    /**
+     * Refreshes the view container to get synchronized with the (updated) Dolphin settings.
+     */
+    void refresh();
+
     /** Returns true, if the filter bar is visible. */
     bool isFilterBarVisible() const;
 
 public slots:
     /**
-     * Popups the filter bar above the status bar if \a show is true.
+     * Sets the current active URL, where all actions are applied. The
+     * URL navigator is synchronized with this URL. The signals
+     * KUrlNavigator::urlChanged() and KUrlNavigator::historyChanged()
+     * are emitted.
+     * @see DolphinViewContainer::urlNavigator()
      */
-    void showFilterBar(bool show);
+    void setUrl(const KUrl& url);
 
     /**
-     * Updates the number of items (= number of files + number of
-     * directories) in the statusbar. If files are selected, the number
-     * of selected files and the sum of the filesize is shown.
+     * Popups the filter bar above the status bar if \a show is true.
      */
-    void updateStatusBar();
+    void showFilterBar(bool show);
 
 signals:
     /**
@@ -128,6 +126,23 @@ signals:
     void showFilterBarChanged(bool shown);
 
 private slots:
+    /**
+     * Updates the number of items (= number of files + number of
+     * directories) in the statusbar. If files are selected, the number
+     * of selected files and the sum of the filesize is shown. The update
+     * is done asynchronously, as getting the sum of the
+     * filesizes can be an expensive operation.
+     */
+    void delayedStatusBarUpdate();
+
+    /**
+     * Is invoked by DolphinViewContainer::delayedStatusBarUpdate() and
+     * updates the status bar synchronously.
+     */
+    void updateStatusBar();
+
+    void initializeProgress();
+
     void updateProgress(int percent);
 
     /**
@@ -137,10 +152,19 @@ private slots:
     void slotDirListerCompleted();
 
     /**
-     * Handles clicking on an item
+     * 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 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.
@@ -166,11 +190,15 @@ private slots:
 
     /**
      * 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.
+     * @item          File item context. If item is null, the context menu
+     *                should be applied to \a url.
+     * @url           URL which contains \a item.
+     * @customActions Actions that should be added to the context menu,
+     *                if the file item is null.
      */
-    void openContextMenu(const KFileItem& item, const KUrl& url);
+    void openContextMenu(const KFileItem& item,
+                         const KUrl& url,
+                         const QList<QAction*>& customActions);
 
     /**
      * Saves the position of the contents to the
@@ -178,12 +206,6 @@ private slots:
      */
     void saveContentsPos(int x, int y);
 
-    /**
-     * Restores the contents position of the view, if the view
-     * is part of the history.
-     */
-    void restoreContentsPos();
-
     /**
      * Marks the view container as active
      * (see DolphinViewContainer::setActive()).
@@ -201,28 +223,33 @@ private slots:
      * into the URL navigator.
      */
     void saveRootUrl(const KUrl& url);
-    
+
     /**
      * Is connected with the URL navigator and drops the URLs
      * above the destination \a destination.
      */
     void dropUrls(const KUrl& destination, QDropEvent* event);
 
-private:
     /**
-     * Returns the default text of the status bar, if no item is
-     * selected.
+     * 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.
      */
-    QString defaultStatusBarText() const;
+    void redirect(const KUrl& oldUrl, const KUrl& newUrl);
+
+    /** Requests the focus for the view \a m_view. */
+    void requestFocus();
 
     /**
-     * Returns the text for the status bar, if at least one item
-     * is selected.
+     * Saves the currently used URL completion mode of
+     * the URL navigator.
      */
-    QString selectionStatusBarText() const;
+    void saveUrlCompletionMode(KGlobalSettings::Completion completion);
+
+    void slotHistoryChanged();
 
 private:
-    bool m_showProgress;
+    bool m_isFolderWritable;
 
     DolphinMainWindow* m_mainWindow;
     QVBoxLayout* m_topLayout;
@@ -231,7 +258,9 @@ private:
     DolphinView* m_view;
 
     FilterBar* m_filterBar;
+
     DolphinStatusBar* m_statusBar;
+    QTimer* m_statusBarTimer;
 
     DolphinModel* m_dolphinModel;
     DolphinDirLister* m_dirLister;