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

0001 /*
0002     File             : XYIntegrationCurveDock.h
0003     Project          : LabPlot
0004     Description      : widget for editing properties of integration 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 XYINTEGRATIONCURVEDOCK_H
0012 #define XYINTEGRATIONCURVEDOCK_H
0013 
0014 #include "backend/worksheet/plots/cartesian/XYIntegrationCurve.h"
0015 #include "kdefrontend/dockwidgets/XYAnalysisCurveDock.h"
0016 #include "ui_xyintegrationcurvedockgeneraltab.h"
0017 
0018 class TreeViewComboBox;
0019 
0020 class XYIntegrationCurveDock : public XYAnalysisCurveDock {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit XYIntegrationCurveDock(QWidget*);
0025     void setCurves(QList<XYCurve*>);
0026     void setupGeneral() override;
0027 
0028 private:
0029     void initGeneralTab() override;
0030     void updateSettings(const AbstractColumn*) override;
0031     void showIntegrationResult();
0032     virtual QString customText() const override;
0033 
0034     Ui::XYIntegrationCurveDockGeneralTab uiGeneralTab;
0035     XYIntegrationCurve* m_integrationCurve{nullptr};
0036     XYIntegrationCurve::IntegrationData m_integrationData;
0037     bool m_dateTimeRange{false};
0038 
0039 protected:
0040     void setModel();
0041 
0042 private Q_SLOTS:
0043     // SLOTs for changes triggered in XYIntegrationCurveDock
0044     // general tab
0045     void dataSourceTypeChanged(int);
0046     void xDataColumnChanged(const QModelIndex&);
0047     void autoRangeChanged();
0048     void xRangeMinChanged();
0049     void xRangeMaxChanged();
0050     void xRangeMinDateTimeChanged(qint64);
0051     void xRangeMaxDateTimeChanged(qint64);
0052     void methodChanged(int);
0053     void absoluteChanged();
0054     void recalculateClicked();
0055 
0056     // SLOTs for changes triggered in XYCurve
0057     // General-Tab
0058     void curveIntegrationDataChanged(const XYIntegrationCurve::IntegrationData&);
0059 };
0060 
0061 #endif