File indexing completed on 2024-06-02 03:49:14
0001 /* 0002 File : BarPlotDock.h 0003 Project : LabPlot 0004 Description : Dock widget for the bar plot 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2022 Alexander Semke <alexander.semke@web.de> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef BARPLOTDOCK_H 0011 #define BARPLOTDOCK_H 0012 0013 #include "backend/worksheet/plots/cartesian/BarPlot.h" 0014 #include "kdefrontend/dockwidgets/BaseDock.h" 0015 #include "ui_barplotdock.h" 0016 0017 class AbstractAspect; 0018 class BackgroundWidget; 0019 class LineWidget; 0020 class ValueWidget; 0021 class BarPlot; 0022 class TreeViewComboBox; 0023 class KConfig; 0024 0025 class BarPlotDock : public BaseDock { 0026 Q_OBJECT 0027 0028 public: 0029 explicit BarPlotDock(QWidget*); 0030 void setBarPlots(QList<BarPlot*>); 0031 void updateLocale() override; 0032 0033 private: 0034 Ui::BarPlotDock ui; 0035 BackgroundWidget* backgroundWidget{nullptr}; 0036 LineWidget* lineWidget{nullptr}; 0037 ValueWidget* valueWidget{nullptr}; 0038 QList<BarPlot*> m_barPlots; 0039 BarPlot* m_barPlot{nullptr}; 0040 TreeViewComboBox* cbXColumn{nullptr}; 0041 0042 QGridLayout* m_gridLayout; 0043 QPushButton* m_buttonNew; 0044 QVector<TreeViewComboBox*> m_dataComboBoxes; 0045 QVector<QPushButton*> m_removeButtons; 0046 0047 void setModel(); 0048 void load(); 0049 void loadConfig(KConfig&); 0050 void setDataColumns() const; 0051 void loadDataColumns(); 0052 0053 private Q_SLOTS: 0054 // SLOTs for changes triggered in BarPlotDock 0055 0056 //"General"-tab 0057 void xColumnChanged(const QModelIndex&); 0058 void removeXColumn(); 0059 void addDataColumn(); 0060 void removeDataColumn(); 0061 void dataColumnChanged(const QModelIndex&); 0062 void typeChanged(int); 0063 void orientationChanged(int); 0064 0065 //"Box"-tab 0066 void currentBarChanged(int); 0067 void widthFactorChanged(int); 0068 0069 // SLOTs for changes triggered in BarPlot 0070 // general 0071 void plotXColumnChanged(const AbstractColumn*); 0072 void plotDataColumnsChanged(const QVector<const AbstractColumn*>&); 0073 void plotTypeChanged(BarPlot::Type); 0074 void plotOrientationChanged(BarPlot::Orientation); 0075 void plotWidthFactorChanged(double); 0076 0077 // load and save 0078 void loadConfigFromTemplate(KConfig&); 0079 void saveConfigAsTemplate(KConfig&); 0080 0081 Q_SIGNALS: 0082 void info(const QString&); 0083 }; 0084 0085 #endif