1 #include "ytsuggester.h"
3 #include "networkaccess.h"
5 #define GSUGGEST_URL "http://suggestqueries.google.com/complete/search?ds=yt&output=toolbar&hl=%1&q=%2"
11 YTSuggester::YTSuggester(QObject *parent) : Suggester(parent) {
15 void YTSuggester::suggest(QString query) {
16 if (query.startsWith("http")) return;
18 #if QT_VERSION >= 0x040800
19 QString locale = QLocale::system().uiLanguages().first();
21 QString locale = QLocale::system().name().replace("_", "-");
24 // case for system locales such as "C"
25 if (locale.length() < 2) {
29 QString url = QString(GSUGGEST_URL).arg(locale, query);
31 QObject *reply = The::http()->get(url);
32 connect(reply, SIGNAL(data(QByteArray)), SLOT(handleNetworkData(QByteArray)));
35 void YTSuggester::handleNetworkData(QByteArray response) {
38 QXmlStreamReader xml(response);
39 while (!xml.atEnd()) {
41 if (xml.tokenType() == QXmlStreamReader::StartElement) {
42 if (xml.name() == QLatin1String("suggestion")) {
43 QStringRef str = xml.attributes().value("data");
44 choices << str.toString();