dev #283
@@ -1,8 +1,8 @@
 | 
				
			|||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Form implementation generated from reading ui file 'src/resources/_ui/interpol_dialog.ui'
 | 
					# Form implementation generated from reading ui file './nmreval/src/resources/_ui/interpol_dialog.ui'
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Created by: PyQt5 UI code generator 5.15.9
 | 
					# Created by: PyQt5 UI code generator 5.15.10
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
					# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
				
			||||||
# run again.  Do not edit this file unless you know what you are doing.
 | 
					# run again.  Do not edit this file unless you know what you are doing.
 | 
				
			||||||
@@ -55,7 +55,7 @@ class Ui_Dialog(object):
 | 
				
			|||||||
        self.gridLayout.addWidget(self.interp_comboBox, 4, 1, 1, 1)
 | 
					        self.gridLayout.addWidget(self.interp_comboBox, 4, 1, 1, 1)
 | 
				
			||||||
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
 | 
					        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
 | 
				
			||||||
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
 | 
					        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
 | 
				
			||||||
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
 | 
					        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Apply|QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
 | 
				
			||||||
        self.buttonBox.setObjectName("buttonBox")
 | 
					        self.buttonBox.setObjectName("buttonBox")
 | 
				
			||||||
        self.gridLayout.addWidget(self.buttonBox, 12, 0, 1, 2)
 | 
					        self.gridLayout.addWidget(self.buttonBox, 12, 0, 1, 2)
 | 
				
			||||||
        self.line = QtWidgets.QFrame(Dialog)
 | 
					        self.line = QtWidgets.QFrame(Dialog)
 | 
				
			||||||
@@ -132,8 +132,6 @@ class Ui_Dialog(object):
 | 
				
			|||||||
        self.label_8.setBuddy(self.dest_combobox)
 | 
					        self.label_8.setBuddy(self.dest_combobox)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.retranslateUi(Dialog)
 | 
					        self.retranslateUi(Dialog)
 | 
				
			||||||
        self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
 | 
					 | 
				
			||||||
        self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
 | 
					 | 
				
			||||||
        QtCore.QMetaObject.connectSlotsByName(Dialog)
 | 
					        QtCore.QMetaObject.connectSlotsByName(Dialog)
 | 
				
			||||||
        Dialog.setTabOrder(self.listWidget, self.ylog_checkBox)
 | 
					        Dialog.setTabOrder(self.listWidget, self.ylog_checkBox)
 | 
				
			||||||
        Dialog.setTabOrder(self.ylog_checkBox, self.interp_comboBox)
 | 
					        Dialog.setTabOrder(self.ylog_checkBox, self.interp_comboBox)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
 | 
				
			|||||||
        self.fitresult_dialog = None
 | 
					        self.fitresult_dialog = None
 | 
				
			||||||
        self.eval = None
 | 
					        self.eval = None
 | 
				
			||||||
        self.editor = None
 | 
					        self.editor = None
 | 
				
			||||||
 | 
					        self._interpol_dialog = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.logtext = QTextHandler(self)
 | 
					        self.logtext = QTextHandler(self)
 | 
				
			||||||
        logger.addHandler(self.logtext)
 | 
					        logger.addHandler(self.logtext)
 | 
				
			||||||
