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

0001 /*
0002     File                 : SymbolWidget.h
0003     Project              : LabPlot
0004     Description          : symbol settings widget
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2021 Alexander Semke <alexander.semke@web.de>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef SYMBOLWIDGET_H
0011 #define SYMBOLWIDGET_H
0012 
0013 #include "backend/worksheet/plots/cartesian/Symbol.h"
0014 #include "ui_symbolwidget.h"
0015 #include <KConfigGroup>
0016 
0017 class SymbolWidget : public QWidget {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit SymbolWidget(QWidget*);
0022 
0023     void setSymbols(const QList<Symbol*>&);
0024     void updateLocale();
0025 
0026     void load();
0027     void loadConfig(const KConfigGroup&);
0028     void saveConfig(KConfigGroup&) const;
0029 
0030 private:
0031     Ui::SymbolWidget ui;
0032     Symbol* m_symbol{nullptr};
0033     QList<Symbol*> m_symbols;
0034     bool m_initializing{false};
0035 
0036     void showEvent(QShowEvent*) override;
0037     void adjustLayout();
0038 
0039 Q_SIGNALS:
0040     void dataChanged(bool);
0041 
0042 private Q_SLOTS:
0043     // SLOTs for changes triggered in SymbolWidget
0044     void styleChanged(int);
0045     void sizeChanged(double);
0046     void rotationChanged(int);
0047     void opacityChanged(int);
0048     void fillingStyleChanged(int);
0049     void fillingColorChanged(const QColor&);
0050     void borderStyleChanged(int);
0051     void borderColorChanged(const QColor&);
0052     void borderWidthChanged(double);
0053 
0054     // SLOTs for changes triggered in Symbol
0055     void symbolStyleChanged(Symbol::Style);
0056     void symbolSizeChanged(qreal);
0057     void symbolRotationAngleChanged(qreal);
0058     void symbolOpacityChanged(qreal);
0059     void symbolBrushChanged(const QBrush&);
0060     void symbolPenChanged(const QPen&);
0061 };
0062 
0063 #endif // LABELWIDGET_H