fix small bug's
authorJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Fri, 27 Aug 2010 08:46:23 +0000 (10:46 +0200)
committerJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Fri, 27 Aug 2010 08:46:23 +0000 (10:46 +0200)
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/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/xdxfplugin.cpp

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 c0e89c5..68275b0 100644 (file)
 #include <QDebug>
 #include "GoogleDictDialog.h"
 
-
 GooglePlugin::GooglePlugin(QObject *parent): CommonDictInterface(parent),
                     _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
                     _type(tr("google")), _infoNote(tr("")) {
 
-    stopped = false;
-    _connectionAccept = false;
     _settings = new Settings();
     _dictDialog = new GoogleDictDialog(this,this);
+    http = new QHttp(this);
 
+    stopped = false;
+    _connectionAccept = false;
     _icon = QIcon(":/icons/drawing.png");
     languages=initLanguages();
     _settings->setValue("type","google");
-    _settings->setValue("connectionAcepted","false");
+    _settings->setValue("connectionAcepted","true");
 
-    http = new QHttp(this);
     connect(http, SIGNAL(done(bool)), this, SLOT(done()));
 }
 
@@ -82,10 +81,14 @@ DictDialog* GooglePlugin::dictDialog() {
 }
 
 bool GooglePlugin::isAvailable() const {
-    if(_connectionAccept)
+    if(_settings->value("connectionAcepted")=="true") {
+ //       _connectionAccept=true;
         return true;
-    else
+    }
+    else {
+//        _connectionAccept=false;
         return false;
+    }
 }
 
 void GooglePlugin::setConnectionAccept(QString connectionAcepted) {
@@ -123,6 +126,7 @@ QIcon* GooglePlugin::icon() {
 CommonDictInterface* GooglePlugin::getNew(const Settings* settings) const
 {
     GooglePlugin *plugin = new GooglePlugin();
+
     if(settings) {
         plugin->setLangFrom(settings->value("langFrom"));
         plugin->setLangTo(settings->value("langTo"));
@@ -145,6 +149,7 @@ void GooglePlugin::setSettings(Settings* settings) {
         foreach(QString key, list)
             _settings->setValue(key, settings->value(key));
         delete settings;
+        getDictionaryInfo();
     }
 }
 
@@ -155,10 +160,12 @@ Translation* GooglePlugin::getTranslationFor(QString key) {
 QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
     QList<Translation*> translations;
     if(isAvailable()) {
-        word.replace("*","");
+        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(_langFrom,
+                                                                     _langTo);
+        qDebug()<<  url;
         QHttpRequestHeader head = QHttpRequestHeader("POST", url, 1,1);
         head.setValue("Host","www.google.pl");
         head.setValue("User-Agent", "Mozilla/5.0");
@@ -193,6 +200,7 @@ QList<Translation*> GooglePlugin::searchWordList(QString word, int ) {
 }
 
 QString GooglePlugin::jsonParse(QString result) {
+    //qDebug()<<result;
     int pos=0,pos2=0,index=0,size=0;
     QString returnLang;
     QString translation;
@@ -202,7 +210,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 +218,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 +231,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 +255,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 +264,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
@@ -286,112 +293,112 @@ QMap<QString, QString> GooglePlugin::initLanguages() {
     QMap<QString, QString> languages;
     languages["AFRIKAANS"] = "af";
     languages["ALBANIAN"] = "sq";
-    languages["AMHARIC"] = "am";
+//    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["BENGALI"] = "bn";
+//    languages["BIHARI"] = "bh";
+//    languages["BRETON"] = "br";
     languages["BULGARIAN"] = "bg";
-    languages["BURMESE"] = "my";
+//    languages["BURMESE"] = "my";
     languages["CATALAN"] = "ca";
-    languages["CHEROKEE"] = "chr";
+//    languages["CHEROKEE"] = "chr";
     languages["CHINESE"] = "zh";
-    languages["CHINESE_SIMPLIFIED"] = "zh-CN";
-    languages["CHINESE_TRADITIONAL"] = "zh-TW";
-    languages["CORSICAN"] = "co";
+//    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["DHIVEHI"] = "dv";
     languages["DUTCH"] = "nl";
     languages["ENGLISH"] = "en";
-    languages["ESPERANTO"] = "eo";
+//    languages["ESPERANTO"] = "eo";
     languages["ESTONIAN"] = "et";
-    languages["FAROESE"] = "fo";
+//    languages["FAROESE"] = "fo";
     languages["FILIPINO"] = "tl";
     languages["FINNISH"] = "fi";
     languages["FRENCH"] = "fr";
-    languages["FRISIAN"] = "fy";
+//    languages["FRISIAN"] = "fy";
     languages["GALICIAN"] = "gl";
     languages["GEORGIAN"] = "ka";
     languages["GERMAN"] = "de";
     languages["GREEK"] = "el";
-    languages["GUJARATI"] = "gu";
+//    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["INUKTITUT"] = "iu";
     languages["IRISH"] = "ga";
     languages["ITALIAN"] = "it";
     languages["JAPANESE"] = "ja";
-    languages["JAVANESE"] = "jw";
-    languages["KANNADA"] = "kn";
-    languages["KAZAKH"] = "kk";
-    languages["KHMER"] = "km";
+//    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["KURDISH"] = "ku";
+//    languages["KYRGYZ"] = "ky";
+//    languages["LAO"] = "lo";
+//    languages["LATIN"] = "la";
     languages["LATVIAN"] = "lv";
     languages["LITHUANIAN"] = "lt";
-    languages["LUXEMBOURGISH"] = "lb";
+//    languages["LUXEMBOURGISH"] = "lb";
     languages["MACEDONIAN"] = "mk";
     languages["MALAY"] = "ms";
-    languages["MALAYALAM"] = "ml";
+//    languages["MALAYALAM"] = "ml";
     languages["MALTESE"] = "mt";
-    languages["MAORI"] = "mi";
-    languages["MARATHI"] = "mr";
-    languages["MONGOLIAN"] = "mn";
-    languages["NEPALI"] = "ne";
+//    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["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["PORTUGUESE_PORTUGAL"] = "pt-PT";
+//    languages["PUNJABI"] = "pa";
+//    languages["QUECHUA"] = "qu";
     languages["ROMANIAN"] = "ro";
     languages["RUSSIAN"] = "ru";
-    languages["SANSKRIT"] = "sa";
-    languages["SCOTS_GAELIC"] = "gd";
+//    languages["SANSKRIT"] = "sa";
+//    languages["SCOTS_GAELIC"] = "gd";
     languages["SERBIAN"] = "sr";
-    languages["SINDHI"] = "sd";
-    languages["SINHALESE"] = "si";
+//    languages["SINDHI"] = "sd";
+//    languages["SINHALESE"] = "si";
     languages["SLOVAK"] = "sk";
     languages["SLOVENIAN"] = "sl";
     languages["SPANISH"] = "es";
-    languages["SUNDANESE"] = "su";
+//    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["SYRIAC"] = "syr";
+//    languages["TAJIK"] = "tg";
+//    languages["TAMIL"] = "ta";
+//    languages["TATAR"] = "tt";
+//    languages["TELUGU"] = "te";
     languages["THAI"] = "th";
-    languages["TIBETAN"] = "bo";
-    languages["TONGA"] = "to";
+//    languages["TIBETAN"] = "bo";
+//    languages["TONGA"] = "to";
     languages["TURKISH"] = "tr";
     languages["UKRAINIAN"] = "uk";
     languages["URDU"] = "ur";
-    languages["UZBEK"] = "uz";
-    languages["UIGHUR"] = "ug";
+//    languages["UZBEK"] = "uz";
+//    languages["UIGHUR"] = "ug";
     languages["VIETNAMESE"] = "vi";
     languages["WELSH"] = "cy";
     languages["YIDDISH"] = "yi";
-    languages["YORUBA"] = "yo";
-    languages["UNKNOWN"] = "";
+//    languages["YORUBA"] = "yo";
+    languages["DETECT LANGLAGE"] = "";
     return languages;
 }
 
index 3e6931c..ca8ca0c 100644 (file)
@@ -121,8 +121,10 @@ public slots:
 
     void done();
 
-private:
     QString jsonParse(QString result);
+
+private:
+
     void getDictionaryInfo();
 
     QMap<QString, QString> languages;
index 94f07b3..6489cbd 100644 (file)
@@ -43,33 +43,25 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QStrin
     _langTo=languages.key(langTo);
     _langFrom=languages.key(langFrom);
 
-
     changeLangButton=new QPushButton(QIcon::fromTheme("object-flip-vertical"),tr(""));
     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")+
+                   tr("From: ") + languages.key(langFrom) + "\n" +
+                   tr("To: ") + languages.key(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))
@@ -80,7 +72,12 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QStrin
         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);
@@ -91,12 +88,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);
@@ -118,10 +109,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;
 }
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 322feb0..db6f69c 100644 (file)
@@ -136,7 +136,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 +186,6 @@ QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
     }
     stopped=false;
     dictionaryFile.close();
-    qDebug() << time.elapsed();
     return translations.toList();
 }
 
@@ -429,7 +427,7 @@ int XdxfPlugin::countWords() {
     return wordsCount;
 }
 
-bool XdxfPlugin::makeCache(QString dir) {
+bool XdxfPlugin::makeCache(QString) {
     cachingDialog->setVisible(true);
     QCoreApplication::processEvents();
     stopped = false;