Refactorization of gui
[mdictionary] / trunk / src / base / gui / WordListWidget.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 //Created by Mateusz Półrola
23
24 #ifndef WORDLISTWIDGET_H
25 #define WORDLISTWIDGET_H
26
27 #include <QWidget>
28 #include <QtGui>
29 #include <QStringListModel>
30 #include "../backbone/backbone.h"
31 #include "SearchBarWidget.h"
32
33 //! Displays list of words found in dictionaries
34 /*!
35     It allow user to select word to see it's translation or to mark it as "star"
36   */
37 class WordListWidget : public QListView {
38     Q_OBJECT
39 public:
40     explicit WordListWidget(QWidget *parent = 0);
41
42 Q_SIGNALS:
43     void showTranslation(QList<Translation*>);
44
45
46 public Q_SLOTS:
47     /*! Request to show search results, requested by backbone when it finished
48       search*/
49     void showSearchResults(QHash<QString, QList<Translation*> >);
50
51     //! Lock words list, while backbone is doing somethig in background
52     void lockList();
53
54     //! Unlocks words list
55     void unlockList();
56
57     //! Sets string which exact match will be searched
58     /*!
59       When exactMatchString is not empty, widget will not display found words,
60       but when in found words is exactMatchString it will direct display it's
61       translation. When exactMatchString isn't in list widget will display
62       suitable information, and list of found words
63       */
64     //void setExactMatchString(QString exactMatchString);
65     //QString exactMatchString();
66
67 private Q_SLOTS:
68     void itemClicked(QModelIndex index);
69
70 private:
71     //Backbone *backbone;
72     //words are keeping as QStringListModel which allow to sort them
73     QStringListModel *wordListModel;
74     void addWord(QString word);
75     //clears all list of words
76     void clear();
77     QHash<QString, QList<Translation*> > searchResult;
78     //QString _exactMatchString;
79 };
80
81 #endif // WORDLISTWIDGET_H