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 //! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
25 #ifndef DICTMANAGERWIDGET_H
26 #define DICTMANAGERWIDGET_H
30 #include "../../include/GUIInterface.h"
31 #include "MenuWidget.h"
34 //! Implements dictionaries management widget
36 Shows list of loaded dictionaries and their states (active/inactive).
37 It allows to change dicts states, add a new dict, remove selected one or
38 change settings of selected dict. All changes are saved automatically after
39 hiding of this widget.
41 class DictManagerWidget : public QDialog {
46 \param parent parent of this widget, which must be a subclass of
47 GUIInterface, because it will use it to get info about loaded plugins
50 explicit DictManagerWidget(GUIInterface *parent = 0);
53 void showEvent(QShowEvent *e);
54 void hideEvent(QHideEvent *e);
55 void keyPressEvent(QKeyEvent *e);
58 //! Emitted when hiding widget, it will save states of dictionaries
60 \param list of only active dictionaries
62 void selectedDictionaries(QList<CommonDictInterface*>);
64 //! Emitted when user wants to add a new dictionary
66 \param new dictionary returned by specific plugin dialog
68 void addDictionary(CommonDictInterface*);
70 //! Emitted when user wants to remove a dictionary
72 \param dictionary which will be removed
74 void removeDictionary(CommonDictInterface*);
84 /*! Shows "plugin select" dialog and then plugin specific "add a new dictionary"
85 dialog, which will return new CommonDictInterface* object, which is
86 later passed as a parameter of addDictionary signal*/
87 void addNewDictButtonClicked();
89 /*! Passes dictionary selected from a list as a parameter of removeDictionary
91 void removeButtonClicked();
93 //! user selects one of items
94 void itemSelected(QListWidgetItem*);
96 //! Shows plugin's settings dialog
97 void settingsButtonClicked();
99 //! Each change of state (that needs to be saved) should call this to
100 //! indicate state change
108 QPushButton* addNewDictButton;
109 QPushButton* removeDictButton;
110 QPushButton* settingsButton;
112 QVBoxLayout* verticalLayout;
113 QHBoxLayout* buttonGroup;
114 QListWidget* dictList;
116 //holds association between items on list and CommonDictInterface objects
117 QHash<QListWidgetItem*, CommonDictInterface*> dictsHash;
118 GUIInterface* guiInterface;
122 void refreshDictsList();
125 QPushButton* closeButton;
130 #endif // DICTMANAGERWIDGET_H