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();
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
std::vector<RimView*> views;
|
std::vector<RimView*> views;
|
||||||
proj->allVisibleViews(views);
|
proj->allNotLinkedViews(views);
|
||||||
|
|
||||||
RimView* masterView = NULL;
|
// Add currently linked view to list
|
||||||
firstAnchestorOrThisOfType(masterView);
|
if (this->managedView())
|
||||||
|
{
|
||||||
|
views.push_back(this->managedView());
|
||||||
|
}
|
||||||
|
|
||||||
|
RimLinkedViews* linkedViews = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
|
||||||
for (size_t i = 0; i< views.size(); i++)
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,13 +167,18 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
configureOverridesUpdateDisplayModel();
|
configureOverridesUpdateDisplayModel();
|
||||||
|
|
||||||
if (m_managedView)
|
if (m_managedView)
|
||||||
{
|
|
||||||
if (syncCellResult())
|
|
||||||
{
|
{
|
||||||
RimLinkedViews* linkedViews = NULL;
|
RimLinkedViews* linkedViews = NULL;
|
||||||
this->firstAnchestorOrThisOfType(linkedViews);
|
this->firstAnchestorOrThisOfType(linkedViews);
|
||||||
|
|
||||||
|
if (syncCellResult())
|
||||||
|
{
|
||||||
linkedViews->updateCellResult();
|
linkedViews->updateCellResult();
|
||||||
}
|
}
|
||||||
|
if (syncCamera())
|
||||||
|
{
|
||||||
|
m_managedView->notifyCameraHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
name = RimLinkedViews::displayNameForView(m_managedView);
|
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 assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup);
|
||||||
|
|
||||||
void allCases(std::vector<RimCase*>& cases);
|
void allCases(std::vector<RimCase*>& cases);
|
||||||
|
void allNotLinkedViews(std::vector<RimView*>& views);
|
||||||
void allVisibleViews(std::vector<RimView*>& views);
|
void allVisibleViews(std::vector<RimView*>& views);
|
||||||
|
|
||||||
void createDisplayModelAndRedrawAllViews();
|
void createDisplayModelAndRedrawAllViews();
|
||||||
|
@ -570,6 +570,8 @@ void RimView::setOverrideRangeFilterCollection(RimCellRangeFilterCollection* rfc
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimView::notifyCameraHasChanged()
|
void RimView::notifyCameraHasChanged()
|
||||||
{
|
{
|
||||||
|
if (!this->viewer()) return;
|
||||||
|
|
||||||
std::vector<RimView*> viewsToUpdate;
|
std::vector<RimView*> viewsToUpdate;
|
||||||
|
|
||||||
viewsToUpdate.push_back(this);
|
viewsToUpdate.push_back(this);
|
||||||
|
Loading…
Reference in New Issue
Block a user