ginebra2/items/FamiliarItems.cpp
changeset 0 1450b09d0cfd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/items/FamiliarItems.cpp	Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2010 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 "FamiliarItems.h"
+#include "../Settings.h"
+
+#include <QVariant>
+
+#include <QDebug>
+
+namespace GVA
+{
+
+  FamiliarItems::FamiliarItems()
+  {
+    m_db = QSqlDatabase::database("GvaFamiliarItems");
+    if(!m_db.isValid()){
+      m_db = QSqlDatabase::addDatabase("QSQLITE", "GvaFamiliarItems");
+      Settings * settings = Settings::instance();
+      m_db.setDatabaseName(settings->installRoot() + "/familiar_items_db.sql");
+      m_db.open();
+      QSqlQuery q(m_db);
+      q.exec("create table items(url varchar(100) primary key, title varchar(40), thumbnail varchar(40), tags int)");
+    }
+  }
+  
+  FamiliarItems::~FamiliarItems()
+  {
+    QSqlDatabase::removeDatabase("GvaFamiliarItems");
+    m_db.close();
+  }
+  
+  void FamiliarItems::updateItem(const FamiliarItems::Item & item)
+  {
+    QSqlQuery q(m_db);
+    QString qs =  QString("replace into items values('%1', '%2', '%3', %4)").arg(item.url.left(100)).arg(item.title.left(40)).arg(item.thumbnail.left(40)).arg(static_cast<int>(item.tags));
+    bool ok = q.exec(qs);
+    qDebug() << "Query: " << qs << ": " << ok;
+  }
+  
+  FamiliarItems::Item FamiliarItems::item(const QString url)
+  {
+    FamiliarItems::Item item;
+    item.url = url;
+    QSqlQuery q(m_db);
+    q.exec(QString("select title, thumbnail, tags from items where url = '%1'").arg(url.left(100)));
+    q.first();
+    item.title = q.value(0).toString();
+    item.thumbnail = q.value(1).toString();
+    item.tags = static_cast<FamiliarItems::ItemTag>(q.value(2).toInt());
+    return item;
+  }
+  
+  QString FamiliarItems::thumbnail(const QString url)
+  {
+    QSqlQuery q(m_db);
+    q.exec(QString("select thumbnail from items where url = '%1'").arg(url.left(100)));
+    q.first();
+    QString t = q.value(0).toString();
+    return t;
+  }
+  
+  QString FamiliarItems::title(const QString url)
+  {
+    QSqlQuery q(m_db);
+    QString qs = QString("select title from items where url = '%1'").arg(url.left(100)); 
+    bool ok = q.exec(qs);
+    qDebug() << "Query: " << qs << " : " << ok;
+    q.first();
+    QString t = q.value(0).toString();
+    return t;
+  }
+  
+  FamiliarItems::ItemTag FamiliarItems::tag(const QString url)
+  {
+    QSqlQuery q(m_db);
+    q.exec(QString("select tags from items where url = '%1'").arg(url.left(100)));
+    q.first();
+    int t = q.value(0).toInt();
+    return static_cast<FamiliarItems::ItemTag>(t);
+  }
+  
+}