Merge branch 'cache' into bookmarks
[mdictionary] / trunk / src / plugins / xdxf / src / xdxfplugin.cpp
index 2f690e7..5c75498 100644 (file)
@@ -67,7 +67,11 @@ QString XdxfPlugin::infoNote() const {
 }
 
 QList<Translation*> XdxfPlugin::searchWordList(QString word, int limit) {
-    if(_settings->value("cached") == "true")
+    //if(_settings->value("cached") == "true")
+    if(word.indexOf("*")==-1 && word.indexOf("?")==-1 && word.indexOf("_")==-1
+       && word.indexOf("%")==-1)
+        word+="*";
+    if(isCached())
         return searchWordListCache(word,limit);
     return searchWordListFile(word, limit);
 }
@@ -110,8 +114,6 @@ QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
     word = removeAccents(word);
 
     stopped = false;
-    if(word.indexOf("*")==-1)
-        word+="*";
     QRegExp regWord(word);
     regWord.setCaseSensitivity(Qt::CaseInsensitive);
     regWord.setPatternSyntax(QRegExp::Wildcard);
@@ -153,7 +155,8 @@ QList<Translation*> XdxfPlugin::searchWordListFile(QString word, int limit) {
 }
 
 QString XdxfPlugin::search(QString key) {
-    if(_settings->value("cached") == "true")
+//    if(_settings->value("cached") == "true")
+    if(isCached())
         return searchCache(key);
     return searchFile(key);
 }
@@ -284,6 +287,8 @@ Settings* XdxfPlugin::settings() {
 }
 
 bool XdxfPlugin::isCached() {
+    if(_settings->value("cached") == "true")
+        return true;
     return false;
 }
 
@@ -342,7 +347,9 @@ QString XdxfPlugin::removeAccents(QString string) {
             !normalized[i].isSpace() &&
             !normalized[i].isDigit() &&
             normalized[i] != '*' &&
-            normalized[i] != '%') {
+            normalized[i] != '%' &&
+            normalized[i] != '_' &&
+            normalized[i] != '?' ) {
             normalized.remove(i,1);
         }
     }
@@ -427,7 +434,7 @@ bool XdxfPlugin::makeCache(QString dir) {
     while (!reader.atEnd() && !stopped) {
 
         QCoreApplication::processEvents();
-        //usleep(50);
+       // usleep(50);
         reader.readNext();
 
         if(reader.tokenType() == QXmlStreamReader::StartElement) {