Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 5da5765c5c8f8ed0660817fae812758c > files > 1

akonadi-googledata-1.2.0-1.1.mga1.src.rpm

--- calendar/gcalresource.cpp	2011/01/05 00:51:05	1211814
+++ calendar/gcalresource.cpp	2011/01/21 15:45:14	1216151
@@ -203,12 +203,16 @@
 		temp = gcal_event_get_end(event);
 		end = end.fromString(temp, KDateTime::ISODate);
 		kevent->setDtStart(start);
+		
+		if (end.isDateOnly()) {
+			// KCal::Event::dtEnd() is inclusive, not exclusive.
+			// ( When serializing back to ICal, +1 is added internaly, to respect ical rfc )
+			end = end.addDays(-1);
+		}
 		kevent->setDtEnd(end);
-
+		
 		qDebug() << "start: " << start.dateTime()
 			 << "\tend: " << end.dateTime();
-
-
 		/* remoteID: edit_url */
 		KUrl urlEtag(gcal_event_get_url(event));
 		item.setRemoteId(urlEtag.url());
@@ -379,8 +383,15 @@
 			temp = gcal_event_get_end(event);
 			end = end.fromString(temp, KDateTime::ISODate);
 			kevent->setDtStart(start);
-			kevent->setDtEnd(end);
+			
+			if (end.isDateOnly()) {
+				// KCal::Event::dtEnd() is inclusive, not exclusive.
+				// ( When serializing back to ICal, +1 is added internaly, to respect ical rfc )			  
+				end = end.addDays(-1);
+			}
 
+			kevent->setDtEnd(end);
+			
 			url = gcal_event_get_url(event);
 			item.setRemoteId(url.url());
 			item.setPayload(IncidencePtr(kevent));
@@ -527,6 +538,12 @@
 	gcal_event_set_start(event, t_byte.data());
 
 	time = kevent->dtEnd();
+	
+	if (time.isDateOnly()) {
+		// KCal::Event::dtEnd() is inclusive, not exclusive.
+		time = time.addDays(1);
+	}
+	
 	temp = time.toString(KDateTime::ISODate);
 	t_byte = temp.toUtf8();
 	gcal_event_set_end(event, t_byte.data());
@@ -627,6 +644,12 @@
 	gcal_event_set_start(event, t_byte.data());
 
 	time = kevent->dtEnd();
+
+	if (time.isDateOnly()) {
+		// KCal::Event::dtEnd() is inclusive, not exclusive.
+		time = time.addDays(1);
+	}
+
 	temp = time.toString(KDateTime::ISODate);
 	t_byte = temp.toUtf8();
 	gcal_event_set_end(event, t_byte.data());