]> git.cworth.org Git - apitrace/commitdiff
Make sure that only numericals can be edited right now.
authorZack Rusin <zack@kde.org>
Fri, 15 Apr 2011 06:18:08 +0000 (02:18 -0400)
committerZack Rusin <zack@kde.org>
Fri, 15 Apr 2011 06:18:08 +0000 (02:18 -0400)
gui/apitracecall.cpp
gui/argumentseditor.cpp

index a975728b80a00b8d3fd1f61884063a4b56a525e6..3c58542f436d9ebb61c41c8670b4fb1e0570df8e 100644 (file)
@@ -536,5 +536,3 @@ QList<QVariant> ApiArray::values() const
 {
     return m_array;
 }
-
-
index 7e0974a70aaf61630af63e0db5120ae2b15dbd8a..bc5563c84e008e16a9c3be03d0cb985cfc53bbd5 100644 (file)
 
 #include "apitracecall.h"
 
+
+static bool
+isVariantEditable(const QVariant &var)
+{
+    switch (var.userType()) {
+    case QVariant::Bool:
+    case QVariant::Int:
+    case QVariant::UInt:
+    case QVariant::LongLong:
+    case QVariant::ULongLong:
+    case QVariant::Double:
+        return true;
+    default:
+        return false;
+    }
+}
+
 ArgumentsEditor::ArgumentsEditor(QWidget *parent)
     : QWidget(parent),
       m_model(new QStandardItemModel()),
@@ -77,6 +94,9 @@ void ArgumentsEditor::setupCall()
             QList<QVariant> vals = array.values();
             QVariant firstVal = vals.value(0);
 
+            QVariant x = val;
+            x.convert(QVariant::String);
+            qDebug()<<"aaaaa = "<<x;
             if (firstVal.userType() == QVariant::String) {
                 m_ui.argsTabWidget->addTab(
                     m_ui.shaderTab, argName);
@@ -140,7 +160,15 @@ void ArgumentsEditor::setupCall()
         } else {
             QStandardItem *item
                 = new QStandardItem();
-            item->setFlags(item->flags() | Qt::ItemIsEditable);
+
+            if (isVariantEditable(val)) {
+                item->setFlags(item->flags() | Qt::ItemIsEditable);
+            } else {
+                QIcon icon(":/resources/emblem-locked.png");
+                item->setIcon(icon);
+                item->setFlags(item->flags() ^ Qt::ItemIsEditable);
+                item->setToolTip(tr("Argument is read-only"));
+            }
             item->setData(val, Qt::DisplayRole);
             topRow.append(item);
         }
@@ -197,7 +225,7 @@ QWidget * ArgumentsItemEditorFactory::createEditor(QVariant::Type type,
         sb->setFrame(false);
         sb->setMinimum(-DBL_MAX);
         sb->setMaximum(DBL_MAX);
-        sb->setDecimals(10);
+        sb->setDecimals(8);
         return sb;
     }
     default: