#1728 Can close all summary cases within one collection

This commit is contained in:
Unknown
2017-09-05 15:48:06 +02:00
committed by Rebecca Cox
parent e1ab73da30
commit a4aa06b75c
6 changed files with 156 additions and 28 deletions

View File

@@ -34,6 +34,7 @@
#include <QAction>
CAF_CMD_SOURCE_INIT(RicCloseSummaryCaseFeature, "RicCloseSummaryCaseFeature");
@@ -46,6 +47,37 @@ void RicCloseSummaryCaseFeature::setupActionLook(QAction* actionToSetup)
actionToSetup->setIcon(QIcon(":/Erase.png"));
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicCloseSummaryCaseFeature::deleteSummaryCases(const std::vector<RimSummaryCase*>& cases)
{
RimProject* project = RiaApplication::instance()->project();
CVF_ASSERT(project);
RimMainPlotCollection* mainPlotColl = project->mainPlotCollection();
CVF_ASSERT(mainPlotColl);
RimSummaryPlotCollection* summaryPlotColl = mainPlotColl->summaryPlotCollection();
CVF_ASSERT(summaryPlotColl);
for (RimSummaryCase* summaryCase : cases)
{
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
{
summaryPlot->removeCurveAssosiatedWithCase(summaryCase);
}
summaryPlotColl->updateConnectedEditors();
RimSummaryCaseCollection* summaryCaseCollection = nullptr;
summaryCase->firstAncestorOrThisOfTypeAsserted(summaryCaseCollection);
summaryCaseCollection->deleteCase(summaryCase);
delete summaryCase;
summaryCaseCollection->updateConnectedEditors();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -53,6 +85,7 @@ bool RicCloseSummaryCaseFeature::isCommandEnabled()
{
std::vector<RimSummaryCase*> selection;
caf::SelectionManager::instance()->objectsByType(&selection);
return (selection.size() > 0);
}
@@ -64,29 +97,6 @@ void RicCloseSummaryCaseFeature::onActionTriggered(bool isChecked)
std::vector<RimSummaryCase*> selection;
caf::SelectionManager::instance()->objectsByType(&selection);
CVF_ASSERT(selection.size() > 0);
RimProject* project = RiaApplication::instance()->project();
CVF_ASSERT(project);
RimMainPlotCollection* mainPlotColl = project->mainPlotCollection();
CVF_ASSERT(mainPlotColl);
RimSummaryPlotCollection* summaryPlotColl = mainPlotColl->summaryPlotCollection();
CVF_ASSERT(summaryPlotColl);
for (RimSummaryCase* summaryCase : selection)
{
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
{
summaryPlot->removeCurveAssosiatedWithCase(summaryCase);
}
summaryPlotColl->updateConnectedEditors();
RimSummaryCaseCollection* summaryCaseCollection = nullptr;
summaryCase->firstAncestorOrThisOfTypeAsserted(summaryCaseCollection);
summaryCaseCollection->deleteCase(summaryCase);
delete summaryCase;
summaryCaseCollection->updateConnectedEditors();
}
RicCloseSummaryCaseFeature::deleteSummaryCases(selection);
}