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;
}
protected:
//! indicates whether this translation is in bookmark
- bool _bookmark;
+ int _bookmark;
};
_key = key;
_dictionaryInfo = dbName;
_bookmarks = bookmarks;
- _bookmark = 1;
+ _bookmark = 2;
}
//! \return word to be translated
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 "";
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);
}
}
- 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;
}
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 ;
cur.prepare("delete from bookmarks where key=?");
cur.addBindValue(translation->key());
cur.exec();
- db.close();
}
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;
}
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;
}
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;
/*! \return translation text for corresponding Translation object */
QString toHtml() const {
QString trans;
- trans = _tr->toHtml();
+ trans = _tr->toXml();
return trans;
}
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,
while(it2.hasNext())
delete it2.next().value();
+ delete _history;
}
foreach(CommonDictInterface* dict, _dicts.keys())
dict->stop();
stopped = true;
- _innerHtmlResult.cancel();
+ _innerXmlResult.cancel();
_innerResult.cancel();
Q_EMIT searchCanceled();
}
-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();
}
setExactSearch(false);
+ setMinimumSize(750, 400);
+
showMaximized();
searchBarWidget->setFocus();
}
MainWindow::~MainWindow() {
-
}
splitter->addWidget(welcomeScreenWidget);
splitter->setStretchFactor(1, 150);
- mainLayout->addWidget(splitter);
- mainLayout->addWidget(searchBarWidget);
+ mainLayout->addWidget(splitter, 1);
+ mainLayout->addWidget(searchBarWidget, 0, Qt::AlignBottom);
#endif
}
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()));
hideWelcomeScreen();
#endif
- Q_EMIT showTranslation(backbone->htmls());
+ Q_EMIT showTranslation(backbone->xmls());
#ifdef Q_WS_MAEMO_5
notifyManager->screenChanged();
#endif
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() {
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) {
//! \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 */
void setDictionaryInfo(QString);
//! \return whether given translation is taken from bookmarks
- bool isBookmark() const {
+ int isBookmark() const {
return _bookmark;
}
//! \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 */
void setDictionaryInfo(QString);
//! \return whether given translation is taken from bookmarks
- bool isBookmark() const {
+ int isBookmark() const {
return _bookmark;
}