[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground
From: Andrew Stromme <astromme () chatonka ! com>
Date: 2009-01-31 5:47:31
Message-ID: 1233380851.437152.28286.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 918967 by astromme:
- Handle RTM::Task objects in full (i.e. not as pointers)
- Fix some more leaks
M +6 -2 base/plasma/applets/rememberthemilk/structure-plasmoid.cpp
M +2 -2 base/plasma/dataengines/rtm/listsource.cpp
M +4 -4 base/plasma/dataengines/rtm/tasksource.cpp
M +2 -1 base/plasma/dataengines/rtm/tasksource.h
M +7 -4 libs/rtm/objects.cpp
M +3 -2 libs/rtm/objects.h
M +16 -21 libs/rtm/rtm.cpp
M +10 -8 libs/rtm/rtm.h
M +26 -28 libs/rtm/xmlreaders.cpp
M +10 -8 libs/rtm/xmlreaders.h
--- trunk/playground/base/plasma/applets/rememberthemilk/structure-plasmoid.cpp \
#918966:918967 @@ -73,6 +73,10 @@
} else {
// Save settings
}
+
+ delete m_listIds;
+ delete m_tasks;
+
}
void StructurePlasmoid::init()
@@ -223,7 +227,7 @@
m_tasks->clear();
foreach(QVariant variant, data.values()) {
RTM::Task task = variant.value<RTM::Task>();
- m_tasks->insert(task.getID(), task);
+ m_tasks->insert(task.getId(), task);
}
if (m_listIds->isEmpty()) // We must wait for the lists.
return;
@@ -280,7 +284,7 @@
else
item->setData(INT_MAX, Qt::SortRole);
item->setData(task.getPriority(), Qt::RTMPriorityRole);
- item->setData((qint64) task.getID(), Qt::IdRole);
+ item->setData((qint64) task.getId(), Qt::IdRole);
m_priorityItems.at(task.getPriority()-1)->insertRow(m_priorityItems.at(task.getPriority()-1)->rowCount(), \
item); }
}
--- trunk/playground/base/plasma/dataengines/rtm/listsource.cpp #918966:918967
@@ -46,8 +46,8 @@
void ListSource::listsChanged() {
removeAllData();
- foreach(RTM::List *list, *session->getCachedLists()) {
- setData(QString::number(list->getId()), list->getName());
+ foreach(RTM::List list, *session->getCachedLists()) {
+ setData(QString::number(list.getId()), list.getName());
}
checkForUpdate();
}
--- trunk/playground/base/plasma/dataengines/rtm/tasksource.cpp #918966:918967
@@ -136,7 +136,7 @@
{
// Session should be an authenticated RTM Session.
this->session = session;
- connect(session, SIGNAL(taskChanged(RTM::Task*)), this, \
SLOT(taskChanged(RTM::Task*))); + connect(session, SIGNAL(taskChanged(RTM::Task)), \
this, SLOT(taskChanged(RTM::Task)));
timer.setInterval(1000*60*5); // 5 minute refresh. TODO: Make Configurable.
timer.start();
connect(&timer, SIGNAL(timeout()), this, SLOT(update()));
@@ -162,11 +162,11 @@
//checkForUpdate();
}
-void TaskSource::taskChanged(RTM::Task *task) {
+void TaskSource::taskChanged(RTM::Task task) {
//kDebug() << task->getName();
QVariant var;
- var.setValue(*task);
- setData(task->getName(), var);
+ var.setValue(task);
+ setData(task.getName(), var);
emit dataUpdated("Tasks", data());
}
--- trunk/playground/base/plasma/dataengines/rtm/tasksource.h #918966:918967
@@ -21,6 +21,7 @@
#define TIMELINESOURCE_H
#include "rtm/defines.h"
+#include "rtm/objects.h"
#include <QList>
#include <QPair>
@@ -94,7 +95,7 @@
void update();
private slots:
- void taskChanged(RTM::Task* task);
+ void taskChanged(RTM::Task task);
private:
RTM::Session *session;
--- trunk/playground/libs/rtm/objects.cpp #918966:918967
@@ -50,7 +50,7 @@
RTM::StaticTask::StaticTask(RTM::Task* normalTask) {
name = normalTask->getName();
- taskid = normalTask->getID();
+ taskid = normalTask->getId();
listid = normalTask->getListId();
tags = *normalTask->getTags();
dueDate = normalTask->getDueDate();
@@ -87,6 +87,7 @@
RTM::Task::Task(RTM::Session *session, QString name, bool parseNameForDate) {
Q_UNUSED(parseNameForDate);
this->name = name;
+ taskid = 0;
//TODO: Implement parse;
//TODO: Immediate upload to server? or known new task later b/c of no taskid?
tags = new QList<RTM::Tag>;
@@ -100,11 +101,13 @@
}
RTM::Task::Task(RTM::Session *session) {
+ taskid = 0;
tags = new QList<RTM::Tag>;
this->session = session;
}
RTM::Task::Task() {
+ taskid = 0;
tags = new QList<RTM::Tag>;
this->session = 0;
}
@@ -117,7 +120,7 @@
RTM::Task::Task(const RTM::Task& other) {
session = other.getSession();
name = other.getName();
- taskid = other.getID();
+ taskid = other.getId();
listId = other.getListId();
tags = new QList<RTM::Tag>(*other.getTags());
dueDate = other.getDueDate();
@@ -322,7 +325,7 @@
request->addArgument("task_id", QString::number(taskid));
return request;
}
-RTM::Task* RTM::Task::createSyncTaskFromString(RTM::Session* session, QString task) \
{ +RTM::Task RTM::Task::createSyncTaskFromString(RTM::Session* session, QString task) \
{ RTM::Request *request = session->request("rtm.tasks.add"); // auth token is done \
for us request->addArgument("name", task);
request->addArgument("parse", "1");
@@ -332,7 +335,7 @@
reader.read();
qDebug() << reader.getReadTasks()->keys() << reader.getReadTasks()->isEmpty();
//return reader.getReadTasks()->values().first();
- return new Task(session); //TODO: rewrite async.
+ return Task(session); //TODO: rewrite async.
}
//#include "objects.moc"
--- trunk/playground/libs/rtm/objects.h #918966:918967
@@ -103,10 +103,11 @@
virtual ~Task();
/** Creates a new task from QString task. Also uploads to RTM::Session session \
*/
- static Task* createSyncTaskFromString(RTM::Session *session, QString task);
+ static Task createSyncTaskFromString(RTM::Session *session, QString task);
void setAttributesTo(RTM::StaticTask &other);
+ bool isValid() { return (taskid != 0); }
bool isCompleted() { return completed.isValid(); }
bool isDeleted() { return deleted.isValid(); }
@@ -123,7 +124,7 @@
LocationId getLocationId() const { return locationid; }
QString getRepeatString() const { return repeatString; }
QString getUrl() const { return url; }
- RTM::TaskId getID() const { return taskid; }
+ RTM::TaskId getId() const { return taskid; }
bool hasDueTime() { return dueTime.isValid(); }
--- trunk/playground/libs/rtm/rtm.cpp #918966:918967
@@ -56,8 +56,8 @@
}
else
createTimeline();
- this->tasks = new QMap<QString,RTM::Task*>;
- this->lists = new QMap<RTM::ListId,RTM::List*>;
+ this->tasks = new QMap<QString,RTM::Task>;
+ this->lists = new QMap<RTM::ListId,RTM::List>;
}
QString RTM::Session::getAuthUrl() {
@@ -127,9 +127,9 @@
return true; // TODO: Fix
}
-RTM::Task* RTM::Session::taskFromId(RTM::TaskId id) {
- foreach(RTM::Task* task, *getCachedTasks()) {
- if (task->getID() == id)
+RTM::Task RTM::Session::taskFromId(RTM::TaskId id) {
+ foreach(RTM::Task task, *getCachedTasks()) {
+ if (task.getId() == id)
return task;
}
return 0; // Not found
@@ -156,13 +156,13 @@
void RTM::Session::taskUpdate(QNetworkReply* reply) {
TasksReader reader(reply);
reader.read();
- foreach(RTM::StaticTask* task, reader.getReadTasks()->values()) {
- RTM::Task *fullTask = taskFromId(task->taskid);
- if (!fullTask) {
- fullTask = new RTM::Task(this);
- tasks->insert(QString::number(fullTask->getID()), fullTask);
+ foreach(RTM::StaticTask task, reader.getReadTasks()->values()) {
+ RTM::Task fullTask = taskFromId(task.taskid);
+ if (fullTask.isValid()) {
+ fullTask = RTM::Task(this);
+ tasks->insert(QString::number(fullTask.getId()), fullTask);
}
- fullTask->setAttributesTo(*task);
+ fullTask.setAttributesTo(task);
emit taskChanged(fullTask);
}
lastRefresh = QDateTime::currentDateTime();
@@ -175,8 +175,8 @@
void RTM::Session::listUpdate(QNetworkReply* reply) {
ListsReader reader(reply);
reader.read();
- foreach(RTM::List *list, reader.getReadLists()->values()) {
- this->lists->insert(list->getId(), list);
+ foreach(RTM::List list, reader.getReadLists()->values()) {
+ this->lists->insert(list.getId(), list);
emit listChanged(list);
}
kDebug() << "Number of lists: " << this->lists->count();
@@ -184,9 +184,9 @@
emit listsChanged();
}
-RTM::Task* RTM::Session::createTaskFromString(QString task) {
- RTM::Task *newTask = RTM::Task::createSyncTaskFromString(this, task);
- this->tasks->insert(newTask->getName(), newTask);
+RTM::Task RTM::Session::createTaskFromString(QString task) {
+ RTM::Task newTask = RTM::Task::createSyncTaskFromString(this, task);
+ this->tasks->insert(newTask.getName(), newTask);
return newTask;
}
@@ -195,11 +195,6 @@
RTM::Session::~Session()
{
auth->deleteLater();
- foreach(RTM::Task* task, tasks->values())
- delete task;
- foreach(RTM::List* list, lists->values())
- delete list;
-
delete tasks;
delete lists;
//TODO: Cleanup
--- trunk/playground/libs/rtm/rtm.h #918966:918967
@@ -27,6 +27,8 @@
#include "defines.h"
+#include "objects.h"
+
class QNetworkReply;
/**
@@ -64,10 +66,10 @@
bool refreshTasksFromServer();
bool refreshListsFromServer();
- QMap<QString,RTM::Task*>* getCachedTasks() { return tasks; }
- QMap<RTM::ListId,RTM::List*>* getCachedLists() { return lists; }
+ QMap<QString,RTM::Task>* getCachedTasks() { return tasks; }
+ QMap<RTM::ListId,RTM::List>* getCachedLists() { return lists; }
- RTM::Task* taskFromId(RTM::TaskId id);
+ RTM::Task taskFromId(RTM::TaskId id);
~Session();
@@ -83,23 +85,23 @@
RTM::Timeline timeline;
- QMap<QString,RTM::Task*> *tasks;
- QMap<RTM::ListId,RTM::List*> *lists;
+ QMap<QString,RTM::Task> *tasks;
+ QMap<RTM::ListId,RTM::List> *lists;
public slots:
void handleResponse();
QString continueAuthForToken();
//void handleAuthUrl(QString authUrl);
- RTM::Task* createTaskFromString(QString task);
+ RTM::Task createTaskFromString(QString task);
protected slots:
void taskUpdate(QNetworkReply *reply);
void listUpdate(QNetworkReply *reply);
signals:
- void taskChanged(RTM::Task *task);
- void listChanged(RTM::List *list);
+ void taskChanged(RTM::Task task);
+ void listChanged(RTM::List list);
void tasksChanged();
void listsChanged();
--- trunk/playground/libs/rtm/xmlreaders.cpp #918966:918967
@@ -64,7 +64,7 @@
}
RTM::ListsReader::ListsReader(QIODevice* device) : Reader(device) {
- lists = new QMap<RTM::ListId, RTM::List*>;
+ lists = new QMap<RTM::ListId, RTM::List>;
}
bool RTM::ListsReader::read(QNetworkReply* device) {
@@ -114,12 +114,12 @@
}
void RTM::ListsReader::readList() {
- RTM::List *newList = new RTM::List(attributes().value("name").toString(), \
attributes().value("id").toString().toLong());
- kDebug() << newList->getName();
+ RTM::List newList = RTM::List(attributes().value("name").toString(), \
attributes().value("id").toString().toLong()); + kDebug() << newList.getName();
while (tryToWaitForMoreData()) {
readNext();
if (isEndElement()) {
- lists->insert(newList->getId(), newList);
+ lists->insert(newList.getId(), newList);
return;
}
if (isStartElement()) {
@@ -154,7 +154,7 @@
RTM::TasksReader::TasksReader(QIODevice* device) : Reader(device) {
- tasks = new QMap<QString, RTM::StaticTask*>;
+ tasks = new QMap<QString, RTM::StaticTask>;
}
@@ -188,13 +188,13 @@
}
// kDebug() << "Parsing Tasks Finished. Printing...";
// foreach(RTM::StaticTask* task, tasks->values())
- // qDebug() << task->taskid << task->name << task->dueDate.toString();
+ // qDebug() << task.taskid << task.name << task.dueDate.toString();
emit readFinished(this);
return true; // !error();
}
-void RTM::TasksReader::readNotes(RTM::StaticTask* task) {
+void RTM::TasksReader::readNotes(RTM::StaticTask & task) {
Q_UNUSED(task);
//kDebug() << "Notes not supported yet";
if (isEndElement())
@@ -207,7 +207,7 @@
}
}
-void RTM::TasksReader::readParticipants(RTM::StaticTask* task) {
+void RTM::TasksReader::readParticipants(RTM::StaticTask & task) {
Q_UNUSED(task);
//kDebug() << "Participants not supported yet";
if (isEndElement())
@@ -220,7 +220,7 @@
}
}
-void RTM::TasksReader::readTags(RTM::StaticTask* task) {
+void RTM::TasksReader::readTags(RTM::StaticTask & task) {
//kDebug() << "Tags Not Fully Supported Yet";
if (isEndElement())
return;
@@ -233,35 +233,35 @@
continue;
if ((isStartElement()) && (name().toString() == "tag"))
- task->tags.append(readElementText());
+ task.tags.append(readElementText());
else
readUnknownElement();
}
}
-void RTM::TasksReader::readTask(RTM::StaticTask* task) {
+void RTM::TasksReader::readTask(RTM::StaticTask & task) {
// Grab ID
- task->taskid = attributes().value("id").toString().toLong();
+ task.taskid = attributes().value("id").toString().toLong();
// Grab Priority
if (attributes().value("priority") == "N")
- task->priority = 4;
+ task.priority = 4;
else
- task->priority = attributes().value("priority").toString().toInt();
+ task.priority = attributes().value("priority").toString().toInt();
// Grab Due Date/Time
- task->dueDate = QDate::fromString(attributes().value("due").toString(), \
Qt::ISODate); + task.dueDate = \
QDate::fromString(attributes().value("due").toString(), Qt::ISODate); if \
(attributes().value("has_due_time") == "0")
- task->dueTime = QTime();
+ task.dueTime = QTime();
else
- task->dueTime = QTime::fromString(attributes().value("due").toString(), \
Qt::ISODate); + task.dueTime = \
QTime::fromString(attributes().value("due").toString(), Qt::ISODate);
// Grab Estimate
- task->estimate = attributes().value("estimate").toString();
+ task.estimate = attributes().value("estimate").toString();
// Grab Completed/Deleted
- task->completed = \
QDateTime::fromString(attributes().value("completed").toString(), \
Qt::ISODate);
- task->deleted = QDateTime::fromString(attributes().value("deleted").toString(), \
Qt::ISODate); + task.completed = \
QDateTime::fromString(attributes().value("completed").toString(), Qt::ISODate); + \
task.deleted = QDateTime::fromString(attributes().value("deleted").toString(), \
Qt::ISODate);
// TODO:: Grab Postponed
@@ -278,19 +278,19 @@
void RTM::TasksReader::readTaskSeries(RTM::ListId listId) {
//kDebug() << "Reading Task: " << attributes().value("name").toString();
- RTM::StaticTask *currentTask;
+ RTM::StaticTask currentTask;
if (isStartElement()) {
- currentTask = new RTM::StaticTask();
- currentTask->name = attributes().value("name").toString();
- currentTask->seriesId = attributes().value("id").toString().toLong();
- currentTask->listid = listId;
+ currentTask = RTM::StaticTask();
+ currentTask.name = attributes().value("name").toString();
+ currentTask.seriesId = attributes().value("id").toString().toLong();
+ currentTask.listid = listId;
}
while(tryToWaitForMoreData()) {
readNext();
if ((isEndElement()) && (name().toString() == "taskseries")) {
- tasks->insert(currentTask->name, currentTask);
+ tasks->insert(currentTask.name, currentTask);
break;
}
if (isEndElement()) {
@@ -341,8 +341,6 @@
}
RTM::TasksReader::~TasksReader() {
- foreach(RTM::StaticTask *task, tasks->values())
- delete task;
delete tasks;
}
--- trunk/playground/libs/rtm/xmlreaders.h #918966:918967
@@ -26,6 +26,8 @@
#include "defines.h"
+#include "objects.h"
+
namespace RTM {
class RTM_EXPORT Reader : public QObject, public QXmlStreamReader
@@ -51,7 +53,7 @@
Q_OBJECT
public:
ListsReader(QIODevice *device=0);
- QMap<RTM::ListId, RTM::List*>* getReadLists() { return lists; }
+ QMap<RTM::ListId, RTM::List>* getReadLists() { return lists; }
virtual ~ListsReader();
public slots:
bool read(QNetworkReply *device=0);
@@ -62,7 +64,7 @@
void readList();
void readFilter();
- QMap<RTM::ListId, RTM::List*> *lists;
+ QMap<RTM::ListId, RTM::List> *lists;
};
class RTM_EXPORT TasksReader : public Reader
@@ -71,7 +73,7 @@
public:
TasksReader(QIODevice *device=0);
- QMap<QString, RTM::StaticTask*>* getReadTasks() { return tasks; }
+ QMap<QString, RTM::StaticTask>* getReadTasks() { return tasks; }
virtual ~TasksReader();
@@ -82,12 +84,12 @@
void readTasksHeader();
void readTasksList();
void readTaskSeries(RTM::ListId listId);
- void readTags(RTM::StaticTask* task);
- void readParticipants(RTM::StaticTask* task);
- void readNotes(RTM::StaticTask* task);
- void readTask(RTM::StaticTask* task);
+ void readTags(RTM::StaticTask & task);
+ void readParticipants(RTM::StaticTask & task);
+ void readNotes(RTM::StaticTask & task);
+ void readTask(RTM::StaticTask & task);
- QMap<QString, RTM::StaticTask*> *tasks;
+ QMap<QString, RTM::StaticTask> *tasks;
RTM::Session *rtmSession;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic