Ejemplo n.º 1
0
    def start(self, parameters: Parameters, images: list):
        self._abort = True

        if self.isRunning():
            self.wait()

        self._morphotypes = parameters.selectedMorphotypes().keys()
        self._threshold = parameters.threshold()
        self._device_id = parameters.deviceId()
        self._srcPath = parameters.srcFolder()
        self._destPath = parameters.destFolder()
        self._images = images
        self._abort = False

        super().start()
Ejemplo n.º 2
0
 def reset(self, parameters: Parameters):
     self._name_text.setText(parameters.name())
     self._filepath_text.setText(parameters.srcFolder())
Ejemplo n.º 3
0
class ParametersController(BaseController):
    def __init__(self):
        super().__init__()

        title = PageTitle("Démarrer une analyse")
        title.backArrowClicked.connect(self._returnClicked)

        self._input_component = InputComponent()
        self._parameters_component = ParametersComponent()
        self._options_component = OptionsComponent()

        self._input_component.analysisNameStateChanged.connect(
            self._analysisNameStateChanged)

        self._start_button = StylizedButton("Démarrer", "blue")
        self._start_button.setSizePolicy(QSizePolicy.Maximum,
                                         QSizePolicy.Maximum)

        button_layout = QHBoxLayout()
        button_layout.setAlignment(Qt.AlignRight)
        button_layout.addWidget(self._start_button)

        main_layout = QVBoxLayout()

        main_layout.addWidget(title)
        main_layout.addWidget(self._input_component)
        main_layout.addWidget(self._parameters_component)
        main_layout.addWidget(self._options_component)
        main_layout.addLayout(button_layout)

        self.setLayout(main_layout)

        # Button slots
        self._start_button.clicked.connect(self._startClick)

    def start(self):
        self._parameters = Parameters()
        self._parameters.setName(HistoryManager.generateNewAnalysisName())

        self._input_component.reset(self._parameters)
        self._parameters_component.reset(self._parameters)
        self._options_component.reset(self._parameters)

    @Slot(bool)
    def _analysisNameStateChanged(self, ok: bool):
        self._start_button.setEnabled(ok)

    @Slot()
    def _returnClicked(self):
        self.changeWidget.emit("/menu", None)

    @Slot()
    def _startClick(self):
        self._parameters_component.updateParameters(self._parameters)
        self._input_component.updateParameters(self._parameters)
        self._options_component.updateParameters(self._parameters)

        error = self._parameters.checkValidity()
        if error is None:
            images = QDir(self._parameters.srcFolder()).entryList(
                ["*.png", "*.jpg", "*.jpeg"], filters=QDir.Files)

            if len(images) == 0:
                error = "Le dossier source ne contient aucune image au format .jpg"

        if error is None:
            self.changeWidget.emit("/analysis", (self._parameters, images))
        else:
            QMessageBox.warning(self, "Erreur", error)