- Changed load/save of touchstone files to select files via system dialogs

- Cal files should now save with .cal extension
pull/36/head
Rune Broberg 2019-10-09 11:30:29 +02:00
rodzic 4d4b9c3601
commit aaaf778f89
2 zmienionych plików z 59 dodań i 62 usunięć

Wyświetl plik

@ -475,7 +475,16 @@ class CalibrationWindow(QtWidgets.QWidget):
return return
filedialog = QtWidgets.QFileDialog(self) filedialog = QtWidgets.QFileDialog(self)
filedialog.setDefaultSuffix("cal") filedialog.setDefaultSuffix("cal")
filename, _ = filedialog.getSaveFileName(filter="Calibration Files (*.cal);;All files (*.*)") filedialog.setNameFilter("Calibration Files (*.cal);;All files (*.*)")
filedialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
selected = filedialog.exec()
if selected:
filename = filedialog.selectedFiles()[0]
else:
return
if filename == "":
logger.debug("No file name selected.")
return
self.app.calibration.notes = self.notes_textedit.toPlainText().splitlines() self.app.calibration.notes = self.notes_textedit.toPlainText().splitlines()
if filename and self.app.calibration.saveCalibration(filename): if filename and self.app.calibration.saveCalibration(filename):
self.app.settings.setValue("CalibrationFile", filename) self.app.settings.setValue("CalibrationFile", filename)

Wyświetl plik

