diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index f4c09ab1327..8118d11ea79 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -639,11 +639,12 @@ public: std::function m_displayFilter; std::unique_ptr m_checker; + Qt::TextElideMode m_elideMode = Qt::ElideNone; QString m_placeHolderText; QString m_historyCompleterKey; PathChooser::Kind m_expectedKind = PathChooser::File; EnvironmentChange m_environmentChange; - QPointer m_labelDisplay; + QPointer m_labelDisplay; QPointer m_lineEditDisplay; QPointer m_pathChooserDisplay; QPointer m_textEditDisplay; @@ -935,6 +936,16 @@ void StringAspect::setPlaceHolderText(const QString &placeHolderText) d->m_textEditDisplay->setPlaceholderText(placeHolderText); } +/*! + Sets \a elideMode as label elide mode. +*/ +void StringAspect::setElideMode(Qt::TextElideMode elideMode) +{ + d->m_elideMode = elideMode; + if (d->m_labelDisplay) + d->m_labelDisplay->setElideMode(elideMode); +} + /*! Sets \a historyCompleterKey as key for the history completer settings for line edits and path chooser displays. @@ -1144,7 +1155,8 @@ void StringAspect::addToLayout(LayoutBuilder &builder) } break; case LabelDisplay: - d->m_labelDisplay = createSubWidget(); + d->m_labelDisplay = createSubWidget(); + d->m_labelDisplay->setElideMode(d->m_elideMode); d->m_labelDisplay->setTextInteractionFlags(Qt::TextSelectableByMouse); d->m_labelDisplay->setText(displayedString); d->m_labelDisplay->setToolTip(d->m_showToolTipOnLabel ? displayedString : toolTip()); diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 9124bb2ddf6..0771dc65bf1 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -308,6 +308,7 @@ public: void setValidationFunction(const Utils::FancyLineEdit::ValidationFunction &validator); void setOpenTerminalHandler(const std::function &openTerminal); void setAutoApplyOnEditingFinished(bool applyOnEditingFinished); + void setElideMode(Qt::TextElideMode elideMode); void validateInput(); diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 6c76808177e..d82617ea463 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -111,7 +111,7 @@ static QLayout *createLayoutFromType(LayoutBuilder::LayoutType layoutType) switch (layoutType) { case LayoutBuilder::FormLayout: { auto formLayout = new QFormLayout; - formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); return formLayout; } case LayoutBuilder::GridLayout: {