CmQtProjectSelection.h 998 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <QtWidgets/QDialog>
  3. #include <QtWidgets/QListWidget>
  4. #include <QtWidgets/QPushButton>
  5. #ifndef Q_MOC_RUN // Qt MOC doesn't handle some of the macros inside this header
  6. #include <boost/signal.hpp>
  7. #endif
  8. namespace CamelotEditor
  9. {
  10. class QtProjectSelection : public QDialog
  11. {
  12. Q_OBJECT
  13. public:
  14. QtProjectSelection(QWidget *parent = nullptr);
  15. ~QtProjectSelection();
  16. public:
  17. boost::signal<void(const QString&)> onProjectSelected;
  18. private:
  19. QListWidget* mListRecentProjects;
  20. QPushButton* mBtnOpen;
  21. QPushButton* mBtnNew;
  22. QPushButton* mBtnOpenOther;
  23. void setupUi();
  24. void setupSignals();
  25. void retranslateUi();
  26. void setObjectNames();
  27. void openProject(const QString& path);
  28. void addRecentlyUsedProject(const QString& path);
  29. void removeRecentlyUsedProject(const QString& path);
  30. void reloadProjectList();
  31. private Q_SLOTS:
  32. void newProject();
  33. void browseProject();
  34. void openSelectedProject();
  35. };
  36. }