#1920 Curve creator. Adjust target plot combobox width to contents

This commit is contained in:
Bjørn Erik Jensen 2017-09-22 11:49:00 +02:00
parent 70ede18dc1
commit f4148dfe7a
3 changed files with 30 additions and 0 deletions

View File

@ -51,6 +51,7 @@
#include "RimOilField.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCurveAutoName.h"
#include "cafPdmUiComboBoxEditor.h"
CAF_PDM_SOURCE_INIT(RicSummaryCurveCreator, "RicSummaryCurveCreator");
@ -179,6 +180,7 @@ RicSummaryCurveCreator::RicSummaryCurveCreator() : m_identifierFieldsMap(
CAF_PDM_InitFieldNoDefault(&m_groupAppearanceType, "GroupAppearanceType", "Group", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_regionAppearanceType, "RegionAppearanceType", "Region", "", "", "");
//m_targetPlot
m_previewPlot = new RimSummaryPlot();
for (const auto& itemTypes : m_identifierFieldsMap)
@ -1048,6 +1050,14 @@ void RicSummaryCurveCreator::defineEditorAttribute(const caf::PdmFieldHandle* fi
attrib->showToggleAllCheckbox = false;
}
}
else if (&m_targetPlot == field)
{
caf::PdmUiComboBoxEditorAttribute* attrib = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*> (attribute);
if (attrib)
{
attrib->adjustWidthToContents = true;
}
}
}
//--------------------------------------------------------------------------------------------------

View File

@ -86,6 +86,20 @@ void PdmUiComboBoxEditor::configureAndUpdateUi(const QString& uiConfigName)
m_comboBox->addItem(field()->uiValue().toString());
m_comboBox->setCurrentIndex(0);
}
// Handle attributes
PdmUiComboBoxEditorAttribute attributes;
caf::PdmUiObjectHandle* uiObject = uiObj(field()->fieldHandle()->ownerObject());
if (uiObject)
{
uiObject->editorAttribute(field()->fieldHandle(), uiConfigName, &attributes);
}
if (attributes.adjustWidthToContents)
{
m_comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
}
m_comboBox->blockSignals(false);
}
}

View File

@ -55,7 +55,13 @@ namespace caf
class PdmUiComboBoxEditorAttribute : public PdmUiEditorAttribute
{
public:
bool adjustWidthToContents;
PdmUiComboBoxEditorAttribute()
{
adjustWidthToContents = false;
}
};