QTableWidget -> QLabel + HTML
authorChristoph Egger <siccegge@faui49man12.informatik.uni-erlangen.de>
Thu, 18 Dec 2014 12:19:51 +0000 (13:19 +0100)
committerChristoph Egger <siccegge@faui49man12.informatik.uni-erlangen.de>
Thu, 18 Dec 2014 12:19:51 +0000 (13:19 +0100)
src/gui/qt.hxx
src/gui/widgets/BasicBlockWidget.cxx
src/gui/widgets/BasicBlockWidget.hxx

index f0e326eb990ee21ab1546350212171304e3b2edb..5ef2f3d4fef2e0cb4cfbb5606c8b34c42f8010cc 100644 (file)
@@ -18,3 +18,4 @@
 #include <QTextBrowser>
 #include <QPushButton>
 #include <QLineEdit>
+#include <QLabel>
index 94e07589399da8341d3dee7deb42dd19e714ea8b..282eab27c53b0e869f4a3241445397bfabf77891 100644 (file)
@@ -5,28 +5,12 @@ BasicBlockWidget::BasicBlockWidget(const QString& name, BasicBlock * block)
        , name(name), block(block) {
        next[0] = NULL; next[1] = NULL;
     _widget.move(5, 20);
-    _widget.setGridStyle(Qt::NoPen);
-       _widget.setShowGrid(false);
-       _widget.setWordWrap(false);
-    _widget.setMinimumHeight(_widget.rowHeight(0) + 10);
-    _widget.setMaximumHeight(20);
-    _widget.resizeColumnToContents(0);
-    _widget.resizeColumnToContents(1);
-    _widget.resizeColumnToContents(2);
-    _widget.updateGeometry();
-    _widget.setMaximumWidth(260);
-    _widget.setColumnCount(3);
-    _widget.verticalHeader()->hide();
-    _widget.horizontalHeader()->hide();
-    width = _widget.rowHeight(0) + 20;
+
     if (width < 270) width = 270;
 }
 
 void BasicBlockWidget::addItem(uint8_t* bytes, size_t num_bytes,
                                const QString& line) {
-    size_t current_row = _widget.rowCount();
-    int column_width;
-
     QString bytestring;
 
     for (size_t i(0); i < num_bytes; ++i) {
@@ -36,31 +20,17 @@ void BasicBlockWidget::addItem(uint8_t* bytes, size_t num_bytes,
         bytestring += ' ';
     }
 
-    _widget.setRowCount(current_row + 1);
-
-    _widget.setItem(current_row, 0, new QTableWidgetItem(bytestring));
-    _widget.setItem(current_row, 1, new QTableWidgetItem(line));
-    _widget.setItem(current_row, 2, new QTableWidgetItem(""));
-    _widget.updateGeometry();
-
-    _widget.resizeColumnToContents(0);
-    _widget.resizeColumnToContents(1);
-    _widget.resizeColumnToContents(2);
+       QString old_text = _widget.text();
+       QString new_text =
+               old_text.remove("</table>") +
+               "<tr><td>" + bytestring +
+               "</td><td>" + line +
+               "</td><td>" + "" +
+               "</td></tr></table>";
 
-    _widget.resizeRowToContents(current_row);
+       _widget.setText(new_text);
+       width = 12 + _widget.sizeHint().width();
+       height = 25 + _widget.sizeHint().height();
 
-    column_width =
-        _widget.columnWidth(0) +
-        _widget.columnWidth(1) +
-        _widget.columnWidth(2) +
-        5;
-
-    _widget.setMinimumWidth(column_width);
-    _widget.setMinimumHeight((1 + _widget.rowHeight(0)) * (_widget.rowCount()) + 2);
-    _widget.setMaximumHeight((1 + _widget.rowHeight(0)) * (_widget.rowCount()) + 2);
-
-
-    height = (1 + _widget.rowHeight(0)) * (_widget.rowCount()) + 25;
-    width = column_width + 10;
-    if (width < 270) width = 270;
+    if (width < 250) width = 250;
 }
index 5f225b8b9dd7da33ce31ff905aecdacb97d67788..e40ed840a759bf838d6a1cb5f14765dd0b9217a5 100644 (file)
@@ -43,7 +43,7 @@ public:
         painter->setPen(QColor(0x00, 0x00, 0xff, 0xff));
         painter->drawRect(0, 0, width, height);
         painter->drawText(5, 15, name);
-               if (_widget.rowCount() != 0)
+               if (_widget.text() != "")
                        _widget.render(painter, QPoint(5, 20));
     }
 
@@ -62,7 +62,7 @@ public:
 
 private:
     uint32_t width, height;
-    QTableWidget _widget;
+    QLabel _widget;
        QString name;
        BasicBlock * block;
        std::vector<BasicBlockWidget*> previous;