-rw-r--r-- | core/pim/todo/templatedialogimpl.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/pim/todo/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp index c2306ac..63d8107 100644 --- a/core/pim/todo/templatedialogimpl.cpp +++ b/core/pim/todo/templatedialogimpl.cpp @@ -48,71 +48,80 @@ namespace { } void TemplateListItem::setEvent( const OTodo& ev) { m_ev = ev; } } TemplateDialogImpl::TemplateDialogImpl( MainWindow* win, TemplateManager* man ) : TemplateDialog( win ), m_win( win), m_man( man ) { /* fill the listview */ /* not the fastest way.... */ QStringList list = man->templates(); for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) ); } listView()->addColumn( QWidget::tr("Name") ); connect( listView(), SIGNAL(clicked(QListViewItem*) ), this, SLOT(slotClicked(QListViewItem*) ) ); } TemplateDialogImpl::~TemplateDialogImpl() { } void TemplateDialogImpl::slotAdd() { QString str = QWidget::tr("New Template %1").arg( listView()->childCount() ); OTodo ev; m_man->addEvent(str, ev); new TemplateListItem( listView(), str, ev ); } void TemplateDialogImpl::slotRemove() { - TemplateListItem* item = (TemplateListItem*) listView()->currentItem(); + if (!listView()->currentItem() ) + return; + + TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); listView()->takeItem( item ); m_man->removeEvent( item->text() ); delete item; } void TemplateDialogImpl::slotEdit() { - TemplateListItem* item = (TemplateListItem*)listView()->currentItem(); + if ( !listView()->currentItem() ) + return; + + TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); OTodo ev = m_win->currentEditor()->edit( m_win, item->event() ); if ( m_win->currentEditor()->accepted() ) { item->setEvent( ev ); m_man->removeEvent( item->text() ); m_man->addEvent( item->text(), ev ); } } /* * we need to update * the text */ void TemplateDialogImpl::slotReturn() { - TemplateListItem* tbl = (TemplateListItem*)listView()->currentItem(); + if ( !listView()->currentItem() ) + return; + + TemplateListItem* tbl = static_cast<TemplateListItem*>( listView()->currentItem() ); if (tbl->text() != edit()->text() ) { m_man->removeEvent( tbl->text() ); tbl->setText( edit()->text() ); m_man->addEvent( tbl->text(), tbl->event() ); } } /* update the lineedit when changing */ void TemplateDialogImpl::slotClicked( QListViewItem* item) { if (!item) return; TemplateListItem* tbl = static_cast<TemplateListItem*>(item); edit()->setText( tbl->text() ); } |