Merge branch 'master' into google
authorJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Wed, 1 Sep 2010 13:49:30 +0000 (15:49 +0200)
committerJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Wed, 1 Sep 2010 13:49:30 +0000 (15:49 +0200)
1  2 
trunk/src/plugins/xdxf/src/XdxfSettingsDialog.cpp
trunk/src/plugins/xdxf/src/xdxfplugin.cpp

@@@ -91,18 -88,17 +91,18 @@@ QList<Translation*> XdxfPlugin::searchW
  QList<Translation*> XdxfPlugin::searchWordListCache(QString word, int limit) {
      int i=0;
      QSet<Translation*> translations;
 -
      QString cacheFilePath = _settings->value("cache_path");
 +
 +//  QSqlDatabase::removeDatabase(cacheFilePath);
      db.setDatabaseName(cacheFilePath);
 -    if(!db.open()) {
 +    if(!QFile::exists(cacheFilePath) || !db.open()) {
          qDebug() << "Database error" << db.lastError().text() << endl;
          Q_EMIT notify(Notify::Warning, QString(tr("Cache database cannot be "
-                 "opened for %1 dictionary. Searching in xdxf file. "
+                 "opened for %1 dictionary. Searching in XDXF file. "
                  "You may want to recache.").arg(name())));
 +        _settings->setValue("cached","false");
          return searchWordListFile(word, limit);
      }
 -
      stopped = false;
      word = word.toLower();
      word = word.replace("*", "%");
@@@ -151,13 -146,10 +151,13 @@@ QList<Translation*> XdxfPlugin::searchW
      QRegExp regWord(word);
      regWord.setCaseSensitivity(Qt::CaseInsensitive);
      regWord.setPatternSyntax(QRegExp::Wildcard);
 -    if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
 +
 +    /*check xdxf file exist*/
 +    if(!QFile::exists(_settings->value("path"))
 +                || !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
          qDebug()<<"Error: could not open file";
          Q_EMIT notify(Notify::Warning,
-                 QString(tr("Xdxf file cannot be read for %1").arg(name())));
+                 QString(tr("XDXF file cannot be read for %1").arg(name())));
          return translations.toList();
      }
  
@@@ -212,12 -201,11 +212,12 @@@ QString XdxfPlugin::searchCache(QStrin
      db.setDatabaseName(cacheFilePath);
      key = key.toLower();
  
 -    if(!db.open()) {
 +    if(!QFile::exists(cacheFilePath) || !db.open()) {
          qDebug() << "Database error" << db.lastError().text() << endl;
          Q_EMIT notify(Notify::Warning, QString(tr("Cache database cannot be "
-                 "opened for %1 dictionary. Searching in xdxf file. "
+                 "opened for %1 dictionary. Searching in XDXF file. "
                  "You may want to recache.").arg(name())));
 +        _settings->setValue("cached","false");
          return searchFile(key);
      }
  
  
  }
  
 +
  QString XdxfPlugin::searchFile(QString key) {
 -    key = key.toLower();
 -    QFile dictionaryFile(path);
 +    QFile dictionaryFile(_settings->value("path"));
      QString resultString("");
 -    if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
 +    key = key.toLower();
 +
 +    /*check xdxf file exist*/
 +    if(!QFile::exists(_settings->value("path"))
 +                || !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
          Q_EMIT notify(Notify::Warning,
-                 QString(tr("Xdxf file cannot be read for %1").arg(name())));
+                 QString(tr("XDXF file cannot be read for %1").arg(name())));
          qDebug()<<"Error: could not open file";
          return "";
      }
@@@ -387,12 -379,12 +387,12 @@@ void XdxfPlugin::setSettings(const Sett
  }
  
  
 -
  void XdxfPlugin::getDictionaryInfo() {
 -    QFile dictionaryFile(path);
 -    if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
 +    QFile dictionaryFile(_settings->value("path"));
 +    if(!QFile::exists(_settings->value("path"))
 +                || !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
         Q_EMIT notify(Notify::Warning,
-                QString(tr("Xdxf file cannot be read dictionary")));
+                QString(tr("XDXF dictionary cannot be read from file")));
          qDebug()<<"Error: could not open file";
          return;
      }
@@@ -425,15 -417,14 +425,15 @@@ QIcon* XdxfPlugin::icon() 
      return &_icon;
  }
  
 +
  int XdxfPlugin::countWords() {
 -    if(_wordsCount > 0)
 +    if(_wordsCount>0)
          return _wordsCount;
 -
 -    QFile dictionaryFile(path);
 -    if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
 +    QFile dictionaryFile(_settings->value("path"));
 +    if(!QFile::exists(_settings->value("path"))
 +                || !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
          Q_EMIT notify(Notify::Warning,
-                 QString(tr("Xdxf file cannot be read for %1 dictionary")
+                 QString(tr("XDXF file cannot be read for %1 dictionary")
                  .arg(name())));
          qDebug()<<"Error: could not open file";
          return -1;
  bool XdxfPlugin::makeCache(QString) {
      cachingDialog->setVisible(true);
      QCoreApplication::processEvents();
 -    stopped = false;
      QFileInfo dictFileN(_settings->value("path"));
      QString cachePathN;
 -    cachePathN = QDir::homePath() + "/.mdictionary/"
 -                 + dictFileN.completeBaseName() + ".cache";
 +    stopped = false;
  
 +    /*create cache file name*/
 +    int i=0;
 +    do {
 +        cachePathN = QDir::homePath() + "/.mdictionary/"
 +                                      + dictFileN.completeBaseName()+"."
 +                                      +QString::number(i) + ".cache";
 +        i++;
 +    } while(QFile::exists(cachePathN));
 +
 +    /*checke errors (File open and db open)*/
      QFile dictionaryFile(dictFileN.filePath());
 -
 -    if (!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
 +    if (!QFile::exists(_settings->value("path"))
 +                || !dictionaryFile.open(QFile::ReadOnly | QFile::Text)) {
          Q_EMIT updateCachingProgress(100, 0);
          Q_EMIT notify(Notify::Warning,
-                 QString(tr("Xdxf file cannot be read for %1 dictionary")
+                 QString(tr("XDXF file cannot be read for %1 dictionary")
                  .arg(name())));
          return 0;
      }