-void Backbone::search(QString word) {
+void Backbone::search(QString word){
_result.clear();
mappedSearch = word.toLower();
stopped = false;
- dictFin = 0;
- bookmarkFin = 0;
+ dictFin = !_searchDicts;
+ bookmarkFin = !_searchBookmarks;
- _innerResult = QtConcurrent::mapped(activeDicts(), mapSearch);
- _resultWatcher.setFuture(_innerResult);
+ if (_searchDicts) {
+ _innerResult = QtConcurrent::mapped(activeDicts(), mapSearch);
+ _resultWatcher.setFuture(_innerResult);
+ }
- _innerBookmarks = QtConcurrent::run(bookmarks, &Bookmarks::searchWordList,
- word);
- _bookmarkSearchWatcher.setFuture(_innerBookmarks);
+ if(_searchBookmarks) {
+ _innerBookmarks = QtConcurrent::run(_bookmarks,
+ &Bookmarks::searchWordList, word);
+ _bookmarkSearchWatcher.setFuture(_innerBookmarks);
+ }
}
void Backbone::translationReady() {
- if(_innerResult.isFinished() && !dictFin) {
+ if(!dictFin && _innerResult.isFinished()) {
dictFin = 1;
QFutureIterator<QList<Translation*> > it(_innerResult);
}
}
- if(_innerBookmarks.isFinished() && !bookmarkFin) {
+ if(!bookmarkFin && _innerBookmarks.isFinished()) {
bookmarkFin = 1;
QList<Translation*> list = _innerBookmarks.result();
- qDebug() << "translation bookmarks" << list.size();
foreach(Translation* trans, list)
_result.insert(trans->key().toLower(), trans);
}
- if(!stopped && _innerResult.isFinished() && _innerBookmarks.isFinished())
+ if(!stopped && bookmarkFin && dictFin)
Q_EMIT ready();
}
}
QSettings set(file.filePath(), QSettings::IniFormat);
_pluginPath = set.value("general/plugin_path", _pluginPath).toString();
- _historyLen = set.value("general/history_length", 10).toInt();
+ _historyLen = set.value("general/history_size", 10).toInt();
_searchLimit = set.value("general/search_limit", 15).toInt();
+ _searchBookmarks = set.value("general/search_bookmarks",1).toBool();
+ _searchDicts = set.value("general/search_dictionaries",1).toBool();
}
if(dryRun)
return;
set->setValue("general/plugin_path", _pluginPath);
- set->setValue("general/history_length", _historyLen);
+ set->setValue("general/history_size", _historyLen);
set->setValue("general/search_limit", _searchLimit);
+ set->setValue("general/search_bookmarks", _searchBookmarks);
+ set->setValue("general/search_dictionaries", _searchDicts);
}
if(dryRun)
return;
set->setValue("general/plugin_path", _defaultPluginPath);
- set->setValue("general/history_length", _defaultHistoryLen);
+ set->setValue("general/history_size", _defaultHistoryLen);
set->setValue("general/search_limit", _defaultSearchLimit);
}
QList<TranslationPtr> dummy;
stopped = false;
- qDebug()<< "search html";
foreach(Translation* tr, translations)
dummy.append(TranslationPtr(tr));
- qDebug()<< "search html mapp " << dummy.size();
_innerHtmlResult = QtConcurrent::mapped(dummy,
&TranslationPtr::toHtml);
_htmlResultWatcher.setFuture(_innerHtmlResult);
- qDebug()<< "search html after map";
}
void Backbone::htmlTranslationReady() {
_bookmarksResult = _innerBookmarks.result();
Q_EMIT bookmarksReady();
}
+
+
+
+
+void Backbone::setSettings(Settings *settings) {
+ _historyLen = settings->value("history_size").toInt();
+ _searchLimit = settings->value("search_limit").toInt();
+ if(settings->value("search_dictionaries") == "true")
+ _searchDicts = 1;
+ if(settings->value("search_bookmarks") == "true")
+ _searchBookmarks = 1;
+ dictUpdated();
+}
+
+
+
+
+Settings* Backbone::settings() {
+ Settings * settings = new Settings();
+ settings->setValue("history_size", QString("%1").arg(_historyLen));
+ settings->setValue("search_limit", QString("%1").arg(_searchLimit));
+ settings->setValue("search_dictionaries", QString("%1").arg(_searchDicts));
+ settings->setValue("search_bookmarks", QString("%1").arg(_searchBookmarks));
+ return settings;
+}
/*! search for a word translation
\param word to be translated
+ \param dicts searching in dicionaries
+ \param bookmarks searching in bookmarks
*/
void search(QString word);
*/
void addBookmark(QList<Translation*> translations) {
foreach(Translation* translation, translations)
- bookmarks.add(translation);
+ _bookmarks.add(translation);
//QtConcurrent::run(&bookmarks, &Bookmarks::add, translation);
}
*/
void removeBookmark(QList<Translation*> translations) {
foreach(Translation* translation, translations)
- bookmarks.remove(translation);
+ _bookmarks.remove(translation);
}
*/
void fetchBookmarks() {
_bookmarksResult.clear();
- _innerListBookmarks = QtConcurrent::run(bookmarks, &Bookmarks::list);
+ _innerListBookmarks = QtConcurrent::run(_bookmarks, &Bookmarks::list);
_bookmarkWatcher.setFuture(_innerListBookmarks);
}
}
+ /*! Sets settings for backbone: history_size, search_limit,
+ searching backends (search_bookmarks, search_dictionaries)
+ \param settings settings object with opitons set
+ */
+ void setSettings(Settings* settings);
+
+
+ /*! \return coresponding settings object with history_size, search_limit,
+ searching backends (search_bookmarks, search_dictionaries)
+ */
+ Settings* settings();
+
+
+
Q_SIGNALS:
/*! emmited when backbone is ready to close - after getting stop signal it
bool dryRun;
bool stopped;
bool bookmarkFin, dictFin; // inform whether givent search type is ready
- Bookmarks bookmarks;
+ bool _searchDicts, _searchBookmarks;
+ Bookmarks _bookmarks;
void init();
+
QStringList getFilesFromDir(QString dir, QStringList nameFilter);
void loadPlugins(); //< locate and load plugins
void loadPrefs(QString fileName);
void loadDicts(QString fileName, bool _default=false);
+
void saveState(QSettings*, Settings*, bool, uint);
void addInternalDictionary(CommonDictInterface*, bool);
void savePrefs(QSettings*);
void saveDefaultPrefs(QSettings*);
+
CommonDictInterface* plugin(QString type); //< search for given type plugin
QList<CommonDictInterface*> activeDicts();