From 114c5c468032a08205b2d8b7da3966bff6d47875 Mon Sep 17 00:00:00 2001
From: drw <drw>
Date: Sun, 30 Jan 2005 00:32:33 +0000
Subject: Convert Todo to use new OPimMainWindow functionality, plus some other code clean-ups

---
(limited to 'core')

diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index 9424c23..75da27c 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -1,25 +1,25 @@
 /*
-� � � � � � � �=.            This file is part of the OPIE Project
-� � � � � � �.=l.            Copyright (c)  2002 <>
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This program is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or  modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This program is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful,  but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU
-..}^=.= � � � = � � � ;      Library General Public License for more
-++= � -. � � .` � � .:       details.
-�: � � = �...= . :.=-
-�-. � .:....=;==+<;          You should have received a copy of the GNU
-� -_. . . � )=. �=           General Public License along with
-� � -- � � � �:-=`           this library; see the file COPYING.LIB.
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 <>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
                              If not, write to the Free Software Foundation,
                              Inc., 59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
@@ -42,21 +42,23 @@
 #include <qpe/alarmserver.h>
 #include <qpe/qpeapplication.h>
 
+#include <qaction.h>
+#include <qlayout.h>
 #include <qmenubar.h>
 #include <qmessagebox.h>
 #include <qpushbutton.h>
-#include <qaction.h>
+#include <qstringlist.h>
 #include <qtimer.h>
-#include <qlayout.h>
 #include <qwhatsthis.h>
 
 #include "quickeditimpl.h"
 #include "todotemplatemanager.h"
-#include "templateeditor.h"
+#include "templatedialogimpl.h"
 #include "tableview.h"
 
 #include "textviewshow.h"
 #include "todoeditor.h"
+#include "newtaskdlg.h"
 #include "mainwindow.h"
 
 using Opie::Core::OApplicationFactory;
@@ -67,7 +69,8 @@ using namespace Todo;
 
 MainWindow::MainWindow( QWidget* parent,
                         const char* name, WFlags )
-    : Opie::OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
+    : Opie::OPimMainWindow( "Todolist", tr( "Todo List" ), "Todo List", tr( "Task" ), "todo",
+                            parent, name, WType_TopLevel | WStyle_ContextHelp )
 {
     if (!name)
         setName("todo window");
@@ -78,176 +81,78 @@ MainWindow::MainWindow( QWidget* parent,
     m_tempManager = new TemplateManager();
     m_tempManager->load();
 
-    initUI();
     initConfig();
+    initUI();
     initViews();
     initActions();
     initEditor();
     initShow();
-    initTemplate();
 
-    populateTemplates();
     raiseCurrentView();
-    QTimer::singleShot(0, this, SLOT(populateCategories() ) );
+    QTimer::singleShot( 0, this, SLOT(initStuff()) );
 }
-void MainWindow::initTemplate() {
-    m_curTempEd = new TemplateEditor( this, templateManager() );
+void MainWindow::initStuff() {   
+    m_todoMgr.load();
+    setViewCategory( m_curCat );
+    setCategory( m_curCat );
 }
 void MainWindow::initActions() {
-
-    // Data menu
-    m_edit->insertItem(QWidget::tr("New from template"), m_template,
-                       -1, 0 );
-
-    QAction* a = new QAction( QWidget::tr("New Task" ), Resource::loadPixmap( "new" ),
-                              QString::null, 0, this, 0 );
-    connect(a, SIGNAL( activated() ),
-            this, SLOT( slotNew() ) );
-    a->setWhatsThis( QWidget::tr( "Click here to create a new task." ) );
-    a->addTo(m_tool );
-    a->addTo(m_edit );
-
-    a = new QAction( QWidget::tr("Edit Task"), Resource::loadIconSet( "edit" ),
-                     QString::null, 0, this, 0 );
-    connect(a, SIGNAL(activated() ),
-            this, SLOT( slotEdit() ) );
-    a->setWhatsThis( QWidget::tr( "Click here to modify the current task." ) );
-    a->addTo( m_tool );
-    a->addTo( m_edit );
-    m_editAction = a;
-
-    a = new QAction( QString::null, QWidget::tr("View Task"), 0, this, 0 );
-    connect(a, SIGNAL( activated() ),
-            this, SLOT( slotShowDetails() ) );
-    a->addTo( m_edit );
-
-    m_edit->insertSeparator();
-
-    a = new QAction( QWidget::tr("Delete..."),  Resource::loadIconSet( "trash" ),
-                     QString::null, 0, this, 0 );
-    connect(a, SIGNAL(activated() ),
-            this, SLOT(slotDelete() ) );
-    a->setWhatsThis( QWidget::tr( "Click here to remove the current task." ) );
-    a->addTo( m_tool );
-    a->addTo( m_edit );
-    m_deleteAction = a;
-
-    a = new QAction( QString::null, QWidget::tr("Delete all..."), 0, this, 0 );
-    connect(a, SIGNAL( activated() ),
-            this, SLOT( slotDeleteAll() ) );
-    a->addTo(m_edit );
-    m_deleteAllAction = a;
-
-    a = new QAction( QString::null, QWidget::tr("Delete completed"),
-                     0, this, 0 );
-    connect(a, SIGNAL( activated() ),
-            this, SLOT( slotDeleteCompleted() ) );
-    a->addTo(m_edit );
-    a->setEnabled( TRUE );
-    m_deleteCompleteAction = a;
-
-    m_edit->insertSeparator();
-
-    a = new QAction( QString::null, QWidget::tr("Duplicate"), 0, this, 0 );
-    connect(a, SIGNAL( activated() ),
-            this, SLOT( slotDuplicate() ) );
-    a->addTo(m_edit );
-    m_duplicateAction = a;
-
-    m_edit->insertSeparator();
-
-    if ( Ir::supported() ) {
-        a = new QAction( QWidget::tr( "Beam" ), Resource::loadPixmap( "beam" ), QString::null, 0, this, 0 );
-        connect( a, SIGNAL( activated() ), this, SLOT( slotBeam() ) );
-        a->setWhatsThis( QWidget::tr( "Click here to send the current task to another device." ) );
-        a->addTo( m_edit );
-        a->addTo( m_tool );
-    }
-
-#if 0
-    // Options menu
-    a = new QAction( QWidget::tr("Find"), Resource::loadIconSet( "mag" ),
-                     QString::null, 0, this, 0 );
-    connect(a, SIGNAL( activated() ), this, SLOT( slotFind() ) );
-    a->addTo( m_options );
-    m_findAction = a;
-
-
-    m_options->insertSeparator();
-#endif
-
+    // Insert Task menu items
+    QActionGroup *items = new QActionGroup( this, QString::null, false );
+    
+    m_deleteCompleteAction = new QAction( QString::null, QWidget::tr( "Delete completed" ),
+                                          0, items, 0 );
+    connect( m_deleteCompleteAction, SIGNAL(activated()), this, SLOT(slotDeleteCompleted()) );
+
+    insertItemMenuItems( items );    
+
+    // Insert View menu items
+    items = new QActionGroup( this, QString::null, false );
+    
     m_completedAction = new QAction( QString::null, QWidget::tr("Show completed tasks"),
-                                     0, this, 0, TRUE );
-    m_completedAction->addTo( m_options );
+                                     0, items, 0, true );
     m_completedAction->setOn( showCompleted() );
-    connect(m_completedAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowCompleted(bool) ) );
+    connect( m_completedAction, SIGNAL(toggled(bool)), this, SLOT(slotShowCompleted(bool)) );
 
-    a = new QAction( QString::null, QWidget::tr("Show only over-due tasks"),
-                     0, this, 0, TRUE );
-    a->addTo( m_options );
+    QAction *a = new QAction( QString::null, QWidget::tr("Show only over-due tasks"),
+                              0, items, 0, true );
     a->setOn( showOverDue() );
-    connect(a, SIGNAL(toggled(bool)), this, SLOT(slotShowDue(bool) ) );
+    connect( a, SIGNAL(toggled(bool)), this, SLOT(slotShowDue(bool)) );
 
     m_showDeadLineAction = new QAction( QString::null, QWidget::tr("Show task deadlines"),
-                                        0, this, 0, TRUE );
-    m_showDeadLineAction->addTo( m_options );
+                                        0, items, 0, true );
     m_showDeadLineAction->setOn( showDeadline() );
-    connect(m_showDeadLineAction, SIGNAL(toggled(bool) ), this, SLOT( slotShowDeadLine(bool) ) );
+    connect( m_showDeadLineAction, SIGNAL(toggled(bool)), this, SLOT(slotShowDeadLine(bool)) );
 
     m_showQuickTaskAction = new QAction( QString::null, QWidget::tr("Show quick task bar"),
-                                     0, this, 0, TRUE );
-    m_showQuickTaskAction->addTo( m_options );
+                                         0, items, 0, true );
     m_showQuickTaskAction->setOn( showQuickTask() );
-    connect(m_showQuickTaskAction, SIGNAL( toggled(bool) ), this, SLOT(slotShowQuickTask(bool) ) );
-
-    m_options->insertSeparator();
-
-    m_bar->insertItem( QWidget::tr("Data") ,m_edit );
-    m_bar->insertItem( QWidget::tr("Category"),  m_catMenu );
-    m_bar->insertItem( QWidget::tr("Options"), m_options );
-
-    m_curQuick = new QuickEditImpl( this, m_quicktask );
-    addToolBar( (QToolBar *)m_curQuick->widget(), QWidget::tr( "QuickEdit" ), QMainWindow::Top, TRUE );
-    m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) );
-
+    connect( m_showQuickTaskAction, SIGNAL(toggled(bool)), this, SLOT(slotShowQuickTask(bool)) );
+    
+    insertViewMenuItems( items );
 }
 /* m_curCat from Config */
 void MainWindow::initConfig() {
     Config config( "todo" );
     config.setGroup( "View" );
-    m_completed =  config.readBoolEntry( "ShowComplete", TRUE );
-    m_curCat = config.readEntry( "Category",    QString::null );
-    m_deadline =  config.readBoolEntry( "ShowDeadLine", TRUE);
-    m_overdue = config.readBoolEntry("ShowOverDue", FALSE );
-    m_quicktask = config.readBoolEntry("ShowQuickTask", TRUE);
+    m_completed =  config.readBoolEntry( "ShowComplete", true );
+    m_curCat = config.readEntry( "Category", QString::null );
+    m_deadline =  config.readBoolEntry( "ShowDeadLine", true);
+    m_overdue = config.readBoolEntry("ShowOverDue", false );
+    m_quicktask = config.readBoolEntry("ShowQuickTask", true);
 }
 void MainWindow::initUI() {
-
+    // Create main widget stack
     m_stack = new Opie::Ui::OWidgetStack(this,  "main stack");
-
     setCentralWidget( m_stack );
-
-    setToolBarsMovable( FALSE );
-
-    QToolBar *menubarholder = new QToolBar( this );
-    menubarholder->setHorizontalStretchable( TRUE );
-    m_bar = new QMenuBar( menubarholder );
-
-    m_tool = new QToolBar( this );
-
-    /** QPopupMenu */
-    m_edit = new QPopupMenu( this );
-    m_options = new QPopupMenu( this );
-    m_catMenu = new QPopupMenu( this );
-    m_template = new QPopupMenu( this );
-
-    m_catMenu->setCheckable( TRUE );
-    m_template->setCheckable( TRUE );
-
-    connect(m_catMenu, SIGNAL(activated(int) ),
-            this, SLOT(setCategory(int) ) );
-    connect(m_template, SIGNAL(activated(int) ),
-            this, SLOT(slotNewFromTemplate(int) ) );
+    connect( this, SIGNAL(categorySelected(const QString&)),
+            this, SLOT(setCategory(const QString&)) );
+    
+    // Create quick task toolbar
+    m_curQuick = new QuickEditImpl( this, m_quicktask );
+    addToolBar( (QToolBar *)m_curQuick->widget(), QWidget::tr( "QuickEdit" ),
+                QMainWindow::Top, true );
+    m_curQuick->signal()->connect( this, SLOT(slotQuickEntered()) );
 }
 void MainWindow::initViews() {
 
@@ -275,43 +180,17 @@ MainWindow::~MainWindow() {
 void MainWindow::connectBase( ViewBase* ) {
     // once templates and signals mix we'll use it again
 }
-QPopupMenu* MainWindow::contextMenu( int , bool recur ) {
-    QPopupMenu* menu = new QPopupMenu();
-
-    m_editAction->addTo( menu );
-    m_deleteAction->addTo( menu );
-    m_duplicateAction->addTo( menu );
-
-    menu->insertSeparator();
-
-    /*
-     * if this event recurs we allow
-     * to detach it.
-     * remove all
-     */
-    if ( recur ) {
-        ; // FIXME
-    }
-
-    return menu;
-}
-QPopupMenu* MainWindow::options() {
-    return m_options;
-}
-QPopupMenu* MainWindow::edit() {
-    return m_edit;
-}
-QToolBar* MainWindow::toolbar() {
-    return m_tool;
+QPopupMenu* MainWindow::contextMenu( int , bool /*recur*/ ) {
+    return itemContextMenu();
 }
 OPimTodoAccess::List MainWindow::list()const {
     return m_todoMgr.list();
 }
 OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
     int cat = 0;
-    if ( m_curCat != QWidget::tr("All Categories") )
+    if ( m_curCat != tr( "All" ) )
         cat = currentCatId();
-    if ( m_curCat == QWidget::tr("Unfiled") )
+    if ( m_curCat == tr( "Unfiled" ) )
         cat = -1;
 
     int filter = OPimTodoAccess::FilterCategory;
@@ -320,17 +199,17 @@ OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
         filter |= OPimTodoAccess::DoNotShowCompleted;
     if (m_overdue)
         filter |= OPimTodoAccess::OnlyOverDue;
-
+    
     return m_todoMgr.sorted( asc, sortOrder, filter, cat );
 }
 OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
     int cat = 0;
-    if ( m_curCat != QWidget::tr("All Categories") )
+    if ( m_curCat != tr( "All" ) )
         cat = currentCatId();
 
-    if ( m_curCat == QWidget::tr("Unfiled") )
+    if ( m_curCat == tr( "Unfiled" ) )
         cat = -1;
-
+    
     return m_todoMgr.sorted(asc, sortOrder, addFilter,  cat );
 }
 OPimTodo MainWindow::event( int uid ) {
@@ -349,7 +228,7 @@ TodoShow* MainWindow::currentShow() {
     return m_curShow;
 }
 void MainWindow::slotReload() {
-    m_syncing = FALSE;
+    m_syncing = false;
     m_todoMgr.reload();
     currentView()->updateView( );
     raiseCurrentView();
@@ -403,46 +282,33 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
         QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) );
     }
 }
