kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
- Changed load/save of touchstone files to select files via system dialogs
- Cal files should now save with .cal extensionpull/36/head
rodzic
4d4b9c3601
commit
aaaf778f89
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Ładowanie…
Reference in New Issue