mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Merge pull request OPM/CloseMultipleCases
#2934 Delete all selected cases, not just the first one when right cl…
This commit is contained in:
@@ -52,7 +52,7 @@ CAF_CMD_SOURCE_INIT(RicCloseCaseFeature, "RicCloseCaseFeature");
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RicCloseCaseFeature::isCommandEnabled()
|
bool RicCloseCaseFeature::isCommandEnabled()
|
||||||
{
|
{
|
||||||
return selectedEclipseCase() != nullptr || selectedGeoMechCase() != nullptr;
|
return !selectedCases().empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -60,24 +60,44 @@ bool RicCloseCaseFeature::isCommandEnabled()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicCloseCaseFeature::onActionTriggered(bool isChecked)
|
void RicCloseCaseFeature::onActionTriggered(bool isChecked)
|
||||||
{
|
{
|
||||||
RimEclipseCase* eclipseCase = selectedEclipseCase();
|
std::vector<RimCase*> rimCases = selectedCases();
|
||||||
RimGeoMechCase* geoMechCase = selectedGeoMechCase();
|
std::vector<RimEclipseCase*> eclipseCases;
|
||||||
|
std::vector<RimGeoMechCase*> geoMechCases;
|
||||||
|
for (RimCase* rimCase : selectedCases())
|
||||||
|
{
|
||||||
|
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(rimCase);
|
||||||
if (eclipseCase)
|
if (eclipseCase)
|
||||||
{
|
{
|
||||||
std::vector<RimEclipseCase*> casesToBeDeleted;
|
eclipseCases.push_back(eclipseCase);
|
||||||
casesToBeDeleted.push_back(eclipseCase);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RimGeoMechCase* geoMechCase = dynamic_cast<RimGeoMechCase*>(rimCase);
|
||||||
|
if (geoMechCase)
|
||||||
|
{
|
||||||
|
geoMechCases.push_back(geoMechCase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (userConfirmedGridCaseGroupChange(casesToBeDeleted))
|
if (!eclipseCases.empty())
|
||||||
|
{
|
||||||
|
if (userConfirmedGridCaseGroupChange(eclipseCases))
|
||||||
|
{
|
||||||
|
for (RimEclipseCase* eclipseCase : eclipseCases)
|
||||||
{
|
{
|
||||||
deleteEclipseCase(eclipseCase);
|
deleteEclipseCase(eclipseCase);
|
||||||
|
}
|
||||||
RiuMainWindow::instance()->cleanupGuiCaseClose();
|
RiuMainWindow::instance()->cleanupGuiCaseClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (geoMechCase)
|
|
||||||
|
if (!geoMechCases.empty())
|
||||||
|
{
|
||||||
|
for (RimGeoMechCase* geoMechCase : geoMechCases)
|
||||||
{
|
{
|
||||||
deleteGeoMechCase(geoMechCase);
|
deleteGeoMechCase(geoMechCase);
|
||||||
|
}
|
||||||
RiuMainWindow::instance()->cleanupGuiCaseClose();
|
RiuMainWindow::instance()->cleanupGuiCaseClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,33 +115,11 @@ void RicCloseCaseFeature::setupActionLook(QAction* actionToSetup)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimEclipseCase* RicCloseCaseFeature::selectedEclipseCase() const
|
std::vector<RimCase*> RicCloseCaseFeature::selectedCases() const
|
||||||
{
|
{
|
||||||
std::vector<RimEclipseCase*> selection;
|
std::vector<RimCase*> selection;
|
||||||
caf::SelectionManager::instance()->objectsByType(&selection);
|
caf::SelectionManager::instance()->objectsByType(&selection);
|
||||||
|
return selection;
|
||||||
if (selection.size() > 0)
|
|
||||||
{
|
|
||||||
return selection[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
RimGeoMechCase* RicCloseCaseFeature::selectedGeoMechCase() const
|
|
||||||
{
|
|
||||||
std::vector<RimGeoMechCase*> selection;
|
|
||||||
caf::SelectionManager::instance()->objectsByType(&selection);
|
|
||||||
|
|
||||||
if (selection.size() > 0)
|
|
||||||
{
|
|
||||||
return selection[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
class RimEclipseCase;
|
class RimEclipseCase;
|
||||||
class RimGeoMechCase;
|
class RimGeoMechCase;
|
||||||
|
class RimCase;
|
||||||
class RimIdenticalGridCaseGroup;
|
class RimIdenticalGridCaseGroup;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@@ -45,8 +46,7 @@ protected:
|
|||||||
virtual void setupActionLook( QAction* actionToSetup );
|
virtual void setupActionLook( QAction* actionToSetup );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RimEclipseCase* selectedEclipseCase() const;
|
std::vector<RimCase*> selectedCases() const;
|
||||||
RimGeoMechCase* selectedGeoMechCase() const;
|
|
||||||
|
|
||||||
void deleteGeoMechCase(RimGeoMechCase* geoMechCase);
|
void deleteGeoMechCase(RimGeoMechCase* geoMechCase);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user