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