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