Fix a crash when searching again for the last 12th item

Don't connect updateFilterButton() to the
QStackedWidget::currentChanged(). Call updateFilterButton()
explicitly by the end of setCurrentIndex().

Fixes: QTCREATORBUG-26099
Change-Id: I7cba97346e1f6c73171a9b83381e271750d50f25
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Jarek Kobus
2021-08-09 10:41:47 +02:00
parent 6530a4fdc7
commit a2bc154ed0

View File

@@ -190,8 +190,6 @@ namespace Internal {
return; return;
m_searchResultWidgets.at(visibleSearchIndex())->showFilterWidget(m_filterButton); m_searchResultWidgets.at(visibleSearchIndex())->showFilterWidget(m_filterButton);
}); });
connect(m_widget, &QStackedWidget::currentChanged,
this, &SearchResultWindowPrivate::updateFilterButton);
} }
void SearchResultWindowPrivate::setCurrentIndex(int index, bool focus) void SearchResultWindowPrivate::setCurrentIndex(int index, bool focus)
@@ -214,16 +212,17 @@ namespace Internal {
m_newSearchButton->setEnabled(true); m_newSearchButton->setEnabled(true);
} }
q->navigateStateChanged(); q->navigateStateChanged();
updateFilterButton();
} }
void SearchResultWindowPrivate::moveWidgetToTop() void SearchResultWindowPrivate::moveWidgetToTop()
{ {
auto widget = qobject_cast<SearchResultWidget *>(sender()); auto widget = qobject_cast<SearchResultWidget *>(sender());
QTC_ASSERT(widget, return); QTC_ASSERT(widget, return);
int index = m_searchResultWidgets.indexOf(widget); const int index = m_searchResultWidgets.indexOf(widget);
if (index == 0) if (index == 0)
return; // nothing to do return; // nothing to do
int internalIndex = index + 1/*account for "new search" entry*/; const int internalIndex = index + 1/*account for "new search" entry*/;
QString searchEntry = m_recentSearchesBox->itemText(internalIndex); QString searchEntry = m_recentSearchesBox->itemText(internalIndex);
m_searchResultWidgets.removeAt(index); m_searchResultWidgets.removeAt(index);