#1840 Summary case: Simplified code based on user input

This commit is contained in:
Rebecca Cox
2017-09-11 10:44:26 +02:00
parent c60465b380
commit d1561936b3
2 changed files with 44 additions and 65 deletions

View File

@@ -54,11 +54,6 @@ void RicDeleteSummaryCaseCollectionFeature::deleteSummaryCaseCollection(RimSumma
} }
summaryPlotColl->updateConnectedEditors(); summaryPlotColl->updateConnectedEditors();
/*RimSummaryCaseMainCollection* summaryCaseMainCollection = nullptr;
caseCollection->firstAncestorOrThisOfTypeAsserted(summaryCaseMainCollection);
summaryCaseMainCollection->removeCaseCollection(caseCollection);
delete caseCollection;*/
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -79,22 +74,49 @@ void RicDeleteSummaryCaseCollectionFeature::onActionTriggered(bool isChecked)
{ {
std::vector<RimSummaryCaseCollection*> selection; std::vector<RimSummaryCaseCollection*> selection;
caf::SelectionManager::instance()->objectsByType(&selection); caf::SelectionManager::instance()->objectsByType(&selection);
if (selection.size() == 0) return;
bool userConfirmedClosingOfGroup = askUserWhereToPutTheSummaryCases(selection);
if (userConfirmedClosingOfGroup) QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Question);
QString questionText;
questionText = QString("Do you also want to close the summary cases in the group?");
msgBox.setText(questionText);
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
int ret = msgBox.exec();
if (ret == QMessageBox::Cancel)
{ {
RimSummaryCaseMainCollection* summaryCaseMainCollection = nullptr; return;
selection[0]->firstAncestorOrThisOfTypeAsserted(summaryCaseMainCollection);
for (RimSummaryCaseCollection* caseCollection : selection)
{
summaryCaseMainCollection->removeCaseCollection(caseCollection);
delete caseCollection;
}
summaryCaseMainCollection->updateConnectedEditors();
} }
if (ret == QMessageBox::Yes)
{
for (RimSummaryCaseCollection* summaryCaseCollection : selection)
{
RicDeleteSummaryCaseCollectionFeature::deleteSummaryCaseCollection(summaryCaseCollection);
}
}
else if (ret == QMessageBox::No)
{
for (RimSummaryCaseCollection* summaryCaseCollection : selection)
{
RicDeleteSummaryCaseCollectionFeature::moveAllCasesToMainSummaryCollection(summaryCaseCollection);
}
}
RimSummaryCaseMainCollection* summaryCaseMainCollection = nullptr;
selection[0]->firstAncestorOrThisOfTypeAsserted(summaryCaseMainCollection);
for (RimSummaryCaseCollection* caseCollection : selection)
{
summaryCaseMainCollection->removeCaseCollection(caseCollection);
delete caseCollection;
}
summaryCaseMainCollection->updateConnectedEditors();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -109,45 +131,7 @@ void RicDeleteSummaryCaseCollectionFeature::setupActionLook(QAction* actionToSet
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RicDeleteSummaryCaseCollectionFeature::askUserWhereToPutTheSummaryCases(std::vector<RimSummaryCaseCollection*> selectedSummaryCases) void RicDeleteSummaryCaseCollectionFeature::moveAllCasesToMainSummaryCollection(RimSummaryCaseCollection* summaryCaseCollection)
{
QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Question);
QString questionText;
questionText = QString("Do you also want to close the summary cases in the group?");
msgBox.setText(questionText);
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
int ret = msgBox.exec();
if (ret == QMessageBox::Yes)
{
for (RimSummaryCaseCollection* summaryCaseCollection : selectedSummaryCases)
{
RicDeleteSummaryCaseCollectionFeature::deleteSummaryCaseCollection(summaryCaseCollection);
}
return true;
}
else if (ret == QMessageBox::No)
{
for (RimSummaryCaseCollection* summaryCaseCollection : selectedSummaryCases)
{
RicDeleteSummaryCaseCollectionFeature::moveSummaryCasesFromSummaryCollectionToMainSummaryCollection(summaryCaseCollection);
}
return true;
}
else
{
return false;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicDeleteSummaryCaseCollectionFeature::moveSummaryCasesFromSummaryCollectionToMainSummaryCollection(RimSummaryCaseCollection* summaryCaseCollection)
{ {
std::vector<RimSummaryCase*> summaryCases = summaryCaseCollection->allSummaryCases(); std::vector<RimSummaryCase*> summaryCases = summaryCaseCollection->allSummaryCases();
if (summaryCases.size() < 0) return; if (summaryCases.size() < 0) return;

View File

@@ -31,16 +31,11 @@ class RicDeleteSummaryCaseCollectionFeature : public caf::CmdFeature
{ {
CAF_CMD_HEADER_INIT; CAF_CMD_HEADER_INIT;
public:
static void deleteSummaryCaseCollection(RimSummaryCaseCollection* caseCollection);
static void moveSummaryCasesFromSummaryCollectionToMainSummaryCollection(RimSummaryCaseCollection* summaryCaseCollection);
private: private:
bool askUserWhereToPutTheSummaryCases(std::vector<RimSummaryCaseCollection*> selectedSummaryCases);
protected:
// Overrides
virtual bool isCommandEnabled() override; virtual bool isCommandEnabled() override;
virtual void onActionTriggered(bool isChecked) override; virtual void onActionTriggered(bool isChecked) override;
virtual void setupActionLook(QAction* actionToSetup) override; virtual void setupActionLook(QAction* actionToSetup) override;
static void deleteSummaryCaseCollection(RimSummaryCaseCollection* caseCollection);
static void moveAllCasesToMainSummaryCollection(RimSummaryCaseCollection* summaryCaseCollection);
}; };