mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3558 Grid items in Project Tree : Control grid visibility from checked state
This commit is contained in:
@@ -1015,6 +1015,10 @@ void RimEclipseView::indicesToVisibleGrids(std::vector<size_t>* gridIndices)
|
||||
{
|
||||
CVF_ASSERT(gridIndices != nullptr);
|
||||
|
||||
*gridIndices = gridCollection()->indicesToVisibleGrids();
|
||||
|
||||
|
||||
/*
|
||||
// Create vector of grid indices to render
|
||||
std::vector<RigGridBase*> grids;
|
||||
if (this->m_eclipseCase && this->m_eclipseCase->eclipseCaseData() )
|
||||
@@ -1030,6 +1034,7 @@ void RimEclipseView::indicesToVisibleGrids(std::vector<size_t>* gridIndices)
|
||||
gridIndices->push_back(i);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
#include "RigMainGrid.h"
|
||||
|
||||
#include <cafPdmUiTreeOrdering.h>
|
||||
#include "cafPdmUiTreeOrdering.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@@ -65,14 +65,6 @@ caf::PdmFieldHandle* RimGridInfo::objectToggleField()
|
||||
return &m_isActive;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridInfo::setActive(bool active)
|
||||
{
|
||||
m_isActive = active;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -90,6 +82,14 @@ void RimGridInfo::setIndex(int index)
|
||||
m_gridIndex = index;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimGridInfo::isActive() const
|
||||
{
|
||||
return m_isActive();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -117,7 +117,13 @@ caf::PdmFieldHandle* RimGridInfo::userDescriptionField()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridInfo::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) {}
|
||||
void RimGridInfo::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
RimGridView* rimView = nullptr;
|
||||
this->firstAncestorOrThisOfType(rimView);
|
||||
|
||||
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimGridInfoCollection, "GridInfoCollection");
|
||||
|
||||
@@ -136,13 +142,20 @@ RimGridInfoCollection::RimGridInfoCollection()
|
||||
m_gridInfos.uiCapability()->setUiTreeHidden(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimGridInfoCollection::isActive() const
|
||||
{
|
||||
return m_isActive();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridInfoCollection::addGridInfo(const QString& name, size_t gridIndex)
|
||||
{
|
||||
auto gridInfo = new RimGridInfo();
|
||||
gridInfo->setActive(true);
|
||||
gridInfo->setName(name);
|
||||
gridInfo->setIndex((int)gridIndex);
|
||||
m_gridInfos.push_back(gridInfo);
|
||||
@@ -208,6 +221,10 @@ void RimGridInfoCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedF
|
||||
const QVariant& oldValue,
|
||||
const QVariant& newValue)
|
||||
{
|
||||
RimGridView* rimView = nullptr;
|
||||
this->firstAncestorOrThisOfType(rimView);
|
||||
|
||||
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimGridCollection, "GridCollection");
|
||||
@@ -258,6 +275,45 @@ const QString RimGridCollection::temporaryGridUiName()
|
||||
return "Temporary LGRs";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<size_t> RimGridCollection::indicesToVisibleGrids() const
|
||||
{
|
||||
std::vector<size_t> gridIndices;
|
||||
|
||||
if (!isActive()) return gridIndices;
|
||||
|
||||
if (m_mainGrid()->isActive())
|
||||
{
|
||||
gridIndices.push_back(m_mainGrid->index());
|
||||
}
|
||||
|
||||
if (m_persistentLgrs()->isActive())
|
||||
{
|
||||
for (const auto& gridInfo : m_persistentLgrs->gridInfos())
|
||||
{
|
||||
if (gridInfo->isActive())
|
||||
{
|
||||
gridIndices.push_back(gridInfo->index());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (m_temporaryLgrs()->isActive())
|
||||
{
|
||||
for (const auto& gridInfo : m_temporaryLgrs->gridInfos())
|
||||
{
|
||||
if (gridInfo->isActive())
|
||||
{
|
||||
gridIndices.push_back(gridInfo->index());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return gridIndices;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -360,6 +416,11 @@ void RimGridCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField
|
||||
|
||||
updateUiIconFromState(m_isActive);
|
||||
}
|
||||
|
||||
RimGridView* rimView = nullptr;
|
||||
this->firstAncestorOrThisOfType(rimView);
|
||||
|
||||
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
@@ -39,23 +39,22 @@ public:
|
||||
RimGridInfo();
|
||||
~RimGridInfo() {}
|
||||
|
||||
void setName(const QString& name);
|
||||
void setIndex(int index);
|
||||
bool isActive() const;
|
||||
QString name() const;
|
||||
int index() const;
|
||||
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
||||
void setActive(bool active);
|
||||
void setName(const QString& name);
|
||||
void setIndex(int index);
|
||||
|
||||
QString name() const;
|
||||
int index() const;
|
||||
|
||||
protected:
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmField<QString> m_gridName;
|
||||
caf::PdmField<int> m_gridIndex;
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmField<QString> m_gridName;
|
||||
caf::PdmField<int> m_gridIndex;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
@@ -69,14 +68,15 @@ public:
|
||||
RimGridInfoCollection();
|
||||
~RimGridInfoCollection() {}
|
||||
|
||||
void addGridInfo(const QString& name, size_t gridIndex);
|
||||
void clear();
|
||||
bool containsGrid(const QString& gridName) const;
|
||||
void deleteGridInfo(const QString& gridName);
|
||||
bool isActive() const;
|
||||
void addGridInfo(const QString& name, size_t gridIndex);
|
||||
void clear();
|
||||
bool containsGrid(const QString& gridName) const;
|
||||
void deleteGridInfo(const QString& gridName);
|
||||
std::vector<RimGridInfo*> gridInfos() const;
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
||||
protected:
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
private:
|
||||
@@ -91,28 +91,30 @@ private:
|
||||
class RimGridCollection : public caf::PdmObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
RimGridCollection();
|
||||
~RimGridCollection() override;
|
||||
|
||||
void setActive(bool active);
|
||||
bool isActive() const;
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
void syncFromMainGrid();
|
||||
void setActive(bool active);
|
||||
bool isActive() const;
|
||||
std::vector<size_t> indicesToVisibleGrids() const;
|
||||
|
||||
static const QString persistentGridUiName();
|
||||
static const QString temporaryGridUiName();
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
void syncFromMainGrid();
|
||||
static const QString persistentGridUiName();
|
||||
static const QString temporaryGridUiName();
|
||||
|
||||
protected:
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
void initAfterRead() override;
|
||||
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
void initAfterRead() override;
|
||||
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
|
||||
|
||||
private:
|
||||
const RigMainGrid* mainGrid() const;
|
||||
const RigMainGrid* mainGrid() const;
|
||||
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmChildField<RimGridInfo*> m_mainGrid;
|
||||
caf::PdmChildField<RimGridInfoCollection*> m_persistentLgrs;
|
||||
caf::PdmChildField<RimGridInfoCollection*> m_temporaryLgrs;
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmChildField<RimGridInfo*> m_mainGrid;
|
||||
caf::PdmChildField<RimGridInfoCollection*> m_persistentLgrs;
|
||||
caf::PdmChildField<RimGridInfoCollection*> m_temporaryLgrs;
|
||||
};
|
||||
|
||||
@@ -363,6 +363,14 @@ void RimGridView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, cons
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimGridCollection* RimGridView::gridCollection() const
|
||||
{
|
||||
return m_gridCollection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -70,6 +70,8 @@ protected:
|
||||
|
||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
RimGridCollection* gridCollection() const;
|
||||
|
||||
protected: // Fields
|
||||
caf::PdmChildField<RimIntersectionCollection*> m_crossSectionCollection;
|
||||
caf::PdmChildField<Rim3dOverlayInfoConfig*> m_overlayInfoConfig;
|
||||
|
||||
Reference in New Issue
Block a user