6076583fb7a5b91e02ff41c364f90f6691e25918
[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 class CommonDictInterface;
34
35
36 /*! Translation is kind of GoF proxy, it stores key:translation pair and
37   provide it in lazy way -> key is available always, but translation is fetched
38   as late as possible*/
39 class Translation {
40   public:
41     Translation  () { _bookmark = 0; }
42     //! \return word to be translated
43     virtual QString key() const = 0;
44  
45     bool operator==(Translation* translation) {
46         return this->key()==translation->key();
47     }
48
49     /*! \returns dictionary information (plugin name, languages, <logo> etc)\
50          to be displayed in translation table header */
51     virtual QString dictionaryInfo() const = 0;
52
53     //! \return parsed raw format into html
54     virtual QString toHtml() const = 0;
55
56     //! \retrun whether given translation is taken from bookmarks
57     virtual bool isBookmark() const {
58         return _bookmark;
59    }
60
61    //! \param b if true then translation is from bookmarks
62    void setBookmark(bool b) {
63        _bookmark = b;
64    }
65
66     //! returns coresponding dict object
67    virtual uint dict() const {return 0;} ;
68
69    protected:
70        bool _bookmark;
71
72 };
73
74 Q_DECLARE_METATYPE(Translation*);
75 Q_DECLARE_METATYPE(QList<Translation*>);
76
77 #endif