]> git.cworth.org Git - apitrace/commitdiff
Merge pull request #88 from gregory38/image-alpha-channel-I84-v2
authorzackr <zack@kde.org>
Sat, 7 Jul 2012 00:10:22 +0000 (17:10 -0700)
committerzackr <zack@kde.org>
Sat, 7 Jul 2012 00:10:22 +0000 (17:10 -0700)
Image alpha channel i84 v2

gui/retracer.cpp
gui/saverthread.cpp

index 69dca6c6b26f542845b5857952177692210f19e7..bbe638ca0fc0635f41e10ff9ffdbcf225f0bd0a5 100644 (file)
@@ -406,6 +406,14 @@ void Retracer::run()
             error.type = regexp.cap(2);
             error.message = regexp.cap(3);
             errors.append(error);
+        } else if (!errors.isEmpty()) {
+            // Probably a multiligne message
+            ApiTraceError &previous = errors.last();
+            if (line.endsWith("\n")) {
+                line.chop(1);
+            }
+            previous.message.append('\n');
+            previous.message.append(line);
         }
     }
 
index fc6a023ef908ac6b5375dce2e173d98b86491000..4ad83c5876c5caf1267d80cc8c8029bdc18b7c93 100644 (file)
@@ -247,7 +247,10 @@ public:
     virtual void visit(trace::String *node)
     {
         QString str = m_variant.toString();
-        m_editedValue = new trace::String(str.toLocal8Bit().constData());
+        char *newString = new char[str.length() + 1];
+        QByteArray ba = str.toLocal8Bit();
+        strcpy(newString, ba.constData());
+        m_editedValue = new trace::String(newString);
     }
 
     virtual void visit(trace::Enum *e)
@@ -273,7 +276,6 @@ public:
         trace::Array *newArray = new trace::Array(vals.count());
         for (int i = 0; i < vals.count(); ++i) {
             EditVisitor visitor(vals[i]);
-
             array->values[i]->visit(visitor);
             if (array->values[i] == visitor.value()) {
                 //non-editabled
@@ -282,7 +284,7 @@ public:
                 return;
             }
 
-            newArray->values.push_back(visitor.value());
+            newArray->values[i] = visitor.value();
         }
         m_editedValue = newArray;
     }