Merge branch 'master' into google
authorJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Wed, 15 Sep 2010 08:44:12 +0000 (10:44 +0200)
committerJakub Jaszczynski <j.j.jaszczynski@gmail.com>
Wed, 15 Sep 2010 08:44:12 +0000 (10:44 +0200)
1  2 
src/include/translation.h
src/mdictionary/backbone/BookmarkTranslations.h
src/mdictionary/backbone/Bookmarks.cpp
src/mdictionary/backbone/Bookmarks.h
src/mdictionary/backbone/backbone.cpp
src/mdictionary/gui/MainWindow.cpp
src/plugins/google/GoogleDialog.cpp
src/plugins/google/TranslationGoogle.h
src/plugins/xdxf/TranslationXdxf.h

@@@ -51,11 -51,11 +51,11 @@@ class Translation 
          return this->key()==translation->key();
      }
  
 -    //! \return parsed raw format into html
 -    virtual QString toHtml() const = 0;
 +    //! \return parsed raw format into xml
 +    virtual QString toXml() const = 0;
  
      //! \return whether given translation is taken from bookmarks
-     virtual bool isBookmark() const {
+     virtual int isBookmark() const {
          return _bookmark;
     }
  
@@@ -69,7 -69,7 +69,7 @@@
  
   protected:
   //! indicates whether this translation is in bookmark
-     bool _bookmark;
+     int _bookmark;
  
  };
  
@@@ -42,7 -42,7 +42,7 @@@ public
          _key = key;
          _dictionaryInfo = dbName;
          _bookmarks = bookmarks;
-         _bookmark = 1;
+         _bookmark = 2;
      }
  
      //! \return word to be translated
