+bool Delegate::hasTimeConflict(const QModelIndex &index, const QModelIndex &parent) const
+{
+ Event *event = static_cast<Event*>(index.internalPointer());
+ QTime start = event->start().time();
+ QTime end = start.addSecs(event->duration());
+ for(int i=0; i<parent.model()->rowCount(parent); i++)
+ {
+ if((event->id()!=static_cast<Event*>(parent.child(i,0).internalPointer())->id())
+ &&
+ (static_cast<Event*>(parent.child(i,0).internalPointer())->isFavourite()))
+ {
+ if (((start >= static_cast<Event*>(parent.child(i,0).internalPointer())->start().time())
+ &&
+ (start <= static_cast<Event*>(parent.child(i,0).internalPointer())->start().time().addSecs(static_cast<Event*>(parent.child(i,0).internalPointer())->duration())))
+ ||
+ ((end >= static_cast<Event*>(parent.child(i,0).internalPointer())->start().time())
+ &&
+ (end <= static_cast<Event*>(parent.child(i,0).internalPointer())->start().time().addSecs(static_cast<Event*>(parent.child(i,0).internalPointer())->duration()))))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}