summaryrefslogtreecommitdiffabout
path: root/libkcal
authorzautrix <zautrix>2004-10-05 13:34:33 (UTC)
committer zautrix <zautrix>2004-10-05 13:34:33 (UTC)
commit191ced43b27c047b0a39f0acdc8ba1f8a58817df (patch) (unidiff)
treed164ae32c16259d9a8d5c9fdfa74f975d1f10075 /libkcal
parenta946c09db6f71f595d8bdcb6b34ba3160c5497dc (diff)
downloadkdepimpi-191ced43b27c047b0a39f0acdc8ba1f8a58817df.zip
kdepimpi-191ced43b27c047b0a39f0acdc8ba1f8a58817df.tar.gz
kdepimpi-191ced43b27c047b0a39f0acdc8ba1f8a58817df.tar.bz2
fix for filewatch and vcal timezone
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/vcalformat.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libkcal/vcalformat.cpp b/libkcal/vcalformat.cpp
index 4727a7a..309c699 100644
--- a/libkcal/vcalformat.cpp
+++ b/libkcal/vcalformat.cpp
@@ -1391,193 +1391,193 @@ Event* VCalFormat::VEventToEvent(VObject *vevent)
1391 } 1391 }
1392 1392
1393 // priority 1393 // priority
1394 if ((vo = isAPropertyOf(vevent, VCPriorityProp))) { 1394 if ((vo = isAPropertyOf(vevent, VCPriorityProp))) {
1395 anEvent->setPriority(atoi(s = fakeCString(vObjectUStringZValue(vo)))); 1395 anEvent->setPriority(atoi(s = fakeCString(vObjectUStringZValue(vo))));
1396 deleteStr(s); 1396 deleteStr(s);
1397 } 1397 }
1398 1398
1399 // transparency 1399 // transparency
1400 if ((vo = isAPropertyOf(vevent, VCTranspProp)) != 0) { 1400 if ((vo = isAPropertyOf(vevent, VCTranspProp)) != 0) {
1401 int i = atoi(s = fakeCString(vObjectUStringZValue(vo))); 1401 int i = atoi(s = fakeCString(vObjectUStringZValue(vo)));
1402 anEvent->setTransparency( i == 1 ? Event::Transparent : Event::Opaque ); 1402 anEvent->setTransparency( i == 1 ? Event::Transparent : Event::Opaque );
1403 deleteStr(s); 1403 deleteStr(s);
1404 } 1404 }
1405 1405
1406 // related event 1406 // related event
1407 if ((vo = isAPropertyOf(vevent, VCRelatedToProp)) != 0) { 1407 if ((vo = isAPropertyOf(vevent, VCRelatedToProp)) != 0) {
1408 anEvent->setRelatedToUid(s = fakeCString(vObjectUStringZValue(vo))); 1408 anEvent->setRelatedToUid(s = fakeCString(vObjectUStringZValue(vo)));
1409 deleteStr(s); 1409 deleteStr(s);
1410 mEventsRelate.append(anEvent); 1410 mEventsRelate.append(anEvent);
1411 } 1411 }
1412 1412
1413 /* PILOT SYNC STUFF */ 1413 /* PILOT SYNC STUFF */
1414 if ((vo = isAPropertyOf(vevent, XPilotIdProp))) { 1414 if ((vo = isAPropertyOf(vevent, XPilotIdProp))) {
1415 anEvent->setPilotId(atoi(s = fakeCString(vObjectUStringZValue(vo)))); 1415 anEvent->setPilotId(atoi(s = fakeCString(vObjectUStringZValue(vo))));
1416 deleteStr(s); 1416 deleteStr(s);
1417 } 1417 }
1418 else 1418 else
1419 anEvent->setPilotId(0); 1419 anEvent->setPilotId(0);
1420 1420
1421 if ((vo = isAPropertyOf(vevent, XPilotStatusProp))) { 1421 if ((vo = isAPropertyOf(vevent, XPilotStatusProp))) {
1422 anEvent->setSyncStatus(atoi(s = fakeCString(vObjectUStringZValue(vo)))); 1422 anEvent->setSyncStatus(atoi(s = fakeCString(vObjectUStringZValue(vo))));
1423 deleteStr(s); 1423 deleteStr(s);
1424 } 1424 }
1425 else 1425 else
1426 anEvent->setSyncStatus(Event::SYNCMOD); 1426 anEvent->setSyncStatus(Event::SYNCMOD);
1427 1427
1428 return anEvent; 1428 return anEvent;
1429} 1429}
1430 1430
1431 1431
1432QString VCalFormat::qDateToISO(const QDate &qd) 1432QString VCalFormat::qDateToISO(const QDate &qd)
1433{ 1433{
1434 QString tmpStr; 1434 QString tmpStr;
1435 1435
1436 ASSERT(qd.isValid()); 1436 ASSERT(qd.isValid());
1437 1437
1438 tmpStr.sprintf("%.2d%.2d%.2d", 1438 tmpStr.sprintf("%.2d%.2d%.2d",
1439 qd.year(), qd.month(), qd.day()); 1439 qd.year(), qd.month(), qd.day());
1440 return tmpStr; 1440 return tmpStr;
1441 1441
1442} 1442}
1443 1443
1444QString VCalFormat::qDateTimeToISO(const QDateTime &qdt, bool zulu) 1444QString VCalFormat::qDateTimeToISO(const QDateTime &qdt, bool zulu)
1445{ 1445{
1446 QString tmpStr; 1446 QString tmpStr;
1447 1447
1448 ASSERT(qdt.date().isValid()); 1448 ASSERT(qdt.date().isValid());
1449 ASSERT(qdt.time().isValid()); 1449 ASSERT(qdt.time().isValid());
1450 if (zulu && !useLocalTime ) { 1450 if (zulu && !useLocalTime ) {
1451 QDateTime tmpDT = qdt.addSecs ( -KGlobal::locale()->localTimeOffset( qdt )*60); 1451 QDateTime tmpDT = qdt.addSecs ( -KGlobal::locale()->localTimeOffset( qdt )*60);
1452 tmpStr.sprintf("%.2d%.2d%.2dT%.2d%.2d%.2dZ", 1452 tmpStr.sprintf("%.2d%.2d%.2dT%.2d%.2d%.2dZ",
1453 tmpDT.date().year(), tmpDT.date().month(), 1453 tmpDT.date().year(), tmpDT.date().month(),
1454 tmpDT.date().day(), tmpDT.time().hour(), 1454 tmpDT.date().day(), tmpDT.time().hour(),
1455 tmpDT.time().minute(), tmpDT.time().second()); 1455 tmpDT.time().minute(), tmpDT.time().second());
1456 } else { 1456 } else {
1457 tmpStr.sprintf("%.2d%.2d%.2dT%.2d%.2d%.2d", 1457 tmpStr.sprintf("%.2d%.2d%.2dT%.2d%.2d%.2d",
1458 qdt.date().year(), qdt.date().month(), 1458 qdt.date().year(), qdt.date().month(),
1459 qdt.date().day(), qdt.time().hour(), 1459 qdt.date().day(), qdt.time().hour(),
1460 qdt.time().minute(), qdt.time().second()); 1460 qdt.time().minute(), qdt.time().second());
1461 } 1461 }
1462 return tmpStr; 1462 return tmpStr;
1463} 1463}
1464 1464
1465QDateTime VCalFormat::ISOToQDateTime(const QString & dtStr) 1465QDateTime VCalFormat::ISOToQDateTime(const QString & dtStr)
1466{ 1466{
1467 QDate tmpDate; 1467 QDate tmpDate;
1468 QTime tmpTime; 1468 QTime tmpTime;
1469 QString tmpStr; 1469 QString tmpStr;
1470 int year, month, day, hour, minute, second; 1470 int year, month, day, hour, minute, second;
1471 1471
1472 tmpStr = dtStr; 1472 tmpStr = dtStr;
1473 year = tmpStr.left(4).toInt(); 1473 year = tmpStr.left(4).toInt();
1474 month = tmpStr.mid(4,2).toInt(); 1474 month = tmpStr.mid(4,2).toInt();
1475 day = tmpStr.mid(6,2).toInt(); 1475 day = tmpStr.mid(6,2).toInt();
1476 hour = tmpStr.mid(9,2).toInt(); 1476 hour = tmpStr.mid(9,2).toInt();
1477 minute = tmpStr.mid(11,2).toInt(); 1477 minute = tmpStr.mid(11,2).toInt();
1478 second = tmpStr.mid(13,2).toInt(); 1478 second = tmpStr.mid(13,2).toInt();
1479 tmpDate.setYMD(year, month, day); 1479 tmpDate.setYMD(year, month, day);
1480 tmpTime.setHMS(hour, minute, second); 1480 tmpTime.setHMS(hour, minute, second);
1481 1481
1482 ASSERT(tmpDate.isValid()); 1482 ASSERT(tmpDate.isValid());
1483 ASSERT(tmpTime.isValid()); 1483 ASSERT(tmpTime.isValid());
1484 QDateTime tmpDT(tmpDate, tmpTime); 1484 QDateTime tmpDT(tmpDate, tmpTime);
1485 // correct for GMT if string is in Zulu format 1485 // correct for GMT if string is in Zulu format
1486 if (dtStr.at(dtStr.length()-1) == 'Z') 1486 if (dtStr.at(dtStr.length()-1) == 'Z')
1487 tmpDT = tmpDT.addSecs(60*mCalendar->getTimeZone()); 1487 tmpDT = tmpDT.addSecs (KGlobal::locale()->localTimeOffset( tmpDT )*60);
1488 return tmpDT; 1488 return tmpDT;
1489} 1489}
1490 1490
1491QDate VCalFormat::ISOToQDate(const QString &dateStr) 1491QDate VCalFormat::ISOToQDate(const QString &dateStr)
1492{ 1492{
1493 int year, month, day; 1493 int year, month, day;
1494 1494
1495 year = dateStr.left(4).toInt(); 1495 year = dateStr.left(4).toInt();
1496 month = dateStr.mid(4,2).toInt(); 1496 month = dateStr.mid(4,2).toInt();
1497 day = dateStr.mid(6,2).toInt(); 1497 day = dateStr.mid(6,2).toInt();
1498 1498
1499 return(QDate(year, month, day)); 1499 return(QDate(year, month, day));
1500} 1500}
1501 1501
1502// take a raw vcalendar (i.e. from a file on disk, clipboard, etc. etc. 1502// take a raw vcalendar (i.e. from a file on disk, clipboard, etc. etc.
1503// and break it down from it's tree-like format into the dictionary format 1503// and break it down from it's tree-like format into the dictionary format
1504// that is used internally in the VCalFormat. 1504// that is used internally in the VCalFormat.
1505void VCalFormat::populate(VObject *vcal) 1505void VCalFormat::populate(VObject *vcal)
1506{ 1506{
1507 // this function will populate the caldict dictionary and other event 1507 // this function will populate the caldict dictionary and other event
1508 // lists. It turns vevents into Events and then inserts them. 1508 // lists. It turns vevents into Events and then inserts them.
1509 1509
1510 VObjectIterator i; 1510 VObjectIterator i;
1511 VObject *curVO, *curVOProp; 1511 VObject *curVO, *curVOProp;
1512 Event *anEvent; 1512 Event *anEvent;
1513 1513
1514 if ((curVO = isAPropertyOf(vcal, ICMethodProp)) != 0) { 1514 if ((curVO = isAPropertyOf(vcal, ICMethodProp)) != 0) {
1515 char *methodType = 0; 1515 char *methodType = 0;
1516 methodType = fakeCString(vObjectUStringZValue(curVO)); 1516 methodType = fakeCString(vObjectUStringZValue(curVO));
1517 kdDebug() << "This calendar is an iTIP transaction of type '" 1517 kdDebug() << "This calendar is an iTIP transaction of type '"
1518 << methodType << "'" << endl; 1518 << methodType << "'" << endl;
1519 delete methodType; 1519 delete methodType;
1520 } 1520 }
1521 1521
1522 // warn the user that we might have trouble reading non-known calendar. 1522 // warn the user that we might have trouble reading non-known calendar.
1523 if ((curVO = isAPropertyOf(vcal, VCProdIdProp)) != 0) { 1523 if ((curVO = isAPropertyOf(vcal, VCProdIdProp)) != 0) {
1524 char *s = fakeCString(vObjectUStringZValue(curVO)); 1524 char *s = fakeCString(vObjectUStringZValue(curVO));
1525 if (strcmp(productId().local8Bit(), s) != 0) 1525 if (strcmp(productId().local8Bit(), s) != 0)
1526 kdDebug() << "This vCalendar file was not created by KOrganizer " 1526 kdDebug() << "This vCalendar file was not created by KOrganizer "
1527 "or any other product we support. Loading anyway..." << endl; 1527 "or any other product we support. Loading anyway..." << endl;
1528 mLoadedProductId = s; 1528 mLoadedProductId = s;
1529 deleteStr(s); 1529 deleteStr(s);
1530 } 1530 }
1531 1531
1532 // warn the user we might have trouble reading this unknown version. 1532 // warn the user we might have trouble reading this unknown version.
1533 if ((curVO = isAPropertyOf(vcal, VCVersionProp)) != 0) { 1533 if ((curVO = isAPropertyOf(vcal, VCVersionProp)) != 0) {
1534 char *s = fakeCString(vObjectUStringZValue(curVO)); 1534 char *s = fakeCString(vObjectUStringZValue(curVO));
1535 if (strcmp(_VCAL_VERSION, s) != 0) 1535 if (strcmp(_VCAL_VERSION, s) != 0)
1536 kdDebug() << "This vCalendar file has version " << s 1536 kdDebug() << "This vCalendar file has version " << s
1537 << "We only support " << _VCAL_VERSION << endl; 1537 << "We only support " << _VCAL_VERSION << endl;
1538 deleteStr(s); 1538 deleteStr(s);
1539 } 1539 }
1540 1540
1541 // set the time zone 1541 // set the time zone
1542 if ((curVO = isAPropertyOf(vcal, VCTimeZoneProp)) != 0) { 1542 if ((curVO = isAPropertyOf(vcal, VCTimeZoneProp)) != 0) {
1543 char *s = fakeCString(vObjectUStringZValue(curVO)); 1543 char *s = fakeCString(vObjectUStringZValue(curVO));
1544 mCalendar->setTimeZone(s); 1544 mCalendar->setTimeZone(s);
1545 deleteStr(s); 1545 deleteStr(s);
1546 } 1546 }
1547 1547
1548 1548
1549 // Store all events with a relatedTo property in a list for post-processing 1549 // Store all events with a relatedTo property in a list for post-processing
1550 mEventsRelate.clear(); 1550 mEventsRelate.clear();
1551 mTodosRelate.clear(); 1551 mTodosRelate.clear();
1552 1552
1553 initPropIterator(&i, vcal); 1553 initPropIterator(&i, vcal);
1554 1554
1555 // go through all the vobjects in the vcal 1555 // go through all the vobjects in the vcal
1556 while (moreIteration(&i)) { 1556 while (moreIteration(&i)) {
1557 curVO = nextVObject(&i); 1557 curVO = nextVObject(&i);
1558 1558
1559 /************************************************************************/ 1559 /************************************************************************/
1560 1560
1561 // now, check to see that the object is an event or todo. 1561 // now, check to see that the object is an event or todo.
1562 if (strcmp(vObjectName(curVO), VCEventProp) == 0) { 1562 if (strcmp(vObjectName(curVO), VCEventProp) == 0) {
1563 1563
1564 if ((curVOProp = isAPropertyOf(curVO, XPilotStatusProp)) != 0) { 1564 if ((curVOProp = isAPropertyOf(curVO, XPilotStatusProp)) != 0) {
1565 char *s; 1565 char *s;
1566 s = fakeCString(vObjectUStringZValue(curVOProp)); 1566 s = fakeCString(vObjectUStringZValue(curVOProp));
1567 // check to see if event was deleted by the kpilot conduit 1567 // check to see if event was deleted by the kpilot conduit
1568 if (atoi(s) == Event::SYNCDEL) { 1568 if (atoi(s) == Event::SYNCDEL) {
1569 deleteStr(s); 1569 deleteStr(s);
1570 kdDebug(5800) << "skipping pilot-deleted event" << endl; 1570 kdDebug(5800) << "skipping pilot-deleted event" << endl;
1571 goto SKIP; 1571 goto SKIP;
1572 } 1572 }
1573 deleteStr(s); 1573 deleteStr(s);
1574 } 1574 }
1575 1575
1576 // this code checks to see if we are trying to read in an event 1576 // this code checks to see if we are trying to read in an event
1577 // that we already find to be in the calendar. If we find this 1577 // that we already find to be in the calendar. If we find this
1578 // to be the case, we skip the event. 1578 // to be the case, we skip the event.
1579 if ((curVOProp = isAPropertyOf(curVO, VCUniqueStringProp)) != 0) { 1579 if ((curVOProp = isAPropertyOf(curVO, VCUniqueStringProp)) != 0) {
1580 char *s = fakeCString(vObjectUStringZValue(curVOProp)); 1580 char *s = fakeCString(vObjectUStringZValue(curVOProp));
1581 QString tmpStr(s); 1581 QString tmpStr(s);
1582 deleteStr(s); 1582 deleteStr(s);
1583 1583