summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp425
-rw-r--r--core/pim/todo/mainwindow.h77
-rw-r--r--core/pim/todo/newtaskdlg.cpp78
-rw-r--r--core/pim/todo/newtaskdlg.h56
-rw-r--r--core/pim/todo/tableview.cpp88
-rw-r--r--core/pim/todo/tableview.h52
-rw-r--r--core/pim/todo/templateeditor.cpp38
-rw-r--r--core/pim/todo/templateeditor.h31
-rw-r--r--core/pim/todo/todo.pro8
-rw-r--r--core/pim/todo/todomanager.cpp43
10 files changed, 375 insertions, 521 deletions
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,23 +1,23 @@
/*
-               =. 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,
@@ -44,2 +44,4 @@
+#include <qaction.h>
+#include <qlayout.h>
#include <qmenubar.h>
@@ -47,5 +49,4 @@
#include <qpushbutton.h>
-#include <qaction.h>
+#include <qstringlist.h>
#include <qtimer.h>
-#include <qlayout.h>
#include <qwhatsthis.h>
@@ -54,3 +55,3 @@
#include "todotemplatemanager.h"
-#include "templateeditor.h"
+#include "templatedialogimpl.h"
#include "tableview.h"
@@ -59,2 +60,3 @@
#include "todoeditor.h"
+#include "newtaskdlg.h"
#include "mainwindow.h"
@@ -69,3 +71,4 @@ 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 )
{
@@ -80,4 +83,4 @@ MainWindow::MainWindow( QWidget* parent,
- initUI();
initConfig();
+ initUI();
initViews();
@@ -86,128 +89,45 @@ MainWindow::MainWindow( QWidget* parent,
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 );
}
@@ -217,35 +137,20 @@ void MainWindow::initConfig() {
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()) );
}
@@ -277,30 +182,4 @@ void MainWindow::connectBase( ViewBase* ) {
}
-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();
}
@@ -311,5 +190,5 @@ 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;
@@ -322,3 +201,3 @@ OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
filter |= OPimTodoAccess::OnlyOverDue;
-
+
return m_todoMgr.sorted( asc, sortOrder, filter, cat );
@@ -327,8 +206,8 @@ 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 );
@@ -351,3 +230,3 @@ TodoShow* MainWindow::currentShow() {
void MainWindow::slotReload() {
- m_syncing = FALSE;
+ m_syncing = false;
m_todoMgr.reload();
@@ -405,42 +284,29 @@ void MainWindow::closeEvent( QCloseEvent* e ) {
}
-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) {
@@ -458,3 +324,3 @@ void MainWindow::slotDuplicate() {
}
-void MainWindow::slotDelete() {
+void MainWindow::slotItemDelete() {
if (!currentView()->current() )
@@ -476,2 +342,14 @@ void MainWindow::slotDelete() {
}
+
+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 ) {
@@ -522,8 +400,2 @@ void MainWindow::slotDeleteCompleted() {
}
-void MainWindow::slotFind() {
-
-}
-void MainWindow::slotEdit() {
- slotEdit( currentView()->current() );
-}
/*
@@ -531,22 +403,7 @@ void MainWindow::slotEdit() {
*/
-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 );
@@ -579,7 +436,2 @@ void MainWindow::setDocument( const QString& fi) {
}
-
-static const char *beamfile = "/tmp/opie-todo.vcs";
-void MainWindow::slotBeam() {
- beam( currentView()->current() );
-}
void MainWindow::beamDone( Ir* ir) {
@@ -612,3 +464,3 @@ void MainWindow::receiveFile( const QString& filename ) {
void MainWindow::slotFlush() {
- m_syncing = TRUE;
+ m_syncing = true;
m_todoMgr.save();
@@ -618,27 +470,2 @@ void MainWindow::slotShowDetails() {
}
-/*
- * 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 {
@@ -711,3 +538,3 @@ void MainWindow::slotEdit( int uid ) {
/* a Category might have changed */
- populateCategories();
+ reloadCategories();
}
@@ -860,3 +687,3 @@ int MainWindow::create() {
// but only call if we changed something -zecke
- populateCategories();
+ reloadCategories();
}
@@ -917,3 +744,3 @@ void MainWindow::add( const OPimRecord& rec) {
// but only call if we changed something -zecke
- populateCategories();
+ reloadCategories();
}
@@ -1006,3 +833,3 @@ void MainWindow::doAlarm( const QDateTime& dt, int uid ) {
- QDialog dlg(this, 0, TRUE );
+ QDialog dlg(this, 0, true );
QVBoxLayout* lay = new QVBoxLayout( &dlg );
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,23 +1,23 @@
/*
-               =. 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,
@@ -56,3 +56,2 @@ namespace Todo {
class TodoShow;
- class TemplateEditor;
struct QuickEditBase;
@@ -73,6 +72,2 @@ namespace Todo {
QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE );
- QPopupMenu* options();
- QPopupMenu* edit();
- QToolBar* toolbar();
-
@@ -96,3 +91,2 @@ namespace Todo {
void updateTodo( const OPimTodo& );
- void populateTemplates();
Editor* currentEditor();
@@ -101,3 +95,2 @@ private slots:
void slotQuickEntered();
- void populateCategories();
void slotReload();
@@ -119,3 +112,2 @@ private slots:
void initShow();
- void initTemplate();
void raiseCurrentView();
@@ -128,7 +120,3 @@ private slots:
TodoShow* m_curShow;
- TemplateEditor* currentTemplateEditor();
- TemplateEditor* m_curTempEd;
- QMenuBar* m_bar;
- QToolBar* m_tool;
QAction* m_editAction,
@@ -145,6 +133,2 @@ private slots:
Opie::Ui::OWidgetStack *m_stack;
- QPopupMenu* m_catMenu,
- *m_edit,
- *m_options,
- *m_template;
@@ -163,2 +147,12 @@ private slots:
private slots:
+ void initStuff();
+
+ void slotItemNew();
+ void slotItemEdit();
+ void slotItemDuplicate();
+ void slotItemDelete();
+ void slotItemBeam();
+ void slotItemFind();
+ void slotConfigure();
+
void slotShow(int);
@@ -168,7 +162,3 @@ private slots:
void slotComplete( const OPimTodo& ev );
- void slotNewFromTemplate(int id );
- void slotNew();
- void slotDuplicate();
- void slotDelete();
void slotDelete(int uid );
@@ -177,6 +167,4 @@ private slots:
- void slotEdit();
- void slotFind();
- void setCategory( int );
+ void setCategory( const QString &category );
@@ -189,3 +177,2 @@ private slots:
- void slotBeam();
void beamDone( Ir* );
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,23 +1,23 @@
/*
-               =. 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,
@@ -35,2 +35,3 @@
#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
@@ -39,3 +40,2 @@
#include <qlineedit.h>
-#include <qtimer.h>
#include <qpopupmenu.h>
@@ -119,6 +119,5 @@ TableView::TableView( MainWindow* window, QWidget* wid )
+ 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) ),
@@ -128,6 +127,2 @@ TableView::TableView( MainWindow* window, QWidget* wid )
- m_menuTimer = new QTimer( this );
- connect( m_menuTimer, SIGNAL(timeout()),
- this, SLOT(slotShowMenu()) );
-
/* now let's init the config */
@@ -159,7 +154,2 @@ TableView::~TableView() {
}
-void TableView::slotShowMenu() {
- QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
- menu->exec(QCursor::pos() );
- delete menu;
-}
QString TableView::type() const {
@@ -282,6 +272,5 @@ void TableView::setShowCategory( const QString& str) {
updateView();
-
+
m_oleCat = str;
m_first = false;
-
}
@@ -328,3 +317,2 @@ void TableView::slotClicked(int row, int col, int,
case 2: {
- m_menuTimer->stop();
showTodo( ui );
@@ -333,3 +321,2 @@ void TableView::slotClicked(int row, int col, int,
case 3: {
- m_menuTimer->stop();
TodoView::edit( ui );
@@ -341,15 +328,2 @@ 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() {
@@ -581,3 +555,3 @@ void TableView::timerEvent( QTimerEvent* ) {
*/
-void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
+void TableView::contentsMouseReleaseEvent( QMouseEvent *e ) {
int row = rowAt(m_prevP.y());
@@ -592,5 +566,11 @@ void TableView::contentsMouseReleaseEvent( QMouseEvent* 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 );
+ }
}
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,23 +1,23 @@
/*
-               =. 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,
@@ -80,3 +80,2 @@ namespace Todo {
void viewportPaintEvent( QPaintEvent* );
- QTimer *m_menuTimer;
bool m_enablePaint:1;
@@ -90,4 +89,4 @@ namespace Todo {
void keyPressEvent( QKeyEvent* );
- void contentsMouseReleaseEvent( QMouseEvent* );
- void contentsMouseMoveEvent( QMouseEvent* );
+ void contentsMouseReleaseEvent( QMouseEvent *e );
+ void contentsMousePressEvent( QMouseEvent *e );
void timerEvent( QTimerEvent* e );
@@ -113,9 +112,4 @@ namespace Todo {
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();
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
@@ -13,3 +13,2 @@ HEADERS = smalltodo.h \
textviewshow.h \
- templateeditor.h \
templatedialog.h \
@@ -21,3 +20,4 @@ HEADERS = smalltodo.h \
taskeditorstatus.h \
- taskeditoralarms.h
+ taskeditoralarms.h \
+ newtaskdlg.h
@@ -33,3 +33,2 @@ SOURCES = smalltodo.cpp \
textviewshow.cpp \
- templateeditor.cpp \
templatedialog.cpp \
@@ -41,3 +40,4 @@ SOURCES = smalltodo.cpp \
taskeditorstatus.cpp \
- taskeditoralarms.cpp
+ taskeditoralarms.cpp \
+ newtaskdlg.cpp
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,23 +1,23 @@
/*
-               =. 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,
@@ -39,2 +39,3 @@ TodoManager::TodoManager( QObject *obj )
m_db = 0l;
+ m_cat.load( categoryFileName() );
}