File indexing completed on 2025-09-14 03:43:06

0001 /*
0002     File                 : CustomPointDock.h
0003     Project              : LabPlot
0004     Description          : Dock widget for the custom point on the plot
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2015-2023 Alexander Semke <alexander.semke@web.de>
0007     SPDX-FileCopyrightText: 2021 Stefan Gerlach <stefan.gerlach@uni.kn>
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef CUSTOMPOINTDOCK_H
0012 #define CUSTOMPOINTDOCK_H
0013 
0014 #include "kdefrontend/dockwidgets/BaseDock.h"
0015 #include "ui_custompointdock.h"
0016 
0017 class CustomPoint;
0018 class SymbolWidget;
0019 class KConfig;
0020 
0021 class CustomPointDock : public BaseDock {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit CustomPointDock(QWidget*);
0026     void setPoints(QList<CustomPoint*>);
0027     void updateLocale() override;
0028 
0029 private:
0030     Ui::CustomPointDock ui;
0031     QList<CustomPoint*> m_points;
0032     CustomPoint* m_point{nullptr};
0033     SymbolWidget* symbolWidget{nullptr};
0034 
0035     void load();
0036     void initConnections() const;
0037 
0038 private Q_SLOTS:
0039     // SLOTs for changes triggered in CustomPointDock
0040     // General-Tab
0041     void positionXChanged(int);
0042     void positionYChanged(int);
0043     void customPositionXChanged(double);
0044     void customPositionYChanged(double);
0045     void lockChanged(bool);
0046     void bindingChanged(bool checked);
0047 
0048     void positionXLogicalChanged(double);
0049     void positionXLogicalDateTimeChanged(qint64);
0050     void positionYLogicalChanged(double);
0051     void positionYLogicalDateTimeChanged(qint64);
0052 
0053     // SLOTs for changes triggered in CustomPoint
0054     // General-Tab
0055     void pointLockChanged(bool);
0056     void pointPositionChanged(const WorksheetElement::PositionWrapper&);
0057     void pointPositionLogicalChanged(QPointF);
0058     void pointCoordinateBindingEnabledChanged(bool);
0059 
0060     // load and save
0061     void loadConfigFromTemplate(KConfig&);
0062     void saveConfigAsTemplate(KConfig&);
0063 
0064 Q_SIGNALS:
0065     void info(const QString&);
0066 
0067     friend class WorksheetElementTest;
0068 };
0069 
0070 #endif