context menu in place for node rebase/duplicate
need to add menu for rebase options and code for both actions
This commit is contained in:
@@ -21,11 +21,14 @@ DBCMainEditor::DBCMainEditor( const QVector<CANFrame> *frames, QWidget *parent)
|
|||||||
dbcHandler = DBCHandler::getReference();
|
dbcHandler = DBCHandler::getReference();
|
||||||
referenceFrames = frames;
|
referenceFrames = frames;
|
||||||
|
|
||||||
|
ui->treeDBC->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
|
||||||
connect(ui->btnSearch, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearch);
|
connect(ui->btnSearch, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearch);
|
||||||
connect(ui->lineSearch, &QLineEdit::returnPressed, this, &DBCMainEditor::handleSearch);
|
connect(ui->lineSearch, &QLineEdit::returnPressed, this, &DBCMainEditor::handleSearch);
|
||||||
connect(ui->btnSearchNext, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearchForward);
|
connect(ui->btnSearchNext, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearchForward);
|
||||||
connect(ui->btnSearchPrev, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearchBackward);
|
connect(ui->btnSearchPrev, &QAbstractButton::clicked, this, &DBCMainEditor::handleSearchBackward);
|
||||||
connect(ui->treeDBC, &QTreeWidget::doubleClicked, this, &DBCMainEditor::onTreeDoubleClicked);
|
connect(ui->treeDBC, &QTreeWidget::doubleClicked, this, &DBCMainEditor::onTreeDoubleClicked);
|
||||||
|
connect(ui->treeDBC, &QTreeWidget::customContextMenuRequested, this, &DBCMainEditor::onTreeContextMenu);
|
||||||
connect(ui->treeDBC, &QTreeWidget::currentItemChanged, this, &DBCMainEditor::currentItemChanged);
|
connect(ui->treeDBC, &QTreeWidget::currentItemChanged, this, &DBCMainEditor::currentItemChanged);
|
||||||
connect(ui->btnDelete, &QAbstractButton::clicked, this, &DBCMainEditor::deleteCurrentTreeItem);
|
connect(ui->btnDelete, &QAbstractButton::clicked, this, &DBCMainEditor::deleteCurrentTreeItem);
|
||||||
connect(ui->btnNewNode, &QAbstractButton::clicked, this, &DBCMainEditor::newNode);
|
connect(ui->btnNewNode, &QAbstractButton::clicked, this, &DBCMainEditor::newNode);
|
||||||
@@ -298,6 +301,51 @@ void DBCMainEditor::onTreeDoubleClicked(const QModelIndex &index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DBCMainEditor::onTreeContextMenu(const QPoint & pos)
|
||||||
|
{
|
||||||
|
QTreeWidgetItem* firstCol = ui->treeDBC->currentItem();
|
||||||
|
bool ret = false;
|
||||||
|
DBC_MESSAGE *msg;
|
||||||
|
DBC_SIGNAL *sig;
|
||||||
|
DBC_NODE *node;
|
||||||
|
uint32_t msgID;
|
||||||
|
QString idString;
|
||||||
|
|
||||||
|
qDebug() << firstCol->data(0, Qt::UserRole) << " - " << firstCol->text(0);
|
||||||
|
|
||||||
|
switch (firstCol->data(0, Qt::UserRole).toInt())
|
||||||
|
{
|
||||||
|
case 1: //a node
|
||||||
|
idString = firstCol->text(0).split(" ")[0];
|
||||||
|
node = dbcFile->findNodeByName(idString);
|
||||||
|
|
||||||
|
QAction *actionRebase = new QAction(QIcon(":/Resource/warning32.ico"), tr("Rebase all messages"), this);
|
||||||
|
actionRebase->setStatusTip(tr("Rebase all messages in node"));
|
||||||
|
connect(actionRebase, SIGNAL(triggered()), this, SLOT(onRebaseMessages()));
|
||||||
|
|
||||||
|
QAction *actionDupe = new QAction(QIcon(":/Resource/warning32.ico"), tr("Duplicate node"), this);
|
||||||
|
actionDupe->setStatusTip(tr("Duplicate node and messages"));
|
||||||
|
connect(actionDupe, SIGNAL(triggered()), this, SLOT(onDuplicateNode()));
|
||||||
|
|
||||||
|
QMenu menu(this);
|
||||||
|
menu.addAction(actionRebase);
|
||||||
|
menu.addAction(actionDupe);
|
||||||
|
|
||||||
|
QPoint pt(pos);
|
||||||
|
menu.exec( ui->treeDBC->mapToGlobal(pos) );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBCMainEditor::onRebaseMessages()
|
||||||
|
{
|
||||||
|
qDebug() << "rebase!!";
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBCMainEditor::onDuplicateNode()
|
||||||
|
{
|
||||||
|
qDebug() << "dupe!!";
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Recreate the whole tree with pretty icons and custom user roles that give the rest of code an easy way to figure out whether a given tree node
|
* Recreate the whole tree with pretty icons and custom user roles that give the rest of code an easy way to figure out whether a given tree node
|
||||||
|
|||||||
+4
-1
@@ -32,6 +32,7 @@ public slots:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onTreeDoubleClicked(const QModelIndex &index);
|
void onTreeDoubleClicked(const QModelIndex &index);
|
||||||
|
void onTreeContextMenu(const QPoint & pos);
|
||||||
void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *prev);
|
void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *prev);
|
||||||
void onCustomMenuTree(QPoint);
|
void onCustomMenuTree(QPoint);
|
||||||
void deleteCurrentTreeItem();
|
void deleteCurrentTreeItem();
|
||||||
@@ -43,7 +44,9 @@ private slots:
|
|||||||
void handleSearchBackward();
|
void handleSearchBackward();
|
||||||
void newNode();
|
void newNode();
|
||||||
void newMessage();
|
void newMessage();
|
||||||
void newSignal();
|
void newSignal();
|
||||||
|
void onRebaseMessages();
|
||||||
|
void onDuplicateNode();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::DBCMainEditor *ui;
|
Ui::DBCMainEditor *ui;
|
||||||
|
|||||||
Reference in New Issue
Block a user