summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index da1edea..9c10ba6 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2127,782 +2127,784 @@ void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
2127} 2127}
2128 2128
2129// most of the changeEventDisplays() right now just call the view's 2129// most of the changeEventDisplays() right now just call the view's
2130// total update mode, but they SHOULD be recoded to be more refresh-efficient. 2130// total update mode, but they SHOULD be recoded to be more refresh-efficient.
2131void CalendarView::changeEventDisplay(Event *which, int action) 2131void CalendarView::changeEventDisplay(Event *which, int action)
2132{ 2132{
2133 // kdDebug() << "CalendarView::changeEventDisplay" << endl; 2133 // kdDebug() << "CalendarView::changeEventDisplay" << endl;
2134 changeIncidenceDisplay((Incidence *)which, action); 2134 changeIncidenceDisplay((Incidence *)which, action);
2135 mDateNavigator->updateView(); 2135 mDateNavigator->updateView();
2136 //mDialogManager->updateSearchDialog(); 2136 //mDialogManager->updateSearchDialog();
2137 2137
2138 if (which) { 2138 if (which) {
2139 // If there is an event view visible update the display 2139 // If there is an event view visible update the display
2140 mViewManager->currentView()->changeEventDisplay(which,action); 2140 mViewManager->currentView()->changeEventDisplay(which,action);
2141 // TODO: check, if update needed 2141 // TODO: check, if update needed
2142 // if (which->getTodoStatus()) { 2142 // if (which->getTodoStatus()) {
2143 mTodoList->updateView(); 2143 mTodoList->updateView();
2144 // } 2144 // }
2145 } else { 2145 } else {
2146 mViewManager->currentView()->updateView(); 2146 mViewManager->currentView()->updateView();
2147 } 2147 }
2148} 2148}
2149 2149
2150 2150
2151void CalendarView::updateTodoViews() 2151void CalendarView::updateTodoViews()
2152{ 2152{
2153 2153
2154 mTodoList->updateView(); 2154 mTodoList->updateView();
2155 mViewManager->currentView()->updateView(); 2155 mViewManager->currentView()->updateView();
2156 2156
2157} 2157}
2158 2158
2159 2159
2160void CalendarView::updateView(const QDate &start, const QDate &end) 2160void CalendarView::updateView(const QDate &start, const QDate &end)
2161{ 2161{
2162 mTodoList->updateView(); 2162 mTodoList->updateView();
2163 mViewManager->updateView(start, end); 2163 mViewManager->updateView(start, end);
2164 //mDateNavigator->updateView(); 2164 //mDateNavigator->updateView();
2165} 2165}
2166 2166
2167void CalendarView::updateView() 2167void CalendarView::updateView()
2168{ 2168{
2169 DateList tmpList = mNavigator->selectedDates(); 2169 DateList tmpList = mNavigator->selectedDates();
2170 2170
2171 // We assume that the navigator only selects consecutive days. 2171 // We assume that the navigator only selects consecutive days.
2172 updateView( tmpList.first(), tmpList.last() ); 2172 updateView( tmpList.first(), tmpList.last() );
2173 if ( KOPrefs::instance()->mHideNonStartedTodos ) 2173 if ( KOPrefs::instance()->mHideNonStartedTodos )
2174 mTodoList->updateView(); 2174 mTodoList->updateView();
2175} 2175}
2176 2176
2177void CalendarView::updateUnmanagedViews() 2177void CalendarView::updateUnmanagedViews()
2178{ 2178{
2179 mDateNavigator->updateDayMatrix(); 2179 mDateNavigator->updateDayMatrix();
2180} 2180}
2181 2181
2182int CalendarView::msgItemDelete() 2182int CalendarView::msgItemDelete()
2183{ 2183{
2184 return KMessageBox::warningContinueCancel(this, 2184 return KMessageBox::warningContinueCancel(this,
2185 i18n("This item will be\npermanently deleted."), 2185 i18n("This item will be\npermanently deleted."),
2186 i18n("KO/Pi Confirmation"),i18n("Delete")); 2186 i18n("KO/Pi Confirmation"),i18n("Delete"));
2187} 2187}
2188 2188
2189 2189
2190void CalendarView::edit_cut() 2190void CalendarView::edit_cut()
2191{ 2191{
2192 Event *anEvent=0; 2192 Event *anEvent=0;
2193 2193
2194 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2194 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2195 2195
2196 if (mViewManager->currentView()->isEventView()) { 2196 if (mViewManager->currentView()->isEventView()) {
2197 if ( incidence && incidence->type() == "Event" ) { 2197 if ( incidence && incidence->type() == "Event" ) {
2198 anEvent = static_cast<Event *>(incidence); 2198 anEvent = static_cast<Event *>(incidence);
2199 } 2199 }
2200 } 2200 }
2201 2201
2202 if (!anEvent) { 2202 if (!anEvent) {
2203 KNotifyClient::beep(); 2203 KNotifyClient::beep();
2204 return; 2204 return;
2205 } 2205 }
2206 DndFactory factory( mCalendar ); 2206 DndFactory factory( mCalendar );
2207 factory.cutEvent(anEvent); 2207 factory.cutEvent(anEvent);
2208 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2208 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2209} 2209}
2210 2210
2211void CalendarView::edit_copy() 2211void CalendarView::edit_copy()
2212{ 2212{
2213 Event *anEvent=0; 2213 Event *anEvent=0;
2214 2214
2215 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2215 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2216 2216
2217 if (mViewManager->currentView()->isEventView()) { 2217 if (mViewManager->currentView()->isEventView()) {
2218 if ( incidence && incidence->type() == "Event" ) { 2218 if ( incidence && incidence->type() == "Event" ) {
2219 anEvent = static_cast<Event *>(incidence); 2219 anEvent = static_cast<Event *>(incidence);
2220 } 2220 }
2221 } 2221 }
2222 2222
2223 if (!anEvent) { 2223 if (!anEvent) {
2224 KNotifyClient::beep(); 2224 KNotifyClient::beep();
2225 return; 2225 return;
2226 } 2226 }
2227 DndFactory factory( mCalendar ); 2227 DndFactory factory( mCalendar );
2228 factory.copyEvent(anEvent); 2228 factory.copyEvent(anEvent);
2229} 2229}
2230 2230
2231void CalendarView::edit_paste() 2231void CalendarView::edit_paste()
2232{ 2232{
2233 QDate date = mNavigator->selectedDates().first(); 2233 QDate date = mNavigator->selectedDates().first();
2234 2234
2235 DndFactory factory( mCalendar ); 2235 DndFactory factory( mCalendar );
2236 Event *pastedEvent = factory.pasteEvent( date ); 2236 Event *pastedEvent = factory.pasteEvent( date );
2237 2237
2238 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED ); 2238 changeEventDisplay( pastedEvent, KOGlobals::EVENTADDED );
2239} 2239}
2240 2240
2241void CalendarView::edit_options() 2241void CalendarView::edit_options()
2242{ 2242{
2243 mDialogManager->showOptionsDialog(); 2243 mDialogManager->showOptionsDialog();
2244 //writeSettings(); 2244 //writeSettings();
2245} 2245}
2246 2246
2247 2247
2248void CalendarView::slotSelectPickerDate( QDate d) 2248void CalendarView::slotSelectPickerDate( QDate d)
2249{ 2249{
2250 mDateFrame->hide(); 2250 mDateFrame->hide();
2251 if ( mDatePickerMode == 1 ) { 2251 if ( mDatePickerMode == 1 ) {
2252 mNavigator->slotDaySelect( d ); 2252 mNavigator->slotDaySelect( d );
2253 } else if ( mDatePickerMode == 2 ) { 2253 } else if ( mDatePickerMode == 2 ) {
2254 if ( mMoveIncidence->type() == "Todo" ) { 2254 if ( mMoveIncidence->type() == "Todo" ) {
2255 Todo * to = (Todo *) mMoveIncidence; 2255 Todo * to = (Todo *) mMoveIncidence;
2256 QTime tim; 2256 QTime tim;
2257 if ( to->hasDueDate() ) 2257 if ( to->hasDueDate() )
2258 tim = to->dtDue().time(); 2258 tim = to->dtDue().time();
2259 else { 2259 else {
2260 tim = QTime ( 0,0,0 ); 2260 tim = QTime ( 0,0,0 );
2261 to->setFloats( true ); 2261 to->setFloats( true );
2262 to->setHasDueDate( true ); 2262 to->setHasDueDate( true );
2263 } 2263 }
2264 QDateTime dt ( d,tim ); 2264 QDateTime dt ( d,tim );
2265 to->setDtDue( dt ); 2265 to->setDtDue( dt );
2266 todoChanged( to ); 2266 todoChanged( to );
2267 } else { 2267 } else {
2268 if ( mMoveIncidence->doesRecur() ) { 2268 if ( mMoveIncidence->doesRecur() ) {
2269#if 0 2269#if 0
2270 // PENDING implement this 2270 // PENDING implement this
2271 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate ); 2271 Incidence* newInc = mMoveIncidence->recreateCloneException( mMoveIncidenceOldDate );
2272 mCalendar()->addIncidence( newInc ); 2272 mCalendar()->addIncidence( newInc );
2273 if ( mMoveIncidence->type() == "Todo" ) 2273 if ( mMoveIncidence->type() == "Todo" )
2274 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED ); 2274 emit todoMoved((Todo*)mMoveIncidence, KOGlobals::EVENTEDITED );
2275 else 2275 else
2276 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED); 2276 emit incidenceChanged(mMoveIncidence, KOGlobals::EVENTEDITED);
2277 mMoveIncidence = newInc; 2277 mMoveIncidence = newInc;
2278 2278
2279#endif 2279#endif
2280 } 2280 }
2281 QTime tim = mMoveIncidence->dtStart().time(); 2281 QTime tim = mMoveIncidence->dtStart().time();
2282 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd()); 2282 int secs = mMoveIncidence->dtStart().secsTo( mMoveIncidence->dtEnd());
2283 QDateTime dt ( d,tim ); 2283 QDateTime dt ( d,tim );
2284 mMoveIncidence->setDtStart( dt ); 2284 mMoveIncidence->setDtStart( dt );
2285 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) ); 2285 ((Event*)mMoveIncidence)->setDtEnd( dt.addSecs( secs ) );
2286 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED); 2286 changeEventDisplay((Event*)mMoveIncidence, KOGlobals::EVENTEDITED);
2287 } 2287 }
2288 2288
2289 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 ); 2289 mMoveIncidence->setRevision( mMoveIncidence->revision()+1 );
2290 } 2290 }
2291} 2291}
2292 2292
2293void CalendarView::removeCategories() 2293void CalendarView::removeCategories()
2294{ 2294{
2295 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2295 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2296 QStringList catList = KOPrefs::instance()->mCustomCategories; 2296 QStringList catList = KOPrefs::instance()->mCustomCategories;
2297 QStringList catIncList; 2297 QStringList catIncList;
2298 QStringList newCatList; 2298 QStringList newCatList;
2299 Incidence* inc = incList.first(); 2299 Incidence* inc = incList.first();
2300 int i; 2300 int i;
2301 int count = 0; 2301 int count = 0;
2302 while ( inc ) { 2302 while ( inc ) {
2303 newCatList.clear(); 2303 newCatList.clear();
2304 catIncList = inc->categories() ; 2304 catIncList = inc->categories() ;
2305 for( i = 0; i< catIncList.count(); ++i ) { 2305 for( i = 0; i< catIncList.count(); ++i ) {
2306 if ( catList.contains (catIncList[i])) 2306 if ( catList.contains (catIncList[i]))
2307 newCatList.append( catIncList[i] ); 2307 newCatList.append( catIncList[i] );
2308 } 2308 }
2309 newCatList.sort(); 2309 newCatList.sort();
2310 inc->setCategories( newCatList.join(",") ); 2310 inc->setCategories( newCatList.join(",") );
2311 inc = incList.next(); 2311 inc = incList.next();
2312 } 2312 }
2313} 2313}
2314 2314
2315int CalendarView::addCategories() 2315int CalendarView::addCategories()
2316{ 2316{
2317 QPtrList<Incidence> incList = mCalendar->rawIncidences(); 2317 QPtrList<Incidence> incList = mCalendar->rawIncidences();
2318 QStringList catList = KOPrefs::instance()->mCustomCategories; 2318 QStringList catList = KOPrefs::instance()->mCustomCategories;
2319 QStringList catIncList; 2319 QStringList catIncList;
2320 Incidence* inc = incList.first(); 2320 Incidence* inc = incList.first();
2321 int i; 2321 int i;
2322 int count = 0; 2322 int count = 0;
2323 while ( inc ) { 2323 while ( inc ) {
2324 catIncList = inc->categories() ; 2324 catIncList = inc->categories() ;
2325 for( i = 0; i< catIncList.count(); ++i ) { 2325 for( i = 0; i< catIncList.count(); ++i ) {
2326 if ( !catList.contains (catIncList[i])) { 2326 if ( !catList.contains (catIncList[i])) {
2327 catList.append( catIncList[i] ); 2327 catList.append( catIncList[i] );
2328 //qDebug("add cat %s ", catIncList[i].latin1()); 2328 //qDebug("add cat %s ", catIncList[i].latin1());
2329 ++count; 2329 ++count;
2330 } 2330 }
2331 } 2331 }
2332 inc = incList.next(); 2332 inc = incList.next();
2333 } 2333 }
2334 catList.sort(); 2334 catList.sort();
2335 KOPrefs::instance()->mCustomCategories = catList; 2335 KOPrefs::instance()->mCustomCategories = catList;
2336 return count; 2336 return count;
2337} 2337}
2338 2338
2339void CalendarView::manageCategories() 2339void CalendarView::manageCategories()
2340{ 2340{
2341 KOCatPrefs* cp = new KOCatPrefs(); 2341 KOCatPrefs* cp = new KOCatPrefs();
2342 cp->show(); 2342 cp->show();
2343 int w =cp->sizeHint().width() ; 2343 int w =cp->sizeHint().width() ;
2344 int h = cp->sizeHint().height() ; 2344 int h = cp->sizeHint().height() ;
2345 int dw = QApplication::desktop()->width(); 2345 int dw = QApplication::desktop()->width();
2346 int dh = QApplication::desktop()->height(); 2346 int dh = QApplication::desktop()->height();
2347 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2347 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2348 if ( !cp->exec() ) { 2348 if ( !cp->exec() ) {
2349 delete cp; 2349 delete cp;
2350 return; 2350 return;
2351 } 2351 }
2352 int count = 0; 2352 int count = 0;
2353 if ( cp->addCat() ) { 2353 if ( cp->addCat() ) {
2354 count = addCategories(); 2354 count = addCategories();
2355 if ( count ) { 2355 if ( count ) {
2356 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! ")); 2356 topLevelWidget()->setCaption(QString::number( count )+ i18n(" Categories added to list! "));
2357 writeSettings(); 2357 writeSettings();
2358 } else 2358 } else
2359 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! ")); 2359 topLevelWidget()->setCaption(QString::number( 0 )+ i18n(" Categories added to list! "));
2360 } else { 2360 } else {
2361 removeCategories(); 2361 removeCategories();
2362 updateView(); 2362 updateView();
2363 } 2363 }
2364 delete cp; 2364 delete cp;
2365} 2365}
2366 2366
2367void CalendarView::beamIncidence(Incidence * Inc) 2367void CalendarView::beamIncidence(Incidence * Inc)
2368{ 2368{
2369 QPtrList<Incidence> delSel ; 2369 QPtrList<Incidence> delSel ;
2370 delSel.append(Inc); 2370 delSel.append(Inc);
2371 beamIncidenceList( delSel ); 2371 beamIncidenceList( delSel );
2372} 2372}
2373void CalendarView::beamCalendar() 2373void CalendarView::beamCalendar()
2374{ 2374{
2375 QPtrList<Incidence> delSel = mCalendar->rawIncidences(); 2375 QPtrList<Incidence> delSel = mCalendar->rawIncidences();
2376 //qDebug("beamCalendar() "); 2376 //qDebug("beamCalendar() ");
2377 beamIncidenceList( delSel ); 2377 beamIncidenceList( delSel );
2378} 2378}
2379void CalendarView::beamFilteredCalendar() 2379void CalendarView::beamFilteredCalendar()
2380{ 2380{
2381 QPtrList<Incidence> delSel = mCalendar->incidences(); 2381 QPtrList<Incidence> delSel = mCalendar->incidences();
2382 //qDebug("beamFilteredCalendar() "); 2382 //qDebug("beamFilteredCalendar() ");
2383 beamIncidenceList( delSel ); 2383 beamIncidenceList( delSel );
2384} 2384}
2385void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) 2385void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel )
2386{ 2386{
2387 if ( beamDialog->exec () == QDialog::Rejected ) 2387 if ( beamDialog->exec () == QDialog::Rejected )
2388 return; 2388 return;
2389#ifdef DESKTOP_VERSION 2389#ifdef DESKTOP_VERSION
2390 QString fn = locateLocal( "tmp", "kopibeamfile" ); 2390 QString fn = locateLocal( "tmp", "kopibeamfile" );
2391#else 2391#else
2392 QString fn = "/tmp/kopibeamfile"; 2392 QString fn = "/tmp/kopibeamfile";
2393#endif 2393#endif
2394 QString mes; 2394 QString mes;
2395 bool createbup = true; 2395 bool createbup = true;
2396 if ( createbup ) { 2396 if ( createbup ) {
2397 QString description = "\n"; 2397 QString description = "\n";
2398 CalendarLocal* cal = new CalendarLocal(); 2398 CalendarLocal* cal = new CalendarLocal();
2399 if ( beamDialog->beamLocal() ) 2399 if ( beamDialog->beamLocal() )
2400 cal->setLocalTime(); 2400 cal->setLocalTime();
2401 else 2401 else
2402 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId); 2402 cal->setTimeZoneId(KPimGlobalPrefs::instance()->mTimeZoneId);
2403 Incidence *incidence = delSel.first(); 2403 Incidence *incidence = delSel.first();
2404 bool addText = false; 2404 bool addText = false;
2405 if ( delSel.count() < 10 ) 2405 if ( delSel.count() < 10 )
2406 addText = true; 2406 addText = true;
2407 else { 2407 else {
2408 description.sprintf(i18n(" %d items?"),delSel.count() ); 2408 description.sprintf(i18n(" %d items?"),delSel.count() );
2409 } 2409 }
2410 while ( incidence ) { 2410 while ( incidence ) {
2411 Incidence *in = incidence->clone(); 2411 Incidence *in = incidence->clone();
2412 if ( ! in->summary().isEmpty() ) { 2412 if ( ! in->summary().isEmpty() ) {
2413 in->setDescription(""); 2413 in->setDescription("");
2414 } else { 2414 } else {
2415 in->setSummary( in->description().left(20)); 2415 in->setSummary( in->description().left(20));
2416 in->setDescription(""); 2416 in->setDescription("");
2417 } 2417 }
2418 if ( addText ) 2418 if ( addText )
2419 description += in->summary() + "\n"; 2419 description += in->summary() + "\n";
2420 cal->addIncidence( in ); 2420 cal->addIncidence( in );
2421 incidence = delSel.next(); 2421 incidence = delSel.next();
2422 } 2422 }
2423 if ( beamDialog->beamVcal() ) { 2423 if ( beamDialog->beamVcal() ) {
2424 fn += ".vcs"; 2424 fn += ".vcs";
2425 FileStorage storage( cal, fn, new VCalFormat ); 2425 FileStorage storage( cal, fn, new VCalFormat );
2426 storage.save(); 2426 storage.save();
2427 } else { 2427 } else {
2428 fn += ".ics"; 2428 fn += ".ics";
2429 FileStorage storage( cal, fn, new ICalFormat( ) ); 2429 FileStorage storage( cal, fn, new ICalFormat( ) );
2430 storage.save(); 2430 storage.save();
2431 } 2431 }
2432 delete cal; 2432 delete cal;
2433 mes = i18n("KO/Pi: Ready for beaming"); 2433 mes = i18n("KO/Pi: Ready for beaming");
2434 topLevelWidget()->setCaption(mes); 2434 topLevelWidget()->setCaption(mes);
2435 KApplication::convert2latin1( fn ); 2435 KApplication::convert2latin1( fn );
2436#ifndef DESKTOP_VERSION 2436#ifndef DESKTOP_VERSION
2437 Ir *ir = new Ir( this ); 2437 Ir *ir = new Ir( this );
2438 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 2438 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
2439 ir->send( fn, description, "text/x-vCalendar" ); 2439 ir->send( fn, description, "text/x-vCalendar" );
2440#endif 2440#endif
2441 } 2441 }
2442} 2442}
2443void CalendarView::beamDone( Ir *ir ) 2443void CalendarView::beamDone( Ir *ir )
2444{ 2444{
2445#ifndef DESKTOP_VERSION 2445#ifndef DESKTOP_VERSION
2446 delete ir; 2446 delete ir;
2447#endif 2447#endif
2448 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") ); 2448 topLevelWidget()->setCaption( i18n("KO/Pi: Beaming done.") );
2449 topLevelWidget()->raise(); 2449 topLevelWidget()->raise();
2450} 2450}
2451 2451
2452void CalendarView::moveIncidence(Incidence * inc ) 2452void CalendarView::moveIncidence(Incidence * inc )
2453{ 2453{
2454 if ( !inc ) return; 2454 if ( !inc ) return;
2455 // qDebug("showDatePickerForIncidence( ) "); 2455 // qDebug("showDatePickerForIncidence( ) ");
2456 if ( mDateFrame->isVisible() ) 2456 if ( mDateFrame->isVisible() )
2457 mDateFrame->hide(); 2457 mDateFrame->hide();
2458 else { 2458 else {
2459 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ; 2459 int w =mDatePicker->sizeHint().width()+2*mDateFrame->lineWidth() ;
2460 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ; 2460 int h = mDatePicker->sizeHint().height()+2*mDateFrame->lineWidth() ;
2461 int dw = QApplication::desktop()->width(); 2461 int dw = QApplication::desktop()->width();
2462 int dh = QApplication::desktop()->height(); 2462 int dh = QApplication::desktop()->height();
2463 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2463 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2464 mDateFrame->show(); 2464 mDateFrame->show();
2465 } 2465 }
2466 mDatePickerMode = 2; 2466 mDatePickerMode = 2;
2467 mMoveIncidence = inc ; 2467 mMoveIncidence = inc ;
2468 QDate da; 2468 QDate da;
2469 if ( mMoveIncidence->type() == "Todo" ) { 2469 if ( mMoveIncidence->type() == "Todo" ) {
2470 Todo * to = (Todo *) mMoveIncidence; 2470 Todo * to = (Todo *) mMoveIncidence;
2471 if ( to->hasDueDate() ) 2471 if ( to->hasDueDate() )
2472 da = to->dtDue().date(); 2472 da = to->dtDue().date();
2473 else 2473 else
2474 da = QDate::currentDate(); 2474 da = QDate::currentDate();
2475 } else { 2475 } else {
2476 da = mMoveIncidence->dtStart().date(); 2476 da = mMoveIncidence->dtStart().date();
2477 } 2477 }
2478 //PENDING set date for recurring incidence to date of recurrence 2478 //PENDING set date for recurring incidence to date of recurrence
2479 //mMoveIncidenceOldDate; 2479 //mMoveIncidenceOldDate;
2480 mDatePicker->setDate( da ); 2480 mDatePicker->setDate( da );
2481} 2481}
2482void CalendarView::showDatePicker( ) 2482void CalendarView::showDatePicker( )
2483{ 2483{
2484 //qDebug("CalendarView::showDatePicker( ) "); 2484 //qDebug("CalendarView::showDatePicker( ) ");
2485 if ( mDateFrame->isVisible() ) 2485 if ( mDateFrame->isVisible() )
2486 mDateFrame->hide(); 2486 mDateFrame->hide();
2487 else { 2487 else {
2488 int w =mDatePicker->sizeHint().width() ; 2488 int w =mDatePicker->sizeHint().width() ;
2489 int h = mDatePicker->sizeHint().height() ; 2489 int h = mDatePicker->sizeHint().height() ;
2490 int dw = QApplication::desktop()->width(); 2490 int dw = QApplication::desktop()->width();
2491 int dh = QApplication::desktop()->height(); 2491 int dh = QApplication::desktop()->height();
2492 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2492 mDateFrame->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2493 mDateFrame->show(); 2493 mDateFrame->show();
2494 } 2494 }
2495 mDatePickerMode = 1; 2495 mDatePickerMode = 1;
2496 mDatePicker->setDate( mNavigator->selectedDates().first() ); 2496 mDatePicker->setDate( mNavigator->selectedDates().first() );
2497} 2497}
2498 2498
2499void CalendarView::showEventEditor() 2499void CalendarView::showEventEditor()
2500{ 2500{
2501#ifdef DESKTOP_VERSION 2501#ifdef DESKTOP_VERSION
2502 mEventEditor->show(); 2502 mEventEditor->show();
2503#else 2503#else
2504 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) { 2504 if ( mEventEditor->width() < QApplication::desktop()->width() -60 || mEventEditor->width() > QApplication::desktop()->width() ) {
2505 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2505 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2506 qDebug("CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() ); 2506 qDebug("CalendarView: recreate mEventEditor %d %d", mEventEditor->width(), QApplication::desktop()->width() );
2507 delete mEventEditor; 2507 delete mEventEditor;
2508 mEventEditor = mDialogManager->getEventEditor(); 2508 mEventEditor = mDialogManager->getEventEditor();
2509 } 2509 }
2510 mEventEditor->showMaximized(); 2510 mEventEditor->showMaximized();
2511 topLevelWidget()->setCaption( i18n("") );
2511#endif 2512#endif
2512} 2513}
2513void CalendarView::showTodoEditor() 2514void CalendarView::showTodoEditor()
2514{ 2515{
2515#ifdef DESKTOP_VERSION 2516#ifdef DESKTOP_VERSION
2516 mTodoEditor->show(); 2517 mTodoEditor->show();
2517#else 2518#else
2518 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) { 2519 if ( mTodoEditor->width() < QApplication::desktop()->width() -60|| mTodoEditor->width() > QApplication::desktop()->width() ) {
2519 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") ); 2520 topLevelWidget()->setCaption( i18n("Recreating edit dialog. Please wait...") );
2520 qDebug("CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() ); 2521 qDebug("CalendarView: recreate mTodoEditor %d %d ", mTodoEditor->width() ,QApplication::desktop()->width() );
2521 delete mTodoEditor; 2522 delete mTodoEditor;
2522 mTodoEditor = mDialogManager->getTodoEditor(); 2523 mTodoEditor = mDialogManager->getTodoEditor();
2523 } 2524 }
2524 mTodoEditor->showMaximized(); 2525 mTodoEditor->showMaximized();
2526 topLevelWidget()->setCaption( i18n("") );
2525#endif 2527#endif
2526} 2528}
2527 2529
2528void CalendarView::cloneIncidence() 2530void CalendarView::cloneIncidence()
2529{ 2531{
2530 Incidence *incidence = currentSelection(); 2532 Incidence *incidence = currentSelection();
2531 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2533 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2532 if ( incidence ) { 2534 if ( incidence ) {
2533 cloneIncidence(incidence); 2535 cloneIncidence(incidence);
2534 } 2536 }
2535} 2537}
2536void CalendarView::moveIncidence() 2538void CalendarView::moveIncidence()
2537{ 2539{
2538 Incidence *incidence = currentSelection(); 2540 Incidence *incidence = currentSelection();
2539 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2541 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2540 if ( incidence ) { 2542 if ( incidence ) {
2541 moveIncidence(incidence); 2543 moveIncidence(incidence);
2542 } 2544 }
2543} 2545}
2544void CalendarView::beamIncidence() 2546void CalendarView::beamIncidence()
2545{ 2547{
2546 Incidence *incidence = currentSelection(); 2548 Incidence *incidence = currentSelection();
2547 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2549 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2548 if ( incidence ) { 2550 if ( incidence ) {
2549 beamIncidence(incidence); 2551 beamIncidence(incidence);
2550 } 2552 }
2551} 2553}
2552void CalendarView::toggleCancelIncidence() 2554void CalendarView::toggleCancelIncidence()
2553{ 2555{
2554 Incidence *incidence = currentSelection(); 2556 Incidence *incidence = currentSelection();
2555 if ( !incidence ) incidence = mTodoList->selectedIncidences().first(); 2557 if ( !incidence ) incidence = mTodoList->selectedIncidences().first();
2556 if ( incidence ) { 2558 if ( incidence ) {
2557 cancelIncidence(incidence); 2559 cancelIncidence(incidence);
2558 } 2560 }
2559} 2561}
2560 2562
2561 2563
2562void CalendarView::cancelIncidence(Incidence * inc ) 2564void CalendarView::cancelIncidence(Incidence * inc )
2563{ 2565{
2564 inc->setCancelled( ! inc->cancelled() ); 2566 inc->setCancelled( ! inc->cancelled() );
2565 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED ); 2567 changeIncidenceDisplay( inc,KOGlobals::EVENTEDITED );
2566 updateView(); 2568 updateView();
2567} 2569}
2568void CalendarView::cloneIncidence(Incidence * orgInc ) 2570void CalendarView::cloneIncidence(Incidence * orgInc )
2569{ 2571{
2570 Incidence * newInc = orgInc->clone(); 2572 Incidence * newInc = orgInc->clone();
2571 newInc->recreate(); 2573 newInc->recreate();
2572 2574
2573 if ( newInc->type() == "Todo" ) { 2575 if ( newInc->type() == "Todo" ) {
2574 Todo* t = (Todo*) newInc; 2576 Todo* t = (Todo*) newInc;
2575 showTodoEditor(); 2577 showTodoEditor();
2576 mTodoEditor->editTodo( t ); 2578 mTodoEditor->editTodo( t );
2577 if ( mTodoEditor->exec() ) { 2579 if ( mTodoEditor->exec() ) {
2578 mCalendar->addTodo( t ); 2580 mCalendar->addTodo( t );
2579 updateView(); 2581 updateView();
2580 } else { 2582 } else {
2581 delete t; 2583 delete t;
2582 } 2584 }
2583 } 2585 }
2584 else { 2586 else {
2585 Event* e = (Event*) newInc; 2587 Event* e = (Event*) newInc;
2586 showEventEditor(); 2588 showEventEditor();
2587 mEventEditor->editEvent( e ); 2589 mEventEditor->editEvent( e );
2588 if ( mEventEditor->exec() ) { 2590 if ( mEventEditor->exec() ) {
2589 mCalendar->addEvent( e ); 2591 mCalendar->addEvent( e );
2590 updateView(); 2592 updateView();
2591 } else { 2593 } else {
2592 delete e; 2594 delete e;
2593 } 2595 }
2594 } 2596 }
2595} 2597}
2596 2598
2597void CalendarView::newEvent() 2599void CalendarView::newEvent()
2598{ 2600{
2599 // TODO: Replace this code by a common eventDurationHint of KOBaseView. 2601 // TODO: Replace this code by a common eventDurationHint of KOBaseView.
2600 KOAgendaView *aView = mViewManager->agendaView(); 2602 KOAgendaView *aView = mViewManager->agendaView();
2601 if (aView) { 2603 if (aView) {
2602 if (aView->selectionStart().isValid()) { 2604 if (aView->selectionStart().isValid()) {
2603 if (aView->selectedIsAllDay()) { 2605 if (aView->selectedIsAllDay()) {
2604 newEvent(aView->selectionStart(),aView->selectionEnd(),true); 2606 newEvent(aView->selectionStart(),aView->selectionEnd(),true);
2605 } else { 2607 } else {
2606 newEvent(aView->selectionStart(),aView->selectionEnd()); 2608 newEvent(aView->selectionStart(),aView->selectionEnd());
2607 } 2609 }
2608 return; 2610 return;
2609 } 2611 }
2610 } 2612 }
2611 2613
2612 QDate date = mNavigator->selectedDates().first(); 2614 QDate date = mNavigator->selectedDates().first();
2613 QDateTime current = QDateTime::currentDateTime(); 2615 QDateTime current = QDateTime::currentDateTime();
2614 if ( date <= current.date() ) { 2616 if ( date <= current.date() ) {
2615 int hour = current.time().hour() +1; 2617 int hour = current.time().hour() +1;
2616 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ), 2618 newEvent( QDateTime( current.date(), QTime( hour, 0, 0 ) ),
2617 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2619 QDateTime( current.date(), QTime( hour+ KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2618 } else 2620 } else
2619 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ), 2621 newEvent( QDateTime( date, QTime( KOPrefs::instance()->mStartTime, 0, 0 ) ),
2620 QDateTime( date, QTime( KOPrefs::instance()->mStartTime + 2622 QDateTime( date, QTime( KOPrefs::instance()->mStartTime +
2621 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) ); 2623 KOPrefs::instance()->mDefaultDuration, 0, 0 ) ) );
2622} 2624}
2623 2625
2624void CalendarView::newEvent(QDateTime fh) 2626void CalendarView::newEvent(QDateTime fh)
2625{ 2627{
2626 newEvent(fh, 2628 newEvent(fh,
2627 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration))); 2629 QDateTime(fh.addSecs(3600*KOPrefs::instance()->mDefaultDuration)));
2628} 2630}
2629 2631
2630void CalendarView::newEvent(QDate dt) 2632void CalendarView::newEvent(QDate dt)
2631{ 2633{
2632 newEvent(QDateTime(dt, QTime(0,0,0)), 2634 newEvent(QDateTime(dt, QTime(0,0,0)),
2633 QDateTime(dt, QTime(0,0,0)), true); 2635 QDateTime(dt, QTime(0,0,0)), true);
2634} 2636}
2635 2637
2636void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay) 2638void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay)
2637{ 2639{
2638 2640
2639 showEventEditor(); 2641 showEventEditor();
2640 mEventEditor->newEvent(fromHint,toHint,allDay); 2642 mEventEditor->newEvent(fromHint,toHint,allDay);
2641 if ( mFilterView->filtersEnabled() ) { 2643 if ( mFilterView->filtersEnabled() ) {
2642 CalFilter *filter = mFilterView->selectedFilter(); 2644 CalFilter *filter = mFilterView->selectedFilter();
2643 if (filter && filter->showCategories()) { 2645 if (filter && filter->showCategories()) {
2644 mEventEditor->setCategories(filter->categoryList().join(",") ); 2646 mEventEditor->setCategories(filter->categoryList().join(",") );
2645 } 2647 }
2646 if ( filter ) 2648 if ( filter )
2647 mEventEditor->setSecrecy( filter->getSecrecy() ); 2649 mEventEditor->setSecrecy( filter->getSecrecy() );
2648 } 2650 }
2649} 2651}
2650void CalendarView::todoAdded(Todo * t) 2652void CalendarView::todoAdded(Todo * t)
2651{ 2653{
2652 2654
2653 changeTodoDisplay ( t ,KOGlobals::EVENTADDED); 2655 changeTodoDisplay ( t ,KOGlobals::EVENTADDED);
2654 updateTodoViews(); 2656 updateTodoViews();
2655} 2657}
2656void CalendarView::todoChanged(Todo * t) 2658void CalendarView::todoChanged(Todo * t)
2657{ 2659{
2658 emit todoModified( t, 4 ); 2660 emit todoModified( t, 4 );
2659 // updateTodoViews(); 2661 // updateTodoViews();
2660} 2662}
2661void CalendarView::todoToBeDeleted(Todo *) 2663void CalendarView::todoToBeDeleted(Todo *)
2662{ 2664{
2663 //qDebug("todoToBeDeleted(Todo *) "); 2665 //qDebug("todoToBeDeleted(Todo *) ");
2664 updateTodoViews(); 2666 updateTodoViews();
2665} 2667}
2666void CalendarView::todoDeleted() 2668void CalendarView::todoDeleted()
2667{ 2669{
2668 //qDebug(" todoDeleted()"); 2670 //qDebug(" todoDeleted()");
2669 updateTodoViews(); 2671 updateTodoViews();
2670} 2672}
2671 2673
2672 2674
2673 2675
2674void CalendarView::newTodo() 2676void CalendarView::newTodo()
2675{ 2677{
2676 2678
2677 showTodoEditor(); 2679 showTodoEditor();
2678 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true); 2680 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true);
2679 if ( mFilterView->filtersEnabled() ) { 2681 if ( mFilterView->filtersEnabled() ) {
2680 CalFilter *filter = mFilterView->selectedFilter(); 2682 CalFilter *filter = mFilterView->selectedFilter();
2681 if (filter && filter->showCategories()) { 2683 if (filter && filter->showCategories()) {
2682 mTodoEditor->setCategories(filter->categoryList().join(",") ); 2684 mTodoEditor->setCategories(filter->categoryList().join(",") );
2683 } 2685 }
2684 if ( filter ) 2686 if ( filter )
2685 mTodoEditor->setSecrecy( filter->getSecrecy() ); 2687 mTodoEditor->setSecrecy( filter->getSecrecy() );
2686 } 2688 }
2687} 2689}
2688 2690
2689void CalendarView::newSubTodo() 2691void CalendarView::newSubTodo()
2690{ 2692{
2691 Todo *todo = selectedTodo(); 2693 Todo *todo = selectedTodo();
2692 if ( todo ) newSubTodo( todo ); 2694 if ( todo ) newSubTodo( todo );
2693} 2695}
2694 2696
2695void CalendarView::newSubTodo(Todo *parentEvent) 2697void CalendarView::newSubTodo(Todo *parentEvent)
2696{ 2698{
2697 2699
2698 showTodoEditor(); 2700 showTodoEditor();
2699 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true); 2701 mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),parentEvent,true);
2700} 2702}
2701 2703
2702void CalendarView::newFloatingEvent() 2704void CalendarView::newFloatingEvent()
2703{ 2705{
2704 DateList tmpList = mNavigator->selectedDates(); 2706 DateList tmpList = mNavigator->selectedDates();
2705 QDate date = tmpList.first(); 2707 QDate date = tmpList.first();
2706 2708
2707 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), 2709 newEvent( QDateTime( date, QTime( 12, 0, 0 ) ),
2708 QDateTime( date, QTime( 12, 0, 0 ) ), true ); 2710 QDateTime( date, QTime( 12, 0, 0 ) ), true );
2709} 2711}
2710 2712
2711 2713
2712void CalendarView::editEvent( Event *event ) 2714void CalendarView::editEvent( Event *event )
2713{ 2715{
2714 2716
2715 if ( !event ) return; 2717 if ( !event ) return;
2716 if ( event->isReadOnly() ) { 2718 if ( event->isReadOnly() ) {
2717 showEvent( event ); 2719 showEvent( event );
2718 return; 2720 return;
2719 } 2721 }
2720 showEventEditor(); 2722 showEventEditor();
2721 mEventEditor->editEvent( event , mFlagEditDescription); 2723 mEventEditor->editEvent( event , mFlagEditDescription);
2722} 2724}
2723void CalendarView::editJournal( Journal *jour ) 2725void CalendarView::editJournal( Journal *jour )
2724{ 2726{
2725 if ( !jour ) return; 2727 if ( !jour ) return;
2726 mDialogManager->hideSearchDialog(); 2728 mDialogManager->hideSearchDialog();
2727 mViewManager->showJournalView(); 2729 mViewManager->showJournalView();
2728 mNavigator->slotDaySelect( jour->dtStart().date() ); 2730 mNavigator->slotDaySelect( jour->dtStart().date() );
2729} 2731}
2730void CalendarView::editTodo( Todo *todo ) 2732void CalendarView::editTodo( Todo *todo )
2731{ 2733{
2732 if ( !todo ) return; 2734 if ( !todo ) return;
2733 2735
2734 if ( todo->isReadOnly() ) { 2736 if ( todo->isReadOnly() ) {
2735 showTodo( todo ); 2737 showTodo( todo );
2736 return; 2738 return;
2737 } 2739 }
2738 showTodoEditor(); 2740 showTodoEditor();
2739 mTodoEditor->editTodo( todo ,mFlagEditDescription); 2741 mTodoEditor->editTodo( todo ,mFlagEditDescription);
2740 2742
2741} 2743}
2742 2744
2743KOEventViewerDialog* CalendarView::getEventViewerDialog() 2745KOEventViewerDialog* CalendarView::getEventViewerDialog()
2744{ 2746{
2745 if ( !mEventViewerDialog ) { 2747 if ( !mEventViewerDialog ) {
2746 mEventViewerDialog = new KOEventViewerDialog(this); 2748 mEventViewerDialog = new KOEventViewerDialog(this);
2747 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) ); 2749 connect( mEventViewerDialog, SIGNAL( editIncidence( Incidence* )), this, SLOT(editIncidence( Incidence* ) ) );
2748 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig())); 2750 connect( this, SIGNAL(configChanged()), mEventViewerDialog, SLOT(updateConfig()));
2749 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)), 2751 connect( mEventViewerDialog, SIGNAL(jumpToTime( const QDate &)),
2750 dateNavigator(), SLOT( selectWeek( const QDate & ) ) ); 2752 dateNavigator(), SLOT( selectWeek( const QDate & ) ) );
2751 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ), 2753 connect( mEventViewerDialog, SIGNAL(showAgendaView( bool ) ),
2752 viewManager(), SLOT( showAgendaView( bool ) ) ); 2754 viewManager(), SLOT( showAgendaView( bool ) ) );
2753 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ), 2755 connect( mEventViewerDialog, SIGNAL( todoCompleted(Todo *) ),
2754 this, SLOT( todoChanged(Todo *) ) ); 2756 this, SLOT( todoChanged(Todo *) ) );
2755 mEventViewerDialog->resize( 640, 480 ); 2757 mEventViewerDialog->resize( 640, 480 );
2756 2758
2757 } 2759 }
2758 return mEventViewerDialog; 2760 return mEventViewerDialog;
2759} 2761}
2760void CalendarView::showEvent(Event *event) 2762void CalendarView::showEvent(Event *event)
2761{ 2763{
2762 getEventViewerDialog()->setEvent(event); 2764 getEventViewerDialog()->setEvent(event);
2763 getEventViewerDialog()->showMe(); 2765 getEventViewerDialog()->showMe();
2764} 2766}
2765 2767
2766void CalendarView::showTodo(Todo *event) 2768void CalendarView::showTodo(Todo *event)
2767{ 2769{
2768 getEventViewerDialog()->setTodo(event); 2770 getEventViewerDialog()->setTodo(event);
2769 getEventViewerDialog()->showMe(); 2771 getEventViewerDialog()->showMe();
2770} 2772}
2771void CalendarView::showJournal( Journal *jour ) 2773void CalendarView::showJournal( Journal *jour )
2772{ 2774{
2773 getEventViewerDialog()->setJournal(jour); 2775 getEventViewerDialog()->setJournal(jour);
2774 getEventViewerDialog()->showMe(); 2776 getEventViewerDialog()->showMe();
2775 2777
2776} 2778}
2777// void CalendarView::todoModified (Todo *event, int changed) 2779// void CalendarView::todoModified (Todo *event, int changed)
2778// { 2780// {
2779// // if (mDialogList.find (event) != mDialogList.end ()) { 2781// // if (mDialogList.find (event) != mDialogList.end ()) {
2780// // kdDebug() << "Todo modified and open" << endl; 2782// // kdDebug() << "Todo modified and open" << endl;
2781// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event]; 2783// // KOTodoEditor* temp = (KOTodoEditor *) mDialogList[event];
2782// // temp->modified (changed); 2784// // temp->modified (changed);
2783 2785
2784// // } 2786// // }
2785 2787
2786// mViewManager->updateView(); 2788// mViewManager->updateView();
2787// } 2789// }
2788 2790
2789void CalendarView::appointment_show() 2791void CalendarView::appointment_show()
2790{ 2792{
2791 Event *anEvent = 0; 2793 Event *anEvent = 0;
2792 2794
2793 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2795 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2794 2796
2795 if (mViewManager->currentView()->isEventView()) { 2797 if (mViewManager->currentView()->isEventView()) {
2796 if ( incidence && incidence->type() == "Event" ) { 2798 if ( incidence && incidence->type() == "Event" ) {
2797 anEvent = static_cast<Event *>(incidence); 2799 anEvent = static_cast<Event *>(incidence);
2798 } 2800 }
2799 } 2801 }
2800 2802
2801 if (!anEvent) { 2803 if (!anEvent) {
2802 KNotifyClient::beep(); 2804 KNotifyClient::beep();
2803 return; 2805 return;
2804 } 2806 }
2805 2807
2806 showEvent(anEvent); 2808 showEvent(anEvent);
2807} 2809}
2808 2810
2809void CalendarView::appointment_edit() 2811void CalendarView::appointment_edit()
2810{ 2812{
2811 Event *anEvent = 0; 2813 Event *anEvent = 0;
2812 2814
2813 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2815 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2814 2816
2815 if (mViewManager->currentView()->isEventView()) { 2817 if (mViewManager->currentView()->isEventView()) {
2816 if ( incidence && incidence->type() == "Event" ) { 2818 if ( incidence && incidence->type() == "Event" ) {
2817 anEvent = static_cast<Event *>(incidence); 2819 anEvent = static_cast<Event *>(incidence);
2818 } 2820 }
2819 } 2821 }
2820 2822
2821 if (!anEvent) { 2823 if (!anEvent) {
2822 KNotifyClient::beep(); 2824 KNotifyClient::beep();
2823 return; 2825 return;
2824 } 2826 }
2825 2827
2826 editEvent(anEvent); 2828 editEvent(anEvent);
2827} 2829}
2828 2830
2829void CalendarView::appointment_delete() 2831void CalendarView::appointment_delete()
2830{ 2832{
2831 Event *anEvent = 0; 2833 Event *anEvent = 0;
2832 2834
2833 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first(); 2835 Incidence *incidence = mViewManager->currentView()->selectedIncidences().first();
2834 2836
2835 if (mViewManager->currentView()->isEventView()) { 2837 if (mViewManager->currentView()->isEventView()) {
2836 if ( incidence && incidence->type() == "Event" ) { 2838 if ( incidence && incidence->type() == "Event" ) {
2837 anEvent = static_cast<Event *>(incidence); 2839 anEvent = static_cast<Event *>(incidence);
2838 } 2840 }
2839 } 2841 }
2840 2842
2841 if (!anEvent) { 2843 if (!anEvent) {
2842 KNotifyClient::beep(); 2844 KNotifyClient::beep();
2843 return; 2845 return;
2844 } 2846 }
2845 2847
2846 deleteEvent(anEvent); 2848 deleteEvent(anEvent);
2847} 2849}
2848 2850
2849void CalendarView::todo_resub( Todo * parent, Todo * sub ) 2851void CalendarView::todo_resub( Todo * parent, Todo * sub )
2850{ 2852{
2851 if (!sub) return; 2853 if (!sub) return;
2852 if (!parent) return; 2854 if (!parent) return;
2853 if ( sub->relatedTo() ) 2855 if ( sub->relatedTo() )
2854 sub->relatedTo()->removeRelation(sub); 2856 sub->relatedTo()->removeRelation(sub);
2855 sub->setRelatedTo(parent); 2857 sub->setRelatedTo(parent);
2856 sub->setRelatedToUid(parent->uid()); 2858 sub->setRelatedToUid(parent->uid());
2857 parent->addRelation(sub); 2859 parent->addRelation(sub);
2858 sub->updated(); 2860 sub->updated();
2859 parent->updated(); 2861 parent->updated();
2860 setModified(true); 2862 setModified(true);
2861 updateView(); 2863 updateView();
2862} 2864}
2863void CalendarView::todo_unsub(Todo *anTodo ) 2865void CalendarView::todo_unsub(Todo *anTodo )
2864{ 2866{
2865 // Todo *anTodo = selectedTodo(); 2867 // Todo *anTodo = selectedTodo();
2866 if (!anTodo) return; 2868 if (!anTodo) return;
2867 if (!anTodo->relatedTo()) return; 2869 if (!anTodo->relatedTo()) return;
2868 anTodo->relatedTo()->removeRelation(anTodo); 2870 anTodo->relatedTo()->removeRelation(anTodo);
2869 anTodo->setRelatedTo(0); 2871 anTodo->setRelatedTo(0);
2870 anTodo->updated(); 2872 anTodo->updated();
2871 anTodo->setRelatedToUid(""); 2873 anTodo->setRelatedToUid("");
2872 setModified(true); 2874 setModified(true);
2873 updateView(); 2875 updateView();
2874} 2876}
2875 2877
2876void CalendarView::deleteTodo(Todo *todo) 2878void CalendarView::deleteTodo(Todo *todo)
2877{ 2879{
2878 if (!todo) { 2880 if (!todo) {
2879 KNotifyClient::beep(); 2881 KNotifyClient::beep();
2880 return; 2882 return;
2881 } 2883 }
2882 if (KOPrefs::instance()->mConfirm) { 2884 if (KOPrefs::instance()->mConfirm) {
2883 switch (msgItemDelete()) { 2885 switch (msgItemDelete()) {
2884 case KMessageBox::Continue: // OK 2886 case KMessageBox::Continue: // OK
2885 if (!todo->relations().isEmpty()) { 2887 if (!todo->relations().isEmpty()) {
2886 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2888 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2887 i18n("Delete To-Do")); 2889 i18n("Delete To-Do"));
2888 } else { 2890 } else {
2889 checkExternalId( todo ); 2891 checkExternalId( todo );
2890 calendar()->deleteTodo(todo); 2892 calendar()->deleteTodo(todo);
2891 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2893 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2892 updateView(); 2894 updateView();
2893 } 2895 }
2894 break; 2896 break;
2895 } // switch 2897 } // switch
2896 } else { 2898 } else {
2897 if (!todo->relations().isEmpty()) { 2899 if (!todo->relations().isEmpty()) {
2898 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2900 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2899 i18n("Delete To-Do")); 2901 i18n("Delete To-Do"));
2900 } else { 2902 } else {
2901 checkExternalId( todo ); 2903 checkExternalId( todo );
2902 mCalendar->deleteTodo(todo); 2904 mCalendar->deleteTodo(todo);
2903 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2905 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2904 updateView(); 2906 updateView();
2905 } 2907 }
2906 } 2908 }
2907 emit updateSearchDialog(); 2909 emit updateSearchDialog();
2908} 2910}