-rw-r--r-- | libkcal/icalformatimpl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp index fe7413f..2405682 100644 --- a/libkcal/icalformatimpl.cpp +++ b/libkcal/icalformatimpl.cpp | |||
@@ -650,121 +650,124 @@ icalproperty *ICalFormatImpl::writeRecurrenceRule(Recurrence *recur) | |||
650 | break; | 650 | break; |
651 | default: | 651 | default: |
652 | r.freq = ICAL_NO_RECURRENCE; | 652 | r.freq = ICAL_NO_RECURRENCE; |
653 | kdDebug(5800) << "ICalFormatImpl::writeRecurrence(): no recurrence" << endl; | 653 | kdDebug(5800) << "ICalFormatImpl::writeRecurrence(): no recurrence" << endl; |
654 | break; | 654 | break; |
655 | } | 655 | } |
656 | 656 | ||
657 | r.interval = recur->frequency(); | 657 | r.interval = recur->frequency(); |
658 | 658 | ||
659 | if (recur->duration() > 0) { | 659 | if (recur->duration() > 0) { |
660 | r.count = recur->duration(); | 660 | r.count = recur->duration(); |
661 | } else if (recur->duration() == -1) { | 661 | } else if (recur->duration() == -1) { |
662 | r.count = 0; | 662 | r.count = 0; |
663 | } else { | 663 | } else { |
664 | if (datetime) | 664 | if (datetime) |
665 | r.until = writeICalDateTime(recur->endDateTime()); | 665 | r.until = writeICalDateTime(recur->endDateTime()); |
666 | else | 666 | else |
667 | r.until = writeICalDate(recur->endDate()); | 667 | r.until = writeICalDate(recur->endDate()); |
668 | } | 668 | } |
669 | 669 | ||
670 | // Debug output | 670 | // Debug output |
671 | #if 0 | 671 | #if 0 |
672 | const char *str = icalrecurrencetype_as_string(&r); | 672 | const char *str = icalrecurrencetype_as_string(&r); |
673 | if (str) { | 673 | if (str) { |
674 | kdDebug(5800) << " String: " << str << endl; | 674 | kdDebug(5800) << " String: " << str << endl; |
675 | } else { | 675 | } else { |
676 | kdDebug(5800) << " No String" << endl; | 676 | kdDebug(5800) << " No String" << endl; |
677 | } | 677 | } |
678 | #endif | 678 | #endif |
679 | 679 | ||
680 | return icalproperty_new_rrule(r); | 680 | return icalproperty_new_rrule(r); |
681 | } | 681 | } |
682 | 682 | ||
683 | icalcomponent *ICalFormatImpl::writeAlarm(Alarm *alarm) | 683 | icalcomponent *ICalFormatImpl::writeAlarm(Alarm *alarm) |
684 | { | 684 | { |
685 | icalcomponent *a = icalcomponent_new(ICAL_VALARM_COMPONENT); | 685 | icalcomponent *a = icalcomponent_new(ICAL_VALARM_COMPONENT); |
686 | 686 | ||
687 | icalproperty_action action; | 687 | icalproperty_action action; |
688 | icalattach *attach = 0; | 688 | icalattach *attach = 0; |
689 | 689 | ||
690 | switch (alarm->type()) { | 690 | switch (alarm->type()) { |
691 | case Alarm::Procedure: | 691 | case Alarm::Procedure: |
692 | action = ICAL_ACTION_PROCEDURE; | 692 | action = ICAL_ACTION_PROCEDURE; |
693 | attach = icalattach_new_from_url( QFile::encodeName(alarm->programFile()).data() ); | 693 | attach = icalattach_new_from_url( QFile::encodeName(alarm->programFile()).data() ); |
694 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); | 694 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); |
695 | if (!alarm->programArguments().isEmpty()) { | 695 | if (!alarm->programArguments().isEmpty()) { |
696 | icalcomponent_add_property(a,icalproperty_new_description(alarm->programArguments().utf8())); | 696 | icalcomponent_add_property(a,icalproperty_new_description(alarm->programArguments().utf8())); |
697 | } | 697 | } |
698 | icalattach_unref( attach ); | ||
698 | break; | 699 | break; |
699 | case Alarm::Audio: | 700 | case Alarm::Audio: |
700 | action = ICAL_ACTION_AUDIO; | 701 | action = ICAL_ACTION_AUDIO; |
701 | if (!alarm->audioFile().isEmpty()) { | 702 | if (!alarm->audioFile().isEmpty()) { |
702 | attach = icalattach_new_from_url(QFile::encodeName( alarm->audioFile() ).data()); | 703 | attach = icalattach_new_from_url(QFile::encodeName( alarm->audioFile() ).data()); |
703 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); | 704 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); |
705 | icalattach_unref( attach ); | ||
704 | } | 706 | } |
705 | break; | 707 | break; |
706 | case Alarm::Email: { | 708 | case Alarm::Email: { |
707 | action = ICAL_ACTION_EMAIL; | 709 | action = ICAL_ACTION_EMAIL; |
708 | QValueList<Person> addresses = alarm->mailAddresses(); | 710 | QValueList<Person> addresses = alarm->mailAddresses(); |
709 | for (QValueList<Person>::Iterator ad = addresses.begin(); ad != addresses.end(); ++ad) { | 711 | for (QValueList<Person>::Iterator ad = addresses.begin(); ad != addresses.end(); ++ad) { |
710 | icalproperty *p = icalproperty_new_attendee("MAILTO:" + (*ad).email().utf8()); | 712 | icalproperty *p = icalproperty_new_attendee("MAILTO:" + (*ad).email().utf8()); |
711 | if (!(*ad).name().isEmpty()) { | 713 | if (!(*ad).name().isEmpty()) { |
712 | icalproperty_add_parameter(p,icalparameter_new_cn((*ad).name().utf8())); | 714 | icalproperty_add_parameter(p,icalparameter_new_cn((*ad).name().utf8())); |
713 | } | 715 | } |
714 | icalcomponent_add_property(a,p); | 716 | icalcomponent_add_property(a,p); |
715 | } | 717 | } |
716 | icalcomponent_add_property(a,icalproperty_new_summary(alarm->mailSubject().utf8())); | 718 | icalcomponent_add_property(a,icalproperty_new_summary(alarm->mailSubject().utf8())); |
717 | icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); | 719 | icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); |
718 | QStringList attachments = alarm->mailAttachments(); | 720 | QStringList attachments = alarm->mailAttachments(); |
719 | if (attachments.count() > 0) { | 721 | if (attachments.count() > 0) { |
720 | for (QStringList::Iterator at = attachments.begin(); at != attachments.end(); ++at) { | 722 | for (QStringList::Iterator at = attachments.begin(); at != attachments.end(); ++at) { |
721 | attach = icalattach_new_from_url(QFile::encodeName( *at ).data()); | 723 | attach = icalattach_new_from_url(QFile::encodeName( *at ).data()); |
722 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); | 724 | icalcomponent_add_property(a,icalproperty_new_attach(attach)); |
725 | icalattach_unref( attach ); | ||
723 | } | 726 | } |
724 | } | 727 | } |
725 | break; | 728 | break; |
726 | } | 729 | } |
727 | case Alarm::Display: | 730 | case Alarm::Display: |
728 | action = ICAL_ACTION_DISPLAY; | 731 | action = ICAL_ACTION_DISPLAY; |
729 | icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); | 732 | icalcomponent_add_property(a,icalproperty_new_description(alarm->text().utf8())); |
730 | break; | 733 | break; |
731 | case Alarm::Invalid: | 734 | case Alarm::Invalid: |
732 | default: | 735 | default: |
733 | kdDebug(5800) << "Unknown type of alarm" << endl; | 736 | kdDebug(5800) << "Unknown type of alarm" << endl; |
734 | action = ICAL_ACTION_NONE; | 737 | action = ICAL_ACTION_NONE; |
735 | break; | 738 | break; |
736 | } | 739 | } |
737 | icalcomponent_add_property(a,icalproperty_new_action(action)); | 740 | icalcomponent_add_property(a,icalproperty_new_action(action)); |
738 | 741 | ||
739 | // Trigger time | 742 | // Trigger time |
740 | icaltriggertype trigger; | 743 | icaltriggertype trigger; |
741 | if ( alarm->hasTime() ) { | 744 | if ( alarm->hasTime() ) { |
742 | trigger.time = writeICalDateTime(alarm->time()); | 745 | trigger.time = writeICalDateTime(alarm->time()); |
743 | trigger.duration = icaldurationtype_null_duration(); | 746 | trigger.duration = icaldurationtype_null_duration(); |
744 | } else { | 747 | } else { |
745 | trigger.time = icaltime_null_time(); | 748 | trigger.time = icaltime_null_time(); |
746 | Duration offset; | 749 | Duration offset; |
747 | if ( alarm->hasStartOffset() ) | 750 | if ( alarm->hasStartOffset() ) |
748 | offset = alarm->startOffset(); | 751 | offset = alarm->startOffset(); |
749 | else | 752 | else |
750 | offset = alarm->endOffset(); | 753 | offset = alarm->endOffset(); |
751 | trigger.duration = icaldurationtype_from_int( offset.asSeconds() ); | 754 | trigger.duration = icaldurationtype_from_int( offset.asSeconds() ); |
752 | } | 755 | } |
753 | icalproperty *p = icalproperty_new_trigger(trigger); | 756 | icalproperty *p = icalproperty_new_trigger(trigger); |
754 | if ( alarm->hasEndOffset() ) | 757 | if ( alarm->hasEndOffset() ) |
755 | icalproperty_add_parameter(p,icalparameter_new_related(ICAL_RELATED_END)); | 758 | icalproperty_add_parameter(p,icalparameter_new_related(ICAL_RELATED_END)); |
756 | icalcomponent_add_property(a,p); | 759 | icalcomponent_add_property(a,p); |
757 | 760 | ||
758 | // Repeat count and duration | 761 | // Repeat count and duration |
759 | if (alarm->repeatCount()) { | 762 | if (alarm->repeatCount()) { |
760 | icalcomponent_add_property(a,icalproperty_new_repeat(alarm->repeatCount())); | 763 | icalcomponent_add_property(a,icalproperty_new_repeat(alarm->repeatCount())); |
761 | icalcomponent_add_property(a,icalproperty_new_duration( | 764 | icalcomponent_add_property(a,icalproperty_new_duration( |
762 | icaldurationtype_from_int(alarm->snoozeTime()*60))); | 765 | icaldurationtype_from_int(alarm->snoozeTime()*60))); |
763 | } | 766 | } |
764 | 767 | ||
765 | // Custom properties | 768 | // Custom properties |
766 | QMap<QCString, QString> custom = alarm->customProperties(); | 769 | QMap<QCString, QString> custom = alarm->customProperties(); |
767 | for (QMap<QCString, QString>::Iterator c = custom.begin(); c != custom.end(); ++c) { | 770 | for (QMap<QCString, QString>::Iterator c = custom.begin(); c != custom.end(); ++c) { |
768 | icalproperty *p = icalproperty_new_x(c.data().utf8()); | 771 | icalproperty *p = icalproperty_new_x(c.data().utf8()); |
769 | icalproperty_set_x_name(p,c.key()); | 772 | icalproperty_set_x_name(p,c.key()); |
770 | icalcomponent_add_property(a,p); | 773 | icalcomponent_add_property(a,p); |