diff --git a/config.h b/config.h index cc815a5..163928a 100644 --- a/config.h +++ b/config.h @@ -1,7 +1,7 @@ #ifndef CONFIG #define CONFIG -#define VERSION 198 +#define VERSION 199 //try to keep this in sync. //SavvyCAN will complain if you connect a GVRET board with a revision diff --git a/dbc/dbchandler.cpp b/dbc/dbchandler.cpp index e86483f..d22c023 100644 --- a/dbc/dbchandler.cpp +++ b/dbc/dbchandler.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "utility.h" #include "connections/canconmanager.h" @@ -1339,6 +1340,8 @@ void DBCFile::saveFile(QString fileName) void DBCHandler::saveDBCFile(int idx) { + QSettings settings; + if (loadedFiles.count() == 0) return; if (idx < 0) return; if (idx >= loadedFiles.count()) return; @@ -1349,6 +1352,7 @@ void DBCHandler::saveDBCFile(int idx) QStringList filters; filters.append(QString(tr("DBC File (*.dbc)"))); + dialog.setDirectory(settings.value("DBC/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -1360,6 +1364,7 @@ void DBCHandler::saveDBCFile(int idx) filename = dialog.selectedFiles()[0]; if (!filename.contains('.')) filename += ".dbc"; loadedFiles[idx].saveFile(filename); + settings.setValue("DBC/LoadSaveDirectory", dialog.directory().path()); } } @@ -1411,10 +1416,12 @@ DBCFile* DBCHandler::loadDBCFile(int idx) QString filename; QFileDialog dialog; + QSettings settings; QStringList filters; filters.append(QString(tr("DBC File (*.dbc)"))); + dialog.setDirectory(settings.value("DBC/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -1426,7 +1433,7 @@ DBCFile* DBCHandler::loadDBCFile(int idx) DBCFile newFile; newFile.loadFile(filename); loadedFiles.append(newFile); - + settings.setValue("DBC/LoadSaveDirectory", dialog.directory().path()); return &loadedFiles.last(); } diff --git a/framefileio.cpp b/framefileio.cpp index e6a9d17..5b105aa 100644 --- a/framefileio.cpp +++ b/framefileio.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "utility.h" @@ -19,6 +20,7 @@ bool FrameFileIO::saveFrameFile(QString &fileName, const QVector* fram { QString filename; QFileDialog dialog(qApp->activeWindow()); + QSettings settings; bool result = false; QStringList filters; @@ -35,6 +37,7 @@ bool FrameFileIO::saveFrameFile(QString &fileName, const QVector* fram filters.append(QString(tr("Cabana Log(*.csv *.CSV)"))); filters.append(QString(tr("CANalyzer Ascii Log (*.asc *.ASC)"))); + dialog.setDirectory(settings.value("FileIO/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -125,6 +128,7 @@ bool FrameFileIO::saveFrameFile(QString &fileName, const QVector* fram { QStringList fileList = filename.split('/'); fileName = fileList[fileList.length() - 1]; + settings.setValue("FileIO/LoadSaveDirectory", dialog.directory().path()); return true; } return false; @@ -136,6 +140,7 @@ bool FrameFileIO::loadFrameFile(QString &fileName, QVector* frameCache { QString filename; QFileDialog dialog; + QSettings settings; bool result = false; QStringList filters; @@ -159,6 +164,7 @@ bool FrameFileIO::loadFrameFile(QString &fileName, QVector* frameCache filters.append(QString(tr("Cabana Log (*.csv *.CSV)"))); filters.append(QString(tr("CANOpen Magic (*.csv *.CSV)"))); + dialog.setDirectory(settings.value("FileIO/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -203,6 +209,7 @@ bool FrameFileIO::loadFrameFile(QString &fileName, QVector* frameCache { QStringList fileList = filename.split('/'); fileName = fileList[fileList.length() - 1]; + settings.setValue("FileIO/LoadSaveDirectory", dialog.directory().path()); return true; } else @@ -1575,10 +1582,12 @@ bool FrameFileIO::openContinuousNative() { QString filename; QFileDialog dialog(qApp->activeWindow()); + QSettings settings; QStringList filters; filters.append(QString(tr("GVRET Logs (*.csv *.CSV)"))); + dialog.setDirectory(settings.value("FileIO/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -1595,6 +1604,7 @@ bool FrameFileIO::openContinuousNative() } continuousFile.write("Time Stamp,ID,Extended,Dir,Bus,LEN,D1,D2,D3,D4,D5,D6,D7,D8"); continuousFile.write("\n"); + settings.setValue("FileIO/LoadSaveDirectory", dialog.directory().path()); return true; } return false; diff --git a/frameplaybackwindow.cpp b/frameplaybackwindow.cpp index d200e0c..a156adb 100644 --- a/frameplaybackwindow.cpp +++ b/frameplaybackwindow.cpp @@ -173,10 +173,12 @@ void FramePlaybackWindow::saveFilters() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Filter list (*.ftl)"))); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -203,6 +205,7 @@ void FramePlaybackWindow::saveFilters() } outFile->close(); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); } } @@ -212,10 +215,12 @@ void FramePlaybackWindow::loadFilters() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Filter List (*.ftl)"))); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -264,6 +269,7 @@ void FramePlaybackWindow::loadFilters() } } inFile->close(); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); } } diff --git a/framesenderwindow.cpp b/framesenderwindow.cpp index 54ab529..9d11332 100644 --- a/framesenderwindow.cpp +++ b/framesenderwindow.cpp @@ -241,10 +241,12 @@ void FrameSenderWindow::saveGrid() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Frame Sender Definition (*.fsd)"))); + dialog.setDirectory(settings.value("FrameSender/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -258,6 +260,7 @@ void FrameSenderWindow::saveGrid() { if (!filename.contains('.')) filename += ".fsd"; saveSenderFile(filename); + settings.setValue("FrameSender/LoadSaveDirectory", dialog.directory().path()); } } } @@ -266,10 +269,12 @@ void FrameSenderWindow::loadGrid() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Frame Sender Definition (*.fsd)"))); + dialog.setDirectory(settings.value("FrameSender/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -281,6 +286,7 @@ void FrameSenderWindow::loadGrid() if (dialog.selectedNameFilter() == filters[0]) { loadSenderFile(filename); + settings.setValue("FrameSender/LoadSaveDirectory", dialog.directory().path()); } } @@ -325,7 +331,6 @@ void FrameSenderWindow::saveSenderFile(QString filename) outFile->close(); delete outFile; - } void FrameSenderWindow::loadSenderFile(QString filename) diff --git a/mainwindow.cpp b/mainwindow.cpp index 56e6844..ca9c39d 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -650,10 +650,12 @@ void MainWindow::handleSaveFilters() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Filter list (*.ftl)"))); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -664,6 +666,7 @@ void MainWindow::handleSaveFilters() filename = dialog.selectedFiles()[0]; if (!filename.contains('.')) filename += ".ftl"; if (dialog.selectedNameFilter() == filters[0]) model->saveFilterFile(filename); + settings.setValue("Filters/LoadSaveDirectory", dialog.directory().path()); } } @@ -671,10 +674,12 @@ void MainWindow::handleLoadFilters() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Filter List (*.ftl)"))); + dialog.setDirectory(settings.value("Filters/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -684,19 +689,20 @@ void MainWindow::handleLoadFilters() filename = dialog.selectedFiles()[0]; //right now there is only one file type that can be loaded here so just do it. model->loadFilterFile(filename); + settings.setValue("Filters/LoadSaveDirectory", dialog.directory().path()); } } -//lbStatusDatabase.setText(fileList[fileList.length() - 1] + tr(" loaded.")); - void MainWindow::handleSaveDecoded() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Text File (*.txt)"))); + dialog.setDirectory(settings.value("FileIO/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -707,6 +713,7 @@ void MainWindow::handleSaveDecoded() filename = dialog.selectedFiles()[0]; if (!filename.contains('.')) filename += ".txt"; saveDecodedTextFile(filename); + settings.setValue("FileIO/LoadSaveDirectory", dialog.directory().path()); } } diff --git a/re/filecomparatorwindow.cpp b/re/filecomparatorwindow.cpp index 3102142..8e27102 100644 --- a/re/filecomparatorwindow.cpp +++ b/re/filecomparatorwindow.cpp @@ -367,6 +367,7 @@ void FileComparatorWindow::saveDetails() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Text File (*.txt)"))); @@ -375,10 +376,12 @@ void FileComparatorWindow::saveDetails() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("FileComparator/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("FileComparator/LoadSaveDirectory", dialog.directory().path()); if (!filename.contains('.')) filename += ".txt"; QFile *outFile = new QFile(filename); diff --git a/re/flowviewwindow.cpp b/re/flowviewwindow.cpp index 5092bd6..99f206a 100644 --- a/re/flowviewwindow.cpp +++ b/re/flowviewwindow.cpp @@ -297,6 +297,7 @@ void FlowViewWindow::saveFileGraph() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("PDF Files (*.pdf)"))); @@ -307,6 +308,7 @@ void FlowViewWindow::saveFileGraph() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("FlowView/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { @@ -327,6 +329,7 @@ void FlowViewWindow::saveFileGraph() if (!filename.contains('.')) filename += ".jpg"; ui->graphView->saveJpg(filename, 1024, 768); } + settings.setValue("FlowView/LoadSaveDirectory", dialog.directory().path()); } } @@ -334,6 +337,7 @@ void FlowViewWindow::saveFileFlow() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("PNG Files (*.png)"))); @@ -343,6 +347,7 @@ void FlowViewWindow::saveFileFlow() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("FlowView/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { @@ -358,6 +363,7 @@ void FlowViewWindow::saveFileFlow() if (!filename.contains('.')) filename += ".jpg"; ui->flowView->saveImage(filename, 1024, 768); } + settings.setValue("FlowView/LoadSaveDirectory", dialog.directory().path()); } } diff --git a/re/frameinfowindow.cpp b/re/frameinfowindow.cpp index 76710e8..a59b265 100644 --- a/re/frameinfowindow.cpp +++ b/re/frameinfowindow.cpp @@ -477,6 +477,7 @@ void FrameInfoWindow::saveDetails() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Text File (*.txt)"))); @@ -485,9 +486,11 @@ void FrameInfoWindow::saveDetails() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("FrameInfo/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { + settings.setValue("FrameInfo/LoadSaveDirectory", dialog.directory().path()); filename = dialog.selectedFiles()[0]; if (!filename.contains('.')) filename += ".txt"; if (dialog.selectedNameFilter() == filters[0]) diff --git a/re/graphingwindow.cpp b/re/graphingwindow.cpp index 0ab6952..81847d8 100644 --- a/re/graphingwindow.cpp +++ b/re/graphingwindow.cpp @@ -633,6 +633,7 @@ void GraphingWindow::saveGraphs() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("PDF Files (*.pdf)"))); @@ -643,10 +644,12 @@ void GraphingWindow::saveGraphs() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("Graphing/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("Graphing/LoadSaveDirectory", dialog.directory().path()); if (dialog.selectedNameFilter() == filters[0]) { @@ -670,6 +673,7 @@ void GraphingWindow::saveSpreadsheet() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Spreadsheet (*.csv)"))); @@ -678,10 +682,13 @@ void GraphingWindow::saveSpreadsheet() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("Graphing/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("Graphing/LoadSaveDirectory", dialog.directory().path()); + if (!filename.contains('.')) filename += ".csv"; QFile *outFile = new QFile(filename); @@ -789,6 +796,7 @@ void GraphingWindow::saveDefinitions() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Graph definition (*.gdf)"))); @@ -797,10 +805,13 @@ void GraphingWindow::saveDefinitions() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("Graphing/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("Graphing/LoadSaveDirectory", dialog.directory().path()); + if (!filename.contains('.')) filename += ".gdf"; QFile *outFile = new QFile(filename); @@ -847,6 +858,7 @@ void GraphingWindow::loadDefinitions() { QString filename; QFileDialog dialog; + QSettings settings; QStringList filters; filters.append(QString(tr("Graph definition (*.gdf)"))); @@ -857,10 +869,13 @@ void GraphingWindow::loadDefinitions() dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); + dialog.setDirectory(settings.value("Graphing/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("Graphing/LoadSaveDirectory", dialog.directory().path()); + QFile *inFile = new QFile(filename); QByteArray line; diff --git a/re/udsscanwindow.cpp b/re/udsscanwindow.cpp index c86955f..3199efb 100644 --- a/re/udsscanwindow.cpp +++ b/re/udsscanwindow.cpp @@ -145,6 +145,7 @@ void UDSScanWindow::saveResults() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Text File (*.txt)"))); @@ -153,10 +154,13 @@ void UDSScanWindow::saveResults() dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setDirectory(settings.value("UDSScan/LoadSaveDirectory", dialog.directory().path()).toString()); if (dialog.exec() == QDialog::Accepted) { filename = dialog.selectedFiles()[0]; + settings.setValue("UDSScan/LoadSaveDirectory", dialog.directory().path()); + if (!filename.contains('.')) filename += ".txt"; if (dialog.selectedNameFilter() == filters[0]) { diff --git a/scriptingwindow.cpp b/scriptingwindow.cpp index 816635c..7a230db 100644 --- a/scriptingwindow.cpp +++ b/scriptingwindow.cpp @@ -180,11 +180,13 @@ void ScriptingWindow::loadNewScript() { QString filename; QFileDialog dialog; + QSettings settings; ScriptContainer *container; QStringList filters; filters.append(QString(tr("Javascript File (*.js)"))); + dialog.setDirectory(settings.value("ScriptingWindow/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -215,6 +217,7 @@ void ScriptingWindow::loadNewScript() ui->listLoadedScripts->setCurrentRow(ui->listLoadedScripts->count() - 1); changeCurrentScript(); + settings.setValue("ScriptingWindow/LoadSaveDirectory", dialog.directory().path()); } } } @@ -287,10 +290,12 @@ void ScriptingWindow::saveScript() { QString filename; QFileDialog dialog(this); + QSettings settings; QStringList filters; filters.append(QString(tr("Javascript File (*.js)"))); + dialog.setDirectory(settings.value("ScriptingWindow/LoadSaveDirectory", dialog.directory().path()).toString()); dialog.setFileMode(QFileDialog::AnyFile); dialog.setNameFilters(filters); dialog.setViewMode(QFileDialog::Detail); @@ -312,6 +317,7 @@ void ScriptingWindow::saveScript() outFile->write(editor->toPlainText().toUtf8()); outFile->close(); delete outFile; + settings.setValue("ScriptingWindow/LoadSaveDirectory", dialog.directory().path()); } } }