X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=trunk%2Fsrc%2Fbase%2Fbackbone%2Fbackbone.cpp;h=10116c723aa5bb49d06042cf03eb09b91271d566;hb=a98118bc24bae5677f94784fa784d1b24a262261;hp=451ca9fe2e9d36542e8f092635232718b296f8ac;hpb=7000b0e4ea4969634521dff11ca78c9e8332ecd9;p=mdictionary diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index 451ca9f..10116c7 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -26,6 +26,8 @@ */ #include "backbone.h" +#include "ConfigGenerator.h" +class ConfigGenerator; #include int Backbone::_searchLimit; @@ -69,15 +71,22 @@ public: void Backbone::init() { + _dir = QDir::homePath() + "/.mdictionary/"; if(!_configPath.size()) - _configPath = QDir::homePath() + "/.mdictionary/mdictionary.config"; + _configPath = _dir + "mdictionary.config"; if(!_defaultConfigPath.size()) - _defaultConfigPath = QDir::homePath() + "/.mdictionary/mdictionary.defaults"; + _defaultConfigPath = _dir + "mdictionary.defaults"; if(!_pluginPath.size()) _pluginPath = "/usr/lib/mdictionary"; _historyLen = 10; _searchLimit = 15; + //Install default config files + ConfigGenerator confGen; + confGen.generateCss(_dir + "style.css"); + + + loadPrefs(_defaultConfigPath); // Default configuration are stored in separate config file and we dont want @@ -305,9 +314,9 @@ void Backbone::translationReady() { QStringList Backbone::getFilesFromDir(QString dir, QStringList nameFilter) { QDir plug(QDir::toNativeSeparators(dir)); if(!plug.exists()) { - qDebug() << plug.absolutePath() << " folder dosen't exists"; + qDebug() << plug.absolutePath() << " folder doesn't exist"; Q_EMIT notify(Notify::Warning, - QString("%1 folder dosen't exists.").arg(plug.path())); + QString("%1 folder doesn't exist.").arg(plug.path())); return QStringList(); } plug.setFilter(QDir::Files); @@ -323,7 +332,7 @@ void Backbone::loadPlugins() { if(dryRun) return; QStringList nameFilter; - nameFilter << "*.so"; + nameFilter << "*.so" << "*.so.*"; QStringList files = getFilesFromDir(_pluginPath, nameFilter); foreach(QString file, files) { @@ -337,8 +346,15 @@ void Backbone::loadPlugins() { } QObject *pl = loader.instance(); + bool exists = 0; CommonDictInterface *plugin = qobject_cast(pl); - _plugins.append(plugin); + foreach(CommonDictInterface* pl, _plugins) + if(pl->type() == plugin->type()) { + exists = 1; + break; + } + if(!exists) + _plugins.append(plugin); } } @@ -359,10 +375,10 @@ void Backbone::loadPrefs(QString fileName) { QFileInfo file(QDir::toNativeSeparators(fileName)); QDir confDir(file.dir()); if(!confDir.exists()){ - qDebug() << "Configuration file dosn't exists (" + qDebug() << "Configuration file doesn't exist (" << file.filePath() << ")"; Q_EMIT notify(Notify::Warning, - QString("%1 configurationfile dosen't exists.") + QString("%1 configuration file doesn't exist.") .arg(file.filePath())); return; } @@ -405,10 +421,10 @@ void Backbone::loadDicts(QString fileName, bool _default) { QFileInfo file(QDir::toNativeSeparators(fileName)); QDir confDir(file.dir()); if(!confDir.exists()){ - qDebug() << "Configuration file dosn't exists (" + qDebug() << "Configuration file doesn't exist (" << file.filePath() << ")"; Q_EMIT notify(Notify::Warning, - QString("%1 configurationfile dosen't exists.") + QString("%1 configurationfile doesn't exist.") .arg(file.filePath())); return; } @@ -423,9 +439,9 @@ void Backbone::loadDicts(QString fileName, bool _default) { if(!plug) { qDebug() << "Config file error: " << set.value(dict + "/type", "").toString() - << " dosen't exists"; + << " doesn't exist"; Q_EMIT notify(Notify::Warning, - QString("Configuration file error. %2 plugin dosen't exists.") + QString("Configuration file error. %2 plugin doesn't exist.") .arg(set.value(dict + "/type", "").toString())); continue; } @@ -514,20 +530,38 @@ void Backbone::searchHtml(QList translations) { QList dummy; stopped = false; foreach(Translation* tr, translations) { - if(containsDict(tr->dict()) || !tr->dict()) + if(containsDict(tr->dict()) || !tr->dict()) dummy.append(TranslationPtr(tr)); - } + /* foreach(CommonDictInterface* dict, activeDicts()) { + Translation* trans = dict->getTranslationFor(tr->key()); + if(trans) + dummy.append(TranslationPtr(trans)); + } */ + } + if(translations.size()>0) { + Translation *tr = translations.at(0); + foreach(CommonDictInterface* dict, activeDicts()) { + Translation* trans = dict->getTranslationFor(tr->key()); + if(trans) + dummy.append(TranslationPtr(trans)); + } + } _innerHtmlResult = QtConcurrent::mapped(dummy, &TranslationPtr::toHtml); _htmlResultWatcher.setFuture(_innerHtmlResult); } + + void Backbone::htmlTranslationReady() { QFutureIterator it(_innerHtmlResult); + QSet uniqe; while(it.hasNext()) - _htmlResult.append(it.next()); + uniqe.insert(it.next()); + _htmlResult.clear(); + _htmlResult = uniqe.toList(); if(!stopped) Q_EMIT htmlReady();