WelcomePagesModel.py 3.5 KB

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