@@@ -50,8 -50,8 +50,8 @@@
          return _key;
      }
  
 -    //! \return parsed raw format into html
 -    QString toHtml() const {
 +    //! \return parsed raw format into xml
 +    QString toXml() const {
          if(!_key.size() || !_bookmarks)
              return "";
  
@@@ -5,12 -5,11 +5,11 @@@
  Bookmarks::Bookmarks() {
      this->dbName = QDir::homePath() + "/.mdictionary/"
                   + "bookmarks.db";
-     checkAndCreateDb();
+     mdb = QSqlDatabase::addDatabase("QSQLITE");
+     mdb.setDatabaseName(dbName);
+     checkAndCreateDb(dbName);
      initAccents();
  
-     mdb = QSqlDatabase::addDatabase("QSQLITE",
-             QString("%2").arg((int)QThread::currentThreadId()));
-     mdb.setDatabaseName(dbName);
  }
  
  
@@@ -19,23 -18,21 +18,21 @@@ Bookmarks::~Bookmarks() 
  }
  
  
- QSqlDatabase Bookmarks::getDbCnx(QString dbName) {
-     QSqlDatabase::removeDatabase(
-             QString("%2").arg((int)QThread::currentThreadId()));
-     QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE",
-             QString("%2").arg((int)QThread::currentThreadId()));
-     db.setDatabaseName(dbName);
-     return db;
+ QSqlDatabase Bookmarks::getDbCnx(){
+     return mdb;
  }
  
  
  
- bool Bookmarks::checkAndCreateDb() {
-     QSqlDatabase db = getDbCnx(dbName);
+ bool Bookmarks::checkAndCreateDb(QString dbName) {
+     QSqlDatabase db = QSqlDatabase::database();
+     if(dbName.size())
+         db.setDatabaseName(dbName);
+     else
+         db.setDatabaseName(this->dbName);
      db.open();
      QSqlQuery cur(db);
      cur.exec("create table bookmarks(key text, normalized text, translation text)");
-     db.close();
      return true;
  }
  
@@@ -43,7 -40,7 +40,7 @@@
  
  void Bookmarks::clear() {
      checkAndCreateDb();
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = getDbCnx();
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return ;
      QSqlQuery cur(db);
      cur.exec("drop table bookmarks");
      cur.exec("create table bookmarks(key text, normalized text,translation text)");
-     db.close();
  }
  
  
  
  void Bookmarks::add(Translation* translation) {
+     if (!translation)
+         return ;
      checkAndCreateDb();
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = getDbCnx();
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return ;
      cur.prepare("insert into bookmarks values (?,?,?)");
      cur.addBindValue(translation->key());
      cur.addBindValue(removeAccents(translation->key()));
 -    cur.addBindValue(translation->toHtml());
 +    cur.addBindValue(translation->toXml());
      cur.exec();
-     db.close();
  }
  
  
  void Bookmarks::remove(Translation* translation) {
+     if (!translation)
+         return ;
      checkAndCreateDb();
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = getDbCnx();
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return ;
@@@ -85,7 -84,6 +84,6 @@@
      cur.prepare("delete from bookmarks where key=?");
      cur.addBindValue(translation->key());
      cur.exec();
-     db.close();
  }
  
  
@@@ -93,7 -91,7 +91,7 @@@
  QList<Translation*> Bookmarks::list() {
      checkAndCreateDb();
      QList<Translation*> res;
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = getDbCnx();
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return res;
      while(cur.next())
          res.append(new BookmarkTranslation(cur.value(0).toString(),
                  this, dbName));
-     db.close();
      return res;
  }
  
@@@ -117,7 -114,7 +114,7 @@@ QList<Translation*> Bookmarks::searchWo
      word = word.replace("?", "_");
  
      QList<Translation*> tr;
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = getDbCnx();
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return tr;
          res.insert(cur.value(0).toString());
      foreach(QString str, res.toList())
          tr.append(new BookmarkTranslation(str, this, dbName));
-     db.close();
      return tr;
  }
  
  
  QStringList Bookmarks::search(QString word, QString dbName) {
      QStringList result;
-     QSqlDatabase db = getDbCnx(dbName);
+     QSqlDatabase db = QSqlDatabase::database();
+     db.setDatabaseName(dbName);
      if(!db.isOpen() && !db.open()) {
          qDebug() << "Database error: " << db.lastError().text() << endl;
          return result;
      while(cur.next())
          result << cur.value(0).toString();
  
-     db.close();
      return result;
  }
  
@@@ -80,7 -80,7 +80,7 @@@ public
      QList<Translation*> searchWordList(QString word);
  
      /*! Searches for final translation of a given word
 -      \return word translation list in text format xml or html to be formatted
 +      \return word translation list in text format xml to be formatted
          and displayed
        \param word word to search for
        */
      bool inBookmarks(QString word);
  
  private:
-     bool checkAndCreateDb();
+     bool checkAndCreateDb(QString dbName = "");
  
      
      QString dbName;
-     QSqlDatabase getDbCnx(QString dbName);
+     QSqlDatabase getDbCnx();
      QMap<QChar, QRegExp> letters;
      QRegExp noLetter;
      QSqlDatabase mdb;
@@@ -63,7 -63,7 +63,7 @@@ public
      /*! \return translation text for corresponding Translation object */
      QString toHtml() const {
          QString trans;
 -        trans = _tr->toHtml();
 +        trans = _tr->toXml();
          return trans;
  
      }
@@@ -91,8 -91,8 +91,8 @@@ void Backbone::init() 
     loadDicts(_configPath);
  
     connect(&_resultWatcher, SIGNAL(finished()), this, SLOT(translationReady()));
 -   connect(&_htmlResultWatcher, SIGNAL(finished()), this,
 -           SLOT(htmlTranslationReady()));
 +   connect(&_xmlResultWatcher, SIGNAL(finished()), this,
 +           SLOT(xmlTranslationReady()));
     connect(&_bookmarkWatcher, SIGNAL(finished()), this,
             SLOT(bookmarksListReady()));
     connect(&_bookmarkSearchWatcher, SIGNAL(finished()), this,
@@@ -138,6 -138,7 +138,7 @@@ Backbone::~Backbone(
      while(it2.hasNext())
          delete it2.next().value();
  
+     delete _history;
  }
  
  
@@@ -191,7 -192,7 +192,7 @@@ void Backbone::stopSearching() 
      foreach(CommonDictInterface* dict, _dicts.keys())
          dict->stop();
      stopped = true;
 -    _innerHtmlResult.cancel();
 +    _innerXmlResult.cancel();
      _innerResult.cancel();
      Q_EMIT searchCanceled();
  }
@@@ -509,20 -510,25 +510,20 @@@ void Backbone::saveState(QSettings* set
  
  
  
 -QStringList Backbone::htmls() {
 -    return _htmlResult;
 +QStringList Backbone::xmls() {
 +    return _xmlResult;
  }
  
  
  
 -void Backbone::searchHtml(QList<Translation *> translations) {
 -    _htmlResult.clear();
 +void Backbone::searchXml(QList<Translation *> translations) {
 +    _xmlResult.clear();
  
      QList<TranslationPtr> dummy;
      stopped = false;
      foreach(Translation* tr, translations) {
           if(containsDict(tr->dict()) || !tr->dict())
              dummy.append(TranslationPtr(tr));
 -  /*      foreach(CommonDictInterface* dict, activeDicts()) {
 -            Translation* trans = dict->getTranslationFor(tr->key());
 -            if(trans)
 -                dummy.append(TranslationPtr(trans));
 -        } */
      }
      if(translations.size()>0) {
          Translation *tr = translations.at(0);
          }
      }
  
 -   _innerHtmlResult = QtConcurrent::mapped(dummy,
 +   _innerXmlResult = QtConcurrent::mapped(dummy,
                                              &TranslationPtr::toHtml);
 -   _htmlResultWatcher.setFuture(_innerHtmlResult);
 +   _xmlResultWatcher.setFuture(_innerXmlResult);
  }
  
  
  
 -void Backbone::htmlTranslationReady() {
 +void Backbone::xmlTranslationReady() {
  
 -    QFutureIterator<QString> it(_innerHtmlResult);
 +    QFutureIterator<QString> it(_innerXmlResult);
      QSet<QString> uniqe;
      while(it.hasNext())
          uniqe.insert(it.next());
 -    _htmlResult.clear();
 -    _htmlResult = uniqe.toList();
 +    _xmlResult.clear();
 +    _xmlResult = uniqe.toList();
  
      if(!stopped)
 -        Q_EMIT htmlReady();
 +        Q_EMIT xmlReady();
  
  }
  
@@@ -47,13 -47,14 +47,14 @@@ MainWindow::MainWindow(Backbone *backbo
  
      setExactSearch(false);
  
+     setMinimumSize(750, 400);
      showMaximized();
  
      searchBarWidget->setFocus();
  }
  
  MainWindow::~MainWindow() {
  }
  
  
@@@ -111,8 -112,8 +112,8 @@@ void MainWindow::initializeSearchWidget
          splitter->addWidget(welcomeScreenWidget);
          splitter->setStretchFactor(1, 150);
  
-         mainLayout->addWidget(splitter);
-         mainLayout->addWidget(searchBarWidget);
+         mainLayout->addWidget(splitter, 1);
+         mainLayout->addWidget(searchBarWidget, 0, Qt::AlignBottom);
      #endif
  }
  
@@@ -132,15 -133,15 +133,15 @@@ void MainWindow::initializeMenu() 
      connect(menuWidget, SIGNAL(setApplicationMenu(QWidget*)),
              notifyManager, SLOT(setMenu(QWidget*)));
  #else
-     dictionariesAction = menuBar->addAction(tr("Dictionaries"));
+     dictionariesAction = menuBar->addAction(tr("&Dictionaries"));
      connect(dictionariesAction, SIGNAL(triggered()),
              dictManagerWidget, SLOT(show()));
  
-     settingsAction = menuBar->addAction(tr("Settings"));
+     settingsAction = menuBar->addAction(tr("&Settings"));
      connect(settingsAction, SIGNAL(triggered()),
              settingsWidget, SLOT(show()));
  
-     QMenu* m = menuBar->addMenu(tr("Bookmarks"));
+     QMenu* m = menuBar->addMenu(tr("&Bookmarks"));
      bookmarksShowAllAction = new QAction(tr("Show all"), m);
  
      bookmarksRemoveAllAction = new QAction(tr("Remove all"), m);
      m->addAction(bookmarksShowAllAction);
      m->addAction(bookmarksRemoveAllAction);
  
-     aboutAction = menuBar->addAction(tr("About"));
+     aboutAction = menuBar->addAction(tr("&About"));
      connect(aboutAction, SIGNAL(triggered()),
              aboutWidget, SLOT(show()));
  
@@@ -253,7 -254,7 +254,7 @@@ void MainWindow::translationsReady() 
          hideWelcomeScreen();
      #endif
  
 -    Q_EMIT showTranslation(backbone->htmls());
 +    Q_EMIT showTranslation(backbone->xmls());
      #ifdef Q_WS_MAEMO_5
          notifyManager->screenChanged();
      #endif
@@@ -415,7 -416,7 +416,7 @@@ void MainWindow::connectBackbone() 
              backbone, SLOT(search(QString)));
  
      connect(this, SIGNAL(searchTranslations(QList<Translation*>)),
 -            backbone, SLOT(searchHtml(QList<Translation*>)));
 +            backbone, SLOT(searchXml(QList<Translation*>)));
  
      connect(this, SIGNAL(stopSearching()),
              backbone, SLOT(stopSearching()));
      connect(backbone, SIGNAL(ready()),
              this, SIGNAL(setIdle()));
  
 -    connect(backbone, SIGNAL(htmlReady()),
 +    connect(backbone, SIGNAL(xmlReady()),
              this, SIGNAL(setIdle()));
  
  
      connect(backbone, SIGNAL(ready()),
              this, SLOT(wordListReady()));
  
 -    connect(backbone, SIGNAL(htmlReady()),
 +    connect(backbone, SIGNAL(xmlReady()),
              this, SLOT(translationsReady()));
  
      connect(backbone, SIGNAL(searchCanceled()),
  
      connect(backbone, SIGNAL(notify(Notify::NotifyType,QString)),
              this, SLOT(showNotification(Notify::NotifyType,QString)));
+     connect(backbone, SIGNAL(closeOk()),
+             this, SLOT(close()));
  }
  
  void MainWindow::connectSearchBar() {
@@@ -106,19 -106,15 +106,19 @@@ void GoogleDialog::initializeUI() 
      langToComboBox = new QComboBox;
  
      int i=0;
 +    int j=0;
      int actualLangTo=0;
      int actualLangFrom=0;
  
      foreach(QString langs, GooglePlugin::languages.keys()){
          if(langs==_langTo)
 -            actualLangTo=i;
 +            actualLangTo=j;
          if(langs==_langFrom)
              actualLangFrom=i;
 -        langToComboBox->addItem(langs);
 +        if(langs!="Detect langlage"){
 +            langToComboBox->addItem(langs);
 +            j++;
 +        }
          langFromComboBox->addItem(langs);
          i++;
      }
      verticalLayout->addWidget(confirmButton);
  
      setModal(true);
+     setMinimumSize(sizeHint());
+     setMaximumSize(sizeHint());
  }
  
  void GoogleDialog::langFromChanged(int index) {
@@@ -42,8 -42,8 +42,8 @@@ public
      //! \return word to be translated
      QString key() const;
  
 -    //! \return parsed raw format into html
 -    QString toHtml() const;
 +    //! \return parsed raw format into xml
 +    QString toXml() const;
  
      /*! sets the word for which we want to find a translation
          \param word for which we want to find a translation */
@@@ -53,7 -53,7 +53,7 @@@
      void setDictionaryInfo(QString);
  
      //! \return whether given translation is taken from bookmarks
-     bool isBookmark() const {
+     int isBookmark() const {
          return _bookmark;
     }
  
@@@ -38,8 -38,8 +38,8 @@@ public
      //! \return word to be translated
      QString key() const;
  
 -    //! \return parsed raw format into html
 -    QString toHtml() const;
 +    //! \return parsed raw format into xml
 +    QString toXml() const;
  
      /*! sets the word for which we want to find a translation
          \param word for which we want to find a translation */
@@@ -49,7 -49,7 +49,7 @@@
      void setDictionaryInfo(QString);
  
      //! \return whether given translation is taken from bookmarks
-     bool isBookmark() const {
+     int isBookmark() const {
          return _bookmark;
     }