]> git.cworth.org Git - apitrace/commitdiff
gui: Allow to edit strings.
authorJosé Fonseca <jfonseca@vmware.com>
Mon, 8 Jul 2013 14:40:36 +0000 (15:40 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 8 Jul 2013 14:40:36 +0000 (15:40 +0100)
Based upon the surrounding code.  There might be a better way to achieve
it, but this seems better than no support.

Issue #159.

gui/argumentseditor.cpp
gui/argumentseditor.h

index e6345ea5659eac2301561c0fe102dee907b1082b..4310d2ec112642802ff04ae64b6c23c783785b9f 100644 (file)
@@ -30,6 +30,7 @@ isVariantEditable(const QVariant &var)
     case QVariant::ULongLong:
     case QMetaType::Float:
     case QVariant::Double:
+    case QVariant::String:
         return true;
     default:
         return false;
@@ -71,6 +72,8 @@ void setArgumentsItemEditorFactory ()
     new QStandardItemEditorCreator<FloatEditorCreator>();
     QItemEditorCreatorBase *doubleEditorCreator =
     new QStandardItemEditorCreator<DoubleEditorCreator>();
+    QItemEditorCreatorBase *stringEditorCreator =
+    new QStandardItemEditorCreator<StringEditorCreator>();
     QItemEditorCreatorBase *invalidEditorCreator =
     new QStandardItemEditorCreator<InvalidEditorCreator>();
 
@@ -87,6 +90,7 @@ void setArgumentsItemEditorFactory ()
     factory->registerEditor(QVariant::Pixmap, pixmapEditorCreator);
     factory->registerEditor(typeFloat, floatEditorCreator);
     factory->registerEditor(QVariant::Double, doubleEditorCreator);
+    factory->registerEditor(QVariant::String, stringEditorCreator);
     factory->registerEditor(QVariant::Invalid, invalidEditorCreator);
 
     QItemEditorFactory::setDefaultFactory(factory);
index 27aa491f595cfe1162a44bf642a7ceea170d01e4..73cd45803cb3036689865e704804625232eafbad 100644 (file)
@@ -9,6 +9,7 @@
 #include <QItemEditorFactory>
 #include <QStandardItemModel>
 #include <QSpinBox>
+#include <QTextEdit>
 
 #include <limits.h>
 #include <float.h>
@@ -126,6 +127,16 @@ public:
     };
 };
 
+class StringEditorCreator : public QTextEdit
+{
+    Q_OBJECT
+    Q_PROPERTY(QString plainText READ toPlainText WRITE setPlainText USER true)
+public:
+    StringEditorCreator(QWidget *widget = 0) : QTextEdit(widget)
+    {
+    };
+};
+
 class InvalidEditorCreator : public QLabel
 {
     Q_OBJECT