*/
#include "backbone.h"
+#include "ConfigGenerator.h"
+class ConfigGenerator;
#include <QDebug>
int Backbone::_searchLimit;
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
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);
if(dryRun)
return;
QStringList nameFilter;
- nameFilter << "*.so";
+ nameFilter << "*.so" << "*.so.*";
QStringList files = getFilesFromDir(_pluginPath, nameFilter);
foreach(QString file, files) {
}
QObject *pl = loader.instance();
+ bool exists = 0;
CommonDictInterface *plugin = qobject_cast<CommonDictInterface*>(pl);
- _plugins.append(plugin);
+ foreach(CommonDictInterface* pl, _plugins)
+ if(pl->type() == plugin->type()) {
+ exists = 1;
+ break;
+ }
+ if(!exists)
+ _plugins.append(plugin);
}
}
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;
}
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;
}
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;
}
QList<TranslationPtr> 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<QString> it(_innerHtmlResult);
+ QSet<QString> uniqe;
while(it.hasNext())
- _htmlResult.append(it.next());
+ uniqe.insert(it.next());
+ _htmlResult.clear();
+ _htmlResult = uniqe.toList();
if(!stopped)
Q_EMIT htmlReady();