| 137 | } |
| 138 | |
| 139 | bool FrameFileIO::loadFrameFile(QString &fileName, QVector<CANFrame>* frameCache) |
| 140 | { |
| 141 | QString filename; |
| 142 | QFileDialog dialog; |
| 143 | QSettings settings; |
| 144 | bool result = false; |
| 145 | |
| 146 | QStringList filters; |
| 147 | filters.append(QString(tr("Autodetect File Type (*.*)"))); |
| 148 | filters.append(QString(tr("GVRET Logs (*.csv *.CSV)"))); |
| 149 | filters.append(QString(tr("CRTD Logs (*.crt *.crtd *.CRT *.CRTD)"))); |
| 150 | filters.append(QString(tr("Generic ID/Data CSV (*.csv *.CSV)"))); |
| 151 | filters.append(QString(tr("BusMaster Log (*.log *.LOG)"))); |
| 152 | filters.append(QString(tr("Microchip Log (*.can *.CAN)"))); |
| 153 | filters.append(QString(tr("Vector trace files (*.trace *.TRACE)"))); |
| 154 | filters.append(QString(tr("IXXAT MiniLog (*.csv *.CSV)"))); |
| 155 | filters.append(QString(tr("CAN-DO Log (*.avc *.can *.evc *.qcc *.AVC *.CAN *.EVC *.QCC)"))); |
| 156 | filters.append(QString(tr("Vehicle Spy (*.csv *.CSV)"))); |
| 157 | filters.append(QString(tr("Candump/Kayak (*.log *.LOG)"))); |
| 158 | filters.append(QString(tr("PCAN Viewer (*.trc *.TRC)"))); |
| 159 | filters.append(QString(tr("Kvaser Log Decimal (*.txt *.TXT)"))); |
| 160 | filters.append(QString(tr("Kvaser Log Hex (*.txt *.TXT)"))); |
| 161 | filters.append(QString(tr("CANalyzer Ascii Log (*.asc *.ASC)"))); |
| 162 | filters.append(QString(tr("CANalyzer Binary Log Files (*.blf *.BLF)"))); |
| 163 | filters.append(QString(tr("CANHacker Trace Files (*.trc *.TRC)"))); |
| 164 | filters.append(QString(tr("Cabana Log (*.csv *.CSV)"))); |
| 165 | filters.append(QString(tr("CANOpen Magic (*.csv *.CSV)"))); |
| 166 | |
| 167 | dialog.setDirectory(settings.value("FileIO/LoadSaveDirectory", dialog.directory().path()).toString()); |
| 168 | dialog.setFileMode(QFileDialog::ExistingFile); |
| 169 | dialog.setNameFilters(filters); |
| 170 | dialog.setViewMode(QFileDialog::Detail); |
| 171 | |
| 172 | if (dialog.exec() == QDialog::Accepted) |
| 173 | { |
| 174 | filename = dialog.selectedFiles()[0]; |
| 175 | |
| 176 | QProgressDialog progress(qApp->activeWindow()); |
| 177 | progress.setWindowModality(Qt::WindowModal); |
| 178 | progress.setLabelText("Loading file..."); |
| 179 | progress.setCancelButton(nullptr); |
| 180 | progress.setRange(0,0); |
| 181 | progress.setMinimumDuration(0); |
| 182 | progress.show(); |
| 183 | |
| 184 | qApp->processEvents(); |
| 185 | |
| 186 | if (dialog.selectedNameFilter() == filters[0]) result = autoDetectLoadFile(filename, frameCache); |
| 187 | if (dialog.selectedNameFilter() == filters[1]) result = loadNativeCSVFile(filename, frameCache); |
| 188 | if (dialog.selectedNameFilter() == filters[2]) result = loadCRTDFile(filename, frameCache); |
| 189 | if (dialog.selectedNameFilter() == filters[3]) result = loadGenericCSVFile(filename, frameCache); |
| 190 | if (dialog.selectedNameFilter() == filters[4]) result = loadLogFile(filename, frameCache); |
| 191 | if (dialog.selectedNameFilter() == filters[5]) result = loadMicrochipFile(filename, frameCache); |
| 192 | if (dialog.selectedNameFilter() == filters[6]) result = loadTraceFile(filename, frameCache); |
| 193 | if (dialog.selectedNameFilter() == filters[7]) result = loadIXXATFile(filename, frameCache); |
| 194 | if (dialog.selectedNameFilter() == filters[8]) result = loadCANDOFile(filename, frameCache); |
| 195 | if (dialog.selectedNameFilter() == filters[9]) result = loadVehicleSpyFile(filename, frameCache); |
| 196 | if (dialog.selectedNameFilter() == filters[10]) result = loadCanDumpFile(filename, frameCache); |