[traff_assessment_tool] Use path of last file (if any) for file dialog

Signed-off-by: mvglasow <michael -at- vonglasow.com>
This commit is contained in:
mvglasow
2025-06-15 22:17:19 +03:00
parent 04b2059ca0
commit a43e83d280
2 changed files with 10 additions and 5 deletions

View File

@@ -4,6 +4,7 @@
#include "platform/settings.hpp"
#include <QtWidgets/QFileDialog>
#include <QFileInfo>
#include <string>
@@ -20,12 +21,16 @@ TrafficModeInitDlg::TrafficModeInitDlg(QWidget * parent) :
{
m_ui->setupUi(this);
QString directory = {};
std::string lastDataFilePath;
if (settings::Get(kDataFilePath, lastDataFilePath))
{
m_ui->dataFileName->setText(QString::fromStdString(lastDataFilePath));
directory = QFileInfo(QString::fromStdString(lastDataFilePath)).absolutePath();
}
connect(m_ui->chooseDataFileButton, &QPushButton::clicked, [this](bool) {
SetFilePathViaDialog(*m_ui->dataFileName, tr("Choose data file"), "*.xml");
connect(m_ui->chooseDataFileButton, &QPushButton::clicked, [this, directory](bool) {
SetFilePathViaDialog(*m_ui->dataFileName, tr("Choose data file"), directory, "*.xml");
});
}
@@ -42,9 +47,9 @@ void TrafficModeInitDlg::accept()
}
void TrafficModeInitDlg::SetFilePathViaDialog(QLineEdit & dest, QString const & title,
QString const & filter)
QString const & directory, QString const & filter)
{
QFileDialog openFileDlg(nullptr, title, {} /* directory */, filter);
QFileDialog openFileDlg(nullptr, title, directory, filter);
openFileDlg.exec();
if (openFileDlg.result() != QDialog::DialogCode::Accepted)
return;

View File

@@ -23,7 +23,7 @@ public:
std::string GetDataFilePath() const { return m_dataFileName; }
private:
void SetFilePathViaDialog(QLineEdit & dest, QString const & title,
void SetFilePathViaDialog(QLineEdit & dest, QString const & title, const QString & directory,
QString const & filter = {});
public slots:
void accept() override;