Skip to content
Snippets Groups Projects
Commit 2ba496ae authored by jack-parsons's avatar jack-parsons
Browse files

Preventing crash when no file is selected.

Now just exits safely when no file is selected by file manager
parent cb1bb43e
No related branches found
No related tags found
1 merge request!23Merge in Jack's changes
Pipeline #879 passed
...@@ -107,6 +107,7 @@ class AmpScanGUI(QMainWindow): ...@@ -107,6 +107,7 @@ class AmpScanGUI(QMainWindow):
Numpy style docstring. Numpy style docstring.
""" """
if self.objectsReady(1):
self.alCont = AlignControls(self.filesDrop, self) self.alCont = AlignControls(self.filesDrop, self)
self.alCont.show() self.alCont.show()
self.alCont.centre.clicked.connect(self.centreMesh) self.alCont.centre.clicked.connect(self.centreMesh)
...@@ -117,6 +118,8 @@ class AmpScanGUI(QMainWindow): ...@@ -117,6 +118,8 @@ class AmpScanGUI(QMainWindow):
self.alCont.xtraButton.buttonClicked[QAbstractButton].connect(self.transx) self.alCont.xtraButton.buttonClicked[QAbstractButton].connect(self.transx)
self.alCont.ytraButton.buttonClicked[QAbstractButton].connect(self.transy) self.alCont.ytraButton.buttonClicked[QAbstractButton].connect(self.transy)
self.alCont.ztraButton.buttonClicked[QAbstractButton].connect(self.transz) self.alCont.ztraButton.buttonClicked[QAbstractButton].connect(self.transz)
else:
show_message("Must be at least 1 object loaded to run align")
def rotatex(self, button): def rotatex(self, button):
moving = str(self.alCont.moving.currentText()) moving = str(self.alCont.moving.currentText())
...@@ -178,7 +181,7 @@ class AmpScanGUI(QMainWindow): ...@@ -178,7 +181,7 @@ class AmpScanGUI(QMainWindow):
self.renWin.Render() self.renWin.Render()
def runICP(self): def runICP(self):
if self.objectsReady(1):
static = str(self.alCont.static.currentText()) static = str(self.alCont.static.currentText())
moving = str(self.alCont.moving.currentText()) moving = str(self.alCont.moving.currentText())
al = align(self.files[moving], self.files[static], al = align(self.files[moving], self.files[static],
...@@ -198,9 +201,11 @@ class AmpScanGUI(QMainWindow): ...@@ -198,9 +201,11 @@ class AmpScanGUI(QMainWindow):
self.alCont.getNames() self.alCont.getNames()
if hasattr(self, 'regCont'): if hasattr(self, 'regCont'):
self.regCont.getNames() self.regCont.getNames()
else:
show_message("Must be at least 2 objects loaded to run ICP")
def runRegistration(self): def runRegistration(self):
if len(self.files) >= 2: if self.objectsReady(2):
# Needs to be at least 2 files to run registration # Needs to be at least 2 files to run registration
c1 = [31.0, 73.0, 125.0] c1 = [31.0, 73.0, 125.0]
c3 = [170.0, 75.0, 65.0] c3 = [170.0, 75.0, 65.0]
...@@ -260,8 +265,10 @@ class AmpScanGUI(QMainWindow): ...@@ -260,8 +265,10 @@ class AmpScanGUI(QMainWindow):
""" """
FEname = QFileDialog.getOpenFileName(self, 'Open file', FEname = QFileDialog.getOpenFileName(self, 'Open file',
filter="FE results (*.npy)") filter="FE results (*.npy)")
if FEname[0] != "": # Check that there was a file selected
print(FEname)
self.renWin.setnumViewports(1) self.renWin.setnumViewports(1)
self.FE = AmpObject([FEname[0],], stype='FE') self.FE = AmpObject([FEname[0],], stype='FE') # TODO check this is correct - AmpObject expects dicts or strings
self.AmpObj.lp_smooth() self.AmpObj.lp_smooth()
self.AmpObj.addActor(CMap=self.AmpObj.CMap02P, bands=5) self.AmpObj.addActor(CMap=self.AmpObj.CMap02P, bands=5)
self.AmpObj.actor.setScalarRange(smin=0.0, smax=50) self.AmpObj.actor.setScalarRange(smin=0.0, smax=50)
...@@ -275,8 +282,12 @@ class AmpScanGUI(QMainWindow): ...@@ -275,8 +282,12 @@ class AmpScanGUI(QMainWindow):
""" """
vName = QFileDialog.getOpenFileName(self, 'Open file', vName = QFileDialog.getOpenFileName(self, 'Open file',
filter="Sensor vertices (*.csv)") filter="Sensor vertices (*.csv)")
if vName[0] == "": # If no file selected, exit
return
pName = QFileDialog.getOpenFileName(self, 'Open file', pName = QFileDialog.getOpenFileName(self, 'Open file',
filter="Sensor pressures (*.csv)") filter="Sensor pressures (*.csv)")
if pName[0] == "": # If no file selected, exit
return
self.renWin.setnumViewports(1) self.renWin.setnumViewports(1)
self.pSense = pressSense() self.pSense = pressSense()
self.pSense.calcFaces(d=5) self.pSense.calcFaces(d=5)
...@@ -334,6 +345,10 @@ class AmpScanGUI(QMainWindow): ...@@ -334,6 +345,10 @@ class AmpScanGUI(QMainWindow):
self.kineticMenu = self.menuBar().addMenu("&Kinetic Measurements") self.kineticMenu = self.menuBar().addMenu("&Kinetic Measurements")
self.kineticMenu.addAction(self.openPress) self.kineticMenu.addAction(self.openPress)
def objectsReady(self, num):
return len(self.files) >= num
class fileManager(QMainWindow): class fileManager(QMainWindow):
""" """
Controls to manage the displayed Controls to manage the displayed
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment