From abb3fde601aa92770435f1e7174495ad752d2fc1 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Sat, 16 Apr 2011 02:16:49 -0400 Subject: [PATCH] Start collecting the edited values. --- gui/apitracecall.cpp | 6 ++++ gui/apitracecall.h | 1 + gui/argumentseditor.cpp | 63 ++++++++++++++++++++++++++++++++++++++++- gui/argumentseditor.h | 8 ++++++ 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 69bfdc7..32e78b5 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -207,6 +207,11 @@ ApiArray::ApiArray(const Trace::Array *arr) init(arr); } +ApiArray::ApiArray(const QList &vals) + : m_array(vals) +{ +} + QString ApiArray::toString() const { QString str; @@ -606,3 +611,4 @@ ApiTraceFrame * ApiTraceCall::parentFrame()const { return m_parentFrame; } + diff --git a/gui/apitracecall.h b/gui/apitracecall.h index 14ef52d..1cabcec 100644 --- a/gui/apitracecall.h +++ b/gui/apitracecall.h @@ -88,6 +88,7 @@ class ApiArray { public: ApiArray(const Trace::Array *arr = 0); + ApiArray(const QList &vals); QString toString() const; diff --git a/gui/argumentseditor.cpp b/gui/argumentseditor.cpp index 7f75d2c..4648f1c 100644 --- a/gui/argumentseditor.cpp +++ b/gui/argumentseditor.cpp @@ -184,7 +184,6 @@ void ArgumentsEditor::setupCall() nameItem->setFlags(nameItem->flags() ^ Qt::ItemIsEditable); QList topRow; topRow.append(nameItem); - qDebug()<<"arg "<argNames(); + QList originalValues = m_call->arguments(); + for (int i = 0; i < argNames.count(); ++i) { + QString argName = argNames[i]; + QVariant argValue = originalValues[i]; + QVariant editorValue = valueForName(argName, argValue); + qDebug()<<"Arg = "<(); + val = arrayFromIndex(nameIdx, array); + } else { + QModelIndex valIdx = m_model->index(topRow, 1, QModelIndex()); + val = valIdx.data(); + } + } + } + return val; +} + +QVariant ArgumentsEditor::arrayFromIndex(const QModelIndex &parentIndex, + const ApiArray &origArray) const +{ + QList origValues = origArray.values(); + QVariant newValue; + if (origValues.isEmpty()) + return QVariant::fromValue(ApiArray()); + + if (origValues.first().userType() == QVariant::String) { + //shaders + + } else { + QList lst; + for (int i = 0; i < origValues.count(); ++i) { + QModelIndex valIdx = m_model->index(i, 1, parentIndex); + QVariant var = valIdx.data(); + //qDebug()<<"\t\tarray "< #include #include @@ -35,6 +37,8 @@ public: ~ArgumentsEditor(); + virtual void accept(); + void setCall(ApiTraceCall *call); ApiTraceCall *call() const; @@ -45,6 +49,10 @@ private: void init(); void setupCall(); void setupShaderEditor(const QList &sources); + QVariant valueForName(const QString &name, + const QVariant &orignalValue) const; + QVariant arrayFromIndex(const QModelIndex &index, + const ApiArray &array) const; private: Ui_ArgumentsEditor m_ui; QStandardItemModel *m_model; -- 2.43.0