From 71a1bd98abc730af772567fae146ed67830846bb Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Tue, 2 Oct 2018 14:55:17 +0200 Subject: [PATCH] #3441 Improve table view to work better with more attribute types. --- .../RimWellPathAttributeCollection.cpp | 2 +- .../ProjectDataModel/RimWellPathGeometryDef.cpp | 2 +- .../cafPdmUiTableViewEditor.cpp | 17 +++++++++++++---- .../cafUserInterface/cafPdmUiTableViewEditor.h | 6 ++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimWellPathAttributeCollection.cpp b/ApplicationCode/ProjectDataModel/RimWellPathAttributeCollection.cpp index 4871abcc6f..611a7b752e 100644 --- a/ApplicationCode/ProjectDataModel/RimWellPathAttributeCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellPathAttributeCollection.cpp @@ -122,7 +122,7 @@ void RimWellPathAttributeCollection::defineEditorAttribute(const caf::PdmFieldHa auto tvAttribute = dynamic_cast(attribute); if (tvAttribute) { - tvAttribute->forceColumnWidthResize = true; + tvAttribute->autoResizeColumnsToFillContainer = true; } } } diff --git a/ApplicationCode/ProjectDataModel/RimWellPathGeometryDef.cpp b/ApplicationCode/ProjectDataModel/RimWellPathGeometryDef.cpp index 473f0bca81..7381c8f249 100644 --- a/ApplicationCode/ProjectDataModel/RimWellPathGeometryDef.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellPathGeometryDef.cpp @@ -646,7 +646,7 @@ void RimWellPathGeometryDef::defineEditorAttribute(const caf::PdmFieldHandle* fi if (tvAttribute && m_pickPointsEnabled) { tvAttribute->baseColor.setRgb(255, 220, 255); - tvAttribute->forceColumnWidthResize = true; + tvAttribute->autoResizeColumnsToFitContent = true; } } } diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp index afef6c2185..039c2a13ad 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -208,15 +209,13 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName) } } - if ( m_previousFieldHandle != childArrayFH || editorAttrib.forceColumnWidthResize ) + if ( m_previousFieldHandle != childArrayFH) { - // Set default column widths - m_tableView->resizeColumnsToContents(); + int colCount = m_tableModelPdm->columnCount(); // Set specified widths (if any) if (editorAttribLoaded) { - int colCount = m_tableModelPdm->columnCount(); for (int c = 0; c < colCount && c < static_cast(editorAttrib.columnWidths.size()); c++) { auto w = editorAttrib.columnWidths[c]; @@ -224,6 +223,16 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName) } } + if (editorAttrib.autoResizeColumnsToFitContent) + { + // Set default column widths + m_tableView->resizeColumnsToContents(); + } + + if (editorAttrib.autoResizeColumnsToFillContainer) + { + m_tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); + } } m_previousFieldHandle = childArrayFH; diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.h b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.h index acd0e9dc4e..aaf779b66f 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.h +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTableViewEditor.h @@ -86,7 +86,8 @@ public: , rowSelectionLevel(1) , enableHeaderText(true) , minimumHeight(-1) - , forceColumnWidthResize(false) + , autoResizeColumnsToFitContent(false) + , autoResizeColumnsToFillContainer(false) { QPalette myPalette; baseColor = myPalette.color(QPalette::Active, QPalette::Base); @@ -99,7 +100,8 @@ public: std::vector columnWidths; int minimumHeight; ///< Not used if If < 0 QColor baseColor; - bool forceColumnWidthResize; + bool autoResizeColumnsToFitContent; + bool autoResizeColumnsToFillContainer; };