translations.insert(new TranslationXdxf(
cur.value(0).toString().toLower(),
_infoNote, this));
- return translations.toList();
+ db.close();
+ return translations.toList();
}
return translations.toList();
}
- QXmlStreamReader dictionaryReader(&dictionaryFile);
+ QXmlStreamReader reader(&dictionaryFile);
/*search words list*/
QString a;
int i=0;
- while(!dictionaryReader.atEnd() && !stopped){
- dictionaryReader.readNextStartElement();
- if(dictionaryReader.name()=="ar"){
- while(dictionaryReader.name()!="k" && !dictionaryReader.atEnd())
- dictionaryReader.readNextStartElement();
- if(!dictionaryReader.atEnd())
- a = dictionaryReader.readElementText();
+ while(!reader.atEnd() && !stopped){
+ reader.readNextStartElement();
+ if(reader.name()=="ar") {
+ while(reader.name()!="k" && !reader.atEnd())
+ reader.readNextStartElement();
+ if(!reader.atEnd())
+ a = reader.readElementText();
if(regWord.exactMatch(removeAccents(a)) && (i<limit || limit==0)) {
bool ok=true;
Translation *tran;
cur.exec();
if(cur.next())
result = cur.value(0).toString();
+ db.close();
return result;
}
qDebug()<<"Error: could not open file";
return "";
}
- QXmlStreamReader dictionaryReader(&dictionaryFile);
+ QXmlStreamReader reader(&dictionaryFile);
QString a;
bool match =false;
stopped = false;
- while (!dictionaryReader.atEnd()&& !stopped) {
- dictionaryReader.readNext();
- if(dictionaryReader.tokenType() == QXmlStreamReader::StartElement) {
- if(dictionaryReader.name()=="k") {
- a = dictionaryReader.readElementText();
+ while (!reader.atEnd()&& !stopped) {
+ reader.readNext();
+ if(reader.tokenType() == QXmlStreamReader::StartElement) {
+ if(reader.name()=="k") {
+ a = reader.readElementText();
if(a==key)
match = true;
}
}
- else if(dictionaryReader.tokenType() == QXmlStreamReader::Characters) {
- if(match) {
- /* QString temp(dictionaryReader.text().toString());
- if(temp=="\n")
- temp=dictionaryReader.readElementText();
- temp.replace("\n","");
- if(temp == ""){
- int i=0;
- while(dictionaryReader.name()!="ar"&&
- !dictionaryReader.atEnd()){
- dictionaryReader.readNext();
- if(dictionaryReader.name()!="" &&
- dictionaryReader.name()!="ar") {
- if(dictionaryReader.tokenType()==QXmlStreamReader::EndElement)
- temp+=tr("</");
- if(dictionaryReader.tokenType()==QXmlStreamReader::StartElement)
- temp+=tr("<");
- qDebug()<<dictionaryReader.tokenType();
- temp=temp+dictionaryReader.name().toString() + tr(">");
- i++;
- }
- temp+=dictionaryReader.text().toString();
- }
- }
- resultString+=temp.replace("\n","")+"\n";
- match=false;
-*/
- QString temp("");
- while(dictionaryReader.name()!="ar" && !dictionaryReader.atEnd()) {
- if(dictionaryReader.name()!="") {
- if(dictionaryReader.tokenType()==QXmlStreamReader::EndElement)
- temp+=tr("</");
- if(dictionaryReader.tokenType()==QXmlStreamReader::StartElement)
- temp+=tr("<");
- temp=temp+dictionaryReader.name().toString() + tr(">");
- }
- temp+= dictionaryReader.text().toString();
- dictionaryReader.readNext();
+ if(match) {
+ QString temp("");
+ while(reader.name()!="ar" && !reader.atEnd()) {
+ if(reader.name()!="" && reader.name()!="k") {
+ if(reader.tokenType()==QXmlStreamReader::EndElement)
+ temp+=tr("</");
+ if(reader.tokenType()==QXmlStreamReader::StartElement)
+ temp+=tr("<");
+ temp+=reader.name().toString();
+ if(reader.name().toString()=="c" && reader.tokenType()==QXmlStreamReader::StartElement)
+ temp= temp + tr(" c=\"") + reader.attributes().value(tr("c")).toString() + tr("\"");
+ temp+=tr(">");
}
- resultString+=tr("<t>") + temp.replace("\n","") + tr("</t>");
- match=false;
+ temp+= reader.text().toString();
+ reader.readNext();
}
+ resultString+=tr("<t>") + temp.replace("\n","") + tr("</t>");
+ match=false;
}
this->thread()->yieldCurrentThread();
}
stopped=false;
dictionaryFile.close();
+
return resultString;
}
plugin->db_name = plugin->_settings->value("type")
+ plugin->_settings->value("path");
+ if(!plugin->db.connectionName().isEmpty())
plugin->db = QSqlDatabase::addDatabase("QSQLITE", plugin->db_name);
if(settings->value("cached").isEmpty() &&
return;
}
- QXmlStreamReader dictionaryReader(&dictionaryFile);
- dictionaryReader.readNextStartElement();
- if(dictionaryReader.name()=="xdxf") {
- if(dictionaryReader.attributes().hasAttribute("lang_from"))
- _langFrom = dictionaryReader.attributes().value("lang_from").toString();
- if(dictionaryReader.attributes().hasAttribute("lang_to"))
- _langTo = dictionaryReader.attributes().value("lang_to").toString();
+ QXmlStreamReader reader(&dictionaryFile);
+ reader.readNextStartElement();
+ if(reader.name()=="xdxf") {
+ if(reader.attributes().hasAttribute("lang_from"))
+ _langFrom = reader.attributes().value("lang_from").toString();
+ if(reader.attributes().hasAttribute("lang_to"))
+ _langTo = reader.attributes().value("lang_to").toString();
}
- dictionaryReader.readNextStartElement();
- if(dictionaryReader.name()=="full_name")
- _name=dictionaryReader.readElementText();
- dictionaryReader.readNextStartElement();
- if(dictionaryReader.name()=="description")
- _infoNote=dictionaryReader.readElementText();
+ reader.readNextStartElement();
+ if(reader.name()=="full_name")
+ _name=reader.readElementText();
+ reader.readNextStartElement();
+ if(reader.name()=="description")
+ _infoNote=reader.readElementText();
+
+ _infoNote="<info path=\""+path+"\">"+"\n" + _name + "(" + _type + ")" + "</info>";
dictionaryFile.close();
}
match = true;
}
}
- else if(reader.tokenType() == QXmlStreamReader::Characters) {
- if(match) {
- QString temp("");
- while(reader.name()!="ar" && !reader.atEnd()) {
- if(reader.name()!="") {
- if(reader.tokenType()==QXmlStreamReader::EndElement)
- temp+=tr("</");
- if(reader.tokenType()==QXmlStreamReader::StartElement)
- temp+=tr("<");
- temp=temp+reader.name().toString() + tr(">");
- }
- temp+= reader.text().toString();
- reader.readNext();
- }
- temp=tr("<t>") + temp.replace("\n","") + tr("</t>");
- match = false;
- cur.prepare("insert into dict values(?,?)");
- cur.addBindValue(a);
- cur.addBindValue(temp);
- cur.exec();
- counter++;
- int prog = counter*100/_wordsCount;
- if(prog % 5 == 0 && lastProg != prog) {
- Q_EMIT updateCachingProgress(prog,
- timer.restart());
- lastProg = prog;
+ if(match) {
+ QString temp("");
+ while(reader.name()!="ar" && !reader.atEnd()) {
+ if(reader.name()!="" && reader.name()!="k") {
+ if(reader.tokenType()==QXmlStreamReader::EndElement)
+ temp+=tr("</");
+ if(reader.tokenType()==QXmlStreamReader::StartElement)
+ temp+=tr("<");
+ temp+=reader.name().toString();
+ if(reader.name().toString()=="c" && reader.tokenType()==QXmlStreamReader::StartElement)
+ temp= temp + tr(" c=\"") + reader.attributes().value(tr("c")).toString() + tr("\"");
+ temp+=tr(">");
}
+ temp+= reader.text().toString();
+ reader.readNext();
+ }
+ temp += tr("<t>") + temp.replace("\n","") + tr("</t>");
+ match=false;
+ cur.prepare("insert into dict values(?,?)");
+ cur.addBindValue(a);
+ cur.addBindValue(temp);
+ cur.exec();
+ counter++;
+ int prog = counter*100/_wordsCount;
+ if(prog % 5 == 0 && lastProg != prog) {
+ Q_EMIT updateCachingProgress(prog,
+ timer.restart());
+ lastProg = prog;
}
-
}
}
cachingDialog->setVisible(false);
if(!cur.next() || countWords() != cur.value(0).toInt())
+ {
+ db.close();
return false;
+ }
_settings->setValue("cache_path", cachePathN);
_settings->setValue("cached", "true");
+ db.close();
return true;
}