]> git.notmuchmail.org Git - apitrace/commitdiff
Fix GUI visualization of floating point values.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 25 Nov 2011 13:37:37 +0000 (13:37 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 25 Nov 2011 13:37:59 +0000 (13:37 +0000)
According to http://doc.qt.nokia.com/stable/qvariant.html#type ,
variant types are actually QMetaType::Type, which includes floats.

So handle the QMetaType::Float case everywhere.

gui/apitracecall.cpp
gui/argumentseditor.cpp
gui/argumentseditor.h

index 4752cc003e6f8aa36b10b2523ad4c9ebff42b55b..d0eb542c3583371e2d8610d0b46eb95787c5a5fd 100644 (file)
@@ -105,9 +105,12 @@ apiVariantToString(const QVariant &variant, bool multiLine)
         return QLatin1String("?");
     }
 
-    if (variant.userType() == QVariant::Double) {
+    if (variant.userType() == QMetaType::Float) {
         return QString::number(variant.toFloat());
     }
+    if (variant.userType() == QVariant::Double) {
+        return QString::number(variant.toDouble());
+    }
     if (variant.userType() == QVariant::ByteArray) {
         if (variant.toByteArray().size() < 1024) {
             int bytes = variant.toByteArray().size();
index 1ee519ea444d672598d414f7dc12f559c4914862..9ce0f848253f515a265e118d2a107970d56f7037 100644 (file)
@@ -28,6 +28,7 @@ isVariantEditable(const QVariant &var)
     case QVariant::UInt:
     case QVariant::LongLong:
     case QVariant::ULongLong:
+    case QMetaType::Float:
     case QVariant::Double:
         return true;
     default:
@@ -55,7 +56,7 @@ ArgumentsItemEditorFactory::ArgumentsItemEditorFactory()
 {
 }
 
-QWidget * ArgumentsItemEditorFactory::createEditor(QVariant::Type type,
+QWidget * ArgumentsItemEditorFactory::createEditor(QMetaType::Type type,
                                                    QWidget *parent) const
 {
     switch (type) {
@@ -90,6 +91,14 @@ QWidget * ArgumentsItemEditorFactory::createEditor(QVariant::Type type,
     }
     case QVariant::Pixmap:
         return new QLabel(parent);
+    case QMetaType::Float: {
+        QDoubleSpinBox *sb = new QDoubleSpinBox(parent);
+        sb->setFrame(false);
+        sb->setMinimum(-FLT_MAX);
+        sb->setMaximum(FLT_MAX);
+        sb->setDecimals(8);
+        return sb;
+    }
     case QVariant::Double: {
         QDoubleSpinBox *sb = new QDoubleSpinBox(parent);
         sb->setFrame(false);
@@ -105,7 +114,7 @@ QWidget * ArgumentsItemEditorFactory::createEditor(QVariant::Type type,
 }
 
 QByteArray
-ArgumentsItemEditorFactory::valuePropertyName(QVariant::Type type) const
+ArgumentsItemEditorFactory::valuePropertyName(QMetaType::Type type) const
 {
     switch (type) {
     case QVariant::Bool:
@@ -114,6 +123,7 @@ ArgumentsItemEditorFactory::valuePropertyName(QVariant::Type type) const
     case QVariant::Int:
     case QVariant::LongLong:
     case QVariant::ULongLong:
+    case QMetaType::Float:
     case QVariant::Double:
         return "value";
 #if 0
index 7671d71bcd0264f720e2fbeac506bf8b71293328..68b7d1fb241fc5180b940c8e8ab21052d63963a8 100644 (file)
@@ -25,8 +25,8 @@ class ArgumentsItemEditorFactory : public QItemEditorFactory
 {
 public:
     ArgumentsItemEditorFactory();
-    QWidget *createEditor(QVariant::Type type, QWidget *parent) const;
-    QByteArray valuePropertyName(QVariant::Type) const;
+    QWidget *createEditor(QMetaType::Type type, QWidget *parent) const;
+    QByteArray valuePropertyName(QMetaType::Type) const;
 };
 
 class ArgumentsEditor : public QDialog