Added isBookmark() to translation and other changes to inform gui about
[mdictionary] / trunk / src / includes / translation.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 translation.h
23 \brief Interface for translation instances \see Translation
24
25 \author Bartosz Szatkowski <bulislaw@linux.com>
26 */
27
28 #ifndef TRANSLATION_H
29 #define TRANSLATION_H
30
31 #include <QString>
32 #include <QMetaType>
33
34
35 /*! Translation is kind of GoF proxy, it stores key:translation pair and
36   provide it in lazy way -> key is available always, but translation is fetched
37   as late as possible*/
38 class Translation {
39   public:
40     Translation  () { _bookmark = 0; }
41     //! \return word to be translated
42     virtual QString key() const = 0;
43  
44     bool operator==(Translation* translation) {
45         return this->key()==translation->key();
46     }
47
48     /*! \returns dictionary information (plugin name, languages, <logo> etc)\
49          to be displayed in translation table header */
50     virtual QString dictionaryInfo() const = 0;
51
52     //! \return parsed raw format into html
53     virtual QString toHtml() const = 0;
54
55     //! \retrun whether given translation is taken from bookmarks
56     bool isBookmark() const {
57         return _bookmark;
58    }
59
60    //! \param b if true then translation is from bookmarks
61    void setBookmark(bool b) {
62        _bookmark = b;
63    }
64
65    protected:
66        bool _bookmark;
67
68 };
69
70 Q_DECLARE_METATYPE(Translation*);
71 Q_DECLARE_METATYPE(QList<Translation*>);
72
73 #endif