00001 #include "application.h"
00002
00003 #include <domain/taskmanagerdata.h>
00004 #include <domain/clock.h>
00005
00006 #include <control/controllerfactory.h>
00007
00008 #include <ui/gui/gui.h>
00009
00010 struct ApplicationPrivate
00011 {
00012 ui::UiInterface* ui;
00013 domain::TaskManagerData* data;
00014
00015 void createData();
00016 void createUi();
00017 void createControllers();
00018 };
00019
00020 void ApplicationPrivate::createData()
00021 {
00022 data = domain::TaskManagerData::instance();
00023 }
00024
00025 void ApplicationPrivate::createUi()
00026 {
00027 ui = new ui::Gui();
00028 ui->setTime(data->clock()->time());
00029
00030 QObject::connect(data, SIGNAL(timeChanged(QDateTime)),
00031 ui, SLOT(setTime(QDateTime)));
00032 }
00033
00034 void ApplicationPrivate::createControllers()
00035 {
00036 control::ControllerFactory factory(data, ui);
00037 ui->loadControllers(factory.controllers());
00038 }
00039
00040 Application::Application(int argc, char* argv[]) : QApplication(argc, argv),
00041 d(new ApplicationPrivate())
00042 {
00043 d->createData();
00044 d->createUi();
00045 d->createControllers();
00046 d->ui->start();
00047 }
00048
00049 Application::~Application()
00050 {
00051 delete d->ui;
00052 delete d;
00053 }