defuze.me  Client
schedulermodel.cpp
00001 #include "schedulermodel.hpp"
00002 #include "scheduler.hpp"
00003 #include "eventmodel.hpp"
00004 
00005 using namespace Scheduler;
00006 
00007 SchedulerModel::SchedulerModel(SchedulerPlugin *scheduler) : scheduler(scheduler), events(0)
00008 {
00009 }
00010 
00011 SchedulerModel::~SchedulerModel()
00012 {
00013     for (int index = 0; index < this->events->count() ; index += 1)
00014         delete this->events->at(index);
00015     delete events;
00016 }
00017 
00018 SchedulerPlugin *SchedulerModel::getScheduler() const
00019 {
00020     return this->scheduler;
00021 }
00022 
00023 void    SchedulerModel::loadEvents()
00024 {
00025     this->getEvents();
00026 
00027     for (int index = 0; index < events->count(); index += 1 )
00028     {
00029         EventModel  *event = events->at(index);
00030         this->scheduler->getWidget()->displayEvent(event);
00031         emit loadEvent(event);
00032     }
00033 }
00034 
00035 void    SchedulerModel::clearEvents()
00036 {
00037     for (int index = 0; index < this->events->count(); index +=1 )
00038         delete this->events->at(index);
00039 }
00040 
00041 QList<EventModel*>  *SchedulerModel::getEvents()
00042 {
00043     if (!events)
00044     {
00045         QSqlQuery   query("SELECT id, title, description, day, start, duration FROM events");
00046         query.exec();
00047         events      = new QList<EventModel*>();
00048 
00049         while (query.next())
00050         {
00051             int     id          = query.value(0).toInt();
00052             QString title       = query.value(1).toString();
00053             QString description = query.value(2).toString();
00054             short   day         = query.value(3).toInt();
00055             int     start       = query.value(4).toInt();
00056             int     duration    = query.value(5).toInt();
00057 
00058             EventModel *event   = new EventModel(scheduler, title, description, day, start, duration, id);
00059 
00060             this->events->append(event);
00061         }
00062     }
00063     return events;
00064 }
00065 
00066 EventModel*     SchedulerModel::getEvent(int id)
00067 {
00068     foreach(EventModel* event, *getEvents())
00069         if (event->getId() == id)
00070             return event;
00071     return 0;
00072 }