From b7fad288c7d6a6fb73f0ed510fd933454286a150 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 8 Aug 2023 20:30:05 -0400 Subject: [PATCH] fix ability to select a temporary directory (for image files) --- tools/lammps-gui/lammpsgui.cpp | 8 +++++++- tools/lammps-gui/preferences.cpp | 11 ++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index cf67916e0c..19dcc8b108 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -132,7 +132,13 @@ LammpsGui::LammpsGui(QWidget *parent, const char *filename) : #else if (!tmpdir) tmpdir = "/tmp"; #endif - settings.setValue("tempdir", QString(tmpdir)); + + QFileInfo newtmp(settings.value("tempdir", QString(tmpdir)).toString()); + if (newtmp.isDir() && newtmp.isWritable()) { + settings.setValue("tempdir", newtmp.filePath()); + } else { + settings.setValue("tempdir", QString(tmpdir)); + } lammps_args.clear(); lammps_args.push_back(mystrdup("LAMMPS-GUI")); diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index f50a4be2c0..a7ee670694 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -98,6 +98,11 @@ void Preferences::accept() if (field) if (field->hasAcceptableInput()) settings->setValue("nthreads", field->text()); + // store temp dir + field = tabWidget->findChild("tmpedit"); + if (field) + if (field->hasAcceptableInput()) settings->setValue("tempdir", field->text()); + // store image width, height, and zoom settings->beginGroup("snapshot"); @@ -248,7 +253,11 @@ void GeneralTab::newtmpfolder() QLineEdit *field = findChild("tmpedit"); QString tmpdir = QFileDialog::getExistingDirectory(this, "Find Folder for Temporary Files", field->text()); - if (!tmpdir.isEmpty()) field->setText(tmpdir); + + if (!tmpdir.isEmpty()) { + QFileInfo newtmp(tmpdir); + if (newtmp.isDir() && newtmp.isWritable()) field->setText(tmpdir); + } } void GeneralTab::pluginpath()