projects
/
mdictionary
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed some leaks and minor bookmark bug
[mdictionary]
/
trunk
/
src
/
base
/
backbone
/
Bookmarks.cpp
diff --git
a/trunk/src/base/backbone/Bookmarks.cpp
b/trunk/src/base/backbone/Bookmarks.cpp
index
6468dd0
..
c39f868
100644
(file)
--- a/
trunk/src/base/backbone/Bookmarks.cpp
+++ b/
trunk/src/base/backbone/Bookmarks.cpp
@@
-7,10
+7,21
@@
Bookmarks::Bookmarks() {
+ "bookmarks.db";
checkAndCreateDb();
initAccents();
+ "bookmarks.db";
checkAndCreateDb();
initAccents();
+
+ mdb = QSqlDatabase::addDatabase("QSQLITE",
+ QString("%2").arg((int)QThread::currentThreadId()));
+ mdb.setDatabaseName(dbName);
+}
+
+
+Bookmarks::~Bookmarks() {
+ mdb.close();
}
QSqlDatabase Bookmarks::getDbCnx(QString 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);
QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE",
QString("%2").arg((int)QThread::currentThreadId()));
db.setDatabaseName(dbName);
@@
-21,20
+32,17
@@
QSqlDatabase Bookmarks::getDbCnx(QString dbName) {
bool Bookmarks::checkAndCreateDb() {
QSqlDatabase db = getDbCnx(dbName);
bool Bookmarks::checkAndCreateDb() {
QSqlDatabase db = getDbCnx(dbName);
- if(!db.isOpen() && !db.open()) {
- qDebug() << "Database error: " << db.lastError().text() << endl;
- return false;
- }
+ db.open();
QSqlQuery cur(db);
cur.exec("create table bookmarks(key text, normalized text, translation text)");
db.close();
QSqlQuery cur(db);
cur.exec("create table bookmarks(key text, normalized text, translation text)");
db.close();
-
return true;
}
void Bookmarks::clear() {
return true;
}
void Bookmarks::clear() {
+ checkAndCreateDb();
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
@@
-49,6
+57,7
@@
void Bookmarks::clear() {
void Bookmarks::add(Translation* translation) {
void Bookmarks::add(Translation* translation) {
+ checkAndCreateDb();
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
@@
-66,6
+75,7
@@
void Bookmarks::add(Translation* translation) {
void Bookmarks::remove(Translation* translation) {
void Bookmarks::remove(Translation* translation) {
+ checkAndCreateDb();
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
qDebug() << "Database error: " << db.lastError().text() << endl;
@@
-81,6
+91,7
@@
void Bookmarks::remove(Translation* translation) {
QList<Translation*> Bookmarks::list() {
QList<Translation*> Bookmarks::list() {
+ checkAndCreateDb();
QList<Translation*> res;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
QList<Translation*> res;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
@@
-90,7
+101,8
@@
QList<Translation*> Bookmarks::list() {
QSqlQuery cur(db);
cur.exec("select distinct key from bookmarks");
while(cur.next())
QSqlQuery cur(db);
cur.exec("select distinct key from bookmarks");
while(cur.next())
- res.append(new BookmarkTranslation(cur.value(0).toString(), this, dbName));
+ res.append(new BookmarkTranslation(cur.value(0).toString(),
+ this, dbName));
db.close();
return res;
}
db.close();
return res;
}
@@
-98,12
+110,11
@@
QList<Translation*> Bookmarks::list() {
QList<Translation*> Bookmarks::searchWordList(QString word) {
QList<Translation*> Bookmarks::searchWordList(QString word) {
-
+ checkAndCreateDb();
if(word.indexOf("*")==-1 && word.indexOf("?")== -1)
word+="%";
word = word.replace("*", "%");
word = word.replace("?", "_");
if(word.indexOf("*")==-1 && word.indexOf("?")== -1)
word+="%";
word = word.replace("*", "%");
word = word.replace("?", "_");
- qDebug() << word;
QList<Translation*> tr;
QSqlDatabase db = getDbCnx(dbName);
QList<Translation*> tr;
QSqlDatabase db = getDbCnx(dbName);
@@
-128,6
+139,7
@@
QList<Translation*> Bookmarks::searchWordList(QString word) {
QStringList Bookmarks::search(QString word, QString dbName) {
QStringList Bookmarks::search(QString word, QString dbName) {
+ //checkAndCreateDb();
QStringList result;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
QStringList result;
QSqlDatabase db = getDbCnx(dbName);
if(!db.isOpen() && !db.open()) {
@@
-149,17
+161,15
@@
QStringList Bookmarks::search(QString word, QString dbName) {
bool Bookmarks::inBookmarks(QString word) {
bool Bookmarks::inBookmarks(QString word) {
- QSqlDatabase db = getDbCnx(dbName);
- if(!db.isOpen() && !db.open()) {
- qDebug() << "Database error: " << db.lastError().text() << endl;
+ if(!mdb.isOpen() && !mdb.open()) {
+ qDebug() << "Database error: " << mdb.lastError().text() << endl;
return false;
}
return false;
}
- QSqlQuery cur(db);
+ QSqlQuery cur(mdb);
cur.prepare("select translation from bookmarks where key like ? limit 1");
cur.addBindValue(word);
cur.exec();
if(cur.next())
return true;
cur.prepare("select translation from bookmarks where key like ? limit 1");
cur.addBindValue(word);
cur.exec();
if(cur.next())
return true;
- db.close();
return false;
}
return false;
}