1 #ifndef DIRECTORYTREEVIEWMODEL_H 2 #define DIRECTORYTREEVIEWMODEL_H 3 4 #include "directorymodel.h" 5 #include "config/local.h" 6 #include "directorycontextmenu.h" 7 #include "directorysortmenu.h" 8 9 #include <QObject> 10 #include <QTreeView> 11 #include <QPoint> 12 #include <QString> 13 #include <QDir> 14 #include <QEvent> 15 #include <QLineEdit> 16 #include <QComboBox> 17 #include <QToolButton> 18 19 namespace DirectoryUi { 20 class Controller : public QObject { 21 Q_OBJECT 22 23 public: 24 explicit Controller(QTreeView *view, QLineEdit *search, QComboBox *libswitch, QToolButton *libcfg, QToolButton *libsort, Config::Local &local_cfg, QObject *parent = nullptr); 25 26 signals: 27 void createNewPlaylist(const QList<QDir> &filepaths); 28 void appendToCurrentPlaylist(const QList<QDir> &filepaths); 29 30 private slots: 31 void on_search(const QString& term); 32 void on_doubleclick(const QModelIndex &index); 33 34 private: 35 QTreeView *view; 36 Model *model; 37 QLineEdit *search; 38 Config::Local &local_conf; 39 bool restore_scroll_once; 40 DirectoryContextMenu *context_menu; 41 DirectoryUi::SortMenu *sort_menu; 42 43 void settingsDialog(QComboBox *libswitch); 44 45 protected: 46 bool eventFilter(QObject *obj, QEvent *event) override; 47 }; 48 } 49 50 #endif // DIRECTORYTREEVIEWMODEL_H 51