defuze.me
Client
|
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 }