Show warning on-close of the install missing packaged dialog

CURA-6990
This commit is contained in:
c.lamboo 2022-06-06 22:49:49 +02:00
parent bee4da6368
commit 76180eee01
3 changed files with 16 additions and 4 deletions

View file

@ -292,7 +292,7 @@ class WorkspaceDialog(QObject):
@pyqtSlot()
def installMissingPackages(self) -> None:
self._install_missing_package_dialog = InstallMissingPackageDialog(self._missing_package_metadata)
self._install_missing_package_dialog = InstallMissingPackageDialog(self._missing_package_metadata, self.showMissingMaterialsWarning)
self._install_missing_package_dialog.show()
def getResult(self) -> Dict[str, Optional[str]]:

View file

@ -1,17 +1,22 @@
import os
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty
from typing import Optional, List, Dict, cast
from PyQt6.QtCore import QObject, pyqtSignal, pyqtProperty, QUrl
from PyQt6.QtGui import QDesktopServices
from typing import Optional, List, Dict, cast, Callable
from cura.CuraApplication import CuraApplication
from UM.PluginRegistry import PluginRegistry
from cura.CuraPackageManager import CuraPackageManager
from UM.Message import Message
from UM.i18n import i18nCatalog
from UM.FlameProfiler import pyqtSlot
from plugins.Marketplace.MissingPackageList import MissingPackageList
i18n_catalog = i18nCatalog("cura")
class InstallMissingPackageDialog(QObject):
"""Dialog used to display packages that need to be installed to load 3mf file materials"""
def __init__(self, packages_metadata: List[Dict[str, str]]) -> None:
def __init__(self, packages_metadata: List[Dict[str, str]], show_missing_materials_warning: Callable[[], None]) -> None:
"""Initialize
:param packages_metadata: List of dictionaries containing information about missing packages.
@ -27,6 +32,7 @@ class InstallMissingPackageDialog(QObject):
self._package_metadata: List[Dict[str, str]] = packages_metadata
self._package_model: MissingPackageList = MissingPackageList(packages_metadata)
self._show_missing_materials_warning = show_missing_materials_warning
def show(self) -> None:
plugin_path = self._plugin_registry.getPluginPath("Marketplace")
@ -54,3 +60,7 @@ class InstallMissingPackageDialog(QObject):
@pyqtProperty(QObject)
def model(self) -> MissingPackageList:
return self._package_model
@pyqtSlot()
def showMissingMaterialsWarning(self) -> None:
self._show_missing_materials_warning()

View file

@ -16,4 +16,6 @@ Marketplace
pageContentsSource: "MissingPackages.qml"
showSearchHeader: false
showOnboadBanner: false
onClosing: manager.showMissingMaterialsWarning()
}