X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fplugins%2Fxdxf%2Fxdxfplugin.cpp;h=aad8274f27bf0c72cff3d14962c5d319e424ad51;hb=14cb9cc957bcdc9c39af54ba168c6816a1910a2d;hp=533350ba257818431a5cd4fb33138aa7d4812f06;hpb=f3c48923b83c7d4f8ddebc1f03ddf6acd93f64e3;p=mdictionary diff --git a/src/plugins/xdxf/xdxfplugin.cpp b/src/plugins/xdxf/xdxfplugin.cpp index 533350b..aad8274 100644 --- a/src/plugins/xdxf/xdxfplugin.cpp +++ b/src/plugins/xdxf/xdxfplugin.cpp @@ -32,11 +32,8 @@ XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent), _settings = new Settings(); _dictDialog = new XdxfDictDialog(this, this); - connect(_dictDialog, SIGNAL(notify(Notify::NotifyType,QString, QWidget*)), - this, SIGNAL(notify(Notify::NotifyType,QString, QWidget*))); - - cachingDialog = new XdxfCachingDialog(this); - + connect(_dictDialog, SIGNAL(notify(Notify::NotifyType,QString)), + this, SIGNAL(notify(Notify::NotifyType,QString))); _settings->setValue("type","xdxf"); @@ -44,10 +41,6 @@ XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent), _wordsCount = -1; stopped = false; - connect(cachingDialog, SIGNAL(cancelCaching()), - this, SLOT(stop())); - connect(this, SIGNAL(updateCachingProgress(int,int)), - cachingDialog, SLOT(updateCachingProgress(int,int))); initAccents(); } @@ -56,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; } @@ -93,7 +83,7 @@ QString XdxfPlugin::type() const { QString XdxfPlugin::infoNote() const { - return _infoNote; + return _infoNote; } @@ -152,7 +142,7 @@ QList XdxfPlugin::searchWordListCache(QString word, int limit) { if(ok) { /*add key word to list*/ translations.insert(new TranslationXdxf( cur.value(0).toString().toLower(), - _infoNote, this)); + _dictionaryInfo, this)); i++; } } @@ -203,7 +193,7 @@ QList XdxfPlugin::searchWordListFile(QString word, int limit) { } if(ok) { /*add key word to list*/ translations<<(new TranslationXdxf(readKey.toLower(), - _infoNote,this)); + _dictionaryInfo,this)); i++; } if(i>=limit && limit!=0) @@ -329,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; } @@ -344,24 +347,7 @@ bool XdxfPlugin::isAvailable() const { } -void XdxfPlugin::setHash(uint _hash) { - this->_hash=_hash; -} - - -uint XdxfPlugin::hash() const { - return _hash; -} - - Settings* XdxfPlugin::settings() { -/* - Settings *returnSettings=new Settings; - QStringList list = _settings->keys(); - foreach(QString key, list) - returnSettings->setValue(key,_settings->value(key)); - return returnSettings; -*/ return _settings; } @@ -455,14 +441,17 @@ 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"; - QString initialPath = "/usr/share/mdictionary/xdxf.png"; - - _infoNote=" path=\""+initialPath+"\"> \n" + _name + " [" + _langFrom + "-" + _dictionaryInfo= _name + " [" + _langFrom + "-" + _langTo + "]"; + dictionaryFile.close(); if(okFormat) return true; @@ -506,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; @@ -566,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) { @@ -606,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; } @@ -614,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(); @@ -629,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; }