aboutsummaryrefslogtreecommitdiffhomepage
path: root/debugger/QT/SkSettingsWidget.h
blob: dec938e650227665d730f95d5513588165b612c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */


#ifndef SKSETTINGSWIDGET_H_
#define SKSETTINGSWIDGET_H_

#include <QWidget>
#include <QHBoxLayout>
#include <QTextEdit>
#include <QFrame>
#include <QGroupBox>
#include <QLabel>
#include <QCheckBox>
#include <QLineEdit>
#include <QComboBox>
#include <QFormLayout>

#include "SkPaint.h"

/** \class SkSettingsWidget

    The SettingsWidget contains multiple checkboxes and toggles for altering
    the visualizations.
 */
class SkSettingsWidget : public QFrame {
    Q_OBJECT

public:
    /**
        Constructs a widget with the specified parent for layout purposes.
        @param parent  The parent container of this widget
     */
    SkSettingsWidget();


#if SK_SUPPORT_GPU
    // GL settings.
    bool isGLActive() const {
        return fGLGroup.isChecked();
    }

    int getGLSampleCount() const {
        return fGLMSAACombo.itemData(fGLMSAACombo.currentIndex()).toInt();
    }

#endif

    bool getFilterOverride(SkFilterQuality* filterQuality) const {
        int index = fFilterCombo.currentIndex();
        *filterQuality = (SkFilterQuality)fFilterCombo.itemData(index).toUInt();

        return index > 0;
    }


    // Raster settings.
    bool isRasterEnabled() {
        return fRasterGroup.isChecked();
    }

    bool isOverdrawVizEnabled() {
        return fOverdrawVizCheckBox.isChecked();
    }

    // Visualizations.
    bool isVisibilityFilterEnabled() const {
        return fVisibilityFilterCheckBox.isChecked();
    }

    bool isMegaVizEnabled() {
        return fMegaVizCheckBox.isChecked();
    }

    bool isPathOpsEnabled() {
        return fPathOpsCheckBox.isChecked();
    }

private Q_SLOTS:

Q_SIGNALS:
    void visualizationsChanged();
    void texFilterSettingsChanged();
#if SK_SUPPORT_GPU
    void glSettingsChanged();
#endif
    void rasterSettingsChanged();

private:
    QFormLayout fVerticalLayout;

    QGroupBox fVisualizationsGroup;
    QVBoxLayout fVisualizationsLayout;
    QCheckBox fVisibilityFilterCheckBox;

    QGroupBox fRasterGroup;
    QVBoxLayout fRasterLayout;
    QCheckBox fOverdrawVizCheckBox;
    QCheckBox fMegaVizCheckBox;
    QCheckBox fPathOpsCheckBox;

#if SK_SUPPORT_GPU
    QGroupBox fGLGroup;
    QFormLayout fGLLayout;
    QComboBox fGLMSAACombo;
#endif

    QComboBox fFilterCombo;
};

#endif /* SKSETTINGSWIDGET_H_ */