37 #include <kdatetime.h>
40 #include <QtCore/QRegExp>
41 #include <QtCore/QList>
49 int korg = productId.indexOf(
"KOrganizer" );
50 int outl9 = productId.indexOf(
"Outlook 9.0" );
54 int versionStart = productId.indexOf(
" ", korg );
55 if ( versionStart >= 0 ) {
56 int versionStop = productId.indexOf( QRegExp(
"[ /]" ), versionStart + 1 );
57 if ( versionStop >= 0 ) {
58 QString version = productId.mid( versionStart + 1,
59 versionStop - versionStart - 1 );
61 int versionNum = version.section(
'.', 0, 0 ).toInt() * 10000 +
62 version.section(
'.', 1, 1 ).toInt() * 100 +
63 version.section(
'.', 2, 2 ).toInt();
64 int releaseStop = productId.indexOf(
"/", versionStop );
66 if ( releaseStop > versionStop ) {
67 release = productId.mid( versionStop+1, releaseStop-versionStop-1 );
69 if ( versionNum < 30100 ) {
71 }
else if ( versionNum < 30200 ) {
73 }
else if ( versionNum == 30200 && release ==
"pre" ) {
74 kDebug() <<
"Generating compat for KOrganizer 3.2 pre";
75 compat =
new Compat32PrereleaseVersions;
76 }
else if ( versionNum < 30400 ) {
77 compat =
new CompatPre34;
78 }
else if ( versionNum < 30500 ) {
83 }
else if ( outl9 >= 0 ) {
84 kDebug() <<
"Generating compat for Outlook < 2000 (Outlook 9.0)";
102 QString oldDescription = incidence->
description().trimmed();
103 QString newSummary( oldDescription );
104 newSummary.remove( QRegExp(
"\n.*" ) );
106 if ( oldDescription == newSummary ) {
119 Q_UNUSED( incidence );
128 KDateTime start( incidence->
dtStart() );
131 if ( r && !r->dateMatchesRules( start ) ) {
132 recurrence->addExDateTime( start );
140 int CompatPre34::fixPriority(
int priority )
142 if ( 0 < priority && priority < 6 ) {
144 return 2 * priority - 1;
162 endDate = endDate.addDays( 1 );
172 r = recur->defaultRRule();
176 if ( duration > 0 ) {
182 QDate end( r->
startDt().date() );
183 bool doNothing =
false;
185 int tmp = ( duration - 1 ) * r->
frequency();
186 switch ( r->recurrenceType() ) {
187 case RecurrenceRule::rWeekly:
189 end = end.addDays( tmp * 7 + 7 - end.dayOfWeek() );
192 case RecurrenceRule::rMonthly:
194 int month = end.month() - 1 + tmp;
195 end.setYMD( end.year() + month / 12, month % 12 + 1, 31 );
198 case RecurrenceRule::rYearly:
200 end.setYMD( end.year() + tmp, 12, 31 );
209 KDateTime( end, QTime( 0, 0, 0 ), incidence->
dtStart().timeSpec() ) );
217 QList<int> days = r->byYearDays();
218 if ( !days.isEmpty() ) {
219 QList<int> months = r->byMonths();
220 for (
int i = 0; i < months.size(); ++i ) {
222 QDate( r->
startDt().date().year(), 1, 1 ).addDays( months.at( i ) - 1 ).month();
223 if ( !months.contains( newmonth ) ) {
224 months.append( newmonth );
228 r->setByMonths( months );
230 r->setByYearDays( days );
241 Alarm::List::Iterator it;
242 for ( it = alarms.begin(); it != alarms.end(); ++it ) {