X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ab39a5952001cdb3d1b9ca693da7f8e246558fb8..258bbc01223ce35e6c81733be49eb50b45107b39:/src/dolphinview.h diff --git a/src/dolphinview.h b/src/dolphinview.h index 97054b754..352841f4a 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -41,18 +41,18 @@ typedef KIO::FileUndoManager::CommandType CommandType; -class DolphinController; class DolphinColumnViewContainer; class DolphinDetailsView; class DolphinIconsView; -class DolphinMainWindow; class DolphinModel; class DolphinSortFilterProxyModel; +class DolphinViewController; class KFilePreviewGenerator; class KAction; class KActionCollection; class KDirLister; class KUrl; +class ViewModeController; class ViewProperties; class DolphinDetailsViewExpander; @@ -113,9 +113,9 @@ public: SortByOwner, SortByGroup, SortByType, - SortByRating, - SortByTags, - MaxSortEnum = SortByTags + SortByDestination, + SortByPath, + MaxSortingEnum = SortByPath }; /** @@ -135,7 +135,7 @@ public: * Returns the current active URL, where all actions are applied. * The URL navigator is synchronized with this URL. */ - const KUrl& url() const; + KUrl url() const; /** * Returns the root URL of the view, which is defined as the first @@ -181,6 +181,14 @@ public: */ bool supportsCategorizedSorting() const; + /** + * Marks the items indicated by \p urls to get selected after the + * directory DolphinView::url() has been loaded. Note that nothing + * gets selected if no loading of a directory has been triggered + * by DolphinView::setUrl() or DolphinView::reload(). + */ + void markUrlsAsSelected(const QList& urls); + /** * Returns the selected items. The list is empty if no item has been * selected. @@ -203,23 +211,6 @@ public: QItemSelectionModel* selectionModel() const; - /** - * Sets the upper left position of the view content - * to (x,y). The content of the view might be larger than the visible area - * and hence a scrolling must be done. - */ - void setContentsPosition(int x, int y); - - /** - * Sets the upper left position of the view content - * to (x,y) after the directory loading is finished. - * This is useful when going back or forward in history. - */ - void setRestoredContentsPosition(const QPoint& pos); - - /** Returns the upper left position of the view content. */ - QPoint contentsPosition() const; - /** * Sets the zoom level to \a level. It is assured that the used * level is adjusted to be inside the range ZoomLevelInfo::minimumLevel() and @@ -274,16 +265,6 @@ public: */ void refresh(); - /** - * Changes the directory of the view to \a url. If \a rootUrl is empty, the view - * properties from \a url are used for adjusting the view mode and the other properties. - * If \a rootUrl is not empty, the view properties from the root URL are considered - * instead. Specifying a root URL is only required if a view having a different root URL - * (e. g. the column view) should be restored. Usually using DolphinView::setUrl() - * is enough for changing the current URL. - */ - void updateView(const KUrl& url, const KUrl& rootUrl); - /** * Filters the currently shown items by \a nameFilter. All items * which contain the given filter string will be shown. @@ -333,15 +314,6 @@ public: void setTabsForFilesEnabled(bool tabsForFiles); bool isTabsForFilesEnabled() const; - /** - * Marks the item \a url as active item as soon as it has - * been loaded by the directory lister. This is useful mark - * the previously visited directory as active when going - * back in history (the URL is known, but the item is not - * loaded yet). - */ - void activateItem(const KUrl& url); - /** * Returns true if the current view allows folders to be expanded, * i.e. presents a hierarchical view to the user. @@ -351,12 +323,12 @@ public: /** * Restores the view state (current item, contents position, details view expansion state) */ - void restoreState(QDataStream &stream); + void restoreState(QDataStream& stream); /** * Saves the view state (current item, contents position, details view expansion state) */ - void saveState(QDataStream &stream); + void saveState(QDataStream& stream); public slots: /** @@ -383,14 +355,6 @@ public slots: void clearSelection(); - /** - * Request of a selection change. The view will do its best to accommodate - * the request, but it is not guaranteed that all items in \a selection - * will actually get selected. The view will e.g. not select items which - * are not in the currently displayed folder. - */ - void changeSelection(const KFileItemList& selection); - /** * Triggers the renaming of the currently selected items, where * the user must input a new name for the items. @@ -474,12 +438,6 @@ signals: /** Is emitted if URL of the view has been changed to \a url. */ void urlChanged(const KUrl& url); - /** - * Is emitted if the view requests a changing of the current - * URL to \a url (see DolphinController::triggerUrlChangeRequest()). - */ - void requestUrlChange(const KUrl& url); - /** * Is emitted when clicking on an item with the left mouse button. */ @@ -526,9 +484,6 @@ signals: */ void requestItemInfo(const KFileItem& item); - /** Is emitted if the contents has been moved to \a x, \a y. */ - void contentsMoved(int x, int y); - /** * Is emitted whenever the selection has been changed. */ @@ -602,7 +557,7 @@ private slots: * the signal is emitted only after no selection change has been done * within a small delay. */ - void emitDelayedSelectionChangedSignal(); + void slotSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected); /** * Is called by emitDelayedSelectionChangedSignal() and emits the @@ -650,12 +605,6 @@ private slots: */ void updateAdditionalInfo(const KFileItemDelegate::InformationList& info); - /** - * Emits the signal contentsMoved with the current coordinates - * of the viewport as parameters. - */ - void emitContentsMoved(); - /** * Updates the status bar to show hover information for the * item \a item. If currently other items are selected, @@ -676,12 +625,6 @@ private slots: */ void slotDeleteFileFinished(KJob* job); - /** - * Is emitted if the controller requests a changing of the current - * URL to \a url - */ - void slotRequestUrlChange(const KUrl& url); - /** * Invoked when the directory lister has completed the loading of * items. Assures that pasted items and renamed items get seleced. @@ -714,11 +657,6 @@ private slots: */ void selectAndScrollToCreatedItem(); - /** - * Restore selection after view refresh. - */ - void restoreSelection(); - /** * Called when a redirection happens. * Testcase: fish://localhost @@ -792,7 +730,10 @@ private: ViewAccessor(DolphinSortFilterProxyModel* proxyModel); ~ViewAccessor(); - void createView(QWidget* parent, DolphinController* controller, Mode mode); + void createView(QWidget* parent, + DolphinViewController* dolphinViewController, + const ViewModeController* viewModeController, + Mode mode); void deleteView(); /** @@ -840,7 +781,6 @@ private: bool m_active : 1; bool m_showPreview : 1; - bool m_loadingDirectory : 1; bool m_storedCategorizedSorting : 1; bool m_tabsForFiles : 1; bool m_isContextMenuOpen : 1; // TODO: workaround for Qt-issue 207192 @@ -850,10 +790,10 @@ private: Mode m_mode; - DolphinMainWindow* m_mainWindow; QVBoxLayout* m_topLayout; - DolphinController* m_controller; + DolphinViewController* m_dolphinViewController; + ViewModeController* m_viewModeController; ViewAccessor m_viewAccessor; QItemSelectionModel* m_selectionModel; // allow to switch views without losing the selection