Merge branch 'fix_dbc_delete'
This commit is contained in:
+17
-1
@@ -192,6 +192,7 @@ bool DBCMessageHandler::removeMessage(DBC_MESSAGE *msg)
|
|||||||
{
|
{
|
||||||
messages.removeAt(i);
|
messages.removeAt(i);
|
||||||
qDebug() << "Removed message at idx " << i;
|
qDebug() << "Removed message at idx " << i;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -336,7 +337,22 @@ DBC_NODE* DBCFile::findNodeByName(QString name)
|
|||||||
if (dbc_nodes.length() == 0) return nullptr;
|
if (dbc_nodes.length() == 0) return nullptr;
|
||||||
for (int i = 0; i < dbc_nodes.length(); i++)
|
for (int i = 0; i < dbc_nodes.length(); i++)
|
||||||
{
|
{
|
||||||
if (dbc_nodes[i].name.compare(name, Qt::CaseInsensitive) == 0)
|
if (name.compare(dbc_nodes[i].name, Qt::CaseInsensitive) == 0)
|
||||||
|
{
|
||||||
|
return &dbc_nodes[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
DBC_NODE* DBCFile::findNodeByNameAndComment(QString fullname)
|
||||||
|
{
|
||||||
|
QString nameAndComment;
|
||||||
|
if (dbc_nodes.length() == 0) return nullptr;
|
||||||
|
for (int i = 0; i < dbc_nodes.length(); i++)
|
||||||
|
{
|
||||||
|
nameAndComment = dbc_nodes[i].name + " - " + dbc_nodes[i].comment;
|
||||||
|
if (fullname.compare(nameAndComment, Qt::CaseInsensitive) == 0)
|
||||||
{
|
{
|
||||||
return &dbc_nodes[i];
|
return &dbc_nodes[i];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ public:
|
|||||||
DBCFile(const DBCFile& cpy);
|
DBCFile(const DBCFile& cpy);
|
||||||
DBCFile& operator=(const DBCFile& cpy);
|
DBCFile& operator=(const DBCFile& cpy);
|
||||||
DBC_NODE *findNodeByName(QString name);
|
DBC_NODE *findNodeByName(QString name);
|
||||||
|
DBC_NODE *findNodeByNameAndComment(QString fullname);
|
||||||
DBC_NODE *findNodeByIdx(int idx);
|
DBC_NODE *findNodeByIdx(int idx);
|
||||||
DBC_ATTRIBUTE *findAttributeByName(QString name, DBC_ATTRIBUTE_TYPE type = ATTR_TYPE_ANY);
|
DBC_ATTRIBUTE *findAttributeByName(QString name, DBC_ATTRIBUTE_TYPE type = ATTR_TYPE_ANY);
|
||||||
DBC_ATTRIBUTE *findAttributeByIdx(int idx);
|
DBC_ATTRIBUTE *findAttributeByIdx(int idx);
|
||||||
|
|||||||
@@ -631,7 +631,7 @@ void DBCMainEditor::deleteCurrentTreeItem()
|
|||||||
{
|
{
|
||||||
QTreeWidgetItem *currItem = ui->treeDBC->currentItem();
|
QTreeWidgetItem *currItem = ui->treeDBC->currentItem();
|
||||||
int typ = currItem->data(0, Qt::UserRole).toInt();
|
int typ = currItem->data(0, Qt::UserRole).toInt();
|
||||||
QString idString;
|
QString idString, columnText;
|
||||||
int msgID;
|
int msgID;
|
||||||
DBC_MESSAGE *msg;
|
DBC_MESSAGE *msg;
|
||||||
DBC_NODE *node;
|
DBC_NODE *node;
|
||||||
@@ -642,7 +642,8 @@ void DBCMainEditor::deleteCurrentTreeItem()
|
|||||||
switch (typ)
|
switch (typ)
|
||||||
{
|
{
|
||||||
case 1: //deleting a node cascades deletion down to messages and signals
|
case 1: //deleting a node cascades deletion down to messages and signals
|
||||||
node = dbcFile->findNodeByName(currItem->text(0));
|
columnText = currItem->text(0);
|
||||||
|
node = dbcFile->findNodeByNameAndComment(columnText);
|
||||||
if (!node) return;
|
if (!node) return;
|
||||||
for (int x = 0; x < dbcFile->messageHandler->getCount(); x++)
|
for (int x = 0; x < dbcFile->messageHandler->getCount(); x++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user