Example: Removed the code to handle 'num_entries' info.
The Google Suggest API doesn't return the 'num_queries' anymore. Had to remove code related to 'num_queries' entry so that the suggestion list shows up. Task-number: QTBUG-42817 Change-Id: Ic918d1c86840fa4c1e18f32a984f5a9dd911261d Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
This commit is contained in:
parent
b0ae0db61a
commit
3e6a14168b
Binary file not shown.
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 21 KiB |
@ -68,12 +68,8 @@
|
||||
in the explicit \c editor member variable.
|
||||
|
||||
We then create a QTreeWidget as a toplevel widget and configure the various
|
||||
properties to give it the look of a popup widget.
|
||||
|
||||
The popup will be populated by the results returned from Google. We set
|
||||
the number of columns to be two, since we want to display both the
|
||||
suggested search term and the number of hits it will trigger in the search
|
||||
engine.
|
||||
properties to give it the look of a popup widget. The widget is populated
|
||||
with the results by Google Suggest API request.
|
||||
|
||||
Furthermore, we install the GSuggestCompletion instance as an event filter
|
||||
on the QTreeWidget, and connect the \c itemClicked() signal with the \c
|
||||
@ -110,8 +106,8 @@
|
||||
\snippet googlesuggest/googlesuggest.cpp 4
|
||||
|
||||
The \c showCompletion() function populates the QTreeWidget with the results
|
||||
returned from the query. It takes two QStringLists, one with the suggested
|
||||
search terms and the other with the corresponding number of hits.
|
||||
returned from the query. It takes a QStringList of the suggested search
|
||||
terms.
|
||||
|
||||
\snippet googlesuggest/googlesuggest.cpp 5
|
||||
|
||||
|
@ -38,7 +38,6 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
//! [1]
|
||||
#include "googlesuggest.h"
|
||||
|
||||
@ -54,7 +53,7 @@ GSuggestCompletion::GSuggestCompletion(QLineEdit *parent): QObject(parent), edit
|
||||
popup->setFocusProxy(parent);
|
||||
popup->setMouseTracking(true);
|
||||
|
||||
popup->setColumnCount(2);
|
||||
popup->setColumnCount(1);
|
||||
popup->setUniformRowHeights(true);
|
||||
popup->setRootIsDecorated(false);
|
||||
popup->setEditTriggers(QTreeWidget::NoEditTriggers);
|
||||
@ -137,10 +136,10 @@ bool GSuggestCompletion::eventFilter(QObject *obj, QEvent *ev)
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
void GSuggestCompletion::showCompletion(const QStringList &choices, const QStringList &hits)
|
||||
void GSuggestCompletion::showCompletion(const QStringList &choices)
|
||||
{
|
||||
|
||||
if (choices.isEmpty() || choices.count() != hits.count())
|
||||
if (choices.isEmpty())
|
||||
return;
|
||||
|
||||
const QPalette &pal = editor->palette();
|
||||
@ -152,19 +151,12 @@ void GSuggestCompletion::showCompletion(const QStringList &choices, const QStrin
|
||||
QTreeWidgetItem * item;
|
||||
item = new QTreeWidgetItem(popup);
|
||||
item->setText(0, choices[i]);
|
||||
item->setText(1, hits[i]);
|
||||
item->setTextAlignment(1, Qt::AlignRight);
|
||||
item->setTextColor(1, color);
|
||||
item->setTextColor(0, color);
|
||||
}
|
||||
popup->setCurrentItem(popup->topLevelItem(0));
|
||||
popup->resizeColumnToContents(0);
|
||||
popup->resizeColumnToContents(1);
|
||||
popup->adjustSize();
|
||||
popup->setUpdatesEnabled(true);
|
||||
|
||||
int h = popup->sizeHintForRow(0) * qMin(7, choices.count()) + 3;
|
||||
popup->resize(popup->width(), h);
|
||||
|
||||
popup->move(editor->mapToGlobal(QPoint(0, editor->height())));
|
||||
popup->setFocus();
|
||||
popup->show();
|
||||
@ -207,7 +199,6 @@ void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
|
||||
QUrl url = networkReply->url();
|
||||
if (!networkReply->error()) {
|
||||
QStringList choices;
|
||||
QStringList hits;
|
||||
|
||||
QByteArray response(networkReply->readAll());
|
||||
QXmlStreamReader xml(response);
|
||||
@ -218,17 +209,11 @@ void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
|
||||
QStringRef str = xml.attributes().value("data");
|
||||
choices << str.toString();
|
||||
}
|
||||
if (xml.tokenType() == QXmlStreamReader::StartElement)
|
||||
if (xml.name() == "num_queries") {
|
||||
QStringRef str = xml.attributes().value("int");
|
||||
hits << str.toString();
|
||||
}
|
||||
}
|
||||
|
||||
showCompletion(choices, hits);
|
||||
showCompletion(choices);
|
||||
}
|
||||
|
||||
networkReply->deleteLater();
|
||||
}
|
||||
//! [9]
|
||||
|
||||
|
@ -61,7 +61,7 @@ public:
|
||||
GSuggestCompletion(QLineEdit *parent = 0);
|
||||
~GSuggestCompletion();
|
||||
bool eventFilter(QObject *obj, QEvent *ev) Q_DECL_OVERRIDE;
|
||||
void showCompletion(const QStringList &choices, const QStringList &hits);
|
||||
void showCompletion(const QStringList &choices);
|
||||
|
||||
public slots:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user