#ifndef PROJECTFILESYSTEMWIDGET_H #define PROJECTFILESYSTEMWIDGET_H #include "ui_projectfilesystemwidget.h" #include "filterdialog.h" #include #include #include #include #include #include extern QFileInfo projectfs_menu_target; class ProjectsModel; class ProjectFilesystemWidget: public QWidget, private Ui::ProjectFilesystemWidget { Q_OBJECT public: explicit ProjectFilesystemWidget(QWidget * parent = 0); FilterDialog::Filter currentFilters() const {return cur_filter;} QString currentSearch() const {return lineFilter->text();} void setCurrentFilter(const FilterDialog::Filter & v); void setCurrentSearch(QString v) {lineFilter->setText(v);} protected: void changeEvent(QEvent * e) override; void timerEvent(QTimerEvent * e) override; void createTree(QTreeWidgetItem * ti, const QString & dir, bool proc_events = true); void createProjectTree(void * p); void projectNameChanged(); bool filterTree(QTreeWidgetItem * ti, const QString & filter); void filter(); void rememberExpanded(QTreeWidgetItem * ti); void restoreExpanded(QTreeWidgetItem * ti); void setExtVariable(); void checkProcEvents(); void * itemProject(QTreeWidgetItem * ti); QTreeWidgetItem * projectItem(void * p); void cleanMappedItems(); bool in_proc, need_rebuild; int timer_fs_changed = 0; ExtensionSystem::IPlugin * proj_plug; QMenu popup_menu; QList this_actions; QMap item_map; QSet last_expanded, fs_changed; FilterDialog filter_dialog; FilterDialog::Filter cur_filter; QElapsedTimer tm; QFileSystemWatcher fs_watcher; QTreeWidgetItem * item_target; public slots: void projectsChanged(); void filterClicked(); private slots: void currentFileChanged(); void startupProjectChanged(); void directoryChanged(const QString & path); void on_tree_itemDoubleClicked(QTreeWidgetItem * item, int ); void on_lineFilter_textChanged(const QString &); void on_tree_itemClicked(QTreeWidgetItem *item, int column); void on_tree_customContextMenuRequested(const QPoint & pos); void on_actionOpen_here_triggered(); void on_actionOpen_external_triggered(); void on_actionShow_external_triggered(); void on_actionOpen_terminal_triggered(); void on_actionCopy_name_triggered(); void on_actionCopy_path_triggered(); void on_actionSet_as_startup_triggered(); void on_actionBuild_triggered(); void on_actionRebuild_triggered(); void on_actionClean_triggered(); void on_actionRun_triggered(); void on_actionClose_project_triggered(); }; #endif // PROJECTFILESYSTEMWIDGET_H