X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FBasicBlockWidget.cxx;h=77a14932999adeedfddc1c77517773909c029bb7;hp=de97c51d521c92b6cfc36d1871102a0b31cd221e;hb=1b43b26ba9b23cb5f3004db7b9b00f6b08227563;hpb=7e983f239ca96faf5c8ba92cd4de54eba5235f75 diff --git a/src/gui/widgets/BasicBlockWidget.cxx b/src/gui/widgets/BasicBlockWidget.cxx index de97c51..77a1493 100644 --- a/src/gui/widgets/BasicBlockWidget.cxx +++ b/src/gui/widgets/BasicBlockWidget.cxx @@ -55,13 +55,21 @@ void CustomQGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent* e QMenu menu; bool ok; uint64_t address = c.selectedText().toLongLong(&ok, 16); + QTextTable* table = c.currentTable(); if (ok) { QAction* act = menu.addAction(c.selectedText() + " is a Function"); QObject::connect(act, &QAction::triggered, - [=]() {parent->mainwindow->requestNewFunctionByAddress(address);}); + [=]() { + parent->mainwindow->requestNewFunctionByAddress(address); + if (NULL == table) return; + int row = table->cellAt(c).row(); + uint64_t insAddress = parent->instructions[row].getAddress(); + Comment* comment = parent->block->getManager()->newLocalComment(insAddress, (Function*)0x23); + comment->setText("#F<" + c.selectedText().toStdString() + ">"); + parent->block->getManager()->finishComment(comment); + }); } - QTextTable* table = c.currentTable(); if (NULL != table) { int row = table->cellAt(c).row(); QAction* globalComment = menu.addAction("Add global Comment"); @@ -109,7 +117,8 @@ BasicBlockWidget::BasicBlockWidget(const QString& name, BasicBlock * block, , logger(log4cxx::Logger::getLogger("gui.BasicBlockWidget." + name.toStdString())) { next[0] = NULL; next[1] = NULL; - block->getManager()->registerRenameFunctionEvent([=](RenameFunctionEvent* event) {updateFunctionName(event);}); + QObject::connect(block->getManager(), &InformationManager::renameFunctionEvent, + [=](RenameFunctionEvent* event) {updateFunctionName(event);}); _widget.reset(new CustomQGraphicsTextItem("", this)); _widget->setPos(5, 20); @@ -142,7 +151,8 @@ BasicBlockWidget::BasicBlockWidget(const QString& name, BasicBlock * block, }); instructions = block->getInstructions(); populateWidget(); - block->getManager()->registerChangeCommentEvent([=](ChangeCommentEvent* e) {changeCommentHandler(e);}); + QObject::connect(block->getManager(), &InformationManager::changeCommentEvent, + [=](ChangeCommentEvent* e) {changeCommentHandler(e);}); } void BasicBlockWidget::updateFunctionName(RenameFunctionEvent *event) { @@ -253,12 +263,11 @@ void BasicBlockWidget::populateWidget() { } QString BasicBlockWidget::formatComments(Instruction* inst) { - QString comments; + QStringList comments; for (Comment* c: inst->comments()) { - comments += "
"; - comments += QString(c->getText().c_str()).toHtmlEscaped(); + comments << QString(c->getText().c_str()).toHtmlEscaped(); } - return (comments == "" ? "" : ";; ") + comments.trimmed(); + return (comments.empty() ? "" : ";; ") + comments.join("
").trimmed(); } void BasicBlockWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem*,