Cura/plugins/ImageReader/ImageReaderUI.py

89 lines
2.7 KiB
Python

# Copyright (c) 2015 Ultimaker B.V.
# Copyright (c) 2013 David Braam
# Cura is released under the terms of the AGPLv3 or higher.
import os
from PyQt5.QtCore import Qt, QUrl, pyqtSignal, pyqtSlot, QObject
from PyQt5.QtQml import QQmlComponent, QQmlContext
from UM.Application import Application
from UM.PluginRegistry import PluginRegistry
from UM.Logger import Logger
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
class ImageReaderUI(QObject):
show_config_ui_trigger = pyqtSignal()
def __init__(self, image_reader):
super(ImageReaderUI, self).__init__()
self.image_reader = image_reader
self._ui_view = None
self.show_config_ui_trigger.connect(self._actualShowConfigUI)
self.size = 120
self.base_height = 2
self.peak_height = 12
self.smoothing = 1
def showConfigUI(self):
self.show_config_ui_trigger.emit()
def _actualShowConfigUI(self):
if self._ui_view is None:
self._createConfigUI()
self._ui_view.show()
def _createConfigUI(self):
if self._ui_view is None:
Logger.log("d", "Creating ImageReader config UI")
path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath("ImageReader"), "ConfigUI.qml"))
component = QQmlComponent(Application.getInstance()._engine, path)
self._ui_context = QQmlContext(Application.getInstance()._engine.rootContext())
self._ui_context.setContextProperty("manager", self)
self._ui_view = component.create(self._ui_context)
self._ui_view.setFlags(self._ui_view.flags() & ~Qt.WindowCloseButtonHint & ~Qt.WindowMinimizeButtonHint & ~Qt.WindowMaximizeButtonHint);
@pyqtSlot()
def onOkButtonClicked(self):
self.image_reader._canceled = False
self.image_reader._wait = False
self._ui_view.close()
@pyqtSlot()
def onCancelButtonClicked(self):
self.image_reader._canceled = True
self.image_reader._wait = False
self._ui_view.close()
@pyqtSlot(str)
def onSizeChanged(self, value):
if (len(value) > 0):
self.size = float(value)
else:
self.size = 0
@pyqtSlot(str)
def onBaseHeightChanged(self, value):
if (len(value) > 0):
self.base_height = float(value)
else:
self.base_height = 0
@pyqtSlot(str)
def onPeakHeightChanged(self, value):
if (len(value) > 0):
self.peak_height = float(value)
else:
self.peak_height = 0
@pyqtSlot(str)
def onSmoothingChanged(self, value):
if (len(value) > 0):
self.smoothing = int(value)
else:
self.smoothing = 0