1 /*******************************************************************************
3 This file is part of mDictionary.
5 mDictionary is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 mDictionary is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with mDictionary. If not, see <http://www.gnu.org/licenses/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
22 /*! \file GoogleSettingsDialog.cpp
23 \author Jakub Jaszczynski <j.j.jaszczynski@gmail.com>
26 #include "GoogleSettingsDialog.h"
29 GoogleSettingsDialog::GoogleSettingsDialog(QWidget *parent,
32 QString acceptButtonLabel) :
34 QMap<QString, QString> languages;
35 languages=GooglePlugin::initLanguages();
45 _langTo=languages.key(langTo);
46 _langFrom=languages.key(langFrom);
50 changeLangButton=new QPushButton(
51 QIcon::fromTheme("general_refresh"), "");
53 changeLangButton=new QPushButton(
54 QIcon::fromTheme("object-flip-vertical"),tr(""));
56 langFromLabel = new QLabel("From:");
57 langToLabel = new QLabel(" To: ");
58 connectInfoLabel = new QLabel(tr("Google plugin make use of internet "
59 "conection, so it may cost You."));
60 connectInfoLabel->setWordWrap(true);
63 setWindowTitle(tr("Google Settings"));
65 verticalLayout = new QVBoxLayout;
66 langLayout = new QVBoxLayout;
67 langFromLayout = new QHBoxLayout;
68 langToLayout = new QHBoxLayout;
69 changelangLayout = new QHBoxLayout;
71 setLayout(verticalLayout);
73 infoLabel = new QLabel;
74 infoLabel->setText(tr("Plugin:GoogleTranslator \n")+
75 tr("From: ") + languages.key(langFrom) + "\n" +
76 tr("To: ") + languages.key(langTo));
77 verticalLayout->addWidget(infoLabel);
79 langFromComboBox = new QComboBox;
80 langToComboBox = new QComboBox;
82 foreach(QString langs,languages.keys()){
83 if(langs==languages.key(langTo))
85 if(langs==languages.key(langFrom))
87 langToComboBox->addItem(langs);
88 langFromComboBox->addItem(langs);
92 verticalLayout->addWidget(connectInfoLabel);
93 langFromLayout->addWidget(langFromLabel);
94 langFromLayout->addWidget(langFromComboBox);
95 langToLayout->addWidget(langToLabel);
96 langToLayout->addWidget(langToComboBox);
97 langLayout->addLayout(langFromLayout);
98 langLayout->addLayout(langToLayout);
99 changelangLayout->addLayout(langLayout);
100 changelangLayout->addWidget(changeLangButton);
101 verticalLayout->addLayout(changelangLayout);
104 langToComboBox->setCurrentIndex(actualLangTo);
105 langFromComboBox->setCurrentIndex(actualLangFrom);
107 saveButton = new QPushButton(acceptButtonLabel);
108 verticalLayout->addWidget(saveButton);
112 connect(saveButton, SIGNAL(clicked()),
113 this, SLOT(accept()));
114 connect(langFromComboBox, SIGNAL(activated(int)),
115 this, SLOT(activatedFrom(int)));
116 connect(langToComboBox, SIGNAL(activated(int)),
117 this, SLOT(activatedTo(int)));
118 connect(changeLangButton, SIGNAL(clicked()),
119 this, SLOT(changeLangButtonClicked()));
122 void GoogleSettingsDialog::activatedFrom(int index) {
123 _langFrom=langFromComboBox->itemText(index);
126 void GoogleSettingsDialog::activatedTo(int index) {
127 _langTo=langToComboBox->itemText(index);
130 void GoogleSettingsDialog::changeLangButtonClicked() {
131 int tempIndexTo=langToComboBox->currentIndex();
132 QString tempLangTo=_langTo;
134 langToComboBox->setCurrentIndex(langFromComboBox->currentIndex());
135 langFromComboBox->setCurrentIndex(tempIndexTo);
138 _langFrom=tempLangTo;
141 QString GoogleSettingsDialog::langFrom() {
145 QString GoogleSettingsDialog::langTo() {
149 Settings* GoogleSettingsDialog::getSettings(QWidget *parent,
152 QString acceptButtonLabel) {
153 GoogleSettingsDialog settingsDialog(parent,
157 QMap<QString, QString> languages;
158 languages=GooglePlugin::initLanguages();
159 if(settingsDialog.exec()==QDialog::Accepted) {
160 Settings *settings = new Settings();
161 settings->setValue("langTo",languages.value(settingsDialog.langTo()));
162 settings->setValue("langFrom",
163 languages.value(settingsDialog.langFrom()));
164 settings->setValue("connectionAccept","true");
170 void GoogleSettingsDialog::changeSettings(GooglePlugin* plugin,
172 Settings *settings = new Settings();
173 settings=getSettings(parent,
174 plugin->settings()->value("langTo"),
175 plugin->settings()->value("langFrom"),
178 plugin->setSettings(settings);