ProjectManager.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <QTreeWidget>
  3. #include <QWidget>
  4. #include <list>
  5. #include "metavis.h"
  6. #include <future>
  7. #include <QStringList>
  8. #include <QFuture>
  9. #include <QFutureWatcher>
  10. #include "Project.h"
  11. class metavis;
  12. class ProjectManager : public QWidget
  13. {
  14. Q_OBJECT
  15. public:
  16. ProjectManager(metavis* owner);
  17. ~ProjectManager();
  18. Project project;
  19. void openFileDialog();
  20. void openFiles(QStringList pathlist);
  21. QMenu* projectMenu;
  22. private:
  23. std::future<void> loadingFuture = std::async(std::launch::async, []() {});
  24. QFuture<void> future;
  25. QFutureWatcher<void> watcher = QFutureWatcher<void>(this);
  26. metavis* owner;
  27. QTreeWidget* treeWidget;
  28. QTreeWidgetItem* projectItem;
  29. void displayNewFile();
  30. QMenu* metalogFileMenu;
  31. QMenu* singleRunMenu;
  32. QAction* removeMetalogFileAction;
  33. QAction* selectAction;
  34. enum Types{ LogManger = 1001, LogFile, Run, GraphManger, Graph, ProjectHeader};
  35. QString lastPath;
  36. void createTreeWidget();
  37. void showItem(QTreeWidgetItem* item);
  38. private slots:
  39. void prepareMenu(const QPoint& pos);
  40. void itemClicked(QTreeWidgetItem* item, int column);
  41. };