1 #include "xdxfplugin.h"
4 #include <QXmlStreamReader>
6 #include "TranslationXdxf.h"
8 XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
9 _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
10 _type(tr("xdxf")), _infoNote(tr("")) {
15 QString XdxfPlugin::langFrom() const {
19 QString XdxfPlugin::langTo() const {
23 QString XdxfPlugin::name() const {
27 QString XdxfPlugin::type() const {
31 QString XdxfPlugin::infoNote() const {
35 QList<Translation*> XdxfPlugin::searchWordList(QString word, int limit) {
37 QRegExp regWord(word);
38 regWord.setCaseSensitivity(Qt::CaseInsensitive);
39 regWord.setPatternSyntax(QRegExp::Wildcard);
41 QList<Translation*> translations;
42 QFile dictionaryFile(path);
43 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
44 qDebug()<<"Error: could not open file";
47 QXmlStreamReader dictionaryReader(&dictionaryFile);
48 dictionaryReader.readNextStartElement();
49 if(dictionaryReader.name()=="xdxf") {
50 if(dictionaryReader.attributes().hasAttribute("lang_from"))
51 _langFrom = dictionaryReader.attributes().value("lang_from").toString();
52 if(dictionaryReader.attributes().hasAttribute("lang_to"))
53 _langTo = dictionaryReader.attributes().value("lang_to").toString();
55 dictionaryReader.readNextStartElement();
56 if(dictionaryReader.name()=="full_name")
57 _name=dictionaryReader.readElementText();
58 dictionaryReader.readNextStartElement();
59 if(dictionaryReader.name()=="description")
60 _infoNote=dictionaryReader.readElementText();
63 while(!dictionaryReader.atEnd() && !stopped){
64 dictionaryReader.readNextStartElement();
65 if(dictionaryReader.name()=="ar"){
66 while(dictionaryReader.name()!="k" && !dictionaryReader.atEnd())
67 dictionaryReader.readNextStartElement();
68 a = dictionaryReader.readElementText();
69 if(regWord.exactMatch(a) && i<limit) {
70 translations.append(new TranslationXdxf(a,_infoNote,this));
78 dictionaryFile.close();
82 QString XdxfPlugin::search(QString key) {
83 QFile dictionaryFile(path);
84 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
85 qDebug()<<"Error: could not open file";
88 QXmlStreamReader dictionaryReader(&dictionaryFile);
92 while (!dictionaryReader.atEnd()) {
93 dictionaryReader.readNext();
94 if(dictionaryReader.tokenType() == QXmlStreamReader::StartElement) {
95 if(dictionaryReader.name()=="k") {
96 a = dictionaryReader.readElementText();
101 else if(dictionaryReader.tokenType() == QXmlStreamReader::Characters) {
103 QString temp(dictionaryReader.text().toString().replace("\n",""));
104 dictionaryFile.close();
112 void XdxfPlugin::stop() {
116 QDialog* XdxfPlugin::loadDialog() {
120 QDialog* XdxfPlugin::settingsDialog() {
124 CommonDictInterface* XdxfPlugin::getNew(const Settings*) const {
125 return new XdxfPlugin();
128 bool XdxfPlugin::isAvailable() const {
132 void XdxfPlugin::setHash(uint _hash)
137 uint XdxfPlugin::hash() const
142 Q_EXPORT_PLUGIN2(xdxf, XdxfPlugin)