mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-22 06:03:57 -06:00
Gather and display details of licences for pip packages
CURA-12400
This commit is contained in:
parent
7c04124719
commit
0a112c6c53
7 changed files with 218 additions and 62 deletions
|
@ -110,6 +110,7 @@ from cura.UI.MachineActionManager import MachineActionManager
|
|||
from cura.UI.AddPrinterPagesModel import AddPrinterPagesModel
|
||||
from cura.UI.MachineSettingsManager import MachineSettingsManager
|
||||
from cura.UI.ObjectsModel import ObjectsModel
|
||||
from cura.UI.OpenSourceDependenciesModel import OpenSourceDependenciesModel
|
||||
from cura.UI.RecommendedMode import RecommendedMode
|
||||
from cura.UI.TextManager import TextManager
|
||||
from cura.UI.WelcomePagesModel import WelcomePagesModel
|
||||
|
@ -1308,6 +1309,7 @@ class CuraApplication(QtApplication):
|
|||
qmlRegisterType(AddPrinterPagesModel, "Cura", 1, 0, "AddPrinterPagesModel")
|
||||
qmlRegisterType(TextManager, "Cura", 1, 0, "TextManager")
|
||||
qmlRegisterType(RecommendedMode, "Cura", 1, 0, "RecommendedMode")
|
||||
qmlRegisterType(OpenSourceDependenciesModel, "Cura", 1, 0, "OpenSourceDependenciesModel")
|
||||
|
||||
self.processEvents()
|
||||
qmlRegisterType(NetworkMJPGImage, "Cura", 1, 0, "NetworkMJPGImage")
|
||||
|
|
23
cura/UI/OpenSourceDependenciesModel.py
Normal file
23
cura/UI/OpenSourceDependenciesModel.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Copyright (c) 2025 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from typing import List
|
||||
|
||||
from PyQt6.QtCore import QObject, pyqtProperty
|
||||
|
||||
from cura import CuraVersion
|
||||
from .OpenSourceDependency import OpenSourceDependency
|
||||
|
||||
|
||||
class OpenSourceDependenciesModel(QObject):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self._dependencies = []
|
||||
|
||||
for name, data in CuraVersion.DependenciesDescriptions.items():
|
||||
self._dependencies.append(OpenSourceDependency(name, data))
|
||||
|
||||
@pyqtProperty(list, constant=True)
|
||||
def dependencies(self) -> List[OpenSourceDependency]:
|
||||
return self._dependencies
|
45
cura/UI/OpenSourceDependency.py
Normal file
45
cura/UI/OpenSourceDependency.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Copyright (c) 2025 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from PyQt6.QtCore import QObject, pyqtProperty, pyqtEnum
|
||||
|
||||
|
||||
class OpenSourceDependency(QObject):
|
||||
|
||||
def __init__(self, name, data):
|
||||
super().__init__()
|
||||
self._name = name
|
||||
self._author = data['author'] if data['author'] is not None else ''
|
||||
self._version = data['version'] if data['version'] is not None else ''
|
||||
self._summary = data['summary'] if data['summary'] is not None else ''
|
||||
self._license = data['license'] if data['license'] is not None and len(data['license']) > 0 else name
|
||||
self._license_full = data['license_full'] if 'license_full' in data else ''
|
||||
self._sources_url = data['sources_url'] if 'sources_url' in data else ''
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def author(self):
|
||||
return self._author
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def version(self):
|
||||
return self._version
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def summary(self):
|
||||
return self._summary
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def license(self):
|
||||
return self._license
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def license_full(self):
|
||||
return self._license_full
|
||||
|
||||
@pyqtProperty(str, constant=True)
|
||||
def sources_url(self):
|
||||
return self._sources_url
|
Loading…
Add table
Add a link
Reference in a new issue