mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Linked Views: Refactored and cleaned up more. Refactored some features.
This commit is contained in:
@@ -42,24 +42,24 @@ bool RicLinkViewFeature::isCommandEnabled()
|
|||||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
if (!activeView) return false;
|
if (!activeView) return false;
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimViewController* viewController = activeView->controllingViewLink();
|
||||||
if (!proj->findViewLinkerFromView(activeView))
|
|
||||||
|
if(viewController)
|
||||||
{
|
{
|
||||||
RimViewLinkerCollection* viewLinkerCollection = proj->viewLinkerCollection();
|
return false;
|
||||||
if (viewLinkerCollection)
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
RimViewLinker* viewLinker = viewLinkerCollection->viewLinker();
|
RimViewLinker* vLinker = RimViewLinker::viewLinkerIfMainView(activeView);
|
||||||
if (viewLinker)
|
if (!vLinker)
|
||||||
{
|
|
||||||
if (viewLinker->viewLinks().size() > 0)
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
}
|
{
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -125,29 +125,9 @@ void RicLinkVisibleViewsFeature::findNotLinkedVisibleViews(std::vector<RimView*>
|
|||||||
void RicLinkVisibleViewsFeature::linkViews(std::vector<RimView*>& views)
|
void RicLinkVisibleViewsFeature::linkViews(std::vector<RimView*>& views)
|
||||||
{
|
{
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimProject* proj = RiaApplication::instance()->project();
|
||||||
RimViewLinker* viewLinker = NULL;
|
RimViewLinker* viewLinker = proj->viewLinkerCollection->viewLinker();
|
||||||
|
|
||||||
if (proj->viewLinkerCollection->viewLinker())
|
if (!viewLinker)
|
||||||
{
|
|
||||||
// We have a view linker, add not already linked views
|
|
||||||
viewLinker = proj->viewLinkerCollection->viewLinker();
|
|
||||||
|
|
||||||
for (size_t i = 0; i < views.size(); i++)
|
|
||||||
{
|
|
||||||
RimView* rimView = views[i];
|
|
||||||
if (rimView == viewLinker->masterView()) continue;
|
|
||||||
|
|
||||||
RimViewController* viewLink = new RimViewController;
|
|
||||||
viewLink->setManagedView(rimView);
|
|
||||||
|
|
||||||
viewLinker->viewLinks.push_back(viewLink);
|
|
||||||
|
|
||||||
viewLink->initAfterReadRecursively();
|
|
||||||
viewLink->updateOptionSensitivity();
|
|
||||||
viewLink->updateUiIconFromActiveState();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// Create a new view linker
|
// Create a new view linker
|
||||||
|
|
||||||
@@ -167,35 +147,23 @@ void RicLinkVisibleViewsFeature::linkViews(std::vector<RimView*>& views)
|
|||||||
viewLinker = new RimViewLinker;
|
viewLinker = new RimViewLinker;
|
||||||
proj->viewLinkerCollection()->viewLinker = viewLinker;
|
proj->viewLinkerCollection()->viewLinker = viewLinker;
|
||||||
viewLinker->setMasterView(masterView);
|
viewLinker->setMasterView(masterView);
|
||||||
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < views.size(); i++)
|
for (size_t i = 0; i < views.size(); i++)
|
||||||
{
|
{
|
||||||
RimView* rimView = views[i];
|
RimView* rimView = views[i];
|
||||||
if (rimView == masterView) continue;
|
if (rimView == viewLinker->masterView()) continue;
|
||||||
|
|
||||||
RimViewController* viewLink = new RimViewController;
|
viewLinker->addDependentView(rimView);
|
||||||
viewLink->setManagedView(rimView);
|
|
||||||
|
|
||||||
viewLinker->viewLinks.push_back(viewLink);
|
|
||||||
|
|
||||||
viewLink->initAfterReadRecursively();
|
|
||||||
viewLink->updateOptionSensitivity();
|
|
||||||
viewLink->updateUiIconFromActiveState();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
viewLinker->updateUiIcon();
|
viewLinker->updateUiNameAndIcon();
|
||||||
|
|
||||||
}
|
viewLinker->updateDependentViews();
|
||||||
|
|
||||||
viewLinker->applyAllOperations();
|
|
||||||
proj->viewLinkerCollection.uiCapability()->updateConnectedEditors();
|
proj->viewLinkerCollection.uiCapability()->updateConnectedEditors();
|
||||||
proj->updateConnectedEditors();
|
proj->updateConnectedEditors();
|
||||||
|
|
||||||
// Set managed view collection to selected and expanded in project tree
|
RiuMainWindow::instance()->projectTreeView()->setExpanded(viewLinker, true);
|
||||||
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
|
||||||
QModelIndex modIndex = projTreeView->findModelIndex(viewLinker);
|
|
||||||
projTreeView->treeView()->setCurrentIndex(modIndex);
|
|
||||||
|
|
||||||
projTreeView->treeView()->setExpanded(modIndex, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,51 +70,18 @@ void RicSetMasterViewFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
RimView* previousMasterView = viewLinker->masterView();
|
RimView* previousMasterView = viewLinker->masterView();
|
||||||
|
|
||||||
RimViewController* previousViewLink = RimViewLinker::viewLinkForView(activeView);
|
|
||||||
if (previousViewLink)
|
|
||||||
{
|
|
||||||
size_t indexToErase = cvf::UNDEFINED_SIZE_T;
|
|
||||||
for (size_t i = 0; i < viewLinker->viewLinks.size(); i++)
|
|
||||||
{
|
|
||||||
if (viewLinker->viewLinks()[i] == previousViewLink)
|
|
||||||
{
|
|
||||||
indexToErase = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (indexToErase != cvf::UNDEFINED_SIZE_T)
|
|
||||||
{
|
|
||||||
viewLinker->viewLinks().erase(indexToErase);
|
|
||||||
}
|
|
||||||
|
|
||||||
delete previousViewLink;
|
|
||||||
}
|
|
||||||
|
|
||||||
viewLinker->removeOverrides();
|
|
||||||
viewLinker->setMasterView(activeView);
|
viewLinker->setMasterView(activeView);
|
||||||
|
viewLinker->addDependentView(previousMasterView);
|
||||||
|
|
||||||
if (previousMasterView)
|
viewLinker->updateDependentViews();
|
||||||
{
|
|
||||||
RimViewController* viewLink = new RimViewController;
|
|
||||||
viewLink->setManagedView(previousMasterView);
|
|
||||||
|
|
||||||
viewLinker->viewLinks.push_back(viewLink);
|
|
||||||
|
|
||||||
viewLink->initAfterReadRecursively();
|
|
||||||
viewLink->updateOptionSensitivity();
|
|
||||||
viewLink->updateUiIconFromActiveState();
|
|
||||||
}
|
|
||||||
|
|
||||||
viewLinker->applyAllOperations();
|
|
||||||
proj->viewLinkerCollection.uiCapability()->updateConnectedEditors();
|
proj->viewLinkerCollection.uiCapability()->updateConnectedEditors();
|
||||||
proj->updateConnectedEditors();
|
proj->updateConnectedEditors();
|
||||||
|
|
||||||
// Set managed view collection to selected and expanded in project tree
|
// Set managed view collection to selected and expanded in project tree
|
||||||
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
||||||
QModelIndex modIndex = projTreeView->findModelIndex(viewLinker);
|
projTreeView->selectAsCurrentItem(viewLinker);
|
||||||
projTreeView->treeView()->setCurrentIndex(modIndex);
|
projTreeView->setExpanded(viewLinker, true);
|
||||||
|
|
||||||
projTreeView->treeView()->setExpanded(modIndex, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -42,8 +42,9 @@ bool RicShowLinkOptionsFeature::isCommandEnabled()
|
|||||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
if (!activeView) return false;
|
if (!activeView) return false;
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimViewController* viewController = activeView->controllingViewLink();
|
||||||
if (proj->findViewLinkerFromView(activeView))
|
|
||||||
|
if (viewController)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -59,28 +60,9 @@ void RicShowLinkOptionsFeature::onActionTriggered(bool isChecked)
|
|||||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
if (!activeView) return;
|
if (!activeView) return;
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimViewController* viewController = activeView->controllingViewLink();
|
||||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
|
||||||
if (viewLinker)
|
|
||||||
{
|
|
||||||
if (viewLinker->masterView() == activeView)
|
|
||||||
{
|
|
||||||
RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(viewLinker);
|
|
||||||
|
|
||||||
return;
|
RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(viewController);
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < viewLinker->viewLinks.size(); i++)
|
|
||||||
{
|
|
||||||
RimViewController* viewLink = viewLinker->viewLinks[i];
|
|
||||||
if (viewLink->managedView() == activeView)
|
|
||||||
{
|
|
||||||
RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(viewLink);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -40,19 +40,15 @@ bool RicUnLinkViewFeature::isCommandEnabled()
|
|||||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
if (!activeView) return false;
|
if (!activeView) return false;
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimViewController* viewController = activeView->controllingViewLink();
|
||||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
|
||||||
if (viewLinker)
|
|
||||||
{
|
|
||||||
if (viewLinker->masterView() == activeView)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (viewController)
|
||||||
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -63,16 +59,8 @@ void RicUnLinkViewFeature::onActionTriggered(bool isChecked)
|
|||||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
if (!activeView) return;
|
if (!activeView) return;
|
||||||
|
|
||||||
RimProject* proj = RiaApplication::instance()->project();
|
RimViewController* viewController = activeView->controllingViewLink();
|
||||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
caf::SelectionManager::instance()->setSelectedItem(viewController);
|
||||||
if (viewLinker)
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < viewLinker->viewLinks.size(); i++)
|
|
||||||
{
|
|
||||||
RimViewController* viewLink = viewLinker->viewLinks[i];
|
|
||||||
if (viewLink->managedView() == activeView)
|
|
||||||
{
|
|
||||||
caf::SelectionManager::instance()->setSelectedItem(viewLink);
|
|
||||||
|
|
||||||
caf::CmdFeature* feature = caf::CmdFeatureManager::instance()->getCommandFeature("RicDeleteItemFeature");
|
caf::CmdFeature* feature = caf::CmdFeatureManager::instance()->getCommandFeature("RicDeleteItemFeature");
|
||||||
if (feature)
|
if (feature)
|
||||||
@@ -81,9 +69,6 @@ void RicUnLinkViewFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ void RimViewController::fieldChangedByUi(const caf::PdmFieldHandle* changedField
|
|||||||
{
|
{
|
||||||
if (changedField == &isActive)
|
if (changedField == &isActive)
|
||||||
{
|
{
|
||||||
updateUiIconFromActiveState();
|
updateDisplayNameAndIcon();
|
||||||
if (syncCamera()) doSyncCamera();
|
if (syncCamera()) doSyncCamera();
|
||||||
if (syncTimeStep()) doSyncTimeStep();
|
if (syncTimeStep()) doSyncTimeStep();
|
||||||
if (syncCellResult()) doSyncCellResult();
|
if (syncCellResult()) doSyncCellResult();
|
||||||
@@ -228,7 +228,6 @@ void RimViewController::fieldChangedByUi(const caf::PdmFieldHandle* changedField
|
|||||||
|
|
||||||
updateOptionSensitivity();
|
updateOptionSensitivity();
|
||||||
updateDisplayNameAndIcon();
|
updateDisplayNameAndIcon();
|
||||||
updateUiIconFromActiveState();
|
|
||||||
|
|
||||||
name.uiCapability()->updateConnectedEditors();
|
name.uiCapability()->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
@@ -246,7 +245,6 @@ void RimViewController::initAfterRead()
|
|||||||
{
|
{
|
||||||
configureOverrides();
|
configureOverrides();
|
||||||
updateDisplayNameAndIcon();
|
updateDisplayNameAndIcon();
|
||||||
updateUiIconFromActiveState();
|
|
||||||
updateOptionSensitivity();
|
updateOptionSensitivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,20 +456,13 @@ void RimViewController::removeOverrides()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimViewController::updateUiIconFromActiveState()
|
|
||||||
{
|
|
||||||
RimViewLinker::applyIconEnabledState(this, m_originalIcon, !isActive());
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewController::updateDisplayNameAndIcon()
|
void RimViewController::updateDisplayNameAndIcon()
|
||||||
{
|
{
|
||||||
RimViewLinker::findNameAndIconFromView(&name.v(), &m_originalIcon, managedView());
|
RimViewLinker::findNameAndIconFromView(&name.v(), &m_originalIcon, managedView());
|
||||||
|
RimViewLinker::applyIconEnabledState(this, m_originalIcon, !isActive());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ public:
|
|||||||
void updateOptionSensitivity();
|
void updateOptionSensitivity();
|
||||||
void removeOverrides();
|
void removeOverrides();
|
||||||
|
|
||||||
void updateUiIconFromActiveState();
|
|
||||||
void updateDisplayNameAndIcon();
|
void updateDisplayNameAndIcon();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -188,37 +188,18 @@ void RimViewLinker::updateCellResult()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimViewLinker::updateRangeFilters()
|
|
||||||
{
|
|
||||||
if (!isActive()) return;
|
|
||||||
|
|
||||||
this->scheduleGeometryRegenForDepViews(RANGE_FILTERED);
|
|
||||||
this->scheduleGeometryRegenForDepViews(RANGE_FILTERED_INACTIVE);
|
|
||||||
this->scheduleCreateDisplayModelAndRedrawForDependentViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewLinker::updatePropertyFilters()
|
void RimViewLinker::updateOverrides()
|
||||||
{
|
{
|
||||||
if (!isActive()) return;
|
bool isViewlinkerActive = this->isActive();
|
||||||
this->scheduleGeometryRegenForDepViews(PROPERTY_FILTERED);
|
|
||||||
this->scheduleCreateDisplayModelAndRedrawForDependentViews();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimViewLinker::configureOverrides()
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < viewLinks.size(); i++)
|
for (size_t i = 0; i < viewLinks.size(); i++)
|
||||||
{
|
{
|
||||||
RimViewController* viewLink = viewLinks[i];
|
RimViewController* viewLink = viewLinks[i];
|
||||||
if (viewLink->isActive)
|
if (isViewlinkerActive && viewLink->isActive)
|
||||||
{
|
{
|
||||||
viewLink->configureOverrides();
|
viewLink->configureOverrides();
|
||||||
}
|
}
|
||||||
@@ -229,6 +210,20 @@ void RimViewLinker::configureOverrides()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimViewLinker::removeOverrides()
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < viewLinks.size(); i++)
|
||||||
|
{
|
||||||
|
if (viewLinks[i]->managedView())
|
||||||
|
{
|
||||||
|
viewLinks[i]->removeOverrides();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -253,14 +248,13 @@ void RimViewLinker::allViewsForCameraSync(RimView* source, std::vector<RimView*>
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewLinker::applyAllOperations()
|
void RimViewLinker::updateDependentViews()
|
||||||
{
|
{
|
||||||
configureOverrides();
|
updateOverrides();
|
||||||
|
|
||||||
updateCellResult();
|
updateCellResult();
|
||||||
updateTimeStep(m_masterView, m_masterView->currentTimeStep());
|
updateTimeStep(m_masterView, m_masterView->currentTimeStep());
|
||||||
updateRangeFilters();
|
|
||||||
updatePropertyFilters();
|
|
||||||
updateScaleZ(m_masterView, m_masterView->scaleZ());
|
updateScaleZ(m_masterView, m_masterView->scaleZ());
|
||||||
updateCamera(m_masterView);
|
updateCamera(m_masterView);
|
||||||
}
|
}
|
||||||
@@ -288,10 +282,20 @@ QString RimViewLinker::displayNameForView(RimView* view)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewLinker::setMasterView(RimView* view)
|
void RimViewLinker::setMasterView(RimView* view)
|
||||||
{
|
{
|
||||||
|
RimViewController* previousViewLink = RimViewLinker::viewLinkForView(view);
|
||||||
|
|
||||||
|
// Remove the view as dependent view
|
||||||
|
if (previousViewLink)
|
||||||
|
{
|
||||||
|
this->viewLinks.removeChildObject(previousViewLink);
|
||||||
|
delete previousViewLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->removeOverrides();
|
||||||
|
|
||||||
m_masterView = view;
|
m_masterView = view;
|
||||||
|
|
||||||
setNameAndIcon();
|
updateUiNameAndIcon();
|
||||||
updateUiIcon();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -323,8 +327,7 @@ void RimViewLinker::allViews(std::vector<RimView*>& views)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewLinker::initAfterRead()
|
void RimViewLinker::initAfterRead()
|
||||||
{
|
{
|
||||||
setNameAndIcon();
|
updateUiNameAndIcon();
|
||||||
updateUiIcon();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -384,20 +387,14 @@ void RimViewLinker::applyIconEnabledState(caf::PdmObject* obj, const QIcon& icon
|
|||||||
obj->setUiIcon(newIcon);
|
obj->setUiIcon(newIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimViewLinker::updateUiIcon()
|
|
||||||
{
|
|
||||||
RimViewLinker::applyIconEnabledState(this, m_originalIcon, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimViewLinker::setNameAndIcon()
|
void RimViewLinker::updateUiNameAndIcon()
|
||||||
{
|
{
|
||||||
RimViewLinker::findNameAndIconFromView(&m_name.v(), &m_originalIcon, m_masterView);
|
RimViewLinker::findNameAndIconFromView(&m_name.v(), &m_originalIcon, m_masterView);
|
||||||
|
RimViewLinker::applyIconEnabledState(this, m_originalIcon, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -448,19 +445,6 @@ void RimViewLinker::scheduleCreateDisplayModelAndRedrawForDependentViews()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimViewLinker::removeOverrides()
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < viewLinks.size(); i++)
|
|
||||||
{
|
|
||||||
if (viewLinks[i]->managedView())
|
|
||||||
{
|
|
||||||
viewLinks[i]->removeOverrides();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
@@ -559,7 +543,7 @@ void RimViewLinker::updateCamera(RimView* sourceView)
|
|||||||
|
|
||||||
if (!isActive()) return;
|
if (!isActive()) return;
|
||||||
|
|
||||||
RimViewController* viewLink = RimViewLinker::viewLinkForView(sourceView);
|
RimViewController* viewLink = sourceView->controllingViewLink();
|
||||||
if (viewLink)
|
if (viewLink)
|
||||||
{
|
{
|
||||||
if ((!viewLink->isActive() || !viewLink->syncCamera()))
|
if ((!viewLink->isActive() || !viewLink->syncCamera()))
|
||||||
@@ -679,3 +663,31 @@ bool RimViewLinker::isBoundingBoxesOverlappingOrClose(const cvf::BoundingBox& so
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimViewLinker::addDependentView(RimView* view)
|
||||||
|
{
|
||||||
|
CVF_ASSERT(view && view != m_masterView);
|
||||||
|
|
||||||
|
RimViewController* viewLink = new RimViewController;
|
||||||
|
this->viewLinks.push_back(viewLink);
|
||||||
|
|
||||||
|
viewLink->setManagedView(view);
|
||||||
|
|
||||||
|
viewLink->initAfterReadRecursively();
|
||||||
|
viewLink->updateOptionSensitivity();
|
||||||
|
viewLink->updateDisplayNameAndIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimViewLinker::addViewControllers(caf::PdmUiTreeOrdering& uiTreeOrdering)
|
||||||
|
{
|
||||||
|
for (size_t j = 0; j < viewLinks.size(); j++)
|
||||||
|
{
|
||||||
|
uiTreeOrdering.add(viewLinks()[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,26 +52,23 @@ public:
|
|||||||
void setMasterView(RimView* view);
|
void setMasterView(RimView* view);
|
||||||
RimView* masterView();
|
RimView* masterView();
|
||||||
|
|
||||||
caf::PdmChildArrayField<RimViewController*> viewLinks;
|
void addDependentView(RimView* view);
|
||||||
|
void updateDependentViews();
|
||||||
void applyAllOperations();
|
|
||||||
void removeOverrides();
|
|
||||||
|
|
||||||
void updateCamera(RimView* sourceView);
|
void updateCamera(RimView* sourceView);
|
||||||
void updateTimeStep(RimView* sourceView, int timeStep);
|
void updateTimeStep(RimView* sourceView, int timeStep);
|
||||||
void updateScaleZ(RimView* sourceView, double scaleZ);
|
void updateScaleZ(RimView* sourceView, double scaleZ);
|
||||||
|
|
||||||
void updateCellResult();
|
void updateCellResult();
|
||||||
void updateRangeFilters();
|
|
||||||
void updatePropertyFilters();
|
|
||||||
|
|
||||||
void scheduleGeometryRegenForDepViews(RivCellSetEnum geometryType);
|
void scheduleGeometryRegenForDepViews(RivCellSetEnum geometryType);
|
||||||
void scheduleCreateDisplayModelAndRedrawForDependentViews();
|
void scheduleCreateDisplayModelAndRedrawForDependentViews();
|
||||||
|
|
||||||
void allViews(std::vector<RimView*>& views);
|
void allViews(std::vector<RimView*>& views);
|
||||||
|
|
||||||
void updateUiIcon();
|
void updateUiNameAndIcon();
|
||||||
void setNameAndIcon();
|
|
||||||
|
void addViewControllers(caf::PdmUiTreeOrdering& uiTreeOrdering);
|
||||||
|
|
||||||
static void applyIconEnabledState(caf::PdmObject* obj, const QIcon& icon, bool disable);
|
static void applyIconEnabledState(caf::PdmObject* obj, const QIcon& icon, bool disable);
|
||||||
static void findNameAndIconFromView(QString* name, QIcon* icon, RimView* view);
|
static void findNameAndIconFromView(QString* name, QIcon* icon, RimView* view);
|
||||||
@@ -90,12 +87,15 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void allViewsForCameraSync(RimView* source, std::vector<RimView*>& views);
|
void allViewsForCameraSync(RimView* source, std::vector<RimView*>& views);
|
||||||
void configureOverrides();
|
|
||||||
|
void updateOverrides();
|
||||||
|
void removeOverrides();
|
||||||
|
|
||||||
bool isActive();
|
bool isActive();
|
||||||
static bool isBoundingBoxesOverlappingOrClose(const cvf::BoundingBox& sourceBB, const cvf::BoundingBox& destBB);
|
static bool isBoundingBoxesOverlappingOrClose(const cvf::BoundingBox& sourceBB, const cvf::BoundingBox& destBB);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
caf::PdmChildArrayField<RimViewController*> viewLinks;
|
||||||
caf::PdmPtrField<RimView*> m_masterView;
|
caf::PdmPtrField<RimView*> m_masterView;
|
||||||
caf::PdmField<QString> m_name;
|
caf::PdmField<QString> m_name;
|
||||||
QIcon m_originalIcon;
|
QIcon m_originalIcon;
|
||||||
|
|||||||
@@ -59,10 +59,7 @@ void RimViewLinkerCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTre
|
|||||||
if (childObject)
|
if (childObject)
|
||||||
{
|
{
|
||||||
uiTreeOrdering.add(childObject);
|
uiTreeOrdering.add(childObject);
|
||||||
for (size_t j = 0; j < childObject->viewLinks.size(); j++)
|
childObject->addViewControllers(uiTreeOrdering);
|
||||||
{
|
|
||||||
uiTreeOrdering.add(childObject->viewLinks()[j]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uiTreeOrdering.setForgetRemainingFields(true);
|
uiTreeOrdering.setForgetRemainingFields(true);
|
||||||
@@ -74,20 +71,10 @@ void RimViewLinkerCollection::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTre
|
|||||||
void RimViewLinkerCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimViewLinkerCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
if (&isActive == changedField)
|
if (&isActive == changedField)
|
||||||
{
|
|
||||||
if (isActive)
|
|
||||||
{
|
{
|
||||||
if (viewLinker())
|
if (viewLinker())
|
||||||
{
|
{
|
||||||
viewLinker()->applyAllOperations();
|
viewLinker()->updateDependentViews();
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (viewLinker())
|
|
||||||
{
|
|
||||||
viewLinker()->removeOverrides();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user