From 06158109e2150d5b7ebd8fed8de46ea0f822c4f4 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Wed, 18 Aug 2010 09:22:01 +0200 Subject: [PATCH] Added settings handling for backbone search_limit, history_size, search_bookmarks, search_dictionaries --- data/mdictionary.defaults | 2 +- trunk/src/base/backbone/backbone.cpp | 65 ++++++++++++++++++++++++---------- trunk/src/base/backbone/backbone.h | 28 ++++++++++++--- 3 files changed, 72 insertions(+), 23 deletions(-) diff --git a/data/mdictionary.defaults b/data/mdictionary.defaults index 83f046e..ca7c907 100644 --- a/data/mdictionary.defaults +++ b/data/mdictionary.defaults @@ -1,6 +1,6 @@ [%General] plugin_path=/usr/lib/mdictionary -history_length=10 +history_size=10 search_limit=15 [dictionary_0] diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index 7dd9856..c24c82d 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -174,20 +174,24 @@ void Backbone::stopSearching() { -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); + } } @@ -232,7 +236,7 @@ void Backbone::addDictionary(CommonDictInterface *dict, bool active) { void Backbone::translationReady() { - if(_innerResult.isFinished() && !dictFin) { + if(!dictFin && _innerResult.isFinished()) { dictFin = 1; QFutureIterator > it(_innerResult); @@ -243,16 +247,15 @@ void Backbone::translationReady() { } } - if(_innerBookmarks.isFinished() && !bookmarkFin) { + if(!bookmarkFin && _innerBookmarks.isFinished()) { bookmarkFin = 1; QList 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(); } @@ -314,8 +317,10 @@ void Backbone::loadPrefs(QString fileName) { } 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(); } @@ -324,8 +329,10 @@ void Backbone::savePrefs(QSettings *set) { 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); } @@ -334,7 +341,7 @@ void Backbone::saveDefaultPrefs(QSettings *set) { 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); } @@ -440,15 +447,12 @@ void Backbone::searchHtml(QList translations) { QList 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() { @@ -478,3 +482,28 @@ void Backbone::bookmarksListReady() { _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; +} diff --git a/trunk/src/base/backbone/backbone.h b/trunk/src/base/backbone/backbone.h index 9c3a2b6..267eb9e 100644 --- a/trunk/src/base/backbone/backbone.h +++ b/trunk/src/base/backbone/backbone.h @@ -97,6 +97,8 @@ public Q_SLOTS: /*! search for a word translation \param word to be translated + \param dicts searching in dicionaries + \param bookmarks searching in bookmarks */ void search(QString word); @@ -146,7 +148,7 @@ public Q_SLOTS: */ void addBookmark(QList translations) { foreach(Translation* translation, translations) - bookmarks.add(translation); + _bookmarks.add(translation); //QtConcurrent::run(&bookmarks, &Bookmarks::add, translation); } @@ -156,7 +158,7 @@ public Q_SLOTS: */ void removeBookmark(QList translations) { foreach(Translation* translation, translations) - bookmarks.remove(translation); + _bookmarks.remove(translation); } @@ -166,7 +168,7 @@ public Q_SLOTS: */ void fetchBookmarks() { _bookmarksResult.clear(); - _innerListBookmarks = QtConcurrent::run(bookmarks, &Bookmarks::list); + _innerListBookmarks = QtConcurrent::run(_bookmarks, &Bookmarks::list); _bookmarkWatcher.setFuture(_innerListBookmarks); } @@ -177,6 +179,20 @@ public Q_SLOTS: } + /*! 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 @@ -231,18 +247,22 @@ private: 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 activeDicts(); -- 1.7.9.5