author | zecke <zecke> | 2002-10-07 11:39:30 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-07 11:39:30 (UTC) |
commit | f11d4bda64b58abfebf77485d5d77143a10dc8c9 (patch) (side-by-side diff) | |
tree | a4e80550c4abe867303553de608316941dd943f1 /core/pim/todo/templatedialogimpl.cpp | |
parent | c2cd5470fa3ec69394fa65ad16ab29a6cadab56f (diff) | |
download | opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.zip opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.tar.gz opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.tar.bz2 |
Re add files
for todo
Diffstat (limited to 'core/pim/todo/templatedialogimpl.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/todo/templatedialogimpl.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/core/pim/todo/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp new file mode 100644 index 0000000..77c5363 --- a/dev/null +++ b/core/pim/todo/templatedialogimpl.cpp @@ -0,0 +1,119 @@ +#include <qlistview.h> +#include <qlineedit.h> + +#include "mainwindow.h" +#include "todoeditor.h" +#include "todotemplatemanager.h" +#include "templatedialogimpl.h" + + +using namespace Todo; + +namespace { + class TemplateListItem : public QListViewItem { + public: + TemplateListItem( QListView*, + const QString& name, + const OTodo& ); + ~TemplateListItem(); + + OTodo event()const; + QString text()const; + void setText(const QString& str ); + void setEvent( const OTodo& ); + private: + QString m_name; + OTodo m_ev; + }; + + /* implementation */ + TemplateListItem::TemplateListItem( QListView* view, + const QString& text, + const OTodo& ev ) + : QListViewItem( view ), m_name( text ), m_ev( ev ) + { + QListViewItem::setText(0, m_name ); + } + TemplateListItem::~TemplateListItem() {} + OTodo TemplateListItem::event() const { + return m_ev; + } + QString TemplateListItem::text()const { + return m_name; + } + void TemplateListItem::setText( const QString& str ) { + QListViewItem::setText(0, str ); + m_name = str; + } + 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( tr("Name") ); + + connect( listView(), SIGNAL(clicked(QListViewItem*) ), + this, SLOT(slotClicked(QListViewItem*) ) ); +} +TemplateDialogImpl::~TemplateDialogImpl() { + +} +void TemplateDialogImpl::slotAdd() { + QString str = 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(); + listView()->takeItem( item ); + + m_man->removeEvent( item->text() ); + + delete item; +} +void TemplateDialogImpl::slotEdit() { + TemplateListItem* item = (TemplateListItem*)listView()->currentItem(); + OTodo ev = m_win->currentEditor()->edit( m_win, item->event() ); + if ( m_win->currentEditor()->accepted() ) { + qWarning("accepted"); + item->setEvent( ev ); + qWarning("Priority %d", ev.priority() ); + 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 (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 = (TemplateListItem*)item; + edit()->setText( tbl->text() ); +} + |