93757c0155d61b5edf4d2616ef57de10af168625
[mdictionary] / src / plugins / xdxf / DictsModel.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    \file DictsModel.h
23    \author Mateusz Półrola <mateusz.polrola@comarch.pl>
24 */
25
26 #ifndef DICTSMODEL_H
27 #define DICTSMODEL_H
28
29
30 #include <QAbstractItemModel>
31 #include "DownloadDict.h"
32
33
34 /*!
35   Item model for informations about xdxf dictionaries.
36   Contains informations about languages of dictionary, it's name, size and
37  download link. Download link is stored as UserRole, and not displayed in views
38  using this model.
39 */
40 class DictsModel : public QAbstractItemModel
41 {
42     Q_OBJECT
43 public:
44     /*!
45         Constructor
46         \param dicts list of DownloadDict objects, each such object describes
47         one dictionary
48     */
49     DictsModel(QList<DownloadDict> dicts, QObject *parent);
50
51     //! \return return numner of rows
52     int rowCount(const QModelIndex &parent = QModelIndex()) const;
53
54     //! \return return numner of columns
55     int columnCount(const QModelIndex &parent = QModelIndex()) const;
56
57     //!  create Index,  createIndex(row,column,row)
58     QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
59
60     //! return new QModelIndex;
61     QModelIndex parent(const QModelIndex &child) const;
62
63     /*!
64         \return return empty QVariant when role is't DisplayRole,
65         else return QVariant (QString with _from,_to,_title)
66     */
67     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
68
69     //! \return return a QVariant with header QString.
70     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
71
72 private:
73     QList<DownloadDict> dicts;
74 };
75
76 #endif // DICTSMODEL_H