Fix for a few issues with DBC file loading and the ability to reorder DBC files.

This commit is contained in:
Collin Kidder
2019-05-28 21:26:33 -04:00
parent 377b42c8e7
commit a0cc88ede2
3 changed files with 14 additions and 3 deletions
+7 -3
View File
@@ -460,9 +460,13 @@ DBC_SIGNAL* DBCFile::parseSignalLine(QString line, DBC_MESSAGE *msg)
if (!sig.receiver) sig.receiver = findNodeByIdx(0); //apply default if there was no match if (!sig.receiver) sig.receiver = findNodeByIdx(0); //apply default if there was no match
sig.parentMessage = msg; sig.parentMessage = msg;
msg->sigHandler->addSignal(sig); if (msg)
if (isMultiplexor) msg->multiplexorSignal = msg->sigHandler->findSignalByName(sig.name); {
return msg->sigHandler->findSignalByName(sig.name); msg->sigHandler->addSignal(sig);
if (isMultiplexor) msg->multiplexorSignal = msg->sigHandler->findSignalByName(sig.name);
return msg->sigHandler->findSignalByName(sig.name);
}
else return nullptr;
} }
return nullptr; return nullptr;
+6
View File
@@ -15,6 +15,8 @@ DBCLoadSaveWindow::DBCLoadSaveWindow(const QVector<CANFrame> *frames, QWidget *p
ui->setupUi(this); ui->setupUi(this);
inhibitCellProcessing = false;
QStringList header; QStringList header;
header << "Filename" << "Associated Bus" << "J1939"; header << "Filename" << "Associated Bus" << "J1939";
ui->tableFiles->setColumnCount(3); ui->tableFiles->setColumnCount(3);
@@ -159,6 +161,7 @@ void DBCLoadSaveWindow::editFile()
void DBCLoadSaveWindow::cellChanged(int row, int col) void DBCLoadSaveWindow::cellChanged(int row, int col)
{ {
if (inhibitCellProcessing) return;
if (col == 1) //the bus column if (col == 1) //the bus column
{ {
DBCFile *file = dbcHandler->getFileByIdx(row); DBCFile *file = dbcHandler->getFileByIdx(row);
@@ -214,6 +217,7 @@ void DBCLoadSaveWindow::swapTableRows(bool up)
const int destIdx = (up ? idx-1 : idx+1); const int destIdx = (up ? idx-1 : idx+1);
Q_ASSERT(destIdx >= 0 && destIdx < ui->tableFiles->rowCount()); Q_ASSERT(destIdx >= 0 && destIdx < ui->tableFiles->rowCount());
inhibitCellProcessing = true;
// take whole rows // take whole rows
QList<QTableWidgetItem*> sourceItems = takeRow(idx); QList<QTableWidgetItem*> sourceItems = takeRow(idx);
QList<QTableWidgetItem*> destItems = takeRow(destIdx); QList<QTableWidgetItem*> destItems = takeRow(destIdx);
@@ -221,6 +225,8 @@ void DBCLoadSaveWindow::swapTableRows(bool up)
// set back in reverse order // set back in reverse order
setRow(idx, destItems); setRow(idx, destItems);
setRow(destIdx, sourceItems); setRow(destIdx, sourceItems);
inhibitCellProcessing = false;
} }
QList<QTableWidgetItem*> DBCLoadSaveWindow::takeRow(int row) QList<QTableWidgetItem*> DBCLoadSaveWindow::takeRow(int row)
+1
View File
@@ -35,6 +35,7 @@ private:
DBCFile *currentlyEditingFile; DBCFile *currentlyEditingFile;
const QVector<CANFrame> *referenceFrames; const QVector<CANFrame> *referenceFrames;
DBCMainEditor *editorWindow; DBCMainEditor *editorWindow;
bool inhibitCellProcessing;
void swapTableRows(bool up); void swapTableRows(bool up);
QList<QTableWidgetItem*> takeRow(int row); QList<QTableWidgetItem*> takeRow(int row);