#ifndef FILEWIDGET_H #define FILEWIDGET_H #include #include #include class QLineEdit; class QPushButton; class QStandardItemModel; class QTreeView; class VideoSorter; class FileDisplay; class FileWidget : public QWidget { Q_OBJECT public: enum FileAttrs { NotPresent = 0, Present = 1, NoVideo = 2, ParentDir = 3, Directory = 4 }; enum CustomRoles { AttrsRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, MD5SumRole = Qt::UserRole + 3 }; enum { ColumnCount = 4 }; enum Columns { IconColumn = 0, NameColumn = 1, MimeColumn = 2, Md5Column = 3 }; explicit FileWidget(QWidget *parent = 0); ~FileWidget(); private slots: void gatherData(); void selectDir(); void searchFile(); void itemDoubleClicked(const QModelIndex &idx); private: void setupGui(); int md5Count(const QString &md5); void readHeaderData(); void writeHeaderData(); void readSettings(); void writeSettings(); QLineEdit *mDir; QPushButton *mSelDir; QLineEdit *mSearchFile; QPushButton *mSearch; QStandardItemModel *mModel; QTreeView *mFileView; VideoSorter *mProxy; QSqlDatabase mDb; QSqlQuery mQOrigin; QSqlQuery mQFiles; FileDisplay *mFileDisplay; }; #endif // FILEWIDGET_H