Skip to content
Snippets Groups Projects
Commit 60220c3f authored by Boman Romain's avatar Boman Romain
Browse files

add workspace folder

parent 6ef669df
No related branches found
No related tags found
No related merge requests found
Pipeline #7084 passed
...@@ -29,6 +29,7 @@ class Window(QWidget, Ui_Form): ...@@ -29,6 +29,7 @@ class Window(QWidget, Ui_Form):
settings = QSettings() settings = QSettings()
# self.restoreGeometry(settings.value("Geometry", self.saveGeometry())) # self.restoreGeometry(settings.value("Geometry", self.saveGeometry()))
self.inpFileLineEdit.setText(settings.value("inpFile", "")) self.inpFileLineEdit.setText(settings.value("inpFile", ""))
self.wrkspLineEdit.setText(settings.value("workspace", ""))
self.action = 'cancelled' self.action = 'cancelled'
...@@ -48,18 +49,24 @@ class Window(QWidget, Ui_Form): ...@@ -48,18 +49,24 @@ class Window(QWidget, Ui_Form):
def on_inpFilePushButton_pressed(self): def on_inpFilePushButton_pressed(self):
# print("inpFilePushButton...") # print("inpFilePushButton...")
fname = QFileDialog.getOpenFileName( fname = QFileDialog.getOpenFileName(
None, 'Select input file', '', filter='Python File (*.py)') None, 'Select input file', '', filter='Python File (*.py)')
# print(fname)
pyfile = fname[0] pyfile = fname[0]
if pyfile: if pyfile:
self.inpFileLineEdit.setText(QDir.toNativeSeparators(pyfile)) self.inpFileLineEdit.setText(QDir.toNativeSeparators(pyfile))
def on_wrkspPushButton_pressed(self):
dir = QFileDialog.getExistingDirectory(
self, "Select output folder", self.wrkspLineEdit.text())
if dir:
self.wrkspLineEdit.setText(QDir.toNativeSeparators(dir))
def closeEvent(self, event): def closeEvent(self, event):
"""save settings to registry and quit """save settings to registry and quit
""" """
settings = QSettings() settings = QSettings()
# settings.setValue("Geometry", QVariant(self.saveGeometry())) # settings.setValue("Geometry", QVariant(self.saveGeometry()))
settings.setValue("inpfile", QVariant(self.inpFileLineEdit.text())) settings.setValue("inpfile", QVariant(self.inpFileLineEdit.text()))
settings.setValue("workspace", QVariant(self.wrkspLineEdit.text()))
event.accept() event.accept()
...@@ -108,7 +115,7 @@ if __name__ == "__main__": ...@@ -108,7 +115,7 @@ if __name__ == "__main__":
print(f"OMP_NUM_THREADS=[not set]") print(f"OMP_NUM_THREADS=[not set]")
# ask for a file if not given # ask for a file if not given => starts the GUI
if not args.file: if not args.file:
# QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) # QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
app = QApplication(sys.argv) app = QApplication(sys.argv)
...@@ -118,23 +125,33 @@ if __name__ == "__main__": ...@@ -118,23 +125,33 @@ if __name__ == "__main__":
win.setWindowTitle("Fossils") win.setWindowTitle("Fossils")
win.show() win.show()
app.lastWindowClosed.connect(app.quit) app.lastWindowClosed.connect(app.quit)
app.exec_() app.exec_()
workspace = win.wrkspLineEdit.text()
action = win.action action = win.action
testname = win.inpFileLineEdit.text() testname = win.inpFileLineEdit.text()
else: else:
workspace = None
action = 'run' action = 'run'
testname = os.path.abspath(args.file) testname = os.path.abspath(args.file)
# run the simulation
print(f'action={action}') print(f'action={action}')
if action=='run' or action=='post': if action=='run' or action=='post':
testname = os.path.normcase(testname) # F:/ => f:/ on Windows testname = os.path.normcase(testname) # F:/ => f:/ on Windows
print(f'testname = {testname}') print(f'testname = {testname}')
# create workspace # create workspace
common = os.path.commonprefix((testname, thisdir + os.sep)) if workspace:
resdir = testname[len(common):].replace(os.sep, "_") common = os.path.basename(testname)
resdir, ext = os.path.splitext(resdir) resdir = common.replace(os.sep, "_")
wdir = os.path.join('workspace', resdir) resdir, ext = os.path.splitext(resdir)
wdir = os.path.join(workspace, resdir)
else:
common = os.path.commonprefix((testname, thisdir + os.sep))
resdir = testname[len(common):].replace(os.sep, "_")
resdir, ext = os.path.splitext(resdir)
wdir = os.path.join('workspace', resdir)
print('workspace=', wdir) print('workspace=', wdir)
if not os.path.isdir(wdir): if not os.path.isdir(wdir):
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>546</width> <width>827</width>
<height>104</height> <height>124</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
...@@ -15,24 +15,41 @@ ...@@ -15,24 +15,41 @@
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QGridLayout" name="gridLayout">
<item> <item row="0" column="0">
<widget class="QLabel" name="inpFilelabel"> <widget class="QLabel" name="inpFilelabel">
<property name="text"> <property name="text">
<string>input file</string> <string>input file</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="0" column="1">
<widget class="QLineEdit" name="inpFileLineEdit"/> <widget class="QLineEdit" name="inpFileLineEdit"/>
</item> </item>
<item> <item row="0" column="2">
<widget class="QPushButton" name="inpFilePushButton"> <widget class="QPushButton" name="inpFilePushButton">
<property name="text"> <property name="text">
<string>...</string> <string>...</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<widget class="QLabel" name="wrksplabel">
<property name="text">
<string>workspace</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="wrkspLineEdit"/>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="wrkspPushButton">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
......
...@@ -14,21 +14,30 @@ from PyQt5 import QtCore, QtGui, QtWidgets ...@@ -14,21 +14,30 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object): class Ui_Form(object):
def setupUi(self, Form): def setupUi(self, Form):
Form.setObjectName("Form") Form.setObjectName("Form")
Form.resize(546, 104) Form.resize(827, 124)
self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout = QtWidgets.QVBoxLayout(Form)
self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout() self.gridLayout = QtWidgets.QGridLayout()
self.horizontalLayout.setObjectName("horizontalLayout") self.gridLayout.setObjectName("gridLayout")
self.inpFilelabel = QtWidgets.QLabel(Form) self.inpFilelabel = QtWidgets.QLabel(Form)
self.inpFilelabel.setObjectName("inpFilelabel") self.inpFilelabel.setObjectName("inpFilelabel")
self.horizontalLayout.addWidget(self.inpFilelabel) self.gridLayout.addWidget(self.inpFilelabel, 0, 0, 1, 1)
self.inpFileLineEdit = QtWidgets.QLineEdit(Form) self.inpFileLineEdit = QtWidgets.QLineEdit(Form)
self.inpFileLineEdit.setObjectName("inpFileLineEdit") self.inpFileLineEdit.setObjectName("inpFileLineEdit")
self.horizontalLayout.addWidget(self.inpFileLineEdit) self.gridLayout.addWidget(self.inpFileLineEdit, 0, 1, 1, 1)
self.inpFilePushButton = QtWidgets.QPushButton(Form) self.inpFilePushButton = QtWidgets.QPushButton(Form)
self.inpFilePushButton.setObjectName("inpFilePushButton") self.inpFilePushButton.setObjectName("inpFilePushButton")
self.horizontalLayout.addWidget(self.inpFilePushButton) self.gridLayout.addWidget(self.inpFilePushButton, 0, 2, 1, 1)
self.verticalLayout.addLayout(self.horizontalLayout) self.wrksplabel = QtWidgets.QLabel(Form)
self.wrksplabel.setObjectName("wrksplabel")
self.gridLayout.addWidget(self.wrksplabel, 1, 0, 1, 1)
self.wrkspLineEdit = QtWidgets.QLineEdit(Form)
self.wrkspLineEdit.setObjectName("wrkspLineEdit")
self.gridLayout.addWidget(self.wrkspLineEdit, 1, 1, 1, 1)
self.wrkspPushButton = QtWidgets.QPushButton(Form)
self.wrkspPushButton.setObjectName("wrkspPushButton")
self.gridLayout.addWidget(self.wrkspPushButton, 1, 2, 1, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
...@@ -51,5 +60,7 @@ class Ui_Form(object): ...@@ -51,5 +60,7 @@ class Ui_Form(object):
Form.setWindowTitle(_translate("Form", "Form")) Form.setWindowTitle(_translate("Form", "Form"))
self.inpFilelabel.setText(_translate("Form", "input file")) self.inpFilelabel.setText(_translate("Form", "input file"))
self.inpFilePushButton.setText(_translate("Form", "...")) self.inpFilePushButton.setText(_translate("Form", "..."))
self.wrksplabel.setText(_translate("Form", "workspace"))
self.wrkspPushButton.setText(_translate("Form", "..."))
self.runPushButton.setText(_translate("Form", "Run")) self.runPushButton.setText(_translate("Form", "Run"))
self.viewPushButton.setText(_translate("Form", "View")) self.viewPushButton.setText(_translate("Form", "View"))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment