summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp50
1 files changed, 29 insertions, 21 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index b6ee16f..19a6675 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -276,45 +276,53 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
276 config.writeEntry( "ShowComplete", showCompleted() ); 276 config.writeEntry( "ShowComplete", showCompleted() );
277 config.writeEntry( "Category", currentCategory() ); 277 config.writeEntry( "Category", currentCategory() );
278 config.writeEntry( "ShowDeadLine", showDeadline()); 278 config.writeEntry( "ShowDeadLine", showDeadline());
279 config.writeEntry( "ShowOverDue", showOverDue() ); 279 config.writeEntry( "ShowOverDue", showOverDue() );
280 config.writeEntry( "ShowQuickTask", showQuickTask() ); 280 config.writeEntry( "ShowQuickTask", showQuickTask() );
281 /* save templates */ 281 /* save templates */
282 templateManager()->save(); 282 templateManager()->save();
283 e->accept(); 283 e->accept();
284 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) ); 284 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) );
285 } 285 }
286} 286}
287void MainWindow::slotItemNew() { 287void MainWindow::slotItemNew() {
288 NewTaskDlg dlg( templateManager()->templates(), this ); 288 QStringList templateList = templateManager()->templates();
289 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ) { 289 if(templateList.isEmpty()) {
290 QString tempName = dlg.tempSelected(); 290 // No templates, just create a blank task
291 if ( tempName.isNull() ) 291 create();
292 // Create new, blank task 292 }
293 create(); 293 else {
294 else { 294 // There are templates, so allow the user to select one
295 // Create new task from the template selected 295 NewTaskDlg dlg( templateList, this );
296 OPimTodo event = templateManager()->templateEvent( tempName ); 296 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ) {
297 event = currentEditor()->edit( this, event ); 297 QString tempName = dlg.tempSelected();
298 if ( currentEditor()->accepted() ) { 298 if ( tempName.isNull() )
299 event.setUid( 1 ); 299 // Create new, blank task
300 handleAlarms( OPimTodo(), event ); 300 create();
301 m_todoMgr.add( event ); 301 else {
302 currentView()->addEvent( event ); 302 // Create new task from the template selected
303 303 OPimTodo event = templateManager()->templateEvent( tempName );
304 reloadCategories(); 304 event = currentEditor()->edit( this, event );
305 } 305 if ( currentEditor()->accepted() ) {
306 raiseCurrentView(); 306 event.setUid( 1 );
307 } 307 handleAlarms( OPimTodo(), event );
308 } 308 m_todoMgr.add( event );
309 currentView()->addEvent( event );
310
311 reloadCategories();
312 }
313 raiseCurrentView();
314 }
315 }
316 }
309} 317}
310void MainWindow::slotItemEdit() { 318void MainWindow::slotItemEdit() {
311 slotEdit( currentView()->current() ); 319 slotEdit( currentView()->current() );
312} 320}
313void MainWindow::slotItemDuplicate() { 321void MainWindow::slotItemDuplicate() {
314 if(m_syncing) { 322 if(m_syncing) {
315 QMessageBox::warning(this, QWidget::tr("Todo"), 323 QMessageBox::warning(this, QWidget::tr("Todo"),
316 QWidget::tr("Data can not be edited, currently syncing")); 324 QWidget::tr("Data can not be edited, currently syncing"));
317 return; 325 return;
318 } 326 }
319 OPimTodo ev = m_todoMgr.event( currentView()->current() ); 327 OPimTodo ev = m_todoMgr.event( currentView()->current() );
320 /* let's generate a new uid */ 328 /* let's generate a new uid */