Fixed translations
[mdictionary] / src / plugins / google / GoogleDialog.h
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
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.
9
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.
14
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/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21
22 /*!
23     \file GoogleDialog.cpp
24     \author Mateusz Półrola <mateusz.polrola@gmail.com>
25     \author Jakub Jaszczynski <j.j.jaszczynski@gmail.com>
26 */
27
28 #ifndef GOOGLEDIALOG_H
29 #define GOOGLEDIALOG_H
30
31 #include <QDialog>
32 #include "../../include/settings.h"
33 #include <QtGui>
34 #include "GooglePlugin.h"
35
36 //! Implementation of google plugin's dialogs.
37 /*!
38     This class can create dialogs for adding new dictionary or changins settings
39      of existing one, based on dialog type passed to contructor.
40      These type are different only in confirm button label.
41      Both provides comboboxes with availaible languages to choose.
42 */
43 class GoogleDialog : public QDialog
44 {
45     Q_OBJECT
46 public:
47     /*!
48       Describes type of dialog. New means that dialog confirm button has label
49         Add", Change means dialog confirm button has label "Save settings"
50     */
51     enum GoogleDialogType {New, Change};
52
53     //! Constructor
54     /*!
55         Creates new google dialog
56         \param plugin if creating dialog of type Change it must be set to
57             pointer of plugin whose settings will be changed
58         \param type describes type of creating dialog
59         \param parent parent widget of creating dialog
60     */
61     explicit GoogleDialog(GooglePlugin* plugin = 0,
62                           GoogleDialogType type = New,
63                           QWidget* parent = 0);
64
65
66     //! Returns settings of plugin
67     /*!
68         After acceptance of dialog this method return plugin's settings based on
69          user choises in dialog.
70     */
71     Settings* getSettings();
72
73 Q_SIGNALS:
74     //! Request to show notification
75     void notify(Notify::NotifyType, QString);
76
77 public Q_SLOTS:
78     //! Reimplemented accept method, to save new settings
79     void accept();
80
81 private Q_SLOTS:
82     //! assigns the language chosen from a list(langFromComboBox) to _langFrom
83     void langFromChanged(int);
84
85     //! assigns the language chosen from a list(langToComboBox) to _langTo
86     void langToChanged(int);
87
88     //! handles the "swap languages" button
89     void changeLangButtonClicked();
90
91 private:
92     void initializeUI();
93
94     //! saves new settings after acceptance of dialog
95     void saveSettings();
96
97     QLabel* infoLabel;
98     QLabel* langFromLabel;
99     QLabel* langToLabel;
100     QLabel* connectInfoLabel;
101     QPushButton* confirmButton;
102     QPushButton* changeLangButton;
103     QComboBox *langFromComboBox;
104     QComboBox *langToComboBox;
105     QVBoxLayout* verticalLayout;
106     QVBoxLayout* langLayout;
107     QFormLayout* langsFormLayout;
108     QHBoxLayout* changeLangLayout;
109     QString _langFrom;
110     QString _langTo;
111
112     Settings* _settings;
113     GooglePlugin* plugin;
114     GoogleDialogType type;
115 };
116
117 #endif // GOOGLEDIALOG_H