diff options
-rw-r--r-- | debugger/QT/SkDebuggerGUI.cpp | 75 | ||||
-rw-r--r-- | debugger/QT/SkDebuggerGUI.h | 9 | ||||
-rw-r--r-- | debugger/QT/SkDrawCommandGeometryWidget.cpp | 15 | ||||
-rw-r--r-- | debugger/QT/SkDrawCommandGeometryWidget.h | 9 |
4 files changed, 57 insertions, 51 deletions
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp index 1b5a366aa4..dade56768d 100644 --- a/debugger/QT/SkDebuggerGUI.cpp +++ b/debugger/QT/SkDebuggerGUI.cpp @@ -66,7 +66,8 @@ SkDebuggerGUI::SkDebuggerGUI(QWidget *parent) : { setupUi(this); fListWidget.setSelectionMode(QAbstractItemView::ExtendedSelection); - connect(&fListWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(registerListClick(QListWidgetItem *))); + connect(&fListWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, + SLOT(updateDrawCommandInfo())); connect(&fActionOpen, SIGNAL(triggered()), this, SLOT(openFile())); connect(&fActionDirectory, SIGNAL(triggered()), this, SLOT(toggleDirectory())); connect(&fDirectoryWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(loadFile(QListWidgetItem *))); @@ -98,8 +99,6 @@ SkDebuggerGUI::SkDebuggerGUI(QWidget *parent) : connect(&fCanvasWidget, SIGNAL(hitChanged(int)), this, SLOT(selectCommand(int))); connect(&fCanvasWidget, SIGNAL(hitChanged(int)), this, SLOT(updateHit(int))); connect(&fCanvasWidget, SIGNAL(scaleFactorChanged(float)), this, SLOT(actionScale(float))); - connect(&fCanvasWidget, SIGNAL(commandChanged(int)), this, SLOT(updateCommand(int))); - connect(&fCanvasWidget, SIGNAL(commandChanged(int)), &fDrawCommandGeometryWidget, SLOT(updateImage())); connect(&fActionSaveAs, SIGNAL(triggered()), this, SLOT(actionSaveAs())); connect(&fActionSave, SIGNAL(triggered()), this, SLOT(actionSave())); @@ -404,33 +403,44 @@ void SkDebuggerGUI::pauseDrawing(bool isPaused) { } } -void SkDebuggerGUI::registerListClick(QListWidgetItem *item) { - if(!fLoading) { - int currentRow = fListWidget.currentRow(); - - if (currentRow != -1) { - if (!this->isPaused()) { - fCanvasWidget.drawTo(currentRow); - } - const SkTDArray<SkString*> *currInfo = fDebugger.getCommandInfo(currentRow); - - /* TODO(chudy): Add command type before parameters. Rename v - * to something more informative. */ - if (currInfo) { - QString info; - info.append("<b>Parameters: </b><br/>"); - for (int i = 0; i < currInfo->count(); i++) { - - info.append(QString((*currInfo)[i]->c_str())); - info.append("<br/>"); - } - fInspectorWidget.setText(info, SkInspectorWidget::kDetail_TabType); - fInspectorWidget.setDisabled(false); - fViewStateFrame.setDisabled(false); +void SkDebuggerGUI::updateDrawCommandInfo() { + int currentRow = -1; + if (!fLoading) { + currentRow = fListWidget.currentRow(); + } + if (currentRow == -1) { + fInspectorWidget.setText("", SkInspectorWidget::kDetail_TabType); + fInspectorWidget.setText("", SkInspectorWidget::kClipStack_TabType); + fCurrentCommandBox.setText(""); + fDrawCommandGeometryWidget.setDrawCommandIndex(-1); + } else { + if (!this->isPaused()) { + fCanvasWidget.drawTo(currentRow); + } + const SkTDArray<SkString*> *currInfo = fDebugger.getCommandInfo(currentRow); + + /* TODO(chudy): Add command type before parameters. Rename v + * to something more informative. */ + if (currInfo) { + QString info; + info.append("<b>Parameters: </b><br/>"); + for (int i = 0; i < currInfo->count(); i++) { + info.append(QString((*currInfo)[i]->c_str())); + info.append("<br/>"); } - setupClipStackText(); + fInspectorWidget.setText(info, SkInspectorWidget::kDetail_TabType); } + SkString clipStack; + fDebugger.getClipStackText(&clipStack); + fInspectorWidget.setText(clipStack.c_str(), SkInspectorWidget::kClipStack_TabType); + + fCurrentCommandBox.setText(QString::number(currentRow)); + + fDrawCommandGeometryWidget.setDrawCommandIndex(currentRow); + + fInspectorWidget.setDisabled(false); + fViewStateFrame.setDisabled(false); } } @@ -783,6 +793,8 @@ void SkDebuggerGUI::loadPicture(const SkString& fileName) { fActionSave.setDisabled(false); fActionSaveAs.setDisabled(false); fActionPause.setChecked(false); + fDrawCommandGeometryWidget.setDrawCommandIndex(-1); + fLoading = false; actionPlay(); } @@ -826,11 +838,6 @@ void SkDebuggerGUI::setupOverviewText(const SkTDArray<double>* typeTimes, fInspectorWidget.setText(overview.c_str(), SkInspectorWidget::kOverview_TabType); } -void SkDebuggerGUI::setupClipStackText() { - SkString clipStack; - fDebugger.getClipStackText(&clipStack); - fInspectorWidget.setText(clipStack.c_str(), SkInspectorWidget::kClipStack_TabType); -} void SkDebuggerGUI::setupComboBox() { fFilter.clear(); @@ -855,10 +862,6 @@ void SkDebuggerGUI::setupComboBox() { firstItem->setSelectable(false); } -void SkDebuggerGUI::updateCommand(int newCommand) { - fCurrentCommandBox.setText(QString::number(newCommand)); -} - void SkDebuggerGUI::updateHit(int newHit) { fCommandHitBox.setText(QString::number(newHit)); } diff --git a/debugger/QT/SkDebuggerGUI.h b/debugger/QT/SkDebuggerGUI.h index 5c003b000a..8c6865b8ca 100644 --- a/debugger/QT/SkDebuggerGUI.h +++ b/debugger/QT/SkDebuggerGUI.h @@ -202,9 +202,9 @@ private slots: void pauseDrawing(bool isPaused = true); /** - Executes draw commands up to the selected command + Updates the UI based on the selected command. */ - void registerListClick(QListWidgetItem *item); + void updateDrawCommandInfo(); /** Sets the command to active in the list widget. @@ -232,7 +232,6 @@ private slots: */ void toggleFilter(QString string); - void updateCommand(int newCommand); void updateHit(int newHit); private: QSplitter fCentralSplitter; @@ -338,10 +337,6 @@ private: */ void setupOverviewText(const SkTDArray<double>* typeTimes, double totTime, int numRuns); - /** - Fills in the clip stack pane with text - */ - void setupClipStackText(); /** Render the supplied picture several times tracking the time consumed diff --git a/debugger/QT/SkDrawCommandGeometryWidget.cpp b/debugger/QT/SkDrawCommandGeometryWidget.cpp index 1172e7952d..03572cfdd1 100644 --- a/debugger/QT/SkDrawCommandGeometryWidget.cpp +++ b/debugger/QT/SkDrawCommandGeometryWidget.cpp @@ -13,7 +13,8 @@ SkDrawCommandGeometryWidget::SkDrawCommandGeometryWidget(SkDebugger *debugger) : QFrame() - , fDebugger(debugger) { + , fDebugger(debugger) + , fCommandIndex(-1) { this->setStyleSheet("QFrame {background-color: black; border: 1px solid #cccccc;}"); } @@ -65,6 +66,11 @@ void SkDrawCommandGeometryWidget::paintEvent(QPaintEvent* event) { } } +void SkDrawCommandGeometryWidget::setDrawCommandIndex(int commandIndex) { + fCommandIndex = commandIndex; + this->updateImage(); +} + void SkDrawCommandGeometryWidget::updateImage() { if (!fSurface) { return; @@ -72,8 +78,9 @@ void SkDrawCommandGeometryWidget::updateImage() { bool didRender = false; const SkTDArray<SkDrawCommand*>& commands = fDebugger->getDrawCommands(); - if (0 != commands.count()) { - SkDrawCommand* command = commands[fDebugger->index()]; + if (0 != commands.count() && fCommandIndex >= 0) { + SkASSERT(commands.count() > fCommandIndex); + SkDrawCommand* command = commands[fCommandIndex]; didRender = command->render(fSurface->getCanvas()); } @@ -82,5 +89,5 @@ void SkDrawCommandGeometryWidget::updateImage() { } fSurface->getCanvas()->flush(); - update(); + this->update(); } diff --git a/debugger/QT/SkDrawCommandGeometryWidget.h b/debugger/QT/SkDrawCommandGeometryWidget.h index aa5d10a01a..0bdddd0319 100644 --- a/debugger/QT/SkDrawCommandGeometryWidget.h +++ b/debugger/QT/SkDrawCommandGeometryWidget.h @@ -19,17 +19,18 @@ class SkDrawCommandGeometryWidget : public QFrame { public: SkDrawCommandGeometryWidget(SkDebugger* debugger); - -public slots: - void updateImage(); + void setDrawCommandIndex(int index); protected: void paintEvent(QPaintEvent* event); void resizeEvent(QResizeEvent* event); private: + void updateImage(); + SkDebugger* fDebugger; - SkAutoTUnref<SkSurface> fSurface; + SkAutoTUnref<SkSurface> fSurface; + int fCommandIndex; }; #endif /* SKDRAWCOMMANDGEOMETRYWIDGET_H_ */ |