add googleSettingsDialog
[mdictionary] / trunk / src / plugins / google / src / GoogleSettingsDialog.cpp
1 #include "GoogleSettingsDialog.h"
2 #include <QDebug>
3
4 GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,QString langTo,QString langFrom) :
5     QDialog(parent)
6 {
7     QMap<QString, QString> languages;
8     languages=GooglePlugin::initLanguages();
9
10     int actualLangTo=1;
11     int actualLangFrom=1;
12
13     if(langTo=="")
14         langTo="pl";
15     if(langFrom=="")
16         langFrom="en";
17
18     _langTo=languages.key(langTo);
19     _langFrom=languages.key(langFrom);
20
21
22     changeLangButton=new QPushButton(QIcon(":/icons/staron.png"),tr(""));
23     langFromLabel = new QLabel("From:");
24     langToLabel = new QLabel(" To: ");
25
26     setWindowTitle(tr("Google Settings"));
27
28     verticalLayout = new QVBoxLayout(this);
29     langLayout = new QVBoxLayout(this);
30     langFromLayout = new QHBoxLayout(this);
31     langToLayout = new QHBoxLayout(this);
32     changelangLayout = new QHBoxLayout(this);
33
34     setLayout(verticalLayout);
35
36     infoLabel = new QLabel(this);
37     infoLabel->setText(tr("Plugin:GoogleTranslator \n")+
38                    tr("From: ") + languages.key(langFrom) + "\n" +
39                    tr("To: ") + languages.key(langTo));
40     verticalLayout->addWidget(infoLabel);
41
42     langFromComboBox = new QComboBox(this);
43     langToComboBox = new QComboBox(this);
44     int i=0;
45     foreach(QString langs,languages.keys()){
46         if(langs==languages.key(langTo))
47             actualLangTo=i;
48         if(langs==languages.key(langFrom))
49             actualLangFrom=i;
50         langToComboBox->addItem(langs);
51         langFromComboBox->addItem(langs);
52         i++;
53     }
54
55     langFromLayout->addWidget(langFromLabel);
56     langFromLayout->addWidget(langFromComboBox);
57     langToLayout->addWidget(langToLabel);
58     langToLayout->addWidget(langToComboBox);
59     langLayout->addLayout(langFromLayout);
60     langLayout->addLayout(langToLayout);
61     changelangLayout->addLayout(langLayout);
62     changelangLayout->addWidget(changeLangButton);
63     verticalLayout->addLayout(changelangLayout);
64
65     //langToComboBox->setMaximumWidth(120);
66     langToComboBox->setCurrentIndex(actualLangTo);
67     //langFromComboBox->setMaximumWidth(120);
68     langFromComboBox->setCurrentIndex(actualLangFrom);
69
70     //comboBoxLayout->addWidget(langFromComboBox);
71     //comboBoxLayout->addWidget(langToComboBox);
72
73
74     //infoLayout->addWidget(infoLabel);
75     //infoLayout->addLayout(comboBoxLayout);
76
77     //verticalLayout->addLayout(infoLayout);
78
79     saveButton = new QPushButton(tr("Save settings"),this);
80
81 //    verticalLayout->addWidget(langFromComboBox);
82 //    verticalLayout->addWidget(langToComboBox);
83     verticalLayout->addWidget(saveButton);
84
85     setModal(true);
86
87     connect(saveButton, SIGNAL(clicked()),this, SLOT(accept()));
88     connect(langFromComboBox, SIGNAL(activated(int)),this, SLOT(activatedFrom(int)));
89     connect(langToComboBox, SIGNAL(activated(int)),this, SLOT(activatedTo(int)));
90     connect(changeLangButton, SIGNAL(clicked()),this, SLOT(changeLangButtonClicked()));
91 }
92
93 void GoogleSettingsDialog::activatedFrom(int index) {
94     _langFrom=langFromComboBox->itemText(index);
95 }
96
97 void GoogleSettingsDialog::activatedTo(int index) {
98      _langTo=langToComboBox->itemText(index);
99 }
100
101 void GoogleSettingsDialog::changeLangButtonClicked() {
102     int tempIndexTo=langToComboBox->currentIndex();
103     QString tempLangTo=_langTo;
104
105     langToComboBox->setCurrentIndex(langFromComboBox->currentIndex());
106     langFromComboBox->setCurrentIndex(tempIndexTo);
107
108     _langTo=_langFrom;
109     _langFrom=tempLangTo;
110 }
111
112 QString GoogleSettingsDialog::langFrom() {
113     qDebug()<<_langFrom;
114     return _langFrom;
115 }
116
117 QString GoogleSettingsDialog::langTo() {
118     qDebug()<<_langTo;
119     return _langTo;
120 }
121
122 Settings* GoogleSettingsDialog::getSettings(QWidget *parent,QString langTo,QString langFrom) {
123     GoogleSettingsDialog settingsDialog(parent,langTo,langFrom);
124     QMap<QString, QString> languages;
125     languages=GooglePlugin::initLanguages();
126     if(settingsDialog.exec()==QDialog::Accepted) {
127         Settings *settings = new Settings();
128         settings->setValue("langTo",languages.value(settingsDialog.langTo()));
129         settings->setValue("langFrom",languages.value(settingsDialog.langFrom()));
130          qDebug()<<"gosc" << settings->value("langTo") <<settings->value("langFrom");
131         return settings;
132     }
133     return 0;
134 }
135
136 void GoogleSettingsDialog::changeSettings(GooglePlugin* plugin, QWidget *parent) {
137     Settings *settings = new Settings();
138     settings=getSettings(parent,plugin->settings()->value("langTo"),plugin->settings()->value("langFrom"));
139     if(settings)
140         plugin->setSettings(settings);
141 }