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 DictManagerWidget.h
23 \brief Implements dictionaries management widget
25 \author Mateusz Półrola <mateusz.polrola@comarch.pl>
28 #ifndef DICTMANAGERWIDGET_H
29 #define DICTMANAGERWIDGET_H
33 #include "../../include/GUIInterface.h"
34 #include "MenuWidget.h"
35 #include "DictManagerModel.h"
36 #include <QtDeclarative/QDeclarativeView>
37 #include <QtDeclarative/QDeclarativeContext>
42 Shows list of loaded dictionaries and their states (active/inactive).
43 It allows to change dicts states, add a new dict, remove selected one or
44 change settings of selected dict. All changes are saved automatically after
45 hiding of this widget.
47 class DictManagerWidget : public QDialog {
52 \param parent parent of this widget, which must be a subclass of
53 GUIInterface, because it will use it to get info about loaded plugins
56 explicit DictManagerWidget(GUIInterface *parent = 0);
59 void showEvent(QShowEvent *e);
60 void hideEvent(QHideEvent *e);
61 void keyPressEvent(QKeyEvent *e);
64 //! Emitted when hiding widget, it will save states of dictionaries
66 \param list of only active dictionaries
68 void selectedDictionaries(QList<CommonDictInterface*>);
70 //! Emitted when user wants to add a new dictionary
72 \param new dictionary returned by specific plugin dialog
74 void addDictionary(CommonDictInterface*);
76 //! Emitted when user wants to remove a dictionary
78 \param dictionary which will be removed
80 void removeDictionary(CommonDictInterface*);
90 /*! Shows "plugin select" dialog and then plugin specific "add a new dictionary"
91 dialog, which will return new CommonDictInterface* object, which is
92 later passed as a parameter of addDictionary signal*/
93 void addNewDictButtonClicked();
95 /*! Passes dictionary selected from a list as a parameter of removeDictionary
97 void removeButtonClicked();
99 //! user selects one of items
100 void itemSelected(QListWidgetItem*);
102 //! Shows plugin's settings dialog
103 void settingsButtonClicked();
105 //! Each change of state (that needs to be saved) should call this to
106 //! indicate state change
114 QPushButton* addNewDictButton;
115 QPushButton* removeDictButton;
116 QPushButton* settingsButton;
118 QVBoxLayout* verticalLayout;
119 QHBoxLayout* buttonGroup;
120 QListWidget* dictList;
122 //holds association between items on list and CommonDictInterface objects
123 QHash<QListWidgetItem*, CommonDictInterface*> dictsHash;
124 GUIInterface* guiInterface;
127 QDeclarativeView* qmlView;
128 QDeclarativeContext* ctxt;
129 DictManagerModel* model;
134 void refreshDictsList();
137 QPushButton* closeButton;
142 #endif // DICTMANAGERWIDGET_H