File indexing completed on 2025-10-12 03:31:19

0001 /*
0002     File             : XYConvolutionCurveDock.h
0003     Project          : LabPlot
0004     Description      : widget for editing properties of convolution curves
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2018-2021 Stefan Gerlach <stefan.gerlach@uni.kn>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef XYCONVOLUTIONCURVEDOCK_H
0012 #define XYCONVOLUTIONCURVEDOCK_H
0013 
0014 #include "backend/worksheet/plots/cartesian/XYConvolutionCurve.h"
0015 #include "kdefrontend/dockwidgets/XYAnalysisCurveDock.h"
0016 #include "ui_xyconvolutioncurvedockgeneraltab.h"
0017 
0018 class TreeViewComboBox;
0019 
0020 class XYConvolutionCurveDock : public XYAnalysisCurveDock {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit XYConvolutionCurveDock(QWidget*);
0025     void setCurves(QList<XYCurve*>);
0026     void setupGeneral() override;
0027 
0028 private:
0029     void initGeneralTab() override;
0030     void showConvolutionResult();
0031 
0032     Ui::XYConvolutionCurveDockGeneralTab uiGeneralTab;
0033     XYConvolutionCurve* m_convolutionCurve{nullptr};
0034     XYConvolutionCurve::ConvolutionData m_convolutionData;
0035 
0036 protected:
0037     void setModel();
0038 
0039 private Q_SLOTS:
0040     // SLOTs for changes triggered in XYConvolutionCurveDock
0041     // general tab
0042     void dataSourceTypeChanged(int);
0043     void xDataColumnChanged(const QModelIndex&);
0044     void samplingIntervalChanged();
0045     void kernelChanged();
0046     void kernelSizeChanged();
0047     void autoRangeChanged();
0048     void xRangeMinChanged();
0049     void xRangeMaxChanged();
0050     void directionChanged();
0051     void typeChanged();
0052     void normChanged();
0053     void wrapChanged();
0054     void recalculateClicked();
0055 
0056     // SLOTs for changes triggered in XYCurve
0057     // General-Tab
0058     void curveXDataColumnChanged(const AbstractColumn*);
0059     void curveY2DataColumnChanged(const AbstractColumn*);
0060     void curveConvolutionDataChanged(const XYConvolutionCurve::ConvolutionData&);
0061 };
0062 
0063 #endif