QList<Translation*> XdxfPlugin::searchWordListCache(QString word, int limit) {
+ qDebug() << "search cache";
+ QSet<Translation*> translations;
+ QString cacheFilePath = _settings->value("cache_path");
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
+ db.setDatabaseName(cacheFilePath);
+ if(!db.open()) {
+ qDebug() << "Database error" << endl;
+ return searchWordListFile(word, limit);
+ }
+ stopped = false;
+ word = removeAccents(word);
+ if(word.indexOf("*")==-1)
+ word+="%";
+ word = word.replace("*", "%");
+
+ QSqlQuery cur;
+ cur.prepare("select word from dict where word like ? limit ?");
+ cur.addBindValue(word);
+ cur.addBindValue(limit);
+ cur.exec();
+ while(cur.next())
+ translations.insert(new TranslationXdxf(cur.value(0).toString(),
+ _infoNote, this));
+ return translations.toList();
}
QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
+ qDebug() << "search file";
QSet<Translation*> translations;
QFile dictionaryFile(path);
QStringList list = settings->keys();
foreach(QString key, list)
plugin->settings()->setValue(key, settings->value(key));
- plugin->makeCache("");
+ if(plugin->settings()->value("cached") != "true")
+ plugin->makeCache("");
}
return plugin;
}
qDebug() << "ŻLEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE";
return false;
}
+ _settings->setValue("cache_path", cachePathN);
+ _settings->setValue("cached", "true");
return true;
}