Fixed backend support for COUNT in recurrence rules. (Bugs 183667 & 167553 )

This commit is contained in:
mostafah%oeone.com 2002-12-05 18:10:57 +00:00
Родитель 703f5b19be
Коммит 3237559d7a
5 изменённых файлов: 54 добавлений и 8 удалений

Просмотреть файл

@ -1103,6 +1103,16 @@ NS_IMETHODIMP oeICalContainerFilter::SetRecurInterval(PRUint32 aNewVal )
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalContainerFilter::GetRecurCount(PRUint32 *aRetVal)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalContainerFilter::SetRecurCount(PRUint32 aNewVal )
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalContainerFilter::GetRecurUnits(char **aRetVal)
{
return NS_ERROR_NOT_IMPLEMENTED;

Просмотреть файл

@ -266,6 +266,7 @@ oeICalEventImpl::oeICalEventImpl()
m_alarmemail = nsnull;
m_inviteemail = nsnull;
m_recurinterval = 1;
m_recurcount = 0;
m_recur = false;
m_recurforever = true;
m_alarmunits = nsnull;
@ -756,7 +757,7 @@ NS_IMETHODIMP oeICalEventImpl::SetInviteEmailAddress(const char * aNewVal)
return NS_OK;
}
/* attribute boolean RecurInterval; */
/* attribute RecurInterval; */
NS_IMETHODIMP oeICalEventImpl::GetRecurInterval(PRUint32 *aRetVal)
{
#ifdef ICAL_DEBUG_ALL
@ -774,6 +775,24 @@ NS_IMETHODIMP oeICalEventImpl::SetRecurInterval(PRUint32 aNewVal )
return NS_OK;
}
/* attribute RecurCount; */
NS_IMETHODIMP oeICalEventImpl::GetRecurCount(PRUint32 *aRetVal)
{
#ifdef ICAL_DEBUG_ALL
printf( "GetRecurCount()\n" );
#endif
*aRetVal = m_recurcount;
return NS_OK;
}
NS_IMETHODIMP oeICalEventImpl::SetRecurCount(PRUint32 aNewVal )
{
#ifdef ICAL_DEBUG_ALL
printf( "SetRecurCount()\n" );
#endif
m_recurcount = aNewVal;
return NS_OK;
}
/* attribute string RecurUnits; */
NS_IMETHODIMP oeICalEventImpl::GetRecurUnits(char **aRetVal)
@ -1953,6 +1972,7 @@ bool oeICalEventImpl::ParseIcalComponent( icalcomponent *comp )
m_recurend->m_datetime.is_date = false;
m_recurend->m_datetime.is_utc = false;
m_recurinterval = recur.interval;
m_recurcount = recur.count;
if( !icaltime_is_null_time( recur.until ) )
m_recurforever = false;
if( recur.freq == ICAL_DAILY_RECURRENCE ) {
@ -2253,7 +2273,7 @@ icalcomponent* oeICalEventImpl::AsIcalComponent()
recur.interval = interval;
recur.until.is_utc = false;
recur.until.is_date = true;
if( m_recurforever ) {
if( m_recurforever && m_recurcount == 0 ) {
recur.until.year = 0;
recur.until.month = 0;
recur.until.day = 0;
@ -2261,12 +2281,16 @@ icalcomponent* oeICalEventImpl::AsIcalComponent()
recur.until.minute = 0;
recur.until.second = 0;
} else {
recur.until.year = m_recurend->m_datetime.year;
recur.until.month = m_recurend->m_datetime.month;
recur.until.day = m_recurend->m_datetime.day;
recur.until.hour = 23;
recur.until.minute = 59;
recur.until.second = 59;
if( m_recurcount == 0 ) {
recur.until.year = m_recurend->m_datetime.year;
recur.until.month = m_recurend->m_datetime.month;
recur.until.day = m_recurend->m_datetime.day;
recur.until.hour = 23;
recur.until.minute = 59;
recur.until.second = 59;
} else {
recur.count = m_recurcount;
}
}
switch ( recurtype ) {

Просмотреть файл

@ -136,6 +136,7 @@ private:
char *m_inviteemail;
short m_recurtype;
unsigned long m_recurinterval;
unsigned long m_recurcount;
bool m_recur;
bool m_recurforever;
char *m_recurunits;

Просмотреть файл

@ -2310,6 +2310,16 @@ NS_IMETHODIMP oeICalFilter::SetRecurInterval(PRUint32 aNewVal )
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalFilter::GetRecurCount(PRUint32 *aRetVal)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalFilter::SetRecurCount(PRUint32 aNewVal )
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP oeICalFilter::GetRecurUnits(char **aRetVal)
{
return NS_ERROR_NOT_IMPLEMENTED;

Просмотреть файл

@ -111,6 +111,7 @@ interface oeIICalEvent : nsISupports
attribute string alarmEmailAddress;
attribute string inviteEmailAddress;
attribute unsigned long recurInterval;
attribute unsigned long recurCount;
readonly attribute oeIDateTime recurEnd;
attribute boolean recur;
attribute string recurUnits;