Cura/plugins/3MFWriter/UCPDialog.py
Erwan MATHIEU 63c1eb8990 Rename to Universal Cura Project
CURA-11561
2024-02-05 14:15:43 +01:00

56 lines
1.7 KiB
Python

# Copyright (c) 2024 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import os
from PyQt6.QtCore import pyqtSignal, QObject
from UM.FlameProfiler import pyqtSlot
from UM.i18n import i18nCatalog
from cura.CuraApplication import CuraApplication
from .SettingsExportModel import SettingsExportModel
i18n_catalog = i18nCatalog("cura")
class UCPDialog(QObject):
finished = pyqtSignal(bool)
def __init__(self, parent = None) -> None:
super().__init__(parent)
plugin_path = os.path.dirname(__file__)
dialog_path = os.path.join(plugin_path, 'UCPDialog.qml')
self._model = SettingsExportModel()
self._view = CuraApplication.getInstance().createQmlComponent(dialog_path,
{"manager": self,
"settingsExportModel": self._model})
self._view.accepted.connect(self._onAccepted)
self._view.rejected.connect(self._onRejected)
self._finished = False
self._accepted = False
def show(self) -> None:
self._view.show()
def getModel(self) -> SettingsExportModel:
return self._model
@pyqtSlot()
def notifyClosed(self):
self._onFinished()
@pyqtSlot()
def _onAccepted(self):
self._accepted = True
self._onFinished()
@pyqtSlot()
def _onRejected(self):
self._onFinished()
def _onFinished(self):
if not self._finished: # Make sure we don't send the finished signal twice, whatever happens
self._finished = True
self.finished.emit(self._accepted)