Copyright 2010 Comarch S.A.
*******************************************************************************/
+/*!
+ \file xdxfplugin.h
+ \brief Implementation of xdxf plugin's main class.
-
-/*! \file xdxfplugin.h
+ \author Jakub Jaszczynski <j.j.jaszczynski@gmail.com>
*/
+
#ifndef XDXFPLUGIN_H
#define XDXFPLUGIN_H
-
#include <QObject>
#include <QDialog>
#include <QRegExp>
#include <QFile>
#include <QXmlStreamReader>
#include <QtPlugin>
+#include <QHash>
-#include "../../common/CommonDictInterface.h"
-#include "../../common/settings.h"
+#include "../../include/CommonDictInterface.h"
+#include "../../include/settings.h"
#include "XdxfDictDialog.h"
#include "XdxfCachingDialog.h"
#include "TranslationXdxf.h"
+#include "XdxfDictDownloader.h"
class TranslationXdxf;
Q_INTERFACES(CommonDictInterface)
public:
XdxfPlugin(QObject *parent=0);
-
~XdxfPlugin();
- //! returns source language code iso 639-2
+ //! \returns source language code iso 639-2
QString langFrom() const;
- //! returns destination language code iso 639-2
+ //! \returns destination language code iso 639-2
QString langTo() const;
- //! returns dictionary name (like "old English" or so)
+ //! \returns dictionary name (like "old English" or so)
QString name() const;
- //! returns dictionary type (xdxf, google translate, etc)
+ //! \returns dictionary type (xdxf, google translate, etc)
QString type() const;
- //! returns information about dictionary in html (name, authors, etc)
+ //! \returns information about dictionary in xml (name, authors, etc)
QString infoNote() const;
- /*! returns DictDialog object that creates dialogs
- for adding new dictionary and changing plugin things
- */
+ /*!
+ \returns DictDialog object that creates dialogs
+ for adding a new dictionary and changing plugin settings
+ */
DictDialog* dictDialog();
- //! returns new, clean copy of plugin with settings set as in Settings*
+ //! \returns new, clean copy of plugin with settings set as in Settings*
CommonDictInterface* getNew(const Settings*) const;
- //! returns whether plugin can start searching
+ //! \returns whether plugin can start searching
bool isAvailable() const;
- //! returns a description of a word given by a QString
+ //! \returns a description of a word given by a QString
QString search(QString key);
- //! returns a unique hash for a dictionary
- uint hash() const;
-
- //! sets unique value (unique for every dictionary, not plugin)
- void setHash(uint);
-
- //! returns current plugin settings
+ //! \returns current plugin settings
Settings* settings();
- //! returns words count in dictionary
+ //! \returns words count in a dictionary
long wordsCount();
//! Sets new settings
bool setSettings(const Settings*);
- //! returns plugin icon
+ //! \returns plugin icon
QIcon* icon();
- /*! plugin should delete any files (eg. cache) that have been created and are ready
+ /*!
+ plugin should delete any files (eg. cache) that have been created and are ready
to be deleted
- */
+ */
void clean();
-
+ static XdxfDictDownloader dictDownloader;
public Q_SLOTS:
- /*! performs search in dictionary
- \param word word to search in dictionary
- \param limit limit on number of results
+ /*!
+ performs search in a dictionary
+ \param word word to search for in a dictionary
+ \param limit limit on number of results
- After finishing search it has to emit
- \see CommonDictInterface:finalTranslation finalTranslation
+ After finishing search it has to emit
+ \see CommonDictInterface:finalTranslation finalTranslation
*/
QList<Translation*> searchWordList(QString word, int limit=0);
- //! stop current operation
+ //! stops current operation
void stop();
-
+ //! loads translations for each plugin only once
+ void retranslate();
Q_SIGNALS:
//! emitted with percent count of caching progress, and time elapsed from
//! last signal emit
void updateCachingProgress(int, int);
-
-
private:
-/*! returns true or false depending on whether the dictionary is cached
- or not, not implemented yet
- */
+ /*!
+ \returns true or false depending on whether the dictionary is cached
+ or not
+ */
bool isCached();
-
-//! sets the path to dictionary file and adds it to settings
- // void setPath(QString);
-
+ /*!
+ searches for a list of words similar to a word in a database file
+ \param word key compared with keys in a database
+ \param limit limits the number of translations in returned list,
+ 0 means unlimited
+ \returns list of translations
+ */
QList<Translation*> searchWordListCache(QString word, int limit=0);
+ /*!
+ searches for a list of words similar to a word in a xdxf file
+ \param word key compared with keys in a xdxf file
+ \param limit limits the number of translations in returned list,
+ 0 means unlimited
+ \returns list of translations
+ */
QList<Translation*> searchWordListFile(QString word, int limit=0);
+ /*!
+ searches for a translation of a word which is exactly like a key
+ in a xdxf file
+ */
QString searchFile(QString key);
+ /*!
+ searches for a translation of a word which is exactly like a key
+ in a database file
+ */
QString searchCache(QString key);
-<<<<<<< HEAD:trunk/src/plugins/xdxf/src/xdxfplugin.h
- //! scan dictionary file to get information about it
- bool getDictionaryInfo();
-=======
//! scans dictionary file to get information about it
- void getDictionaryInfo();
->>>>>>> d87efdac5743196dbae222515ab86c6e321c3d98:src/plugins/xdxf/xdxfplugin.h
+ bool getDictionaryInfo();
+ //! counts the keys in a xdxf file
int countWords();
+ /*!
+ transforms xdxf files to database files (caching operation)
+ \returns true on success, false on failure
+ */
bool makeCache(QString dir);
- //! language from which we translate
+ static bool dictDownloaderInitialized;
+
QString _langFrom;
- //! language to which we translate
QString _langTo;
- //! name of a dictionary
QString _name;
- //! information about dictionary
QString _infoNote;
- //! path to dictionary file
- // QString path;
- uint _hash;
+ QString _dictionaryInfo;
QIcon _icon;
QSqlDatabase db;
QString db_name;
- //! number of words in dictionary
long _wordsCount;
volatile bool stopped;
Settings *_settings;
XdxfDictDialog* _dictDialog;
XdxfCachingDialog* cachingDialog;
-
};
#endif // XDXFPLUGIN_H