22#include <QUndoCommand>
24#include <QFileSystemModel>
32class QAbstractItemView;
33class QItemSelectionModel;
35class PlaylistIconView;
38class QSortFilterProxyModel;
42class FilesDock :
public QDockWidget
47 explicit FilesDock(QWidget *parent = 0);
54 int getCacheMediaType(
const QString &key);
55 void setCacheMediaType(
const QString &key,
int mediaType);
58 void selectionChanged();
61 void onOpenActionTriggered();
62 void changeDirectory(
const QString &path,
bool updateLocation =
true);
63 void changeFilesDirectory(
const QModelIndex &index);
66 void viewCustomContextMenuRequested(
const QPoint &pos);
67 void onMediaTypeClicked();
68 void onOpenOtherAdd();
69 void onOpenOtherRemove();
72 void onLocationsEditingFinished();
74 void on_locationsCombo_activated(
int index);
76 void on_addLocationButton_clicked();
78 void on_removeLocationButton_clicked();
81 void keyPressEvent(QKeyEvent *event);
82 void keyReleaseEvent(QKeyEvent *event);
86 void emitDataChanged(
const QVector<int> &roles);
87 void updateViewMode();
88 void onUpdateThumbnailsActionTriggered();
89 void onSelectAllActionTriggered();
90 void incrementIndex(
int step);
91 void addOpenWithMenu(QMenu *menu);
92 QString firstSelectedFilePath();
93 QString firstSelectedMediaType();
94 void openClip(
const QString &filePath);
97 QAbstractItemView *m_view;
98 PlaylistIconView *m_iconsView;
99 std::unique_ptr<QFileSystemModel> m_dirsModel;
100 FilesModel *m_filesModel;
101 QItemSelectionModel *m_selectionModel;
103 FilesProxyModel *m_filesProxyModel;
104 QHash<QString, CacheItem> m_cache;
106 LineEditClear *m_searchField;