From: Christoph Egger Date: Fri, 20 Feb 2015 16:38:04 +0000 (+0100) Subject: Remodel CustomQGraphicsTextItem being friend of BasicBlockWidget X-Git-Tag: v0.1~95 X-Git-Url: https://git.siccegge.de//index.cgi?a=commitdiff_plain;h=5497a8fca5ba55b7a6abacb826f0531cc847ee21;p=frida%2Ffrida.git Remodel CustomQGraphicsTextItem being friend of BasicBlockWidget The CustomQGraphicsTextItem is just an implementation detail of BasicBlockWidget and can use its private members (mostly the logger and mainwindow members) --- diff --git a/src/gui/widgets/BasicBlockWidget.cxx b/src/gui/widgets/BasicBlockWidget.cxx index 8b6dbe5..8e7e440 100644 --- a/src/gui/widgets/BasicBlockWidget.cxx +++ b/src/gui/widgets/BasicBlockWidget.cxx @@ -5,25 +5,24 @@ class CustomQGraphicsTextItem : public QObject, public QGraphicsTextItem { public: - CustomQGraphicsTextItem(const QString& text, BasicBlockWidget* parent, Mainwindow* mainwindow) - : QGraphicsTextItem(text, parent), parent(parent), mainwindow(mainwindow) {} + CustomQGraphicsTextItem(const QString& text, BasicBlockWidget* parent) + : QGraphicsTextItem(text, parent), parent(parent) {} void contextMenuEvent(QGraphicsSceneContextMenuEvent*); private: + void addComment(QTextTableCell cell, const QString& title); + BasicBlockWidget* parent; - Mainwindow* mainwindow; }; -namespace { - void addComment(QTextTableCell cell, const QString& title) { - SimpleStringDialog dialog(title); - int result = dialog.exec(); - if (QDialog::Accepted == result) { - // LOG4CXX_DEBUG(logger, "adding comment " << dialog.result().toStdString() - // << " at row " << cell.row()); - cell.firstCursorPosition().insertHtml(QString(";; ") + dialog.result()); - } else { - // LOG4CXX_DEBUG(logger, "addComment aborted"); - } +void CustomQGraphicsTextItem::addComment(QTextTableCell cell, const QString& title) { + SimpleStringDialog dialog(title); + int result = dialog.exec(); + if (QDialog::Accepted == result) { + LOG4CXX_DEBUG(parent->logger, "adding comment " << dialog.result().toStdString() + << " at row " << cell.row()); + cell.firstCursorPosition().insertHtml(QString(";; ") + dialog.result()); + } else { + LOG4CXX_DEBUG(parent->logger, "addComment aborted"); } } @@ -38,7 +37,7 @@ void CustomQGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent* e if (ok) { QAction* act = menu.addAction(c.selectedText() + " is a Function"); QObject::connect(act, &QAction::triggered, - [=]() {mainwindow->requestNewFunctionByAddress(address);}); + [=]() {parent->mainwindow->requestNewFunctionByAddress(address);}); } QTextTable* table = c.currentTable(); @@ -64,7 +63,7 @@ BasicBlockWidget::BasicBlockWidget(const QString& name, BasicBlock * block, , block(block), mainwindow(mainwindow) , logger(log4cxx::Logger::getLogger(name.toStdString() + "BasicBlock")) { next[0] = NULL; next[1] = NULL; - _widget.reset(new CustomQGraphicsTextItem("", this, mainwindow)); + _widget.reset(new CustomQGraphicsTextItem("", this)); _widget->setPos(5, 20); _widget->setTextInteractionFlags(Qt::TextSelectableByMouse| Qt::LinksAccessibleByMouse); diff --git a/src/gui/widgets/BasicBlockWidget.hxx b/src/gui/widgets/BasicBlockWidget.hxx index b45069c..ce1c833 100644 --- a/src/gui/widgets/BasicBlockWidget.hxx +++ b/src/gui/widgets/BasicBlockWidget.hxx @@ -10,11 +10,14 @@ #include class Mainwindow; +class CustomQGraphicsTextItem; + class BasicBlock; class BasicBlockWidget : public QObject, public QGraphicsItem { Q_OBJECT + friend class CustomQGraphicsTextItem; public: BasicBlockWidget(const QString& name, BasicBlock * block, Mainwindow * mainwindow);