File indexing completed on 2024-05-12 03:47:28
0001 /* 0002 File : Datapicker.h 0003 Project : LabPlot 0004 Description : Datapicker 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2015 Ankit Wagadre <wagadre.ankit@gmail.com> 0007 SPDX-FileCopyrightText: 2015-2017 Alexander Semke <alexander.semke@web.de> 0008 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #ifndef DATAPICKER_H 0013 #define DATAPICKER_H 0014 0015 #include "Vector3D.h" 0016 #include "backend/core/AbstractPart.h" 0017 0018 class Spreadsheet; 0019 class DatapickerCurve; 0020 class DatapickerImage; 0021 class DatapickerView; 0022 0023 class QXmlStreamWriter; 0024 class XmlStreamReader; 0025 class Transform; 0026 class QPointF; 0027 class QVector3D; 0028 0029 class Datapicker : public AbstractPart { 0030 Q_OBJECT 0031 0032 public: 0033 explicit Datapicker(const QString& name, const bool loading = false); 0034 ~Datapicker() override; 0035 0036 QIcon icon() const override; 0037 QMenu* createContextMenu() override; 0038 QWidget* view() const override; 0039 0040 bool exportView() const override; 0041 bool printView() override; 0042 bool printPreview() const override; 0043 0044 DatapickerCurve* activeCurve(); 0045 Spreadsheet* currentSpreadsheet() const; 0046 DatapickerImage* image() const; 0047 0048 void setChildSelectedInView(int index, bool selected); 0049 void setSelectedInView(const bool); 0050 void addNewPoint(QPointF, AbstractAspect*); 0051 0052 bool xDateTime() const; 0053 0054 Vector3D mapSceneToLogical(QPointF) const; 0055 Vector3D mapSceneLengthToLogical(QPointF) const; 0056 0057 void save(QXmlStreamWriter*) const override; 0058 bool load(XmlStreamReader*, bool preview) override; 0059 0060 public Q_SLOTS: 0061 void childSelected(const AbstractAspect*) override; 0062 0063 private: 0064 mutable DatapickerView* m_view{nullptr}; 0065 DatapickerCurve* m_activeCurve{nullptr}; 0066 Transform* m_transform; 0067 DatapickerImage* m_image{nullptr}; 0068 0069 void init(); 0070 void handleChildAspectAboutToBeRemoved(const AbstractAspect*); 0071 void handleChildAspectAdded(const AbstractAspect*); 0072 0073 private Q_SLOTS: 0074 void childDeselected(const AbstractAspect*) override; 0075 void handleAspectAdded(const AbstractAspect*); 0076 void handleAspectAboutToBeRemoved(const AbstractAspect*); 0077 0078 Q_SIGNALS: 0079 void datapickerItemSelected(int); 0080 void requestUpdateActions(); 0081 }; 0082 0083 #endif