void Agenda::ajouterProgrammation(const QString & nomDeLEventClassique, const QDate & d, const QTime & h, const Duree duree) { EvenementClassique & evt = *(new EvenementClassique(duree, nomDeLEventClassique) ); int minute_fin = h.minute() + duree.getMinute(); int heure_fin = h.hour() + duree.getHeure() + (minute_fin / 60) ; minute_fin = minute_fin % 60; if ( !QTime::isValid(heure_fin, minute_fin, 0) ) { throw CalendarException("erreur ajouterProgrammation : une programmation ne peut pas être à cheval sur deux jours"); } ajouterProgrammation(evt, d, h, *(new QTime(heure_fin, minute_fin)) ); }
void Tache::writeOnto(QXmlStreamWriter* xmlStream){ if(isTacheComposee()){ xmlStream->writeStartElement("TacheComposee"); xmlStream->writeAttribute("nom",getTitre().c_str()); for(int i=0;i<dynamic_cast<TacheComposee*>(this)->getNbTaches();i++){ dynamic_cast<TacheComposee*>(this)->getListeTaches()[i]->writeOnto(xmlStream); } } else { // TACHE UNITAIRE xmlStream->writeStartElement("TacheUnitaire"); xmlStream->writeAttribute("nom",getTitre().c_str()); TacheUnitaire* cast = dynamic_cast<TacheUnitaire*>(this); if (cast->EstPreemptable()) xmlStream->writeAttribute("preemptable","true"); else xmlStream->writeAttribute("preemptable","false"); Duree duree = dynamic_cast<TacheUnitaire*>(this)->GetDuree(); xmlStream->writeAttribute("heures",to_string(duree.getHeure()).c_str()); xmlStream->writeAttribute("minutes",to_string(duree.getMinute()).c_str()); xmlStream->writeAttribute("secondes",to_string(duree.getSeconde()).c_str()); } if (isDateDisp()){ xmlStream->writeStartElement("dateDisponibilite"); xmlStream->writeCharacters(dateDispo->getFormatedTime().c_str() ); xmlStream->writeEndElement(); } if (isDateEcheance()){ xmlStream->writeStartElement("dateEcheance"); xmlStream->writeCharacters(dateEcheance->getFormatedTime().c_str() ); xmlStream->writeEndElement(); } for (int i=0;i<nbPrecedences;i++){ xmlStream->writeStartElement("precedence"); xmlStream->writeCharacters(precedence[i]->getTitre().c_str() ); xmlStream->writeEndElement(); } xmlStream->writeEndElement(); }