mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added LinkVisibleViewsFeature, and added action to draw toolbar
This commit is contained in:
@@ -44,7 +44,6 @@ RimManagedViewCollection::RimManagedViewCollection(void)
|
||||
CAF_PDM_InitObject("Managed Views", ":/chain.png", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&managedViews, "ManagedViews", "Managed Views", "", "", "");
|
||||
managedViews.push_back(new RimManagedViewConfig);
|
||||
managedViews.uiCapability()->setUiHidden(true);
|
||||
}
|
||||
|
||||
@@ -234,3 +233,19 @@ void RimManagedViewCollection::allManagedViews(std::vector<RimView*>& views)
|
||||
managedViews[i]->allManagedViews(views);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::applyAllOperations()
|
||||
{
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
configureOverrides();
|
||||
|
||||
updateCellResult();
|
||||
updateTimeStep(masterView->currentTimeStep());
|
||||
updateRangeFilters();
|
||||
updatePropertyFilters();
|
||||
}
|
||||
|
||||
@@ -41,7 +41,9 @@ public:
|
||||
RimManagedViewCollection(void);
|
||||
virtual ~RimManagedViewCollection(void);
|
||||
|
||||
caf::PdmChildArrayField<RimManagedViewConfig*> managedViews;
|
||||
caf::PdmChildArrayField<RimManagedViewConfig*> managedViews;
|
||||
|
||||
void applyAllOperations();
|
||||
|
||||
void updateTimeStep(int timeStep);
|
||||
void updateCellResult();
|
||||
@@ -51,6 +53,5 @@ public:
|
||||
|
||||
void configureOverrides();
|
||||
|
||||
void allManagedViews(std::vector<RimView*>& views);
|
||||
|
||||
void allManagedViews(std::vector<RimView*>& views);
|
||||
};
|
||||
|
||||
@@ -73,12 +73,19 @@ QList<caf::PdmOptionItemInfo> RimManagedViewConfig::calculateValueOptions(const
|
||||
|
||||
if (fieldNeedingOptions == &managedView)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
std::vector<RimView*> views;
|
||||
allVisibleViews(views);
|
||||
proj->allVisibleViews(views);
|
||||
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
for (size_t i = 0; i< views.size(); i++)
|
||||
{
|
||||
optionList.push_back(caf::PdmOptionItemInfo(displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||
if (views[i] != masterView)
|
||||
{
|
||||
optionList.push_back(caf::PdmOptionItemInfo(displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||
}
|
||||
}
|
||||
|
||||
if (optionList.size() > 0)
|
||||
@@ -90,36 +97,6 @@ QList<caf::PdmOptionItemInfo> RimManagedViewConfig::calculateValueOptions(const
|
||||
return optionList;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewConfig::allVisibleViews(std::vector<RimView*>& views)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
if (proj)
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
proj->allCases(cases);
|
||||
for (size_t caseIdx = 0; caseIdx < cases.size(); caseIdx++)
|
||||
{
|
||||
RimCase* rimCase = cases[caseIdx];
|
||||
|
||||
std::vector<RimView*> caseViews = rimCase->views();
|
||||
for (size_t viewIdx = 0; viewIdx < caseViews.size(); viewIdx++)
|
||||
{
|
||||
if (caseViews[viewIdx]->viewer() && caseViews[viewIdx] != masterView)
|
||||
{
|
||||
views.push_back(caseViews[viewIdx]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -49,8 +49,7 @@ public:
|
||||
caf::PdmField<bool> syncRangeFilters;
|
||||
caf::PdmField<bool> syncPropertyFilters;
|
||||
|
||||
void configureOverrides();
|
||||
|
||||
void configureOverrides();
|
||||
void allManagedViews(std::vector<RimView*>& views);
|
||||
|
||||
protected:
|
||||
@@ -62,7 +61,6 @@ protected:
|
||||
|
||||
|
||||
private:
|
||||
void allVisibleViews(std::vector<RimView*>& views);
|
||||
void configureOverridesUpdateDisplayModel();
|
||||
|
||||
RimEclipseView* managedEclipseView();
|
||||
|
||||
@@ -458,6 +458,29 @@ void RimProject::allCases(std::vector<RimCase*>& cases)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allVisibleViews(std::vector<RimView*>& views)
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
allCases(cases);
|
||||
|
||||
for (size_t caseIdx = 0; caseIdx < cases.size(); caseIdx++)
|
||||
{
|
||||
RimCase* rimCase = cases[caseIdx];
|
||||
if (!rimCase) continue;
|
||||
|
||||
std::vector<RimView*> caseViews = rimCase->views();
|
||||
for (size_t viewIdx = 0; viewIdx < caseViews.size(); viewIdx++)
|
||||
{
|
||||
if (caseViews[viewIdx] && caseViews[viewIdx]->viewer())
|
||||
{
|
||||
views.push_back(caseViews[viewIdx]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
|
||||
@@ -37,6 +37,7 @@ class RimOilField;
|
||||
class RimScriptCollection;
|
||||
class RimWellPathImport;
|
||||
class RimMainPlotCollection;
|
||||
class RimView;
|
||||
|
||||
namespace caf
|
||||
{
|
||||
@@ -77,7 +78,9 @@ public:
|
||||
void assignCaseIdToCase(RimCase* reservoirCase);
|
||||
void assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup);
|
||||
|
||||
void allCases(std::vector<RimCase*>& cases);
|
||||
void allCases(std::vector<RimCase*>& cases);
|
||||
void allVisibleViews(std::vector<RimView*>& views);
|
||||
|
||||
void createDisplayModelAndRedrawAllViews();
|
||||
|
||||
void computeUtmAreaOfInterest();
|
||||
|
||||
Reference in New Issue
Block a user