#include "TranslationGoogle.h"
-TranslationGoogle::TranslationGoogle():_key(""),_trans(""),_dictionaryInfo("") {
+TranslationGoogle::TranslationGoogle():_key(QString("")),
+ _dictionaryInfo(QString("")), _trans(QString("")) {
googlePlugin=0;
}
TranslationGoogle::TranslationGoogle(QString _key,QString _trans,
QString _dictionaryInfo,GooglePlugin *googlePlugin):
- _key(_key),_trans(_trans),_dictionaryInfo(_dictionaryInfo) {
+ _key(_key),_dictionaryInfo(_dictionaryInfo), _trans(_trans) {
this->googlePlugin=googlePlugin;
if(googlePlugin)
_dictHash = googlePlugin->hash();
CommonDictInterface* XdxfPlugin::getNew(const Settings *settings) const {
XdxfPlugin *plugin = new XdxfPlugin();
- if(settings)
- plugin->setSettings(settings);
- return plugin;
+ if(settings && plugin->setSettings(settings))
+ return plugin;
+ else {
+ delete plugin;
+ return new XdxfPlugin();
+ }
}
}
-void XdxfPlugin::setSettings(const Settings *settings) {
+bool XdxfPlugin::setSettings(const Settings *settings) {
if(settings) {
bool isPathChange=false;
QString oldPath = _settings->value("path");
_settings->setValue(key, settings->value(key));
}
+ if(!getDictionaryInfo()) {
+ Q_EMIT notify(Notify::Warning,
+ QString(tr("XDXF file is in wrong format")));
+ qDebug()<<"Error: xdxf file is in wrong format";
+ return false;
+ }
+
if(isPathChange) {
_wordsCount=0;
if(oldPath!="")
else if (settings->value("generateCache") == "false") {
_settings->setValue("cached", "false");
}
-
- getDictionaryInfo();
}
+ else
+ return false;
Q_EMIT settingsChanged();
+ return true;
}
-void XdxfPlugin::getDictionaryInfo() {
+bool XdxfPlugin::getDictionaryInfo() {
QFile dictionaryFile(_settings->value("path"));
if(!QFile::exists(_settings->value("path"))
|| !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
Q_EMIT notify(Notify::Warning,
QString(tr("XDXF dictionary cannot be read from file")));
qDebug()<<"Error: could not open file";
- return;
+ return false;
}
+ bool okFormat=false;
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();
+ okFormat=true;
+ 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();
}
reader.readNextStartElement();
if(reader.name()=="full_name")
_infoNote="path=\""+initialPath+"\"> \n" + _name + " [" + _langFrom + "-"
+ _langTo + "] ( xdxf )";
dictionaryFile.close();
+ if(okFormat)
+ return true;
+ return false;
}