#ifndef FSWIDGET_H #define FSWIDGET_H #include #include class QComboBox; class QTreeView; class QStandardItemModel; class QSortFilterProxyModel; class QContextMenuEvent; class QAction; class NewMovieWizard; class NewPicsDialog; class Viewer; class FSProxy; class SmView; 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, DupDataRole = Qt::UserRole + 5 }; explicit FSWidget(QWidget *parent = nullptr); QString wTitle; ~FSWidget(); 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 archivePics(); 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(); void playSelected(int count, QString player); void selectFilter(); void calculateSelectionChanged(); signals: void message(QString msg); void selectionChanged(int count, qint64 size, qint64 duration); void needRefreshFs(); void needConfig(); void needTitleChange(QString msg); private: void setupWidget(); QComboBox *mDirCB; QComboBox *mFilterCB; SmView *mFileView; QStandardItemModel *mModel; FSProxy *mProxy; NewMovieWizard *mMovieWizard; NewPicsDialog *mNewPicsDlg; Viewer *mViewer; int mQueryCount; QAction *mPlayWithA; }; #endif // FSWIDGET_H