Changeset 7c487846 in sasview for src/sas/qtgui
- Timestamp:
- Nov 14, 2017 6:04:41 AM (7 years ago)
- Branches:
- ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- fa81e94
- Parents:
- f1f3e6a
- Location:
- src/sas/qtgui
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/GUITests.py
r53c771e r7c487846 49 49 50 50 # Perspectives 51 # import path_prepare51 # Fitting 52 52 from Perspectives.Fitting.UnitTesting import FittingWidgetTest 53 53 from Perspectives.Fitting.UnitTesting import FittingPerspectiveTest … … 56 56 from Perspectives.Fitting.UnitTesting import FitPageTest 57 57 from Perspectives.Fitting.UnitTesting import FittingOptionsTest 58 # Invariant 59 from Perspectives.Invariant.UnitTesting import InvariantPerspectiveTest 60 from Perspectives.Invariant.UnitTesting import InvariantDetailsTest 61 58 62 59 63 def suite(): … … 100 104 101 105 # Perspectives 106 # Fitting 102 107 unittest.makeSuite(FittingPerspectiveTest.FittingPerspectiveTest, 'test'), 103 108 unittest.makeSuite(FittingWidgetTest.FittingWidgetTest, 'test'), … … 106 111 unittest.makeSuite(FitPageTest.FitPageTest, 'test'), 107 112 unittest.makeSuite(FittingOptionsTest.FittingOptionsTest, 'test'), 113 # Invariant 114 unittest.makeSuite(InvariantPerspectiveTest.InvariantPerspectiveTest, 'test'), 115 unittest.makeSuite(InvariantDetailsTest.InvariantDetailsTest, 'test'), 108 116 ) 109 117 return unittest.TestSuite(suites) -
src/sas/qtgui/MainWindow/GuiManager.py
rd6b8a1d r7c487846 194 194 if self._current_perspective: 195 195 self._current_perspective.setClosable() 196 #self._workspace.workspace.removeSubWindow(self._current_perspective) 196 197 self._current_perspective.close() 198 self._workspace.workspace.removeSubWindow(self._current_perspective) 197 199 # Default perspective 198 200 self._current_perspective = Perspectives.PERSPECTIVES[str(perspective_name)](parent=self) -
src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py
r4992ff2 r7c487846 91 91 """ 92 92 # Invoke fit page events 93 for tab in self.tabs:94 tab.close()95 93 if self._allow_close: 96 94 # reset the closability flag 97 95 self.setClosable(value=False) 96 # Tell the MdiArea to close the container 97 self.parentWidget().close() 98 98 event.accept() 99 99 else: -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
r53c771e r7c487846 137 137 if data is not None: 138 138 self.data = data 139 140 #def close(self):141 # """142 # Remember to kill off things on exit143 # """144 # self.helpView.close()145 # del self.helpView146 139 147 140 @property -
src/sas/qtgui/Perspectives/Invariant/InvariantDetails.py
rf1f3e6a r7c487846 81 81 self.txtQDataErr.setText(self._model.item(WIDGETS.W_INVARIANT_ERR).text()) 82 82 83 # Reset progress counters 84 self.progress_low_qstar = 0.0 85 self.progress_high_qstar = 0.0 86 self.progress_qstar = 100.0 87 83 88 # Low-Q 84 89 if self._model.item(WIDGETS.W_ENABLE_LOWQ).text() == "true": … … 147 152 if self.progress_qstar == 'error': 148 153 msg += 'Error occurred when computing invariant from data.\n ' 149 if self.progress_qstar > 100: 150 msg += "Invariant Q contribution is greater than 100% .\n" 154 try: 155 if float(self.progress_qstar) > 100: 156 msg += "Invariant Q contribution is greater than 100% .\n" 157 except ValueError: 158 # Text message, skip msg update 159 pass 151 160 152 161 if self.progress_low_qstar == 'error': -
src/sas/qtgui/Perspectives/Invariant/InvariantPerspective.py
rf1f3e6a r7c487846 125 125 self.setupMapper() 126 126 127 # Default enablement 128 self.cmdCalculate.setEnabled(False) 129 127 130 # validator: double 128 self.txtBackgd.setValidator( QtGui.QDoubleValidator())129 self.txtContrast.setValidator( QtGui.QDoubleValidator())130 self.txtScale.setValidator( QtGui.QDoubleValidator())131 self.txtPorodCst.setValidator( QtGui.QDoubleValidator())131 self.txtBackgd.setValidator(GuiUtils.DoubleValidator()) 132 self.txtContrast.setValidator(GuiUtils.DoubleValidator()) 133 self.txtScale.setValidator(GuiUtils.DoubleValidator()) 134 self.txtPorodCst.setValidator(GuiUtils.DoubleValidator()) 132 135 133 136 # validator: integer number 134 valid_regex_int = QtCore.QRegExp('^[+]?(\d+[.][0]*)$') 135 self.txtNptsLowQ.setValidator(QtGui.QRegExpValidator(valid_regex_int, 136 self.txtNptsLowQ)) 137 self.txtNptsHighQ.setValidator(QtGui.QRegExpValidator(valid_regex_int, 138 self.txtNptsHighQ)) 139 self.txtPowerLowQ.setValidator(QtGui.QRegExpValidator(valid_regex_int, 140 self.txtPowerLowQ)) 141 self.txtPowerHighQ.setValidator(QtGui.QRegExpValidator(valid_regex_int, 142 self.txtPowerHighQ)) 137 self.txtNptsLowQ.setValidator(QtGui.QIntValidator()) 138 self.txtNptsHighQ.setValidator(QtGui.QIntValidator()) 139 self.txtPowerLowQ.setValidator(GuiUtils.DoubleValidator()) 140 self.txtPowerHighQ.setValidator(GuiUtils.DoubleValidator()) 143 141 144 142 def enabling(self): … … 159 157 # reset the closability flag 160 158 self.setClosable(value=False) 159 # Tell the MdiArea to close the container 160 self.parentWidget().close() 161 161 event.accept() 162 162 else: … … 227 227 228 228 self.model = model 229 self.mapper.toFirst()230 229 self._data = GuiUtils.dataFromItem(self._model_item) 231 230 … … 331 330 332 331 if (calculation_failed): 333 self.mapper.toFirst()334 332 logging.warning('Calculation failed: {}'.format(msg)) 335 333 return self.model … … 416 414 self.model.setItem(WIDGETS.D_HIGH_QSTAR_ERR, item) 417 415 418 self.mapper.toFirst()419 420 416 return self.model 421 417 … … 504 500 Error if it is larger than the distribution length 505 501 """ 502 try: 503 int_value = int(self.sender().text()) 504 except ValueError: 505 self.sender().setStyleSheet(BG_RED) 506 self.cmdCalculate.setEnabled(False) 507 return 508 506 509 if self._data: 507 if len(self._data.x) < int (self.sender().text()):508 self.sender().setStyleSheet( QtCore.QString(BG_RED))510 if len(self._data.x) < int_value: 511 self.sender().setStyleSheet(BG_RED) 509 512 logging.warning('The number of points must be smaller than {}'.format(len(self._data.x))) 510 513 self.cmdCalculate.setEnabled(False) 511 514 else: 512 self.sender().setStyleSheet( QtCore.QString(BG_WHITE))515 self.sender().setStyleSheet(BG_WHITE) 513 516 self.cmdCalculate.setEnabled(True) 514 517 else: … … 565 568 566 569 self.model.setItem(related_widgets[index_elt], item) 567 568 related_internal_values[index_elt] = float(self.sender().text()) 569 570 # print possible_senders[index_elt], related_internal_values[index_elt] 571 572 self.mapper.toFirst() 570 try: 571 related_internal_values[index_elt] = float(self.sender().text()) 572 self.sender().setStyleSheet(BG_WHITE) 573 self.cmdCalculate.setEnabled(True) 574 except ValueError: 575 # empty field, just skip 576 self.sender().setStyleSheet(BG_RED) 577 self.cmdCalculate.setEnabled(False) 573 578 574 579 def lowGuinierAndPowerToggle(self, toggle): … … 761 766 # Extract data on 1st child - this is the Data1D/2D component 762 767 data = GuiUtils.dataFromItem(self._model_item) 763 self.model.item(WIDGETS.W_FILENAME).setData( QtCore.QVariant(self._model_item.text()))768 self.model.item(WIDGETS.W_FILENAME).setData(self._model_item.text()) 764 769 # update GUI and model with info from loaded data 765 770 self.updateGuiFromFile(data=data) -
src/sas/qtgui/Perspectives/Invariant/UnitTesting/InvariantDetailsTest.py
rf1f3e6a r7c487846 8 8 from PyQt5.QtTest import QTest 9 9 from PyQt5.QtCore import Qt 10 from mock import MagicMock11 from mock import patch10 from unittest.mock import MagicMock 11 from unittest.mock import patch 12 12 13 13 from twisted.internet import threads … … 138 138 self.widget.qstar_total = 10 139 139 self.widget.progress_qstar = 'error' 140 self.assert Equal(self.widget.checkValues(), "Error occurred when computing invariant from data.\n Invariant Q contribution is greater than 100% .\n")140 self.assertIn("Error occurred when computing invariant from data.", self.widget.checkValues()) 141 141 142 142 self.widget.progress_qstar = 0 -
src/sas/qtgui/Perspectives/Invariant/UnitTesting/InvariantPerspectiveTest.py
rf1f3e6a r7c487846 8 8 from PyQt5.QtTest import QTest 9 9 from PyQt5.QtCore import Qt 10 from mock import MagicMock11 from mock import patch12 from mock import create_autospec10 from unittest.mock import MagicMock 11 from unittest.mock import patch 12 from unittest.mock import create_autospec 13 13 14 14 from twisted.internet import threads … … 23 23 import sas.qtgui.Utilities.GuiUtils as GuiUtils 24 24 25 if not QtWidgets.QApplication.instance():26 25 #if not QtWidgets.QApplication.instance(): 26 app = QtWidgets.QApplication(sys.argv) 27 27 28 28 BG_COLOR_ERR = 'background-color: rgb(244, 170, 164);' … … 142 142 143 143 # Validators 144 self.assertIsInstance(self.widget.txtNptsLowQ.validator(), QtGui.Q RegExpValidator)145 self.assertIsInstance(self.widget.txtNptsHighQ.validator(), QtGui.Q RegExpValidator)146 self.assertIsInstance(self.widget.txtPowerLowQ.validator(), QtGui.QRegExpValidator)147 self.assertIsInstance(self.widget.txtPowerHighQ.validator(), QtGui.QRegExpValidator)148 149 self.assertIsInstance(self.widget.txtBackgd.validator(), QtGui.QDoubleValidator)150 self.assertIsInstance(self.widget.txtContrast.validator(), QtGui.QDoubleValidator)151 self.assertIsInstance(self.widget.txtScale.validator(), QtGui.QDoubleValidator)152 self.assertIsInstance(self.widget.txtPorodCst.validator(), QtGui.QDoubleValidator)144 self.assertIsInstance(self.widget.txtNptsLowQ.validator(), QtGui.QIntValidator) 145 self.assertIsInstance(self.widget.txtNptsHighQ.validator(), QtGui.QIntValidator) 146 self.assertIsInstance(self.widget.txtPowerLowQ.validator(), GuiUtils.DoubleValidator) 147 self.assertIsInstance(self.widget.txtPowerHighQ.validator(), GuiUtils.DoubleValidator) 148 149 self.assertIsInstance(self.widget.txtBackgd.validator(), GuiUtils.DoubleValidator) 150 self.assertIsInstance(self.widget.txtContrast.validator(), GuiUtils.DoubleValidator) 151 self.assertIsInstance(self.widget.txtScale.validator(), GuiUtils.DoubleValidator) 152 self.assertIsInstance(self.widget.txtPorodCst.validator(), GuiUtils.DoubleValidator) 153 153 154 154 # Test autoexclusivity of radiobuttons … … 202 202 # self.assertEqual(self.widget._data.y[1], 4) 203 203 204 def testHelp(self):204 def notestHelp(self): 205 205 """ Assure help file is shown """ 206 206 # this should not rise
Note: See TracChangeset
for help on using the changeset viewer.