Index: debugger/QT/SkDebuggerGUI.cpp |
=================================================================== |
--- debugger/QT/SkDebuggerGUI.cpp (revision 13942) |
+++ debugger/QT/SkDebuggerGUI.cpp (working copy) |
@@ -34,6 +34,7 @@ |
, fToolBar(this) |
, fActionOpen(this) |
, fActionBreakpoint(this) |
+ , fActionToggleIndexStyle(this) |
, fActionProfile(this) |
, fActionCancel(this) |
, fActionClearBreakpoints(this) |
@@ -65,6 +66,7 @@ |
, fMenuNavigate(this) |
, fMenuView(this) |
, fBreakpointsActivated(false) |
+ , fIndexStyleToggle(false) |
, fDeletesActivated(false) |
, fPause(false) |
, fLoading(false) |
@@ -82,6 +84,7 @@ |
connect(&fActionStepBack, SIGNAL(triggered()), this, SLOT(actionStepBack())); |
connect(&fActionStepForward, SIGNAL(triggered()), this, SLOT(actionStepForward())); |
connect(&fActionBreakpoint, SIGNAL(triggered()), this, SLOT(actionBreakpoints())); |
+ connect(&fActionToggleIndexStyle, SIGNAL(triggered()), this, SLOT(actionToggleIndexStyle())); |
connect(&fActionInspector, SIGNAL(triggered()), this, SLOT(actionInspector())); |
connect(&fActionSettings, SIGNAL(triggered()), this, SLOT(actionSettings())); |
connect(&fFilter, SIGNAL(activated(QString)), this, SLOT(toggleFilter(QString))); |
@@ -135,12 +138,19 @@ |
} |
} |
+void SkDebuggerGUI::actionToggleIndexStyle() { |
+ fIndexStyleToggle = !fIndexStyleToggle; |
+ SkListWidget* list = (SkListWidget*) fListWidget.itemDelegate(); |
+ list->setIndexStyle(fIndexStyleToggle ? SkListWidget::kIndex_IndexStyle : |
+ SkListWidget::kOffset_IndexStyle); |
+ fListWidget.update(); |
+} |
+ |
void SkDebuggerGUI::showDeletes() { |
fDeletesActivated = !fDeletesActivated; |
for (int row = 0; row < fListWidget.count(); row++) { |
QListWidgetItem *item = fListWidget.item(row); |
- item->setHidden(fDebugger.isCommandVisible(row) |
- && fDeletesActivated); |
+ item->setHidden(fDebugger.isCommandVisible(row) && fDeletesActivated); |
} |
} |
@@ -709,6 +719,9 @@ |
fActionBreakpoint.setIcon(breakpoint); |
fActionBreakpoint.setText("Breakpoints"); |
+ fActionToggleIndexStyle.setShortcut(QKeySequence(tr("Ctrl+T"))); |
+ fActionToggleIndexStyle.setText("Toggle Index Style"); |
+ |
QIcon cancel; |
cancel.addFile(QString::fromUtf8(":/reload.png"), QSize(), |
QIcon::Normal, QIcon::Off); |
@@ -906,6 +919,7 @@ |
fMenuView.setTitle("View"); |
fMenuView.addAction(&fActionBreakpoint); |
fMenuView.addAction(&fActionShowDeletes); |
+ fMenuView.addAction(&fActionToggleIndexStyle); |
fMenuView.addAction(&fActionZoomIn); |
fMenuView.addAction(&fActionZoomOut); |
@@ -966,6 +980,8 @@ |
// Will this automatically clear out due to nature of refcnt? |
SkTArray<SkString>* commands = fDebugger.getDrawCommandsAsStrings(); |
+ SkTDArray<size_t>* offsets = fDebugger.getDrawCommandOffsets(); |
+ SkASSERT(commands->count() == offsets->count()); |
fActionProfile.setDisabled(false); |
@@ -976,9 +992,9 @@ |
* */ |
fDebugger.highlightCurrentCommand(fSettingsWidget.getVisibilityFilter()); |
- setupListWidget(commands); |
- setupComboBox(commands); |
- setupOverviewText(NULL, 0.0, 1); |
+ this->setupListWidget(commands, offsets); |
+ this->setupComboBox(commands); |
+ this->setupOverviewText(NULL, 0.0, 1); |
fInspectorWidget.setDisabled(false); |
fSettingsWidget.setDisabled(false); |
fMenuEdit.setDisabled(false); |
@@ -990,31 +1006,33 @@ |
actionPlay(); |
} |
-void SkDebuggerGUI::setupListWidget(SkTArray<SkString>* command) { |
+void SkDebuggerGUI::setupListWidget(SkTArray<SkString>* commands, SkTDArray<size_t>* offsets) { |
+ SkASSERT(commands->count() == offsets->count()); |
fListWidget.clear(); |
int counter = 0; |
int indent = 0; |
- for (int i = 0; i < command->count(); i++) { |
+ for (int i = 0; i < commands->count(); i++) { |
QListWidgetItem *item = new QListWidgetItem(); |
- item->setData(Qt::DisplayRole, (*command)[i].c_str()); |
+ item->setData(Qt::DisplayRole, (*commands)[i].c_str()); |
item->setData(Qt::UserRole + 1, counter++); |
- if (0 == strcmp("Restore", (*command)[i].c_str()) || |
- 0 == strcmp("EndCommentGroup", (*command)[i].c_str()) || |
- 0 == strcmp("PopCull", (*command)[i].c_str())) { |
+ if (0 == strcmp("Restore", (*commands)[i].c_str()) || |
+ 0 == strcmp("EndCommentGroup", (*commands)[i].c_str()) || |
+ 0 == strcmp("PopCull", (*commands)[i].c_str())) { |
indent -= 10; |
} |
item->setData(Qt::UserRole + 3, indent); |
- if (0 == strcmp("Save", (*command)[i].c_str()) || |
- 0 == strcmp("Save Layer", (*command)[i].c_str()) || |
- 0 == strcmp("BeginCommentGroup", (*command)[i].c_str()) || |
- 0 == strcmp("PushCull", (*command)[i].c_str())) { |
+ if (0 == strcmp("Save", (*commands)[i].c_str()) || |
+ 0 == strcmp("Save Layer", (*commands)[i].c_str()) || |
+ 0 == strcmp("BeginCommentGroup", (*commands)[i].c_str()) || |
+ 0 == strcmp("PushCull", (*commands)[i].c_str())) { |
indent += 10; |
} |
- item->setData(Qt::UserRole + 4, -1.0); |
+ item->setData(Qt::UserRole + 4, -1); |
+ item->setData(Qt::UserRole + 5, (int)(*offsets)[i]); |
fListWidget.addItem(item); |
} |