X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FBasicBlockWidget.hxx;h=8ee33a56f21a43e6bcccfb26bbde48b6e395f58f;hp=2dcc80c237b0890e5cfe3e1ecd39c617d73244b5;hb=ac5817edcb30c89bc1e5fdcf3a124c3dc2e49630;hpb=9e283567ac56a6433e832d0fa38cf534a0cb8f9f diff --git a/src/gui/widgets/BasicBlockWidget.hxx b/src/gui/widgets/BasicBlockWidget.hxx index 2dcc80c..8ee33a5 100644 --- a/src/gui/widgets/BasicBlockWidget.hxx +++ b/src/gui/widgets/BasicBlockWidget.hxx @@ -8,12 +8,15 @@ #include #include -class BasicBlockWidget : public QGraphicsItem +class Mainwindow; + +class BasicBlockWidget : public QObject, public QGraphicsItem { + Q_OBJECT public: - BasicBlockWidget(const QString& name, BasicBlock * block); + BasicBlockWidget(const QString& name, BasicBlock * block, Mainwindow * mainwindow); - void addItem(uint8_t* bytes, size_t num_bytes, const QString& line); + void addItem(uint8_t* bytes, size_t num_bytes, QString line, const QString& href); QRectF boundingRect() const { qreal penWidth = 1; @@ -32,9 +35,9 @@ public: } std::array getExits() const { - return { { mapToScene(QPointF( width/3, height)), - mapToScene(QPointF( width/2, height)), - mapToScene(QPointF(2*width/3, height)) } }; + return { { mapToScene(QPointF( width/3, height)), + mapToScene(QPointF( width/2, height)), + mapToScene(QPointF(2*width/3, height)) } }; } void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, @@ -43,8 +46,6 @@ public: painter->setPen(QColor(0x00, 0x00, 0xff, 0xff)); painter->drawRect(0, 0, width, height); painter->drawText(5, 15, name); - if (_widget.text() != "") - _widget.render(painter, QPoint(5, 20)); } void addPrevious(BasicBlockWidget * widget) { @@ -60,11 +61,16 @@ public: return next; } + QString getName() const { + return name; + } private: uint32_t width, height; - QLabel _widget; + QGraphicsTextItem _widget; + QTextTable* _table; QString name; BasicBlock * block; + Mainwindow * mainwindow; std::vector previous; BasicBlockWidget* next[2]; };