#ifndef SEARCHDIALOG_H #define SEARCHDIALOG_H #include class QLineEdit; class QComboBox; class QTreeView; class QStandardItemModel; class QStandardItem; class SearchDialog : public QDialog { Q_OBJECT public: enum SearchTypes { Filename, Title, Actors }; enum CustomRoles { IdRole = Qt::UserRole + 1 }; enum ChildMode { Actor, Genre }; explicit SearchDialog(QWidget *parent, Qt::WindowFlags f = 0); virtual ~SearchDialog(); public slots: void doSearch(); void doResult(const QModelIndex &cur, const QModelIndex &prev); void doSearchTitle(); void doSearchFilename(); void doSearchActor(); void doResultName(const QModelIndex &sel, int resType); void doResultActor(const QModelIndex &sel); void writeSettings(); void readSettings(); protected: virtual void keyPressEvent(QKeyEvent *e); private: void doChild(QStandardItem *item, int childMode); void doActorGenres(QStandardItem *item); QLineEdit *mSearch; QComboBox *mTypeSel; QTreeView *mResV; QTreeView *mDataV; QStandardItemModel *mResM; QStandardItemModel *mDataM; }; #endif // SEARCHDIALOG_H