-void MainWindow::populateTemplates() {
-    m_template->clear();
-    QStringList list = templateManager()->templates();
-    QStringList::Iterator it;
-    for ( it = list.begin(); it != list.end(); ++it ) {
-        m_template->insertItem( (*it) );
-    }
-}
-/*
- * slotNewFromTemplate
- * We use the edit widget to do
- * the config but we setUid(1)
- * to get a new uid
- */
-/*
- * first we get the name of the template
- * then we will use the TemplateManager
- */
-void MainWindow::slotNewFromTemplate( int id ) {
-    QString name = m_template->text( id );
-
-    OPimTodo event = templateManager()->templateEvent( name );
-    event = currentEditor()->edit(this,
-                                  event );
-
-    if ( currentEditor()->accepted() ) {
-        /* assign new todo */
-        event.setUid( 1 );
-        handleAlarms( OPimTodo(), event );
-        m_todoMgr.add( event );
-        currentView()->addEvent( event );
-
-        populateCategories();
+void MainWindow::slotItemNew() {
+    NewTaskDlg dlg( templateManager()->templates(), this );
+    if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ) {
+        QString tempName = dlg.tempSelected();
+        if ( tempName.isNull() )
+            // Create new, blank task
+            create();
+        else {
+            // Create new task from the template selected
+            OPimTodo event = templateManager()->templateEvent( tempName );
+            event = currentEditor()->edit( this, event );
+            if ( currentEditor()->accepted() ) {
+                event.setUid( 1 );
+                handleAlarms( OPimTodo(), event );
+                m_todoMgr.add( event );
+                currentView()->addEvent( event );
+        
+                reloadCategories();
+            }
+            raiseCurrentView();
+        }
     }
-    raiseCurrentView();
 }
-void MainWindow::slotNew() {
-    create();
+void MainWindow::slotItemEdit() {
+    slotEdit( currentView()->current() );
 }
-void MainWindow::slotDuplicate() {
+void MainWindow::slotItemDuplicate() {
     if(m_syncing) {
         QMessageBox::warning(this, QWidget::tr("Todo"),
 							 QWidget::tr("Data can not be edited, currently syncing"));
@@ -456,7 +322,7 @@ void MainWindow::slotDuplicate() {
     currentView()->addEvent( ev );
     raiseCurrentView();
 }
-void MainWindow::slotDelete() {
+void MainWindow::slotItemDelete() {
     if (!currentView()->current() )
         return;
 
@@ -474,6 +340,18 @@ void MainWindow::slotDelete() {
     currentView()->removeEvent( currentView()->current() );
     raiseCurrentView();
 }
+
+static const char *beamfile = "/tmp/opie-todo.vcs";
+void MainWindow::slotItemBeam() {
+    beam( currentView()->current() );
+}
+void MainWindow::slotItemFind() {
+}
+void MainWindow::slotConfigure() {
+    TemplateDialogImpl dlg( this, m_tempManager );
+    if ( QPEApplication::execDialog( &dlg ) != QDialog::Accepted )
+        m_tempManager->load();
+}
 void MainWindow::slotDelete(int uid ) {
     if( uid == 0 ) return;
     if(m_syncing) {
@@ -520,35 +398,14 @@ void MainWindow::slotDeleteCompleted() {
     m_todoMgr.removeCompleted();
     currentView()->updateView( );
 }
-void MainWindow::slotFind() {
-
-}
-void MainWindow::slotEdit() {
-    slotEdit( currentView()->current() );
-}
 /*
  * set the category
  */
-void MainWindow::setCategory( int c) {
-    if ( c <= 0 ) return;
-
-
-    for ( unsigned int i = 1; i < m_catMenu->count(); i++ )
-        m_catMenu->setItemChecked(i, c == (int)i );
-
-    if (c == 1 ) {
+void MainWindow::setCategory( const QString &category ) {
+    m_curCat = category;
+    if ( m_curCat == tr( "All" ) )
         m_curCat = QString::null;
-        setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("All Categories" ) );
-
-    }else if ( c == (int)m_catMenu->count() - 1 ) {
-        m_curCat = QWidget::tr("Unfiled");
-        setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("Unfiled") );
-    }else {
-        m_curCat = m_todoMgr.categories()[c-2];
-        setCaption( QWidget::tr("Todo") + " - " + m_curCat );
-    }
-    m_catMenu->setItemChecked( c, true );
-
+    
     currentView()->setShowCategory( m_curCat );
     raiseCurrentView();
 }
@@ -577,11 +434,6 @@ void MainWindow::setDocument( const QString& fi) {
     else
         receiveFile(fi );
 }
-
-static const char *beamfile = "/tmp/opie-todo.vcs";
-void MainWindow::slotBeam() {
-    beam( currentView()->current() );
-}
 void MainWindow::beamDone( Ir* ir) {
     delete ir;
     ::unlink( beamfile );
@@ -610,37 +462,12 @@ void MainWindow::receiveFile( const QString& filename ) {
 }
 
 void MainWindow::slotFlush() {
-    m_syncing = TRUE;
+    m_syncing = true;
     m_todoMgr.save();
 }
 void MainWindow::slotShowDetails() {
     slotShow( currentView()->current() );
 }
-/*
- * populate the Categories
- * Menu
- */
-void MainWindow::populateCategories() {
-    m_todoMgr.load();
-
-    m_catMenu->clear();
-    int id, rememberId;
-    id = 1;
-    rememberId = 1;
-
-    m_catMenu->insertItem( QWidget::tr( "All Categories" ), id++ );
-    m_catMenu->insertSeparator();
-    QStringList categories = m_todoMgr.categories();
-    categories.append( QWidget::tr( "Unfiled" ) );
-    for ( QStringList::Iterator it = categories.begin();
-	  it != categories.end(); ++it ) {
-	m_catMenu->insertItem( *it, id );
-	if ( *it == currentCategory() )
-	    rememberId = id;
-	++id;
-    }
-    setCategory( rememberId );
-}
 bool MainWindow::showCompleted()const {
     return m_completed;
 }
@@ -709,7 +536,7 @@ void MainWindow::slotEdit( int uid ) {
         m_todoMgr.update( todo.uid(), todo );
 	currentView()->replaceEvent( todo );
         /* a Category might have changed */
-        populateCategories();
+        reloadCategories();
     }
 
     raiseCurrentView();
@@ -858,7 +685,7 @@ int MainWindow::create() {
         // I'm afraid we must call this every time now, otherwise
         // spend expensive time comparing all these strings...
         // but only call if we changed something -zecke
-        populateCategories();
+        reloadCategories();
     }
     raiseCurrentView( );
 
@@ -915,7 +742,7 @@ void MainWindow::add( const OPimRecord& rec) {
     // I'm afraid we must call this every time now, otherwise
     // spend expensive time comparing all these strings...
     // but only call if we changed something -zecke
-    populateCategories();
+    reloadCategories();
 }
 void MainWindow::slotReturnFromView() {
     m_showing = false;
@@ -1004,7 +831,7 @@ void MainWindow::doAlarm( const QDateTime& dt, int uid ) {
     if (loud)
         startAlarm();
 
-    QDialog dlg(this, 0, TRUE );
+    QDialog dlg(this, 0, true );
     QVBoxLayout* lay = new QVBoxLayout( &dlg );
     QTextView* view = new QTextView( &dlg );
     lay->addWidget( view );
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index f0d6a42..c0fe805 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -1,25 +1,25 @@
 /*
-� � � � � � � �=.            This file is part of the OPIE Project
-� � � � � � �.=l.            Copyright (c)  2002 Holger Freyther <zecke@handhelds.org>
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This program is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or  modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This program is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful,  but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU
-..}^=.= � � � = � � � ;      Library General Public License for more
-++= � -. � � .` � � .:       details.
-�: � � = �...= . :.=-
-�-. � .:....=;==+<;          You should have received a copy of the GNU
-� -_. . . � )=. �=           Library General Public License along with
-� � -- � � � �:-=`           this library; see the file COPYING.LIB.
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 Holger Freyther <zecke@handhelds.org>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           Library General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
                              If not, write to the Free Software Foundation,
                              Inc., 59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
@@ -54,7 +54,6 @@ namespace Todo {
     class TemplateManager;
     class Editor;
     class TodoShow;
-    class TemplateEditor;
     struct QuickEditBase;
 
     class MainWindow : public Opie::OPimMainWindow {
@@ -71,10 +70,6 @@ namespace Todo {
 
         /** return a context menu for an OPimTodo */
         QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE );
-        QPopupMenu* options();
-        QPopupMenu* edit();
-        QToolBar*   toolbar();
-
 
         void updateList();
         OPimTodoAccess::List list()const;
@@ -94,12 +89,10 @@ namespace Todo {
         QuickEditBase* quickEditor();
 
         void updateTodo( const OPimTodo& );
-        void populateTemplates();
         Editor* currentEditor();
         void setReadAhead(uint count );
 private slots:
         void slotQuickEntered();
-        void populateCategories();
         void slotReload();
         void slotFlush();
 
@@ -117,7 +110,6 @@ private slots:
         void initViews();
         void initEditor();
         void initShow();
-        void initTemplate();
         void raiseCurrentView();
         ViewBase* currentView();
         ViewBase* m_curView;
@@ -126,11 +118,7 @@ private slots:
         Editor* m_curEdit;
         TodoShow* currentShow();
         TodoShow* m_curShow;
-        TemplateEditor* currentTemplateEditor();
-        TemplateEditor* m_curTempEd;
 
-        QMenuBar* m_bar;
-        QToolBar* m_tool;
         QAction* m_editAction,
             *m_deleteAction,
             *m_findAction,
@@ -143,10 +131,6 @@ private slots:
             *m_showQuickTaskAction,
             *m_effectiveAction;
         Opie::Ui::OWidgetStack *m_stack;
-        QPopupMenu* m_catMenu,
-            *m_edit,
-            *m_options,
-            *m_template;
 
         bool m_syncing:1;
         bool m_deadline:1;
@@ -161,24 +145,28 @@ private slots:
 
 
      private slots:
+        void initStuff();
+
+        void slotItemNew();
+        void slotItemEdit();
+        void slotItemDuplicate();
+        void slotItemDelete();
+        void slotItemBeam();
+        void slotItemFind();
+        void slotConfigure();
+                
         void slotShow(int);
         void slotEdit(int);
         void slotUpdate3( QWidget* );
         void slotComplete( int uid );
         void slotComplete( const OPimTodo& ev );
-        void slotNewFromTemplate(int id );
-        void slotNew();
-        void slotDuplicate();
 
-        void slotDelete();
         void slotDelete(int uid );
         void slotDeleteAll();
         void slotDeleteCompleted();
 
-        void slotEdit();
-        void slotFind();
 
-        void setCategory( int );
+        void setCategory( const QString &category );
 
         void slotShowDeadLine( bool );
         void slotShowCompleted( bool );
@@ -187,7 +175,6 @@ private slots:
         void setDocument( const QString& );
 
 
-        void slotBeam();
         void beamDone( Ir* );
         void slotShowDetails();
         void slotShowNext();
diff --git a/core/pim/todo/newtaskdlg.cpp b/core/pim/todo/newtaskdlg.cpp
new file mode 100644
index 0000000..0b5a29d
--- a/dev/null
+++ b/core/pim/todo/newtaskdlg.cpp
@@ -0,0 +1,78 @@
+/*
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2005 Dan Williams <drw@handhelds.org>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
+                             If not, write to the Free Software Foundation,
+                             Inc., 59 Temple Place - Suite 330,
+                             Boston, MA 02111-1307, USA.
+
+*/
+
+#include "newtaskdlg.h"
+
+#include <qbuttongroup.h>
+#include <qcombobox.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+
+NewTaskDlg::NewTaskDlg( const QStringList &templates, QWidget *parent )
+    : QDialog( parent, QString::null, true, WStyle_ContextHelp )
+{
+    setCaption( tr( "New Task" ) );
+
+    QButtonGroup *bg = new QButtonGroup( this );
+    bg->hide();
+    
+    QVBoxLayout *layout = new QVBoxLayout( this, 10, 3 );
+
+    QRadioButton *btn = new QRadioButton( tr( "Blank task" ), this );
+    btn->setChecked( true );
+    bg->insert( btn );
+    layout->addWidget( btn );
+    
+    layout->addStretch();
+    
+    m_useTemplate = new QRadioButton( tr( "Using template:" ), this );
+    connect( m_useTemplate, SIGNAL(toggled(bool)), this, SLOT(slotUseTemplate(bool)) );
+    bg->insert( m_useTemplate );
+    layout->addWidget( m_useTemplate );
+
+    m_templateList = new QComboBox( this );
+    m_templateList->insertStringList( templates );
+    m_templateList->setEnabled( false );
+    layout->addWidget( m_templateList );
+    
+    layout->addStretch();
+}
+
+QString NewTaskDlg::tempSelected() {
+    QString tempStr;    
+    if ( m_useTemplate->isChecked() )
+        tempStr = m_templateList->currentText();
+
+    return tempStr;
+}
+
+void NewTaskDlg::slotUseTemplate( bool on ) {
+    m_templateList->setEnabled( on );
+    if ( on )
+        m_templateList->setFocus();
+}
diff --git a/core/pim/todo/newtaskdlg.h b/core/pim/todo/newtaskdlg.h
new file mode 100644
index 0000000..31398b3
--- a/dev/null
+++ b/core/pim/todo/newtaskdlg.h
@@ -0,0 +1,56 @@
+/*
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 <>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
+                             If not, write to the Free Software Foundation,
+                             Inc., 59 Temple Place - Suite 330,
+                             Boston, MA 02111-1307, USA.
+
+*/
+
+#ifndef NEWTASKDLG_H
+#define NEWTASKDLG_H
+
+#include <qdialog.h>
+
+#include <qstringlist.h>
+
+class QComboBox;
+class QRadioButton;
+
+class NewTaskDlg : public QDialog
+{
+    Q_OBJECT
+
+public:
+    NewTaskDlg( const QStringList &templates, QWidget *parent = 0l );
+
+    QString tempSelected();
+
+private:
+    QRadioButton *m_useTemplate;
+    QComboBox    *m_templateList;
+
+private slots:
+    void slotUseTemplate( bool on );
+};
+
+#endif
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index 221faca..c64ad46 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -1,25 +1,25 @@
 /*
-� � � � � � � �=.            This file is part of the OPIE Project
-� � � � � � �.=l.            Copyright (c)  2002 <zecke>
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This program is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or  modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This program is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful,  but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU
-..}^=.= � � � = � � � ;      Library General Public License for more
-++= � -. � � .` � � .:       details.
-�: � � = �...= . :.=-
-�-. � .:....=;==+<;          You should have received a copy of the GNU
-� -_. . . � )=. �=           Library General Public License along with
-� � -- � � � �:-=`           this library; see the file COPYING.LIB.
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 <zecke>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           Library General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
                              If not, write to the Free Software Foundation,
                              Inc., 59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
@@ -33,11 +33,11 @@
 #include <opie2/opimrecurrence.h>
 
 #include <qpe/config.h>
+#include <qpe/qpeapplication.h>
 #include <qpe/resource.h>
 
 #include <qcombobox.h>
 #include <qlineedit.h>
-#include <qtimer.h>
 #include <qpopupmenu.h>
 
 #include "mainwindow.h"
@@ -117,19 +117,14 @@ TableView::TableView( MainWindow* window, QWidget* wid )
     setLeftMargin( 0 );
     verticalHeader()->hide();
 
+    QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
     connect((QTable*)this, SIGNAL( clicked(int,int,int,const QPoint&) ),
             this, SLOT( slotClicked(int,int,int,const QPoint&) ) );
-    connect((QTable*)this, SIGNAL( pressed(int,int,int,const QPoint&) ),
-            this, SLOT( slotPressed(int,int,int,const QPoint&) ) );
     connect((QTable*)this, SIGNAL(valueChanged(int,int) ),
             this, SLOT( slotValueChanged(int,int) ) );
     connect((QTable*)this, SIGNAL(currentChanged(int,int) ),
             this, SLOT( slotCurrentChanged(int,int) ) );
 
-    m_menuTimer = new QTimer( this );
-    connect( m_menuTimer, SIGNAL(timeout()),
-             this, SLOT(slotShowMenu()) );
-
     /* now let's init the config */
     initConfig();
 
@@ -157,11 +152,6 @@ TableView::~TableView() {
     for (int i = 0; i < numCols(); i++ )
         config.writeEntry("Width"+QString::number(i), columnWidth(i) );
 }
-void TableView::slotShowMenu() {
-    QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
-    menu->exec(QCursor::pos() );
-    delete menu;
-}
 QString TableView::type() const {
     return QString::fromLatin1( tr("Table View") );
 }
@@ -280,10 +270,9 @@ void TableView::setShowDeadline( bool b ) {
 void TableView::setShowCategory( const QString& str) {
     if ( str != m_oleCat || m_first )
         updateView();
-
+    
     m_oleCat = str;
     m_first = false;
-
 }
 void TableView::clear() {
     setNumRows(0);
@@ -326,12 +315,10 @@ void TableView::slotClicked(int row, int col, int,
         break;
 
     case 2: {
-        m_menuTimer->stop();
         showTodo( ui );
         break;
     }
     case 3: {
-        m_menuTimer->stop();
         TodoView::edit( ui );
         break;
     }
@@ -339,19 +326,6 @@ void TableView::slotClicked(int row, int col, int,
 
 
 }
-void TableView::slotPressed(int row, int col, int,
-                            const QPoint& point) {
-
-    m_prevP = point;
-    /* TextColumn column */
-    if ( col == 2 && cellGeometry( row, col ).contains( point ) )
-        m_menuTimer->start( 750, TRUE );
-}
-void TableView::slotValueChanged( int, int ) {
-}
-void TableView::slotCurrentChanged(int, int ) {
-    m_menuTimer->stop();
-}
 QWidget* TableView::widget() {
     return this;
 }
@@ -579,7 +553,7 @@ void TableView::timerEvent( QTimerEvent*  ) {
  * WORKAROUND: strike through needs to strike through the same
  * row and two columns!
  */
-void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
+void TableView::contentsMouseReleaseEvent( QMouseEvent *e ) {
     int row = rowAt(m_prevP.y());
     int colOld = columnAt(m_prevP.x() );
     int colNew = columnAt(e->x() );
@@ -590,9 +564,15 @@ void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
     }
     QTable::contentsMouseReleaseEvent( e );
 }
-void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
-    m_menuTimer->stop();
-    QTable::contentsMouseMoveEvent( e );
+void TableView::contentsMousePressEvent( QMouseEvent *e ) {
+    if ( e->button() == RightButton ) {
+        QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
+        menu->exec( QCursor::pos() );
+    }
+    else {
+        m_prevP = e->pos();
+        QTable::contentsMousePressEvent( e );
+    }
 }
 void TableView::keyPressEvent( QKeyEvent* event) {
     if ( m_editorWidget.cellWidget() ) {
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h
index 7f78255..46c16e1 100644
--- a/core/pim/todo/tableview.h
+++ b/core/pim/todo/tableview.h
@@ -1,25 +1,25 @@
 /*
-� � � � � � � �=.            This file is part of the OPIE Project
-� � � � � � �.=l.            Copyright (c)  2002 <>
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This program is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or  modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This program is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful,  but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU
-..}^=.= � � � = � � � ;      Library General Public License for more
-++= � -. � � .` � � .:       details.
-�: � � = �...= . :.=-
-�-. � .:....=;==+<;          You should have received a copy of the GNU
-� -_. . . � )=. �=           Library General Public License along with
-� � -- � � � �:-=`           this library; see the file COPYING.LIB.
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 <>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           Library General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
                              If not, write to the Free Software Foundation,
                              Inc., 59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
@@ -78,7 +78,6 @@ namespace Todo {
     private:
         /* reimplented for internal reasons */
         void viewportPaintEvent( QPaintEvent* );
-        QTimer *m_menuTimer;
         bool m_enablePaint:1;
         QString m_oleCat;
         bool m_first : 1;
@@ -88,8 +87,8 @@ namespace Todo {
 
     protected:
         void keyPressEvent( QKeyEvent* );
-        void contentsMouseReleaseEvent( QMouseEvent* );
-        void contentsMouseMoveEvent( QMouseEvent* );
+        void contentsMouseReleaseEvent( QMouseEvent *e );
+        void contentsMousePressEvent( QMouseEvent *e );
         void timerEvent( QTimerEvent* e );
         QWidget* createEditor(int row, int col, bool initFromCell )const;
         void setCellContentFromEditor( int row, int col );
@@ -111,13 +110,8 @@ namespace Todo {
         EditorWidget m_editorWidget;
 
 private slots:
-        void slotShowMenu();
         void slotClicked(int, int, int,
                          const QPoint& );
-        void slotPressed(int, int, int,
-                         const QPoint& );
-        void slotValueChanged(int, int);
-        void slotCurrentChanged(int, int );
         void slotPriority();
     private:
         void initConfig();
diff --git a/core/pim/todo/templateeditor.cpp b/core/pim/todo/templateeditor.cpp
deleted file mode 100644
index ca02173..0000000
--- a/core/pim/todo/templateeditor.cpp
+++ b/dev/null
@@ -1,38 +0,0 @@
-#include <qaction.h>
-#include <qpopupmenu.h>
-
-#include "mainwindow.h"
-#include "todotemplatemanager.h"
-
-#include "templatedialogimpl.h"
-#include "templateeditor.h"
-
-using namespace Todo;
-
-TemplateEditor::TemplateEditor( MainWindow* main,
-                                TemplateManager* manager )
-    : QObject( main ), m_main( main ), m_man( manager )
-{
-    init();
-
-}
-TemplateEditor::~TemplateEditor() {
-
-}
-/* ok we add us to the Menubar */
-void TemplateEditor::init() {
-    QAction* a = new QAction( QString::null, QWidget::tr("Configure Templates"),
-                              0, this, 0, FALSE );
-    connect(a, SIGNAL(activated() ),
-            this, SLOT(setUp() ) );
-
-    a->addTo( m_main->options() );
-}
-void TemplateEditor::setUp() {
-    TemplateDialogImpl dlg(m_main, m_man );
-    int ret= dlg.exec();
-    if (QDialog::Accepted != ret )
-        m_man->load();
-    else
-        m_main->populateTemplates();
-}
diff --git a/core/pim/todo/templateeditor.h b/core/pim/todo/templateeditor.h
deleted file mode 100644
index e551328..0000000
--- a/core/pim/todo/templateeditor.h
+++ b/dev/null
@@ -1,31 +0,0 @@
-#ifndef OPIE_TEMPLATE_EDITOR_H
-#define OPIE_TEMPLATE_EDITOR_H
-
-#include <qobject.h>
-#include <qdialog.h>
-#include <qstring.h>
-
-namespace Todo {
-
-    class MainWindow;
-    class TemplateManager;
-    class TemplateEditor : public QObject{
-        Q_OBJECT
-    public:
-        TemplateEditor( MainWindow* win,
-                        TemplateManager* man);
-        ~TemplateEditor();
-
-    signals:
-        void configChanged();
-    private:
-        void init();
-        MainWindow* m_main;
-        TemplateManager* m_man;
-private slots:
-        void setUp();
-
-    };
-};
-
-#endif
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index 6c082cf..9b60818 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -11,7 +11,6 @@ HEADERS	= smalltodo.h \
 	  todoeditor.h \
 	  todoshow.h \
 	  textviewshow.h \
-	  templateeditor.h \
 	  templatedialog.h \
 	  templatedialogimpl.h \
 	  quickedit.h \
@@ -19,7 +18,8 @@ HEADERS	= smalltodo.h \
 	  otaskeditor.h \
 	  taskeditoroverview.h \
 	  taskeditorstatus.h \
-	  taskeditoralarms.h
+	  taskeditoralarms.h \
+	  newtaskdlg.h
 
 SOURCES	= smalltodo.cpp \
           todomanager.cpp \
@@ -31,7 +31,6 @@ SOURCES	= smalltodo.cpp \
 	  todoeditor.cpp   \
 	  todoshow.cpp \
 	  textviewshow.cpp \
-	  templateeditor.cpp \
 	  templatedialog.cpp  \
 	  templatedialogimpl.cpp \
 	  quickeditimpl.cpp \
@@ -39,7 +38,8 @@ SOURCES	= smalltodo.cpp \
 	  otaskeditor.cpp \
 	  taskeditoroverview.cpp \
 	  taskeditorstatus.cpp \
-	  taskeditoralarms.cpp
+	  taskeditoralarms.cpp \
+	  newtaskdlg.cpp
 
 TARGET		= todolist
 INCLUDEPATH += $(OPIEDIR)/include
diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp
index 7136f9a..fcd5f0e 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -1,25 +1,25 @@
 /*
-� � � � � � � �=.            This file is part of the OPIE Project
-� � � � � � �.=l.            Copyright (c)  2002 <>
-� � � � � �.>+-=
-�_;:, � � .> � �:=|.         This program is free software; you can
-.> <`_, � > �. � <=          redistribute it and/or  modify it under
-:`=1 )Y*s>-.-- � :           the terms of the GNU General Public
-.="- .-=="i, � � .._         License as published by the Free Software
-�- . � .-<_> � � .<>         Foundation; either version 2 of the License,
-� � �._= =} � � � :          or (at your option) any later version.
-� � .%`+i> � � � _;_.
-� � .i_,=:_. � � �-<s.       This program is distributed in the hope that
-� � �+ �. �-:. � � � =       it will be useful,  but WITHOUT ANY WARRANTY;
-� � : .. � �.:, � � . . .    without even the implied warranty of
-� � =_ � � � �+ � � =;=|`    MERCHANTABILITY or FITNESS FOR A
-� _.=:. � � � : � �:=>`:     PARTICULAR PURPOSE. See the GNU
-..}^=.= � � � = � � � ;      Library General Public License for more
-++= � -. � � .` � � .:       details.
-�: � � = �...= . :.=-
-�-. � .:....=;==+<;          You should have received a copy of the GNU
-� -_. . . � )=. �=           Library General Public License along with
-� � -- � � � �:-=`           this library; see the file COPYING.LIB.
+       =.            This file is part of the OPIE Project
+      .=l.            Copyright (c)  2002 <>
+     .>+-=
+_;:,   .>  :=|.         This program is free software; you can
+.> <`_,  > .  <=          redistribute it and/or  modify it under
+:`=1 )Y*s>-.--  :           the terms of the GNU General Public
+.="- .-=="i,   .._         License as published by the Free Software
+- .  .-<_>   .<>         Foundation; either version 2 of the License,
+  ._= =}    :          or (at your option) any later version.
+  .%`+i>    _;_.
+  .i_,=:_.   -<s.       This program is distributed in the hope that
+  + . -:.    =       it will be useful,  but WITHOUT ANY WARRANTY;
+  : ..  .:,   . . .    without even the implied warranty of
+  =_    +   =;=|`    MERCHANTABILITY or FITNESS FOR A
+ _.=:.    :  :=>`:     PARTICULAR PURPOSE. See the GNU
+..}^=.=    =    ;      Library General Public License for more
+++=  -.   .`   .:       details.
+:   = ...= . :.=-
+-.  .:....=;==+<;          You should have received a copy of the GNU
+ -_. . .  )=. =           Library General Public License along with
+  --    :-=`           this library; see the file COPYING.LIB.
                              If not, write to the Free Software Foundation,
                              Inc., 59 Temple Place - Suite 330,
                              Boston, MA 02111-1307, USA.
@@ -37,6 +37,7 @@ using namespace Todo;
 TodoManager::TodoManager( QObject *obj )
     : QObject( obj ) {
     m_db = 0l;
+    m_cat.load( categoryFileName() );
 }
 TodoManager::~TodoManager() {
     delete m_db;
--
cgit v0.9.0.2