qtmobility/examples/notesmanagerplugin/notesmanager.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
--- a/qtmobility/examples/notesmanagerplugin/notesmanager.cpp	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/examples/notesmanagerplugin/notesmanager.cpp	Mon May 03 13:18:40 2010 +0300
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
@@ -9,11 +9,9 @@
 ** $QT_BEGIN_LICENSE:LGPL$
 ** No Commercial Usage
 ** This file contains pre-release code and may not be distributed.
-** You may use this fi
-#include <QList>le in accordance with the terms and conditions
+** You may use this file in accordance with the terms and conditions
 ** contained in the Technology Preview License Agreement accompanying
 ** this package.
-#include <QSqlRecord>
 **
 ** GNU Lesser General Public License Usage
 ** Alternatively, this file may be used under the terms of the GNU Lesser
@@ -22,8 +20,7 @@
 ** packaging of this file.  Please review the following information to
 ** ensure the GNU Lesser General Public License version 2.1 requirements
 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-*#include <QStringList>
- *
+**
 ** In addition, as a special exception, Nokia gives you certain additional
 ** rights.  These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
@@ -37,10 +34,10 @@
 **
 **
 **
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
-
 #include <QtCore>
 #include <QDebug>
 
@@ -49,6 +46,8 @@
 NotesManager::NotesManager(QObject *parent)
     : QObject(parent)
 {
+    m_search = "";
+
     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
     db.setDatabaseName("todoDB");
     db.open();
@@ -67,8 +66,8 @@
 {
     QSqlQuery alarmQuery("SELECT * FROM todolist WHERE date > DATETIME('now', 'localtime') ORDER BY date");
     if (alarmQuery.next()) { 
-        setAlarm(QDateTime::fromString(alarmQuery.value(2).toString(), "yyyy-MM-dd HH:mm:ss"));
-        setMessage(alarmQuery.value(1).toString());
+        setAlarmTime(QDateTime::fromString(alarmQuery.value(2).toString(), "yyyy-MM-dd HH:mm:ss"));
+        setAlarmMessage(alarmQuery.value(1).toString());
     }
 }
 
@@ -77,31 +76,30 @@
     QString currStr = QDateTime::currentDateTime().toString(Qt::ISODate);
     QDateTime curr = QDateTime::fromString(currStr, Qt::ISODate);
 
-    //qDebug() << "CHECKING..." << getAlarm() << " against now " << curr;
-    if (getAlarm() == curr)
-        emit soundAlarm(getAlarm());
+    if (getAlarmTime() == curr)
+        emit soundAlarm(getAlarmTime());
 
     nextAlarm();
 }
 
-QDateTime NotesManager::getAlarm() const
+QDateTime NotesManager::getAlarmTime() const
 {
-    return m_alarm;
+    return m_alarmTime;
 }
 
-void NotesManager::setAlarm(const QDateTime& alarm)
+void NotesManager::setAlarmTime(const QDateTime& alarm)
 {
-    m_alarm = alarm;
+    m_alarmTime = alarm;
 }
 
-QString NotesManager::getMessage() const
+QString NotesManager::getAlarmMessage() const
 {
-    return m_message;
+    return m_alarmMessage;
 }
 
-void NotesManager::setMessage(const QString& message)
+void NotesManager::setAlarmMessage(const QString& message)
 {
-    m_message = message;
+    m_alarmMessage = message;
 }
 
 void NotesManager::addNote(const QString& note, const QDateTime& alarm)
@@ -115,24 +113,38 @@
     QSqlQuery query("DELETE FROM todolist WHERE id='" + QString::number(id) + "'");
 }
 
-QList<Note> NotesManager::getNotes(const QString& search) const
+void NotesManager::setSearch(const QString& search)
 {
-    QList<Note> list;
+    m_search = search;
+}
+
+QList<QObject*> NotesManager::getNotes(const QString& search)
+{
+    m_notes.clear();
+    setSearch(search);
 
     QString queryString = "SELECT * FROM todolist";
-    if (search != "") queryString += " WHERE notes LIKE '%" + search + "%'"; 
+    if (m_search != "") queryString += " WHERE notes LIKE '%" + m_search + "%'"; 
     queryString += " ORDER BY date";
 
     QSqlQuery query(queryString);
     while (query.next()) {
-        Note entry;
-        entry.index = query.value(0).toInt();
-        entry.message = query.value(1).toString();
-        entry.alert = QDateTime::fromString(query.value(2).toString(), "yyyy-MM-dd HH:mm:ss");
+        Note *entry = new Note(this);
+        entry->setIndex(query.value(0).toInt());
+        entry->setMessage(query.value(1).toString());
+        entry->setAlarm(QDateTime::fromString(query.value(2).toString(), "yyyy-MM-dd HH:mm:ss"));
 
-        list << entry;
+        m_notes << entry;
     }
-
-    return list;
+   
+    return m_notes;
 }
 
+
+#ifdef DECLARATIVE
+QDeclarativeListProperty<QObject> NotesManager::noteSet()
+{
+    m_notes = getNotes(m_search);
+    return QDeclarativeListProperty<QObject>(this, m_notes);
+}
+#endif