author | drw <drw> | 2005-04-06 21:39:47 (UTC) |
---|---|---|
committer | drw <drw> | 2005-04-06 21:39:47 (UTC) |
commit | 9ea956870ddf74ddc70b83ed529ebb3b36e9231e (patch) (side-by-side diff) | |
tree | 599da226b62023d6c51c1f00867e3dffde9977ec | |
parent | 2b0e27b45eb9ff5563f786c5e45d53db49afb9f9 (diff) | |
download | opie-9ea956870ddf74ddc70b83ed529ebb3b36e9231e.zip opie-9ea956870ddf74ddc70b83ed529ebb3b36e9231e.tar.gz opie-9ea956870ddf74ddc70b83ed529ebb3b36e9231e.tar.bz2 |
Use OResource for loading images and fix headers
39 files changed, 1085 insertions, 434 deletions
diff --git a/core/pim/todo/main.cpp b/core/pim/todo/main.cpp index a336ba3..e12326e 100644 --- a/core/pim/todo/main.cpp +++ b/core/pim/todo/main.cpp @@ -1,47 +1,57 @@ -/********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. -** -** This file is part of Qtopia Environment. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ #include "mainwindow.h" #include <opie2/odebug.h> #include <qpe/qpeapplication.h> void myMessages( QtMsgType, const char* ) { } int main( int argc, char **argv ) { qInstallMsgHandler( myMessages ); QPEApplication a( argc, argv ); QTime time; time.start(); Todo::MainWindow mw; int t = time.elapsed(); mw.setCaption( QObject::tr("Opie Todolist")); QObject::connect( &a, SIGNAL( flush() ), &mw, SLOT( slotFlush() ) ); QObject::connect( &a, SIGNAL( reload() ), &mw, SLOT( slotReload() ) ); a.showMainWidget(&mw); return a.exec(); } diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index 9013522..b6ee16f 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp @@ -1,424 +1,425 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include <unistd.h> #include <opie2/odebug.h> #include <opie2/opimrecurrence.h> #include <opie2/opimnotifymanager.h> #include <opie2/otodoaccessvcal.h> #include <opie2/oapplicationfactory.h> #include <qpe/applnk.h> #include <qpe/config.h> #include <qpe/ir.h> -#include <qpe/resource.h> #include <qpe/qpemessagebox.h> #include <qpe/alarmserver.h> #include <qpe/qpeapplication.h> #include <qaction.h> #include <qlayout.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qpushbutton.h> #include <qstringlist.h> #include <qtimer.h> #include <qwhatsthis.h> #include "quickeditimpl.h" #include "todotemplatemanager.h" #include "templatedialogimpl.h" #include "tableview.h" #include "textviewshow.h" #include "todoeditor.h" #include "newtaskdlg.h" #include "mainwindow.h" using Opie::Core::OApplicationFactory; OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> ) using namespace Opie; using namespace Todo; MainWindow::MainWindow( QWidget* parent, const char* name, WFlags ) : Opie::OPimMainWindow( "Todolist", "Todo List", tr( "Task" ), "todo", parent, name, WType_TopLevel | WStyle_ContextHelp ) { setCaption( tr( "Todo List" ) ); if (!name) setName("todo window"); m_syncing = false; m_showing = false; m_counter = 0; m_tempManager = new TemplateManager(); m_tempManager->load(); initConfig(); initUI(); initViews(); initActions(); initEditor(); initShow(); raiseCurrentView(); QTimer::singleShot( 0, this, SLOT(initStuff()) ); } void MainWindow::initStuff() { m_todoMgr.load(); setViewCategory( m_curCat ); setCategory( m_curCat ); } void MainWindow::initActions() { // 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, items, 0, true ); m_completedAction->setOn( showCompleted() ); connect( m_completedAction, SIGNAL(toggled(bool)), this, SLOT(slotShowCompleted(bool)) ); 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)) ); m_showDeadLineAction = new QAction( QString::null, QWidget::tr("Show task deadlines"), 0, items, 0, true ); m_showDeadLineAction->setOn( showDeadline() ); connect( m_showDeadLineAction, SIGNAL(toggled(bool)), this, SLOT(slotShowDeadLine(bool)) ); m_showQuickTaskAction = new QAction( QString::null, QWidget::tr("Show quick task bar"), 0, items, 0, true ); m_showQuickTaskAction->setOn( showQuickTask() ); 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); } void MainWindow::initUI() { // Create main widget stack m_stack = new Opie::Ui::OWidgetStack(this, "main stack"); setCentralWidget( m_stack ); 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() { TableView* tableView = new TableView( this, m_stack ); QWhatsThis::add( tableView, QWidget::tr( "This is a listing of all current tasks.\n\nThe list displays the following information:\n1. Completed - A green checkmark indicates task is completed. Click here to complete a task.\n2. Priority - a graphical representation of task priority. Double-click here to modify.\n3. Description - description of task. Click here to select the task.\n4. Deadline - shows when task is due. This column can be shown or hidden by selecting Options->'Show task deadlines' from the menu above." ) ); m_stack->addWidget( tableView, m_counter++ ); m_views.append( tableView ); m_curView = tableView; connectBase( tableView ); /* add QString type + QString configname to * the View menu * and subdirs for multiple views */ } void MainWindow::initEditor() { m_curEdit = new Editor(); } void MainWindow::initShow() { m_curShow = new TextViewShow(this, this); m_stack->addWidget( m_curShow->widget() , m_counter++ ); } MainWindow::~MainWindow() { delete templateManager(); } void MainWindow::connectBase( ViewBase* ) { // once templates and signals mix we'll use it again } 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 != tr( "All" ) ) cat = currentCatId(); if ( m_curCat == tr( "Unfiled" ) ) cat = -1; int filter = OPimTodoAccess::FilterCategory; if (!m_completed ) 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 != tr( "All" ) ) cat = currentCatId(); if ( m_curCat == tr( "Unfiled" ) ) cat = -1; return m_todoMgr.sorted(asc, sortOrder, addFilter, cat ); } OPimTodo MainWindow::event( int uid ) { return m_todoMgr.event( uid ); } bool MainWindow::isSyncing()const { return m_syncing; } TemplateManager* MainWindow::templateManager() { return m_tempManager; } Editor* MainWindow::currentEditor() { return m_curEdit; } TodoShow* MainWindow::currentShow() { return m_curShow; } void MainWindow::slotReload() { m_syncing = false; m_todoMgr.reload(); currentView()->updateView( ); raiseCurrentView(); } void MainWindow::closeEvent( QCloseEvent* e ) { if (m_stack->visibleWidget() == currentShow()->widget() ) { m_showing = false; raiseCurrentView(); e->ignore(); return; } /* * we should have flushed and now we're still saving * so there is no need to flush */ if (m_syncing ) { e->accept(); return; } bool quit = false; if ( m_todoMgr.saveAll() ){ quit = true; }else { if ( QMessageBox::critical( this, QWidget::tr("Out of space"), QWidget::tr("Todo was unable\n" "to save your changes.\n" "Free up some space\n" "and try again.\n" "\nQuit Anyway?"), QMessageBox::Yes|QMessageBox::Escape, QMessageBox::No|QMessageBox::Default) != QMessageBox::No ) { e->accept(); quit = true; }else e->ignore(); } if (quit ) { Config config( "todo" ); config.setGroup( "View" ); config.writeEntry( "ShowComplete", showCompleted() ); config.writeEntry( "Category", currentCategory() ); config.writeEntry( "ShowDeadLine", showDeadline()); config.writeEntry( "ShowOverDue", showOverDue() ); config.writeEntry( "ShowQuickTask", showQuickTask() ); /* save templates */ templateManager()->save(); e->accept(); QTimer::singleShot(0, qApp, SLOT(closeAllWindows()) ); } } 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(); } } } void MainWindow::slotItemEdit() { slotEdit( currentView()->current() ); } void MainWindow::slotItemDuplicate() { if(m_syncing) { QMessageBox::warning(this, QWidget::tr("Todo"), QWidget::tr("Data can not be edited, currently syncing")); return; } OPimTodo ev = m_todoMgr.event( currentView()->current() ); /* let's generate a new uid */ ev.setUid(1); m_todoMgr.add( ev ); currentView()->addEvent( ev ); raiseCurrentView(); } void MainWindow::slotItemDelete() { if (!currentView()->current() ) return; if(m_syncing) { QMessageBox::warning(this, QWidget::tr("Todo"), QWidget::tr("Data can not be edited, currently syncing")); return; } QString strName = currentView()->currentRepresentation(); if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), strName ) ) return; handleAlarms( m_todoMgr.event( currentView()->current() ), OPimTodo() ); m_todoMgr.remove( currentView()->current() ); 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) { QMessageBox::warning(this, QWidget::tr("Todo"), QWidget::tr("Data can not be edited, currently syncing")); return; } OPimTodo to = m_todoMgr.event(uid); if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), to.toShortText() ) ) return; handleAlarms(to, OPimTodo() ); m_todoMgr.remove( to.uid() ); currentView()->removeEvent( to.uid() ); raiseCurrentView(); } void MainWindow::slotDeleteAll() { if(m_syncing) { QMessageBox::warning(this, QWidget::tr("Todo"), QWidget::tr("Data can not be edited, currently syncing")); return; } if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all tasks?") ) ) return; m_todoMgr.removeAll(); currentView()->clear(); raiseCurrentView(); } void MainWindow::slotDeleteCompleted() { if(m_syncing) { QMessageBox::warning(this, QWidget::tr("Todo"), QWidget::tr("Data can not be edited, currently syncing")); return; } if ( !QPEMessageBox::confirmDelete( this, QWidget::tr( "Todo" ), QWidget::tr("all completed tasks?") ) ) return; m_todoMgr.removeCompleted(); currentView()->updateView( ); } /* * set the category */ void MainWindow::setCategory( const QString &category ) { m_curCat = category; if ( m_curCat == tr( "All" ) ) m_curCat = QString::null; currentView()->setShowCategory( m_curCat ); raiseCurrentView(); } void MainWindow::slotShowDeadLine( bool dead) { m_deadline = dead; currentView()->setShowDeadline( dead ); } void MainWindow::slotShowCompleted( bool show) { m_completed = show; currentView()->setShowCompleted( m_completed ); } void MainWindow::slotShowQuickTask( bool show ) { m_quicktask = show; if ( m_quicktask ) m_curQuick->widget()->show(); diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h index c0fe805..b96795f 100644 --- a/core/pim/todo/mainwindow.h +++ b/core/pim/todo/mainwindow.h @@ -1,198 +1,200 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TODO_MAIN_WINDOW_H #define TODO_MAIN_WINDOW_H #include <qlist.h> #include <opie2/otodoaccess.h> #include <opie2/opimtodo.h> #include <opie2/opimmainwindow.h> #include <opie2/owidgetstack.h> #include "smalltodo.h" #include "todoview.h" #include "quickedit.h" #include "todomanager.h" class QPopupMenu; class QMenuBar; class QToolBar; class QAction; class Ir; class QVBox; class QLineEdit; namespace Todo { typedef TodoView View; class TemplateManager; class Editor; class TodoShow; struct QuickEditBase; class MainWindow : public Opie::OPimMainWindow { Q_OBJECT friend class TodoView; // avoid QObject here.... friend class TodoShow; // avoid QObject public: /* Opie::Core::OApplicationFactory application Name */ static QString appName() { return QString::fromLatin1("todolist"); } MainWindow( QWidget *parent = 0, const char* name = 0, WFlags fl = 0 ); ~MainWindow(); /** return a context menu for an OPimTodo */ QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE ); void updateList(); OPimTodoAccess::List list()const; OPimTodoAccess::List sorted( bool asc, int sortOrder ); OPimTodoAccess::List sorted( bool asc, int sortOrder, int addFilter ); OPimTodo event(int uid ); bool isSyncing()const; bool showCompleted()const; bool showDeadline()const; bool showOverDue()const; bool showQuickTask()const; QString currentCategory()const; int currentCatId(); TemplateManager* templateManager(); QuickEditBase* quickEditor(); void updateTodo( const OPimTodo& ); Editor* currentEditor(); void setReadAhead(uint count ); private slots: void slotQuickEntered(); void slotReload(); void slotFlush(); protected: void closeEvent( QCloseEvent* e ); private: /* handle setting and removing alarms */ void handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo ); void receiveFile( const QString& filename ); void connectBase( ViewBase* ); void initUI(); void initActions(); void initConfig(); void initViews(); void initEditor(); void initShow(); void raiseCurrentView(); ViewBase* currentView(); ViewBase* m_curView; bool m_showing : 1; // used to see if we show a todo in the cases we shouldn't change the table QuickEditBase* m_curQuick; Editor* m_curEdit; TodoShow* currentShow(); TodoShow* m_curShow; QAction* m_editAction, *m_deleteAction, *m_findAction, *m_completedAction, *m_showDeadLineAction, *m_deleteAllAction, *m_deleteCompleteAction, *m_duplicateAction, *m_showOverDueAction, *m_showQuickTaskAction, *m_effectiveAction; Opie::Ui::OWidgetStack *m_stack; bool m_syncing:1; bool m_deadline:1; bool m_completed:1; bool m_overdue:1; bool m_quicktask:1; TodoManager m_todoMgr; QString m_curCat; QList<ViewBase> m_views; uint m_counter; TemplateManager* m_tempManager; 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 slotDelete(int uid ); void slotDeleteAll(); void slotDeleteCompleted(); void setCategory( const QString &category ); void slotShowDeadLine( bool ); void slotShowCompleted( bool ); void slotShowQuickTask( bool ); void setDocument( const QString& ); void beamDone( Ir* ); void slotShowDetails(); void slotShowNext(); void slotShowPrev(); void slotShowDue( bool ); void slotReturnFromView(); // for TodoShow... /* reimplementation from opimmainwindow */ protected slots: void flush(); void reload(); int create(); bool remove( int uid ); void beam(int uid); void show( int uid ); void edit( int uid ); void add( const Opie::OPimRecord& ); void doAlarm( const QDateTime& dt, int uid ); }; } #endif diff --git a/core/pim/todo/newtaskdlg.cpp b/core/pim/todo/newtaskdlg.cpp index 0b5a29d..68a0d24 100644 --- a/core/pim/todo/newtaskdlg.cpp +++ b/core/pim/todo/newtaskdlg.cpp @@ -1,78 +1,80 @@ /* - =. 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. + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #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 index 31398b3..235c7a0 100644 --- a/core/pim/todo/newtaskdlg.h +++ b/core/pim/todo/newtaskdlg.h @@ -1,56 +1,58 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #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/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp index bbc177d..8cce9ed 100644 --- a/core/pim/todo/otaskeditor.cpp +++ b/core/pim/todo/otaskeditor.cpp @@ -1,94 +1,124 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <qlayout.h> #include <opie2/odebug.h> #include "taskeditoroverview.h" #include "taskeditorstatus.h" #include "taskeditoralarms.h" #include "otaskeditor.h" using namespace Opie::Ui; using namespace Opie; OTaskEditor::OTaskEditor(int cur) : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { init(); init( cur ); } OTaskEditor::OTaskEditor( const OPimTodo& to) : QDialog( 0, 0, TRUE, WStyle_ContextHelp ) { init(); init( to ); } OTaskEditor::~OTaskEditor() { } void OTaskEditor::init( int cur ) { OPimTodo to; to.setUid( 1 ); // generate a new uid if ( cur != 0 ) to.setCategories( cur ); load(to); } void OTaskEditor::init( const OPimTodo& to ) { load( to ); } OPimTodo OTaskEditor::todo()const{ OPimTodo to ( m_todo ); m_overView->save( to ); m_stat->save( to ); to.setRecurrence( m_rec->recurrence() ); m_alarm->save( to ); return to; } void OTaskEditor::load(const OPimTodo& to) { m_overView->load( to ); m_stat->load( to ); m_rec->setRecurrence( to.recurrence(), to.hasDueDate() ? to.dueDate() : QDate::currentDate() ); m_alarm->load( to ); m_todo = to; } void OTaskEditor::init() { setCaption(tr("Task Editor") ); QVBoxLayout* layo = new QVBoxLayout( this ); m_tab = new OTabWidget( this ); layo->addWidget( m_tab ); /* * Add the Widgets */ m_overView = new TaskEditorOverView( m_tab ); m_tab->addTab( m_overView, "todo/info", tr("Information") ); m_stat = new TaskEditorStatus( m_tab ); m_tab->addTab( m_stat, "todo/TodoList", tr("Status") ); m_alarm = new TaskEditorAlarms( m_tab ); m_tab->addTab( m_alarm, "todo/alarm", tr("Alarms") ); // m_remind = new TaskEditorAlarms( m_tab ); // m_tab->addTab( m_remind, "todo/reminder", tr("Reminders") ); // QLabel* lbl = new QLabel( m_tab ); // lbl->setText( tr("X-Ref") ); // m_tab->addTab( lbl, "todo/xref", tr("X-Ref") ); m_rec = new OPimRecurrenceWidget( true, QDate::currentDate(), this ); m_tab->addTab( m_rec, "repeat", tr("Recurrence") ); /* signal and slots */ connect(m_overView, SIGNAL(recurranceEnabled(bool) ), m_rec, SLOT(setEnabled(bool) ) ); /* connect due date changed to the recurrence tab */ connect(m_stat, SIGNAL(dueDateChanged(const QDate&) ), m_rec, SLOT(setStartDate(const QDate&) ) ); m_tab->setCurrentTab( m_overView ); } diff --git a/core/pim/todo/otaskeditor.h b/core/pim/todo/otaskeditor.h index 65e7bda..1715d02 100644 --- a/core/pim/todo/otaskeditor.h +++ b/core/pim/todo/otaskeditor.h @@ -1,44 +1,74 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TASK_EDITOR_H #define OPIE_TASK_EDITOR_H #include <qdialog.h> #include <opie2/opimtodo.h> #include <opie2/otabwidget.h> #include <opie2/opimrecurrencewidget.h> #include <opie2/opimrecurrencewidget.h> class TaskEditorOverView; class TaskEditorStatus; class TaskEditorAlarms; class QMultiLineEdit; class OTaskEditor : public QDialog { Q_OBJECT public: OTaskEditor(int cur); OTaskEditor( const Opie::OPimTodo& todo ); ~OTaskEditor(); /* * same as the c'tor but this gives us the * power to 'preload' the dialog */ void init( int cur ); void init( const Opie::OPimTodo& todo ); Opie::OPimTodo todo()const; private: void load( const Opie::OPimTodo& ); void init(); Opie::Ui::OTabWidget *m_tab; TaskEditorOverView *m_overView; TaskEditorStatus *m_stat; TaskEditorAlarms *m_alarm; TaskEditorAlarms *m_remind; OPimRecurrenceWidget *m_rec; Opie::OPimTodo m_todo; }; #endif diff --git a/core/pim/todo/quickedit.cpp b/core/pim/todo/quickedit.cpp index 16fc53a..eb26c45 100644 --- a/core/pim/todo/quickedit.cpp +++ b/core/pim/todo/quickedit.cpp @@ -1,21 +1,51 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include "quickedit.h" using namespace Todo; // not so interesting part base Implementation QuickEdit::QuickEdit(MainWindow* main ) : m_main( main ) { m_sig = new QSignal(); } QuickEdit::~QuickEdit() { delete m_sig; } QSignal* QuickEdit::signal() { return m_sig; } MainWindow* QuickEdit::mainWindow() { return m_main; } void QuickEdit::commit() { m_sig->activate(); } diff --git a/core/pim/todo/quickedit.h b/core/pim/todo/quickedit.h index 0c0c204..a479d9e 100644 --- a/core/pim/todo/quickedit.h +++ b/core/pim/todo/quickedit.h @@ -1,47 +1,77 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_QUICK_EDIT_H #define OPIE_QUICK_EDIT_H #include <qsignal.h> #include <qwidget.h> #include <opie2/opimtodo.h> using Opie::OPimTodo; namespace Todo{ class MainWindow; struct QuickEditBase { virtual OPimTodo todo()const = 0l; virtual QSignal* signal() = 0l; virtual QWidget* widget() = 0l; }; /* * this is my second try * of signal and slots with namespaces * and templates * I use a different approach now * I give a QSignal away * and have a protected method called emit */ /** * Quick edit is meant to quickly enter * OPimTodos in a fast way */ class QuickEdit : public QuickEditBase{ public: QuickEdit(MainWindow* main ); virtual ~QuickEdit(); //OPimTodo todo()const; QSignal* signal(); //QWidget* widget(); protected: MainWindow* mainWindow(); void commit(); private: MainWindow* m_main; QSignal* m_sig; }; }; #endif diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp index 90ad19e..f700716 100644 --- a/core/pim/todo/quickeditimpl.cpp +++ b/core/pim/todo/quickeditimpl.cpp @@ -1,117 +1,149 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <qaction.h> #include <qlineedit.h> #include <qwhatsthis.h> -#include <qpe/resource.h> - #include <opie2/oclickablelabel.h> +#include <opie2/oresource.h> #include "mainwindow.h" #include "quickeditimpl.h" QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible ) : QToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) { setHorizontalStretchable( TRUE ); // Load priority icons // TODO - probably should be done globally somewhere else, // see also tableview.cpp/h, taskeditoroverview.cpp/h - priority1 = Resource::loadPixmap( "todo/priority1" ); - priority3 = Resource::loadPixmap( "todo/priority3" ); - priority5 = Resource::loadPixmap( "todo/priority5" ); + priority1 = Opie::Core::OResource::loadPixmap( "todo/priority1" ); + priority3 = Opie::Core::OResource::loadPixmap( "todo/priority3" ); + priority5 = Opie::Core::OResource::loadPixmap( "todo/priority5" ); m_lbl = new Opie::Ui::OClickableLabel( this ); m_lbl->setMinimumWidth( 15 ); m_lbl->setPixmap( priority3 ); connect(m_lbl, SIGNAL(clicked() ), this, SLOT(slotPrio()) ); QWhatsThis::add( m_lbl, QWidget::tr( "Click here to set the priority of new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); m_edit = new QLineEdit( this ); setStretchableWidget( m_edit ); QWhatsThis::add( m_edit, QWidget::tr( "Enter description of new task here.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); /* * it's not implemented and won't be implemented for 1.0 */ #if 0 - QAction *a = new QAction( QWidget::tr( "More" ), Resource::loadPixmap( "todo/more" ), QString::null, 0, this, 0 ); + QAction *a = new QAction( QWidget::tr( "More" ), Opie::Core::OResource::loadPixmap( "todo/more", Opie::Core::OResource::SmallIcon ), + QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( slotMore() ) ); a->addTo( this ); a->setWhatsThis( QWidget::tr( "Click here to enter additional information for new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); #endif - QAction *a = new QAction( QWidget::tr( "Enter" ), Resource::loadPixmap( "enter" ), QString::null, 0, this, 0 ); + QAction *a = new QAction( QWidget::tr( "Enter" ), Opie::Core::OResource::loadPixmap( "enter", Opie::Core::OResource::SmallIcon ), + QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( slotEnter() ) ); a->addTo( this ); a->setWhatsThis( QWidget::tr( "Click here to add new task.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); - a = new QAction( QWidget::tr( "Cancel" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + a = new QAction( QWidget::tr( "Cancel" ), Opie::Core::OResource::loadPixmap( "close", Opie::Core::OResource::SmallIcon ), + QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( slotCancel() ) ); a->addTo( this ); a->setWhatsThis( QWidget::tr( "Click here to reset new task information.\n\nThis area is called the quick task bar.\n\nIt allows you to quickly add a new task to your list. This area can be shown or hidden by selecting Options->'Show quick task bar' from the menu above." ) ); m_visible = visible; if ( !m_visible ) { hide(); } m_menu = 0l; reinit(); } QuickEditImpl::~QuickEditImpl() { } OPimTodo QuickEditImpl::todo()const { return m_todo; } QWidget* QuickEditImpl::widget() { return this; } void QuickEditImpl::slotEnter() { OPimTodo todo; if (!m_edit->text().isEmpty() ) { todo.setUid(1 ); // new uid todo.setPriority( m_state ); todo.setSummary( m_edit->text() ); if ( ((Todo::MainWindow *)parent())->currentCatId() != 0 ) todo.setCategories( ((Todo::MainWindow *)parent())->currentCatId() ); m_todo = todo; commit(); } m_todo = todo; reinit(); } void QuickEditImpl::slotPrio() { m_state -= 2; if ( m_state < 1 ) m_state = 5; switch( m_state ) { case 1: m_lbl->setPixmap( priority1 ); break; case 5: m_lbl->setPixmap( priority5 ); break; case 3: default: m_lbl->setPixmap( priority3 ); break; } } void QuickEditImpl::slotMore() { // TODO - implement } void QuickEditImpl::slotCancel() { reinit(); } void QuickEditImpl::reinit() { m_state = 3; m_lbl->setPixmap( priority3 ); m_edit->clear(); } diff --git a/core/pim/todo/quickeditimpl.h b/core/pim/todo/quickeditimpl.h index d465dba..cfb33a9 100644 --- a/core/pim/todo/quickeditimpl.h +++ b/core/pim/todo/quickeditimpl.h @@ -1,41 +1,71 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_QUICK_EDIT_IMPL_H #define OPIE_QUICK_EDIT_IMPL_H #include <qpixmap.h> #include <qtoolbar.h> #include "quickedit.h" class QLineEdit; class QLabel; class QuickEditImpl : public QToolBar, public Todo::QuickEdit { Q_OBJECT public: QuickEditImpl( QWidget* parent, bool visible); ~QuickEditImpl(); OPimTodo todo()const; QWidget* widget(); private slots: void slotEnter(); void slotPrio(); void slotMore(); void slotCancel(); private: void reinit(); int m_state; QLabel* m_lbl; QLineEdit* m_edit; QLabel* m_enter; QLabel* m_more; QPopupMenu* m_menu; OPimTodo m_todo; bool m_visible; QPixmap priority1; QPixmap priority3; QPixmap priority5; }; #endif diff --git a/core/pim/todo/smalltodo.cpp b/core/pim/todo/smalltodo.cpp index 504256d..c5e1201 100644 --- a/core/pim/todo/smalltodo.cpp +++ b/core/pim/todo/smalltodo.cpp @@ -1,113 +1,115 @@ /* - =. This file is part of the OPIE Project - .=l. Copyright (c) 2002 <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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include "smalltodo.h" using namespace Todo; struct SmallTodo::SmallTodoPrivate : public QShared{ SmallTodoPrivate() : QShared(), uid(-1) {}; QString name; QStringList categories; // as real Names int uid; bool complete:1; QDate date; void deleteSelf() { delete this; }; }; SmallTodo::SmallTodo(int uid, bool comp, const QDate& date, const QString& name, const QStringList& cats) { d = new SmallTodoPrivate(); d->name = name; d->uid = uid; d->categories = cats; d->complete = comp; d->date = date; } SmallTodo::SmallTodo( const SmallTodo& s ) : d(s.d) { d->ref(); } SmallTodo::~SmallTodo() { /* deref and if last one delete */ if ( d->deref() ) { d->deleteSelf(); } } bool SmallTodo::operator==( const SmallTodo& todo ) { if ( d->complete != todo.d->complete ) return false; if ( d->name != todo.d->name ) return false; if ( d->uid != todo.d->uid ) return false; if ( d->categories != todo.d->categories ) return false; if ( d->date != todo.d->date ) return false; return true; } bool SmallTodo::operator==( const SmallTodo& todo ) const{ if ( d->complete != todo.d->complete ) return false; if ( d->uid != todo.d->uid ) return false; if ( d->name != todo.d->name ) return false; if ( d->categories != todo.d->categories ) return false; if ( d->date != todo.d->date ) return false; return true; } SmallTodo &SmallTodo::operator=( const SmallTodo& todo ) { todo.d->ref(); deref(); d = todo.d; return *this; } void SmallTodo::deref() { if ( d->deref() ) { delete d; d = 0; } } QString SmallTodo::name() const { return d->name; } QStringList SmallTodo::categories()const { return d->categories; } int SmallTodo::uid()const { return d->uid; } bool SmallTodo::isCompleted()const { return d->complete; } QDate SmallTodo::date()const { return d->date; } diff --git a/core/pim/todo/smalltodo.h b/core/pim/todo/smalltodo.h index 963218e..d6db0e6 100644 --- a/core/pim/todo/smalltodo.h +++ b/core/pim/todo/smalltodo.h @@ -1,70 +1,72 @@ /* - =. This file is part of the OPIE Project - .=l. Copyright (c) 2002 <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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TODO_SMALL_TODO_H #define TODO_SMALL_TODO_H #include <qdatetime.h> #include <qstring.h> #include <qstringlist.h> namespace Todo { /** * SmallTodo holds everything necessary * to represent a OPimTodo without holding * everything from a OPimTodo */ class SmallTodo { public: SmallTodo(int uid = 0, bool comp = false, const QDate& date = QDate::currentDate(), const QString& = QString::null, const QStringList& = QStringList() ); SmallTodo( const SmallTodo& ); ~SmallTodo(); bool operator==( const SmallTodo& ); bool operator==( const SmallTodo& ) const; SmallTodo &operator=( const SmallTodo& ); QString name()const; QStringList categories()const; int uid()const; bool isCompleted()const; QDate date()const; private: struct SmallTodoPrivate; SmallTodoPrivate* d; void deref(); }; }; #endif diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index c64ad46..3e88974 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp @@ -1,482 +1,485 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ + #include <stdlib.h> #include <cmath> #include <cctype> #include <opie2/odebug.h> #include <opie2/opimrecurrence.h> +#include <opie2/oresource.h> #include <qpe/config.h> #include <qpe/qpeapplication.h> -#include <qpe/resource.h> #include <qcombobox.h> #include <qlineedit.h> #include <qpopupmenu.h> #include "mainwindow.h" //#include "tableitems.h" #include "tableview.h" using namespace Todo; namespace { static const int BoxSize = 14; static const int RowHeight = 20; } TableView::EditorWidget::EditorWidget() : m_wid(0l), m_row(-1), m_col(-1) { } void TableView::EditorWidget::setCellWidget(QWidget* wid, int row, int col ) { m_wid = wid; m_row = row; m_col = col; } void TableView::EditorWidget::releaseCellWidget() { m_wid = 0; m_row = m_col = -1; } QWidget* TableView::EditorWidget::cellWidget()const { return m_wid; } int TableView::EditorWidget::cellRow()const { return m_row; } int TableView::EditorWidget::cellCol()const { return m_col; } void TableView::initConfig() { Config config( "todo" ); config.setGroup( "Options" ); m_completeStrokeWidth = config.readNumEntry( "CompleteStrokeWidth", 8 ); for (int i = 0; i < numCols(); i++ ) { int width = config.readNumEntry("Width"+QString::number(i), -1 ); setColumnWidth(i, width == -1 ? columnWidth(i) : width ); } } TableView::TableView( MainWindow* window, QWidget* wid ) : QTable( wid ), TodoView( window ) { setName("TableView"); // Load icons // TODO - probably should be done globally somewhere else, // see also quickeditimpl.cpp/h, taskeditoroverview.cpp/h - m_pic_completed = Resource::loadPixmap( "todo/completed" ); + m_pic_completed = Opie::Core::OResource::loadPixmap( "todo/completed" ); QString namestr; for ( unsigned int i = 1; i < 6; i++ ) { namestr = "todo/priority"; namestr.append( QString::number( i ) ); - m_pic_priority[ i - 1 ] = Resource::loadPixmap( namestr ); + m_pic_priority[ i - 1 ] = Opie::Core::OResource::loadPixmap( namestr ); } setUpdatesEnabled( false ); viewport()->setUpdatesEnabled( false ); m_enablePaint = false; setNumRows(0); setNumCols(4); horizontalHeader()->setLabel( 0, QWidget::tr("C.") ); horizontalHeader()->setLabel( 1, QWidget::tr("Priority") ); horizontalHeader()->setLabel( 2, QWidget::tr("Summary" ) ); horizontalHeader()->setLabel( 3, QWidget::tr("Deadline") ); setShowDeadline( todoWindow()->showDeadline() ); setSorting( TRUE ); setSelectionMode( NoSelection ); 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(valueChanged(int,int) ), this, SLOT( slotValueChanged(int,int) ) ); connect((QTable*)this, SIGNAL(currentChanged(int,int) ), this, SLOT( slotCurrentChanged(int,int) ) ); /* now let's init the config */ initConfig(); m_enablePaint = true; setUpdatesEnabled( true ); viewport()->setUpdatesEnabled( true ); viewport()->update(); setSortOrder( Opie::OPimTodoAccess::Completed ); setAscending( TRUE ); m_first = true; } /* a new day has started * update the day */ void TableView::newDay() { clear(); updateView(); } TableView::~TableView() { Config config( "todo" ); config.setGroup( "Options" ); for (int i = 0; i < numCols(); i++ ) config.writeEntry("Width"+QString::number(i), columnWidth(i) ); } QString TableView::type() const { return QString::fromLatin1( tr("Table View") ); } int TableView::current() { if (numRows() == 0 ) return 0; int uid = sorted().uidAt(currentRow() ); return uid; } int TableView::next() { if ( numRows() == 0 ) return 0; if ( currentRow() + 1 >= numRows() ) return 0; setCurrentCell( currentRow() +1, currentColumn() ); return sorted().uidAt( currentRow() ); } int TableView::prev() { if ( numRows() == 0 ) return 0; if ( currentRow() - 1 < 0 ) return 0; setCurrentCell( currentRow() -1, currentColumn() ); return sorted().uidAt( currentRow() ); } QString TableView::currentRepresentation() { OPimTodo to = sorted()[currentRow()]; return to.summary().isEmpty() ? to.description().left(20) : to.summary() ; } /* show overdue */ void TableView::showOverDue( bool ) { clear(); updateView(); } void TableView::updateView( ) { m_row = false; static int id; id = startTimer(4000 ); /* FIXME we want one page to be read! * * Calculate that screensize */ todoWindow()->setReadAhead( 4 ); sort(); OPimTodoAccess::List::Iterator it, end; it = sorted().begin(); end = sorted().end(); QTime time; time.start(); m_enablePaint = false; setUpdatesEnabled( false ); viewport()->setUpdatesEnabled( false ); setNumRows( it.count() ); if ( it.count() == 0 ) killTimer(id); // int elc = time.elapsed(); setUpdatesEnabled( true ); viewport()->setUpdatesEnabled( true ); viewport()->update(); m_enablePaint = true; // int el = time.elapsed(); } void TableView::setTodo( int, const OPimTodo&) { sort(); /* repaint */ repaint(); } void TableView::addEvent( const OPimTodo&) { /* fix problems of not showing the 'Haken' */ updateView(); } /* * find the event * and then replace the complete row */ void TableView::replaceEvent( const OPimTodo& ev) { addEvent( ev ); } /* * re aligning table can be slow too * FIXME: look what performs better * either this or the old align table */ void TableView::removeEvent( int ) { updateView(); } void TableView::setShowCompleted( bool ) { updateView(); } void TableView::setShowDeadline( bool b ) { if ( b ) showColumn( 3 ); else hideColumn( 3 ); // Try to intelligently size columns // TODO - would use width() below, but doesn't have valid value at time of c'tor int col2width = 238; int width = m_pic_completed.width(); setColumnWidth( 0, width ); col2width -= width; width = fontMetrics().boundingRect( horizontalHeader()->label( 1 ) ).width() + 8; setColumnWidth( 1, width ); col2width -= width; if ( b ) { width = fontMetrics().boundingRect( horizontalHeader()->label( 3 ) ).width() + 8; setColumnWidth( 3, width ); col2width -= width; } setColumnWidth( 2, col2width ); } void TableView::setShowCategory( const QString& str) { if ( str != m_oleCat || m_first ) updateView(); m_oleCat = str; m_first = false; } void TableView::clear() { setNumRows(0); } void TableView::slotClicked(int row, int col, int, const QPoint& point) { if ( m_editorWidget.cellWidget() ) { //setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() ); endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(), true, true ); m_editorWidget.releaseCellWidget(); } if ( !cellGeometry(row, col ).contains(point ) ) return; int ui= sorted().uidAt( row ); switch( col ) { case 0:{ int x = point.x() -columnPos( col ); int y = point.y() -rowPos( row ); int w = columnWidth( col ); int h = rowHeight( row ); if ( x >= ( w - BoxSize ) / 2 && x <= ( w - BoxSize ) / 2 + BoxSize && y >= ( h - BoxSize ) / 2 && y <= ( h - BoxSize ) / 2 + BoxSize ) { TodoView::complete(sorted()[row] ); } } break; // Priority emit a double click... case 1:{ QWidget* wid = beginEdit( row, col, FALSE ); m_editorWidget.setCellWidget( wid, row, col ); } break; case 2: { showTodo( ui ); break; } case 3: { TodoView::edit( ui ); break; } } } QWidget* TableView::widget() { return this; } /* * We need to overwrite sortColumn * because we want to sort whole row * based * We event want to set the setOrder * to a sort() and update() */ void TableView::sortColumn( int col, bool asc, bool ) { switch(col) { case 1: col = Opie::OPimTodoAccess::Priority; break; case 2: col = Opie::OPimTodoAccess::SortSummary; break; case 3: col = Opie::OPimTodoAccess::Deadline; break; case 0: default: col = Opie::OPimTodoAccess::Completed; break; } setSortOrder( col ); setAscending( asc ); updateView(); } void TableView::viewportPaintEvent( QPaintEvent* e) { if (m_enablePaint ) QTable::viewportPaintEvent( e ); } /* * This segment is copyrighted by TT * it was taken from their todolist * application this code is GPL */ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool ) { const QColorGroup &cg = colorGroup(); p->save(); OPimTodo task = sorted()[row]; // TODO - give user option for grid or bars? // Paint alternating background bars if ( (row % 2 ) == 0 ) { p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); p->setPen( QPen( cg.text() ) ); } else { p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) ); p->setPen( QPen( cg.buttonText() ) ); } // Paint grid //p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Base ) ); //QPen op = p->pen(); //p->setPen(cg.mid()); //p->drawLine( 0, cr.height() - 1, cr.width() - 1, cr.height() - 1 ); //p->drawLine( cr.width() - 1, 0, cr.width() - 1, cr.height() - 1 ); //p->setPen(op); QFont f = p->font(); QFontMetrics fm(f); int marg = ( cr.width() - BoxSize ) / 2; int x = 0; int y = ( cr.height() - BoxSize ) / 2; switch(col) { case 0: // completed field { //p->setPen( QPen( cg.text() ) ); //p->drawRect( x + marg, y, BoxSize, BoxSize ); //p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); if ( task.isCompleted() ) { p->drawPixmap( x + marg, y, m_pic_completed ); } } break; case 1: // priority field { p->drawPixmap( x + marg, y, m_pic_priority[ task.priority() - 1 ] ); } break; case 2: // description field { QString text = task.summary().isEmpty() ? task.description().left(20) : task.summary(); p->drawText(2,2 + fm.ascent(), text); } break; case 3: { QString text; if (task.hasDueDate()) { int off = QDate::currentDate().daysTo( task.dueDate() ); text = tr( "%1 day(s)").arg(QString::number(off)); /* * set color if not completed */ if (!task.isCompleted() ) { QColor color = Qt::black; if ( off < 0 ) color = Qt::red; else if ( off == 0 ) color = Qt::yellow; else if ( off > 0 ) color = Qt::green; p->setPen(color ); } } else { text = tr("None"); } p->drawText(2,2 + fm.ascent(), text); } break; } p->restore(); } QWidget* TableView::createEditor(int row, int col, bool )const { switch( col ) { case 1: { /* the priority stuff */ QComboBox* combo = new QComboBox( viewport() ); for ( int i = 0; i < 5; i++ ) { combo->insertItem( m_pic_priority[ i ] ); } combo->setCurrentItem( sorted()[row].priority()-1 ); return combo; } /* summary */ case 2:{ QLineEdit* edit = new QLineEdit( viewport() ); edit->setText( sorted()[row].summary() ); return edit; } case 0: default: return 0l; } } void TableView::setCellContentFromEditor(int row, int col ) { if ( col == 1 ) { QWidget* wid = cellWidget(row, 1 ); if ( wid->inherits("QComboBox") ) { int pri = ((QComboBox*)wid)->currentItem() + 1; OPimTodo todo = sorted()[row]; diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h index 46c16e1..6693d86 100644 --- a/core/pim/todo/tableview.h +++ b/core/pim/todo/tableview.h @@ -1,124 +1,126 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef OPIE_TABLE_VIEW_H #define OPIE_TABLE_VIEW_H #include <qtable.h> #include <qmap.h> #include <qpixmap.h> #include "todoview.h" class QTimer; namespace Todo { class CheckItem; class DueTextItem; class TableView : public QTable, public TodoView { Q_OBJECT public: TableView( MainWindow*, QWidget* parent ); ~TableView(); QString type()const; int current(); QString currentRepresentation(); int next(); int prev(); void clear(); void showOverDue( bool ); void updateView(); void setTodo( int uid, const OPimTodo& ); void addEvent( const OPimTodo& event ); void replaceEvent( const OPimTodo& ); void removeEvent( int uid ); void setShowCompleted( bool ); void setShowDeadline( bool ); void setShowCategory(const QString& =QString::null ); void newDay(); QWidget* widget(); void sortColumn(int, bool, bool ); /* * we do our drawing ourselves * because we don't want to have * 40.000 QTableItems for 10.000 * OPimTodos where we only show 10 at a time! */ void paintCell(QPainter* p, int row, int col, const QRect&, bool ); private: /* reimplented for internal reasons */ void viewportPaintEvent( QPaintEvent* ); bool m_enablePaint:1; QString m_oleCat; bool m_first : 1; QPixmap m_pic_completed; QPixmap m_pic_priority[ 5 ]; protected: void keyPressEvent( QKeyEvent* ); 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 ); /** * for inline editing on single click and to work around some * bug in qt2.3.5 */ struct EditorWidget { EditorWidget(); void setCellWidget(QWidget*, int row, int col ); void releaseCellWidget(); QWidget* cellWidget()const; int cellRow()const; int cellCol()const; private: QWidget* m_wid; int m_row, m_col; }; EditorWidget m_editorWidget; private slots: void slotClicked(int, int, int, const QPoint& ); void slotPriority(); private: void initConfig(); int m_completeStrokeWidth; bool m_row : 1; QPoint m_prevP; }; }; #endif diff --git a/core/pim/todo/taskeditoralarms.cpp b/core/pim/todo/taskeditoralarms.cpp index 62fc600..054984d 100644 --- a/core/pim/todo/taskeditoralarms.cpp +++ b/core/pim/todo/taskeditoralarms.cpp @@ -1,233 +1,238 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include "taskeditoralarms.h" #include <opie2/opimnotifymanager.h> +#include <opie2/oresource.h> #include <opie2/otimepicker.h> #include <qpe/datebookmonth.h> -#include <qpe/resource.h> #include <qlistview.h> #include <qlayout.h> using namespace Opie::Ui; class AlarmItem : public QListViewItem { public: AlarmItem( QListView*, const OPimAlarm& ); ~AlarmItem(); OPimAlarm alarm()const; void setAlarm( const OPimAlarm& ); private: QDateTime m_dt; int m_type; }; AlarmItem::AlarmItem( QListView* view, const OPimAlarm& dt) : QListViewItem(view) { setAlarm( dt ); } void AlarmItem::setAlarm( const OPimAlarm& dt ) { m_dt = dt.dateTime(); m_type = dt.sound(); setText( 0, TimeString::dateString( m_dt.date() ) ); setText( 1, TimeString::timeString( m_dt.time() ) ); setText( 2, m_type == 0 ? QObject::tr("silent") : QObject::tr("loud") ); } AlarmItem::~AlarmItem() { } OPimAlarm AlarmItem::alarm()const{ OPimAlarm al( m_type, m_dt ); return al; } TaskEditorAlarms::TaskEditorAlarms( QWidget* parent, int, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { m_date = m_type = m_time = 0; QGridLayout *layout = new QGridLayout( this, 2, 2, 4, 4 ); lstAlarms = new QListView( this ); lstAlarms->addColumn( tr("Date") ); lstAlarms->addColumn( tr("Time") ); lstAlarms->addColumn( tr("Type") ); connect( lstAlarms, SIGNAL(clicked(QListViewItem*,const QPoint&,int) ), this, SLOT(inlineEdit(QListViewItem*,const QPoint&,int) ) ); layout->addMultiCellWidget( lstAlarms, 0, 0, 0, 2 ); - QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), this ); + QPushButton *btn = new QPushButton( Opie::Core::OResource::loadPixmap( "new", Opie::Core::OResource::SmallIcon ), + tr( "New" ), this ); //QWhatsThis::add( btn, tr( "Click here to add a new transaction." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotNew() ) ); layout->addWidget( btn, 1, 0 ); /* use when we've reminders too */ #if 0 - btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), this ); + btn = new QPushButton( Opie::Core::OResource::loadPixmap( "edit", Opie::Core::OResource::SmallIcon ), + tr( "Edit" ), this ); //QWhatsThis::add( btn, tr( "Select a transaction and then click here to edit it." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotEdit() ) ); layout->addWidget( btn, 1, 1 ); #endif - btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), this ); + btn = new QPushButton( Opie::Core::OResource::loadPixmap( "trash", Opie::Core::OResource::SmallIcon ), + tr( "Delete" ), this ); //QWhatsThis::add( btn, tr( "Select a checkbook and then click here to delete it." ) ); connect( btn, SIGNAL( clicked() ), this, SLOT( slotDelete() ) ); layout->addWidget( btn, 1, 2 ); } TaskEditorAlarms::~TaskEditorAlarms(){ } void TaskEditorAlarms::slotNew(){ (void)new AlarmItem(lstAlarms, OPimAlarm(0, QDateTime::currentDateTime() ) ); } void TaskEditorAlarms::slotEdit(){ } void TaskEditorAlarms::slotDelete(){ QListViewItem* item = lstAlarms->currentItem(); if (!item) return; lstAlarms->takeItem( item ); delete item; } void TaskEditorAlarms::load( const OPimTodo& todo) { lstAlarms->clear(); if (!todo.hasNotifiers() ) return; OPimNotifyManager::Alarms als = todo.notifiers().alarms(); if (als.isEmpty() ) return; OPimNotifyManager::Alarms::Iterator it = als.begin(); for ( ; it != als.end(); ++it ) (void)new AlarmItem( lstAlarms, (*it) ); } void TaskEditorAlarms::save( OPimTodo& todo ) { if (lstAlarms->childCount() <= 0 ) return; OPimNotifyManager::Alarms alarms; for ( QListViewItem* item = lstAlarms->firstChild(); item; item = item->nextSibling() ) { AlarmItem *alItem = static_cast<AlarmItem*>(item); alarms.append( alItem->alarm() ); } OPimNotifyManager& manager = todo.notifiers(); manager.setAlarms( alarms ); } void TaskEditorAlarms::inlineEdit( QListViewItem* alarm, const QPoint& p, int col ) { if (!alarm) return; AlarmItem* item = static_cast<AlarmItem*>(alarm); switch( col ) { // date case 0: return inlineSetDate( item, p ); // time case 1: return inlineSetTime( item ); // type case 2: return inlineSetType( item, p ); } } void TaskEditorAlarms::inlineSetDate( AlarmItem* item, const QPoint& p ) { QPopupMenu* pop = popup( 0 ); m_dbMonth->setDate( item->alarm().dateTime().date() ); pop->exec(p); OPimAlarm al = item->alarm(); QDateTime dt = al.dateTime(); dt.setDate( m_dbMonth->selectedDate() ); al.setDateTime( dt ); item->setAlarm( al ); } void TaskEditorAlarms::inlineSetType( AlarmItem* item, const QPoint& p ) { int type; QPopupMenu* pop = popup( 2 ); switch( pop->exec(p) ) { case 10: type = 1; break; case 20: default: type = 0; } OPimAlarm al = item->alarm(); al.setSound( type ); item->setAlarm( al ); } void TaskEditorAlarms::inlineSetTime( AlarmItem* item ) { OPimAlarm al = item->alarm(); QDateTime dt = al.dateTime(); OTimePickerDialog dialog; dialog.setTime( dt.time() ); if ( dialog.exec() == QDialog::Accepted ) { dt.setTime( dialog.time() ); al.setDateTime( dt ); item->setAlarm( al ); } } QPopupMenu* TaskEditorAlarms::popup( int column ) { QPopupMenu* pop = 0; switch( column ) { case 0:{ if (!m_date) { m_date = new QPopupMenu(this); m_dbMonth = new DateBookMonth(m_date, 0, TRUE); m_date->insertItem(m_dbMonth); } pop = m_date; } break; case 1: break; case 2:{ if (!m_type) { m_type = new QPopupMenu(this); m_type->insertItem( QObject::tr("loud"), 10 ); m_type->insertItem( QObject::tr("silent"), 20 ); } pop = m_type; } break; default: break; } return pop; } diff --git a/core/pim/todo/taskeditoralarms.h b/core/pim/todo/taskeditoralarms.h index 2379b0c..5cff352 100644 --- a/core/pim/todo/taskeditoralarms.h +++ b/core/pim/todo/taskeditoralarms.h @@ -1,75 +1,77 @@ /* - =. This file is part of the OPIE Project - .=l. Copyright (c) 2002,2003 <> - .>+-= - _;:, .> :=|. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TASKEDITORALARMS_H #define TASKEDITORALARMS_H #include <opie2/opimtodo.h> #include <qwidget.h> class QListView; class QListViewItem; using namespace Opie; class AlarmItem; class DateBookMonth; class TaskEditorAlarms : public QWidget { Q_OBJECT public: enum Type { Alarm = 0, Reminders }; TaskEditorAlarms( QWidget* parent = 0, int type = Alarm, const char* name = 0, WFlags fl = 0 ); ~TaskEditorAlarms(); void load( const OPimTodo& ); void save( OPimTodo& ); private: QPopupMenu* popup( int column ); void inlineSetDate( AlarmItem*, const QPoint& p ); void inlineSetTime( AlarmItem*); void inlineSetType( AlarmItem*, const QPoint& p ); QListView* lstAlarms; QPopupMenu* m_date; QPopupMenu* m_time; QPopupMenu* m_type; DateBookMonth* m_dbMonth; protected slots: void slotNew(); void slotEdit(); void slotDelete(); void inlineEdit( QListViewItem*, const QPoint& p, int ); }; #endif // TASKEDITORALARMS_H diff --git a/core/pim/todo/taskeditoroverview.cpp b/core/pim/todo/taskeditoroverview.cpp index 294acb9..1e43883 100644 --- a/core/pim/todo/taskeditoroverview.cpp +++ b/core/pim/todo/taskeditoroverview.cpp @@ -1,175 +1,178 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include "taskeditoroverview.h" //#include <opie2/opimrecurrence.h> +#include <opie2/oresource.h> + #include <qpe/categoryselect.h> #include <qpe/datebookmonth.h> -#include <qpe/resource.h> #include <qcheckbox.h> #include <qlabel.h> #include <qlayout.h> #include <qmultilineedit.h> #include <qwhatsthis.h> TaskEditorOverView::TaskEditorOverView( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { // Load icons // TODO - probably should be done globally somewhere else, // see also quickeditimpl.cpp/h, tableview.cpp/h QString namestr; for ( unsigned int i = 1; i < 6; i++ ) { namestr = "todo/priority"; namestr.append( QString::number( i ) ); - m_pic_priority[ i - 1 ] = Resource::loadPixmap( namestr ); + m_pic_priority[ i - 1 ] = Opie::Core::OResource::loadPixmap( namestr ); } QVBoxLayout *vb = new QVBoxLayout( this ); QScrollView *sv = new QScrollView( this ); vb->addWidget( sv ); sv->setResizePolicy( QScrollView::AutoOneFit ); sv->setFrameStyle( QFrame::NoFrame ); QWidget *container = new QWidget( sv->viewport() ); sv->addChild( container ); QGridLayout *layout = new QGridLayout( container, 7, 2, 4, 4 ); // Description QLabel *label = new QLabel( tr( "Summary:" ), container ); layout->addWidget( label, 0, 0 ); QWhatsThis::add( label, tr( "Enter brief description of the task here." ) ); cmbDesc = new QComboBox( TRUE, container ); cmbDesc->insertItem( tr( "Complete " ) ); cmbDesc->insertItem( tr( "Work on " ) ); cmbDesc->insertItem( tr( "Buy " ) ); cmbDesc->insertItem( tr( "Organize " ) ); cmbDesc->insertItem( tr( "Get " ) ); cmbDesc->insertItem( tr( "Update " ) ); cmbDesc->insertItem( tr( "Create " ) ); cmbDesc->insertItem( tr( "Plan " ) ); cmbDesc->insertItem( tr( "Call " ) ); cmbDesc->insertItem( tr( "Mail " ) ); cmbDesc->clearEdit(); layout->addMultiCellWidget( cmbDesc, 1, 1, 0, 1 ); QWhatsThis::add( cmbDesc, tr( "Enter brief description of the task here." ) ); // Priority label = new QLabel( QWidget::tr( "Priority:" ), container ); layout->addWidget( label, 2, 0 ); QWhatsThis::add( label, tr( "Select priority of task here." ) ); cmbPriority = new QComboBox( FALSE, container ); cmbPriority->setMinimumHeight( 26 ); cmbPriority->insertItem( m_pic_priority[ 0 ], tr( "Very High" ) ); cmbPriority->insertItem( m_pic_priority[ 1 ], tr( "High" ) ); cmbPriority->insertItem( m_pic_priority[ 2 ], tr( "Normal" ) ); cmbPriority->insertItem( m_pic_priority[ 3 ], tr( "Low" ) ); cmbPriority->insertItem( m_pic_priority[ 4 ], tr( "Very Low" ) ); cmbPriority->setCurrentItem( 2 ); layout->addWidget( cmbPriority, 2, 1 ); QWhatsThis::add( cmbPriority, tr( "Select priority of task here." ) ); // Category label = new QLabel( tr( "Category:" ), container ); layout->addWidget( label, 3, 0 ); QWhatsThis::add( label, tr( "Select category to organize this task with." ) ); cmbCategory = new CategorySelect( container ); layout->addWidget( cmbCategory, 3, 1 ); QWhatsThis::add( cmbCategory, tr( "Select category to organize this task with." ) ); // Recurrence ckbRecurrence = new QCheckBox( tr( "Recurring task" ), container ); layout->addMultiCellWidget( ckbRecurrence, 4, 4, 0, 1 ); QWhatsThis::add( ckbRecurrence, tr( "Click here if task happens on a regular basis. If selected, frequency can be set on the Recurrence tab." ) ); connect( ckbRecurrence, SIGNAL(clicked() ), this, SLOT( slotRecClicked() ) ); // Notes label = new QLabel( tr( "Description:" ), container ); layout->addWidget( label, 5, 0 ); QWhatsThis::add( label, tr( "Enter any additional information about this task here." ) ); mleNotes = new QMultiLineEdit( container ); mleNotes->setWordWrap( QMultiLineEdit::WidgetWidth ); layout->addMultiCellWidget( mleNotes, 6, 6, 0, 1 ); QWhatsThis::add( mleNotes, tr( "Enter any additional information about this task here." ) ); } TaskEditorOverView::~TaskEditorOverView() { } void TaskEditorOverView::load( const OPimTodo& todo ) { // Description cmbDesc->insertItem( todo.summary(), 0 ); cmbDesc->setCurrentItem( 0 ); // Priority cmbPriority->setCurrentItem( todo.priority() - 1 ); // Category cmbCategory->setCategories( todo.categories(), "Todo List", tr( "Todo List" ) ); // Recurrence ckbRecurrence->setChecked( todo.hasRecurrence() ); emit recurranceEnabled( todo.hasRecurrence() ); // Notes mleNotes->setText( todo.description() ); } void TaskEditorOverView::save( OPimTodo &todo ) { // Description todo.setSummary( cmbDesc->currentText() ); // Priority todo.setPriority( cmbPriority->currentItem() + 1 ); // Category if ( cmbCategory->currentCategory() != -1 ) { QArray<int> arr = cmbCategory->currentCategories(); todo.setCategories( arr ); } // Recurrence - don't need to save here... // Notes todo.setDescription( mleNotes->text() ); } void TaskEditorOverView::slotRecClicked() { emit recurranceEnabled( ckbRecurrence->isChecked() ); } diff --git a/core/pim/todo/taskeditoroverview.h b/core/pim/todo/taskeditoroverview.h index 89679f1..db85041 100644 --- a/core/pim/todo/taskeditoroverview.h +++ b/core/pim/todo/taskeditoroverview.h @@ -1,71 +1,73 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TASKEDITOROVERVIEW_H #define TASKEDITOROVERVIEW_H #include <opie2/opimtodo.h> #include <qpixmap.h> #include <qwidget.h> class CategorySelect; class QCheckBox; class QComboBox; class QMultiLineEdit; using namespace Opie; class TaskEditorOverView : public QWidget { Q_OBJECT public: TaskEditorOverView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~TaskEditorOverView(); QComboBox *cmbDesc; QComboBox *cmbPriority; CategorySelect *cmbCategory; QCheckBox *ckbRecurrence; QMultiLineEdit *mleNotes; void load( const OPimTodo & ); void save( OPimTodo & ); signals: void recurranceEnabled( bool ); protected: QPixmap m_pic_priority[ 5 ]; protected slots: void slotRecClicked(); }; #endif // TASKEDITOROVERVIEW_H diff --git a/core/pim/todo/taskeditorstatus.cpp b/core/pim/todo/taskeditorstatus.cpp index 16351e0..17495a4 100644 --- a/core/pim/todo/taskeditorstatus.cpp +++ b/core/pim/todo/taskeditorstatus.cpp @@ -1,302 +1,304 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include "taskeditorstatus.h" #include <opie2/opimmaintainer.h> #include <opie2/opimstate.h> #include <qpe/datebookmonth.h> #include <qcheckbox.h> #include <qcombobox.h> #include <qlabel.h> #include <qlayout.h> #include <qwhatsthis.h> // FIXME add the hack slots instead of setPopup!!!! // drw you shouldn't have removed them TaskEditorStatus::TaskEditorStatus( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { QDate curDate = QDate::currentDate(); m_start = m_comp = m_due = curDate; QString curDateStr = TimeString::longDateString( curDate ); QVBoxLayout *vb = new QVBoxLayout( this ); QScrollView *sv = new QScrollView( this ); vb->addWidget( sv ); sv->setResizePolicy( QScrollView::AutoOneFit ); sv->setFrameStyle( QFrame::NoFrame ); QWidget *container = new QWidget( sv->viewport() ); sv->addChild( container ); QGridLayout *layout = new QGridLayout( container, 7, 3, 4, 4 ); // Status QLabel *label = new QLabel( tr( "Status:" ), container ); layout->addWidget( label, 0, 0 ); QWhatsThis::add( label, tr( "Click here to set the current status of this task." ) ); cmbStatus = new QComboBox( FALSE, container ); cmbStatus->insertItem( tr( "Started" ) ); cmbStatus->insertItem( tr( "Postponed" ) ); cmbStatus->insertItem( tr( "Finished" ) ); cmbStatus->insertItem( tr( "Not started" ) ); layout->addMultiCellWidget( cmbStatus, 0, 0, 1, 2 ); QWhatsThis::add( cmbStatus, tr( "Click here to set the current status of this task." ) ); // Progress label = new QLabel( tr( "Progress:" ), container ); layout->addWidget( label, 1, 0 ); QWhatsThis::add( label, tr( "Select progress made on this task here." ) ); cmbProgress = new QComboBox( FALSE, container ); cmbProgress->insertItem( tr( "0 %" ) ); cmbProgress->insertItem( tr( "20 %" ) ); cmbProgress->insertItem( tr( "40 %" ) ); cmbProgress->insertItem( tr( "60 %" ) ); cmbProgress->insertItem( tr( "80 %" ) ); cmbProgress->insertItem( tr( "100 %" ) ); layout->addMultiCellWidget( cmbProgress, 1, 1, 1, 2 ); QWhatsThis::add( cmbProgress, tr( "Select progress made on this task here." ) ); // Start date ckbStart = new QCheckBox( tr( "Start Date:" ), container ); layout->addWidget( ckbStart, 2, 0 ); QWhatsThis::add( ckbStart, tr( "Click here to set the date this task was started." ) ); connect( ckbStart, SIGNAL( clicked() ), this, SLOT( slotStartChecked() ) ); btnStart = new QPushButton( curDateStr, container ); btnStart->setEnabled( FALSE ); layout->addMultiCellWidget( btnStart, 2, 2, 1, 2 ); QWhatsThis::add( btnStart, tr( "Click here to set the date this task was started." ) ); QPopupMenu *popup = new QPopupMenu( this ); m_startBook = new DateBookMonth( popup, 0, TRUE ); popup->insertItem( m_startBook ); btnStart->setPopup( popup ); connect( m_startBook, SIGNAL( dateClicked(int,int,int) ), this, SLOT( slotStartChanged(int,int,int) ) ); // Due date ckbDue = new QCheckBox( tr( "Due Date:" ), container ); layout->addWidget( ckbDue, 3, 0 ); QWhatsThis::add( ckbDue, tr( "Click here to set the date this task needs to be completed by." ) ); connect( ckbDue, SIGNAL( clicked() ), this, SLOT( slotDueChecked() ) ); btnDue = new QPushButton( curDateStr, container ); btnDue->setEnabled( FALSE ); layout->addMultiCellWidget( btnDue, 3, 3, 1, 2 ); QWhatsThis::add( btnDue, tr( "Click here to set the date this task needs to be completed by." ) ); popup = new QPopupMenu( this ); m_dueBook = new DateBookMonth( popup, 0, TRUE ); popup->insertItem( m_dueBook ); btnDue->setPopup( popup ); connect( m_dueBook, SIGNAL( dateClicked(int,int,int) ), this, SLOT( slotDueChanged(int,int,int) ) ); // Completed ckbComp = new QCheckBox( tr( "Completed:" ), container ); layout->addWidget( ckbComp, 4, 0 ); QWhatsThis::add( ckbComp, tr( "Click here to mark this task as completed." ) ); connect( ckbComp, SIGNAL( clicked() ), this, SLOT( slotCompChecked() ) ); btnComp = new QPushButton( curDateStr, container ); btnComp->setEnabled( FALSE ); layout->addMultiCellWidget( btnComp, 4, 4, 1, 2 ); QWhatsThis::add( btnComp, tr( "Click here to set the date this task was completed." ) ); popup = new QPopupMenu( this ); m_compBook = new DateBookMonth( popup, 0, TRUE ); popup->insertItem( m_compBook ); btnComp->setPopup( popup ); connect( m_compBook, SIGNAL( dateClicked(int,int,int) ), this, SLOT( slotCompChanged(int,int,int) ) ); QSpacerItem *spacer = new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding ); layout->addItem( spacer, 5, 0 ); // Maintainer mode #if 0 label = new QLabel( tr( "Maintainer Mode:" ), container ); layout->addWidget( label, 6, 0 ); QWhatsThis::add( label, tr( "Click here to set the maintainer's role." ) ); cmbMaintMode = new QComboBox( FALSE, container ); cmbMaintMode->insertItem( tr( "Nothing" ) ); cmbMaintMode->insertItem( tr( "Responsible" ) ); cmbMaintMode->insertItem( tr( "Done By" ) ); cmbMaintMode->insertItem( tr( "Coordinating" ) ); // layout->addMultiCellWidget( cmbMaintMode, 6, 6, 1, 2 ); QWhatsThis::add( cmbMaintMode, tr( "Click here to set the maintainer's role." ) ); // Maintainer label = new QLabel( tr( "Maintainer:" ), container ); layout->addWidget( label, 7, 0 ); QWhatsThis::add( label, tr( "This is the name of the current task maintainer." ) ); txtMaintainer = new QLabel( tr( "test" ), container ); txtMaintainer->setTextFormat( QLabel::RichText ); layout->addWidget( txtMaintainer, 7, 1 ); QWhatsThis::add( txtMaintainer, tr( "This is the name of the current task maintainer." ) ); tbtMaintainer = new QToolButton( container ); tbtMaintainer->setPixmap( Resource::loadPixmap( "todo/more" ) ); // layout->addWidget( tbtMaintainer, 7, 2 ); QWhatsThis::add( tbtMaintainer, tr( "Click here to select the task maintainer." ) ); #endif } TaskEditorStatus::~TaskEditorStatus() { } void TaskEditorStatus::load( const OPimTodo &todo ) { QDate date = QDate::currentDate(); QString str = TimeString::longDateString( date ); // Status int state = todo.hasState()? todo.state().state() : OPimState::NotStarted; if ( state == OPimState::Undefined ) state = OPimState::NotStarted; cmbStatus->setCurrentItem( state ); // Progress cmbProgress->setCurrentItem( todo.progress() / 20 ); // Start date ckbStart->setChecked( todo.hasStartDate() ); btnStart->setEnabled( todo.hasStartDate() ); if ( todo.hasStartDate() ) { m_start = todo.startDate(); btnStart->setText( TimeString::longDateString( m_start ) ); } else btnStart->setText( str ); // Due date ckbDue->setChecked( todo.hasDueDate() ); btnDue->setText( TimeString::longDateString( todo.dueDate() ) ); btnDue->setEnabled( todo.hasDueDate() ); m_due = todo.dueDate(); // Completed ckbComp->setChecked( todo.isCompleted() ); btnComp->setEnabled( todo.hasCompletedDate() ); if ( todo.hasCompletedDate() ) { m_comp = todo.completedDate(); btnComp->setText( TimeString::longDateString( m_comp ) ); } else btnComp->setText( str ); // Maintainer Mode #if 0 state = todo.hasMaintainer() ? todo.maintainer().mode() : OPimMaintainer::Nothing; if ( state == OPimMaintainer::Undefined ) state = OPimMaintainer::Nothing; cmbMaintMode->setCurrentItem( state ); #endif // Maintainer - not implemented yet } void TaskEditorStatus::save( OPimTodo &todo ) { QDate inval; // Status todo.setState( OPimState( cmbStatus->currentItem() ) ); // Progress todo.setProgress( cmbProgress->currentItem() * 20 ); // Start date if ( ckbStart->isChecked() ) { todo.setStartDate( m_start ); } else todo.setStartDate( inval ); // Due date if ( ckbDue->isChecked() ) { todo.setDueDate( m_due ); todo.setHasDueDate( true ); } else todo.setHasDueDate( false ); // Completed todo.setCompleted( ckbComp->isChecked() ); if ( ckbComp->isChecked() ) { todo.setCompletedDate( m_comp ); } else todo.setCompletedDate( inval ); #if 0 // Maintainer mode - not implemented yet // Maintainer /* TODO - resolve name to uid.....*/ todo.setMaintainer( OPimMaintainer( cmbMaintMode->currentItem(), -10 ) ); #endif } void TaskEditorStatus::slotStartChecked() { btnStart->setEnabled( ckbStart->isChecked() ); } void TaskEditorStatus::slotCompChecked() { btnComp->setEnabled( ckbComp->isChecked() ); } void TaskEditorStatus::slotDueChecked() { btnDue->setEnabled( ckbDue->isChecked() ); } void TaskEditorStatus::slotStartChanged(int y, int m, int d) { m_start.setYMD( y, m, d ); btnStart->setText( TimeString::longDateString( m_start ) ); } void TaskEditorStatus::slotCompChanged(int y, int m, int d) { m_comp.setYMD( y, m, d ); btnComp->setText( TimeString::longDateString( m_comp ) ); } void TaskEditorStatus::slotDueChanged(int y, int m, int d) { m_due.setYMD( y, m, d ); btnDue->setText( TimeString::longDateString( m_due ) ); emit dueDateChanged( m_due ); } diff --git a/core/pim/todo/taskeditorstatus.h b/core/pim/todo/taskeditorstatus.h index 97129f0..427eaf4 100644 --- a/core/pim/todo/taskeditorstatus.h +++ b/core/pim/todo/taskeditorstatus.h @@ -1,103 +1,105 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TASKEDITORSTATUS_H #define TASKEDITORSTATUS_H #include <opie2/opimtodo.h> #include <qdatetime.h> #include <qwidget.h> class DateBookMonth; class QCheckBox; class QComboBox; class QLabel; class QPushButton; class QToolButton; using namespace Opie; /** * This is the implementation of the Opie Task Editor Advanced tab * it features the State! * MaintainerMode * Description */ class TaskEditorStatus : public QWidget { Q_OBJECT public: TaskEditorStatus( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); ~TaskEditorStatus(); QComboBox *cmbStatus; QLabel *txtMaintainer; QToolButton *tbtMaintainer; QComboBox *cmbMaintMode; QCheckBox *ckbDue; QPushButton *btnDue; QCheckBox *ckbStart; QPushButton *btnStart; QCheckBox *ckbComp; QPushButton *btnComp; QComboBox *cmbProgress; /* * I could have a struct which returns a QWidget* * load and save to a OPimTodo * and use multiple inheretence with all other widgets * and then simply iterate over the list of structs * this way I could easily have plugins for the whole editor.... * but I do not do it -zecke */ void load( const OPimTodo & ); void save( OPimTodo & ); private: QDate m_start; QDate m_comp; QDate m_due; DateBookMonth *m_startBook; DateBookMonth *m_compBook; DateBookMonth *m_dueBook; private slots: void slotStartChecked(); void slotCompChecked(); void slotDueChecked(); void slotStartChanged( int, int, int ); void slotCompChanged( int, int, int ); void slotDueChanged( int, int, int ); signals: void dueDateChanged( const QDate& date ); }; #endif // TASKEDITORSTATUS_H diff --git a/core/pim/todo/templatedialog.cpp b/core/pim/todo/templatedialog.cpp index 8d72297..9821667 100644 --- a/core/pim/todo/templatedialog.cpp +++ b/core/pim/todo/templatedialog.cpp @@ -1,60 +1,90 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <opie2/odebug.h> #include <qpushbutton.h> #include <qhbox.h> #include <qlayout.h> #include <qlistview.h> #include <qlineedit.h> #include "templatedialog.h" using namespace Todo; /* TRANSLATOR Todo::TemplateDialog */ TemplateDialog::TemplateDialog( QWidget* widget ) : QDialog( widget, "TemplateDialog", TRUE ) { setCaption( QWidget::tr("Template Editor") ); m_main = new QVBoxLayout(this ); m_list = new QListView( this ); m_main->addWidget( m_list, 100 ); m_lne = new QLineEdit( this ); m_main->addWidget( m_lne ); m_btnBar = new QHBox( this ); m_add = new QPushButton( QWidget::tr("Add"), m_btnBar ); m_edit = new QPushButton( QWidget::tr("Edit"), m_btnBar ); m_rem = new QPushButton( QWidget::tr("Remove"), m_btnBar ); m_main->addWidget( m_btnBar ); connect(m_add, SIGNAL(clicked() ), this, SLOT(slotAdd() ) ); connect(m_edit, SIGNAL(clicked() ), this, SLOT(slotEdit() ) ); connect(m_rem, SIGNAL(clicked() ), this, SLOT(slotRemove() ) ); connect(m_lne, SIGNAL(returnPressed() ), this, SLOT(slotReturn() ) ); } TemplateDialog::~TemplateDialog() { // Qt does delete our widgets } QListView* TemplateDialog::listView() { return m_list; } QLineEdit* TemplateDialog::edit() { return m_lne; } void TemplateDialog::slotAdd() { } void TemplateDialog::slotRemove() { } void TemplateDialog::slotEdit() { } void TemplateDialog::slotReturn() { } diff --git a/core/pim/todo/templatedialog.h b/core/pim/todo/templatedialog.h index 5886c34..8ed915b 100644 --- a/core/pim/todo/templatedialog.h +++ b/core/pim/todo/templatedialog.h @@ -1,44 +1,74 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TEMPLATE_DIALOG_H #define OPIE_TEMPLATE_DIALOG_H #include <qdialog.h> #include <qstring.h> class QListView; class QPushButton; class QLabel; class QHBox; class QVBoxLayout; class QLineEdit; namespace Todo { class TemplateDialog : public QDialog { Q_OBJECT public: /* it'll be modal */ TemplateDialog( QWidget* parent ); virtual ~TemplateDialog(); protected: QListView* listView(); QLineEdit* edit(); private slots: virtual void slotAdd(); virtual void slotRemove(); virtual void slotEdit(); virtual void slotReturn(); private: QVBoxLayout* m_main; QHBox* m_btnBar; QListView* m_list; QLineEdit *m_lne; QPushButton* m_add; QPushButton* m_rem; QPushButton* m_edit; }; } #endif diff --git a/core/pim/todo/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp index c9ad3d0..0d4090e 100644 --- a/core/pim/todo/templatedialogimpl.cpp +++ b/core/pim/todo/templatedialogimpl.cpp @@ -1,127 +1,157 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <qlineedit.h> #include "mainwindow.h" #include "todoeditor.h" #include "todotemplatemanager.h" #include "templatedialogimpl.h" using namespace Todo; /* TRANSLATOR Todo::TemplateDialogImpl */ namespace { class TemplateListItem : public QListViewItem { public: TemplateListItem( QListView*, const QString& name, const OPimTodo& ); ~TemplateListItem(); OPimTodo event()const; QString text()const; void setText(const QString& str ); void setEvent( const OPimTodo& ); private: QString m_name; OPimTodo m_ev; }; /* implementation */ TemplateListItem::TemplateListItem( QListView* view, const QString& text, const OPimTodo& ev ) : QListViewItem( view ), m_name( text ), m_ev( ev ) { QListViewItem::setText(0, m_name ); } TemplateListItem::~TemplateListItem() {} OPimTodo TemplateListItem::event() const { return m_ev; } QString TemplateListItem::text()const { return m_name; } void TemplateListItem::setText( const QString& str ) { QListViewItem::setText(0, str ); m_name = str; } void TemplateListItem::setEvent( const OPimTodo& ev) { m_ev = ev; } } TemplateDialogImpl::TemplateDialogImpl( MainWindow* win, TemplateManager* man ) : TemplateDialog( win ), m_win( win), m_man( man ) { /* fill the listview */ /* not the fastest way.... */ QStringList list = man->templates(); for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { new TemplateListItem( listView(), (*it), man->templateEvent( (*it) ) ); } listView()->addColumn( QWidget::tr("Name") ); connect( listView(), SIGNAL(clicked(QListViewItem*) ), this, SLOT(slotClicked(QListViewItem*) ) ); } TemplateDialogImpl::~TemplateDialogImpl() { } void TemplateDialogImpl::slotAdd() { QString str = QWidget::tr("New Template %1").arg( listView()->childCount() ); OPimTodo ev; m_man->addEvent(str, ev); new TemplateListItem( listView(), str, ev ); } void TemplateDialogImpl::slotRemove() { if (!listView()->currentItem() ) return; TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); listView()->takeItem( item ); m_man->removeEvent( item->text() ); delete item; } void TemplateDialogImpl::slotEdit() { if ( !listView()->currentItem() ) return; TemplateListItem* item = static_cast<TemplateListItem*>( listView()->currentItem() ); OPimTodo ev = m_win->currentEditor()->edit( m_win, item->event() ); if ( m_win->currentEditor()->accepted() ) { item->setEvent( ev ); m_man->removeEvent( item->text() ); m_man->addEvent( item->text(), ev ); } } /* * we need to update * the text */ void TemplateDialogImpl::slotReturn() { if ( !listView()->currentItem() ) return; TemplateListItem* tbl = static_cast<TemplateListItem*>( listView()->currentItem() ); if (tbl->text() != edit()->text() ) { m_man->removeEvent( tbl->text() ); tbl->setText( edit()->text() ); m_man->addEvent( tbl->text(), tbl->event() ); } } /* update the lineedit when changing */ void TemplateDialogImpl::slotClicked( QListViewItem* item) { if (!item) return; TemplateListItem* tbl = static_cast<TemplateListItem*>(item); edit()->setText( tbl->text() ); } diff --git a/core/pim/todo/templatedialogimpl.h b/core/pim/todo/templatedialogimpl.h index cc78521..6affb7d 100644 --- a/core/pim/todo/templatedialogimpl.h +++ b/core/pim/todo/templatedialogimpl.h @@ -1,33 +1,63 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TEMPLATE_DIALOG_IMPL_H #define OPIE_TEMPLATE_DIALOG_IMPL_H #include <qlistview.h> #include <opie2/opimtodo.h> #include "templatedialog.h" namespace Todo { class MainWindow; class TemplateManager; class TemplateDialogImpl : public Todo::TemplateDialog { Q_OBJECT public: TemplateDialogImpl( MainWindow* win, TemplateManager* ); ~TemplateDialogImpl(); private: MainWindow* m_win; TemplateManager* m_man; private slots: void slotAdd(); void slotRemove(); void slotEdit(); void slotReturn(); void slotClicked(QListViewItem*); }; }; #endif diff --git a/core/pim/todo/textviewshow.cpp b/core/pim/todo/textviewshow.cpp index 01e5810..7d93efc 100644 --- a/core/pim/todo/textviewshow.cpp +++ b/core/pim/todo/textviewshow.cpp @@ -1,48 +1,78 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include "textviewshow.h" using namespace Todo; TextViewShow::TextViewShow( QWidget* parent, MainWindow* win) : QTextView( parent ), TodoShow(win) { } TextViewShow::~TextViewShow() { } QString TextViewShow::type()const { return QString::fromLatin1("TextViewShow"); } void TextViewShow::slotShow( const OPimTodo& ev ) { setText( ev.toRichText() ); } QWidget* TextViewShow::widget() { return this; } void TextViewShow::keyPressEvent( QKeyEvent* event ) { switch( event->key() ) { case Qt::Key_Up: if ( ( visibleHeight() < contentsHeight() ) && ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) ) scrollBy( 0, -(visibleHeight()-20) ); else showPrev(); break; case Qt::Key_Down: if ( ( visibleHeight() < contentsHeight() ) && ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) ) scrollBy( 0, visibleHeight()-20 ); else showNext(); break; case Qt::Key_Left: case Qt::Key_Right: case Qt::Key_F33: case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Space: escapeView(); break; default: QTextView::keyPressEvent( event ); break; } } diff --git a/core/pim/todo/textviewshow.h b/core/pim/todo/textviewshow.h index cc31522..8278ef6 100644 --- a/core/pim/todo/textviewshow.h +++ b/core/pim/todo/textviewshow.h @@ -1,20 +1,50 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <qtextview.h> #include "todoshow.h" namespace Todo { class TextViewShow : public QTextView, public TodoShow { public: TextViewShow( QWidget* parent, MainWindow* ); ~TextViewShow(); QString type()const; void slotShow( const OPimTodo& ev ); QWidget* widget(); protected: void keyPressEvent( QKeyEvent* ); }; }; diff --git a/core/pim/todo/todoedit.h b/core/pim/todo/todoedit.h index 4e89e93..a607eb2 100644 --- a/core/pim/todo/todoedit.h +++ b/core/pim/todo/todoedit.h @@ -1,17 +1,47 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TODO_EDIT_H #define OPIE_TODO_EDIT_H #include <opie2/opimtodo.h> namespace Todo { class Edit { public: Edit(); virtual ~Edit(); ToDoEvent newEvent( const OPimTodo& ) = 0; ToDoEvent editEvent( const OPimTodo& ) = 0; }; }; #endif diff --git a/core/pim/todo/todoeditor.cpp b/core/pim/todo/todoeditor.cpp index a1c559d..d4693a2 100644 --- a/core/pim/todo/todoeditor.cpp +++ b/core/pim/todo/todoeditor.cpp @@ -1,62 +1,92 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <opie2/odebug.h> #include <qpe/qpeapplication.h> #include "otaskeditor.h" #include "todoeditor.h" using namespace Opie; using namespace Todo; Editor::Editor() { m_accepted = false; m_self = 0l; } Editor::~Editor() { delete m_self; m_self = 0; } OPimTodo Editor::newTodo( int cur, QWidget*) { OTaskEditor *e = self(); e->setCaption( QObject::tr("Enter Task") ); e->init( cur ); int ret = QPEApplication::execDialog( e ); if ( QDialog::Accepted == ret ) { m_accepted = true; }else m_accepted = false; OPimTodo ev = e->todo(); ev.setUid(1); return ev; } OPimTodo Editor::edit( QWidget *, const OPimTodo& todo ) { OTaskEditor *e = self(); e->init( todo ); e->setCaption( QObject::tr( "Edit Task" ) ); int ret = QPEApplication::execDialog( e ); OPimTodo ev = e->todo(); if ( ret == QDialog::Accepted ) m_accepted = true; else m_accepted = false; return ev; } bool Editor::accepted()const { return m_accepted; } OTaskEditor* Editor::self() { if (!m_self ) m_self = new OTaskEditor(0); return m_self; } diff --git a/core/pim/todo/todoeditor.h b/core/pim/todo/todoeditor.h index 1ac7f8a..c12824c 100644 --- a/core/pim/todo/todoeditor.h +++ b/core/pim/todo/todoeditor.h @@ -1,29 +1,59 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TODO_EDITOR_H #define OPIE_TODO_EDITOR_H #include <opie2/opimtodo.h> class OTaskEditor; namespace Todo { class Editor { public: Editor(); ~Editor(); Opie::OPimTodo newTodo( int currentCatId, QWidget* par ); Opie::OPimTodo edit( QWidget* par, const Opie::OPimTodo& ev = Opie::OPimTodo() ); bool accepted()const; protected: OTaskEditor* self(); private: bool m_accepted: 1; OTaskEditor* m_self; }; }; #endif diff --git a/core/pim/todo/todomanager.cpp b/core/pim/todo/todomanager.cpp index fcd5f0e..2a9945d 100644 --- a/core/pim/todo/todomanager.cpp +++ b/core/pim/todo/todomanager.cpp @@ -1,126 +1,128 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #include <opie2/odebug.h> #include <qpe/categoryselect.h> #include "todomanager.h" using namespace Todo; TodoManager::TodoManager( QObject *obj ) : QObject( obj ) { m_db = 0l; m_cat.load( categoryFileName() ); } TodoManager::~TodoManager() { delete m_db; } OPimTodo TodoManager::event(int uid ) { return m_db->find( uid ); } void TodoManager::updateList() { m_list = m_db->allRecords(); } OPimTodoAccess::List TodoManager::list() const{ return m_list; } OPimTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) { return m_db->sorted( asc, so, f, cat ); } OPimTodoAccess::List::Iterator TodoManager::overDue() { int filter = Opie::OPimTodoAccess::FilterCategory | Opie::OPimTodoAccess::OnlyOverDue; m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca ); m_it = m_list.begin(); return m_it; } OPimTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start, const QDate& end ) { m_list = m_db->effectiveToDos( start, end ); m_it = m_list.begin(); return m_it; } OPimTodoAccess::List::Iterator TodoManager::query( const OPimTodo& ev, int query ) { m_list = m_db->queryByExample( ev, query ); m_it = m_list.begin(); return m_it; } OPimTodoAccess* TodoManager::todoDB() { return m_db; } void TodoManager::add( const OPimTodo& ev ) { m_db->add( ev ); } void TodoManager::update( int, const SmallTodo& ) { } void TodoManager::update( int, const OPimTodo& ev) { m_db->replace( ev ); } bool TodoManager::remove( int uid ) { return m_db->remove( uid ); } void TodoManager::removeAll() { m_db->clear(); } void TodoManager::removeCompleted() { m_db->removeAllCompleted(); } void TodoManager::save() { m_db->save(); } bool TodoManager::saveAll() { return m_db->save(); } void TodoManager::reload() { m_db->reload(); } QStringList TodoManager::categories() { m_cat.load(categoryFileName() ); return m_cat.labels( "Todo List"); } /* * we rely on load beeing called from populateCategories */ int TodoManager::catId( const QString& cats ) { return m_cat.id( "Todo List", cats ); } void TodoManager::remove( const QArray<int>& ids) { for (uint i=0; i < ids.size(); i++ ) remove( ids[i] ); } bool TodoManager::isLoaded()const { return (m_db == 0 ); } void TodoManager::load() { if (!m_db) { m_db = new OPimTodoAccess(); m_db->load(); } } diff --git a/core/pim/todo/todomanager.h b/core/pim/todo/todomanager.h index 865b47b..37c3a62 100644 --- a/core/pim/todo/todomanager.h +++ b/core/pim/todo/todomanager.h @@ -1,113 +1,115 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef OPIE_TODO_MANAGER_H #define OPIE_TODO_MANAGER_H #include <opie2/opimtodo.h> #include <opie2/otodoaccess.h> #include <qpe/categories.h> #include <qarray.h> #include <qobject.h> #include <qstring.h> #include "smalltodo.h" using Opie::OPimTodo; using Opie::OPimTodoAccess; namespace Todo { class TodoManager : public QObject{ Q_OBJECT public: bool isLoaded()const; void load(); TodoManager(QObject* obj = 0); ~TodoManager(); QStringList categories()/*const*/; int catId(const QString&); OPimTodo event(int uid ); void updateList(); /** returns the iterator sorted if set sorted*/ OPimTodoAccess::List list()const; OPimTodoAccess::List sorted( bool asc, int so, int f, int cat ); OPimTodoAccess::List::Iterator overDue(); OPimTodoAccess::List::Iterator fromTo( const QDate& start, const QDate& end ); OPimTodoAccess::List::Iterator query( const OPimTodo& ev, int query ); void setCategory( bool sort, int category = -1); void setShowOverDue( bool show ); void setSortOrder( int sortOrder ); void setSortASC( bool ); void sort(); OPimTodoAccess* todoDB(); bool saveAll(); signals: void update(); void updateCategories(); public slots: void add( const OPimTodo& ); void update( int uid, const SmallTodo& ); void update( int uid, const OPimTodo& ); bool remove( int uid ); void remove( const QArray<int>& ); /** * remove all completed */ void removeCompleted(); void removeAll(); void reload(); void save(); private: OPimTodoAccess* m_db; OPimTodoAccess::List m_list; OPimTodoAccess::List::Iterator m_it; OPimTodoAccess::List m_sorted; Categories m_cat; int m_ca; /* sort cat */ bool m_shCat; int m_sortOrder; bool m_asc; }; }; #endif diff --git a/core/pim/todo/todoshow.cpp b/core/pim/todo/todoshow.cpp index 5962028..268eb60 100644 --- a/core/pim/todo/todoshow.cpp +++ b/core/pim/todo/todoshow.cpp @@ -1,24 +1,53 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ #include "mainwindow.h" #include "todoshow.h" using namespace Todo; TodoShow::TodoShow(MainWindow* win) { m_win = win; } TodoShow::~TodoShow() { } void TodoShow::escapeView() { if (m_win ) m_win->slotReturnFromView(); } void TodoShow::showNext() { if (m_win) m_win->slotShowNext(); } void TodoShow::showPrev() { if (m_win) m_win->slotShowPrev(); } diff --git a/core/pim/todo/todoshow.h b/core/pim/todo/todoshow.h index 1eeadf8..b3e0a1f 100644 --- a/core/pim/todo/todoshow.h +++ b/core/pim/todo/todoshow.h @@ -1,62 +1,65 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ + #ifndef TODO_TODO_SHOW_H #define TODO_TODO_SHOW_H #include <qstring.h> #include <qwidget.h> #include <opie2/opimtodo.h> using Opie::OPimTodo; namespace Todo { class MainWindow; /** * TodoShow is the baseclass of * of all TodoShows. * The first implementation is a QTextView * implementation showing the Todo as richtext */ class TodoShow { public: TodoShow( MainWindow* win); virtual ~TodoShow(); virtual QString type()const = 0; virtual void slotShow( const OPimTodo& ev ) = 0; virtual QWidget* widget() = 0; protected: void escapeView(); void showNext(); void showPrev(); private: MainWindow *m_win; }; }; #endif diff --git a/core/pim/todo/todotemplate.h b/core/pim/todo/todotemplate.h index 9575737..69ec6dd 100644 --- a/core/pim/todo/todotemplate.h +++ b/core/pim/todo/todotemplate.h @@ -1,11 +1,40 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TODO_TEMPLATE_H #define OPIE_TODO_TEMPLATE_H namespace Todo { - }; #endif diff --git a/core/pim/todo/todotemplatemanager.cpp b/core/pim/todo/todotemplatemanager.cpp index 7690d37..892ad0d 100644 --- a/core/pim/todo/todotemplatemanager.cpp +++ b/core/pim/todo/todotemplatemanager.cpp @@ -1,79 +1,109 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include <opie2/odebug.h> #include <opie2/otodoaccess.h> #include <opie2/otodoaccessxml.h> #include <qpe/config.h> #include <qpe/global.h> #include "todotemplatemanager.h" using namespace Todo; TemplateManager::TemplateManager() { m_path = Global::applicationFileName("todolist", "templates.xml"); } TemplateManager::~TemplateManager() { save(); } void TemplateManager::load() { Config conf("todolist_templates"); OPimTodoAccessXML *xml = new OPimTodoAccessXML( QString::fromLatin1("template"), m_path ); OPimTodoAccess todoDB(xml ); todoDB.load(); OPimTodoAccess::List::Iterator it; OPimTodoAccess::List list = todoDB.allRecords(); for ( it = list.begin(); it != list.end(); ++it ) { OPimTodo ev = (*it); conf.setGroup( QString::number( ev.uid() ) ); QString str = conf.readEntry("Name", QString::null ); if (str.isEmpty() ) continue; m_templates.insert( str, ev ); } } void TemplateManager::save() { Config conf("todolist_templates"); OPimTodoAccessXML *res = new OPimTodoAccessXML( "template", m_path ); OPimTodoAccess db(res); db.load(); db.clear(); QMap<QString, OPimTodo>::Iterator it; for ( it = m_templates.begin(); it != m_templates.end(); ++it ) { OPimTodo ev = it.data(); conf.setGroup( QString::number( ev.uid() ) ); conf.writeEntry("Name", it.key() ); db.add( ev ); } db.save(); } void TemplateManager::addEvent( const QString& str, const OPimTodo& ev) { OPimTodo todo = ev; if( ev.uid() == 0 ) todo.setUid(1); // generate a new uid m_templates.replace( str, todo ); } void TemplateManager::removeEvent( const QString& str ) { m_templates.remove( str ); } QStringList TemplateManager::templates() const { QStringList list; QMap<QString, OPimTodo>::ConstIterator it; for (it = m_templates.begin(); it != m_templates.end(); ++it ) { list << it.key(); } return list; } OPimTodo TemplateManager::templateEvent( const QString& templateName ) { return m_templates[templateName]; } diff --git a/core/pim/todo/todotemplatemanager.h b/core/pim/todo/todotemplatemanager.h index ee8aaaf..8601ee8 100644 --- a/core/pim/todo/todotemplatemanager.h +++ b/core/pim/todo/todotemplatemanager.h @@ -1,33 +1,63 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #ifndef OPIE_TODO_TEMPLATE_H #define OPIE_TODO_TEMPLATE_H #include <opie2/opimtodo.h> #include <qstring.h> #include <qmap.h> using namespace Opie; namespace Todo { class TemplateManager { public: TemplateManager(); ~TemplateManager(); void load(); void save(); QStringList templates()const; OPimTodo templateEvent( const QString& templateName ); /* also replaces one */ void addEvent( const QString&, const OPimTodo& ); void removeEvent( const QString& ); private: QString m_path; QMap<QString, OPimTodo> m_templates; }; }; #endif diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp index 3d2c982..937fbd1 100644 --- a/core/pim/todo/todoview.cpp +++ b/core/pim/todo/todoview.cpp @@ -1,71 +1,101 @@ +/* + Â Â Â Â Â Â Â Â This file is part of the Opie Project + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. +*/ + #include "mainwindow.h" #include <opie2/odebug.h> #include "todoview.h" using namespace Todo; TodoView::TodoView( MainWindow* win ) : m_main( win ) { m_asc = false; m_sortOrder = -1; } TodoView::~TodoView() { }; MainWindow* TodoView::todoWindow() { return m_main; } OPimTodo TodoView::event(int uid ) { return m_main->event( uid ); } OPimTodoAccess::List TodoView::list(){ todoWindow()->updateList(); return todoWindow()->list(); } OPimTodoAccess::List TodoView::sorted()const{ return m_sort; } void TodoView::sort() { m_sort = todoWindow()->sorted(m_asc,m_sortOrder ); owarn << "m_sort.count() = " << m_sort.count() << oendl; } void TodoView::sort(int sort) { m_sort = todoWindow()->sorted(m_asc, m_sortOrder, sort ); } void TodoView::setSortOrder( int order ) { m_sortOrder = order; } void TodoView::setAscending( bool b ) { owarn << "setAscending " << b << oendl; m_asc = b; } void TodoView::update(int, const SmallTodo& ) { //m_main->slotUpate1( uid, to ); } void TodoView::update(int , const OPimTodo& ev ) { m_main->updateTodo( ev ); } void TodoView::showTodo( int uid ) { m_main->slotShow( uid ); } void TodoView::edit( int uid ) { m_main->slotEdit( uid ); } void TodoView::remove( int uid ) { m_main->m_todoMgr.remove( uid ); } void TodoView::complete( int uid ) { m_main->slotComplete( uid ); } void TodoView::complete( const OPimTodo& ev ) { m_main->slotComplete( ev ); } void TodoView::removeQuery( int uid ) { m_main->slotDelete( uid ); } diff --git a/core/pim/todo/todoview.h b/core/pim/todo/todoview.h index a5ea9f5..6e840e1 100644 --- a/core/pim/todo/todoview.h +++ b/core/pim/todo/todoview.h @@ -1,138 +1,140 @@ /* - =. 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 + + Copyright (C) Opie Team <opie-devel@handhelds.org> + =. + .=l. +Â Â Â Â Â Â .>+-= +Â _;:, Â Â .> Â Â :=|. This program is free software; you can +.> <`_, Â > Â . Â <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- Â : the terms of the GNU Library 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. - */ #ifndef TODO_VIEW_H #define TODO_VIEW_H #include <qarray.h> #include <qstring.h> #include <qvaluelist.h> #include <qwidget.h> #include <opie2/otodoaccess.h> #include "smalltodo.h" using Opie::OPimTodo; using Opie::OPimTodoAccess; namespace Todo { class MainWindow; /** * due to inheretince problems we need this base class */ struct ViewBase { public: virtual QWidget* widget() = 0; virtual QString type()const = 0; virtual int current() = 0; virtual QString currentRepresentation() = 0; virtual void showOverDue( bool ) = 0; /** * the next record in the view or 0 if none is there */ virtual int next() = 0; /** * the previous record or 0 if none is there.. */ virtual int prev() = 0; /* * update the view */ virtual void updateView() = 0; virtual void addEvent( const OPimTodo& ) = 0; virtual void replaceEvent( const OPimTodo& ) = 0; virtual void removeEvent( int uid ) = 0; virtual void setShowCompleted( bool ) = 0; virtual void setShowDeadline( bool ) = 0; virtual void setShowCategory( const QString& = QString::null ) = 0; virtual void clear() = 0; virtual void newDay() = 0; }; /** * A base class for all TodoView which are showing * a list of todos. * Either in a QTable, QListView or any other QWidget * derived class * Through the MainWindow( dispatcher ) one can access * the relevant informations * * It's not possible to have signal and slots from within * templates this way you've to register for a signal */ class TodoView : public ViewBase{ public: /** * c'tor */ TodoView( MainWindow* win ); /** *d'tor */ virtual ~TodoView(); protected: MainWindow* todoWindow(); OPimTodo event(int uid ); OPimTodoAccess::List list(); OPimTodoAccess::List sorted()const; void sort(); void sort(int sort ); void setSortOrder( int order ); void setAscending( bool ); /* * These things needs to be implemented * in a implementation */ void showTodo( int uid ); void edit( int uid ); void update(int uid, const SmallTodo& to ); void update(int uid, const OPimTodo& ev); void remove( int uid ); /* will ask the user if the item should be deleted */ void removeQuery(int uid ); void complete( int uid ); void complete( const OPimTodo& ev ); private: MainWindow *m_main; OPimTodoAccess::List m_sort; bool m_asc : 1; int m_sortOrder; }; }; #endif |