#ifndef FILESYSTEMWIDGET_H #define FILESYSTEMWIDGET_H #include #include #include #include class FilesystemWidget : public QWidget { Q_OBJECT QListView *m_listView; QAbstractItemModel *m_model; public: explicit FilesystemWidget(QAbstractItemModel *model, QWidget *parent = nullptr); void contextMenuEvent(QContextMenuEvent *event) override; private slots: void selectFile(int row); void fileClicked(const QModelIndex &index, const QModelIndex &); signals: void fileSelected(int row); void sortChanged(QDir::SortFlag sort); void reverseSort(); }; class Filetree : public QTreeView { Q_OBJECT QFileSystemModel *m_fileSystemModel; QString m_rootDir; public: explicit Filetree(QWidget *parent = nullptr); ~Filetree() override; void contextMenuEvent(QContextMenuEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override; signals: void fileSelected(const QString &path); void copyFiles(const QString &path); void moveFiles(const QString &path); void indexDirectory(const QString &path); }; #endif // FILESYSTEMWIDGET_H