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);
|
CVF_ASSERT(gridIndices != nullptr);
|
||||||
|
|
||||||
|
*gridIndices = gridCollection()->indicesToVisibleGrids();
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
// Create vector of grid indices to render
|
// Create vector of grid indices to render
|
||||||
std::vector<RigGridBase*> grids;
|
std::vector<RigGridBase*> grids;
|
||||||
if (this->m_eclipseCase && this->m_eclipseCase->eclipseCaseData() )
|
if (this->m_eclipseCase && this->m_eclipseCase->eclipseCaseData() )
|
||||||
@@ -1030,6 +1034,7 @@ void RimEclipseView::indicesToVisibleGrids(std::vector<size_t>* gridIndices)
|
|||||||
gridIndices->push_back(i);
|
gridIndices->push_back(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "RigMainGrid.h"
|
#include "RigMainGrid.h"
|
||||||
|
|
||||||
#include <cafPdmUiTreeOrdering.h>
|
#include "cafPdmUiTreeOrdering.h"
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
@@ -65,14 +65,6 @@ caf::PdmFieldHandle* RimGridInfo::objectToggleField()
|
|||||||
return &m_isActive;
|
return &m_isActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimGridInfo::setActive(bool active)
|
|
||||||
{
|
|
||||||
m_isActive = active;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -90,6 +82,14 @@ void RimGridInfo::setIndex(int index)
|
|||||||
m_gridIndex = 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");
|
CAF_PDM_SOURCE_INIT(RimGridInfoCollection, "GridInfoCollection");
|
||||||
|
|
||||||
@@ -136,13 +142,20 @@ RimGridInfoCollection::RimGridInfoCollection()
|
|||||||
m_gridInfos.uiCapability()->setUiTreeHidden(true);
|
m_gridInfos.uiCapability()->setUiTreeHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimGridInfoCollection::isActive() const
|
||||||
|
{
|
||||||
|
return m_isActive();
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimGridInfoCollection::addGridInfo(const QString& name, size_t gridIndex)
|
void RimGridInfoCollection::addGridInfo(const QString& name, size_t gridIndex)
|
||||||
{
|
{
|
||||||
auto gridInfo = new RimGridInfo();
|
auto gridInfo = new RimGridInfo();
|
||||||
gridInfo->setActive(true);
|
|
||||||
gridInfo->setName(name);
|
gridInfo->setName(name);
|
||||||
gridInfo->setIndex((int)gridIndex);
|
gridInfo->setIndex((int)gridIndex);
|
||||||
m_gridInfos.push_back(gridInfo);
|
m_gridInfos.push_back(gridInfo);
|
||||||
@@ -208,6 +221,10 @@ void RimGridInfoCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedF
|
|||||||
const QVariant& oldValue,
|
const QVariant& oldValue,
|
||||||
const QVariant& newValue)
|
const QVariant& newValue)
|
||||||
{
|
{
|
||||||
|
RimGridView* rimView = nullptr;
|
||||||
|
this->firstAncestorOrThisOfType(rimView);
|
||||||
|
|
||||||
|
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimGridCollection, "GridCollection");
|
CAF_PDM_SOURCE_INIT(RimGridCollection, "GridCollection");
|
||||||
@@ -258,6 +275,45 @@ const QString RimGridCollection::temporaryGridUiName()
|
|||||||
return "Temporary LGRs";
|
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);
|
updateUiIconFromState(m_isActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RimGridView* rimView = nullptr;
|
||||||
|
this->firstAncestorOrThisOfType(rimView);
|
||||||
|
|
||||||
|
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -2,34 +2,34 @@
|
|||||||
//
|
//
|
||||||
// Copyright (C) Statoil ASA
|
// Copyright (C) Statoil ASA
|
||||||
// Copyright (C) Ceetron Solutions AS
|
// Copyright (C) Ceetron Solutions AS
|
||||||
//
|
//
|
||||||
// ResInsight is free software: you can redistribute it and/or modify
|
// ResInsight is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License as published by
|
// it under the terms of the GNU General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
//
|
//
|
||||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||||
// for more details.
|
// for more details.
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "cafPdmChildArrayField.h"
|
||||||
|
#include "cafPdmChildField.h"
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmChildField.h"
|
|
||||||
#include "cafPdmChildArrayField.h"
|
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
class RigMainGrid;
|
class RigMainGrid;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimGridInfo : public caf::PdmObject
|
class RimGridInfo : public caf::PdmObject
|
||||||
{
|
{
|
||||||
@@ -39,23 +39,22 @@ public:
|
|||||||
RimGridInfo();
|
RimGridInfo();
|
||||||
~RimGridInfo() {}
|
~RimGridInfo() {}
|
||||||
|
|
||||||
|
void setName(const QString& name);
|
||||||
|
void setIndex(int index);
|
||||||
|
bool isActive() const;
|
||||||
|
QString name() const;
|
||||||
|
int index() const;
|
||||||
|
|
||||||
caf::PdmFieldHandle* objectToggleField() override;
|
caf::PdmFieldHandle* objectToggleField() override;
|
||||||
|
|
||||||
void setActive(bool active);
|
|
||||||
void setName(const QString& name);
|
|
||||||
void setIndex(int index);
|
|
||||||
|
|
||||||
QString name() const;
|
|
||||||
int index() const;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
caf::PdmFieldHandle* userDescriptionField() override;
|
caf::PdmFieldHandle* userDescriptionField() override;
|
||||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<bool> m_isActive;
|
caf::PdmField<bool> m_isActive;
|
||||||
caf::PdmField<QString> m_gridName;
|
caf::PdmField<QString> m_gridName;
|
||||||
caf::PdmField<int> m_gridIndex;
|
caf::PdmField<int> m_gridIndex;
|
||||||
};
|
};
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@@ -69,14 +68,15 @@ public:
|
|||||||
RimGridInfoCollection();
|
RimGridInfoCollection();
|
||||||
~RimGridInfoCollection() {}
|
~RimGridInfoCollection() {}
|
||||||
|
|
||||||
void addGridInfo(const QString& name, size_t gridIndex);
|
bool isActive() const;
|
||||||
void clear();
|
void addGridInfo(const QString& name, size_t gridIndex);
|
||||||
bool containsGrid(const QString& gridName) const;
|
void clear();
|
||||||
void deleteGridInfo(const QString& gridName);
|
bool containsGrid(const QString& gridName) const;
|
||||||
|
void deleteGridInfo(const QString& gridName);
|
||||||
std::vector<RimGridInfo*> gridInfos() const;
|
std::vector<RimGridInfo*> gridInfos() const;
|
||||||
|
caf::PdmFieldHandle* objectToggleField() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
caf::PdmFieldHandle* objectToggleField() override;
|
|
||||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -85,34 +85,36 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimGridCollection : public caf::PdmObject
|
class RimGridCollection : public caf::PdmObject
|
||||||
{
|
{
|
||||||
CAF_PDM_HEADER_INIT;
|
CAF_PDM_HEADER_INIT;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RimGridCollection();
|
RimGridCollection();
|
||||||
~RimGridCollection() override;
|
~RimGridCollection() override;
|
||||||
|
|
||||||
void setActive(bool active);
|
void setActive(bool active);
|
||||||
bool isActive() const;
|
bool isActive() const;
|
||||||
caf::PdmFieldHandle* objectToggleField() override;
|
std::vector<size_t> indicesToVisibleGrids() const;
|
||||||
void syncFromMainGrid();
|
|
||||||
|
|
||||||
static const QString persistentGridUiName();
|
caf::PdmFieldHandle* objectToggleField() override;
|
||||||
static const QString temporaryGridUiName();
|
void syncFromMainGrid();
|
||||||
|
static const QString persistentGridUiName();
|
||||||
|
static const QString temporaryGridUiName();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
void initAfterRead() override;
|
void initAfterRead() override;
|
||||||
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
|
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const RigMainGrid* mainGrid() const;
|
const RigMainGrid* mainGrid() const;
|
||||||
|
|
||||||
caf::PdmField<bool> m_isActive;
|
caf::PdmField<bool> m_isActive;
|
||||||
caf::PdmChildField<RimGridInfo*> m_mainGrid;
|
caf::PdmChildField<RimGridInfo*> m_mainGrid;
|
||||||
caf::PdmChildField<RimGridInfoCollection*> m_persistentLgrs;
|
caf::PdmChildField<RimGridInfoCollection*> m_persistentLgrs;
|
||||||
caf::PdmChildField<RimGridInfoCollection*> m_temporaryLgrs;
|
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;
|
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||||
|
|
||||||
|
RimGridCollection* gridCollection() const;
|
||||||
|
|
||||||
protected: // Fields
|
protected: // Fields
|
||||||
caf::PdmChildField<RimIntersectionCollection*> m_crossSectionCollection;
|
caf::PdmChildField<RimIntersectionCollection*> m_crossSectionCollection;
|
||||||
caf::PdmChildField<Rim3dOverlayInfoConfig*> m_overlayInfoConfig;
|
caf::PdmChildField<Rim3dOverlayInfoConfig*> m_overlayInfoConfig;
|
||||||
|
|||||||
Reference in New Issue
Block a user