diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index a47cd44a96..2d624f0932 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -76,11 +76,11 @@ RimEclipseCase::RimEclipseCase() m_matrixModelResults = new RimReservoirCellResultsStorage; m_matrixModelResults.uiCapability()->setUiHidden(true); - m_matrixModelResults.uiCapability()->setUiChildrenHidden(true); + m_matrixModelResults.uiCapability()->setUiTreeChildrenHidden(true); m_fractureModelResults = new RimReservoirCellResultsStorage; m_fractureModelResults.uiCapability()->setUiHidden(true); - m_fractureModelResults.uiCapability()->setUiChildrenHidden(true); + m_fractureModelResults.uiCapability()->setUiTreeChildrenHidden(true); this->setReservoirData( NULL ); } diff --git a/ApplicationCode/ProjectDataModel/RimEclipseFaultColors.cpp b/ApplicationCode/ProjectDataModel/RimEclipseFaultColors.cpp index 466acd668e..eb59cc5c5f 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseFaultColors.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseFaultColors.cpp @@ -150,7 +150,7 @@ bool RimEclipseFaultColors::hasValidCustomResult() void RimEclipseFaultColors::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/) { if (m_customFaultResultColors()->ternaryLegendConfig() - && !m_customFaultResultColors()->ternaryLegendConfig.uiCapability()->isUiChildrenHidden(uiConfigName)) + && !m_customFaultResultColors()->ternaryLegendConfig.uiCapability()->isUiTreeChildrenHidden(uiConfigName)) { uiTreeOrdering.add(m_customFaultResultColors()->ternaryLegendConfig()); } diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp index 96fa25bfbf..c5b1abbfec 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp @@ -70,7 +70,7 @@ RimEclipsePropertyFilter::RimEclipsePropertyFilter() // Set to hidden to avoid this item to been displayed as a child item // Fields in this object are displayed using defineUiOrdering() resultDefinition.uiCapability()->setUiHidden(true); - resultDefinition.uiCapability()->setUiChildrenHidden(true); + resultDefinition.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitField(&m_lowerBound, "LowerBound", 0.0, "Min", "", "", ""); m_lowerBound.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName()); diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp index cd576c1ec2..aa3486d72a 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp @@ -51,7 +51,7 @@ RimGeoMechPropertyFilter::RimGeoMechPropertyFilter() // Set to hidden to avoid this item to been displayed as a child item // Fields in this object are displayed using defineUiOrdering() resultDefinition.uiCapability()->setUiHidden(true); - resultDefinition.uiCapability()->setUiChildrenHidden(true); + resultDefinition.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitField(&lowerBound, "LowerBound", 0.0, "Min", "", "", ""); lowerBound.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName()); diff --git a/ApplicationCode/ProjectDataModel/RimIntersection.cpp b/ApplicationCode/ProjectDataModel/RimIntersection.cpp index d0566b3156..0e37b2658e 100644 --- a/ApplicationCode/ProjectDataModel/RimIntersection.cpp +++ b/ApplicationCode/ProjectDataModel/RimIntersection.cpp @@ -92,7 +92,7 @@ RimIntersection::RimIntersection() inputFromViewerEnabled = false; - uiCapability()->setUiChildrenHidden(true); + uiCapability()->setUiTreeChildrenHidden(true); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimProject.cpp b/ApplicationCode/ProjectDataModel/RimProject.cpp index 21d797da59..5dfe4f2a0b 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.cpp +++ b/ApplicationCode/ProjectDataModel/RimProject.cpp @@ -86,7 +86,7 @@ RimProject::RimProject(void) CAF_PDM_InitFieldNoDefault(&wellPathImport, "WellPathImport", "WellPathImport", "", "", ""); wellPathImport = new RimWellPathImport(); wellPathImport.uiCapability()->setUiHidden(true); - wellPathImport.uiCapability()->setUiChildrenHidden(true); + wellPathImport.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitFieldNoDefault(&mainPlotCollection, "MainPlotCollection", "Plots", "", "", ""); mainPlotCollection.uiCapability()->setUiHidden(true); diff --git a/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp b/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp index 50bdc82357..bd0ce9d7be 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp @@ -143,7 +143,7 @@ RimSummaryCurve::RimSummaryCurve() CAF_PDM_InitObject("Summary Curve", ":/SummaryCurve16x16.png", "", ""); CAF_PDM_InitFieldNoDefault(&m_summaryCase, "SummaryCase", "Case", "", "", ""); - m_summaryCase.uiCapability()->setUiChildrenHidden(true); + m_summaryCase.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitFieldNoDefault(&m_selectedVariableDisplayField, "SelectedVariableDisplayVar", "Vector", "", "", ""); m_selectedVariableDisplayField.xmlCapability()->setIOWritable(false); @@ -153,7 +153,7 @@ RimSummaryCurve::RimSummaryCurve() CAF_PDM_InitFieldNoDefault(&m_summaryFilter, "VarListFilter", "Filter", "", "", ""); m_summaryFilter.xmlCapability()->setIOWritable(false); m_summaryFilter.xmlCapability()->setIOReadable(false); - m_summaryFilter.uiCapability()->setUiChildrenHidden(true); + m_summaryFilter.uiCapability()->setUiTreeChildrenHidden(true); m_summaryFilter.uiCapability()->setUiHidden(true); m_summaryFilter = new RimSummaryFilter(); @@ -168,7 +168,7 @@ RimSummaryCurve::RimSummaryCurve() CAF_PDM_InitFieldNoDefault(&m_curveVariable, "SummaryAddress", "SummaryAddress", "", "", ""); m_curveVariable.uiCapability()->setUiHidden(true); - m_curveVariable.uiCapability()->setUiChildrenHidden(true); + m_curveVariable.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitFieldNoDefault(&m_plotAxis, "PlotAxis", "Axis", "", "", ""); diff --git a/ApplicationCode/ProjectDataModel/RimSummaryCurveFilter.cpp b/ApplicationCode/ProjectDataModel/RimSummaryCurveFilter.cpp index f44e2b1f3e..3bb250c814 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryCurveFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimSummaryCurveFilter.cpp @@ -66,7 +66,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter() CAF_PDM_InitObject("Curve Filter", ":/SummaryCurveFilter16x16.png", "", ""); CAF_PDM_InitFieldNoDefault(&m_selectedSummaryCases, "SummaryCases", "Cases", "", "", ""); - m_selectedSummaryCases.uiCapability()->setUiChildrenHidden(true); + m_selectedSummaryCases.uiCapability()->setUiTreeChildrenHidden(true); m_selectedSummaryCases.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName()); m_selectedSummaryCases.uiCapability()->setAutoAddingOptionFromValue(false); m_selectedSummaryCases.xmlCapability()->setIOWritable(false); @@ -80,7 +80,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter() m_selectedVariableDisplayField.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_summaryFilter, "VarListFilter", "Filter", "", "", ""); - m_summaryFilter.uiCapability()->setUiChildrenHidden(true); + m_summaryFilter.uiCapability()->setUiTreeChildrenHidden(true); m_summaryFilter.uiCapability()->setUiHidden(true); m_summaryFilter = new RimSummaryFilter(); @@ -93,7 +93,7 @@ RimSummaryCurveFilter::RimSummaryCurveFilter() CAF_PDM_InitFieldNoDefault(&m_curves, "FilteredCurves", "Filtered Curves", "", "", ""); m_curves.uiCapability()->setUiHidden(true); - m_curves.uiCapability()->setUiChildrenHidden(false); + m_curves.uiCapability()->setUiTreeChildrenHidden(false); CAF_PDM_InitFieldNoDefault(&m_applyButtonField, "ApplySelection", "Apply", "", "", ""); m_applyButtonField.xmlCapability()->setIOWritable(false); diff --git a/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp b/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp index d78ed6d3d5..ba93f629f7 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimSummaryPlot.cpp @@ -38,6 +38,7 @@ #include "qwt_plot_curve.h" #include "qwt_plot_renderer.h" +#include "cafPdmUiTreeOrdering.h" CAF_PDM_SOURCE_INIT(RimSummaryPlot, "SummaryPlot"); @@ -54,23 +55,23 @@ RimSummaryPlot::RimSummaryPlot() CAF_PDM_InitField(&m_userName, "PlotDescription", QString("Summary Plot"), "Name", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_curveFilters, "SummaryCurveFilters", "", "", "", ""); - m_curveFilters.uiCapability()->setUiHidden(true); + m_curveFilters.uiCapability()->setUiTreeHidden(true); CAF_PDM_InitFieldNoDefault(&m_curves, "SummaryCurves", "", "", "", ""); - m_curves.uiCapability()->setUiHidden(true); + m_curves.uiCapability()->setUiTreeHidden(true); CAF_PDM_InitField(&m_visibleWindow, "VisibleWindow", std::vector(), "Visible Display Window", "", "", ""); m_visibleWindow.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_leftYAxisProperties, "LeftYAxisProperties", "Left Y Axis", "", "", ""); - m_leftYAxisProperties.uiCapability()->setUiHidden(true); + m_leftYAxisProperties.uiCapability()->setUiTreeHidden(true); m_leftYAxisPropertiesObject = std::unique_ptr(new RimSummaryYAxisProperties); m_leftYAxisPropertiesObject->setNameAndAxis("Left Y-Axis", QwtPlot::yLeft); m_leftYAxisProperties = m_leftYAxisPropertiesObject.get(); CAF_PDM_InitFieldNoDefault(&m_rightYAxisProperties, "RightYAxisProperties", "Right Y Axis", "", "", ""); - m_rightYAxisProperties.uiCapability()->setUiHidden(true); + m_rightYAxisProperties.uiCapability()->setUiTreeHidden(true); m_rightYAxisPropertiesObject = std::unique_ptr(new RimSummaryYAxisProperties); m_rightYAxisPropertiesObject->setNameAndAxis("Right Y-Axis", QwtPlot::yRight); @@ -335,6 +336,17 @@ QImage RimSummaryPlot::snapshotWindowContent() return image; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/) +{ + uiTreeOrdering.add(&m_leftYAxisProperties); + uiTreeOrdering.add(&m_rightYAxisProperties); + uiTreeOrdering.add(&m_curveFilters); + uiTreeOrdering.add(&m_curves); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimSummaryPlot.h b/ApplicationCode/ProjectDataModel/RimSummaryPlot.h index 8eec7b1275..69d5561de4 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryPlot.h +++ b/ApplicationCode/ProjectDataModel/RimSummaryPlot.h @@ -36,6 +36,7 @@ class RiuSummaryQwtPlot; class RimSummaryCurve; class RimSummaryCurveFilter; class RimSummaryYAxisProperties; +class PdmUiTreeOrdering; class QwtPlotCurve; @@ -76,9 +77,12 @@ protected: virtual caf::PdmFieldHandle* userDescriptionField() { return &m_userName; } virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; virtual void setupBeforeSave() override; + virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override; virtual QImage snapshotWindowContent() override; + + private: void updateViewerWidget(); void updateViewerWidgetWindowTitle(); diff --git a/ApplicationCode/ProjectDataModel/RimViewController.cpp b/ApplicationCode/ProjectDataModel/RimViewController.cpp index 396898f0eb..57cd58e1db 100644 --- a/ApplicationCode/ProjectDataModel/RimViewController.cpp +++ b/ApplicationCode/ProjectDataModel/RimViewController.cpp @@ -64,7 +64,7 @@ RimViewController::RimViewController(void) m_name.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_managedView, "ManagedView", "Linked View", "", "", ""); - m_managedView.uiCapability()->setUiChildrenHidden(true); + m_managedView.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitField(&m_syncCamera, "SyncCamera", true, "Camera", "", "", ""); CAF_PDM_InitField(&m_syncTimeStep, "SyncTimeStep", true, "Time Step", "", "", ""); diff --git a/ApplicationCode/ProjectDataModel/RimViewLinker.cpp b/ApplicationCode/ProjectDataModel/RimViewLinker.cpp index 881c5e279f..1d42e0222a 100644 --- a/ApplicationCode/ProjectDataModel/RimViewLinker.cpp +++ b/ApplicationCode/ProjectDataModel/RimViewLinker.cpp @@ -61,12 +61,12 @@ RimViewLinker::RimViewLinker(void) m_name.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_masterView, "MainView", "Main View", "", "", ""); - m_masterView.uiCapability()->setUiChildrenHidden(true); + m_masterView.uiCapability()->setUiTreeChildrenHidden(true); m_masterView.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_viewControllers, "ManagedViews", "Managed Views", "", "", ""); m_viewControllers.uiCapability()->setUiHidden(true); - m_viewControllers.uiCapability()->setUiChildrenHidden(true); + m_viewControllers.uiCapability()->setUiTreeChildrenHidden(true); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimWellLogExtractionCurve.cpp b/ApplicationCode/ProjectDataModel/RimWellLogExtractionCurve.cpp index 6124718681..c0634dc189 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogExtractionCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogExtractionCurve.cpp @@ -66,20 +66,20 @@ RimWellLogExtractionCurve::RimWellLogExtractionCurve() CAF_PDM_InitObject("Well Log Curve", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_wellPath, "CurveWellPath", "Well Path", "", "", ""); - m_wellPath.uiCapability()->setUiChildrenHidden(true); + m_wellPath.uiCapability()->setUiTreeChildrenHidden(true); //m_wellPath.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_case, "CurveCase", "Case", "", "", ""); - m_case.uiCapability()->setUiChildrenHidden(true); + m_case.uiCapability()->setUiTreeChildrenHidden(true); //m_case.uiCapability()->setUiHidden(true); CAF_PDM_InitFieldNoDefault(&m_eclipseResultDefinition, "CurveEclipseResult", "", "", "", ""); m_eclipseResultDefinition.uiCapability()->setUiHidden(true); - m_eclipseResultDefinition.uiCapability()->setUiChildrenHidden(true); + m_eclipseResultDefinition.uiCapability()->setUiTreeChildrenHidden(true); m_eclipseResultDefinition = new RimEclipseResultDefinition; CAF_PDM_InitFieldNoDefault(&m_geomResultDefinition, "CurveGeomechResult", "", "", "", ""); m_geomResultDefinition.uiCapability()->setUiHidden(true); - m_geomResultDefinition.uiCapability()->setUiChildrenHidden(true); + m_geomResultDefinition.uiCapability()->setUiTreeChildrenHidden(true); m_geomResultDefinition = new RimGeoMechResultDefinition; CAF_PDM_InitField(&m_timeStep, "CurveTimeStep", 0,"Time Step", "", "", ""); diff --git a/ApplicationCode/ProjectDataModel/RimWellLogFileCurve.cpp b/ApplicationCode/ProjectDataModel/RimWellLogFileCurve.cpp index 1c687f01d4..5a575cf94d 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogFileCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogFileCurve.cpp @@ -49,7 +49,7 @@ RimWellLogFileCurve::RimWellLogFileCurve() CAF_PDM_InitObject("Well Log File Curve", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_wellPath, "CurveWellPath", "Well Path", "", "", ""); - m_wellPath.uiCapability()->setUiChildrenHidden(true); + m_wellPath.uiCapability()->setUiTreeChildrenHidden(true); CAF_PDM_InitFieldNoDefault(&m_wellLogChannnelName, "CurveWellLogChannel", "Well Log Channel", "", "", ""); diff --git a/ApplicationCode/WellPathImportSsihub/RimOilFieldEntry.cpp b/ApplicationCode/WellPathImportSsihub/RimOilFieldEntry.cpp index 287646e8b6..d77cbd3bb1 100644 --- a/ApplicationCode/WellPathImportSsihub/RimOilFieldEntry.cpp +++ b/ApplicationCode/WellPathImportSsihub/RimOilFieldEntry.cpp @@ -49,7 +49,7 @@ RimOilFieldEntry::RimOilFieldEntry() CAF_PDM_InitFieldNoDefault(&wells, "Wells", "", "", "", ""); wells.uiCapability()->setUiHidden(true); - wells.uiCapability()->setUiChildrenHidden(true); + wells.uiCapability()->setUiTreeChildrenHidden(true); } //-------------------------------------------------------------------------------------------------- diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp index d6e385ac9a..55d76423a9 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.cpp @@ -140,15 +140,25 @@ bool PdmUiItem::isUiHidden(QString uiConfigName) const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool PdmUiItem::isUiChildrenHidden(QString uiConfigName) const +bool PdmUiItem::isUiTreeHidden(QString uiConfigName) const +{ + // TODO: Must be separated from uiHidden when childField object embedding is implemented + + return isUiHidden(uiConfigName); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool PdmUiItem::isUiTreeChildrenHidden(QString uiConfigName) const { const PdmUiItemInfo* conInfo = configInfo(uiConfigName); const PdmUiItemInfo* defInfo = defaultInfo(); const PdmUiItemInfo* sttInfo = m_staticItemInfo; - if (conInfo && !(conInfo->m_isChildrenHidden == -1)) return conInfo->m_isChildrenHidden; - if (defInfo && !(defInfo->m_isChildrenHidden == -1)) return defInfo->m_isChildrenHidden; - if (sttInfo && !(sttInfo->m_isChildrenHidden == -1)) return sttInfo->m_isChildrenHidden; + if (conInfo && !(conInfo->m_isTreeChildrenHidden == -1)) return conInfo->m_isTreeChildrenHidden; + if (defInfo && !(defInfo->m_isTreeChildrenHidden == -1)) return defInfo->m_isTreeChildrenHidden; + if (sttInfo && !(sttInfo->m_isTreeChildrenHidden == -1)) return sttInfo->m_isTreeChildrenHidden; return false; } diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h index d2812e36ae..7687fdceb1 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiItem.h @@ -56,27 +56,27 @@ class PdmUiItemInfo { public: PdmUiItemInfo() - : m_editorTypeName(""), m_isHidden(-1), m_isChildrenHidden(-1), m_isReadOnly(-1), m_labelAlignment(LEFT) + : m_editorTypeName(""), m_isHidden(-1), m_isTreeChildrenHidden(-1), m_isReadOnly(-1), m_labelAlignment(LEFT) {} PdmUiItemInfo( QString uiName, QIcon icon = QIcon(), QString toolTip = "", QString whatsThis = "") : m_uiName(uiName), m_icon(icon), m_toolTip(toolTip), m_whatsThis(whatsThis), - m_editorTypeName(""), m_isHidden(false), m_isChildrenHidden(false), m_isReadOnly(false), m_labelAlignment(LEFT) + m_editorTypeName(""), m_isHidden(false), m_isTreeChildrenHidden(false), m_isReadOnly(false), m_labelAlignment(LEFT) { } enum LabelPosType { LEFT, TOP, HIDDEN }; private: friend class PdmUiItem; - QString m_uiName; - QString m_toolTip; - QString m_whatsThis; - QIcon m_icon; - QString m_editorTypeName; ///< Use this exact type of editor to edit this UiItem - int m_isHidden; ///< UiItem should be hidden. -1 means not set - int m_isChildrenHidden; ///< Children of UiItem should be hidden. -1 means not set - int m_isReadOnly; ///< UiItem should be insensitive, or read only. -1 means not set. - LabelPosType m_labelAlignment; + QString m_uiName; + QString m_toolTip; + QString m_whatsThis; + QIcon m_icon; + QString m_editorTypeName; ///< Use this exact type of editor to edit this UiItem + int m_isHidden; ///< UiItem should be hidden. -1 means not set + int m_isTreeChildrenHidden; ///< Children of UiItem should be hidden. -1 means not set + int m_isReadOnly; ///< UiItem should be insensitive, or read only. -1 means not set. + LabelPosType m_labelAlignment; }; //================================================================================================== @@ -184,8 +184,11 @@ public: bool isUiHidden(QString uiConfigName = "") const; void setUiHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; } - bool isUiChildrenHidden(QString uiConfigName = "") const; - void setUiChildrenHidden(bool isChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isChildrenHidden = isChildrenHidden; } + bool isUiTreeHidden(QString uiConfigName = "") const; + void setUiTreeHidden(bool isHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isHidden = isHidden; } + + bool isUiTreeChildrenHidden(QString uiConfigName = "") const; + void setUiTreeChildrenHidden(bool isTreeChildrenHidden, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isTreeChildrenHidden = isTreeChildrenHidden; } bool isUiReadOnly(QString uiConfigName = ""); void setUiReadOnly(bool isReadOnly, QString uiConfigName = "") { m_configItemInfos[uiConfigName].m_isReadOnly = isReadOnly; } diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiObjectHandle.cpp b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiObjectHandle.cpp index bcd9d6bd43..2ef4a4fab8 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiObjectHandle.cpp +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiObjectHandle.cpp @@ -114,7 +114,7 @@ void PdmUiObjectHandle::addDefaultUiTreeChildren(PdmUiTreeOrdering* uiTreeOrderi { if (fields[fIdx]->hasChildObjects() && !uiTreeOrdering->containsField(fields[fIdx])) { - if (fields[fIdx]->uiCapability()->isUiHidden() && !fields[fIdx]->uiCapability()->isUiChildrenHidden()) + if (fields[fIdx]->uiCapability()->isUiHidden() && !fields[fIdx]->uiCapability()->isUiTreeChildrenHidden()) { std::vector children; fields[fIdx]->childObjects(&children); @@ -182,7 +182,7 @@ void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigNa { if (!root->ignoreSubTree()) { - if (root->isRepresentingField() && !root->field()->uiCapability()->isUiChildrenHidden(uiConfigName)) + if (root->isRepresentingField() && !root->field()->uiCapability()->isUiTreeChildrenHidden(uiConfigName)) { std::vector fieldsChildObjects; root->field()->childObjects(&fieldsChildObjects); @@ -195,7 +195,7 @@ void PdmUiObjectHandle::expandUiTree(PdmUiTreeOrdering* root, QString uiConfigNa } } } - else if (root->isRepresentingObject() && !root->object()->uiCapability()->isUiChildrenHidden(uiConfigName)) + else if (root->isRepresentingObject() && !root->object()->uiCapability()->isUiTreeChildrenHidden(uiConfigName)) { uiObj(root->object())->defineUiTreeOrdering(*root, uiConfigName); uiObj(root->object())->addDefaultUiTreeChildren(root); diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.cpp b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.cpp index 05d23c1db8..dde47242b4 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.cpp +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.cpp @@ -52,11 +52,27 @@ namespace caf //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void PdmUiTreeOrdering::add(PdmFieldHandle * field) +void PdmUiTreeOrdering::add(PdmFieldHandle* field, QString uiConfigName) { assert(field); - PdmUiTreeOrdering* child = new PdmUiTreeOrdering(this, field); + if (field->uiCapability()->isUiTreeHidden(uiConfigName)) + { + if (!field->uiCapability()->isUiTreeChildrenHidden(uiConfigName)) + { + std::vector children; + field->childObjects(&children); + + for (PdmObjectHandle* objHandle : children) + { + this->add(objHandle); + } + } + } + else + { + PdmUiTreeOrdering* child = new PdmUiTreeOrdering(this, field); + } } //-------------------------------------------------------------------------------------------------- diff --git a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.h b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.h index 3fa34ac695..5ffd1f099b 100644 --- a/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.h +++ b/Fwk/AppFwk/cafProjectDataModel/cafPdmUiCore/cafPdmUiTreeOrdering.h @@ -69,7 +69,7 @@ public: ~PdmUiTreeOrdering(); - void add(PdmFieldHandle * field); + void add(PdmFieldHandle * field, QString uiConfigName = ""); void add(PdmObjectHandle* object); PdmUiTreeOrdering* add(const QString & title, const QString& iconResourceName );