#2045 Remove obsolete factory and move curve editor into RicSummaryCurveCreator

This commit is contained in:
Magne Sjaastad 2017-10-27 08:26:20 +02:00
parent 1132d1fe7a
commit 0be241eb59
12 changed files with 70 additions and 189 deletions

View File

@ -25,7 +25,6 @@ ${CEE_CURRENT_LIST_DIR}RicEditSummaryPlotFeature.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreator.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorSplitterUi.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorDialog.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorFactoryImpl.h
${CEE_CURRENT_LIST_DIR}RicShowSummaryCurveCalculatorFeature.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCalculatorDialog.h
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCalculatorEditor.h
@ -52,7 +51,6 @@ ${CEE_CURRENT_LIST_DIR}RicEditSummaryPlotFeature.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreator.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorSplitterUi.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorDialog.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCreatorFactoryImpl.cpp
${CEE_CURRENT_LIST_DIR}RicShowSummaryCurveCalculatorFeature.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCalculatorDialog.cpp
${CEE_CURRENT_LIST_DIR}RicSummaryCurveCalculatorEditor.cpp

View File

@ -23,7 +23,6 @@
#include "RicSummaryCurveCreator.h"
#include "RicSummaryCurveCreatorDialog.h"
#include "RicSummaryCurveCreatorFactoryImpl.h"
#include "RimSummaryPlot.h"
@ -48,18 +47,24 @@ RicEditSummaryPlotFeature::RicEditSummaryPlotFeature()
//--------------------------------------------------------------------------------------------------
void RicEditSummaryPlotFeature::closeDialogAndResetTargetPlot()
{
auto dialog = RicSummaryCurveCreatorFactoryImpl::instance()->dialog();
auto curveCreator = RicSummaryCurveCreatorFactoryImpl::instance()->curveCreator();
auto dialog = RicEditSummaryPlotFeature::curveCreatorDialog();
if (dialog && dialog->isVisible())
{
dialog->hide();
}
if (curveCreator)
{
curveCreator->updateFromSummaryPlot(nullptr);
}
dialog->updateFromSummaryPlot(nullptr);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreatorDialog* RicEditSummaryPlotFeature::curveCreatorDialog()
{
static RicSummaryCurveCreatorDialog* singletonDialog = new RicSummaryCurveCreatorDialog(nullptr);
return singletonDialog;
}
//--------------------------------------------------------------------------------------------------
@ -80,8 +85,7 @@ void RicEditSummaryPlotFeature::onActionTriggered(bool isChecked)
RimProject* project = RiaApplication::instance()->project();
CVF_ASSERT(project);
auto dialog = RicSummaryCurveCreatorFactoryImpl::instance()->dialog();
auto curveCreator = RicSummaryCurveCreatorFactoryImpl::instance()->curveCreator();
auto dialog = RicEditSummaryPlotFeature::curveCreatorDialog();
if (!dialog->isVisible())
{
@ -95,7 +99,7 @@ void RicEditSummaryPlotFeature::onActionTriggered(bool isChecked)
// Set target plot
if (selectedSummaryPlot())
{
curveCreator->updateFromSummaryPlot(selectedSummaryPlot());
dialog->updateFromSummaryPlot(selectedSummaryPlot());
}
}

View File

@ -21,6 +21,7 @@
#include "cafCmdFeature.h"
class RimSummaryPlot;
class RicSummaryCurveCreatorDialog;
//==================================================================================================
///
@ -33,12 +34,15 @@ class RicEditSummaryPlotFeature : public caf::CmdFeature
public:
void closeDialogAndResetTargetPlot();
static RicSummaryCurveCreatorDialog* curveCreatorDialog();
protected:
// Overrides
virtual bool isCommandEnabled();
virtual void onActionTriggered( bool isChecked );
virtual void setupActionLook(QAction* actionToSetup);
private:
RimSummaryPlot* selectedSummaryPlot() const;
};

View File

