summaryrefslogtreecommitdiffabout
path: root/korganizer/koimportoldialog.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/koimportoldialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koimportoldialog.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/korganizer/koimportoldialog.cpp b/korganizer/koimportoldialog.cpp
index 2af436c..79b97e8 100644
--- a/korganizer/koimportoldialog.cpp
+++ b/korganizer/koimportoldialog.cpp
@@ -206,132 +206,132 @@ void KOImportOLdialog::readCalendarData( DWORD folder )
LPDISPATCH dispItem = (LPDISPATCH)folder;
dispItem->AddRef();
MAPIFolder mf(dispItem);
mf.m_lpDispatch->AddRef();
_Items folderItems;
_variant_t indx((long)0);
LPDISPATCH itm;
int i;
folderItems = mf.GetItems();
QProgressDialog bar( i18n("Importing calendar data"),i18n("Abort"), folderItems.GetCount(),this );
bar.setCaption (i18n("Importing!") );
int h = bar.sizeHint().height() ;
int w = 300;
int dw = QApplication::desktop()->width();
int dh = QApplication::desktop()->height();
//bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
bar.show();
for(i=1; i <= folderItems.GetCount(); ++i)
{
qApp->processEvents();
if ( ! bar.isVisible() )
return ;
bar.setProgress( i );
bar.raise();
indx = (long)i;
itm = folderItems.Item(indx.Detach());
_AppointmentItem * pItem = (_AppointmentItem *)&itm;
ol2kopiCalendar( pItem );
itm->Release();
}
}
void KOImportOLdialog::slotOk()
{
QDialog::accept();
}
void KOImportOLdialog::ol2kopiCalendar( _AppointmentItem * aItem, bool computeRecurrence )
{
KCal::Event* event = new KCal::Event();
if ( aItem->GetAllDayEvent() ){
event->setDtStart( QDateTime( mDdate2Qdtr( aItem->GetStart()).date(),QTime(0,0,0 ) ));
event->setDtEnd( QDateTime( mDdate2Qdtr( aItem->GetEnd()) .date(),QTime(0,0,0 )).addDays(-1));
event->setFloats( true );
} else {
event->setDtStart( mDdate2Qdtr( aItem->GetStart()) );
event->setDtEnd( mDdate2Qdtr( aItem->GetEnd()) );
event->setFloats( false );
}
- event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()) );
- event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()) );
- event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()).replace( QRegExp("\\r"), "") );
+ event->setSummary( QString::fromUcs2( aItem->GetSubject().GetBuffer()).stripWhiteSpace() );
+ event->setLocation( QString::fromUcs2( aItem->GetLocation().GetBuffer()).stripWhiteSpace() );
+ event->setDescription( QString::fromUcs2( aItem->GetBody().GetBuffer()).replace( QRegExp("\\r"), "").stripWhiteSpace() );
QString cat = QString::fromUcs2( aItem->GetCategories().GetBuffer()).replace( QRegExp("; "), ";");
event->setCategories( QStringList::split( ";", cat ) );
if ( aItem->GetReminderSet() ) {
event->clearAlarms();
Alarm* alarm = event->newAlarm();
alarm->setStartOffset( -aItem->GetReminderMinutesBeforeStart()*60 );
alarm->setEnabled( true );
if ( aItem->GetReminderPlaySound() ) {
alarm->setType( Alarm::Audio );
alarm->setAudioFile( QString::fromUcs2( aItem->GetReminderSoundFile().GetBuffer()));
}
else
alarm->setType( Alarm::Display );
alarm->setRepeatCount( aItem->GetReplyTime() );
}
// OL :pub 0 - pers 1 - priv 2 - conf 3
// KO : pub 0 - priv 1 - conf 2
int sec = aItem->GetSensitivity() ;
if ( sec > 1 )// mapping pers -> private
--sec;
event->setSecrecy( sec );
if ( aItem->GetBusyStatus() == 0 )
event->setTransparency( Event::Transparent);// OL free
else
event->setTransparency( Event::Opaque);//OL all other
if ( aItem->GetIsRecurring() && computeRecurrence ) { //recur
RecurrencePattern recpat = aItem->GetRecurrencePattern();
QDate startDate = mDdate2Qdtr(recpat.GetPatternStartDate()).date();
int freq = recpat.GetInterval();
-
+ if ( freq == 0 ) freq = 1;
bool hasEndDate = !recpat.GetNoEndDate();
QDate endDate = mDdate2Qdtr(recpat.GetPatternEndDate()).date();
QBitArray weekDays( 7 );
weekDays.fill(false );
uint weekDaysNum = recpat.GetDayOfWeekMask();
int i;
int bb = 2;
for( i = 1; i <= 6; ++i ) {
weekDays.setBit( i - 1, ( bb & weekDaysNum ));
bb = 4 << (i-1);
//qDebug(" %d bit %d ",i-1,weekDays.at(i-1) );
}
if ( 1 & weekDaysNum)
weekDays.setBit( 6 );
// int pos = 1;// pending
Recurrence *r = event->recurrence();
int rtype = recpat.GetRecurrenceType();
//recurrence types are:
/*
olRecursDaily(0)
olRecursWeekly(1)
olRecursMonthly(2)
olRecursMonthNth(3)
olRecursYearly(5)
olRecursYearNth(6)
*/
int duration = recpat.GetOccurrences();
if ( !hasEndDate )
duration = -1;
//LPDISPATCH RecurrencePattern::GetExceptions()
//long RecurrencePattern::GetMonthOfYear()
if ( rtype == 0 ) {
if ( hasEndDate ) r->setDaily( freq, endDate );
else r->setDaily( freq, duration );
} else if ( rtype == 1 ) {
if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate );
else r->setWeekly( freq, weekDays, duration );
} else if ( rtype == 2 ) {
if ( hasEndDate )
r->setMonthly( Recurrence::rMonthlyDay, freq, endDate );
else
r->setMonthly( Recurrence::rMonthlyDay, freq, duration );
//r->addMonthlyDay( startDate.day() );
r->addMonthlyDay( recpat.GetDayOfMonth() );
} else if ( rtype == 3 ) {