X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugins%2Fxdxf%2Fxdxfplugin.cpp;h=aad8274f27bf0c72cff3d14962c5d319e424ad51;hb=14cb9cc957bcdc9c39af54ba168c6816a1910a2d;hp=e7088d94ccc7b6dd6516460d6adc394853b74cc9;hpb=99fdf94695a621052055def6a38164429aa84bff;p=mdictionary diff --git a/src/plugins/xdxf/xdxfplugin.cpp b/src/plugins/xdxf/xdxfplugin.cpp index e7088d9..aad8274 100644 --- a/src/plugins/xdxf/xdxfplugin.cpp +++ b/src/plugins/xdxf/xdxfplugin.cpp @@ -30,18 +30,17 @@ XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent), _langFrom(""), _langTo(""),_name(""), _infoNote("") { _settings = new Settings(); - _dictDialog = new XdxfDictDialog(this); - cachingDialog = new XdxfCachingDialog(this); + _dictDialog = new XdxfDictDialog(this, this); + + connect(_dictDialog, SIGNAL(notify(Notify::NotifyType,QString)), + this, SIGNAL(notify(Notify::NotifyType,QString))); + _settings->setValue("type","xdxf"); _icon = QIcon("/usr/share/mdictionary/xdxf.png"); _wordsCount = -1; stopped = false; - connect(cachingDialog, SIGNAL(cancelCaching()), - this, SLOT(stop())); - connect(this, SIGNAL(updateCachingProgress(int,int)), - cachingDialog, SLOT(updateCachingProgress(int,int))); initAccents(); } @@ -50,18 +49,15 @@ void XdxfPlugin::retranslate() { QTranslator *translator = new QTranslator(this); - if(locale == "pl_PL") - translator->load(":/translations/dict_xdxf_pl"); - else - translator->load(":/translations/dict_xdxf_en"); - + if(!translator->load(":/xdxf/translations/" + locale)) { + translator->load(":/xdxf/translations/en_US"); + } QCoreApplication::installTranslator(translator); } XdxfPlugin::~XdxfPlugin() { delete _settings; - delete cachingDialog; delete _dictDialog; } @@ -323,10 +319,23 @@ DictDialog* XdxfPlugin::dictDialog() { CommonDictInterface* XdxfPlugin::getNew(const Settings *settings) const { XdxfPlugin *plugin = new XdxfPlugin(); + + connect(plugin, SIGNAL(notify(Notify::NotifyType,QString)), + this, SIGNAL(notify(Notify::NotifyType,QString))); + + ((XdxfDictDialog*)plugin->dictDialog())->setLastDialogParent(_dictDialog->lastDialogParent()); + + + if(settings && plugin->setSettings(settings)) { + + disconnect(plugin, SIGNAL(notify(Notify::NotifyType,QString)), + this, SIGNAL(notify(Notify::NotifyType,QString))); return plugin; } else { + disconnect(plugin, SIGNAL(notify(Notify::NotifyType,QString)), + this, SIGNAL(notify(Notify::NotifyType,QString))); delete plugin; return 0; } @@ -432,9 +441,13 @@ bool XdxfPlugin::getDictionaryInfo() { reader.readNextStartElement(); if(reader.name()=="full_name") _name=reader.readElementText(); + else + qDebug()<<"no full_name"; reader.readNextStartElement(); if(reader.name()=="description") _infoNote=reader.readElementText(); + else + qDebug()<<"no description"; _dictionaryInfo= _name + " [" + _langFrom + "-" + _langTo + "]"; @@ -482,7 +495,19 @@ int XdxfPlugin::countWords() { bool XdxfPlugin::makeCache(QString) { - cachingDialog->setVisible(true); + + XdxfCachingDialog d(_dictDialog->lastDialogParent()); + + qDebug()<<_dictDialog->lastDialogParent(); + + connect(&d, SIGNAL(cancelCaching()), + this, SLOT(stop())); + + connect(this, SIGNAL(updateCachingProgress(int,int)), + &d, SLOT(updateCachingProgress(int,int))); + + d.show(); + QCoreApplication::processEvents(); QFileInfo dictFileN(_settings->value("path")); QString cachePathN; @@ -542,6 +567,7 @@ bool XdxfPlugin::makeCache(QString) { /*add all words to db*/ while (!reader.atEnd() && !stopped) { + QCoreApplication::processEvents(); reader.readNext(); if(reader.tokenType() == QXmlStreamReader::StartElement) { @@ -582,7 +608,7 @@ bool XdxfPlugin::makeCache(QString) { cur.exec(); counter++; int prog = counter*100/_wordsCount; - if(prog % 5 == 0 && lastProg != prog) { + if(prog % 2 == 0 && lastProg != prog) { Q_EMIT updateCachingProgress(prog,timer.restart()); lastProg = prog; } @@ -590,7 +616,6 @@ bool XdxfPlugin::makeCache(QString) { } cur.exec("END;"); cur.exec("select count(*) from dict"); - cachingDialog->setVisible(false); /*checke errors (wrong number of added words)*/ countWords(); @@ -605,6 +630,13 @@ bool XdxfPlugin::makeCache(QString) { _settings->setValue("cache_path", cachePathN); _settings->setValue("cached", "true"); + + disconnect(&d, SIGNAL(cancelCaching()), + this, SLOT(stop())); + + disconnect(this, SIGNAL(updateCachingProgress(int,int)), + &d, SLOT(updateCachingProgress(int,int))); + db.close(); return true; }