+void BasicBlockWidget::changeCommentHandler(ChangeCommentEvent* event) {
+ auto inst_it = std::find_if(instructions.begin(), instructions.end(),
+ [=](Instruction& inst) {
+ return inst.getAddress() == event->address;
+ });
+ if (inst_it != instructions.end()) {
+ if (std::find(inst_it->comments().begin(),
+ inst_it->comments().begin(),
+ event->comment) == inst_it->comments().end()) {
+ LOG4CXX_DEBUG(logger, "Change Comment Event -- New Comment!");
+ inst_it->comments().push_back(event->comment);
+ }
+ int row = inst_it - instructions.begin();
+ LOG4CXX_DEBUG(logger, "Inserting comment for instruction at row " << std::hex << row);
+ QTextCursor cursor = _table->cellAt(row, 2).lastCursorPosition();
+ while (cursor != _table->cellAt(row, 2).firstCursorPosition()) {
+ cursor.movePosition(QTextCursor::Left, QTextCursor::KeepAnchor, 1);
+ }
+ cursor.removeSelectedText();
+ cursor.insertHtml(formatComments(&*inst_it));
+ }
+}
+