#include <QKeyEvent>
#include <QLinkedList>
#include <QListView>
+#include <QSet>
#include <QWidget>
typedef KIO::FileUndoManager::CommandType CommandType;
class KDirLister;
class KUrl;
class KToggleAction;
+class RevisionControlObserver;
class ToolTipManager;
class QModelIndex;
class ViewProperties;
*/
QString statusBarText() const;
+ /**
+ * Returns the revision control actions that are provided for the items \p items.
+ * Usually the actions are presented in the context menu.
+ */
+ QList<QAction*> revisionControlActions(const KFileItemList& items) const;
+
/**
* Updates the state of the 'Additional Information' actions in \a collection.
*/
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.
*/
void triggerItem(const KFileItem& index);
+ /**
+ * Emits the signal \a selectionChanged() with a small delay. This is
+ * because getting all file items for the signal can be an expensive
+ * operation. Fast selection changes are collected in this case and
+ * the signal is emitted only after no selection change has been done
+ * within a small delay.
+ */
+ void emitDelayedSelectionChangedSignal();
+
+ /**
+ * Is called by emitDelayedSelectionChangedSignal() and emits the
+ * signal \a selectionChanged() with all selected file items as parameter.
+ */
void emitSelectionChangedSignal();
/**
*/
QMimeData* selectionMimeData() const;
+ /**
+ * Is invoked after a paste operation or a drag & drop
+ * operation and adds the filenames of all URLs from \a mimeData to
+ * m_newFileNames. This allows to select all newly added
+ * items in slotDirListerCompleted().
+ */
+ void addNewFileNames(const QMimeData* mimeData);
+
private:
bool m_active : 1;
bool m_showPreview : 1;
bool m_isContextMenuOpen : 1; // TODO: workaround for Qt-issue 207192
bool m_ignoreViewProperties : 1;
bool m_assureVisibleCurrentIndex : 1;
- bool m_selectClipboardItems : 1;
Mode m_mode;
DolphinDetailsView* m_detailsView;
DolphinColumnView* m_columnView;
DolphinFileItemDelegate* m_fileItemDelegate;
+
QItemSelectionModel* m_selectionModel;
+ QTimer* m_selectionChangedTimer;
DolphinModel* m_dolphinModel;
KDirLister* m_dirLister;
KFilePreviewGenerator* m_previewGenerator;
ToolTipManager* m_toolTipManager;
+ RevisionControlObserver* m_revisionControlObserver;
+
KUrl m_rootUrl;
- KUrl m_currentItemUrl;
+ KUrl m_activeItemUrl;
KUrl m_createdItemUrl; // URL for a new item that got created by the "Create New..." menu
- KFileItemList m_selectedItems; //this is used for making the View to remember selections after F5
+ KFileItemList m_selectedItems; // this is used for making the View to remember selections after F5
+
+ /**
+ * Remembers the filenames that have been added by a paste operation
+ * or a drag & drop operation. Allows to select the items in
+ * slotDirListerCompleted().
+ */
+ QSet<QString> m_newFileNames;
QAbstractItemView* m_expandedDragSource;
};