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"
38 Shows list of loaded dictionaries and their states (active/inactive).
39 It allows to change dicts states, add a new dict, remove selected one or
40 change settings of selected dict. All changes are saved automatically after
41 hiding of this widget.
43 class DictManagerWidget : public QDialog {
48 \param parent parent of this widget, which must be a subclass of
49 GUIInterface, because it will use it to get info about loaded plugins
52 explicit DictManagerWidget(GUIInterface *parent = 0);
55 void showEvent(QShowEvent *e);
56 void hideEvent(QHideEvent *e);
57 void keyPressEvent(QKeyEvent *e);
60 //! Emitted when hiding widget, it will save states of dictionaries
62 \param list of only active dictionaries
64 void selectedDictionaries(QList<CommonDictInterface*>);
66 //! Emitted when user wants to add a new dictionary
68 \param new dictionary returned by specific plugin dialog
70 void addDictionary(CommonDictInterface*);
72 //! Emitted when user wants to remove a dictionary
74 \param dictionary which will be removed
76 void removeDictionary(CommonDictInterface*);
86 /*! Shows "plugin select" dialog and then plugin specific "add a new dictionary"
87 dialog, which will return new CommonDictInterface* object, which is
88 later passed as a parameter of addDictionary signal*/
89 void addNewDictButtonClicked();
91 /*! Passes dictionary selected from a list as a parameter of removeDictionary
93 void removeButtonClicked();
95 //! user selects one of items
96 void itemSelected(QListWidgetItem*);
98 //! Shows plugin's settings dialog
99 void settingsButtonClicked();
101 //! Each change of state (that needs to be saved) should call this to
102 //! indicate state change
110 QPushButton* addNewDictButton;
111 QPushButton* removeDictButton;
112 QPushButton* settingsButton;
114 QVBoxLayout* verticalLayout;
115 QHBoxLayout* buttonGroup;
116 QListWidget* dictList;
118 //holds association between items on list and CommonDictInterface objects
119 QHash<QListWidgetItem*, CommonDictInterface*> dictsHash;
120 GUIInterface* guiInterface;
124 void refreshDictsList();
127 QPushButton* closeButton;
132 #endif // DICTMANAGERWIDGET_H