#include <QVBoxLayout>
#include <QWidget>
+class DolphinController;
class FilterBar;
class KUrl;
class KDirModel;
/**
* @short Represents a view for the directory content
- * including the navigation bar and status bar.
+ * including the navigation bar, filter bar and status bar.
*
* View modes for icons and details are supported. Currently
* Dolphin allows to have up to two views inside the main window.
enum Sorting
{
SortByName = 0,
- SortBySize = 1,
- SortByDate = 2,
- MaxSortEnum = SortByDate
+ SortBySize,
+ SortByDate,
+ SortByPermissions,
+ SortByOwner,
+ SortByGroup,
+ MaxSortEnum = SortByGroup
};
DolphinView(DolphinMainWindow* mainwindow,
/**
* Sets the current active URL.
* The signals UrlNavigator::urlChanged() and UrlNavigator::historyChanged()
- * are submitted.
+ * are emitted.
*/
void setUrl(const KUrl& url);
/** Returns the current active URL. */
const KUrl& url() const;
- void requestActivation();
+ /**
+ * Returns true if the view is active and hence all actions are
+ * applied to this view.
+ */
bool isActive() const;
/**
*/
KFileItem* fileItem(const QModelIndex index) const;
- /**
- * Opens the context menu for the item indicated by \a fileInfo
- * on the position \a pos. If 0 is passed for the file info, a context
- * menu for the viewport is opened.
- */
- void openContextMenu(KFileItem* fileInfo, const QPoint& pos);
-
/**
* Renames the filename of the source URL by the new file name.
* If the new file name already exists, a dialog is opened which
/** Reloads the current directory. */
void reload();
- /**
- * Declare this View as the activeview of the mainWindow()
- */
- void declareViewActive();
-
public slots:
/**
* Popups the filter bar above the status bar if \a show is true.
*/
void updateStatusBar();
+ /**
+ * Requests the main window to set this view as active view, which
+ * means that all actions are applied to this view.
+ */
+ void requestActivation();
+
signals:
/** Is emitted if URL of the view has been changed to \a url. */
void urlChanged(const KUrl& url);
/**
* Is emitted if information of an item is requested to be shown e. g. in the sidebar.
- * It the U is empty, no item information request is pending.
+ * It the URL is empty, no item information request is pending.
*/
void requestItemInfo(const KUrl& url);
*/
void updateItemCount();
+ /**
+ * Restores the x- and y-position of the contents if the
+ * current view is part of the history.
+ */
+ void restoreContentsPos();
+
/** Shows the information \a msg inside the statusbar. */
void showInfoMessage(const QString& msg);
*/
void changeNameFilter(const QString& nameFilter);
+ /**
+ * Opens the context menu on position \a pos. The position
+ * is used to check whether the context menu is related to an
+ * item or to the viewport.
+ */
+ void openContextMenu(const QPoint& pos);
+
+ /**
+ * Drops the URLs \a urls at the position \a pos.
+ * The position is used to check whether the dropping
+ * is done above an item or above the viewport.
+ */
+ void dropUrls(const KUrl::List& urls,
+ const QPoint& pos);
+
+ /**
+ * Drops the URLs \a urls at the
+ * destination \a destination.
+ */
+ void dropUrls(const KUrl::List& urls,
+ const KUrl& destination);
+ /**
+ * Updates the view properties of the current URL to the
+ * sorting given by \a sorting.
+ */
+ void updateSorting(DolphinView::Sorting sorting);
+
+ /**
+ * Updates the view properties of the current URL to the
+ * sort order given by \a order.
+ */
+ void updateSortOrder(Qt::SortOrder order);
+
+ /**
+ * Emits the signal contentsMoved with the current coordinates
+ * of the viewport as parameters.
+ */
+ void emitContentsMoved();
+
+ /**
+ * Updates the activation state of the view by checking whether
+ * the currently active view is this view.
+ */
+ void updateActivationState();
+
private:
void startDirLister(const KUrl& url, bool reload = false);
*/
void createView();
- /**
- * Returns the column index used in the KDirModel depending on \a sorting.
- */
- int columnIndex(Sorting sorting) const;
-
/**
* Selects all items by using the selection flags \a flags. This is a helper
* method for the slots DolphinView::selectAll() and DolphinView::invertSelection().
QVBoxLayout* m_topLayout;
UrlNavigator* m_urlNavigator;
+ DolphinController* m_controller;
DolphinIconsView* m_iconsView;
DolphinDetailsView* m_detailsView;