@ -21,9 +21,9 @@
#include "RiaApplication.h"
#include "RiaPreferences.h"
#include "RicEditSummaryPlotFeature.h"
#include "RicSummaryCurveCreator.h"
#include "RicSummaryCurveCreatorDialog.h"
#include "RicSummaryCurveCreatorFactoryImpl.h"
#include "RimSummaryCurveFilter.h"
#include "RimSummaryPlot.h"
@ -54,8 +54,7 @@ void RicNewSummaryPlotFeature::onActionTriggered(bool isChecked)
RimProject* project = RiaApplication::instance()->project();
CVF_ASSERT(project);
auto dialog = RicSummaryCurveCreatorFactoryImpl::instance()->dialog();
auto curveCreator = RicSummaryCurveCreatorFactoryImpl::instance()->curveCreator();
auto dialog = RicEditSummaryPlotFeature::curveCreatorDialog();
if (!dialog->isVisible())
{
@ -66,7 +65,7 @@ void RicNewSummaryPlotFeature::onActionTriggered(bool isChecked)
dialog->raise();
}
curveCreator->updateFromSummaryPlot(nullptr);
dialog->updateFromSummaryPlot(nullptr);
}
//--------------------------------------------------------------------------------------------------

View File

@ -97,6 +97,12 @@ RicSummaryCurveCreator::RicSummaryCurveCreator()
m_curveNameConfig = new RimSummaryCurveAutoName();
m_curveNameConfig.uiCapability()->setUiHidden(true);
m_curveNameConfig.uiCapability()->setUiTreeChildrenHidden(true);
m_summaryCurveSelectionEditor.reset(new RiuSummaryCurveDefSelectionEditor());
m_summaryCurveSelectionEditor->summaryAddressSelection()->setFieldChangedHandler([this]() { this->selectionEditorFieldChanged(); });
m_summaryCurveSelectionEditor->summaryAddressSelection()->setMultiSelectionMode(true);
}
//--------------------------------------------------------------------------------------------------
@ -136,6 +142,14 @@ void RicSummaryCurveCreator::updateFromSummaryPlot(RimSummaryPlot* targetPlot)
caf::PdmUiItem::updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QWidget* RicSummaryCurveCreator::addressSelectionWidget(QWidget* parent)
{
return m_summaryCurveSelectionEditor->getOrCreateWidget(parent);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -258,6 +272,8 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
uiOrdering.skipRemainingFields(true);
syncPreviewCurvesFromUiSelection();
m_summaryCurveSelectionEditor->updateUi();
}
//--------------------------------------------------------------------------------------------------
@ -265,9 +281,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection()
{
if (!m_selectionEditor) return;
std::vector<RiaSummaryCurveDefinition> allCurveDefinitionsVector = m_selectionEditor->selectedCurveDefinitions();
std::vector<RiaSummaryCurveDefinition> allCurveDefinitionsVector = m_summaryCurveSelectionEditor->summaryAddressSelection()->selectedCurveDefinitions();
std::set<RiaSummaryCurveDefinition> allCurveDefinitions = std::set<RiaSummaryCurveDefinition>(allCurveDefinitionsVector.begin(), allCurveDefinitionsVector.end());
std::vector<RimSummaryCurve*> currentCurvesInPreviewPlot = m_previewPlot->summaryCurves();
@ -460,7 +474,7 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu
curveDefs.push_back(RiaSummaryCurveDefinition(curve->summaryCase(), curve->summaryAddress()));
// Copy curve object to the preview plot
copyCurveAndAddToPlot(curve, m_previewPlot, true);
copyCurveAndAddToPlot(curve, m_previewPlot.get(), true);
}
// Set visibility for imported curves which were not checked in source plot
@ -477,7 +491,7 @@ void RicSummaryCurveCreator::populateCurveCreator(const RimSummaryPlot& sourceSu
curve->setCurveVisiblity(false);
}
m_selectionEditor->setSelectedCurveDefinitions(curveDefs);
m_summaryCurveSelectionEditor->summaryAddressSelection()->setSelectedCurveDefinitions(curveDefs);
updateAppearanceEditor();
}
@ -659,16 +673,6 @@ void RicSummaryCurveCreator::updateCurveNames()
if (m_previewPlot && m_previewPlot->qwtPlot()) m_previewPlot->qwtPlot()->updateLegend();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreator::setCurveDefSelectionObject(RiuSummaryCurveDefSelection* curveDefSelection)
{
m_selectionEditor = curveDefSelection;
m_selectionEditor->setFieldChangedHandler([this]() { this->selectionEditorFieldChanged(); });
m_selectionEditor->setMultiSelectionMode(true);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -59,10 +59,11 @@ public:
RimSummaryPlot* previewPlot() const;
void updateFromSummaryPlot(RimSummaryPlot* targetPlot);
QWidget* addressSelectionWidget(QWidget* parent);
bool isCloseButtonPressed() const;
void clearCloseButton();
void updateCurveNames();
void setCurveDefSelectionObject(RiuSummaryCurveDefSelection* curveDefSelection);
private:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
@ -96,8 +97,6 @@ private:
void selectionEditorFieldChanged();
private:
caf::PdmPointer<RiuSummaryCurveDefSelection> m_selectionEditor;
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;
std::unique_ptr<RimSummaryPlot> m_previewPlot;
@ -115,4 +114,6 @@ private:
caf::PdmField<bool> m_okButtonField;
caf::PdmField<bool> m_applyButtonField;
caf::PdmField<bool> m_closeButtonField;
std::unique_ptr<RiuSummaryCurveDefSelectionEditor> m_summaryCurveSelectionEditor;
};

