34 #include <boost/optional.hpp> 36 #include <QQuickPaintedItem> 49 Q_PROPERTY (
QList<QPointF> points READ GetPoints WRITE SetPoints NOTIFY pointsChanged)
51 Q_PROPERTY (QVariant multipoints READ GetMultipoints WRITE SetMultipoints NOTIFY multipointsChanged)
53 Q_PROPERTY (
double minXValue READ GetMinXValue WRITE SetMinXValue NOTIFY minXValueChanged)
54 Q_PROPERTY (
double maxXValue READ GetMaxXValue WRITE SetMaxXValue NOTIFY maxXValueChanged)
55 Q_PROPERTY (
double minYValue READ GetMinYValue WRITE SetMinYValue NOTIFY minYValueChanged)
56 Q_PROPERTY (
double maxYValue READ GetMaxYValue WRITE SetMaxYValue NOTIFY maxYValueChanged)
58 Q_PROPERTY (
bool yGridEnabled READ GetYGridEnabled WRITE SetYGridEnabled NOTIFY yGridChanged)
59 Q_PROPERTY (
bool yMinorGridEnabled READ GetYMinorGridEnabled WRITE SetYMinorGridEnabled NOTIFY yMinorGridChanged)
61 Q_PROPERTY (
double alpha READ GetAlpha WRITE SetAlpha NOTIFY alphaChanged)
62 Q_PROPERTY (QColor color READ GetColor WRITE SetColor NOTIFY colorChanged)
63 Q_PROPERTY (
bool leftAxisEnabled READ GetLeftAxisEnabled WRITE SetLeftAxisEnabled NOTIFY leftAxisEnabledChanged)
64 Q_PROPERTY (
bool bottomAxisEnabled READ GetBottomAxisEnabled WRITE SetBottomAxisEnabled NOTIFY bottomAxisEnabledChanged)
65 Q_PROPERTY (QString leftAxisTitle READ GetLeftAxisTitle WRITE SetLeftAxisTitle NOTIFY leftAxisTitleChanged)
66 Q_PROPERTY (QString bottomAxisTitle READ GetBottomAxisTitle WRITE SetBottomAxisTitle NOTIFY bottomAxisTitleChanged)
68 Q_PROPERTY (QString plotTitle READ GetPlotTitle WRITE SetPlotTitle NOTIFY plotTitleChanged)
70 Q_PROPERTY (QColor background READ GetBackground WRITE SetBackground NOTIFY backgroundChanged)
71 Q_PROPERTY (QColor textColor READ GetTextColor WRITE SetTextColor NOTIFY textColorChanged)
72 Q_PROPERTY (QColor gridLinesColor READ GetGridLinesColor WRITE SetGridLinesColor NOTIFY gridLinesColorChanged)
74 Q_PROPERTY (
int xExtent READ GetXExtent NOTIFY extentsChanged)
75 Q_PROPERTY (
int yExtent READ GetYExtent NOTIFY extentsChanged)
77 QList<QPointF> Points_;
82 boost::optional<QColor> BrushColor_;
87 double MinXValue_ = -1;
88 double MaxXValue_ = -1;
89 double MinYValue_ = -1;
90 double MaxYValue_ = -1;
92 bool YGridEnabled_ =
false;
93 bool YMinorGridEnabled_ =
false;
99 bool LeftAxisEnabled_ =
false;
100 bool BottomAxisEnabled_ =
false;
102 QString LeftAxisTitle_;
103 QString BottomAxisTitle_;
107 QColor BackgroundColor_;
109 QColor GridLinesColor_;
114 std::shared_ptr<QwtPlot> Plot_;
121 QVariant GetMultipoints ()
const;
122 void SetMultipoints (
const QVariant&);
124 double GetMinXValue ()
const;
125 void SetMinXValue (
double);
126 double GetMaxXValue ()
const;
127 void SetMaxXValue (
double);
128 double GetMinYValue ()
const;
129 void SetMinYValue (
double);
130 double GetMaxYValue ()
const;
131 void SetMaxYValue (
double);
133 bool GetYGridEnabled ()
const;
134 void SetYGridEnabled (
bool);
135 bool GetYMinorGridEnabled ()
const;
136 void SetYMinorGridEnabled (
bool);
138 double GetAlpha ()
const;
139 void SetAlpha (
double);
141 QColor GetColor ()
const;
142 void SetColor (
const QColor&);
144 bool GetLeftAxisEnabled ()
const;
145 void SetLeftAxisEnabled (
bool);
146 bool GetBottomAxisEnabled ()
const;
147 void SetBottomAxisEnabled (
bool);
149 QString GetLeftAxisTitle ()
const;
150 void SetLeftAxisTitle (
const QString&);
151 QString GetBottomAxisTitle ()
const;
152 void SetBottomAxisTitle (
const QString&);
154 QString GetPlotTitle ()
const;
155 void SetPlotTitle (
const QString&);
157 QColor GetBackground ()
const;
158 void SetBackground (
const QColor&);
159 QColor GetTextColor ()
const;
160 void SetTextColor (
const QColor&);
161 QColor GetGridLinesColor ()
const;
162 void SetGridLinesColor (
const QColor&);
164 int GetXExtent ()
const;
165 int GetYExtent ()
const;
167 void paint (QPainter*)
override;
170 void SetNewValue (T val, T& ourVal,
const std::function<
void ()>& notifier);
172 int CalcXExtent (QwtPlot&)
const;
173 int CalcYExtent (QwtPlot&)
const;
175 void pointsChanged ();
176 void multipointsChanged ();
178 void minXValueChanged ();
179 void maxXValueChanged ();
180 void minYValueChanged ();
181 void maxYValueChanged ();
183 void yGridChanged ();
184 void yMinorGridChanged ();
186 void alphaChanged ();
188 void colorChanged ();
190 void leftAxisEnabledChanged ();
191 void bottomAxisEnabledChanged ();
193 void leftAxisTitleChanged ();
194 void bottomAxisTitleChanged ();
196 void plotTitleChanged ();
198 void backgroundChanged ();
199 void textColorChanged ();
200 void gridLinesColorChanged ();
202 void extentsChanged ();