1 #include "xdxfplugin.h"
4 #include <QXmlStreamReader>
7 XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent),
8 _langFrom(tr("")), _langTo(tr("")),_name(tr("")),
9 _type(tr("xdxf")), _infoNote(tr("")) {
12 QString XdxfPlugin::langFrom() const {
16 QString XdxfPlugin::langTo() const {
20 QString XdxfPlugin::name() const {
24 QString XdxfPlugin::type() const {
28 QString XdxfPlugin::infoNote() const {
32 void XdxfPlugin::searchWordList(QString word, int limit) {
33 QRegExp regWord(word);
34 QList<Translation*> translations;
35 regWord.setPatternSyntax(QRegExp::Wildcard);
36 QFile dictionaryFile(path);
37 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
38 return; //blad otwarcia pliku
40 QXmlStreamReader dictionaryReader(&dictionaryFile);
41 dictionaryReader.readNextStartElement();
42 if(dictionaryReader.name()=="xdxf") {
43 if(dictionaryReader.attributes().hasAttribute("lang_from"))
44 _langFrom = dictionaryReader.attributes().value("lang_from").toString();
45 if(dictionaryReader.attributes().hasAttribute("lang_to"))
46 _langTo = dictionaryReader.attributes().value("lang_to").toString();
48 dictionaryReader.readNextStartElement();
49 if(dictionaryReader.name()=="full_name")
50 _name=dictionaryReader.readElementText();
51 dictionaryReader.readNextStartElement();
52 if(dictionaryReader.name()=="description")
53 _infoNote=dictionaryReader.readElementText();
56 while(!dictionaryReader.atEnd() && !stopped){
57 dictionaryReader.readNextStartElement();
58 if(dictionaryReader.name()=="ar"){
59 while(dictionaryReader.name()!="k" && !dictionaryReader.atEnd())
60 dictionaryReader.readNextStartElement();
61 a = dictionaryReader.readElementText();
62 if(regWord.exactMatch(a) && i<limit) {
63 translations.append(new TranslationXdxf(a,_infoNote,this));
71 emit finalTranslation(translations);
72 dictionaryFile.close();
75 QString XdxfPlugin::search(QString key) {
76 QFile dictionaryFile(path);
77 if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
78 return ""; //blad otwarcia pliku
80 QXmlStreamReader dictionaryReader(&dictionaryFile);
84 while (!dictionaryReader.atEnd()) {
85 dictionaryReader.readNext();
86 if(dictionaryReader.tokenType() == QXmlStreamReader::StartElement) {
87 if(dictionaryReader.name()=="k") {
88 a = dictionaryReader.readElementText();
93 else if(dictionaryReader.tokenType() == QXmlStreamReader::Characters)
95 dictionaryFile.close();
96 return dictionaryReader.text().toString().replace("\n","");
103 void XdxfPlugin::stop() {
107 QDialog* XdxfPlugin::loadDialog() {
111 QDialog* XdxfPlugin::settingsDialog() {
115 CommonDictInterface* XdxfPlugin::getNew(const Settings*) const {
119 bool XdxfPlugin::isAvailable() const {
123 Q_EXPORT_PLUGIN2(xdxf, XdxfPlugin)