///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2017- Statoil ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include "cafPdmUiFormLayoutObjectEditor.h" #include #include class RimSummaryPlot; class RimSummaryMultiPlot; class RimSummaryCase; class RicSummaryPlotEditorUi; class QMinimizePanel; class QSplitter; class QString; class QVBoxLayout; class QHBoxLayout; class QBoxLayout; namespace caf { class PdmObject; class PdmUiItem; class PdmUiTreeView; } // namespace caf //================================================================================================== /// /// //================================================================================================== class RicSummaryPlotEditorWidgetCreator : public caf::PdmUiFormLayoutObjectEditor { Q_OBJECT public: RicSummaryPlotEditorWidgetCreator( QWidget* parent ); ~RicSummaryPlotEditorWidgetCreator() override; void updateFromSummaryPlot( RimSummaryPlot* summaryPlot ); void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot ); void updateFromDefaultSources( const std::vector defaultSources ); private: void recursivelyConfigureAndUpdateTopLevelUiOrdering( const caf::PdmUiOrdering& topLevelUiOrdering, const QString& uiConfigName ) override; QWidget* createWidget( QWidget* parent ) override; QMinimizePanel* getOrCreateCurveTreeGroup(); QWidget* getOrCreatePlotWidget(); static caf::PdmUiGroup* findGroupByKeyword( const std::vector& topLevelUiItems, const QString& keyword, const QString& uiConfigName ); void configureAndUpdateFields( int widgetStartIndex, QBoxLayout* layout, const std::vector& topLevelUiItems, const QString& uiConfigName ); QMinimizePanel* createGroupBoxWithContent( caf::PdmUiGroup* group, const QString& uiConfigName ); signals: void signalCloseButtonPressed(); private: QPointer m_layout; QPointer m_firstColumnSplitter; QPointer m_curvesPanel; QPointer m_firstRowLayout; QPointer m_secondRowLayout; QPointer m_lowerLeftLayout; QPointer m_lowerRightLayout; QPointer m_bottomFieldLayout; QPointer m_curveTreeView; QWidget* m_parentWidget; std::unique_ptr m_summaryCurveCreator; };