/*! \internal */ void QDeclarativeSearchSuggestionModel::clearData(bool suppressSignal) { QDeclarativeSearchModelBase::clearData(suppressSignal); if (!m_suggestions.isEmpty()) { m_suggestions.clear(); if (!suppressSignal) emit suggestionsChanged(); } }
void SearchSuggester::handleReplyFinished() { if (!m_networkReply) { return; } if (m_model) { m_model->clear(); } m_networkReply->deleteLater(); if (m_networkReply->size() <= 0) { m_networkReply = nullptr; return; } const QJsonDocument document(QJsonDocument::fromJson(m_networkReply->readAll())); if (!document.isEmpty() && document.isArray() && document.array().count() > 1 && document.array().at(0).toString() == m_query) { const QJsonArray completionsArray(document.array().at(1).toArray()); const QJsonArray descriptionsArray(document.array().at(2).toArray()); const QJsonArray urlsArray(document.array().at(3).toArray()); m_suggestions.reserve(completionsArray.count()); for (int i = 0; i < completionsArray.count(); ++i) { SearchSuggestion suggestion; suggestion.completion = completionsArray.at(i).toString(); suggestion.description = descriptionsArray.at(i).toString(); suggestion.url = urlsArray.at(i).toString(); m_suggestions.append(suggestion); if (m_model) { m_model->appendRow(new QStandardItem(suggestion.completion)); } } emit suggestionsChanged(m_suggestions); } m_networkReply = nullptr; }