Convert debugger settings controls to combo boxes.
This reduces the height of the settings panel significantly compared to
radio buttons.
With some luck, the debugger may now fit on non-4K monitors :)
R=bungeman@google.com, robertphillips@google.com
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/78843005
git-svn-id: http://skia.googlecode.com/svn/trunk@12342 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/QT/SkDebuggerGUI.cpp b/debugger/QT/SkDebuggerGUI.cpp
index f500dcf..e5bdf9f 100644
--- a/debugger/QT/SkDebuggerGUI.cpp
+++ b/debugger/QT/SkDebuggerGUI.cpp
@@ -90,7 +90,7 @@
connect(&fActionClearBreakpoints, SIGNAL(triggered()), this, SLOT(actionClearBreakpoints()));
connect(&fActionClearDeletes, SIGNAL(triggered()), this, SLOT(actionClearDeletes()));
connect(&fActionClose, SIGNAL(triggered()), this, SLOT(actionClose()));
- connect(fSettingsWidget.getVisibilityButton(), SIGNAL(toggled(bool)), this, SLOT(actionCommandFilter()));
+ connect(&fSettingsWidget, SIGNAL(visibilityFilterChanged()), this, SLOT(actionCommandFilter()));
#if SK_SUPPORT_GPU
connect(&fSettingsWidget, SIGNAL(glSettingsChanged()), this, SLOT(actionGLWidget()));
#endif
@@ -440,8 +440,7 @@
}
void SkDebuggerGUI::actionCommandFilter() {
- fDebugger.highlightCurrentCommand(
- fSettingsWidget.getVisibilityButton()->isChecked());
+ fDebugger.highlightCurrentCommand(fSettingsWidget.getVisibilityFilter());
fCanvasWidget.drawTo(fListWidget.currentRow());
fImageWidget.draw();
}
@@ -968,7 +967,7 @@
* TODO(chudy): This should be deprecated since fDebugger is not
* recreated.
* */
- fDebugger.highlightCurrentCommand(fSettingsWidget.getVisibilityButton()->isChecked());
+ fDebugger.highlightCurrentCommand(fSettingsWidget.getVisibilityFilter());
setupListWidget(commands);
setupComboBox(commands);
diff --git a/debugger/QT/SkSettingsWidget.cpp b/debugger/QT/SkSettingsWidget.cpp
index ca0436e..dc40b40 100644
--- a/debugger/QT/SkSettingsWidget.cpp
+++ b/debugger/QT/SkSettingsWidget.cpp
@@ -16,8 +16,6 @@
, mainFrameLayout(this)
, fVerticalLayout(&mainFrame)
, fVisibleFrameLayout(&fVisibleFrame)
- , fVisibleOn(&fVisibleFrame)
- , fVisibleOff(&fVisibleFrame)
, fCommandLayout(&fCommandFrame)
, fCurrentCommandBox(&fCommandFrame)
, fCommandHitBox(&fCommandFrame)
@@ -37,16 +35,17 @@
fVerticalLayout.setAlignment(Qt::AlignTop);
// Visible Toggle
- fVisibileText.setText("Visibility Filter");
+ fVisibleText.setText("Visibility Filter");
fVisibleFrame.setFrameShape(QFrame::StyledPanel);
fVisibleFrame.setFrameShadow(QFrame::Raised);
- fVisibleOn.setText("On");
- fVisibleOff.setText("Off");
- fVisibleOff.setChecked(true);
- fVisibleFrameLayout.setSpacing(6);
- fVisibleFrameLayout.setContentsMargins(11,11,11,11);
- fVisibleFrameLayout.addWidget(&fVisibleOn);
- fVisibleFrameLayout.addWidget(&fVisibleOff);
+
+ fVisibilityCombo.addItem("Off", QVariant(false));
+ fVisibilityCombo.addItem("On", QVariant(true));
+
+ fVisibleFrameLayout.setContentsMargins(11, 5, 11, 5);
+ fVisibleFrameLayout.addWidget(&fVisibilityCombo);
+ connect(&fVisibilityCombo, SIGNAL(activated(int)), this,
+ SIGNAL(visibilityFilterChanged()));
// Canvas
fCanvasToggle.setText("Render Targets");
@@ -73,22 +72,19 @@
fGLMSAAButtonGroup.setMaximumWidth(178);
fGLMSAAButtonGroup.setEnabled(fGLCheckBox.isChecked());
- fGLMSAAOff.setText("Off");
- fGLMSAA4On.setText("4");
- fGLMSAA4On.setChecked(true);
- fGLMSAA16On.setText("16");
+ fGLMSAACombo.addItem("Off", QVariant(0));
+ fGLMSAACombo.addItem("4", QVariant(4));
+ fGLMSAACombo.addItem("16", QVariant(16));
- fGLMSAALayout.addWidget(&fGLMSAAOff);
- fGLMSAALayout.addWidget(&fGLMSAA4On);
- fGLMSAALayout.addWidget(&fGLMSAA16On);
-
+ fGLMSAALayout.addWidget(&fGLMSAACombo);
fGLMSAAButtonGroup.setLayout(&fGLMSAALayout);
- connect(&fGLCheckBox, SIGNAL(toggled(bool)), &fGLMSAAButtonGroup, SLOT(setEnabled(bool)));
- connect(&fGLCheckBox, SIGNAL(toggled(bool)), this, SIGNAL(glSettingsChanged()));
- connect(&fGLMSAAOff, SIGNAL(toggled(bool)), this, SIGNAL(glSettingsChanged()));
- connect(&fGLMSAA4On, SIGNAL(toggled(bool)), this, SIGNAL(glSettingsChanged()));
- connect(&fGLMSAA16On, SIGNAL(toggled(bool)), this, SIGNAL(glSettingsChanged()));
+ connect(&fGLCheckBox, SIGNAL(toggled(bool)), &fGLMSAAButtonGroup,
+ SLOT(setEnabled(bool)));
+ connect(&fGLCheckBox, SIGNAL(toggled(bool)), this,
+ SIGNAL(glSettingsChanged()));
+ connect(&fGLMSAACombo, SIGNAL(activated(int)), this,
+ SIGNAL(glSettingsChanged()));
#endif
{
@@ -97,26 +93,17 @@
fFilterButtonGroup.setMinimumWidth(178);
fFilterButtonGroup.setMaximumWidth(178);
- fFilterDefault.setText("As encoded");
- fFilterDefault.setChecked(true);
- fFilterNone.setText("None");
- fFilterLow.setText("Low");
- fFilterMed.setText("Med");
- fFilterHigh.setText("High");
+ fFilterCombo.addItem("As encoded", QVariant(SkPaint::kNone_FilterLevel));
+ fFilterCombo.addItem("None", QVariant(SkPaint::kNone_FilterLevel));
+ fFilterCombo.addItem("Low", QVariant(SkPaint::kLow_FilterLevel));
+ fFilterCombo.addItem("Medium", QVariant(SkPaint::kMedium_FilterLevel));
+ fFilterCombo.addItem("High", QVariant(SkPaint::kHigh_FilterLevel));
- fFilterLayout.addWidget(&fFilterDefault);
- fFilterLayout.addWidget(&fFilterNone);
- fFilterLayout.addWidget(&fFilterLow);
- fFilterLayout.addWidget(&fFilterMed);
- fFilterLayout.addWidget(&fFilterHigh);
-
+ fFilterLayout.addWidget(&fFilterCombo);
fFilterButtonGroup.setLayout(&fFilterLayout);
- connect(&fFilterDefault, SIGNAL(toggled(bool)), this, SIGNAL(texFilterSettingsChanged()));
- connect(&fFilterNone, SIGNAL(toggled(bool)), this, SIGNAL(texFilterSettingsChanged()));
- connect(&fFilterLow, SIGNAL(toggled(bool)), this, SIGNAL(texFilterSettingsChanged()));
- connect(&fFilterMed, SIGNAL(toggled(bool)), this, SIGNAL(texFilterSettingsChanged()));
- connect(&fFilterHigh, SIGNAL(toggled(bool)), this, SIGNAL(texFilterSettingsChanged()));
+ connect(&fFilterCombo, SIGNAL(activated(int)), this,
+ SIGNAL(texFilterSettingsChanged()));
}
fRasterLayout.addWidget(&fRasterLabel);
@@ -193,7 +180,7 @@
fZoomLayout.addWidget(&fZoomBox);
// Adds all widgets to settings container
- fVerticalLayout.addWidget(&fVisibileText);
+ fVerticalLayout.addWidget(&fVisibleText);
fVerticalLayout.addWidget(&fVisibleFrame);
fVerticalLayout.addWidget(&fCommandToggle);
fVerticalLayout.addWidget(&fCommandFrame);
@@ -213,10 +200,6 @@
fCommandHitBox.setText(QString::number(newHit));
}
-QRadioButton* SkSettingsWidget::getVisibilityButton() {
- return &fVisibleOn;
-}
-
void SkSettingsWidget::setZoomText(float scale) {
fZoomBox.setText(QString::number(scale*100, 'f', 0).append("%"));
}
diff --git a/debugger/QT/SkSettingsWidget.h b/debugger/QT/SkSettingsWidget.h
index fc8fda7..2310011 100644
--- a/debugger/QT/SkSettingsWidget.h
+++ b/debugger/QT/SkSettingsWidget.h
@@ -16,9 +16,9 @@
#include <QFrame>
#include <QGroupBox>
#include <QLabel>
-#include <QRadioButton>
#include <QCheckBox>
#include <QLineEdit>
+#include <QComboBox>
#include "SkPaint.h"
@@ -40,41 +40,26 @@
/** Sets the displayed user zoom level. A scale of 1.0 represents no zoom. */
void setZoomText(float scale);
- QRadioButton* getVisibilityButton();
+ bool getVisibilityFilter() const {
+ return fVisibilityCombo.itemData(fVisibilityCombo.currentIndex()).toBool();
+ }
#if SK_SUPPORT_GPU
- bool isGLActive() {
+ bool isGLActive() const {
return fGLCheckBox.isChecked();
}
- int getGLSampleCount() {
- if (fGLMSAA4On.isChecked()) {
- return 4;
- } else if (fGLMSAA16On.isChecked()) {
- return 16;
- }
- return 0;
+ int getGLSampleCount() const {
+ return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt();
}
#endif
- bool getFilterOverride(SkPaint::FilterLevel* filterLevel) {
- if (fFilterDefault.isChecked()) {
- *filterLevel = SkPaint::kNone_FilterLevel;
- return false;
- }
+ bool getFilterOverride(SkPaint::FilterLevel* filterLevel) const {
+ int index = fFilterCombo.currentIndex();
+ *filterLevel = (SkPaint::FilterLevel)fFilterCombo.itemData(index).toUInt();
- if (fFilterNone.isChecked()) {
- *filterLevel = SkPaint::kNone_FilterLevel;
- } else if (fFilterLow.isChecked()) {
- *filterLevel = SkPaint::kLow_FilterLevel;
- } else if (fFilterMed.isChecked()) {
- *filterLevel = SkPaint::kMedium_FilterLevel;
- } else {
- *filterLevel = SkPaint::kHigh_FilterLevel;
- }
-
- return true;
+ return index > 0;
}
QCheckBox* getRasterCheckBox() {
@@ -92,7 +77,7 @@
signals:
void scrollingPreferences(bool isStickyActivate);
void showStyle(bool isSingleCommand);
- void visibilityFilter(bool isEnabled);
+ void visibilityFilterChanged();
void texFilterSettingsChanged();
#if SK_SUPPORT_GPU
void glSettingsChanged();
@@ -103,11 +88,10 @@
QFrame mainFrame;
QVBoxLayout fVerticalLayout;
- QLabel fVisibileText;
+ QLabel fVisibleText;
QFrame fVisibleFrame;
QVBoxLayout fVisibleFrameLayout;
- QRadioButton fVisibleOn;
- QRadioButton fVisibleOff;
+ QComboBox fVisibilityCombo;
QLabel fCommandToggle;
QFrame fCommandFrame;
@@ -139,19 +123,13 @@
QCheckBox fGLCheckBox;
QGroupBox fGLMSAAButtonGroup;
QVBoxLayout fGLMSAALayout;
- QRadioButton fGLMSAAOff;
- QRadioButton fGLMSAA4On;
- QRadioButton fGLMSAA16On;
+ QComboBox fGLMSAACombo;
#endif
// for filtering group
QGroupBox fFilterButtonGroup;
+ QComboBox fFilterCombo;
QVBoxLayout fFilterLayout;
- QRadioButton fFilterDefault;
- QRadioButton fFilterNone;
- QRadioButton fFilterLow;
- QRadioButton fFilterMed;
- QRadioButton fFilterHigh;
QFrame fZoomFrame;
QHBoxLayout fZoomLayout;