void Bookmarks::add(Translation* translation) {
if (!translation)
return ;
- checkAndCreateDb();
+ checkAndCreateDb();
QSqlDatabase db = getDbCnx();
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
cur.exec();
}
+void Bookmarks::add(QString key,QString removeAccentKey,QString value){
+ checkAndCreateDb();
+ QSqlDatabase db = getDbCnx();
+ if(!db.isOpen() && !db.open()) {
+ qDebug() << "Database error: " << db.lastError().text() << endl;
+ return ;
+ }
+ QSqlQuery cur(db);
+ cur.prepare("insert into bookmarks values (?,?,?)");
+ cur.addBindValue(key);
+ cur.addBindValue(removeAccentKey);
+ cur.addBindValue(value);
+ cur.exec();
+}
+
void Bookmarks::remove(Translation* translation) {
if (!translation)
*/
void add(Translation* translation);
+ void add(QString key,QString removeAccentKey,QString value);
+
/*! Removes word and corresponding translation cache from bookmarks list
\param translation translation to be removed
*/
return _xmlResult;
}
+void Backbone::addBookmark(QList<Translation*> translations) {
+ if(translations.size()>0) {
+ Translation *tr = translations.at(0);
+ foreach(CommonDictInterface* dict, activeDicts()) {
+ Translation* trans = dict->getTranslationFor(tr->key());
+ if(trans) {
+ translations.append(trans);
+ }
+ }
+ }
+
+ Translation* translation;
+ QHash<QString,QString> trans;
+ foreach(translation,translations){
+ translation->setBookmark(true);
+ trans.insert(translation->toXml(),translation->key());
+ }
+
+ foreach(QString value,trans.keys()){
+ QString key= trans.value(value);
+ _bookmarks.add(key,key,value);
+ }
+
+ // Translation* translation;
+ // foreach(translation, translations)
+ // _bookmarks.add(translation);
+ // emit bookmarkReady();
+}
void Backbone::searchXml(QList<Translation *> translations) {
#include <QDebug>
#include <QSettings>
#include <QFutureWatcher>
+#include <QMultiMap>
#include "../../include/CommonDictInterface.h"
#include "../../include/settings.h"
#include "../../include/translation.h"
added to bookmarks data base (key and translation stored in db))
\param translations list of Translation objects to be stored in db
*/
- void addBookmark(QList<Translation*> translations) {
- Translation* translation;
- foreach(translation, translations)
- _bookmarks.add(translation);
- }
+ void addBookmark(QList<Translation*> translations);
/*! Removes bookmarks to given translations
_bookmarkSearchWatcher.setFuture(_innerBookmarks);
}
-
-
/*! Sets settings for backbone: history_size, search_limit,
searching backends (search_bookmarks, search_dictionaries)
\param settings settings object with options set
*/
void setSettings(Settings* settings);
-
/*! \return corresponding settings object with history_size, search_limit,
searching backends (search_bookmarks, search_dictionaries)
*/
*/
void notify(Notify::NotifyType, QString);
+ void bookmarkReady();
+
private Q_SLOTS:
void bookmarksListReady();
connect(backbone, SIGNAL(closeOk()),
this, SLOT(close()));
+
+
+ //connect(wordListWidget, SIGNAL(addBookmark(QList<Translation*>)),
+ // this, SIGNAL(setBusy()));
+
+ //connect(backbone, SIGNAL(bookmarkReady()),
+ // this, SIGNAL(setIdle()));
}
void MainWindow::connectSearchBar() {
stopped = false;
initLanguages();
- http = new QHttp(this);
+ http = new QHttp();
connect(http, SIGNAL(done(bool)), this, SLOT(done()));
+ threa=new QThread();
+ http->moveToThread(threa);
+ threa->start();
}
void GooglePlugin::retranslate() {
wait=true; /* bool - change in slot done (initiate by http) */
stopped=false; /* bool - change in slot stop (initiate in gui) */
+
+ int lastState=0;
+ //qDebug()<<"google3";
http->request(head, data);
- while(wait && (error=="" || error=="Unknown error") && !stopped)
+ while(wait && (error=="" || error=="Unknown error") && !stopped){
error=http->errorString();
-
+ if(lastState!=http->state()) {
+ lastState=http->state();
+ // qDebug()<<lastState;
+ if(lastState==0){
+ done();
+ // qDebug()<<"done2";
+ }
+ }
+ }
+ //qDebug()<<"google4";
if(error!="" && error!="Unknown error") {
if(!noNetworkErrorShowed) {
noNetworkErrorShowed = true;
QString GooglePlugin::jsonParse(QString result) {
- qDebug()<<"Json"<<result;
+ //qDebug()<<"Json"<<result;
int pos=0,pos2=0,index=0,size=0;
QString returnLang;
QString translation;
result+=words.at(i)->at(j)+", ";
result.remove(result.size()-2,2);
}
- qDebug()<<"PO"<<result;
+ //qDebug()<<"PO"<<result;
return result;
}
void GooglePlugin::done() {
+// qDebug()<<"done";
wait=false;
}
volatile bool wait;
QHttp *http;
GoogleDictDialog *_dictDialog;
+ QThread *threa;
};
#endif // GOOGLEPLUGIN_H
return result;
result="<dict> <info path=\"/usr/share/mdictionary/google.png\" ";
if(isBookmark())
- result+="bookmark=\"true\" >";
+ result+=" bookmark=\"true\" > \n";
else
- result+="bookmark=\"false\" >";
-
- //qDebug()<<"trans: "<<_trans;
+ result+=" bookmark=\"false\" > \n";
if(_trans!="")
return result+=_dictionaryInfo+ "</info>"+_trans +"</dict>";
-
QList<Translation*> translations=googlePlugin->searchWordList(_key);
- //qDebug()<<"test: "<<translations.size();
- if(translations.size()>0 && translations.at(0))
+ if(translations.size()>0 && translations.at(0)){
+ if(isBookmark())
+ translations.at(0)->setBookmark(true);
return translations.at(0)->toXml();
+ }
return "";
}
//! \return whether given translation is taken from bookmarks
int isBookmark() const {
return _bookmark;
- }
+ }
//! \returns corresponding dict object
uint dict() const {return _dictHash;}