1 #include "xdxfplugin.h"
4 #include <QXmlStreamReader>
5 #include "TranslationXdxf.h"
7 XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
8 _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
9 _type(tr("xdxf")), _infoNote(tr("")) {
13 QString XdxfPlugin::langFrom() const {
17 QString XdxfPlugin::langTo() const {
21 QString XdxfPlugin::name() const {
25 QString XdxfPlugin::type() const {
29 QString XdxfPlugin::infoNote() const {
33 QList<Translation*> XdxfPlugin::searchWordList(QString word, int limit) {
34 QRegExp regWord(word);
35 QList<Translation*> translations;
36 regWord.setPatternSyntax(QRegExp::Wildcard);
37 QFile dictionaryFile(path);
38 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
39 qDebug()<<"Error: could not open file";
42 QXmlStreamReader dictionaryReader(&dictionaryFile);
43 dictionaryReader.readNextStartElement();
44 if(dictionaryReader.name()=="xdxf") {
45 if(dictionaryReader.attributes().hasAttribute("lang_from"))
46 _langFrom = dictionaryReader.attributes().value("lang_from").toString();
47 if(dictionaryReader.attributes().hasAttribute("lang_to"))
48 _langTo = dictionaryReader.attributes().value("lang_to").toString();
50 dictionaryReader.readNextStartElement();
51 if(dictionaryReader.name()=="full_name")
52 _name=dictionaryReader.readElementText();
53 dictionaryReader.readNextStartElement();
54 if(dictionaryReader.name()=="description")
55 _infoNote=dictionaryReader.readElementText();
58 while(!dictionaryReader.atEnd() && !stopped){
59 dictionaryReader.readNextStartElement();
60 if(dictionaryReader.name()=="ar"){
61 while(dictionaryReader.name()!="k" && !dictionaryReader.atEnd())
62 dictionaryReader.readNextStartElement();
63 a = dictionaryReader.readElementText();
64 if(regWord.exactMatch(a) && i<limit) {
65 translations.append(new TranslationXdxf(a,_infoNote,this));
74 dictionaryFile.close();
78 QString XdxfPlugin::search(QString key) {
79 QFile dictionaryFile(path);
80 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
81 return ""; //blad otwarcia pliku
83 QXmlStreamReader dictionaryReader(&dictionaryFile);
87 while (!dictionaryReader.atEnd()) {
88 dictionaryReader.readNext();
89 if(dictionaryReader.tokenType() == QXmlStreamReader::StartElement) {
90 if(dictionaryReader.name()=="k") {
91 a = dictionaryReader.readElementText();
96 else if(dictionaryReader.tokenType() == QXmlStreamReader::Characters)
98 dictionaryFile.close();
99 qDebug()<<dictionaryReader.text().toString().replace("\n","");
100 return dictionaryReader.text().toString().replace("\n","");
106 void XdxfPlugin::stop() {
110 QDialog* XdxfPlugin::loadDialog() {
114 QDialog* XdxfPlugin::settingsDialog() {
118 CommonDictInterface* XdxfPlugin::getNew(const Settings*) const {
122 bool XdxfPlugin::isAvailable() const {
126 uint XdxfPlugin::hash() const