/***************************************************************************
- * Copyright (C) 2007 by Peter Penz <peter.penz@gmx.at> *
+ * Copyright (C) 2007 by Peter Penz <peter.penz19@gmail.com> *
* *
* 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 *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
-
#ifndef DOLPHINVIEWCONTAINER_H
#define DOLPHINVIEWCONTAINER_H
-#include <kfileitem.h>
-#include <kfileitemdelegate.h>
-#include <kglobalsettings.h>
-#include <kio/job.h>
+#include <KFileItem>
+#include <KFileItemDelegate>
+#include <KGlobalSettings>
+#include <KIO/Job>
-#include <kurlnavigator.h>
+#include <KUrlNavigator>
#include <QElapsedTimer>
#include <QWidget>
class FilterBar;
class KUrl;
-class DolphinModel;
class KUrlNavigator;
-class DolphinDirLister;
class DolphinSearchBox;
-class DolphinSortFilterProxyModel;
class DolphinStatusBar;
/**
* @short Represents a view for the directory content
* including the navigation bar, filter bar and status bar.
*
- * View modes for icons, details and columns are supported. Currently
+ * View modes for icons, compact and details are supported. Currently
* Dolphin allows to have up to two views inside the main window.
*
* @see DolphinView
const DolphinView* view() const;
DolphinView* view();
+ const DolphinSearchBox* searchBox() const;
+ DolphinSearchBox* searchBox();
+
/**
* Refreshes the view container to get synchronized with the (updated) Dolphin settings.
*/
- void refresh();
+ void readSettings();
/** Returns true, if the filter bar is visible. */
bool isFilterBarVisible() const;
void setUrl(const KUrl& url);
/**
- * Popups the filter bar above the status bar if \a show is true.
+ * Popups the filter bar above the status bar if \a visible is true.
+ * It \a visible is true, it is assured that the filter bar gains
+ * the keyboard focus.
*/
- void showFilterBar(bool show);
+ void setFilterBarVisible(bool visible);
signals:
/**
* 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.
+ * Unless a previous OperationCompletedMessage was set very shortly before
+ * calling this method, it will be overwritten (see DolphinStatusBar::setMessage).
+ * Previous ErrorMessages however are always preserved.
*/
void delayedStatusBarUpdate();
*/
void updateStatusBar();
- void initializeProgress();
+ void updateDirectoryLoadingProgress(int percent);
+
+ void updateDirectorySortingProgress(int percent);
- void updateProgress(int percent);
+ /**
+ * Updates the statusbar to show an undetermined progress with the correct
+ * context information whether a searching or a directory loading is done.
+ */
+ void slotDirectoryLoadingStarted();
/**
* Assures that the viewport position is restored and updates the
* statusbar to reflect the current content.
*/
- void slotDirListerCompleted();
+ void slotDirectoryLoadingCompleted();
/**
* 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);
+ void slotItemActivated(const KFileItem& item);
/**
* Shows the information for the item \a item inside the statusbar. If the
void activate();
/**
- * Saves the state of the current view: contents position,
- * root URL, ...
+ * Is invoked if the signal urlAboutToBeChanged() from the DolphinView
+ * is emitted. Tries to save the view-state.
*/
- void saveViewState();
+ void slotViewUrlAboutToBeChanged(const KUrl& url);
+
+ /**
+ * Is invoked if the signal urlAboutToBeChanged() from the URL navigator
+ * is emitted. Tries to save the view-state.
+ */
+ void slotUrlNavigatorLocationAboutToBeChanged(const KUrl& url);
/**
* Restores the current view to show \a url and assures
void startSearching(const QString& text);
void closeSearchBox();
+ /**
+ * Stops the loading of a directory. Is connected with the "stopPressed" signal
+ * from the statusbar.
+ */
+ void stopLoading();
+
private:
/**
* @return True if the URL protocol is a search URL (e. g. nepomuksearch:// or filenamesearch://).
*/
bool isSearchUrl(const KUrl& url) const;
-private:
- bool m_isFolderWritable;
+ /**
+ * Saves the state of the current view: contents position,
+ * root URL, ...
+ */
+ void saveViewState();
+private:
QVBoxLayout* m_topLayout;
KUrlNavigator* m_urlNavigator;
DolphinSearchBox* m_searchBox;
DolphinStatusBar* m_statusBar;
QTimer* m_statusBarTimer; // Triggers a delayed update
QElapsedTimer m_statusBarTimestamp; // Time in ms since last update
-
- DolphinModel* m_dolphinModel;
- DolphinDirLister* m_dirLister;
- DolphinSortFilterProxyModel* m_proxyModel;
};
-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;
-}
-
-inline const DolphinView* DolphinViewContainer::view() const
-{
- return m_view;
-}
-
-inline DolphinView* DolphinViewContainer::view()
-{
- return m_view;
-}
-
#endif // DOLPHINVIEWCONTAINER_H