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

0001 /*
0002     File                 : ValueWidget.h
0003     Project              : LabPlot
0004     Description          : value settings widget
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2022-2024 Alexander Semke <alexander.semke@web.de>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef VALUEWIDGET_H
0011 #define VALUEWIDGET_H
0012 
0013 #include "backend/worksheet/plots/cartesian/Value.h"
0014 #include "ui_valuewidget.h"
0015 
0016 #include <KConfigGroup>
0017 
0018 class AspectTreeModel;
0019 class TreeViewComboBox;
0020 
0021 class ValueWidget : public QWidget {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit ValueWidget(QWidget*);
0026     ~ValueWidget();
0027 
0028     void setValues(const QList<Value*>&);
0029 
0030     void load();
0031     void loadConfig(const KConfigGroup&);
0032     void saveConfig(KConfigGroup&) const;
0033 
0034 private:
0035     Ui::ValueWidget ui;
0036     Value* m_value{nullptr};
0037     QList<Value*> m_values;
0038     bool m_initializing{false};
0039     TreeViewComboBox* cbColumn{nullptr};
0040     AspectTreeModel* m_aspectModel{nullptr};
0041 
0042     void updateWidgets();
0043 
0044 Q_SIGNALS:
0045     void dataChanged(bool);
0046 
0047 private Q_SLOTS:
0048     // SLOTs for changes triggered in ValueWidget
0049     void typeChanged(int);
0050     void columnChanged(const QModelIndex&);
0051     void positionChanged(int);
0052     void distanceChanged(double);
0053     void rotationChanged(int);
0054     void opacityChanged(int);
0055     void numericFormatChanged(int);
0056     void precisionChanged(int);
0057     void dateTimeFormatChanged(const QString&);
0058     void prefixChanged();
0059     void suffixChanged();
0060     void fontChanged(const QFont&);
0061     void colorChanged(const QColor&);
0062 
0063     // SLOTs for changes triggered in Value
0064     void valueTypeChanged(Value::Type);
0065     void valueColumnChanged(const AbstractColumn*);
0066     void valuePositionChanged(Value::Position);
0067     void valueDistanceChanged(qreal);
0068     void valueOpacityChanged(qreal);
0069     void valueRotationAngleChanged(qreal);
0070     void valueNumericFormatChanged(char);
0071     void valuePrecisionChanged(int);
0072     void valueDateTimeFormatChanged(const QString&);
0073     void valuePrefixChanged(const QString&);
0074     void valueSuffixChanged(const QString&);
0075     void valueFontChanged(QFont);
0076     void valueColorChanged(QColor);
0077 };
0078 
0079 #endif // VALUEWIDGET_H