File indexing completed on 2024-05-12 03:47:30

0001 /*
0002     File                 : DatapickerPointPrivate.h
0003     Project              : LabPlot
0004     Description          : Graphic Item for coordinate points of Datapicker
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015 Ankit Wagadre <wagadre.ankit@gmail.com>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef DATAPICKERPOINTPRIVATE_H
0011 #define DATAPICKERPOINTPRIVATE_H
0012 
0013 #include "backend/worksheet/Worksheet.h"
0014 
0015 #include <QBrush>
0016 #include <QGraphicsItem>
0017 #include <QPen>
0018 
0019 class DatapickerPoint;
0020 
0021 class DatapickerPointPrivate : public QGraphicsItem {
0022 public:
0023     explicit DatapickerPointPrivate(DatapickerPoint*);
0024 
0025     QString name() const;
0026     void retransform();
0027     virtual void recalcShapeAndBoundingRect();
0028     void updatePoint();
0029     void updatePropeties();
0030     void retransformErrorBar();
0031 
0032     bool m_printing{false};
0033     bool isReferencePoint{false};
0034 
0035     qreal rotationAngle{0.0};
0036     QPointF position;
0037     QRectF boundingRectangle;
0038     QRectF transformedBoundingRectangle;
0039     Symbol::Style pointStyle{Symbol::Style::NoSymbols};
0040     QBrush brush;
0041     QPen pen;
0042     qreal opacity{1.0};
0043     qreal size{1.0};
0044     QPainterPath itemShape;
0045 
0046     QPointF plusDeltaXPos;
0047     QPointF minusDeltaXPos;
0048     QPointF plusDeltaYPos;
0049     QPointF minusDeltaYPos;
0050     QBrush errorBarBrush;
0051     QPen errorBarPen;
0052     qreal errorBarSize{Worksheet::convertToSceneUnits(8, Worksheet::Unit::Point)};
0053 
0054     // reimplemented from QGraphicsItem
0055     QRectF boundingRect() const override;
0056     QPainterPath shape() const override;
0057     void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget* widget = nullptr) override;
0058 
0059     DatapickerPoint* const q;
0060 
0061 private:
0062     void contextMenuEvent(QGraphicsSceneContextMenuEvent*) override;
0063     void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override;
0064     void hoverEnterEvent(QGraphicsSceneHoverEvent*) override;
0065     void hoverLeaveEvent(QGraphicsSceneHoverEvent*) override;
0066     QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant& value) override;
0067 
0068     friend class DatapickerTest;
0069 };
0070 
0071 #endif