mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#419) Removed the inapplicable views from the view drop down
This commit is contained in:
parent
749c596cbf
commit
a884d79aff
@ -76,16 +76,33 @@ QList<caf::PdmOptionItemInfo> RimManagedViewConfig::calculateValueOptions(const
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
std::vector<RimView*> views;
|
||||
proj->allVisibleViews(views);
|
||||
proj->allNotLinkedViews(views);
|
||||
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
// Add currently linked view to list
|
||||
if (this->managedView())
|
||||
{
|
||||
views.push_back(this->managedView());
|
||||
}
|
||||
|
||||
RimLinkedViews* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
|
||||
for (size_t i = 0; i< views.size(); i++)
|
||||
{
|
||||
if (views[i] != masterView)
|
||||
if (views[i] != linkedViews->mainView())
|
||||
{
|
||||
optionList.push_back(caf::PdmOptionItemInfo(RimLinkedViews::displayNameForView(views[i]), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
|
||||
RimCase* rimCase = NULL;
|
||||
views[i]->firstAnchestorOrThisOfType(rimCase);
|
||||
QIcon icon;
|
||||
if (rimCase)
|
||||
{
|
||||
icon = rimCase->uiCapability()->uiIcon();
|
||||
}
|
||||
|
||||
optionList.push_back(caf::PdmOptionItemInfo(RimLinkedViews::displayNameForView(views[i]),
|
||||
QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i])),
|
||||
false,
|
||||
icon));
|
||||
}
|
||||
}
|
||||
|
||||
@ -151,12 +168,17 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
|
||||
if (m_managedView)
|
||||
{
|
||||
RimLinkedViews* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
|
||||
if (syncCellResult())
|
||||
{
|
||||
RimLinkedViews* linkedViews = NULL;
|
||||
this->firstAnchestorOrThisOfType(linkedViews);
|
||||
linkedViews->updateCellResult();
|
||||
}
|
||||
if (syncCamera())
|
||||
{
|
||||
m_managedView->notifyCameraHasChanged();
|
||||
}
|
||||
|
||||
name = RimLinkedViews::displayNameForView(m_managedView);
|
||||
}
|
||||
|
@ -464,6 +464,45 @@ void RimProject::allCases(std::vector<RimCase*>& cases)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allNotLinkedViews(std::vector<RimView*>& views)
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
allCases(cases);
|
||||
|
||||
std::vector<RimView*> alreadyLinkedViews;
|
||||
for (size_t i = 0; i < linkedViews().size(); i++)
|
||||
{
|
||||
RimLinkedViews* viewLinker = linkedViews()[i];
|
||||
viewLinker->allViews(alreadyLinkedViews);
|
||||
}
|
||||
|
||||
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++)
|
||||
{
|
||||
bool isLinked = false;
|
||||
for (size_t lnIdx = 0; lnIdx < alreadyLinkedViews.size(); lnIdx++)
|
||||
{
|
||||
if (caseViews[viewIdx] == alreadyLinkedViews[lnIdx])
|
||||
{
|
||||
isLinked = true;
|
||||
}
|
||||
}
|
||||
if (!isLinked)
|
||||
{
|
||||
views.push_back(caseViews[viewIdx]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -81,6 +81,7 @@ public:
|
||||
void assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup);
|
||||
|
||||
void allCases(std::vector<RimCase*>& cases);
|
||||
void allNotLinkedViews(std::vector<RimView*>& views);
|
||||
void allVisibleViews(std::vector<RimView*>& views);
|
||||
|
||||
void createDisplayModelAndRedrawAllViews();
|
||||
|
@ -570,6 +570,8 @@ void RimView::setOverrideRangeFilterCollection(RimCellRangeFilterCollection* rfc
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimView::notifyCameraHasChanged()
|
||||
{
|
||||
if (!this->viewer()) return;
|
||||
|
||||
std::vector<RimView*> viewsToUpdate;
|
||||
|
||||
viewsToUpdate.push_back(this);
|
||||
|
Loading…
Reference in New Issue
Block a user