forked from qt-creator/qt-creator
Utils: Better resizing behavior for environment widget
The automatic resizing to contents should happen immediately, not when coming back to the widget the next time. Fixes: QTCREATORBUG-26510 Change-Id: I76cafa493b2eadc5115d42badbabe3d4e0a050f6 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -53,6 +53,13 @@ void HeaderViewStretcher::stretch()
|
||||
HeaderViewStretcher::eventFilter(parent(), &fake);
|
||||
}
|
||||
|
||||
void HeaderViewStretcher::softStretch()
|
||||
{
|
||||
const auto hv = qobject_cast<QHeaderView*>(parent());
|
||||
for (int i = 0; i < hv->count(); ++i)
|
||||
hv->resizeSections(QHeaderView::ResizeToContents);
|
||||
}
|
||||
|
||||
bool HeaderViewStretcher::eventFilter(QObject *obj, QEvent *ev)
|
||||
{
|
||||
if (obj == parent()) {
|
||||
|
||||
@@ -41,6 +41,7 @@ public:
|
||||
explicit HeaderViewStretcher(QHeaderView *headerView, int columnToStretch);
|
||||
|
||||
void stretch();
|
||||
void softStretch();
|
||||
bool eventFilter(QObject *obj, QEvent *ev) override;
|
||||
};
|
||||
|
||||
|
||||
@@ -233,7 +233,11 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, Type type, QWidget *additi
|
||||
d->m_environmentView->setMinimumHeight(400);
|
||||
d->m_environmentView->setRootIsDecorated(false);
|
||||
d->m_environmentView->setUniformRowHeights(true);
|
||||
new Utils::HeaderViewStretcher(d->m_environmentView->header(), 1);
|
||||
const auto stretcher = new HeaderViewStretcher(d->m_environmentView->header(), 1);
|
||||
connect(d->m_model, &QAbstractItemModel::dataChanged,
|
||||
stretcher, &HeaderViewStretcher::softStretch);
|
||||
connect(d->m_model, &EnvironmentModel::userChangesChanged,
|
||||
stretcher, &HeaderViewStretcher::softStretch);
|
||||
d->m_environmentView->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
d->m_environmentView->setSelectionBehavior(QAbstractItemView::SelectItems);
|
||||
d->m_environmentView->setFrameShape(QFrame::NoFrame);
|
||||
|
||||
Reference in New Issue
Block a user