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
@@ -256,85 +256,93 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
256 }else { 256 }else {
257 if ( QMessageBox::critical( this, QWidget::tr("Out of space"), 257 if ( QMessageBox::critical( this, QWidget::tr("Out of space"),
258 QWidget::tr("Todo was unable\n" 258 QWidget::tr("Todo was unable\n"
259 "to save your changes.\n" 259 "to save your changes.\n"
260 "Free up some space\n" 260 "Free up some space\n"
261 "and try again.\n" 261 "and try again.\n"
262 "\nQuit Anyway?"), 262 "\nQuit Anyway?"),
263 QMessageBox::Yes|QMessageBox::Escape, 263 QMessageBox::Yes|QMessageBox::Escape,
264 QMessageBox::No|QMessageBox::Default) 264 QMessageBox::No|QMessageBox::Default)
265 != QMessageBox::No ) { 265 != QMessageBox::No ) {
266 e->accept(); 266 e->accept();
267 quit = true; 267 quit = true;
268 }else 268 }else
269 e->ignore(); 269 e->ignore();
270 270
271 } 271 }
272 272
273 if (quit ) { 273 if (quit ) {
274 Config config( "todo" ); 274 Config config( "todo" );
275 config.setGroup( "View" ); 275 config.setGroup( "View" );
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 */
321 ev.setUid(1); 329 ev.setUid(1);
322 m_todoMgr.add( ev ); 330 m_todoMgr.add( ev );
323 331
324 currentView()->addEvent( ev ); 332 currentView()->addEvent( ev );
325 raiseCurrentView(); 333 raiseCurrentView();
326} 334}
327void MainWindow::slotItemDelete() { 335void MainWindow::slotItemDelete() {
328 if (!currentView()->current() ) 336 if (!currentView()->current() )
329 return; 337 return;
330 338
331 if(m_syncing) { 339 if(m_syncing) {
332 QMessageBox::warning(this, QWidget::tr("Todo"), 340 QMessageBox::warning(this, QWidget::tr("Todo"),
333 QWidget::tr("Data can not be edited, currently syncing")); 341 QWidget::tr("Data can not be edited, currently syncing"));
334 return; 342 return;
335 } 343 }
336 QString strName = currentView()->currentRepresentation(); 344 QString strName = currentView()->currentRepresentation();
337 if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) ) 345 if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) )
338 return; 346 return;
339 347
340 handleAlarms( m_todoMgr.event( currentView()->current() ), OPimTodo() ); 348 handleAlarms( m_todoMgr.event( currentView()->current() ), OPimTodo() );