WelcomePagesModel.py 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. self._pages.append({"id": "test",
  23. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  24. os.path.join("WelcomePages",
  25. "TestContent.qml"))),
  26. })
  27. # Add default welcome pages
  28. self._pages.append({"id": "welcome",
  29. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  30. os.path.join("WelcomePages",
  31. "WelcomeContent.qml"))),
  32. })
  33. self._pages.append({"id": "user_agreement",
  34. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  35. os.path.join("WelcomePages",
  36. "UserAgreementContent.qml"))),
  37. })
  38. self._pages.append({"id": "whats_new",
  39. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  40. os.path.join("WelcomePages",
  41. "WhatsNewContent.qml"))),
  42. })
  43. self._pages.append({"id": "data_collections",
  44. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  45. os.path.join("WelcomePages",
  46. "DataCollectionsContent.qml"))),
  47. })
  48. self._pages.append({"id": "add_printer_by_selection",
  49. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  50. os.path.join("WelcomePages",
  51. "AddPrinterBySelectionContent.qml"))),
  52. })
  53. self._pages.append({"id": "add_printer_by_ip",
  54. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  55. os.path.join("WelcomePages",
  56. "AddPrinterByIpContent.qml"))),
  57. })
  58. self._pages.append({"id": "cloud",
  59. "page_url": QUrl.fromLocalFile(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles,
  60. os.path.join("WelcomePages",
  61. "CloudContent.qml"))),
  62. })
  63. self.setItems(self._pages)
  64. def addPage(self):
  65. pass
  66. __all__ = ["WelcomePagesModel"]