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();
|
||||
if (!activeView) return false;
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
if (!proj->findViewLinkerFromView(activeView))
|
||||
RimViewController* viewController = activeView->controllingViewLink();
|
||||
|
||||
if(viewController)
|
||||
{
|
||||
RimViewLinkerCollection* viewLinkerCollection = proj->viewLinkerCollection();
|
||||
if (viewLinkerCollection)
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
RimViewLinker* vLinker = RimViewLinker::viewLinkerIfMainView(activeView);
|
||||
if (!vLinker)
|
||||
{
|
||||
RimViewLinker* viewLinker = viewLinkerCollection->viewLinker();
|
||||
if (viewLinker)
|
||||
{
|
||||
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)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimViewLinker* viewLinker = NULL;
|
||||
RimViewLinker* viewLinker = proj->viewLinkerCollection->viewLinker();
|
||||
|
||||
if (proj->viewLinkerCollection->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
|
||||
if (!viewLinker)
|
||||
{
|
||||
// Create a new view linker
|
||||
|
||||
@@ -167,35 +147,23 @@ void RicLinkVisibleViewsFeature::linkViews(std::vector<RimView*>& views)
|
||||
viewLinker = new RimViewLinker;
|
||||
proj->viewLinkerCollection()->viewLinker = viewLinker;
|
||||
viewLinker->setMasterView(masterView);
|
||||
|
||||
for (size_t i = 0; i < views.size(); i++)
|
||||
{
|
||||
RimView* rimView = views[i];
|
||||
if (rimView == masterView) continue;
|
||||
|
||||
RimViewController* viewLink = new RimViewController;
|
||||
viewLink->setManagedView(rimView);
|
||||
|
||||
viewLinker->viewLinks.push_back(viewLink);
|
||||
|
||||
viewLink->initAfterReadRecursively();
|
||||
viewLink->updateOptionSensitivity();
|
||||
viewLink->updateUiIconFromActiveState();
|
||||
}
|
||||
|
||||
viewLinker->updateUiIcon();
|
||||
|
||||
}
|
||||
|
||||
viewLinker->applyAllOperations();
|
||||
for (size_t i = 0; i < views.size(); i++)
|
||||
{
|
||||
RimView* rimView = views[i];
|
||||
if (rimView == viewLinker->masterView()) continue;
|
||||
|
||||
viewLinker->addDependentView(rimView);
|
||||
}
|
||||
|
||||
viewLinker->updateUiNameAndIcon();
|
||||
|
||||
viewLinker->updateDependentViews();
|
||||
proj->viewLinkerCollection.uiCapability()->updateConnectedEditors();
|
||||
proj->updateConnectedEditors();
|
||||
|
||||
// Set managed view collection to selected and expanded in project tree
|
||||
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
||||
QModelIndex modIndex = projTreeView->findModelIndex(viewLinker);
|
||||
projTreeView->treeView()->setCurrentIndex(modIndex);
|
||||
RiuMainWindow::instance()->projectTreeView()->setExpanded(viewLinker, true);
|
||||
|
||||
projTreeView->treeView()->setExpanded(modIndex, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -70,51 +70,18 @@ void RicSetMasterViewFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
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->addDependentView(previousMasterView);
|
||||
|
||||
viewLinker->updateDependentViews();
|
||||
|
||||
if (previousMasterView)
|
||||
{
|
||||
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->updateConnectedEditors();
|
||||
|
||||
// Set managed view collection to selected and expanded in project tree
|
||||
caf::PdmUiTreeView* projTreeView = RiuMainWindow::instance()->projectTreeView();
|
||||
QModelIndex modIndex = projTreeView->findModelIndex(viewLinker);
|
||||
projTreeView->treeView()->setCurrentIndex(modIndex);
|
||||
|
||||
projTreeView->treeView()->setExpanded(modIndex, true);
|
||||
projTreeView->selectAsCurrentItem(viewLinker);
|
||||
projTreeView->setExpanded(viewLinker, true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -42,8 +42,9 @@ bool RicShowLinkOptionsFeature::isCommandEnabled()
|
||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||
if (!activeView) return false;
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
if (proj->findViewLinkerFromView(activeView))
|
||||
RimViewController* viewController = activeView->controllingViewLink();
|
||||
|
||||
if (viewController)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -59,28 +60,9 @@ void RicShowLinkOptionsFeature::onActionTriggered(bool isChecked)
|
||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||
if (!activeView) return;
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
||||
if (viewLinker)
|
||||
{
|
||||
if (viewLinker->masterView() == activeView)
|
||||
{
|
||||
RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(viewLinker);
|
||||
RimViewController* viewController = activeView->controllingViewLink();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
RiuMainWindow::instance()->projectTreeView()->selectAsCurrentItem(viewController);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -39,20 +39,16 @@ bool RicUnLinkViewFeature::isCommandEnabled()
|
||||
{
|
||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||
if (!activeView) return false;
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
||||
if (viewLinker)
|
||||
|
||||
RimViewController* viewController = activeView->controllingViewLink();
|
||||
|
||||
if (viewController)
|
||||
{
|
||||
if (viewLinker->masterView() == activeView)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -62,27 +58,16 @@ void RicUnLinkViewFeature::onActionTriggered(bool isChecked)
|
||||
{
|
||||
RimView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||
if (!activeView) return;
|
||||
|
||||
RimViewController* viewController = activeView->controllingViewLink();
|
||||
caf::SelectionManager::instance()->setSelectedItem(viewController);
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimViewLinker* viewLinker = proj->findViewLinkerFromView(activeView);
|
||||
if (viewLinker)
|
||||
caf::CmdFeature* feature = caf::CmdFeatureManager::instance()->getCommandFeature("RicDeleteItemFeature");
|
||||
if (feature)
|
||||
{
|
||||
for (size_t i = 0; i < viewLinker->viewLinks.size(); i++)
|
||||
{
|
||||
RimViewController* viewLink = viewLinker->viewLinks[i];
|
||||
if (viewLink->managedView() == activeView)
|
||||
{
|
||||
caf::SelectionManager::instance()->setSelectedItem(viewLink);
|
||||
feature->action()->trigger();
|
||||
|
||||
caf::CmdFeature* feature = caf::CmdFeatureManager::instance()->getCommandFeature("RicDeleteItemFeature");
|
||||
if (feature)
|
||||
{
|
||||
feature->action()->trigger();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user