NaCl Debugger: Implement overview and filters, cleanup

(SkipBuildbotRuns) since no bots build the debugger.
Review URL: https://codereview.chromium.org/12449006

git-svn-id: http://skia.googlecode.com/svn/trunk@8095 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp
index 600800f..d3c6fad 100644
--- a/debugger/QT/SkDebuggerGUI.cpp
+++ b/debugger/QT/SkDebuggerGUI.cpp
@@ -404,7 +404,7 @@
         item->setData(Qt::UserRole + 4, 100.0*temp);
     }
 
-    setupOverviewText(picture.typeTimes(), picture.totTime(), kNumRepeats);
+    setupOverviewText(picture.typeTimes(), picture.totTime());
 }
 
 void SkDebuggerGUI::actionCancel() {
@@ -1032,7 +1032,7 @@
 
     setupListWidget(commands);
     setupComboBox(commands);
-    setupOverviewText(NULL, 0.0, 1);
+    setupOverviewText(NULL, 0.0);
     fInspectorWidget.setDisabled(false);
     fSettingsWidget.setDisabled(false);
     fMenuEdit.setDisabled(false);
@@ -1070,87 +1070,10 @@
     }
 }
 
-void SkDebuggerGUI::setupOverviewText(const SkTDArray<double>* typeTimes,
-                                      double totTime,
-                                      int numRuns) {
-
-    const SkTDArray<SkDrawCommand*>& commands = fDebugger.getDrawCommands();
-
-    SkTDArray<int> counts;
-    counts.setCount(LAST_DRAWTYPE_ENUM+1);
-    for (int i = 0; i < LAST_DRAWTYPE_ENUM+1; ++i) {
-        counts[i] = 0;
-    }
-
-    for (int i = 0; i < commands.count(); i++) {
-        counts[commands[i]->getType()]++;
-    }
-
-    QString overview;
-    int total = 0;
-#ifdef SK_DEBUG
-    double totPercent = 0, tempSum = 0;
-#endif
-    for (int i = 0; i < LAST_DRAWTYPE_ENUM+1; ++i) {
-        if (0 == counts[i]) {
-            // if there were no commands of this type then they should've consumed no time
-            SkASSERT(NULL == typeTimes || 0.0 == (*typeTimes)[i]);
-            continue;
-        }
-
-        overview.append(SkDrawCommand::GetCommandString((DrawType) i));
-        overview.append(": ");
-        overview.append(QString::number(counts[i]));
-        if (NULL != typeTimes) {
-            overview.append(" - ");
-            overview.append(QString::number((*typeTimes)[i]/(float)numRuns, 'f', 1));
-            overview.append("ms");
-            overview.append(" - ");
-            double percent = 100.0*(*typeTimes)[i]/totTime;
-            overview.append(QString::number(percent, 'f', 1));
-            overview.append("%");
-#ifdef SK_DEBUG
-            totPercent += percent;
-            tempSum += (*typeTimes)[i];
-#endif
-        }
-        overview.append("<br/>");
-        total += counts[i];
-    }
-#ifdef SK_DEBUG
-    if (NULL != typeTimes) {
-        SkASSERT(SkScalarNearlyEqual(totPercent, 100.0));
-        SkASSERT(SkScalarNearlyEqual(tempSum, totTime));
-    }
-#endif
-
-    if (totTime > 0.0) {
-        overview.append("Total Time: ");
-        overview.append(QString::number(totTime/(float)numRuns, 'f', 2));
-        overview.append("ms");
-#ifdef SK_DEBUG
-        overview.append(" ");
-        overview.append(QString::number(totPercent));
-        overview.append("% ");
-#endif
-        overview.append("<br/>");
-    }
-
-    QString totalStr;
-    totalStr.append("Total Draw Commands: ");
-    totalStr.append(QString::number(total));
-    totalStr.append("<br/>");
-    overview.insert(0, totalStr);
-
-    overview.append("<br/>");
-    overview.append("SkPicture Width: ");
-    // NOTE(chudy): This is where we can pull out the SkPictures width.
-    overview.append(QString::number(fDebugger.pictureWidth()));
-    overview.append("px<br/>");
-    overview.append("SkPicture Height: ");
-    overview.append(QString::number(fDebugger.pictureHeight()));
-    overview.append("px");
-    fInspectorWidget.setText(overview, SkInspectorWidget::kOverview_TabType);
+void SkDebuggerGUI::setupOverviewText(const SkTDArray<double>* typeTimes, double totTime) {
+    SkString overview;
+    fDebugger.getOverviewText(typeTimes, totTime, &overview);
+    fInspectorWidget.setText(overview.c_str(), SkInspectorWidget::kOverview_TabType);
 }
 
 void SkDebuggerGUI::setupComboBox(SkTArray<SkString>* command) {