WelcomePagesModel.py 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # Copyright (c) 2019 Ultimaker B.V.
  2. # Cura is released under the terms of the LGPLv3 or higher.
  3. import os
  4. from typing import TYPE_CHECKING, Optional
  5. from PyQt5.QtCore import QUrl, Qt
  6. from UM.Qt.ListModel import ListModel
  7. from UM.Resources import Resources
  8. from logging import Logger
  9. if TYPE_CHECKING:
  10. from PyQt5.QtCore import QObject
  11. class WelcomePagesModel(ListModel):
  12. IdRole = Qt.UserRole + 1 # Page ID
  13. PageUrlRole = Qt.UserRole + 2 # URL to the page's QML file
  14. NextPageIdRole = Qt.UserRole + 3 # The next page ID it should go to
  15. def __init__(self, parent: Optional["QObject"] = None) -> None:
  16. super().__init__(parent)
  17. self.addRoleName(self.IdRole, "id")
  18. self.addRoleName(self.PageUrlRole, "page_url")
  19. self.addRoleName(self.NextPageIdRole, "next_page_id")
  20. self._pages = []
  21. def initialize(self) -> None:
  22. from cura.CuraApplication import CuraApplication
  23. # Add default welcome pages
  24. self._pages.append({"id": "welcome",
  25. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  26. os.path.join("WelcomePages",
  27. "WelcomeContent.qml"))),
  28. })
  29. self._pages.append({"id": "user_agreement",
  30. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  31. os.path.join("WelcomePages",
  32. "UserAgreementContent.qml"))),
  33. })
  34. self._pages.append({"id": "whats_new",
  35. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  36. os.path.join("WelcomePages",
  37. "WhatsNewContent.qml"))),
  38. })
  39. self._pages.append({"id": "data_collections",
  40. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  41. os.path.join("WelcomePages",
  42. "DataCollectionsContent.qml"))),
  43. })
  44. self._pages.append({"id": "add_printer_by_ip",
  45. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  46. os.path.join("WelcomePages", "AddPrinterByIpContent.qml")))})
  47. self._pages.append({"id": "cloud",
  48. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  49. os.path.join("WelcomePages",
  50. "CloudContent.qml"))),
  51. })
  52. self.setItems(self._pages)
  53. def addPage(self):
  54. pass
  55. __all__ = ["WelcomePagesModel"]