File indexing completed on 2025-07-13 03:32:51

0001 /*
0002     File             : XYSmoothCurveDock.h
0003     Project          : LabPlot
0004     Description      : widget for editing properties of smooth curves
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2016-2021 Stefan Gerlach <stefan.gerlach@uni.kn>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef XYSMOOTHCURVEDOCK_H
0012 #define XYSMOOTHCURVEDOCK_H
0013 
0014 #include "backend/worksheet/plots/cartesian/XYSmoothCurve.h"
0015 #include "kdefrontend/dockwidgets/XYAnalysisCurveDock.h"
0016 #include "ui_xysmoothcurvedockgeneraltab.h"
0017 
0018 class TreeViewComboBox;
0019 
0020 class XYSmoothCurveDock : public XYAnalysisCurveDock {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit XYSmoothCurveDock(QWidget* parent);
0025     void setCurves(QList<XYCurve*>);
0026     void setupGeneral() override;
0027 
0028 private:
0029     void initGeneralTab() override;
0030     void updateSettings(const AbstractColumn*) override;
0031     void showSmoothResult();
0032 
0033     Ui::XYSmoothCurveDockGeneralTab uiGeneralTab;
0034     XYSmoothCurve* m_smoothCurve{nullptr};
0035     XYSmoothCurve::SmoothData m_smoothData;
0036     bool m_dateTimeRange{false};
0037 
0038 protected:
0039     void setModel();
0040 
0041 private Q_SLOTS:
0042     // SLOTs for changes triggered in XYSmoothCurveDock
0043     // general tab
0044     void dataSourceTypeChanged(int);
0045     void xDataColumnChanged(const QModelIndex&);
0046     void autoRangeChanged();
0047     void xRangeMinChanged();
0048     void xRangeMaxChanged();
0049     void xRangeMinDateTimeChanged(qint64);
0050     void xRangeMaxDateTimeChanged(qint64);
0051     void typeChanged(int);
0052     void pointsChanged(int);
0053     void weightChanged(int);
0054     void percentileChanged(double);
0055     void orderChanged(int);
0056     void modeChanged(int);
0057     void valueChanged();
0058     void recalculateClicked();
0059 
0060     // SLOTs for changes triggered in XYCurve
0061     // General-Tab
0062     void curveSmoothDataChanged(const XYSmoothCurve::SmoothData&);
0063 };
0064 #endif