diff -r 2e1adbfc62af -r ee64f059b8e1 qtinternetradio/ui/src/irsearchcriteriadb.cpp --- a/qtinternetradio/ui/src/irsearchcriteriadb.cpp Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include -#include -#include -#include -#include - - -#include "irsearchcriteriadb.h" - - -IRSearchCriteriaDB::IRSearchCriteriaDB(int aMaxCount):iDB(NULL),iMaxCount(aMaxCount) -{ - createDBConnection(); -} - -IRSearchCriteriaDB::~IRSearchCriteriaDB() -{ - if (iDB->isOpen()) - { - iDB->close(); - } - - delete iDB; - iDB = NULL; -} - -IRQError IRSearchCriteriaDB::addOneCriteria(const QString& aCriteria) -{ - if (iDB->isOpen()) - { - if( aCriteria.length() >= CRITERIA_UPLIMIT_LENGTH ) - { - //the unicode string is too long to store - return EIRQErrorBadParameter; - } - - QSqlQuery query("SELECT * FROM criteria"); - QSqlRecord rec = query.record(); - - if( rec.count() >= iMaxCount ) - { - bool ret = deleteSomeCriteria(); - if( !ret ) - { - return EIRQErrorGeneral; - } - } - - - bool ret = query.prepare("INSERT INTO criteria (cricolum) " - "VALUES (?)"); - query.addBindValue(aCriteria,QSql::In); - ret = query.exec(); - - emit dataAdded(); - return EIRQErrorNone; - } - - return EIRQErrorServiceUnavailable; -} - -bool IRSearchCriteriaDB::getAllCriteria(QStringList& aStrList) const -{ - aStrList.clear(); - if (iDB->isOpen()) - { - QSqlQuery query("SELECT * FROM criteria"); - QSqlRecord rec = query.record(); - - int criteriaCol = rec.indexOf("cricolum"); - while (query.next()) - { - aStrList.append(query.value(criteriaCol).toString()); - } - return true; - } - - return false; -} - -void IRSearchCriteriaDB::createDBConnection() -{ - bool created = QFile::exists("searchcriteria.dat"); - QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); - iDB = new QSqlDatabase(db); - - iDB->setDatabaseName("searchcriteria.dat"); - - if (!iDB->open()) - { - return; - } - - - if (!created) - { - bool dbResult = false; - QSqlQuery query; - dbResult = query.exec("CREATE TABLE criteria (" - "id INTEGER PRIMARY KEY AUTOINCREMENT, " - "cricolum VARCHAR(255) NOT NULL)"); - - if (!dbResult) - { - return; - } - } -} - -bool IRSearchCriteriaDB::isAlreadyExist(const QString& aCriteria) const -{ - //TODO: change to the sql statement, but now the sqlquery binding - //dose not work well - if( aCriteria.length() >= CRITERIA_UPLIMIT_LENGTH ) - { - return true; - } - - QStringList strList; - getAllCriteria(strList); - - for(int i=0; i