Update debugger GUI to have profile button & list widget to optionally display time
https://codereview.appspot.com/6813117/
git-svn-id: http://skia.googlecode.com/svn/trunk@6385 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp
index 140841d..ef970f4 100644
--- a/debugger/QT/SkDebuggerGUI.cpp
+++ b/debugger/QT/SkDebuggerGUI.cpp
@@ -17,6 +17,7 @@
, fToolBar(this)
, fActionOpen(this)
, fActionBreakpoint(this)
+ , fActionProfile(this)
, fActionCancel(this)
, fActionClearBreakpoints(this)
, fActionClearDeletes(this)
@@ -64,6 +65,7 @@
connect(&fActionInspector, SIGNAL(triggered()), this, SLOT(actionInspector()));
connect(&fActionInspector, SIGNAL(triggered()), this, SLOT(actionSettings()));
connect(&fFilter, SIGNAL(activated(QString)), this, SLOT(toggleFilter(QString)));
+ connect(&fActionProfile, SIGNAL(triggered()), this, SLOT(actionProfile()));
connect(&fActionCancel, SIGNAL(triggered()), this, SLOT(actionCancel()));
connect(&fActionClearBreakpoints, SIGNAL(triggered()), this, SLOT(actionClearBreakpoints()));
connect(&fActionClearDeletes, SIGNAL(triggered()), this, SLOT(actionClearDeletes()));
@@ -117,6 +119,9 @@
}
}
+void SkDebuggerGUI::actionProfile() {
+}
+
void SkDebuggerGUI::actionCancel() {
for (int row = 0; row < fListWidget.count(); row++) {
fListWidget.item(row)->setHidden(false);
@@ -207,11 +212,10 @@
}
void SkDebuggerGUI::actionSave() {
- QString filename;
- filename.append(fPath);
- filename.append("/");
- filename.append(fDirectoryWidget.currentItem()->text());
- saveToFile(filename);
+ fFileName = fPath.toAscii();
+ fFileName.append("/");
+ fFileName.append(fDirectoryWidget.currentItem()->text().toAscii());
+ saveToFile(fFileName);
}
void SkDebuggerGUI::actionSaveAs() {
@@ -220,7 +224,7 @@
if (!filename.endsWith(".skp", Qt::CaseInsensitive)) {
filename.append(".skp");
}
- saveToFile(filename);
+ saveToFile(SkString(filename.toAscii()));
}
void SkDebuggerGUI::actionScale(float scaleFactor) {
@@ -256,29 +260,28 @@
fInspectorWidget.setClip(fDebugger.getCurrentClip());
}
-void SkDebuggerGUI::saveToFile(QString filename) {
- SkFILEWStream file(filename.toAscii());
+void SkDebuggerGUI::saveToFile(const SkString& filename) {
+ SkFILEWStream file(filename.c_str());
fDebugger.makePicture()->serialize(&file);
}
void SkDebuggerGUI::loadFile(QListWidgetItem *item) {
if (fDirectoryWidgetActive) {
- QString fileName;
- fileName.append(fPath);
- fileName.append("/");
- fileName.append(item->text());
- loadPicture(fileName);
+ fFileName = fPath.toAscii();
+ fFileName.append("/");
+ fFileName.append(item->text().toAscii());
+ loadPicture(fFileName);
}
}
void SkDebuggerGUI::openFile() {
- QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
+ QString temp = QFileDialog::getOpenFileName(this, tr("Open File"), "",
tr("Files (*.*)"));
fDirectoryWidgetActive = false;
- if (!fileName.isNull()) {
- QFileInfo pathInfo(fileName);
+ if (!temp.isEmpty()) {
+ QFileInfo pathInfo(temp);
fPath = pathInfo.path();
- loadPicture(fileName);
+ loadPicture(SkString(temp.toAscii()));
setupDirectoryWidget();
}
fDirectoryWidgetActive = true;
@@ -392,6 +395,12 @@
fActionDirectory.setShortcut(QKeySequence(tr("Ctrl+D")));
fActionDirectory.setText("Directory");
+ QIcon profile;
+ profile.addFile(QString::fromUtf8(":/images/Ico/reload.png"), QSize(),
+ QIcon::Normal, QIcon::Off);
+ fActionProfile.setIcon(profile);
+ fActionProfile.setText("Profile");
+
QIcon inspector;
inspector.addFile(QString::fromUtf8(":/images/Ico/inspector.png"),
QSize(), QIcon::Normal, QIcon::Off);
@@ -505,13 +514,17 @@
fToolBar.addSeparator();
fToolBar.addAction(&fActionInspector);
fToolBar.addSeparator();
+ fToolBar.addAction(&fActionProfile);
+
+ fToolBar.addSeparator();
fToolBar.addWidget(&fSpacer);
fToolBar.addWidget(&fFilter);
fToolBar.addAction(&fActionCancel);
// TODO(chudy): Remove static call.
fDirectoryWidgetActive = false;
- fPath = "/usr/local/google/home/chudy/trunk-git/trunk/skp";
+ fPath = "";
+ fFileName = "";
setupDirectoryWidget();
fDirectoryWidgetActive = true;
@@ -572,9 +585,10 @@
}
}
-void SkDebuggerGUI::loadPicture(QString fileName) {
+void SkDebuggerGUI::loadPicture(const SkString& fileName) {
+ fFileName = fileName;
fLoading = true;
- SkStream* stream = SkNEW_ARGS(SkFILEStream, (fileName.toAscii()));
+ SkStream* stream = SkNEW_ARGS(SkFILEStream, (fileName.c_str()));
SkPicture* picture = SkNEW_ARGS(SkPicture, (stream, NULL, &SkImageDecoder::DecodeStream));
fCanvasWidget.resetWidgetTransform();
fDebugger.loadPicture(picture);
@@ -625,6 +639,8 @@
indent += 10;
}
+ item->setData(Qt::UserRole + 4, -1.0);
+
fListWidget.addItem(item);
}
}