File indexing completed on 2025-03-09 03:34:33

0001 /*
0002     File                 : ErrorBarStyleWidget.h
0003     Project              : LabPlot
0004     Description          : error bar style widget
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2024 Alexander Semke <alexander.semke@web.de>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef ERRORBARSTYLEWIDGET_H
0011 #define ERRORBARSTYLEWIDGET_H
0012 
0013 #include "backend/worksheet/plots/cartesian/ErrorBarStyle.h"
0014 #include "ui_errorbarstylewidget.h"
0015 
0016 class LineWidget;
0017 class QShowEvent;
0018 class KConfigGroup;
0019 
0020 class ErrorBarStyleWidget : public QWidget {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit ErrorBarStyleWidget(QWidget*);
0025 
0026     void setErrorBarStyles(const QList<ErrorBarStyle*>&);
0027     void setEnabled(bool);
0028     void updateLocale();
0029 
0030     void load();
0031     void loadConfig(const KConfigGroup&);
0032     void saveConfig(KConfigGroup&) const;
0033 
0034 private:
0035     Ui::ErrorBarStyleWidget ui;
0036     LineWidget* lineWidget{nullptr};
0037     ErrorBarStyle* m_style{nullptr};
0038     QList<ErrorBarStyle*> m_styles;
0039     bool m_initializing{false};
0040 
0041     void showEvent(QShowEvent*) override;
0042     void adjustLayout();
0043 
0044 private Q_SLOTS:
0045     // SLOTs for changes triggered in ErrorBarStyleWidget
0046     void typeChanged(int);
0047     void capSizeChanged(double);
0048 
0049     // SLOTs for changes triggered in ErrorBarStyle
0050     void errorBarStyleTypeChanged(ErrorBarStyle::Type);
0051     void errorBarStyleCapSizeChanged(double);
0052 
0053 Q_SIGNALS:
0054     void colorChanged(const QColor&);
0055 };
0056 
0057 #endif // ERRORBARSTYLE_H