##// END OF EJS Templates
new legend example for testing new api. Currently using still the old one.
sauimone -
r2162:abb4622b2dab
parent child
Show More
@@ -0,0 +1,37
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #include "mainwidget.h"
22
23 #include <QApplication>
24 #include <QMainWindow>
25
26 QTCOMMERCIALCHART_USE_NAMESPACE
27
28 int main(int argc, char *argv[])
29 {
30 QApplication a(argc, argv);
31
32 MainWidget w;
33 w.resize(720, 480);
34 w.show();
35
36 return a.exec();
37 }
@@ -0,0 +1,246
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #include "mainwidget.h"
22 #include <QChart>
23 #include <QChartView>
24 #include <QPushButton>
25 #include <QLabel>
26 #include <QDebug>
27 #include <QLegend>
28 #include <QFormLayout>
29 #include <QPieSeries>
30 #include <QPieSlice>
31
32 QTCOMMERCIALCHART_USE_NAMESPACE
33
34 MainWidget::MainWidget(QWidget *parent) :
35 QWidget(parent)
36 {
37 // Create buttons for ui
38 m_buttonLayout = new QGridLayout();
39 QPushButton *detachLegendButton = new QPushButton("Toggle attached");
40 connect(detachLegendButton, SIGNAL(clicked()), this, SLOT(toggleAttached()));
41 m_buttonLayout->addWidget(detachLegendButton, 0, 0);
42
43 QPushButton *addSliceButton = new QPushButton("add slice");
44 connect(addSliceButton, SIGNAL(clicked()), this, SLOT(addSlice()));
45 m_buttonLayout->addWidget(addSliceButton, 2, 0);
46 QPushButton *removeSliceButton = new QPushButton("remove slice");
47 connect(removeSliceButton, SIGNAL(clicked()), this, SLOT(removeSlice()));
48 m_buttonLayout->addWidget(removeSliceButton, 3, 0);
49
50 QPushButton *alignButton = new QPushButton("Align (Bottom)");
51 connect(alignButton, SIGNAL(clicked()), this, SLOT(setLegendAlignment()));
52 m_buttonLayout->addWidget(alignButton, 4, 0);
53
54 QPushButton *boldButton = new QPushButton("Toggle bold");
55 connect(boldButton, SIGNAL(clicked()), this, SLOT(toggleBold()));
56 m_buttonLayout->addWidget(boldButton, 8, 0);
57
58 QPushButton *italicButton = new QPushButton("Toggle italic");
59 connect(italicButton, SIGNAL(clicked()), this, SLOT(toggleItalic()));
60 m_buttonLayout->addWidget(italicButton, 9, 0);
61
62 m_legendPosX = new QDoubleSpinBox();
63 m_legendPosY = new QDoubleSpinBox();
64 m_legendWidth = new QDoubleSpinBox();
65 m_legendHeight = new QDoubleSpinBox();
66
67 connect(m_legendPosX, SIGNAL(valueChanged(double)), this, SLOT(updateLegendLayout()));
68 connect(m_legendPosY, SIGNAL(valueChanged(double)), this, SLOT(updateLegendLayout()));
69 connect(m_legendWidth, SIGNAL(valueChanged(double)), this, SLOT(updateLegendLayout()));
70 connect(m_legendHeight, SIGNAL(valueChanged(double)), this, SLOT(updateLegendLayout()));
71
72 QFormLayout* legendLayout = new QFormLayout();
73 legendLayout->addRow("HPos", m_legendPosX);
74 legendLayout->addRow("VPos", m_legendPosY);
75 legendLayout->addRow("Width", m_legendWidth);
76 legendLayout->addRow("Height", m_legendHeight);
77 m_legendSettings = new QGroupBox("Detached legend");
78 m_legendSettings->setLayout(legendLayout);
79 m_buttonLayout->addWidget(m_legendSettings);
80 m_legendSettings->setVisible(false);
81
82 // Create chart view with the chart
83 m_chart = new QChart();
84 m_chartView = new QChartView(m_chart, this);
85
86 // Create spinbox to modify font size
87 m_fontSize = new QDoubleSpinBox();
88 m_fontSize->setValue(m_chart->legend()->font().pointSizeF());
89 connect(m_fontSize, SIGNAL(valueChanged(double)), this, SLOT(fontSizeChanged()));
90
91 QFormLayout* fontLayout = new QFormLayout();
92 fontLayout->addRow("Legend font size", m_fontSize);
93
94 // Create layout for grid and detached legend
95 m_mainLayout = new QGridLayout();
96 m_mainLayout->addLayout(m_buttonLayout, 0, 0);
97 m_mainLayout->addLayout(fontLayout,1,0);
98 m_mainLayout->addWidget(m_chartView, 0, 1, 3, 1);
99 setLayout(m_mainLayout);
100
101 createSeries();
102 }
103
104 void MainWidget::createSeries()
105 {
106 m_series = new QPieSeries();
107 addSlice();
108 addSlice();
109 addSlice();
110 addSlice();
111
112 m_chart->addSeries(m_series);
113 m_chart->setTitle("Legend detach example");
114 m_chart->createDefaultAxes();
115 //![1]
116 m_chart->legend()->setVisible(true);
117 m_chart->legend()->setAlignment(Qt::AlignBottom);
118 //![1]
119
120 m_chartView->setRenderHint(QPainter::Antialiasing);
121 }
122
123 void MainWidget::showLegendSpinbox()
124 {
125 m_legendSettings->setVisible(true);
126 QRectF chartViewRect = m_chartView->rect();
127
128 m_legendPosX->setMinimum(0);
129 m_legendPosX->setMaximum(chartViewRect.width());
130 m_legendPosX->setValue(150);
131
132 m_legendPosY->setMinimum(0);
133 m_legendPosY->setMaximum(chartViewRect.height());
134 m_legendPosY->setValue(150);
135
136 m_legendWidth->setMinimum(0);
137 m_legendWidth->setMaximum(chartViewRect.width());
138 m_legendWidth->setValue(150);
139
140 m_legendHeight->setMinimum(0);
141 m_legendHeight->setMaximum(chartViewRect.height());
142 m_legendHeight->setValue(75);
143 }
144
145 void MainWidget::hideLegendSpinbox()
146 {
147 m_legendSettings->setVisible(false);
148 }
149
150
151 void MainWidget::toggleAttached()
152 {
153 QLegend *legend = m_chart->legend();
154 if (legend->isAttachedToChart()) {
155 //![2]
156 legend->detachFromChart();
157 m_chart->legend()->setBackgroundVisible(true);
158 m_chart->legend()->setBrush(QBrush(QColor(128,128,128,128)));
159 m_chart->legend()->setPen(QPen(QColor(192,192,192,192)));
160 //![2]
161 showLegendSpinbox();
162 updateLegendLayout();
163 } else {
164 //![3]
165 legend->attachToChart();
166 legend->setBackgroundVisible(false);
167 //![3]
168 hideLegendSpinbox();
169 }
170 update();
171 }
172
173 void MainWidget::addSlice()
174 {
175 QPieSlice* slice = new QPieSlice(QString("slice " + QString::number(m_series->count())), m_series->count()+1);
176 // slice->setValue();
177 m_series->append(slice);
178 }
179
180 void MainWidget::removeSlice()
181 {
182 QList<QPieSlice*> slices = m_series->slices();
183 if (slices.count() > 0) {
184 m_series->remove(slices.at(slices.count()-1));
185 }
186 }
187
188 void MainWidget::setLegendAlignment()
189 {
190 QPushButton *button = qobject_cast<QPushButton *>(sender());
191
192 switch (m_chart->legend()->alignment()) {
193 case Qt::AlignTop:
194 m_chart->legend()->setAlignment(Qt::AlignLeft);
195 if (button)
196 button->setText("Align (Left)");
197 break;
198 case Qt::AlignLeft:
199 m_chart->legend()->setAlignment(Qt::AlignBottom);
200 if (button)
201 button->setText("Align (Bottom)");
202 break;
203 case Qt::AlignBottom:
204 m_chart->legend()->setAlignment(Qt::AlignRight);
205 if (button)
206 button->setText("Align (Right)");
207 break;
208 default:
209 if (button)
210 button->setText("Align (Top)");
211 m_chart->legend()->setAlignment(Qt::AlignTop);
212 break;
213 }
214 }
215
216 void MainWidget::toggleBold()
217 {
218 QFont font = m_chart->legend()->font();
219 font.setBold(!font.bold());
220 m_chart->legend()->setFont(font);
221 }
222
223 void MainWidget::toggleItalic()
224 {
225 QFont font = m_chart->legend()->font();
226 font.setItalic(!font.italic());
227 m_chart->legend()->setFont(font);
228 }
229
230 void MainWidget::fontSizeChanged()
231 {
232 QFont font = m_chart->legend()->font();
233 font.setPointSizeF(m_fontSize->value());
234 m_chart->legend()->setFont(font);
235 }
236
237 void MainWidget::updateLegendLayout()
238 {
239 //![4]
240 m_chart->legend()->setGeometry(QRectF(m_legendPosX->value()
241 ,m_legendPosY->value()
242 ,m_legendWidth->value()
243 ,m_legendHeight->value()));
244 m_chart->legend()->update();
245 //![4]
246 }
@@ -0,0 +1,83
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #ifndef MAINWIDGET_H
22 #define MAINWIDGET_H
23
24 #include "qchartglobal.h"
25 #include "qchart.h"
26 #include "qchartview.h"
27 #include <QWidget>
28 #include <QGraphicsWidget>
29 #include <QGridLayout>
30 #include <QGraphicsGridLayout>
31 #include <QDoubleSpinBox>
32 #include <QGroupBox>
33 #include <QPieSlice>
34 #include <QPieSeries>
35
36 QTCOMMERCIALCHART_USE_NAMESPACE
37
38 class MainWidget : public QWidget
39 {
40 Q_OBJECT
41 public:
42 explicit MainWidget(QWidget *parent = 0);
43 void createSeries();
44 void showLegendSpinbox();
45 void hideLegendSpinbox();
46
47 signals:
48
49 public slots:
50 void toggleAttached();
51 void addSlice();
52 void removeSlice();
53
54 void setLegendAlignment();
55
56 void toggleBold();
57 void toggleItalic();
58 void fontSizeChanged();
59
60 void updateLegendLayout();
61
62
63 private:
64
65 QChart *m_chart;
66 QPieSeries *m_series;
67
68 QChartView *m_chartView;
69 QGridLayout *m_mainLayout;
70 QGridLayout *m_buttonLayout;
71 QGridLayout *m_fontLayout;
72
73 QDoubleSpinBox *m_fontSize;
74
75 // For detached layout
76 QGroupBox* m_legendSettings;
77 QDoubleSpinBox *m_legendPosX;
78 QDoubleSpinBox *m_legendPosY;
79 QDoubleSpinBox *m_legendWidth;
80 QDoubleSpinBox *m_legendHeight;
81 };
82
83 #endif // MAINWIDGET_H
@@ -0,0 +1,10
1 !include( ../examples.pri ) {
2 error( "Couldn't find the examples.pri file!" )
3 }
4
5 TARGET = newlegend
6 SOURCES += main.cpp \
7 mainwidget.cpp
8
9 HEADERS += \
10 mainwidget.h
@@ -0,0 +1,36
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #include "qpielegendmarker.h"
22 #include <QPieSeries>
23
24 QTCOMMERCIALCHART_BEGIN_NAMESPACE
25
26 QPieLegendMarker::QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QObject *parent) :
27 QLegendMarker(series, parent),
28 m_slice(slice)
29 {
30 }
31
32
33 #include "moc_qpielegendmarker.cpp"
34 //#include "moc_qpielegendmarker_p.cpp"
35
36 QTCOMMERCIALCHART_END_NAMESPACE
@@ -0,0 +1,53
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #ifndef QPIELEGENDMARKER_H
22 #define QPIELEGENDMARKER_H
23
24 #include <QChartGlobal>
25 #include <QLegendMarker>
26 #include <QPieSlice>
27
28 QTCOMMERCIALCHART_BEGIN_NAMESPACE
29
30 class QTCOMMERCIALCHART_EXPORT QPieLegendMarker : public QLegendMarker
31 {
32 Q_OBJECT
33
34 public:
35 explicit QPieLegendMarker(QPieSeries* series, QPieSlice* slice, QObject *parent = 0);
36
37 virtual QPieSlice* peerObject() { return m_slice; }
38
39 //Q_SIGNALS:
40
41 //public Q_SLOTS:
42
43 private:
44 // TODO:
45 // QScopedPointer<QPieLegendMarkerPrivate> d_ptr;
46 Q_DISABLE_COPY(QPieLegendMarker)
47
48 QPieSlice* m_slice;
49
50 };
51
52 QTCOMMERCIALCHART_END_NAMESPACE
53 #endif // QPIELEGENDMARKER_H
@@ -1,40 +1,41
1 CURRENTLY_BUILDING_COMPONENTS = "examples"
1 CURRENTLY_BUILDING_COMPONENTS = "examples"
2 !include( ../config.pri ) {
2 !include( ../config.pri ) {
3 error( "Couldn't find the config.pri file!" )
3 error( "Couldn't find the config.pri file!" )
4 }
4 }
5
5
6 TEMPLATE = subdirs
6 TEMPLATE = subdirs
7 SUBDIRS += \
7 SUBDIRS += \
8 areachart \
8 areachart \
9 customchart \
9 customchart \
10 linechart \
10 linechart \
11 percentbarchart \
11 percentbarchart \
12 piechart \
12 piechart \
13 piechartdrilldown \
13 piechartdrilldown \
14 presenterchart \
14 presenterchart \
15 scatterchart \
15 scatterchart \
16 scatterinteractions \
16 scatterinteractions \
17 splinechart \
17 splinechart \
18 stackedbarchart \
18 stackedbarchart \
19 stackedbarchartdrilldown \
19 stackedbarchartdrilldown \
20 zoomlinechart \
20 zoomlinechart \
21 modeldata \
21 modeldata \
22 barchart \
22 barchart \
23 legend \
23 legend \
24 barmodelmapper \
24 barmodelmapper \
25 qmlpiechart \
25 qmlpiechart \
26 lineandbar \
26 lineandbar \
27 horizontalbarchart \
27 horizontalbarchart \
28 horizontalstackedbarchart \
28 horizontalstackedbarchart \
29 horizontalpercentbarchart \
29 horizontalpercentbarchart \
30 donutbreakdown \
30 donutbreakdown \
31 scrollchart \
31 scrollchart \
32 temperaturerecords \
32 temperaturerecords \
33 donutchart \
33 donutchart \
34 multiaxis \
34 multiaxis \
35 callout
35 callout \
36 newlegend
36
37
37 !linux-arm*: {
38 !linux-arm*: {
38 SUBDIRS += \
39 SUBDIRS += \
39 datetimeaxis
40 datetimeaxis
40 }
41 }
@@ -1,19 +1,21
1 INCLUDEPATH += $$PWD
1 INCLUDEPATH += $$PWD
2 DEPENDPATH += $$PWD
2 DEPENDPATH += $$PWD
3
3
4 SOURCES += \
4 SOURCES += \
5 $$PWD/qlegend.cpp \
5 $$PWD/qlegend.cpp \
6 $$PWD/legendmarker.cpp \
6 $$PWD/legendmarker.cpp \
7 $$PWD/legendlayout.cpp \
7 $$PWD/legendlayout.cpp \
8 $$PWD/qlegendmarker.cpp
8 $$PWD/qlegendmarker.cpp \
9 $$PWD/qpielegendmarker.cpp
9
10
10 PRIVATE_HEADERS += \
11 PRIVATE_HEADERS += \
11 $$PWD/legendmarker_p.h \
12 $$PWD/legendmarker_p.h \
12 $$PWD/legendscroller_p.h \
13 $$PWD/legendscroller_p.h \
13 $$PWD/qlegend_p.h \
14 $$PWD/qlegend_p.h \
14 $$PWD/legendlayout_p.h
15 $$PWD/legendlayout_p.h
15
16
16
17
17 PUBLIC_HEADERS += \
18 PUBLIC_HEADERS += \
18 $$PWD/qlegend.h \
19 $$PWD/qlegend.h \
19 $$PWD/qlegendmarker.h
20 $$PWD/qlegendmarker.h \
21 $$PWD/qpielegendmarker.h
@@ -1,85 +1,86
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 #include "qlegendmarker.h"
21 #include "qlegendmarker.h"
22 //#include "qlegendmarker_p.h"
22 //#include "qlegendmarker_p.h"
23 #include <QDebug>
23 #include <QDebug>
24
24
25 QTCOMMERCIALCHART_BEGIN_NAMESPACE
25 QTCOMMERCIALCHART_BEGIN_NAMESPACE
26
26
27 QLegendMarker::QLegendMarker(QObject *parent) :
27 QLegendMarker::QLegendMarker(QAbstractSeries* series, QObject *parent) :
28 QObject(parent)//,
28 QObject(parent),
29 m_series(series)
29 // d_ptr(new QLegendMarkerPrivate(this))
30 // d_ptr(new QLegendMarkerPrivate(this))
30 {
31 {
31 }
32 }
32
33
33 QLegendMarker::~QLegendMarker()
34 QLegendMarker::~QLegendMarker()
34 {
35 {
35 }
36 }
36
37
37 QString QLegendMarker::label() const
38 QString QLegendMarker::label() const
38 {
39 {
39 return m_label;
40 return m_label;
40 }
41 }
41
42
42 void QLegendMarker::setLabel(const QString &label)
43 void QLegendMarker::setLabel(const QString &label)
43 {
44 {
44 m_label = label;
45 m_label = label;
45 }
46 }
46
47
47 QPen QLegendMarker::pen() const
48 QPen QLegendMarker::pen() const
48 {
49 {
49 return m_pen;
50 return m_pen;
50 }
51 }
51
52
52 void QLegendMarker::setPen(const QPen &pen)
53 void QLegendMarker::setPen(const QPen &pen)
53 {
54 {
54 m_pen = pen;
55 m_pen = pen;
55 }
56 }
56
57
57 QBrush QLegendMarker::brush() const
58 QBrush QLegendMarker::brush() const
58 {
59 {
59 return m_brush;
60 return m_brush;
60 }
61 }
61
62
62 void QLegendMarker::setBrush(const QBrush &brush)
63 void QLegendMarker::setBrush(const QBrush &brush)
63 {
64 {
64 m_brush = brush;
65 m_brush = brush;
65 }
66 }
66
67
67 bool QLegendMarker::isVisible() const
68 bool QLegendMarker::isVisible() const
68 {
69 {
69 return m_visible;
70 return m_visible;
70 }
71 }
71
72
72 void QLegendMarker::setVisible(bool visible)
73 void QLegendMarker::setVisible(bool visible)
73 {
74 {
74 m_visible = visible;
75 m_visible = visible;
75 }
76 }
76
77
77 void QLegendMarker::markersUpdated()
78 void QLegendMarker::markersUpdated()
78 {
79 {
79 // TODO:
80 // TODO:
80 }
81 }
81
82
82 #include "moc_qlegendmarker.cpp"
83 #include "moc_qlegendmarker.cpp"
83 //#include "moc_qlegendmarker_p.cpp"
84 //#include "moc_qlegendmarker_p.cpp"
84
85
85 QTCOMMERCIALCHART_END_NAMESPACE
86 QTCOMMERCIALCHART_END_NAMESPACE
@@ -1,81 +1,87
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 #ifndef QLEGENDMARKER_H
21 #ifndef QLEGENDMARKER_H
22 #define QLEGENDMARKER_H
22 #define QLEGENDMARKER_H
23
23
24 #include <QChartGlobal>
24 #include <QChartGlobal>
25 #include <QObject>
25 #include <QObject>
26 #include <QPen>
26 #include <QPen>
27 #include <QBrush>
27 #include <QBrush>
28
28
29 QTCOMMERCIALCHART_BEGIN_NAMESPACE
29 QTCOMMERCIALCHART_BEGIN_NAMESPACE
30
30
31 // TODO:
31 // TODO:
32 //class QLegendMarkerPrivate;
32 //class QLegendMarkerPrivate;
33 class QAbstractSeries;
33
34
34 // TODO: should this be abstract?
35 // TODO: should this be abstract?
35 class QTCOMMERCIALCHART_EXPORT QLegendMarker : public QObject
36 class QTCOMMERCIALCHART_EXPORT QLegendMarker : public QObject
36 {
37 {
37 Q_OBJECT
38 Q_OBJECT
38
39
39 // TODO: need for these?
40 // TODO: need for these?
40 // Q_PROPERTY(QString label READ label WRITE setlabel NOTIFY labelChanged);
41 // Q_PROPERTY(QString label READ label WRITE setlabel NOTIFY labelChanged);
41 // Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY penChanged);
42 // Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY penChanged);
42 // Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged);
43 // Q_PROPERTY(QBrush brush READ brush WRITE setBrush NOTIFY brushChanged);
43
44
44 public:
45 public:
45 explicit QLegendMarker(QObject *parent = 0);
46 explicit QLegendMarker(QAbstractSeries* series, QObject *parent = 0);
46 virtual ~QLegendMarker();
47 virtual ~QLegendMarker();
47
48
48 QString label() const;
49 QString label() const;
49 void setLabel(const QString &label);
50 void setLabel(const QString &label);
50
51
51 QPen pen() const;
52 QPen pen() const;
52 void setPen(const QPen &pen);
53 void setPen(const QPen &pen);
53
54
54 QBrush brush() const;
55 QBrush brush() const;
55 void setBrush(const QBrush &brush);
56 void setBrush(const QBrush &brush);
56
57
57 bool isVisible() const;
58 bool isVisible() const;
58 void setVisible(bool visible);
59 void setVisible(bool visible);
59
60
61 // virtual QAbstractSeries::SeriesType type() = 0;
62 virtual QAbstractSeries* series() { return m_series; }
63 virtual QObject* peerObject() = 0;
64
60 Q_SIGNALS:
65 Q_SIGNALS:
61 void clicked();
66 void clicked();
62 void hovered(bool status);
67 void hovered(bool status);
63
68
64 public Q_SLOTS:
69 public Q_SLOTS:
65 void markersUpdated(); // TODO: private? Idea is that series signals, when for example pieslices have been added/removed.
70 void markersUpdated(); // TODO: private? Idea is that series signals, when for example pieslices have been added/removed.
66
71
67 public:
72 public:
68 // TODO:
73 // TODO:
69 // QScopedPointer<QLegendMarkerPrivate> d_ptr;
74 // QScopedPointer<QLegendMarkerPrivate> d_ptr;
70 Q_DISABLE_COPY(QLegendMarker)
75 Q_DISABLE_COPY(QLegendMarker)
71
76
72 // TODO: move to PIMPL
77 // TODO: move to PIMPL
78 QAbstractSeries* m_series;
73 QString m_label;
79 QString m_label;
74 QPen m_pen;
80 QPen m_pen;
75 QBrush m_brush;
81 QBrush m_brush;
76 bool m_visible;
82 bool m_visible;
77 };
83 };
78
84
79 QTCOMMERCIALCHART_END_NAMESPACE
85 QTCOMMERCIALCHART_END_NAMESPACE
80
86
81 #endif // QLEGENDMARKER_H
87 #endif // QLEGENDMARKER_H
General Comments 0
You need to be logged in to leave comments. Login now