@@ -701,10 +702,13 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
 | 
				
			|||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        gnames = self.management.graphs.tree()
 | 
					        gnames = self.management.graphs.tree()
 | 
				
			||||||
        dialog = InterpolDialog(parent=self)
 | 
					        if self._interpol_dialog is None:
 | 
				
			||||||
        dialog.set_data(gnames, self.current_graph_widget.id)
 | 
					            self._interpol_dialog = InterpolDialog(parent=self)
 | 
				
			||||||
        dialog.new_data.connect(self.management.interpolate_data)
 | 
					            self._interpol_dialog.new_data.connect(self.management.interpolate_data)
 | 
				
			||||||
        dialog.show()
 | 
					        else:
 | 
				
			||||||
 | 
					            self._interpol_dialog()
 | 
				
			||||||
 | 
					        self._interpol_dialog.set_data(gnames, self.current_graph_widget.id)
 | 
				
			||||||
 | 
					        self._interpol_dialog.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @QtCore.pyqtSlot(name='on_action_calc_triggered')
 | 
					    @QtCore.pyqtSlot(name='on_action_calc_triggered')
 | 
				
			||||||
    def open_eval_dialog(self):
 | 
					    def open_eval_dialog(self):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,12 @@ class InterpolDialog(QtWidgets.QDialog, Ui_Dialog):
 | 
				
			|||||||
        self.step_lineEdit.setValidator(QtGui.QIntValidator())
 | 
					        self.step_lineEdit.setValidator(QtGui.QIntValidator())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._data = {}
 | 
					        self._data = {}
 | 
				
			||||||
 | 
					        self._src_id = None
 | 
				
			||||||
 | 
					        self._dest_graph = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __call__(self):
 | 
				
			||||||
 | 
					        self.listWidget.clear()
 | 
				
			||||||
 | 
					        self._data = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @QtCore.pyqtSlot(int,  name='on_xaxis_comboBox_currentIndexChanged')
 | 
					    @QtCore.pyqtSlot(int,  name='on_xaxis_comboBox_currentIndexChanged')
 | 
				
			||||||
    def change_x_source(self, idx: int):
 | 
					    def change_x_source(self, idx: int):
 | 
				
			||||||
