#ifndef MOVIEWIDGET_H #define MOVIEWIDGET_H #include class QLineEdit; class QComboBox; class QTreeView; class QSortFilterProxyModel; class QStandardItemModel; class SmView; class MoviePropertiesDialog; class EditFileDialog; class MovieWidget : public QWidget { Q_OBJECT public: enum CustomRoles { SeriesPartIdRole = Qt::UserRole + 1, CountRole = Qt::UserRole + 2, MD5SumRole = Qt::UserRole + 3, SeriesNameRole = Qt::UserRole + 4, SubtitleRole = Qt::UserRole + 5, SeriesPartRole = Qt::UserRole + 6, FullPathRole = Qt::UserRole + 7, FilenameRole = Qt::UserRole + 8 }; explicit MovieWidget(QWidget *parent = nullptr); QString wTitle; ~MovieWidget(); signals: void needTitleChange(QString title); public slots: void readSettings(); void writeSettings(); void refresh(); private slots: void selectBy(const QString &selection); void populateBySeries(); void populateByActors(); void populateByGenres(); void topSelectionChanged(); void bottomDoubleClicked(const QModelIndex &idx); void topDoubleClicked(const QModelIndex &idx); void playSelected(); void copyToClipboard(int role); void editFile(); void forwardSelection(int by); private: void setupWidget(); QLineEdit *mFilterLE; QComboBox *mSelectionCB; QTreeView *mTopView; QSortFilterProxyModel *mTopProxy; QStandardItemModel *mTopModel; SmView *mBottomView; QSortFilterProxyModel *mBottomProxy; QStandardItemModel *mBottomModel; MoviePropertiesDialog *mPropDlg; EditFileDialog *mEditFileDlg; }; #endif // MOVIEWIDGET_H