X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugins%2Fgoogle%2FGooglePlugin.cpp;h=733a51f34a7dbefe62bd1e1f1817b57e241b557d;hb=27d5e8b54ea6ba6d95f7fc056eece35d141dab83;hp=7564064bd40f09d0472a49441215690e1f551228;hpb=99fdf94695a621052055def6a38164429aa84bff;p=mdictionary diff --git a/src/plugins/google/GooglePlugin.cpp b/src/plugins/google/GooglePlugin.cpp index 7564064..733a51f 100644 --- a/src/plugins/google/GooglePlugin.cpp +++ b/src/plugins/google/GooglePlugin.cpp @@ -18,8 +18,10 @@ Copyright 2010 Comarch S.A. *******************************************************************************/ +/*! + \file GooglePlugin.cpp + \brief Implementation of google plugin's main class. -/*! \file GooglePlugin.cpp \author Jakub Jaszczynski */ @@ -27,6 +29,10 @@ #include #include "GoogleDictDialog.h" +QMap GooglePlugin::languages; +bool GooglePlugin::noNetworkErrorShowed = false; + + GooglePlugin::GooglePlugin(QObject *parent): CommonDictInterface(parent), _name(""),_infoNote("") { _settings = new Settings(); @@ -35,26 +41,26 @@ GooglePlugin::GooglePlugin(QObject *parent): CommonDictInterface(parent), _settings->setValue("type","google"); _settings->setValue("connection_accepted","true"); _dictDialog = new GoogleDictDialog(this,this); - _icon = QIcon("/usr/share/mdictionary/google.png"); + _iconPath = "/usr/share/mdictionary/google.png"; + _icon = QIcon(_iconPath); stopped = false; - languages=initLanguages(); + initLanguages(); - http = new QHttp(this); + http = new QHttp(); connect(http, SIGNAL(done(bool)), this, SLOT(done())); + threa=new QThread(); + http->moveToThread(threa); + threa->start(); } void GooglePlugin::retranslate() { QString locale = QLocale::system().name(); - - QTranslator *googleTranslator = new QTranslator(this); - - if(locale == "pl_PL") - googleTranslator->load(":/translations/dict_google_pl"); - else - googleTranslator->load(":/translations/dict_google_en"); - - QCoreApplication::installTranslator(googleTranslator); + QTranslator *translator = new QTranslator(this); + if(!translator->load(":/google/translations/" + locale)) { + translator->load(":/google/translations/en_US"); + } + QCoreApplication::installTranslator(translator); } @@ -145,6 +151,10 @@ QIcon* GooglePlugin::icon() { return &_icon; } +QString GooglePlugin::iconPath(){ + return _iconPath; +} + CommonDictInterface* GooglePlugin::getNew(const Settings* settings) const { GooglePlugin *plugin = new GooglePlugin(); @@ -155,7 +165,7 @@ CommonDictInterface* GooglePlugin::getNew(const Settings* settings) const { QString GooglePlugin::search(QString) { - qDebug() << "function is not used in this plugin"; + qDebug() << "function is not used in google plugin"; return QString(""); } @@ -169,8 +179,10 @@ QList GooglePlugin::searchWordList(QString word, int ) { QList translations; if(isAvailable()) { QString error(""); - word.replace("*",""); /*remove wildcard*/ - word.replace("?",""); + char wrongChar[]={"*?&<>"}; + for(unsigned int a=0;avalue("lang_from"), _settings->value("lang_to")); @@ -187,17 +199,26 @@ QList GooglePlugin::searchWordList(QString word, int ) { wait=true; /* bool - change in slot done (initiate by http) */ stopped=false; /* bool - change in slot stop (initiate in gui) */ + int lastState=0; http->request(head, data); - while(wait && (error=="" || error=="Unknown error") && !stopped) + while(wait && (error=="" || error=="Unknown error") && !stopped){ error=http->errorString(); - + if(lastState!=http->state()) { + lastState=http->state(); + if(lastState==0) + done(); + } + } if(error!="" && error!="Unknown error") { - qDebug()<readAll()); +// qDebug()<<"google test"<" + "" + text + ""; @@ -272,9 +293,8 @@ QString GooglePlugin::jsonParse(QString result) { } returnLang=list1.at(index*2+1); if(partOfSpeach.size()==0){ - if(translation.toLower()==original.toLower()){ + if(translation.toLower()==original.toLower()) return QString(""); // word doesn't exist"; - } else return "\""+translation+"\""; } @@ -299,8 +319,9 @@ void GooglePlugin::stop() { } -QMap GooglePlugin::initLanguages() { - QMap languages; +void GooglePlugin::initLanguages() { + if(languages.count() != 0) return; + languages["Afrikaans"] = "af"; languages["Albanian"] = "sq"; languages["Arabic"] = "ar"; @@ -408,7 +429,6 @@ QMap GooglePlugin::initLanguages() { // languages["TONGA"] = "to"; // languages["UZBEK"] = "uz"; // languages["UIGHUR"] = "ug"; - return languages; }