X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2Fcalendarevent%2FCalendarEvent-Save.cpp;h=0feaf23558e3b70371723f9a735a771b919c9109;hb=cba151c4b833a26c63984769f921bab5e755decd;hp=330df3b618bc8e548426d57153636cb7ee5004ff;hpb=7fa96b9e9eeab0c67e10545fc555b65e094ea999;p=xestiacalendar%2F.git diff --git a/source/objects/calendarevent/CalendarEvent-Save.cpp b/source/objects/calendarevent/CalendarEvent-Save.cpp index 330df3b..0feaf23 100644 --- a/source/objects/calendarevent/CalendarEvent-Save.cpp +++ b/source/objects/calendarevent/CalendarEvent-Save.cpp @@ -1,3 +1,21 @@ +// CalendarEvent.cpp - CalendarEventObject class save functions +// +// (c) 2016-2017 Xestia Software Development. +// +// This file is part of Xestia Calendar. +// +// Xestia Calendar is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by the +// Free Software Foundation, version 3 of the license. +// +// Xestia Calendar is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with Xestia Calendar. If not, see + #include "CalendarEvent.h" using namespace std; @@ -621,6 +639,32 @@ void CalendarEventObject::SaveObjectData(string *SaveData){ } + // Process the DURATION value. + + if (DurationData.size() > 0){ + + DataLine += "DURATION"; + + if (DurationDataTokens.size() > 0){ + + DataLine += ";"; + DataLine += DurationDataTokens; + + } + + DataLine += ":"; + DataLine += DurationData; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + // Process the RRULE value. if (RecurranceRuleData.size() > 0){ @@ -1334,12 +1378,250 @@ void CalendarEventObject::SaveObjectData(string *SaveData){ } + // Process the REPEAT VALARM value. + + if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatData.size() > 0){ + + DataLine += "REPEAT"; + + if (CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens.size() > 0){ + + DataLine += ";"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatTokens; + + } + + DataLine += ":"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].RepeatData; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + // Process the ATTENDEE VALARM values. + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size() > 0){ + + for (int AttendeeListSeek = 0; AttendeeListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList.size(); + AttendeeListSeek++){ + + DataLine += "ATTENDEE"; + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek].size() > 0){ + + DataLine += ";MEMBER=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListMember[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){ + + DataLine += ";DELEGATED-FROM=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedFrom[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){ + + DataLine += ";DELEGATED-TO=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDelegatedTo[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek].size() > 0){ + + DataLine += ";ROLE="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRole[AttendeeListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek].size() > 0){ + + DataLine += ";RSVP="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListRSVP[AttendeeListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){ + + DataLine += ";DIR=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListDirectoryEntry[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek].size() > 0){ + + DataLine += ";SENT-BY=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListSentBy[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek].size() > 0){ + + DataLine += ";CN=\""; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCommonName[AttendeeListSeek]; + DataLine += "\""; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){ + + DataLine += ";CUTYPE="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListCalendarUserType[AttendeeListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){ + + DataLine += ";PARTSTAT="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListParticipationStatus[AttendeeListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek].size() > 0){ + + DataLine += ";LANGUAGE="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListLanguage[AttendeeListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek].size() > 0){ + + DataLine += ";"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeListTokens[AttendeeListSeek]; + + } + + DataLine += ":"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttendeeList[AttendeeListSeek]; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + } + + // Process the ATTACH VALARM values. + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size() > 0){ + + for (int AttachListSeek = 0; AttachListSeek < CalendarAlarmData[CalendarAlarmDataSeek].AttachList.size(); + AttachListSeek++){ + + DataLine += "ATTACH"; + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek].size() > 0){ + + DataLine += ";FMTTYPE="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListFormatType[AttachListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek].size() > 0){ + + DataLine += ";VALUE="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListValue[AttachListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek].size() > 0){ + + DataLine += ";ENCODING="; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListEncoding[AttachListSeek]; + + } + + if (CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek].size() > 0){ + + DataLine += ";"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachListTokens[AttachListSeek]; + + } + + DataLine += ":"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].AttachList[AttachListSeek]; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + } + + // Process the X-Token VALARM values. + + if (CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size() > 0){ + + for (int XTokenSeek = 0; XTokenSeek < CalendarAlarmData[CalendarAlarmDataSeek].XTokensData.size(); + XTokenSeek++){ + + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensDataTokens[XTokenSeek]; + DataLine += ":"; + DataLine += CalendarAlarmData[CalendarAlarmDataSeek].XTokensData[XTokenSeek]; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + } + *SaveData += "END:VALARM\n"; } } + // Process the X-Token values. + + if (XTokensData.size() > 0){ + + for (int XTokenSeek = 0; XTokenSeek < XTokensData.size(); + XTokenSeek++){ + + DataLine += XTokensDataTokens[XTokenSeek]; + DataLine += ":"; + DataLine += XTokensData[XTokenSeek]; + DataLine += "\n"; + + DataLineProcessed = OutputText(&DataLine); + + *SaveData += DataLineProcessed; + + DataLine.clear(); + DataLineProcessed.clear(); + + } + + } + *SaveData += "END:VEVENT\n"; } \ No newline at end of file