From: Zack Rusin Date: Mon, 8 Aug 2011 21:49:51 +0000 (-0400) Subject: Don't change immutable values. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=62250b4d637e53763914c487d1d0bdaadd1afa84;p=apitrace Don't change immutable values. When editing the values in the gui we'd silently change some immutable values. This fixes #29 --- diff --git a/gui/argumentseditor.cpp b/gui/argumentseditor.cpp index 0aeafeb..8848122 100644 --- a/gui/argumentseditor.cpp +++ b/gui/argumentseditor.cpp @@ -14,6 +14,14 @@ static bool isVariantEditable(const QVariant &var) { + if (var.canConvert()) { + ApiArray array = var.value(); + QList vals = array.values(); + if (vals.isEmpty()) + return false; + else + return isVariantEditable(vals.first()); + } switch (var.userType()) { case QVariant::Bool: case QVariant::Int: @@ -339,6 +347,7 @@ void ArgumentsEditor::accept() QString argName = argNames[i]; QVariant argValue = originalValues[i]; QVariant editorValue = valueForName(argName, argValue, &valChanged); + newValues.append(editorValue); #if 0 qDebug()<<"Arg = "<rowCount(); ++topRow) { QModelIndex nameIdx = m_model->index(topRow, 0, QModelIndex()); QString argName = nameIdx.data().toString();