@ -401,53 +401,37 @@ class NanoVNASaver(QtWidgets.QWidget):
self.fileWindow = QtWidgets.QWidget() self.fileWindow = QtWidgets.QWidget()
self.fileWindow.setWindowTitle("Files") self.fileWindow.setWindowTitle("Files")
self.fileWindow.setWindowIcon(self.icon) self.fileWindow.setWindowIcon(self.icon)
self.fileWindow.setMinimumWidth(200)
shortcut = QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self.fileWindow, self.fileWindow.hide) shortcut = QtWidgets.QShortcut(QtCore.Qt.Key_Escape, self.fileWindow, self.fileWindow.hide)
file_window_layout = QtWidgets.QVBoxLayout() file_window_layout = QtWidgets.QVBoxLayout()
self.fileWindow.setLayout(file_window_layout) self.fileWindow.setLayout(file_window_layout)
reference_file_control_box = QtWidgets.QGroupBox("Import file") load_file_control_box = QtWidgets.QGroupBox("Import file")
reference_file_control_layout = QtWidgets.QFormLayout(reference_file_control_box) load_file_control_box.setMaximumWidth(300)
self.referenceFileNameInput = QtWidgets.QLineEdit("") load_file_control_layout = QtWidgets.QFormLayout(load_file_control_box)
btn_reference_file_picker = QtWidgets.QPushButton("...")
btn_reference_file_picker.setMaximumWidth(25)
btn_reference_file_picker.clicked.connect(self.pickReferenceFile)
reference_file_name_layout = QtWidgets.QHBoxLayout()
reference_file_name_layout.addWidget(self.referenceFileNameInput)
reference_file_name_layout.addWidget(btn_reference_file_picker)
reference_file_control_layout.addRow(QtWidgets.QLabel("Filename"), reference_file_name_layout)
file_window_layout.addWidget(reference_file_control_box)
btn_load_reference = QtWidgets.QPushButton("Load reference")
btn_load_reference.clicked.connect(self.loadReferenceFile)
btn_load_sweep = QtWidgets.QPushButton("Load as sweep") btn_load_sweep = QtWidgets.QPushButton("Load as sweep")
btn_load_sweep.clicked.connect(self.loadSweepFile) btn_load_sweep.clicked.connect(self.loadSweepFile)
reference_file_control_layout.addRow(btn_load_reference) btn_load_reference = QtWidgets.QPushButton("Load reference")
reference_file_control_layout.addRow(btn_load_sweep) btn_load_reference.clicked.connect(self.loadReferenceFile)
load_file_control_layout.addRow(btn_load_sweep)
load_file_control_layout.addRow(btn_load_reference)
file_control_box = QtWidgets.QGroupBox() file_window_layout.addWidget(load_file_control_box)
file_control_box.setTitle("Export file")
file_control_box.setMaximumWidth(300)
file_control_layout = QtWidgets.QFormLayout(file_control_box)
self.fileNameInput = QtWidgets.QLineEdit("")
btn_file_picker = QtWidgets.QPushButton("...")
btn_file_picker.setMaximumWidth(25)
btn_file_picker.clicked.connect(self.pickFile)
file_name_layout = QtWidgets.QHBoxLayout()
file_name_layout.addWidget(self.fileNameInput)
file_name_layout.addWidget(btn_file_picker)
file_control_layout.addRow(QtWidgets.QLabel("Filename"), file_name_layout) save_file_control_box = QtWidgets.QGroupBox("Export file")
save_file_control_box.setMaximumWidth(300)
save_file_control_layout = QtWidgets.QFormLayout(save_file_control_box)
self.btnExportFile = QtWidgets.QPushButton("Export data S1P") btnExportFile = QtWidgets.QPushButton("Save file (S1P)")
self.btnExportFile.clicked.connect(self.exportFileS1P) btnExportFile.clicked.connect(self.exportFileS1P)
file_control_layout.addRow(self.btnExportFile) save_file_control_layout.addRow(btnExportFile)
self.btnExportFile = QtWidgets.QPushButton("Export data S2P") btnExportFile = QtWidgets.QPushButton("Save file (S2P)")
self.btnExportFile.clicked.connect(self.exportFileS2P) btnExportFile.clicked.connect(self.exportFileS2P)
file_control_layout.addRow(self.btnExportFile) save_file_control_layout.addRow(btnExportFile)
file_window_layout.addWidget(file_control_box) file_window_layout.addWidget(save_file_control_box)
btn_open_file_window = QtWidgets.QPushButton("Files ...") btn_open_file_window = QtWidgets.QPushButton("Files ...")
btn_open_file_window.clicked.connect(self.displayFileWindow) btn_open_file_window.clicked.connect(self.displayFileWindow)
@ -509,27 +493,23 @@ class NanoVNASaver(QtWidgets.QWidget):
return port return port
return "" return ""
def pickReferenceFile(self):
filename, _ = QtWidgets.QFileDialog.getOpenFileName(directory=self.referenceFileNameInput.text(),
filter="Touchstone Files (*.s1p *.s2p);;All files (*.*)")
if filename != "":
self.referenceFileNameInput.setText(filename)
def pickFile(self):
filename, _ = QtWidgets.QFileDialog.getSaveFileName(directory=self.fileNameInput.text(),
filter="Touchstone Files (*.s1p *.s2p);;All files (*.*)")
if filename != "":
self.fileNameInput.setText(filename)
def exportFileS1P(self): def exportFileS1P(self):
logger.debug("Save S1P file to %s", self.fileNameInput.text()) filedialog = QtWidgets.QFileDialog(self)
filedialog.setDefaultSuffix("s1p")
filedialog.setNameFilter("Touchstone Files (*.s1p *.s2p);;All files (*.*)")
filedialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
selected = filedialog.exec()
if selected:
filename = filedialog.selectedFiles()[0]
else:
return
if filename == "":
logger.debug("No file name selected.")
return
logger.debug("Save S1P file to %s", filename)
if len(self.data) == 0: if len(self.data) == 0:
logger.warning("No data stored, nothing written.") logger.warning("No data stored, nothing written.")
return return
filename = self.fileNameInput.text()
if filename == "":
logger.warning("No filename entered, nothing saved.")
return
try: try:
logger.debug("Opening %s for writing", filename) logger.debug("Opening %s for writing", filename)
file = open(filename, "w+") file = open(filename, "w+")
@ -545,14 +525,22 @@ class NanoVNASaver(QtWidgets.QWidget):
return return
def exportFileS2P(self): def exportFileS2P(self):
logger.debug("Save S2P file to %s", self.fileNameInput.text()) filedialog = QtWidgets.QFileDialog(self)
filedialog.setDefaultSuffix("s2p")
filedialog.setNameFilter("Touchstone Files (*.s1p *.s2p);;All files (*.*)")
filedialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
selected = filedialog.exec()
if selected:
filename = filedialog.selectedFiles()[0]
else:
return
if filename == "":
logger.debug("No file name selected.")
return
logger.debug("Save S2P file to %s", filename)
if len(self.data) == 0 or len(self.data21) == 0: if len(self.data) == 0 or len(self.data21) == 0:
logger.warning("No data stored, nothing written.") logger.warning("No data stored, nothing written.")
return return
filename = self.fileNameInput.text()
if filename == "":
logger.warning("No filename entered, nothing saved.")
return
try: try:
logger.debug("Opening %s for writing", filename) logger.debug("Opening %s for writing", filename)
file = open(filename, "w+") file = open(filename, "w+")
@ -955,16 +943,16 @@ class NanoVNASaver(QtWidgets.QWidget):
self.btnResetReference.setDisabled(True) self.btnResetReference.setDisabled(True)
def loadReferenceFile(self): def loadReferenceFile(self):
filename = self.referenceFileNameInput.text() filename, _ = QtWidgets.QFileDialog.getOpenFileName(filter="Touchstone Files (*.s1p *.s2p);;All files (*.*)")
if filename is not "": if filename != "":
self.resetReference() self.resetReference()
t = Touchstone(filename) t = Touchstone(filename)
t.load() t.load()
self.setReference(t.s11data, t.s21data, filename) self.setReference(t.s11data, t.s21data, filename)
def loadSweepFile(self): def loadSweepFile(self):
filename = self.referenceFileNameInput.text() filename, _ = QtWidgets.QFileDialog.getOpenFileName(filter="Touchstone Files (*.s1p *.s2p);;All files (*.*)")
if filename is not "": if filename != "":
self.data = [] self.data = []
self.data21 = [] self.data21 = []
t = Touchstone(filename) t = Touchstone(filename)