File indexing completed on 2024-05-12 03:49:08
0001 /* 0002 File : GuiObserver.h 0003 Project : LabPlot 0004 Description : GUI observer 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2010-2023 Alexander Semke <alexander.semke@web.de> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef GUIOBSERVER_H 0011 #define GUIOBSERVER_H 0012 0013 #include <QObject> 0014 0015 class MainWin; 0016 class AbstractAspect; 0017 0018 class BaseDock; 0019 class AspectDock; 0020 class AxisDock; 0021 class InfoElementDock; 0022 class NoteDock; 0023 class CartesianPlotDock; 0024 class HistogramDock; 0025 class BarPlotDock; 0026 class LollipopPlotDock; 0027 class BoxPlotDock; 0028 class KDEPlotDock; 0029 class QQPlotDock; 0030 class CartesianPlotLegendDock; 0031 class CustomPointDock; 0032 class ReferenceLineDock; 0033 class ReferenceRangeDock; 0034 class ColumnDock; 0035 class LiveDataDock; 0036 class MatrixDock; 0037 class ProjectDock; 0038 class SpreadsheetDock; 0039 class StatisticsSpreadsheetDock; 0040 class XYCurveDock; 0041 class XYEquationCurveDock; 0042 class XYDataReductionCurveDock; 0043 class XYDifferentiationCurveDock; 0044 class XYIntegrationCurveDock; 0045 class XYInterpolationCurveDock; 0046 class XYSmoothCurveDock; 0047 class XYFitCurveDock; 0048 class XYFourierFilterCurveDock; 0049 class XYFourierTransformCurveDock; 0050 class XYHilbertTransformCurveDock; 0051 class XYConvolutionCurveDock; 0052 class XYCorrelationCurveDock; 0053 class WorksheetDock; 0054 class ImageDock; 0055 class LabelWidget; 0056 class DatapickerImageWidget; 0057 class DatapickerCurveWidget; 0058 0059 #ifdef HAVE_CANTOR_LIBS 0060 class CantorWorksheetDock; 0061 #endif 0062 0063 class GuiObserver : public QObject { 0064 Q_OBJECT 0065 0066 public: 0067 explicit GuiObserver(MainWin*); 0068 ~GuiObserver() override; 0069 0070 private: 0071 MainWin* m_mainWindow{nullptr}; 0072 friend class MainWin; 0073 0074 AspectDock* m_aspectDock{nullptr}; 0075 ColumnDock* m_columnDock{nullptr}; 0076 LiveDataDock* m_liveDataDock{nullptr}; 0077 MatrixDock* m_matrixDock{nullptr}; 0078 NoteDock* m_notesDock{nullptr}; 0079 ProjectDock* m_projectDock{nullptr}; 0080 SpreadsheetDock* m_spreadsheetDock{nullptr}; 0081 StatisticsSpreadsheetDock* m_statisticsSpreadsheetDock{nullptr}; 0082 0083 // data picker 0084 DatapickerImageWidget* m_datapickerImageDock{nullptr}; 0085 DatapickerCurveWidget* m_datapickerCurveDock{nullptr}; 0086 0087 // worksheet 0088 AxisDock* m_axisDock{nullptr}; 0089 CartesianPlotDock* m_cartesianPlotDock{nullptr}; 0090 CartesianPlotLegendDock* m_cartesianPlotLegendDock{nullptr}; 0091 CustomPointDock* m_customPointDock{nullptr}; 0092 ImageDock* m_imageDock{nullptr}; 0093 InfoElementDock* m_infoElementDock{nullptr}; 0094 LabelWidget* m_textLabelDock{nullptr}; 0095 ReferenceLineDock* m_referenceLineDock{nullptr}; 0096 ReferenceRangeDock* m_referenceRangeDock{nullptr}; 0097 WorksheetDock* m_worksheetDock{nullptr}; 0098 0099 XYCurveDock* m_xyCurveDock{nullptr}; 0100 XYEquationCurveDock* m_xyEquationCurveDock{nullptr}; 0101 0102 // bar plots 0103 BarPlotDock* m_barPlotDock{nullptr}; 0104 LollipopPlotDock* m_lollipopPlotDock{nullptr}; 0105 0106 // statistical plots 0107 BoxPlotDock* m_boxPlotDock{nullptr}; 0108 HistogramDock* m_histogramDock{nullptr}; 0109 KDEPlotDock* m_kdePlotDock{nullptr}; 0110 QQPlotDock* m_qqPlotDock{nullptr}; 0111 0112 // analysis plots 0113 XYDataReductionCurveDock* m_xyDataReductionCurveDock{nullptr}; 0114 XYDifferentiationCurveDock* m_xyDifferentiationCurveDock{nullptr}; 0115 XYIntegrationCurveDock* m_xyIntegrationCurveDock{nullptr}; 0116 XYInterpolationCurveDock* m_xyInterpolationCurveDock{nullptr}; 0117 XYSmoothCurveDock* m_xySmoothCurveDock{nullptr}; 0118 XYFitCurveDock* m_xyFitCurveDock{nullptr}; 0119 XYFourierFilterCurveDock* m_xyFourierFilterCurveDock{nullptr}; 0120 XYFourierTransformCurveDock* m_xyFourierTransformCurveDock{nullptr}; 0121 XYHilbertTransformCurveDock* m_xyHilbertTransformCurveDock{nullptr}; 0122 XYConvolutionCurveDock* m_xyConvolutionCurveDock{nullptr}; 0123 XYCorrelationCurveDock* m_xyCorrelationCurveDock{nullptr}; 0124 0125 #ifdef HAVE_CANTOR_LIBS 0126 CantorWorksheetDock* m_cantorWorksheetDock{nullptr}; 0127 #endif 0128 0129 private Q_SLOTS: 0130 void selectedAspectsChanged(const QList<AbstractAspect*>&); 0131 void hiddenAspectSelected(const AbstractAspect*); 0132 }; 0133 0134 #endif