mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Tree view Toggle Cmmands: Reimplemented to use PDM. Fixed missing update.
p4#: 22342
This commit is contained in:
parent
55337bd1b1
commit
c3c50ae62e
@ -55,6 +55,7 @@
|
|||||||
#include "RimWellPathCollection.h"
|
#include "RimWellPathCollection.h"
|
||||||
#include "RimOilField.h"
|
#include "RimOilField.h"
|
||||||
#include "RimAnalysisModels.h"
|
#include "RimAnalysisModels.h"
|
||||||
|
#include "RimUiTreeView.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1009,6 +1010,8 @@ void RimUiTreeModelPdm::setObjectToggleStateForSelection(QModelIndexList selecte
|
|||||||
{
|
{
|
||||||
bool toggleOn = (state == Qt::Checked);
|
bool toggleOn = (state == Qt::Checked);
|
||||||
|
|
||||||
|
std::set<RimReservoirView*> resViewsToUpdate;
|
||||||
|
|
||||||
foreach (QModelIndex index, selectedIndexes)
|
foreach (QModelIndex index, selectedIndexes)
|
||||||
{
|
{
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
@ -1028,11 +1031,29 @@ void RimUiTreeModelPdm::setObjectToggleStateForSelection(QModelIndexList selecte
|
|||||||
if (field)
|
if (field)
|
||||||
{
|
{
|
||||||
// Does not use setValueFromUi(), so the caller must make sure dependencies are updated
|
// Does not use setValueFromUi(), so the caller must make sure dependencies are updated
|
||||||
field->v() = toggleOn;
|
if (state == RimUiTreeView::TOGGLE_ON) field->setValueFromUi(true);
|
||||||
|
if (state == RimUiTreeView::TOGGLE_OFF) field->setValueFromUi(false);
|
||||||
|
if (state == RimUiTreeView::TOGGLE) field->setValueFromUi(!(field->v()));
|
||||||
|
|
||||||
emitDataChanged(index);
|
//emitDataChanged(index);
|
||||||
|
//field->updateConnectedEditors();
|
||||||
|
|
||||||
|
/* caf::PdmObject* ownerObj = field->ownerObject();
|
||||||
|
|
||||||
|
RimReservoirView* resView = dynamic_cast<RimReservoirView*>(ownerObj);
|
||||||
|
if(resView) resViewsToUpdate.insert(resView);
|
||||||
|
else if (ownerObj)
|
||||||
|
{
|
||||||
|
ownerObj->firstAncestorOfType(resView);
|
||||||
|
if (resView) resViewsToUpdate.insert(resView);
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* for (std::set<RimReservoirView*>::iterator it = resViewsToUpdate.begin(); it != resViewsToUpdate.end(); ++it)
|
||||||
|
{
|
||||||
|
(*it)->createDisplayModelAndRedraw();
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1495,6 +1495,7 @@ void RimUiTreeView::slotToggleItems()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimUiTreeView::executeSelectionToggleOperation(SelectionToggleType toggleState)
|
void RimUiTreeView::executeSelectionToggleOperation(SelectionToggleType toggleState)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
int nextCheckBoxState = 0;
|
int nextCheckBoxState = 0;
|
||||||
|
|
||||||
if (toggleState == TOGGLE_ON)
|
if (toggleState == TOGGLE_ON)
|
||||||
@ -1528,28 +1529,28 @@ void RimUiTreeView::executeSelectionToggleOperation(SelectionToggleType toggleSt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
||||||
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
// caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(currentIndex());
|
||||||
|
|
||||||
// Special handling for wells
|
// Special handling for wells
|
||||||
// Set toggle state for all wells without triggering model update,
|
// Set toggle state for all wells without triggering model update,
|
||||||
// and perform a single display model update at last
|
// and perform a single display model update at last
|
||||||
RimWell* well = dynamic_cast<RimWell*>(uiItem->dataObject().p());
|
//RimWell* well = dynamic_cast<RimWell*>(uiItem->dataObject().p());
|
||||||
if (well)
|
//if (well)
|
||||||
{
|
{
|
||||||
myModel->setObjectToggleStateForSelection(selectionModel()->selectedIndexes(), nextCheckBoxState);
|
myModel->setObjectToggleStateForSelection(selectionModel()->selectedIndexes(), toggleState);
|
||||||
|
|
||||||
RimReservoirView* reservoirView = NULL;
|
//RimReservoirView* reservoirView = NULL;
|
||||||
well->firstAncestorOfType(reservoirView);
|
//well->firstAncestorOfType(reservoirView);
|
||||||
if (reservoirView)
|
//if (reservoirView)
|
||||||
{
|
//{
|
||||||
reservoirView->createDisplayModelAndRedraw();
|
// reservoirView->createDisplayModelAndRedraw();
|
||||||
}
|
//}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
foreach (QModelIndex index, selectionModel()->selectedIndexes())
|
foreach (QModelIndex index, selectionModel()->selectedIndexes())
|
||||||
{
|
{
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
@ -1559,6 +1560,7 @@ void RimUiTreeView::executeSelectionToggleOperation(SelectionToggleType toggleSt
|
|||||||
|
|
||||||
myModel->setData(index, nextCheckBoxState, Qt::CheckStateRole);
|
myModel->setData(index, nextCheckBoxState, Qt::CheckStateRole);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -104,7 +104,7 @@ private slots:
|
|||||||
signals:
|
signals:
|
||||||
void selectedObjectChanged( caf::PdmObject* pdmObject );
|
void selectedObjectChanged( caf::PdmObject* pdmObject );
|
||||||
|
|
||||||
private:
|
public:
|
||||||
enum SelectionToggleType
|
enum SelectionToggleType
|
||||||
{
|
{
|
||||||
TOGGLE_ON,
|
TOGGLE_ON,
|
||||||
|
Loading…
Reference in New Issue
Block a user