Merge branch 'master' of ssh://drop.maemo.org/git/mdictionary
[mdictionary] / trunk / src / plugins / google / src / GoogleSettingsDialog.cpp
index a2f1115..acd17de 100644 (file)
 #include <QDebug>
 
 GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,
-                                           QString langTo,
-                                           QString langFrom,
+                                           Settings *pluginSettings,
                                            QString acceptButtonLabel) :
-    QDialog(parent) {
+                                           QDialog(parent)
+{
     QMap<QString, QString> languages;
     languages=GooglePlugin::initLanguages();
 
     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
 
@@ -53,13 +54,13 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,
         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);
-
 
+    connectInfoLabel->setWordWrap(true);
     setWindowTitle(tr("Google Settings"));
 
     verticalLayout = new QVBoxLayout;
@@ -72,23 +73,27 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,
 
     infoLabel = new QLabel;
     infoLabel->setText(tr("Plugin:GoogleTranslator \n")+
-                   tr("From: ") + languages.key(langFrom) + "\n" +
-                   tr("To: ") + languages.key(langTo));
+                   tr("From: ") + _langFrom + "\n" +
+                   tr("To: ") + _langTo);
     verticalLayout->addWidget(infoLabel);
 
     langFromComboBox = new QComboBox;
     langToComboBox = new QComboBox;
+
     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"));
     verticalLayout->addWidget(connectInfoLabel);
     langFromLayout->addWidget(langFromLabel);
     langFromLayout->addWidget(langFromComboBox);
@@ -100,10 +105,6 @@ GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,
     changelangLayout->addWidget(changeLangButton);
     verticalLayout->addLayout(changelangLayout);
 
-
-    langToComboBox->setCurrentIndex(actualLangTo);
-    langFromComboBox->setCurrentIndex(actualLangFrom);
-
     saveButton = new QPushButton(acceptButtonLabel);
     verticalLayout->addWidget(saveButton);
 
@@ -130,10 +131,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;
 }
@@ -147,21 +146,18 @@ QString GoogleSettingsDialog::langTo() {
 }
 
 Settings* GoogleSettingsDialog::getSettings(QWidget *parent,
-                                            QString langTo,
-                                            QString langFrom,
-                                            QString acceptButtonLabel) {
-    GoogleSettingsDialog settingsDialog(parent,
-                                        langTo,
-                                        langFrom,
-                                        acceptButtonLabel);
+                                            Settings *pluginSettings,
+                                             QString acceptButtonLabel) {
+    GoogleSettingsDialog settingsDialog(parent,pluginSettings,acceptButtonLabel);
+
     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;
@@ -170,10 +166,7 @@ Settings* GoogleSettingsDialog::getSettings(QWidget *parent,
 void GoogleSettingsDialog::changeSettings(GooglePlugin* plugin,
                                           QWidget *parent) {
     Settings *settings = new Settings();
-    settings=getSettings(parent,
-                         plugin->settings()->value("langTo"),
-                         plugin->settings()->value("langFrom"),
-                         tr("Save changes"));
+    settings=getSettings(parent,plugin->settings(),tr("Save changes"));
     if(settings)
         plugin->setSettings(settings);
 }