#include "GoogleDictDialog.h"
GooglePlugin::GooglePlugin(QObject *parent): CommonDictInterface(parent),
- _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
- _type(tr("google")), _infoNote(tr("")) {
+ _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);
- http = new QHttp(this);
+ _icon = QIcon(":/icons/drawing.png");
stopped = false;
- _connectionAccept = false;
- _icon = QIcon(":/icons/drawing.png");
languages=initLanguages();
- _settings->setValue("type","google");
- _settings->setValue("connectionAcepted","true");
+ 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(_settings->value("connectionAcepted")=="true") {
- // _connectionAccept=true;
- return true;
- }
- else {
-// _connectionAccept=false;
- 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;
- getDictionaryInfo();
- }
+
+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()) {
+ QString error("");
word.replace("*",""); /*remove wildcard*/
word.replace("?","");
-
- QString url=QString("/translate_a/t?client=t&sl=%1&tl=%2").arg(_langFrom,
- _langTo);
- qDebug()<< url;
+ 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");
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();
Q_EMIT notify(Notify::Warning,
QString("GooglePlugin: %1").arg(error));
}
+
QString text = QString::fromUtf8(http->readAll());
text=jsonParse(text);
if(text!="") {
return translations;
}
+
QString GooglePlugin::jsonParse(QString result) {
- qDebug()<<result;
int pos=0,pos2=0,index=0,size=0;
QString returnLang;
QString translation;
}
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);
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["KOREAN"] = "ko";
+ languages["LATVIAN"] = "lv";
+ languages["LITHUANIAN"] = "lt";
+ languages["MACEDONIAN"] = "mk";
+ languages["MALAY"] = "ms";
+ languages["MALTESE"] = "mt";
+ languages["NORWEGIAN"] = "no";
+ languages["PERSIAN"] = "fa";
+ languages["POLISH"] = "pl";
+ languages["PORTUGUESE"] = "pt";
+ languages["ROMANIAN"] = "ro";
+ languages["RUSSIAN"] = "ru";
+ languages["SERBIAN"] = "sr";
+ languages["SLOVAK"] = "sk";
+ languages["SLOVENIAN"] = "sl";
+ languages["SPANISH"] = "es";
+ languages["SWAHILI"] = "sw";
+ languages["SWEDISH"] = "sv";
+ languages["THAI"] = "th";
+ languages["TURKISH"] = "tr";
+ languages["UKRAINIAN"] = "uk";
+ languages["URDU"] = "ur";
+ languages["VIETNAMESE"] = "vi";
+ languages["WELSH"] = "cy";
+ languages["YIDDISH"] = "yi";
+ 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["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["DETECT LANGLAGE"] = "";
- return languages;
+ 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)";
}
#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;
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."));
- infoLabel = new QLabel(tr("Plugin:GoogleTranslator \n")+
- tr("From: ") + languages.key(langFrom) + "\n" +
- tr("To: ") + languages.key(langTo));
+ 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);
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);
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;
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);
}