View File

@ -58,9 +58,9 @@ RicSummaryCurveCreatorDialog::~RicSummaryCurveCreatorDialog()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreatorDialog::setCurveCreator(RicSummaryCurveCreator* summaryCurveCreator)
void RicSummaryCurveCreatorDialog::updateFromSummaryPlot(RimSummaryPlot* summaryPlot)
{
m_curveCreatorSplitterUi->setPdmObject(summaryCurveCreator);
m_curveCreatorSplitterUi->updateFromSummaryPlot(summaryPlot);
m_curveCreatorSplitterUi->updateUi();
}

View File

@ -21,7 +21,7 @@
#include <QDialog>
class RicSummaryCurveCreatorSplitterUi;
class RicSummaryCurveCreator;
class RimSummaryPlot;
//==================================================================================================
///
@ -34,7 +34,7 @@ public:
RicSummaryCurveCreatorDialog(QWidget* parent);
~RicSummaryCurveCreatorDialog();
void setCurveCreator(RicSummaryCurveCreator* summaryCurveCreator);
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
private slots:
void slotDialogFinished();

View File

@ -1,87 +0,0 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016- 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 <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RicSummaryCurveCreatorFactoryImpl.h"
#include "RicSummaryCurveCreator.h"
#include "RicSummaryCurveCreatorDialog.h"
RicSummaryCurveCreatorFactoryImpl* RicSummaryCurveCreatorFactoryImpl::ms_instance = nullptr;
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreatorFactoryImpl::RicSummaryCurveCreatorFactoryImpl()
{
m_dialogWithSplitter = new RicSummaryCurveCreatorDialog(nullptr);
m_curveCreator = nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreatorFactoryImpl::~RicSummaryCurveCreatorFactoryImpl()
{
if (m_dialogWithSplitter != nullptr)
delete m_dialogWithSplitter;
if (m_curveCreator != nullptr)
delete m_curveCreator;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreator* RicSummaryCurveCreatorFactoryImpl::curveCreator()
{
if (m_curveCreator)
{
delete m_curveCreator;
m_curveCreator = nullptr;
}
// Recreate curve creator to make sure initialization is stable
m_curveCreator = new RicSummaryCurveCreator();
if (m_dialogWithSplitter)
{
m_dialogWithSplitter->setCurveCreator(m_curveCreator);
}
return m_curveCreator;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreatorDialog* RicSummaryCurveCreatorFactoryImpl::dialog()
{
if (m_dialogWithSplitter == nullptr)
m_dialogWithSplitter = new RicSummaryCurveCreatorDialog(nullptr);
return m_dialogWithSplitter;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RicSummaryCurveCreatorFactoryImpl* RicSummaryCurveCreatorFactoryImpl::instance()
{
if (ms_instance == nullptr)
ms_instance = new RicSummaryCurveCreatorFactoryImpl();
return ms_instance;
}

View File

@ -1,50 +0,0 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2016- 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 <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafCmdFeature.h"
#include <QPointer>
class RicSummaryCurveCreator;
class RicSummaryCurveCreatorDialog;
namespace caf {
class PdmUiPropertyViewDialog;
}
//==================================================================================================
///
//==================================================================================================
class RicSummaryCurveCreatorFactoryImpl
{
public:
static RicSummaryCurveCreatorFactoryImpl* instance();
virtual ~RicSummaryCurveCreatorFactoryImpl();
RicSummaryCurveCreator* curveCreator();
RicSummaryCurveCreatorDialog* dialog();
private:
RicSummaryCurveCreatorFactoryImpl();
RicSummaryCurveCreator* m_curveCreator;
QPointer<RicSummaryCurveCreatorDialog> m_dialogWithSplitter;
static RicSummaryCurveCreatorFactoryImpl* ms_instance;
};

View File

@ -44,7 +44,10 @@
RicSummaryCurveCreatorSplitterUi::RicSummaryCurveCreatorSplitterUi(QWidget* parent)
{
m_parentWidget = parent;
m_addrSelWidget = std::unique_ptr<RiuSummaryCurveDefSelectionEditor>(new RiuSummaryCurveDefSelectionEditor());
m_summaryCurveCreator.reset(new RicSummaryCurveCreator());
this->setPdmObject(m_summaryCurveCreator.get());
}
//--------------------------------------------------------------------------------------------------
@ -55,28 +58,29 @@ RicSummaryCurveCreatorSplitterUi::~RicSummaryCurveCreatorSplitterUi()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreatorSplitterUi::updateFromSummaryPlot(RimSummaryPlot* summaryPlot)
{
m_summaryCurveCreator->updateFromSummaryPlot(summaryPlot);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems, const QString& uiConfigName)
{
RicSummaryCurveCreator* sumCurveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->pdmItem());
if (sumCurveCreator)
if (m_summaryCurveCreator->isCloseButtonPressed())
{
sumCurveCreator->setCurveDefSelectionObject(m_addrSelWidget->summaryAddressSelection());
m_summaryCurveCreator->clearCloseButton();
if (sumCurveCreator->isCloseButtonPressed())
{
sumCurveCreator->clearCloseButton();
emit signalCloseButtonPressed();
}
emit signalCloseButtonPressed();
}
if (!m_layout) return;
QWidget* addrWidget = m_addrSelWidget->getOrCreateWidget(m_parentWidget);
m_addrSelWidget->summaryAddressSelection()->updateConnectedEditors();
QWidget* addrWidget = m_summaryCurveCreator->addressSelectionWidget(m_parentWidget);
m_firstRowLayout->addWidget(addrWidget);

View File

@ -19,11 +19,12 @@
#pragma once
#include "cafPdmUiWidgetBasedObjectEditor.h"
#include <vector>
#include <memory>
class RimSummaryPlot;
class RicSummaryCurveCreator;
class RiuSummaryCurveDefSelectionEditor;
class QMinimizePanel;
class QSplitter;
@ -50,6 +51,8 @@ public:
RicSummaryCurveCreatorSplitterUi(QWidget* parent);
~RicSummaryCurveCreatorSplitterUi();
void updateFromSummaryPlot(RimSummaryPlot* summaryPlot);
private:
virtual void recursivelyConfigureAndUpdateTopLevelUiItems(const std::vector<caf::PdmUiItem *>& topLevelUiItems,
const QString& uiConfigName) override;
@ -89,5 +92,6 @@ private:
QPointer<caf::PdmUiTreeView> m_curveTreeView;
QWidget* m_parentWidget;
std::unique_ptr<RiuSummaryCurveDefSelectionEditor> m_addrSelWidget;
std::unique_ptr<RicSummaryCurveCreator> m_summaryCurveCreator;
};