#ifndef FSWIDGET_H #define FSWIDGET_H #include #include class QComboBox; class QTreeView; class QStandardItemModel; class QSortFilterProxyModel; class QContextMenuEvent; class NewMovieWizard; class Viewer; class FSProxy; class FSWidget : public QWidget { Q_OBJECT public: enum CustomRoles { FullPathRole = Qt::UserRole + 1, DurationRole = Qt::UserRole + 2, SizeRole = Qt::UserRole + 3, MimeRole = Qt::UserRole + 4 }; explicit FSWidget(QWidget *parent = nullptr); ~FSWidget(); protected: virtual void contextMenuEvent(QContextMenuEvent *e); public slots: void readSettings(); void writeSettings(); void refresh(); private slots: void insertItem(QComboBox *cb, const QString &text); void removeItem(QComboBox *cb); void gatherData(const QString &curDir); void deleteFiles(); void archiveMovie(); void advanceDir(int by); int queryCount(QSqlQuery &q, const QString &arg); void filterMime(const QString &mime); void unpack(); void doubleClicked(const QModelIndex &idx); void preview(); signals: void message(QString msg); private: void setupWidget(); QComboBox *mDirCB; QComboBox *mFilterCB; QTreeView *mFileView; QStandardItemModel *mModel; FSProxy *mProxy; NewMovieWizard *mMovieWizard; Viewer *mViewer; int mQueryCount; }; #endif // FSWIDGET_H