summaryrefslogtreecommitdiff
path: root/core/pim/todo/templatedialogimpl.cpp
Unidiff
Diffstat (limited to 'core/pim/todo/templatedialogimpl.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/pim/todo/templatedialogimpl.cpp119
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 @@
1#include <qlistview.h>
2#include <qlineedit.h>
3
4#include "mainwindow.h"
5#include "todoeditor.h"
6#include "todotemplatemanager.h"
7#include "templatedialogimpl.h"
8
9
10using namespace Todo;
11
12namespace {
13 class TemplateListItem : public QListViewItem {
14 public:
15 TemplateListItem( QListView*,
16 const QString& name,
17 const OTodo& );
18 ~TemplateListItem();
19
20 OTodo event()const;
21 QString text()const;
22 void setText(const QString& str );
23 void setEvent( const OTodo& );
24 private:
25 QString m_name;
26 OTodo m_ev;
27 };
28
29 /* implementation */
30 TemplateListItem::TemplateListItem( QListView* view,
31 const QString& text,
32 const OTodo& ev )
33 : QListViewItem( view ), m_name( text ), m_ev( ev )
34 {
35 QListViewItem::setText(0, m_name );
36 }
37 TemplateListItem::~TemplateListItem() {}
38 OTodo TemplateListItem::event() const {
39 return m_ev;
40 }
41 QString TemplateListItem::text()const {
42 return m_name;
43 }
44 void TemplateListItem::setText( const QString& str ) {
45 QListViewItem::setText(0, str );
46 m_name = str;
47 }
48 void TemplateListItem::setEvent( const OTodo& ev) {
49 m_ev = ev;
50 }
51}
52
53TemplateDialogImpl::TemplateDialogImpl( MainWindow* win,
54 TemplateManager* man )
55 : TemplateDialog( win ), m_win( win), m_man( man )
56{
57 /* fill the listview */
58 /* not the fastest way.... */
59 QStringList list = man->templates();
60 for (QStringList::Iterator it = list.begin();
61 it != list.end(); ++it ) {
62 new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) );
63 }
64 listView()->addColumn( tr("Name") );
65
66 connect( listView(), SIGNAL(clicked(QListViewItem*) ),
67 this, SLOT(slotClicked(QListViewItem*) ) );
68}
69TemplateDialogImpl::~TemplateDialogImpl() {
70
71}
72void TemplateDialogImpl::slotAdd() {
73 QString str = tr("New Template %1").arg( listView()->childCount() );
74 OTodo ev;
75 m_man->addEvent(str, ev);
76 new TemplateListItem( listView(), str, ev );
77}
78void TemplateDialogImpl::slotRemove() {
79 TemplateListItem* item = (TemplateListItem*) listView()->currentItem();
80 listView()->takeItem( item );
81
82 m_man->removeEvent( item->text() );
83
84 delete item;
85}
86void TemplateDialogImpl::slotEdit() {
87 TemplateListItem* item = (TemplateListItem*)listView()->currentItem();
88 OTodo ev = m_win->currentEditor()->edit( m_win, item->event() );
89 if ( m_win->currentEditor()->accepted() ) {
90 qWarning("accepted");
91 item->setEvent( ev );
92 qWarning("Priority %d", ev.priority() );
93 m_man->removeEvent( item->text() );
94 m_man->addEvent( item->text(), ev );
95 }
96}
97/*
98 * we need to update
99 * the text
100 */
101
102void TemplateDialogImpl::slotReturn() {
103 TemplateListItem* tbl = (TemplateListItem*)listView()->currentItem();
104
105 if (tbl->text() != edit()->text() ) {
106 m_man->removeEvent( tbl->text() );
107 tbl->setText( edit()->text() );
108 m_man->addEvent( tbl->text(), tbl->event() );
109 }
110}
111/* update the lineedit when changing */
112void TemplateDialogImpl::slotClicked( QListViewItem* item) {
113 if (!item)
114 return;
115
116 TemplateListItem* tbl = (TemplateListItem*)item;
117 edit()->setText( tbl->text() );
118}
119