1 #include "xdxfplugin.h"
4 #include <QXmlStreamReader>
6 XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
7 _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
8 _type(tr("xdxf")), _infoNote(tr("")) {
11 QString XdxfPlugin::langFrom() const {
15 QString XdxfPlugin::langTo() const {
19 QString XdxfPlugin::name() const {
23 QString XdxfPlugin::type() const {
27 QString XdxfPlugin::infoNote() const {
31 void XdxfPlugin::searchWordList(QString word, int limit) {
32 QRegExp regWord(word);
33 QList<Translation*> translations;
34 regWord.setPatternSyntax(QRegExp::Wildcard);
35 QFile dictionaryFile(path);
36 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
37 return; //blad otwarcia pliku
39 QXmlStreamReader dictionaryReader(&dictionaryFile);
40 dictionaryReader.readNextStartElement();
41 if(dictionaryReader.name()=="xdxf") {
42 if(dictionaryReader.attributes().hasAttribute("lang_from"))
43 _langFrom = dictionaryReader.attributes().value("lang_from").toString();
44 if(dictionaryReader.attributes().hasAttribute("lang_to"))
45 _langTo = dictionaryReader.attributes().value("lang_to").toString();
47 dictionaryReader.readNextStartElement();
48 if(dictionaryReader.name()=="full_name")
49 _name=dictionaryReader.readElementText();
50 dictionaryReader.readNextStartElement();
51 if(dictionaryReader.name()=="description")
52 _infoNote=dictionaryReader.readElementText();
55 while(!dictionaryReader.atEnd() && !stopped){
56 dictionaryReader.readNextStartElement();
57 if(dictionaryReader.name()=="ar"){
58 while(dictionaryReader.name()!="k" && !dictionaryReader.atEnd())
59 dictionaryReader.readNextStartElement();
60 a = dictionaryReader.readElementText();
61 if(regWord.exactMatch(a) && i<limit) {
62 translations.append(new TranslationXdxf(a,_infoNote,this));
70 emit finalTranslation(translations);
71 dictionaryFile.close();
74 QString XdxfPlugin::search(QString key) {
75 QFile dictionaryFile(path);
76 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
77 return ""; //blad otwarcia pliku
79 QXmlStreamReader dictionaryReader(&dictionaryFile);
83 while (!dictionaryReader.atEnd()) {
84 dictionaryReader.readNext();
85 if(dictionaryReader.tokenType() == QXmlStreamReader::StartElement) {
86 if(dictionaryReader.name()=="k") {
87 a = dictionaryReader.readElementText();
92 else if(dictionaryReader.tokenType() == QXmlStreamReader::Characters)
94 dictionaryFile.close();
95 return dictionaryReader.text().toString().replace("\n","");
102 void XdxfPlugin::stop() {
106 QDialog* XdxfPlugin::loadDialog() {
110 QDialog* XdxfPlugin::settingsDialog() {
114 CommonDictInterface* XdxfPlugin::getNew(const Settings*) const {
118 bool XdxfPlugin::isAvailable() const {