Commit 8f0438eb authored by payno's avatar payno

[orangecontrib] add a saving point widget

parent a25bca42
Pipeline #19349 passed with stage
in 13 minutes and 31 seconds
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m27.458 27.45c0 0.275-0.225 0.5-0.5 0.5h-21.016c-0.275 0-0.5-0.225-0.5-0.5v-21.013c0-0.275 0.225-0.5 0.5-0.5h16.271c0.275 0 0.656 0.162 0.847 0.36l4.051 4.201c0.19 0.198 0.347 0.585 0.347 0.86v16.092z"/><path d="m25.169 24.58c0 0.165-0.135 0.3-0.3 0.3h-16.504c-0.165 0-0.3-0.135-0.3-0.3v-7.015c0-0.165 0.135-0.3 0.3-0.3h16.504c0.165 0 0.3 0.135 0.3 0.3v7.015z" fill="#fff"/><path d="m20.925 11.322c0 0.165-0.135 0.3-0.3 0.3h-12.26c-0.165 0-0.3-0.135-0.3-0.3v-5.41c0-0.165 0.135-0.3 0.3-0.3h12.26c0.165 0 0.3 0.135 0.3 0.3v5.41z" fill="#fff"/><rect x="15.422" y="5.937" width="2.136" height="4.277"/></svg>
# coding: utf-8
# /*##########################################################################
#
# Copyright (c) 2016-2017 European Synchrotron Radiation Facility
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
# ###########################################################################*/
__authors__ = ["H. Payno"]
__license__ = "MIT"
__date__ = "06/11/2019"
from Orange.widgets.widget import OWWidget
from Orange.widgets.widget import Input, Output
from est.core.types import XASObject
from silx.gui import qt
import logging
_logger = logging.getLogger(__file__)
class SavingPointOW(OWWidget):
"""Widget to save the treatment done up to a specific point in the
treatment flow.
"""
name = "saving point"
id = "orange.widgets.xas.utils.saving_point"
description = "Save treatment to a specific point and allow user to take" \
" back treatment from this point"
icon = "icons/saving.png"
priority = 8
category = "esrfWidgets"
keywords = ["spectroscopy", "saving point", "save", "reprocess", "restart"]
want_main_area = True
resizing_enabled = False
class Inputs:
xas_obj = Input('xas_obj', XASObject, default=True)
class Outputs:
xas_obj = Output('xas_obj', XASObject)
def __init__(self):
super().__init__()
self._last_xas_object = None
self._buttons = qt.QDialogButtonBox(parent=self)
self._loadSavingPt = qt.QPushButton('activate saving point', parent=self)
self._loadSavingPt.setToolTip('Load last data received and past it to '
'next processing(s)')
self._buttons.addButton(self._loadSavingPt, qt.QDialogButtonBox.ActionRole)
self.layout().addWidget(self._buttons)
self._loadSavingPt.released.connect(self.reloadLastXasObj)
@Inputs.xas_obj
def _accept(self, xas_obj):
self._last_xas_object = xas_obj.copy(create_h5_file=True)
self.accept()
self.Outputs.xas_obj.send(xas_obj)
def reloadLastXasObj(self):
"""
Load last saved xas_object and pass it to the next processing points
"""
if self._last_xas_object is not None:
self.accept()
self.Outputs.xas_obj.send(self._last_xas_object.copy(create_h5_file=True))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment