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 Dictionary management widget
24 //! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
26 #ifndef DICTMANAGERWIDGET_H
27 #define DICTMANAGERWIDGET_H
31 #include "../../includes/GUIInterface.h"
34 //! Implements dictionaries management widget
36 Shows list of loaded dictionaries and their states (active/inactive).
37 It allow to change dicts states, add 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 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);
57 //! Emited when hiding widget, it will save states of dictionaries
58 /*! \param list of only active dictionaries
60 void selectedDictionaries(QList<CommonDictInterface*>);
62 //! Emited when user wants to add new dictionary
63 /*! \param new dictionary returned by specyfic plugin dialog
65 void addDictionary(CommonDictInterface*);
67 //! Emited when user wants to remove dictionary
68 /*! \param dictionary which will be removed
70 void removeDictionary(CommonDictInterface*);
75 /*! Shows plugin select dialog and then specific plugin add new dictionary
76 dialog, which will return new CommonDictInterface* object, which is
77 later passed as parameter of addDictionary signal*/
78 void addNewDictButtonClicked();
80 /*! Pass selected dictionary from list as parameter of removeDictionary
82 void removeButtonClicked();
83 void itemSelected(QListWidgetItem*);
85 /*! Shows plugin's settings dialog*/
86 void settingsButtonClicked();
89 QPushButton* addNewDictButton;
90 QPushButton* removeDictButton;
91 QPushButton* settingsButton;
93 QVBoxLayout* verticalLayout;
94 QHBoxLayout* buttonGroup;
95 QListWidget* dictListWidget;
97 //holds association between items on list and CommonDictInterface objects
98 QHash<QListWidgetItem*, CommonDictInterface*> dictsHash;
99 GUIInterface* guiInterface;
101 void refreshDictsList();
103 QPushButton* closeButton;
104 QHBoxLayout* footerLayout;
112 #endif // DICTMANAGERWIDGET_H