karm
plannerparser.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "plannerparser.h"
00027
00028
00029 PlannerParser::PlannerParser(TaskView * tv)
00030
00031
00032
00033
00034 {
00035 kdDebug() << "entering constructor to import planner tasks" << endl;
00036 _taskView=tv;
00037 level=0;
00038 if (_taskView->current_item()) if (_taskView->current_item()->parent())
00039 {
00040 task = _taskView->current_item()->parent();
00041 level=1;
00042 }
00043 }
00044
00045 bool PlannerParser::startDocument()
00046 {
00047 withInTasks=false;
00048 return true;
00049 }
00050
00051 bool PlannerParser::startElement( const QString&, const QString&, const QString& qName, const QXmlAttributes& att )
00052 {
00053 kdDebug() << "entering startElement" << endl;
00054 QString taskName;
00055 int taskComplete=0;
00056
00057
00058 if (qName == QString::fromLatin1("tasks")) withInTasks=true;
00059 if ((qName == QString::fromLatin1("task")) && (withInTasks))
00060 {
00061
00062
00063 for (int i=0; i<att.length(); i++)
00064 {
00065 if (att.qName(i) == QString::fromLatin1("name")) taskName=att.value(i);
00066 if (att.qName(i)==QString::fromLatin1("percent-complete")) taskComplete=att.value(i).toInt();
00067 }
00068
00069
00070
00071 DesktopList dl;
00072 if (level++>0)
00073 {
00074 parentTask=task;
00075 task = new Task(taskName, 0, 0, dl, parentTask);
00076 task->setUid(_taskView->storage()->addTask(task, parentTask));
00077 }
00078 else
00079 {
00080 task = new Task(taskName, 0, 0, dl, _taskView);
00081 kdDebug() << "added" << taskName << endl;
00082 task->setUid(_taskView->storage()->addTask(task, 0));
00083 }
00084
00085 task->setPercentComplete(taskComplete, _taskView->storage());
00086 }
00087 return true;
00088 }
00089
00090 bool PlannerParser::endElement( const QString&, const QString&, const QString& qName)
00091 {
00092
00093 if (withInTasks)
00094 {
00095 if (qName=="task") if (level-->=0) task=task->parent();
00096 if (qName=="tasks") withInTasks=false;
00097 }
00098 return true;
00099 }
00100
|