@@ -25,29 +31,41 @@ class InterpolDialog(QtWidgets.QDialog, Ui_Dialog):
 | 
				
			|||||||
    def set_data(self, data, current_gid):
 | 
					    def set_data(self, data, current_gid):
 | 
				
			||||||
        self.graph_combobox.blockSignals(True)
 | 
					        self.graph_combobox.blockSignals(True)
 | 
				
			||||||
        self._data = {}
 | 
					        self._data = {}
 | 
				
			||||||
 | 
					        dest_idx = 0
 | 
				
			||||||
        for (gid, graph_name), sets in data.items():
 | 
					        for (gid, graph_name), sets in data.items():
 | 
				
			||||||
            self.graph_combobox.addItem(graph_name, userData=gid)
 | 
					            self.graph_combobox.addItem(graph_name, userData=gid)
 | 
				
			||||||
            self.dest_combobox.addItem(graph_name, userData=gid)
 | 
					            self.dest_combobox.addItem(graph_name, userData=gid)
 | 
				
			||||||
 | 
					            if self._dest_graph == gid:
 | 
				
			||||||
 | 
					                dest_idx = self.dest_combobox.currentIndex()
 | 
				
			||||||
            if gid == current_gid:
 | 
					            if gid == current_gid:
 | 
				
			||||||
                self.make_list(sets)
 | 
					                self.make_list(sets)
 | 
				
			||||||
            self._data[gid] = sets
 | 
					            self._data[gid] = sets
 | 
				
			||||||
        self.graph_combobox.blockSignals(False)
 | 
					        self.graph_combobox.blockSignals(False)
 | 
				
			||||||
        self.change_graph(0)
 | 
					        self.change_graph(dest_idx)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def make_list(self, current_sets):
 | 
					    def make_list(self, current_sets):
 | 
				
			||||||
        for sid, set_name in current_sets:
 | 
					        for sid, set_name in current_sets:
 | 
				
			||||||
            item = QtWidgets.QListWidgetItem(set_name)
 | 
					            item = QtWidgets.QListWidgetItem(set_name)
 | 
				
			||||||
            item.setData(QtCore.Qt.UserRole, sid)
 | 
					            item.setData(QtCore.Qt.ItemDataRole.UserRole, sid)
 | 
				
			||||||
            item.setCheckState(QtCore.Qt.Checked)
 | 
					            item.setCheckState(QtCore.Qt.CheckState.Checked)
 | 
				
			||||||
            self.listWidget.addItem(item)
 | 
					            self.listWidget.addItem(item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @QtCore.pyqtSlot(int, name='on_graph_combobox_currentIndexChanged')
 | 
					    @QtCore.pyqtSlot(int, name='on_graph_combobox_currentIndexChanged')
 | 
				
			||||||
    def change_graph(self, idx: int):
 | 
					    def change_graph(self, idx: int):
 | 
				
			||||||
        self.set_combobox.clear()
 | 
					        self.set_combobox.clear()
 | 
				
			||||||
        gid = self.graph_combobox.itemData(idx, QtCore.Qt.UserRole)
 | 
					        gid = self.graph_combobox.itemData(idx, QtCore.Qt.ItemDataRole.UserRole)
 | 
				
			||||||
 | 
					        set_idx = -1
 | 
				
			||||||
        if gid is not None:
 | 
					        if gid is not None:
 | 
				
			||||||
            for set_key, set_name in self._data[gid]:
 | 
					            for i, (set_key, set_name) in enumerate(self._data[gid]):
 | 
				
			||||||
 | 
					                print(self._src_id, set_key, set_name, i)
 | 
				
			||||||
                self.set_combobox.addItem(set_name, userData=set_key)
 | 
					                self.set_combobox.addItem(set_name, userData=set_key)
 | 
				
			||||||
 | 
					                print(self.set_combobox.currentIndex())
 | 
				
			||||||
 | 
					                if self._src_id == set_key:
 | 
				
			||||||
 | 
					                    set_idx = i
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            print(set_idx)
 | 
				
			||||||
 | 
					            if set_idx > -1:
 | 
				
			||||||
 | 
					                self.set_combobox.setCurrentIndex(set_idx)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def collect_parameter(self):
 | 
					    def collect_parameter(self):
 | 
				
			||||||
        xlog = self.xlog_checkBox.isChecked()
 | 
					        xlog = self.xlog_checkBox.isChecked()
 | 
				
			||||||
@@ -71,21 +89,35 @@ class InterpolDialog(QtWidgets.QDialog, Ui_Dialog):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            x_src = (start, stop, step, loggy)
 | 
					            x_src = (start, stop, step, loggy)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            x_src = (self.set_combobox.currentData(QtCore.Qt.UserRole),)
 | 
					            self._src_id = self.set_combobox.currentData(QtCore.Qt.ItemDataRole.UserRole)
 | 
				
			||||||
 | 
					            x_src = (self._src_id,)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        dest_graph = self.dest_combobox.currentData(QtCore.Qt.UserRole)
 | 
					        self._dest_graph = self.dest_combobox.currentData(QtCore.Qt.ItemDataRole.UserRole)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        use_data = []
 | 
					        use_data = []
 | 
				
			||||||
        for i in range(self.listWidget.count()):
 | 
					        for i in range(self.listWidget.count()):
 | 
				
			||||||
            item = self.listWidget.item(i)
 | 
					            item = self.listWidget.item(i)
 | 
				
			||||||
            if item.checkState() == QtCore.Qt.Checked:
 | 
					            if item.checkState() == QtCore.Qt.CheckState.Checked:
 | 
				
			||||||
                use_data.append(item.data(QtCore.Qt.UserRole))
 | 
					                use_data.append(item.data(QtCore.Qt.ItemDataRole.UserRole))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.new_data.emit(use_data, mode, xlog, ylog, x_src, dest_graph)
 | 
					        self.new_data.emit(use_data, mode, xlog, ylog, x_src, self._dest_graph)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return True
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def accept(self):
 | 
					    def _save_state(self):
 | 
				
			||||||
        success = self.collect_parameter()
 | 
					        self._src_id = self.set_combobox.currentData(QtCore.Qt.ItemDataRole.UserRole)
 | 
				
			||||||
        if success:
 | 
					        self._dest_graph = self.dest_combobox.currentData(QtCore.Qt.ItemDataRole.UserRole)
 | 
				
			||||||
            super().accept()
 | 
					
 | 
				
			||||||
 | 
					    @QtCore.pyqtSlot(QtWidgets.QAbstractButton, name='on_buttonBox_clicked')
 | 
				
			||||||
 | 
					    def check_next_actions(self, bttn: QtWidgets.QAbstractButton):
 | 
				
			||||||
 | 
					        role = self.buttonBox.buttonRole(bttn)
 | 
				
			||||||
 | 
					        self._save_state()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if role == self.buttonBox.ButtonRole.RejectRole:
 | 
				
			||||||
 | 
					            self.close()
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            success = self.collect_parameter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if success and role == self.buttonBox.ButtonRole.AcceptRole:
 | 
				
			||||||
 | 
					                self.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -119,7 +119,7 @@
 | 
				
			|||||||
      <enum>Qt::Horizontal</enum>
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
     </property>
 | 
					     </property>
 | 
				
			||||||
     <property name="standardButtons">
 | 
					     <property name="standardButtons">
 | 
				
			||||||
      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
					      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
     </property>
 | 
					     </property>
 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
   </item>
 | 
					   </item>
 | 
				
			||||||
@@ -300,38 +300,5 @@
 | 
				
			|||||||
  <tabstop>dest_combobox</tabstop>
 | 
					  <tabstop>dest_combobox</tabstop>
 | 
				
			||||||
 </tabstops>
 | 
					 </tabstops>
 | 
				
			||||||
 <resources/>
 | 
					 <resources/>
 | 
				
			||||||
 <connections>
 | 
					 <connections/>
 | 
				
			||||||
  <connection>
 | 
					 | 
				
			||||||
   <sender>buttonBox</sender>
 | 
					 | 
				
			||||||
   <signal>accepted()</signal>
 | 
					 | 
				
			||||||
   <receiver>Dialog</receiver>
 | 
					 | 
				
			||||||
   <slot>accept()</slot>
 | 
					 | 
				
			||||||
   <hints>
 | 
					 | 
				
			||||||
    <hint type="sourcelabel">
 | 
					 | 
				
			||||||
     <x>251</x>
 | 
					 | 
				
			||||||
     <y>490</y>
 | 
					 | 
				
			||||||
    </hint>
 | 
					 | 
				
			||||||
    <hint type="destinationlabel">
 | 
					 | 
				
			||||||
     <x>157</x>
 | 
					 | 
				
			||||||
     <y>274</y>
 | 
					 | 
				
			||||||
    </hint>
 | 
					 | 
				
			||||||
   </hints>
 | 
					 | 
				
			||||||
  </connection>
 | 
					 | 
				
			||||||
  <connection>
 | 
					 | 
				
			||||||
   <sender>buttonBox</sender>
 | 
					 | 
				
			||||||
   <signal>rejected()</signal>
 | 
					 | 
				
			||||||
   <receiver>Dialog</receiver>
 | 
					 | 
				
			||||||
   <slot>reject()</slot>
 | 
					 | 
				
			||||||
   <hints>
 | 
					 | 
				
			||||||
    <hint type="sourcelabel">
 | 
					 | 
				
			||||||
     <x>319</x>
 | 
					 | 
				
			||||||
     <y>490</y>
 | 
					 | 
				
			||||||
    </hint>
 | 
					 | 
				
			||||||
    <hint type="destinationlabel">
 | 
					 | 
				
			||||||
     <x>286</x>
 | 
					 | 
				
			||||||
     <y>274</y>
 | 
					 | 
				
			||||||
    </hint>
 | 
					 | 
				
			||||||
   </hints>
 | 
					 | 
				
			||||||
  </connection>
 | 
					 | 
				
			||||||
 </connections>
 | 
					 | 
				
			||||||
</ui>
 | 
					</ui>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user