defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010-2011 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 #include "status.hpp" 00012 00013 using namespace Notification; 00014 00015 Status *Status::instance = 0; 00016 QList<QPair<QString, QString> > Status::waitList; 00017 00018 Status::Status() : lastMessage(0) 00019 { 00020 instance = this; 00021 widget = new StatusWidget(this); 00022 uiModule = Gui::ModuleFactory::create("Status", QPoint(2, 1), widget); 00023 uiModule->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); 00024 uiModule->submitForDisplay(); 00025 connect(this, SIGNAL(forwardMessage(QString,QString)), SLOT(message(QString,QString))); 00026 while (!waitList.empty()) 00027 { 00028 QPair<QString, QString> &elem = waitList.first(); 00029 emit forwardMessage(elem.first, elem.second); 00030 waitList.pop_front(); 00031 } 00032 } 00033 00034 Status::~Status() 00035 { 00036 delete widget; 00037 } 00038 00039 void Status::init() 00040 { 00041 } 00042 00043 void Status::aboutToQuit() 00044 { 00045 } 00046 00047 Message* Status::message(const QString &msg, const QString& pix) 00048 { 00049 if (lastMessage && lastMessage->message == msg) 00050 { 00051 // Message already exists, just increment count 00052 lastMessage->incrementCount(); 00053 return lastMessage; 00054 } 00055 else 00056 { 00057 Message* message = new Message(widget); 00058 QPixmap pixmap(pix); 00059 00060 message->setMessage(msg); 00061 if (!pixmap.isNull()) 00062 message->setIcon(pixmap); 00063 widget->addMessage(message); 00064 lastMessage = message; 00065 return message; 00066 } 00067 } 00068 00069 void Status::gMessage(const QString &msg, const QString& pix) 00070 { 00071 if (instance) 00072 emit instance->forwardMessage(msg, pix); 00073 else 00074 waitList << QPair<QString, QString>(msg, pix); 00075 }