1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # 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)
|