Merge branch 'master' into google
authorJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Mon, 30 Aug 2010 07:14:51 +0000 (09:14 +0200)
committerJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Mon, 30 Aug 2010 07:14:51 +0000 (09:14 +0200)
Conflicts:
trunk/src/plugins/google/src/GooglePlugin.cpp
trunk/src/plugins/xdxf/src/XdxfCachingDialog.cpp
trunk/src/plugins/xdxf/src/xdxfplugin.cpp

12 files changed:
trunk/src/base/backbone/backbone.cpp
trunk/src/includes/CommonDictInterface.h
trunk/src/plugins/google/src/GooglePlugin.cpp
trunk/src/plugins/google/src/GooglePlugin.h
trunk/src/plugins/google/src/GoogleSettingsDialog.cpp
trunk/src/plugins/google/src/GoogleSettingsDialog.h
trunk/src/plugins/google/src/TranslationGoogle.cpp
trunk/src/plugins/google/tests/test.cpp
trunk/src/plugins/google/tests/test.h
trunk/src/plugins/google/tests/tests.pro
trunk/src/plugins/xdxf/src/XdxfCachingDialog.cpp
trunk/src/plugins/xdxf/src/xdxfplugin.cpp

index a458852..10116c7 100644 (file)
@@ -530,14 +530,22 @@ void Backbone::searchHtml(QList<Translation *> translations) {
     QList<TranslationPtr> dummy;
     stopped = false;
     foreach(Translation* tr, translations) {
-        if(containsDict(tr->dict()) || !tr->dict())
+         if(containsDict(tr->dict()) || !tr->dict())
             dummy.append(TranslationPtr(tr));
+  /*      foreach(CommonDictInterface* dict, activeDicts()) {
+            Translation* trans = dict->getTranslationFor(tr->key());
+            if(trans)
+                dummy.append(TranslationPtr(trans));
+        } */
+    }
+    if(translations.size()>0) {
+        Translation *tr = translations.at(0);
         foreach(CommonDictInterface* dict, activeDicts()) {
             Translation* trans = dict->getTranslationFor(tr->key());
             if(trans)
                 dummy.append(TranslationPtr(trans));
         }
-  }
+    }
 
    _innerHtmlResult = QtConcurrent::mapped(dummy,
                                             &TranslationPtr::toHtml);
index f4af85d..2cd84f8 100644 (file)
@@ -89,7 +89,7 @@ class CommonDictInterface : public QObject, public AccentsNormalizer {
     //! returns plugin icon
     virtual QIcon* icon() = 0;
 
-    virtual Translation* getTranslationFor(QString key) {return 0;}
+    virtual Translation* getTranslationFor(QString) {return 0;}
 
  public Q_SLOTS:
     /*! performs search in dictionary
index 607c41c..d62d6ed 100644 (file)
 #include <QDebug>
 #include "GoogleDictDialog.h"
 
-
 GooglePlugin::GooglePlugin(QObject *parent): CommonDictInterface(parent),
-                    _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
-                    _type("google"), _infoNote(tr("")) {
-
-    stopped = false;
-    _connectionAccept = false;
+                    _name(tr("")),_infoNote(tr("")) {
     _settings = new Settings();
+    _settings->setValue("lang_to","");
+    _settings->setValue("lang_from","");
+    _settings->setValue("type","google");
+    _settings->setValue("connection_acepted","true");
     _dictDialog = new GoogleDictDialog(this,this);
-
     _icon = QIcon(":/icons/drawing.png");
+
+    stopped = false;
     languages=initLanguages();
-    _settings->setValue("type","google");
-    _settings->setValue("connectionAcepted","false");
 
     http = new QHttp(this);
     connect(http, SIGNAL(done(bool)), this, SLOT(done()));
 }
 
+
 GooglePlugin::~GooglePlugin() {
     delete _settings;
 }
 
+
 QString GooglePlugin::langFrom() const {
-    return languages.key(_langFrom);
+    return languages.key(_settings->value("lang_from"));
 }
+
+
 QString GooglePlugin::langTo() const {
-    return languages.key(_langTo);
+    return languages.key(_settings->value("lang_to"));
 }
 
+
 QString GooglePlugin::name() const {
     return QString("dictionary");
 }
 
+
 QString GooglePlugin::type() const {
-    return _type;
+    return QString("google");
 }
 
+
 QString GooglePlugin::infoNote() const {
     return _infoNote;
 }
 
+
 void GooglePlugin::setLangTo(QString langTo){
-    _langTo=langTo;
+    _settings->setValue("lang_to",langTo);
 }
 
+
 void GooglePlugin::setLangFrom(QString langFrom){
-    _langFrom=langFrom;
+    _settings->setValue("lang_from",langFrom);;
 }
 
+
 DictDialog* GooglePlugin::dictDialog() {
     return _dictDialog;
 }
 
+
 bool GooglePlugin::isAvailable() const {
-    if(_connectionAccept)
-        return true;
-    else
-        return false;
+    return isConnectionAccept();
 }
 
+
 void GooglePlugin::setConnectionAccept(QString connectionAcepted) {
     if(connectionAcepted=="true")
-        _connectionAccept=true;
+        _settings->setValue("connection_acepted","true");
     else
-        _connectionAccept=false;
+        _settings->setValue("connection_acepted","false");
 }
 
-bool GooglePlugin::isConnectionAccept() {
-    return _connectionAccept;
+bool GooglePlugin::isConnectionAccept() const {
+    if(_settings->value("connection_acepted")=="true")
+        return true;
+    else
+        return false;
 }
 
-QString GooglePlugin::search(QString) {
-    /*function is not used on this plagin */
-    return QString("");
-}
 
 uint GooglePlugin::hash() const {
     return _hash;
 }
 
