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 "queuebreak.hpp" 00012 00013 using namespace Queue; 00014 00015 QueueBreak::QueueBreak() 00016 { 00017 } 00018 00019 QueueBreak::QueueBreak(int duration) 00020 { 00021 setDuration(duration); 00022 } 00023 00024 QueueBreak::QueueBreak(QDateTime end) 00025 { 00026 setEnd(end); 00027 } 00028 00029 QueueBreak::~QueueBreak() 00030 { 00031 } 00032 00033 int QueueBreak::duration() const 00034 { 00035 if (attributes.contains("duration")) 00036 return attributes["duration"].toInt(); 00037 else 00038 return -1; 00039 } 00040 00041 QDateTime QueueBreak::end() const 00042 { 00043 if (attributes.contains("end")) 00044 return attributes["end"].toDateTime(); 00045 else 00046 return QDateTime(); 00047 } 00048 00049 void QueueBreak::setDuration(int duration) 00050 { 00051 attributes["duration"] = duration; 00052 saveQueueAttributes(); 00053 } 00054 00055 void QueueBreak::setEnd(QDateTime end) 00056 { 00057 attributes["end"] = end; 00058 saveQueueAttributes(); 00059 } 00060 00061 QString QueueBreak::message() const 00062 { 00063 if (end().isValid()) 00064 return QString(tr("Break until %1").arg(end().toString(tr("dddd hh:mm ap")))); 00065 else 00066 return QString(tr("Break during %1").arg(textDuration())); 00067 } 00068 00069 bool QueueBreak::queueIsFinite() const 00070 { 00071 return (duration() > 0 || end().isValid()); 00072 } 00073 00074 int QueueBreak::queueDuration(QDateTime from) const 00075 { 00076 if (end().isValid()) 00077 if (from.secsTo(end()) > 0) 00078 return from.secsTo(end()); 00079 else 00080 return 0; 00081 else 00082 return duration(); 00083 } 00084 00085 QString QueueBreak::queueType() const 00086 { 00087 return "QueueBreak"; 00088 } 00089 00090 QString QueueBreak::name() const 00091 { 00092 return QString("QueueBreak(%1s)").arg(attributes["duration"].toString()); 00093 } 00094 00095 Queueable* QueueBreak::clone() const 00096 { 00097 QueueBreak *instance = new QueueBreak(); 00098 instance->attributes = attributes; 00099 return instance; 00100 }