From 0d7a9c64bf0cf125e5211c3cb37552054bf5e204 Mon Sep 17 00:00:00 2001 From: Jakub Jaszczynski Date: Mon, 23 Aug 2010 11:44:28 +0200 Subject: [PATCH] add information about bookmark to translation (in toHtml()) --- trunk/src/base/backbone/Bookmarks.cpp | 1 + trunk/src/base/gui/TranslationWidget.cpp | 5 +- trunk/src/base/xsl.xsl | 11 ++- trunk/src/plugins/xdxf/src/TranslationXdxf.cpp | 14 ++-- trunk/src/plugins/xdxf/src/TranslationXdxf.h | 4 + trunk/src/plugins/xdxf/src/xdxfplugin.cpp | 32 ++++---- trunk/src/plugins/xdxf/src/xdxfplugin.h | 20 +++-- trunk/src/plugins/xdxf/tests/test.cpp | 93 +++++++++++++++++++++++- trunk/src/plugins/xdxf/tests/test.h | 5 ++ 9 files changed, 147 insertions(+), 38 deletions(-) diff --git a/trunk/src/base/backbone/Bookmarks.cpp b/trunk/src/base/backbone/Bookmarks.cpp index 2f20ea9..3770eb6 100644 --- a/trunk/src/base/backbone/Bookmarks.cpp +++ b/trunk/src/base/backbone/Bookmarks.cpp @@ -51,6 +51,7 @@ void Bookmarks::add(Translation* translation) { qDebug() << "Database error: " << db.lastError().text() << endl; return ; } + translation->setBookmark(true); QSqlQuery cur(db); cur.prepare("insert into bookmarks values (?,?)"); cur.addBindValue(translation->key()); diff --git a/trunk/src/base/gui/TranslationWidget.cpp b/trunk/src/base/gui/TranslationWidget.cpp index 1bcbf1e..1f99460 100644 --- a/trunk/src/base/gui/TranslationWidget.cpp +++ b/trunk/src/base/gui/TranslationWidget.cpp @@ -71,11 +71,14 @@ void TranslationWidget::show(QStringList translations) { trans += t + "\n"; } - // qDebug()<") + tr("\n ") + trans + tr("\n "); trans=XslConversion(trans); textEdit->insertHtml(trans); + + qDebug()<setPlainText(trans); textEdit->repaint(this->rect()); diff --git a/trunk/src/base/xsl.xsl b/trunk/src/base/xsl.xsl index 54c041f..31f549e 100644 --- a/trunk/src/base/xsl.xsl +++ b/trunk/src/base/xsl.xsl @@ -16,14 +16,19 @@ - + + + BOOKMARK: + + + - - + + diff --git a/trunk/src/plugins/xdxf/src/TranslationXdxf.cpp b/trunk/src/plugins/xdxf/src/TranslationXdxf.cpp index 39caf28..0a1246b 100644 --- a/trunk/src/plugins/xdxf/src/TranslationXdxf.cpp +++ b/trunk/src/plugins/xdxf/src/TranslationXdxf.cpp @@ -43,15 +43,17 @@ QString TranslationXdxf::dictionaryInfo() const { return _dictionaryInfo; } -QString TranslationXdxf::toHtml() const { +QString TranslationXdxf::toHtml() const { QString result(""); - if(!xdxfPlugin) return result; - result+="" + _dictionaryInfo + xdxfPlugin->search(_key) + ""; - result.replace("&","&"); - - return result; + result=result + "" + "" + xdxfPlugin->search(_key) + ""; + return result.replace("&","&"); } void TranslationXdxf::setKey(QString _key) { diff --git a/trunk/src/plugins/xdxf/src/TranslationXdxf.h b/trunk/src/plugins/xdxf/src/TranslationXdxf.h index 31a5193..8236e39 100644 --- a/trunk/src/plugins/xdxf/src/TranslationXdxf.h +++ b/trunk/src/plugins/xdxf/src/TranslationXdxf.h @@ -50,6 +50,10 @@ public: //! sets information about dictionary void setDictionaryInfo(QString); + //! \retrun whether given translation is taken from bookmarks + bool isBookmark() const { + return _bookmark; + } //! returns coresponding dict object uint dict() const {return _dictHash;} diff --git a/trunk/src/plugins/xdxf/src/xdxfplugin.cpp b/trunk/src/plugins/xdxf/src/xdxfplugin.cpp index 49f9bf6..ae3549e 100644 --- a/trunk/src/plugins/xdxf/src/xdxfplugin.cpp +++ b/trunk/src/plugins/xdxf/src/xdxfplugin.cpp @@ -24,11 +24,6 @@ #include "xdxfplugin.h" #include -#include -#include -#include -#include "TranslationXdxf.h" -#include "../../../includes/settings.h" XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent), _langFrom(tr("")), _langTo(tr("")),_name(tr("")), @@ -50,9 +45,11 @@ XdxfPlugin::XdxfPlugin(QObject *parent) : CommonDictInterface(parent), XdxfPlugin::~XdxfPlugin() { - qDebug()<<"/n /n destruktor"; - if(!db.connectionName().isEmpty()) - db.removeDatabase(_type+path); +// QString connection(db.connectionName()); +// db.close(); +// QSqlDatabase::removeDatabase(connection); + + delete _settings; } QString XdxfPlugin::langFrom() const { @@ -125,7 +122,7 @@ QList XdxfPlugin::searchWordListCache(QString word, int limit) { _infoNote, this)); } db.close(); - return translations.toList(); + return translations.toList(); } QList XdxfPlugin::searchWordListFile(QString word, int limit) { @@ -201,7 +198,9 @@ QString XdxfPlugin::searchCache(QString key) { cur.exec(); while(cur.next()) result += cur.value(0).toString(); + db.close(); + return result; } @@ -211,13 +210,10 @@ QString XdxfPlugin::searchFile(QString key) { QFile dictionaryFile(path); QString resultString(""); if(!dictionaryFile.open(QFile::ReadOnly | QFile::Text)) { - qDebug()<<"Error: could not open file"; + qDebug()<<"Error: could not open file when search"; return ""; } QXmlStreamReader reader(&dictionaryFile); - - - QString a; bool match =false; @@ -286,9 +282,8 @@ CommonDictInterface* XdxfPlugin::getNew(const Settings *settings) const { a=a+1; plugin->db_name = plugin->_settings->value("type") - + plugin->_settings->value("path"); -// if(!plugin->db.connectionName().isEmpty() || settings->value("generateCache")=="true") - plugin->db = QSqlDatabase::addDatabase("QSQLITE", plugin->db_name); + + plugin->_settings->value("path"); + plugin->db = QSqlDatabase::addDatabase("QSQLITE", plugin->db_name); if(settings->value("cached").isEmpty() && settings->value("generateCache") == "true") { @@ -371,9 +366,7 @@ void XdxfPlugin::getDictionaryInfo() { // qDebug()<"+"\n" + _name + " [" + _langFrom + "-" + _langTo + "] "+ "(" + _type + ")" + ""; - - + _infoNote="path=\""+initialPath+"\">"+"\n" + _name + " [" + _langFrom + "-" + _langTo + "] "+ "(" + _type + ")"; dictionaryFile.close(); } @@ -527,6 +520,7 @@ bool XdxfPlugin::makeCache(QString dir) { _settings->setValue("cache_path", cachePathN); _settings->setValue("cached", "true"); + db.close(); return true; } diff --git a/trunk/src/plugins/xdxf/src/xdxfplugin.h b/trunk/src/plugins/xdxf/src/xdxfplugin.h index d678a31..e413e2c 100644 --- a/trunk/src/plugins/xdxf/src/xdxfplugin.h +++ b/trunk/src/plugins/xdxf/src/xdxfplugin.h @@ -25,7 +25,7 @@ #ifndef XDXFPLUGIN_H #define XDXFPLUGIN_H -#include "../../../includes/CommonDictInterface.h" + #include #include #include @@ -33,8 +33,15 @@ #include #include #include +#include +#include +#include + +#include "../../../includes/CommonDictInterface.h" +#include "../../../includes/settings.h" #include "XdxfDictDialog.h" #include "XdxfCachingDialog.h" +#include "TranslationXdxf.h" class TranslationXdxf; @@ -44,8 +51,7 @@ class XdxfPlugin : public CommonDictInterface Q_INTERFACES(CommonDictInterface) public: XdxfPlugin(QObject *parent=0); - - virtual ~XdxfPlugin(); + ~XdxfPlugin(); //! returns source language code iso 639-2 QString langFrom() const; @@ -67,7 +73,6 @@ public: */ DictDialog* dictDialog(); - //! returns new, clean copy of plugin with setting set as in Settings* CommonDictInterface* getNew(const Settings*) const; @@ -130,6 +135,9 @@ private: QList searchWordListFile(QString word, int limit=0); QString searchFile(QString key); QString searchCache(QString key); + //! scan dictionary file to get information about it + void getDictionaryInfo(); + int countWords(); bool makeCache(QString dir); @@ -143,8 +151,6 @@ private: QString _type; //! information about dictionary QString _infoNote; - QDialog *_loadDialog; - QDialog *_settingsDialog; //! path to dictionary file QString path; uint _hash; @@ -155,8 +161,6 @@ private: //! number of words in dicrionary long _wordsCount; - //! scan dictionary file to get information about it - void getDictionaryInfo(); volatile bool stopped; Settings *_settings; diff --git a/trunk/src/plugins/xdxf/tests/test.cpp b/trunk/src/plugins/xdxf/tests/test.cpp index efc88f5..58aeb02 100644 --- a/trunk/src/plugins/xdxf/tests/test.cpp +++ b/trunk/src/plugins/xdxf/tests/test.cpp @@ -165,7 +165,8 @@ void XdxfTest::stop() { CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings); QString string("*"); - QFuture > future = QtConcurrent::run(xdxfPlugin, &CommonDictInterface::searchWordList, string, 10); + QFuture > future = QtConcurrent::run(xdxfPlugin, + &CommonDictInterface::searchWordList, string, 10); QList te5 = future.result(); QCOMPARE(te5.size(), 9); @@ -185,5 +186,95 @@ void XdxfTest::langFrom() { delete xdxfPlugin; } +void XdxfTest::timeCache() +{ + QTime timer; + QDate date; + QFile File("../tests/time.xml"); + if(!File.open(QFile::ReadWrite | QFile::Text)) { + qDebug()<<"Error: could not open file"; + return; + } + QTextStream out(&File); + while(!out.atEnd()) + out.seek(out.pos()+1); + + timer.start(); + XdxfPlugin xdxfPluginB(this); + Settings *settings=new Settings; + settings->setValue("path","../../../../../../dict.xdxf"); + settings->setValue("generateCache", "true"); + CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings); + + out<<"\n" + date.currentDate().toString("dd.MM.yyyy") +" "; + out<"; + out<<"\n Cache "; + + timer.start(); + xdxfPlugin->search("Bantu"); + out<<"\n SearchCache-begin "; + + timer.start(); + xdxfPlugin->search("level"); + out<<"\n SearchCache-midle "; + + timer.start(); + xdxfPlugin->search("zoril"); + out<<"\n SearchCache-end "; + + timer.start(); + xdxfPlugin->searchWordList("level"); + out<<"\n SearchWorlListCache "; + + File.close(); +} + +void XdxfTest::timeFile() +{ + QTime timer; + QDate date; + QFile File("../tests/time.xml"); + if(!File.open(QFile::ReadWrite | QFile::Text)) { + qDebug()<<"Error: could not open file"; + return; + } + QTextStream out(&File); + while(!out.atEnd()) + out.seek(out.pos()+1); + + XdxfPlugin xdxfPluginB(this); + Settings *settings=new Settings; + settings->setValue("path","../../../../../../dict.xdxf"); + CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings); + + timer.start(); + xdxfPlugin->search("Bantu"); + out<<"\n SearchFile-begin "; + + timer.start(); + xdxfPlugin->search("level"); + out<<"\n SearchFile-midle "; + + timer.start(); + xdxfPlugin->search("zoril"); + out<<"\n SearchFile-end "; + + timer.start(); + xdxfPlugin->searchWordList("level"); + out<<"\n SearchWordListFile \n"; + + File.close(); +} + + QTEST_MAIN(XdxfTest) //#include "testqstring.moc" diff --git a/trunk/src/plugins/xdxf/tests/test.h b/trunk/src/plugins/xdxf/tests/test.h index 100b171..70f540c 100644 --- a/trunk/src/plugins/xdxf/tests/test.h +++ b/trunk/src/plugins/xdxf/tests/test.h @@ -29,6 +29,9 @@ #include #include #include "../src/xdxfplugin.h" +#include +#include +#include class XdxfTest: public QObject { @@ -44,6 +47,8 @@ void makeCache(); void searchCache(); void searchWordListCache(); + void timeCache(); + void timeFile(); }; -- 1.7.9.5