综合平台编程器项目的远程存储
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

43 řádky
1001 B

  1. #pragma once
  2. #include <string>
  3. class ProjectService;
  4. // HMI 页面跳转失败分类
  5. enum class HmiNavigationError
  6. {
  7. None,
  8. NoPages,
  9. PageNotFound
  10. };
  11. // 页面跳转结果;成功时 pageId 是当前页 ID
  12. struct HmiNavigationResult
  13. {
  14. bool succeeded = false;
  15. HmiNavigationError error = HmiNavigationError::None;
  16. std::string message;
  17. std::string pageId;
  18. };
  19. // 管理运行态当前页面,不直接操作 Qt 页面控件
  20. class HmiNavigationService
  21. {
  22. public:
  23. explicit HmiNavigationService(ProjectService &project_service);
  24. // 进入工程初始页面
  25. HmiNavigationResult start();
  26. // 跳转到指定页面;目标不存在时保留原页面
  27. HmiNavigationResult navigateTo(const std::string &page_id);
  28. // 结束运行会话并清空当前页
  29. void stop();
  30. // 返回当前运行页面 ID,未启动时为空
  31. const std::string &currentPageId() const;
  32. private:
  33. ProjectService &project_service_;
  34. std::string current_page_id_;
  35. };