#include <kfileitem.h>
#include <kfileitemdelegate.h>
+#include <kglobalsettings.h>
#include <kio/job.h>
#include <kurlnavigator.h>
class DolphinMainWindow;
class DolphinSortFilterProxyModel;
class DolphinStatusBar;
-class QModelIndex;
/**
* @short Represents a view for the directory content
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.
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:
/**
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);
/**
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.
/**
* 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
*/
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()).
* 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;
DolphinView* m_view;
FilterBar* m_filterBar;
+
DolphinStatusBar* m_statusBar;
+ QTimer* m_statusBarTimer;
DolphinModel* m_dolphinModel;
DolphinDirLister* m_dirLister;