small change
[mdictionary] / trunk / src / includes / CommonDictInterface.h
index 5a0c466..6c2b46f 100644 (file)
 
 *******************************************************************************/
 
-// Created by Bartosz Szatkowski
+/*! /file CommonDictInterface.h
+\brief Common interface for all dicts and plugins \see CommonDictInterface
+
+\author Bartosz Szatkowski <bulislaw@linux.com>
+*/
 
 #ifndef COMMONDICTINTERFACE_H
 #define COMMONDICTINTERFACE_H
 #include <QDialog>
 #include <QObject>
 #include <QList>
-#include "CommonDictInterface.h"
 #include "translation.h"
-#include "settings.h"
+#include "Notify.h"
+
+class DictDialog;
+class Settings;
 
-Q_DECLARE_INTERFACE (CommonDictInterface, "xdxfInterface")
 
 //! Interface for dict engines plugins
 class CommonDictInterface : public QObject {
@@ -40,6 +45,8 @@ class CommonDictInterface : public QObject {
   public:
     CommonDictInterface(QObject *parent = 0):QObject(parent) {}
 
+    virtual ~CommonDictInterface() {}
+
     //! returns source language code iso 639-2
     virtual QString langFrom() const = 0;
 
@@ -55,42 +62,62 @@ class CommonDictInterface : public QObject {
     //! returns information about dictionary in html (name, authors, etc)
     virtual QString infoNote() const = 0;
 
-    //! return dialog that creates new dictionary and fills necesary options
-    //! QDialog should returns Setting* object after being showed
-    virtual QDialog* loadDialog() = 0;
+    /*! returns DictDialog object that creates dialogs
+        for adding new dictionary and change plugin settings*/
+    virtual DictDialog* dictDialog() = 0;
 
-    //! return dialog with dictionary settings
-    virtual QDialog* settingsDialog() = 0;
 
-    //! return new, clean copy of plugin with setting set as in Settings*
+    //! returns new, clean copy of plugin with setting set as in Settings*
     virtual CommonDictInterface* getNew(const Settings*) const = 0;
 
     //! returns whether plugin can start searching
     virtual bool isAvailable() const = 0;
 
+    //! returns the actual translation of a word given in key
     virtual QString search(QString key) = 0;
 
+    //! \returns unique value (unique for every dictionary not plugin
+    virtual uint hash() const = 0;
+
+    //! sets unique value (unique for every dictionary not plugin)
+    virtual void setHash(uint) = 0;
+
+    //! returns current plugin settings
+    virtual Settings* settings() = 0;
+
+    //! returns plugin icon
+    virtual QIcon* icon() = 0;
+
  public Q_SLOTS:
-    /*! performes search in dictionary
+    /*! performs search in dictionary
         \param  word word to search in dictionary
-        \param limit limit on number of results
+        \param  limit limit on number of results,
+                if limit=0 all matching words are returned
 
         After finishing search it have to emit
         \see CommonDictInterface:finalTranslation  finalTranslation
-
     */
-    virtual void searchWordList(QString word, int limit) = 0;
+    virtual QList<Translation*> searchWordList(QString word, int limit=0) = 0;
 
-    //! stop current operation
+    //! stops current operation
     virtual void stop() = 0;
 
   Q_SIGNALS:
-    //! emit list of found Translations
-    void finalTranslation(QList<Translation*>);
 
     //! emited after dictionary is ready to use afer being loaded
     void loaded(CommonDictInterface*);
+
+    //! emited after change dictionary settings
+    void settingsChanged();
+
+    /*! emmited to backbone when needed to inform user about something
+        \param Backbone::NotifyType gui my dacide to show different typet in
+            different ways
+        \param QString text of the notification
+    */
+    void notify(Notify::NotifyType, QString);
 };
 
-#endif // COMMONDICTINTERFACE_H
+Q_DECLARE_INTERFACE(CommonDictInterface, "CommonDictInterface/0.1");
 
+#endif