add setHash function to interface
[mdictionary] / trunk / src / includes / CommonDictInterface.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 Bartosz Szatkowski
23
24 #ifndef COMMONDICTINTERFACE_H
25 #define COMMONDICTINTERFACE_H
26
27 #include <QString>
28 #include <QDialog>
29 #include <QObject>
30 #include <QList>
31 #include "translation.h"
32 class Settings;
33
34
35 //! Interface for dict engines plugins
36 class CommonDictInterface : public QObject {
37   Q_OBJECT
38   public:
39     CommonDictInterface(QObject *parent = 0):QObject(parent) {}
40
41     //! returns source language code iso 639-2
42     virtual QString langFrom() const = 0;
43
44     //! returns destination language code iso 639-2
45     virtual QString langTo() const = 0;
46
47     //! returns dictionary name (like "old english" or so
48     virtual QString name() const = 0;
49
50     //! returns dictionary type (xdxf, google translate, etc)
51     virtual QString type() const = 0;
52
53     //! returns information about dictionary in html (name, authors, etc)
54     virtual QString infoNote() const = 0;
55
56     //! return dialog that creates new dictionary and fills necesary options
57     //! QDialog should returns Setting* object after being showed
58     virtual QDialog* loadDialog() = 0;
59
60     //! return dialog with dictionary settings
61     virtual QDialog* settingsDialog() = 0;
62
63     //! return new, clean copy of plugin with setting set as in Settings*
64     virtual CommonDictInterface* getNew(const Settings*) const = 0;
65
66     //! returns whether plugin can start searching
67     virtual bool isAvailable() const = 0;
68
69     //! returns the actual translation of a word given in key
70     virtual QString search(QString key) = 0;
71
72     //! \returns unique value (unique for every dictionary not plugin
73     virtual uint hash() const = 0;
74
75     //! set unique value (unique for every dictionary not plugin)
76     virtual void setHash(uint) = 0;
77
78  public Q_SLOTS:
79     /*! performs search in dictionary
80         \param  word word to search in dictionary
81         \param limit limit on number of results
82
83         After finishing search it have to emit
84         \see CommonDictInterface:finalTranslation  finalTranslation
85
86     */
87     virtual QList<Translation*> searchWordList(QString word, int limit) = 0;
88
89     //! stop current operation
90     virtual void stop() = 0;
91
92   Q_SIGNALS:
93     //! emit list of found Translations
94     void finalTranslation(QList<Translation*>);
95
96     //! emits signal informing that search is complete
97     void finalTranslation();
98
99     //! emited after dictionary is ready to use afer being loaded
100     void loaded(CommonDictInterface*);
101 };
102
103 Q_DECLARE_INTERFACE(CommonDictInterface, "CommonDictInterface/0.1");
104
105 #endif