WelcomePage: fixes QTC_ASSERT

We have to wait for the QtVersionManager until all Qt versions
are loaded.

Change-Id: Ia6f823660d0252fb8e8ee1b8cfaec32e26ebc0bd
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Thomas Hartmann
2013-10-08 17:07:59 +02:00
parent 8d7bd37bbe
commit 3ed4293d7c

View File

@@ -110,6 +110,11 @@ public:
void setupQtVersions() void setupQtVersions()
{ {
if (!QtVersionManager::isLoaded()) {
connect(QtVersionManager::instance(), SIGNAL(qtVersionsLoaded()), this, SLOT(qtVersionManagerLoaded()));
return;
}
beginResetModel(); beginResetModel();
clear(); clear();
@@ -173,6 +178,11 @@ public slots:
QVariant variant = data(modelIndex, Qt::UserRole + 2); QVariant variant = data(modelIndex, Qt::UserRole + 2);
return variant; return variant;
} }
void qtVersionManagerLoaded()
{
disconnect(QtVersionManager::instance(), SIGNAL(qtVersionsLoaded()), this, SLOT(qtVersionManagerLoaded()));
setupQtVersions();
}
}; };
ExamplesListModel::ExamplesListModel(QObject *parent) : ExamplesListModel::ExamplesListModel(QObject *parent) :
@@ -700,10 +710,12 @@ void ExamplesListModel::ensureInitialized() const
void ExamplesListModel::filterForQtById(int id) void ExamplesListModel::filterForQtById(int id)
{ {
if (QtVersionManager::isLoaded()) {
m_uniqueQtId = id; m_uniqueQtId = id;
setUniqueQtVersionIdSetting(id); setUniqueQtVersionIdSetting(id);
updateExamples(); updateExamples();
} }
}
ExamplesListModelFilter::ExamplesListModelFilter(ExamplesListModel *sourceModel, QObject *parent) : ExamplesListModelFilter::ExamplesListModelFilter(ExamplesListModel *sourceModel, QObject *parent) :
QSortFilterProxyModel(parent), QSortFilterProxyModel(parent),
@@ -716,6 +728,7 @@ ExamplesListModelFilter::ExamplesListModelFilter(ExamplesListModel *sourceModel,
connect(this, SIGNAL(showTutorialsOnlyChanged()), SLOT(updateFilter())); connect(this, SIGNAL(showTutorialsOnlyChanged()), SLOT(updateFilter()));
connect(sourceModel, SIGNAL(qtVersionsChanged()), SLOT(handleQtVersionsChanged())); connect(sourceModel, SIGNAL(qtVersionsChanged()), SLOT(handleQtVersionsChanged()));
setSourceModel(m_sourceModel); setSourceModel(m_sourceModel);
m_qtVersionModel->setupQtVersions();
} }
void ExamplesListModelFilter::updateFilter() void ExamplesListModelFilter::updateFilter()