+
 void GooglePlugin::setHash(uint) {
     this->_hash=_hash;
 }
 
+
 Settings* GooglePlugin::settings() {
-    return _settings;
+    Settings *returnSettings=new Settings;
+    QStringList list = _settings->keys();
+    foreach(QString key, list)
+            returnSettings->setValue(key,_settings->value(key));
+    return returnSettings;
 }
 
-QIcon* GooglePlugin::icon() {
-    return &_icon;
-}
 
-CommonDictInterface* GooglePlugin::getNew(const Settings* settings) const
-{
-    GooglePlugin *plugin = new GooglePlugin();
+void GooglePlugin::setSettings(const Settings* settings) {
     if(settings) {
-        plugin->setLangFrom(settings->value("langFrom"));
-        plugin->setLangTo(settings->value("langTo"));
-        plugin->setConnectionAccept(settings->value("connectionAccept"));
         QStringList list = settings->keys();
         foreach(QString key, list)
-            plugin->settings()->setValue(key, settings->value(key));
+            _settings->setValue(key, settings->value(key));
+        getDictionaryInfo();
     }
-    delete settings;
-    plugin->getDictionaryInfo();
+}
+
+
+QIcon* GooglePlugin::icon() {
+    return &_icon;
+}
+
+
+CommonDictInterface* GooglePlugin::getNew(const Settings* settings) const {
+    GooglePlugin *plugin = new GooglePlugin();
+    plugin->setSettings(settings);
     return plugin;
 }
 
-void GooglePlugin::setSettings(Settings* settings) {
-    if(settings){
-        _langFrom=settings->value("langFrom");
-        _langTo=settings->value("langTo");
-        setConnectionAccept(settings->value("connectionAccept"));
-        QStringList list = settings->keys();
-        foreach(QString key, list)
-            _settings->setValue(key, settings->value(key));
-        delete settings;
-    }
+
+QString GooglePlugin::search(QString) {
+    qDebug() << "function is not used on this plagin";
+    return QString("");
 }
 
+
 Translation* GooglePlugin::getTranslationFor(QString key) {
     return (new TranslationGoogle(key,"",_infoNote,this));
 }
 
+
 QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
     QList<Translation*> translations;
     if(isAvailable()) {
-        word.replace("*","");
+        QString error("");
+        word.replace("*","");   /*remove wildcard*/
         word.replace("?","");
-        QString url = QString("/translate_a/t?client=t&sl=%1&tl=%2").arg(_langFrom,
-                                                                         _langTo);
+        QString url=QString("/translate_a/t?client=t&sl=%1&tl=%2").arg(
+                                              _settings->value("lang_from"),
+                                              _settings->value("lang_to"));
         QHttpRequestHeader head = QHttpRequestHeader("POST", url, 1,1);
         head.setValue("Host","www.google.pl");
         head.setValue("User-Agent", "Mozilla/5.0");
@@ -170,10 +182,9 @@ QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
         data.append(word.toUtf8());
         http->setHost("www.google.pl");
 
-        wait=true;
-        stopped=false;
+        wait=true;      /* bool - change in slot done (initiate by http) */
+        stopped=false;  /* bool - change in slot stop (initiate in gui)  */
         http->request(head, data);
-        QString error("");
         while(wait && (error=="" || error=="Unknown error") && !stopped)
             error=http->errorString();
 
@@ -182,6 +193,7 @@ QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
             Q_EMIT notify(Notify::Warning,
                     QString("GooglePlugin: %1").arg(error));
         }
+
         QString text = QString::fromUtf8(http->readAll());
         text=jsonParse(text);
         if(text!="") {
@@ -192,6 +204,7 @@ QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
     return translations;
 }
 
+
 QString GooglePlugin::jsonParse(QString result) {
     int pos=0,pos2=0,index=0,size=0;
     QString returnLang;
@@ -202,7 +215,6 @@ QString GooglePlugin::jsonParse(QString result) {
     QStringList list1 = result.split("\"");
 
     size=(list1.size()-1)/2;
-
     if(size<=2)
         return QString(""); // wrong format of data
 
@@ -211,7 +223,6 @@ QString GooglePlugin::jsonParse(QString result) {
     original=list1.at(index*2+1);
     pos=result.indexOf("]");
     index++;
-
     while(result.at(pos+1)==QChar(',')) {
         index++;
         translation+=list1.at(index*2+1);
@@ -225,7 +236,7 @@ QString GooglePlugin::jsonParse(QString result) {
     pos++;
     index++;
     if(result.at(pos+1)==QChar(','))
-        returnLang=list1.at(index*2+1);
+        returnLang=list1.at(index*2+1); /*return when translate sentence*/
 
     while(result.indexOf("[",pos+1)!=-1){
         partOfSpeach.append(list1.at(index*2+1));
@@ -249,6 +260,7 @@ QString GooglePlugin::jsonParse(QString result) {
             return QString("");
         pos=pos2+2;
     }
+
     if(words.size()!=partOfSpeach.size()) {
         qDebug()<<"Error in Google Plugin (JsonParse)";
         Q_EMIT notify(Notify::Warning,
@@ -257,7 +269,7 @@ QString GooglePlugin::jsonParse(QString result) {
     }
     returnLang=list1.at(index*2+1);
     if(partOfSpeach.size()==0){
-        if(translation==original){
+        if(translation.toLower()==original.toLower()){
             return QString(""); // word don't exist";
         }
         else
@@ -265,8 +277,7 @@ QString GooglePlugin::jsonParse(QString result) {
     }
     result=translation;
     for(int i=0; i<words.size();i++) {
-        result+="<br/>";
-        result+="<pos>"+partOfSpeach.at(i)+"</pos>:";
+        result+="<br/><pos>"+partOfSpeach.at(i)+"</pos>: ";
         for(int j=0; j<words.at(i)->size();j++)
             result+=words.at(i)->at(j)+", ";
         result.remove(result.size()-2,2);
@@ -274,132 +285,134 @@ QString GooglePlugin::jsonParse(QString result) {
     return result;
 }
 
+
 void GooglePlugin::done() {
     wait=false;
 }
 
+
 void GooglePlugin::stop() {
     stopped=true;
 }
 
+
 QMap<QString, QString> GooglePlugin::initLanguages() {
     QMap<QString, QString> languages;
     languages["AFRIKAANS"] = "af";
     languages["ALBANIAN"] = "sq";
-    languages["AMHARIC"] = "am";
     languages["ARABIC"] = "ar";
     languages["ARMENIAN"] = "hy";
     languages["AZERBAIJANI"] = "az";
     languages["BASQUE"] = "eu";
     languages["BELARUSIAN"] = "be";
-    languages["BENGALI"] = "bn";
-    languages["BIHARI"] = "bh";
-    languages["BRETON"] = "br";
     languages["BULGARIAN"] = "bg";
-    languages["BURMESE"] = "my";
     languages["CATALAN"] = "ca";
-    languages["CHEROKEE"] = "chr";
     languages["CHINESE"] = "zh";
-    languages["CHINESE_SIMPLIFIED"] = "zh-CN";
-    languages["CHINESE_TRADITIONAL"] = "zh-TW";
-    languages["CORSICAN"] = "co";
     languages["CROATIAN"] = "hr";
     languages["CZECH"] = "cs";
     languages["DANISH"] = "da";
-    languages["DHIVEHI"] = "dv";
     languages["DUTCH"] = "nl";
     languages["ENGLISH"] = "en";
-    languages["ESPERANTO"] = "eo";
     languages["ESTONIAN"] = "et";
-    languages["FAROESE"] = "fo";
     languages["FILIPINO"] = "tl";
     languages["FINNISH"] = "fi";
     languages["FRENCH"] = "fr";
-    languages["FRISIAN"] = "fy";
     languages["GALICIAN"] = "gl";
     languages["GEORGIAN"] = "ka";
     languages["GERMAN"] = "de";
     languages["GREEK"] = "el";
-    languages["GUJARATI"] = "gu";
     languages["HAITIAN_CREOLE"] = "ht";
     languages["HEBREW"] = "iw";
     languages["HINDI"] = "hi";
     languages["HUNGARIAN"] = "hu";
     languages["ICELANDIC"] = "is";
     languages["INDONESIAN"] = "id";
-    languages["INUKTITUT"] = "iu";
     languages["IRISH"] = "ga";
     languages["ITALIAN"] = "it";
     languages["JAPANESE"] = "ja";
-    languages["JAVANESE"] = "jw";
-    languages["KANNADA"] = "kn";
-    languages["KAZAKH"] = "kk";
-    languages["KHMER"] = "km";
     languages["KOREAN"] = "ko";
-    languages["KURDISH"] = "ku";
-    languages["KYRGYZ"] = "ky";
-    languages["LAO"] = "lo";
-    languages["LATIN"] = "la";
     languages["LATVIAN"] = "lv";
     languages["LITHUANIAN"] = "lt";
-    languages["LUXEMBOURGISH"] = "lb";
     languages["MACEDONIAN"] = "mk";
     languages["MALAY"] = "ms";
-    languages["MALAYALAM"] = "ml";
     languages["MALTESE"] = "mt";
-    languages["MAORI"] = "mi";
-    languages["MARATHI"] = "mr";
-    languages["MONGOLIAN"] = "mn";
-    languages["NEPALI"] = "ne";
     languages["NORWEGIAN"] = "no";
-    languages["OCCITAN"] = "oc";
-    languages["ORIYA"] = "or";
-    languages["PASHTO"] = "ps";
     languages["PERSIAN"] = "fa";
     languages["POLISH"] = "pl";
     languages["PORTUGUESE"] = "pt";
-    languages["PORTUGUESE_PORTUGAL"] = "pt-PT";
-    languages["PUNJABI"] = "pa";
-    languages["QUECHUA"] = "qu";
     languages["ROMANIAN"] = "ro";
     languages["RUSSIAN"] = "ru";
-    languages["SANSKRIT"] = "sa";
-    languages["SCOTS_GAELIC"] = "gd";
     languages["SERBIAN"] = "sr";
-    languages["SINDHI"] = "sd";
-    languages["SINHALESE"] = "si";
     languages["SLOVAK"] = "sk";
     languages["SLOVENIAN"] = "sl";
     languages["SPANISH"] = "es";
-    languages["SUNDANESE"] = "su";
     languages["SWAHILI"] = "sw";
     languages["SWEDISH"] = "sv";
-    languages["SYRIAC"] = "syr";
-    languages["TAJIK"] = "tg";
-    languages["TAMIL"] = "ta";
-    languages["TATAR"] = "tt";
-    languages["TELUGU"] = "te";
     languages["THAI"] = "th";
-    languages["TIBETAN"] = "bo";
-    languages["TONGA"] = "to";
     languages["TURKISH"] = "tr";
     languages["UKRAINIAN"] = "uk";
     languages["URDU"] = "ur";
-    languages["UZBEK"] = "uz";
-    languages["UIGHUR"] = "ug";
     languages["VIETNAMESE"] = "vi";
     languages["WELSH"] = "cy";
     languages["YIDDISH"] = "yi";
-    languages["YORUBA"] = "yo";
-    languages["UNKNOWN"] = "";
-    return languages;
+    languages["DETECT LANGLAGE"] = "";
+//    languages["AMHARIC"] = "am";
+//    languages["BENGALI"] = "bn";
+//    languages["BIHARI"] = "bh";
+//    languages["BRETON"] = "br";
+//    languages["BURMESE"] = "my";
+//    languages["CHEROKEE"] = "chr";
+//    languages["CHINESE_SIMPLIFIED"] = "zh-CN";
+//    languages["CHINESE_TRADITIONAL"] = "zh-TW";
+//    languages["CORSICAN"] = "co";
+//    languages["DHIVEHI"] = "dv";
+//    languages["ESPERANTO"] = "eo";
+//    languages["FAROESE"] = "fo";
+//    languages["FRISIAN"] = "fy";
+//    languages["GUJARATI"] = "gu";
+//    languages["INUKTITUT"] = "iu";
+//    languages["JAVANESE"] = "jw";
+//    languages["KANNADA"] = "kn";
+//    languages["KAZAKH"] = "kk";
+//    languages["KHMER"] = "km";
+//    languages["KURDISH"] = "ku";
+//    languages["KYRGYZ"] = "ky";
+//    languages["LAO"] = "lo";
+//    languages["LATIN"] = "la";
+//    languages["LUXEMBOURGISH"] = "lb";
+//    languages["MALAYALAM"] = "ml";
+//    languages["MAORI"] = "mi";
+//    languages["MARATHI"] = "mr";
+//    languages["MONGOLIAN"] = "mn";
+//    languages["NEPALI"] = "ne";
+//    languages["OCCITAN"] = "oc";
+//    languages["ORIYA"] = "or";
+//    languages["PASHTO"] = "ps";
+//    languages["PORTUGUESE_PORTUGAL"] = "pt-PT";
+//    languages["PUNJABI"] = "pa";
+//    languages["QUECHUA"] = "qu";
+//    languages["SANSKRIT"] = "sa";
+//    languages["SCOTS_GAELIC"] = "gd";
+//    languages["SINDHI"] = "sd";
+//    languages["SINHALESE"] = "si";
+//    languages["SUNDANESE"] = "su";
+//    languages["SYRIAC"] = "syr";
+//    languages["TAJIK"] = "tg";
+//    languages["TAMIL"] = "ta";
+//    languages["TATAR"] = "tt";
+//    languages["TELUGU"] = "te";
+//    languages["TIBETAN"] = "bo";
+//    languages["TONGA"] = "to";
+//    languages["UZBEK"] = "uz";
+//    languages["UIGHUR"] = "ug";
+    return languages;  
 }
 
+
 void GooglePlugin::getDictionaryInfo() {
-    QString fullLangFrom=languages.key(_langFrom);
-    QString fullLangTo=languages.key(_langTo);
-    _infoNote=" [" + fullLangFrom + "-";
-    _infoNote+= fullLangTo + "] (" + _type + ")";
+    QString fullLangFrom=languages.key(_settings->value("lang_from"));
+    QString fullLangTo=languages.key(_settings->value("lang_to"));
+    _infoNote=" [" + fullLangFrom + "-" + fullLangTo + "] (Google)";
 }
 
 
index 3e6931c..69b0e35 100644 (file)
@@ -82,7 +82,7 @@ public:
 
     void setConnectionAccept(QString connectionAcepted);
 
-    bool isConnectionAccept();
+    bool isConnectionAccept() const;
 
     //! returns a description of a word given by a QString
     QString search(QString key);
@@ -97,7 +97,7 @@ public:
     Settings* settings();
 
     //! Sets new settings
-    void setSettings(Settings*);
+    void setSettings(const Settings*);
 
     //! returns plugin icon
     QIcon* icon();
@@ -121,16 +121,11 @@ public slots:
 
     void done();
 
-private:
     QString jsonParse(QString result);
-    void getDictionaryInfo();
 
+private:
+    void getDictionaryInfo();
     QMap<QString, QString> languages;
-    //! language from which we translate
-    QString _langFrom;
-    //! language to which we translate
-    QString _langTo;
-    //! name of a dictionary
     QString _name;
     //! type of a dictionary
     QString _type;
index 39c1aec..f35f017 100644 (file)
@@ -26,7 +26,7 @@
 #include "GoogleSettingsDialog.h"
 #include <QDebug>
 
-GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QString langFrom) :
+GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,Settings *pluginSettings) :
     QDialog(parent)
 {
     QMap<QString, QString> languages;
@@ -35,56 +35,54 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QStrin
     int actualLangTo=1;
     int actualLangFrom=1;
 
-    if(langTo=="")
-        langTo="pl";
-    if(langFrom=="")
-        langFrom="en";
-
-    _langTo=languages.key(langTo);
-    _langFrom=languages.key(langFrom);
-
+    if(pluginSettings==0) {
+        _langTo=languages.key("pl");
+        _langFrom=languages.key("en");
+    }
+    else {
+        _langTo=languages.key(pluginSettings->value("lang_to"));
+        _langFrom=languages.key(pluginSettings->value("lang_from"));
+    }
 
     #ifdef Q_WS_MAEMO_5
         changeLangButton=new QPushButton(QIcon::fromTheme("general_refresh"),tr(""));
     #else
         changeLangButton=new QPushButton(QIcon::fromTheme("object-flip-vertical"),tr(""));
     #endif
+
     langFromLabel = new QLabel("From:");
     langToLabel = new QLabel(" To: ");
     connectInfoLabel = new QLabel(tr("Google plugin make use of internet "
                                      "conection, so it may cost You."));
-    connectInfoLabel->setWordWrap(true);
-
-
-    setWindowTitle(tr("Google Settings"));
-
+    infoLabel = new QLabel(tr("Plugin:GoogleTranslator \n From: %1 \n To: %2").arg(
+                            _langFrom,_langTo));
     verticalLayout = new QVBoxLayout(this);
     langLayout = new QVBoxLayout(this);
     langFromLayout = new QHBoxLayout(this);
     langToLayout = new QHBoxLayout(this);
     changelangLayout = new QHBoxLayout(this);
-
-    setLayout(verticalLayout);
-
-    infoLabel = new QLabel(this);
-    infoLabel->setText(tr("Plugin:GoogleTranslator \n")+
-                   tr("From: ") + languages.key(langFrom) + "\n" +
-                   tr("To: ") + languages.key(langTo));
-    verticalLayout->addWidget(infoLabel);
-
     langFromComboBox = new QComboBox(this);
     langToComboBox = new QComboBox(this);
+    saveButton = new QPushButton(tr("Save settings"),this);
+
+    connectInfoLabel->setWordWrap(true);
+
     int i=0;
     foreach(QString langs,languages.keys()){
-        if(langs==languages.key(langTo))
+        if(langs==_langTo)
             actualLangTo=i;
-        if(langs==languages.key(langFrom))
+        if(langs==_langFrom)
             actualLangFrom=i;
         langToComboBox->addItem(langs);
         langFromComboBox->addItem(langs);
         i++;
     }
+    langToComboBox->setCurrentIndex(actualLangTo);
+    langFromComboBox->setCurrentIndex(actualLangFrom);
 
+    setWindowTitle(tr("Google Settings"));
+    setLayout(verticalLayout);
+    verticalLayout->addWidget(infoLabel);
     verticalLayout->addWidget(connectInfoLabel);
     langFromLayout->addWidget(langFromLabel);
     langFromLayout->addWidget(langFromComboBox);
@@ -95,12 +93,6 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QStrin
     changelangLayout->addLayout(langLayout);
     changelangLayout->addWidget(changeLangButton);
     verticalLayout->addLayout(changelangLayout);
-
-
-    langToComboBox->setCurrentIndex(actualLangTo);
-    langFromComboBox->setCurrentIndex(actualLangFrom);
-
-    saveButton = new QPushButton(tr("Save settings"),this);
     verticalLayout->addWidget(saveButton);
 
     setModal(true);
@@ -122,10 +114,8 @@ void GoogleSettingsDialog::activatedTo(int index) {
 void GoogleSettingsDialog::changeLangButtonClicked() {
     int tempIndexTo=langToComboBox->currentIndex();
     QString tempLangTo=_langTo;
-
     langToComboBox->setCurrentIndex(langFromComboBox->currentIndex());
     langFromComboBox->setCurrentIndex(tempIndexTo);
-
     _langTo=_langFrom;
     _langFrom=tempLangTo;
 }
@@ -138,15 +128,16 @@ QString GoogleSettingsDialog::langTo() {
     return _langTo;
 }
 
-Settings* GoogleSettingsDialog::getSettings(QWidget *parent,QString langTo,QString langFrom) {
-    GoogleSettingsDialog settingsDialog(parent,langTo,langFrom);
+Settings* GoogleSettingsDialog::getSettings(QWidget *parent,Settings *pluginSettings) {
+    GoogleSettingsDialog settingsDialog(parent,pluginSettings);
     QMap<QString, QString> languages;
     languages=GooglePlugin::initLanguages();
     if(settingsDialog.exec()==QDialog::Accepted) {
         Settings *settings = new Settings();
-        settings->setValue("langTo",languages.value(settingsDialog.langTo()));
-        settings->setValue("langFrom",languages.value(settingsDialog.langFrom()));
-        settings->setValue("connectionAccept","true");
+        settings->setValue("lang_to",languages.value(settingsDialog.langTo()));
+        settings->setValue("lang_from",languages.value(settingsDialog.langFrom()));
+        settings->setValue("connection_accept","true");
+        settings->setValue("type","google");
         return settings;
     }
     return 0;
@@ -154,7 +145,7 @@ Settings* GoogleSettingsDialog::getSettings(QWidget *parent,QString langTo,QStri
 
 void GoogleSettingsDialog::changeSettings(GooglePlugin* plugin, QWidget *parent) {
     Settings *settings = new Settings();
-    settings=getSettings(parent,plugin->settings()->value("langTo"),plugin->settings()->value("langFrom"));
+    settings=getSettings(parent,plugin->settings());
     if(settings)
         plugin->setSettings(settings);
 }
index 13ae5ee..511de18 100644 (file)
@@ -38,7 +38,7 @@ class GoogleSettingsDialog : public QDialog
 {
     Q_OBJECT
 public:
-    explicit GoogleSettingsDialog(QWidget *parent = 0,QString langTo ="",QString langFrom ="");
+    explicit GoogleSettingsDialog(QWidget *parent = 0,Settings *pluginSettings=0);
 
     /*!
         \param parent parent widget on which will be displayed dialog
@@ -46,7 +46,7 @@ public:
         \param langFrom language witch is display in the comboBox as a startup item
         \returns function return settings to GooglePlugin
     */
-    static Settings* getSettings(QWidget *parent,QString langTo ="",QString langFrom ="");
+    static Settings* getSettings(QWidget *parent,Settings *pluginSettings=0);
 
     /*!
         function set a new settings in plugin;
@@ -86,7 +86,7 @@ private:
     QString _langTo;
 
 
-/*    QPushButton* browseButton;
+/*  QPushButton* browseButton;
     QLabel* browseLabel;
     QCheckBox* cacheCheckBox;
 
index 01528d6..c2cdc1e 100644 (file)
@@ -55,15 +55,14 @@ QString TranslationGoogle::toHtml() const {
         result+="bookmark=\"true\" >";
     else
         result+="bookmark=\"false\" >";
+
     if(_trans!="")
         return result+=_dictionaryInfo+ "</info>"+_trans +"</dict>";
 
     QList<Translation*> translations=googlePlugin->searchWordList(_key);
-    if(translations.size()>0 && translations.at(0)) {
-        QString res =  translations.at(0)->toHtml();
-        return res;
-   }
-   return "";
+    if(translations.size()>0 && translations.at(0))
+        return translations.at(0)->toHtml();
+    return "";
 
 }
 
index 09924e0..eb71e3f 100644 (file)
 #include "test.h"
 #include <QSignalSpy>
 
-void GoogleTest::getNew() {
+void GoogleTest::jsonParse() {
+
+    GooglePlugin plugin;
+    QString test1("[[[\"kot\",\"cat\",\"\"]],[[\"rzeczownik\",[\"kot\",\"kotka\",\"kociątko\",\"złośliwa kobieta\"]],[\"czasownik\",[\"podnieść\"]]],\"en\"]");
+    QString test2("[[[\"Go! \",\"go!\",\"\"],[\"wyjechać\",\"go away\",\"\"]],[[\"czasownik\",[\"wyjechać\",\"odchodzić\",\"zgrzeszyć\"]],[\"wykrzyknik\",[\"Odejdź\"]]],\"en\"]");
+    QString test3("");
+    QString test4("");
+    QString test5("");
+
+    QCOMPARE(plugin.jsonParse(test1),QString("kot<br/><pos>rzeczownik</pos>:kot, kotka, kociątko, złośliwa kobieta<br/><pos>czasownik</pos>:podnieść"));
+    QCOMPARE(plugin.jsonParse(test2),QString("Go! wyjechać<br/><pos>czasownik</pos>:wyjechać, odchodzić, zgrzeszyć<br/><pos>wykrzyknik</pos>:Odejdź"));
+
+
 
-    GooglePlugin googlePlugin(this);
-    Settings *settings=new Settings;
-    settings->setValue("langFrom","pl");
-    settings->setValue("langTo","en");
 }
 
 QTEST_MAIN(GoogleTest)
index 70a8bcf..43a9f7d 100644 (file)
@@ -32,7 +32,7 @@
 
 
  private slots:
-     void getNew();
+     void jsonParse();
 
  };
 
index 22afa83..9c7bf3e 100644 (file)
@@ -15,11 +15,15 @@ HEADERS += test.h \
     ../../../includes/settings.h \
     ../../../includes/DictDialog.h \
     ../../../includes/CommonDictInterface.h \
-    ../src/TranslationGoogle.h
+    ../src/TranslationGoogle.h \
+    ../src/GoogleDictDialog.h \
+    ../src/GoogleSettingsDialog.h
 
 SOURCES += test.cpp \
     ../src/GooglePlugin.cpp \
-    ../src/TranslationGoogle.cpp
+    ../src/TranslationGoogle.cpp \
+    ../src/GoogleDictDialog.cpp \
+    ../src/GoogleSettingsDialog.cpp
 
 check.target = check
 check.commands = ./GooglePluginTests
index 402fd31..f06f69c 100644 (file)
@@ -28,8 +28,8 @@
 #include <QDebug>
 
 
-XdxfCachingDialog::XdxfCachingDialog(XdxfPlugin *parent) :
-    QDialog((QWidget*)parent)
+XdxfCachingDialog::XdxfCachingDialog(XdxfPlugin *parent) //:
+//    QDialog((QWidget*)parent)
 {
     verticalLayout = new QVBoxLayout(this);
     setLayout(verticalLayout);
@@ -54,9 +54,8 @@ XdxfCachingDialog::XdxfCachingDialog(XdxfPlugin *parent) :
     connect(cancelButton, SIGNAL(clicked()),
             this, SIGNAL(cancelCaching()));
 
-   // connect(parent, SIGNAL(updateCachingProgress(int, int)),
-    //        this, SLOT(updateCachingProgress(int, int)));
-
+   connect(parent, SIGNAL(updateCachingProgress(int, int)),
+           this, SLOT(updateCachingProgress(int, int)));
     time.start();
 }
 
index ae9f35e..09af5e7 100644 (file)
 
 XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
                     _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
-                    _type("xdxf"), _infoNote(tr("")) {
+                    _type(tr("xdxf")), _infoNote(tr("")) {
     _wordsCount = -1;
     _settings = new Settings();
     _dictDialog = new XdxfDictDialog(this);
-    cachingDialog = new XdxfCachingDialog();
+    cachingDialog = new XdxfCachingDialog(this);
+
 
     connect(cachingDialog, SIGNAL(cancelCaching()),
             this, SLOT(stop()));
-
     connect(this, SIGNAL(updateCachingProgress(int,int)),
             cachingDialog, SLOT(updateCachingProgress(int,int)));
 
+
     _settings->setValue("type","xdxf");
 
     stopped = false;
@@ -53,6 +54,7 @@ XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
 
 XdxfPlugin::~XdxfPlugin() {
     delete _settings;
+    delete cachingDialog;
 }
 
 
@@ -136,7 +138,6 @@ QList<Translation*> XdxfPlugin::searchWordListCache(QString word, int limit) {
 
 QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
     QTime time;
-    time.start();
     QSet<Translation*> translations;
     QFile dictionaryFile(path);
 
@@ -187,7 +188,6 @@ QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
     }
     stopped=false;
     dictionaryFile.close();
-    qDebug() << time.elapsed();
     return translations.toList();
 }
 
@@ -352,28 +352,29 @@ bool XdxfPlugin::isCached() {
 
 
 void XdxfPlugin::setSettings(Settings *settings) {
+    if(settings)
+    {
+        QString oldPath = _settings->value("path");
+        if(oldPath != settings->value("path")) {
+            setPath(settings->value("path"));
+        }
 
-    QString oldPath = _settings->value("path");
-    if(oldPath != settings->value("path")) {
-        setPath(settings->value("path"));
-    }
+       foreach(QString key, settings->keys())
+           if(key != "generateCache")
+               _settings->setValue(key, settings->value(key));
 
-   foreach(QString key, settings->keys())
-       if(key != "generateCache")
-           _settings->setValue(key, settings->value(key));
+        if((_settings->value("cached") == "false" ||
+                _settings->value("cached").isEmpty()) &&
+                settings->value("generateCache") == "true") {
+            makeCache("");
+        }
+        else if (settings->value("generateCache") != "true") {
+           _settings->setValue("cached", "false");
+        }
 
-    if((_settings->value("cached") == "false" ||
-            _settings->value("cached").isEmpty()) &&
-            settings->value("generateCache") == "true") {
-        makeCache("");
-    }
-    else if (settings->value("generateCache") != "true") {
-       _settings->setValue("cached", "false");
+        getDictionaryInfo();
+        delete settings;
     }
-
-
-    delete settings;
-
     Q_EMIT settingsChanged();
 }
 
@@ -445,7 +446,7 @@ int XdxfPlugin::countWords() {
     return wordsCount;
 }
 
-bool XdxfPlugin::makeCache(QString dir) {
+bool XdxfPlugin::makeCache(QString) {
     cachingDialog->setVisible(true);
     QCoreApplication::processEvents();
     stopped = false;
@@ -456,7 +457,6 @@ bool XdxfPlugin::makeCache(QString dir) {
 
     QFile dictionaryFile(dictFileN.filePath());
 
-
     if (!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
         Q_EMIT updateCachingProgress(100, 0);
         Q_EMIT notify(Notify::Warning,