summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/config.in2
-rw-r--r--core/pim/todo/mainwindow.cpp98
-rw-r--r--core/pim/todo/mainwindow.h26
-rw-r--r--core/pim/todo/opie-todo.control2
-rw-r--r--core/pim/todo/otaskeditor.cpp18
-rw-r--r--core/pim/todo/otaskeditor.h18
-rw-r--r--core/pim/todo/quickedit.h10
-rw-r--r--core/pim/todo/quickeditimpl.cpp6
-rw-r--r--core/pim/todo/quickeditimpl.h4
-rw-r--r--core/pim/todo/smalltodo.h4
-rw-r--r--core/pim/todo/tableview.cpp18
-rw-r--r--core/pim/todo/tableview.h8
-rw-r--r--core/pim/todo/taskeditoralarms.cpp9
-rw-r--r--core/pim/todo/taskeditoralarms.h9
-rw-r--r--core/pim/todo/taskeditoroverview.cpp6
-rw-r--r--core/pim/todo/taskeditoroverview.h10
-rw-r--r--core/pim/todo/taskeditorstatus.cpp9
-rw-r--r--core/pim/todo/taskeditorstatus.h13
-rw-r--r--core/pim/todo/templatedialogimpl.cpp18
-rw-r--r--core/pim/todo/templatedialogimpl.h2
-rw-r--r--core/pim/todo/textviewshow.cpp2
-rw-r--r--core/pim/todo/textviewshow.h2
-rw-r--r--core/pim/todo/todo.pro2
-rw-r--r--core/pim/todo/todoedit.h6
-rw-r--r--core/pim/todo/todoeditor.cpp10
-rw-r--r--core/pim/todo/todoeditor.h8
-rw-r--r--core/pim/todo/todomanager.cpp20
-rw-r--r--core/pim/todo/todomanager.h38
-rw-r--r--core/pim/todo/todoshow.h6
-rw-r--r--core/pim/todo/todotemplatemanager.cpp36
-rw-r--r--core/pim/todo/todotemplatemanager.h11
-rw-r--r--core/pim/todo/todoview.cpp10
-rw-r--r--core/pim/todo/todoview.h20
33 files changed, 237 insertions, 224 deletions
diff --git a/core/pim/todo/config.in b/core/pim/todo/config.in
index 0b6af4c..45c4558 100644
--- a/core/pim/todo/config.in
+++ b/core/pim/todo/config.in
@@ -1,4 +1,4 @@
config TODO
boolean "opie-todo (a Todo-list manager)"
default "y"
- depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE
+ depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && LIBOPIE2UI && LIBOPIE2PIM
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index fc189bd..0613f2c 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -1,155 +1,153 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <unistd.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/timestring.h>
+#include <qpe/qpeapplication.h>
+
#include <qmenubar.h>
#include <qmessagebox.h>
#include <qtoolbar.h>
#include <qpopupmenu.h>
#include <qpushbutton.h>
#include <qwidgetstack.h>
#include <qaction.h>
#include <qtimer.h>
#include <qvbox.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qwhatsthis.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/timestring.h>
-#include <qpe/qpeapplication.h>
-
-#include <opie/orecur.h>
-#include <opie/opimnotifymanager.h>
-#include <opie/otodoaccessvcal.h>
-#include <opie/owidgetstack.h>
-
-#include <opie/oapplicationfactory.h>
-
#include "quickeditimpl.h"
#include "todotemplatemanager.h"
#include "templateeditor.h"
#include "tableview.h"
#include "textviewshow.h"
#include "todoeditor.h"
#include "mainwindow.h"
OPIE_EXPORT_APP( OApplicationFactory<Todo::MainWindow> )
using namespace Todo;
MainWindow::MainWindow( QWidget* parent,
const char* name, WFlags )
: OPimMainWindow( "Todolist", parent, name, WType_TopLevel | WStyle_ContextHelp )
{
if (!name)
setName("todo window");
m_syncing = false;
m_showing = false;
m_counter = 0;
m_tempManager = new TemplateManager();
m_tempManager->load();
initUI();
initConfig();
initViews();
initActions();
initEditor();
initShow();
initTemplate();
populateTemplates();
raiseCurrentView();
QTimer::singleShot(0, this, SLOT(populateCategories() ) );
}
void MainWindow::initTemplate() {
m_curTempEd = new TemplateEditor( this, templateManager() );
}
void MainWindow::initActions() {
// Data menu
m_edit->insertItem(QWidget::tr("New from template"), m_template,
-1, 0 );
QAction* a = new QAction( QWidget::tr("New Task" ), Resource::loadPixmap( "new" ),
QString::null, 0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotNew() ) );
a->setWhatsThis( QWidget::tr( "Click here to create a new task." ) );
a->addTo(m_tool );
a->addTo(m_edit );
a = new QAction( QWidget::tr("Edit Task"), Resource::loadIconSet( "edit" ),
QString::null, 0, this, 0 );
connect(a, SIGNAL(activated() ),
this, SLOT( slotEdit() ) );
a->setWhatsThis( QWidget::tr( "Click here to modify the current task." ) );
a->addTo( m_tool );
a->addTo( m_edit );
m_editAction = a;
a = new QAction( QString::null, QWidget::tr("View Task"), 0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotShowDetails() ) );
a->addTo( m_edit );
m_edit->insertSeparator();
a = new QAction( QWidget::tr("Delete..."), Resource::loadIconSet( "trash" ),
QString::null, 0, this, 0 );
connect(a, SIGNAL(activated() ),
this, SLOT(slotDelete() ) );
a->setWhatsThis( QWidget::tr( "Click here to remove the current task." ) );
a->addTo( m_tool );
a->addTo( m_edit );
m_deleteAction = a;
a = new QAction( QString::null, QWidget::tr("Delete all..."), 0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotDeleteAll() ) );
a->addTo(m_edit );
m_deleteAllAction = a;
a = new QAction( QString::null, QWidget::tr("Delete completed"),
0, this, 0 );
connect(a, SIGNAL( activated() ),
this, SLOT( slotDeleteCompleted() ) );
a->addTo(m_edit );
a->setEnabled( TRUE );
m_deleteCompleteAction = a;
m_edit->insertSeparator();
@@ -217,828 +215,828 @@ void MainWindow::initActions() {
}
/* 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() {
m_stack = new OWidgetStack(this, "main stack");
setCentralWidget( m_stack );
setToolBarsMovable( FALSE );
QToolBar *menubarholder = new QToolBar( this );
menubarholder->setHorizontalStretchable( TRUE );
m_bar = new QMenuBar( menubarholder );
m_tool = new QToolBar( this );
/** QPopupMenu */
m_edit = new QPopupMenu( this );
m_options = new QPopupMenu( this );
m_catMenu = new QPopupMenu( this );
m_template = new QPopupMenu( this );
m_catMenu->setCheckable( TRUE );
m_template->setCheckable( TRUE );
connect(m_catMenu, SIGNAL(activated(int) ),
this, SLOT(setCategory(int) ) );
connect(m_template, SIGNAL(activated(int) ),
this, SLOT(slotNewFromTemplate(int) ) );
}
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 ) {
QPopupMenu* menu = new QPopupMenu();
m_editAction->addTo( menu );
m_deleteAction->addTo( menu );
m_duplicateAction->addTo( menu );
menu->insertSeparator();
/*
* if this event recurs we allow
* to detach it.
* remove all
*/
if ( recur ) {
; // FIXME
}
return menu;
}
QPopupMenu* MainWindow::options() {
qWarning("Options");
return m_options;
}
QPopupMenu* MainWindow::edit() {
return m_edit;
}
QToolBar* MainWindow::toolbar() {
return m_tool;
}
-OTodoAccess::List MainWindow::list()const {
+OPimTodoAccess::List MainWindow::list()const {
return m_todoMgr.list();
}
-OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
+OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder ) {
int cat = 0;
if ( m_curCat != QWidget::tr("All Categories") )
cat = currentCatId();
if ( m_curCat == QWidget::tr("Unfiled") )
cat = -1;
qWarning(" Category %d %s", cat, m_curCat.latin1() );
int filter = 1;
if (!m_completed )
filter |= 4;
if (m_overdue)
filter |= 2;
return m_todoMgr.sorted( asc, sortOrder, filter, cat );
}
-OTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
+OPimTodoAccess::List MainWindow::sorted( bool asc, int sortOrder, int addFilter) {
int cat = 0;
if ( m_curCat != QWidget::tr("All Categories") )
cat = currentCatId();
if ( m_curCat == QWidget::tr("Unfiled") )
cat = -1;
return m_todoMgr.sorted(asc, sortOrder, addFilter, cat );
}
-OTodo MainWindow::event( int uid ) {
+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() ){
qWarning("saved");
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::populateTemplates() {
m_template->clear();
QStringList list = templateManager()->templates();
QStringList::Iterator it;
for ( it = list.begin(); it != list.end(); ++it ) {
m_template->insertItem( (*it) );
}
}
/*
* slotNewFromTemplate
* We use the edit widget to do
* the config but we setUid(1)
* to get a new uid
*/
/*
* first we get the name of the template
* then we will use the TemplateManager
*/
void MainWindow::slotNewFromTemplate( int id ) {
QString name = m_template->text( id );
- OTodo event = templateManager()->templateEvent( name );
+ OPimTodo event = templateManager()->templateEvent( name );
event = currentEditor()->edit(this,
event );
if ( currentEditor()->accepted() ) {
/* assign new todo */
event.setUid( 1 );
- handleAlarms( OTodo(), event );
+ handleAlarms( OPimTodo(), event );
m_todoMgr.add( event );
currentView()->addEvent( event );
populateCategories();
}
raiseCurrentView();
}
void MainWindow::slotNew() {
create();
}
void MainWindow::slotDuplicate() {
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Data can not be edited, currently syncing"));
return;
}
- OTodo ev = m_todoMgr.event( currentView()->current() );
+ 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::slotDelete() {
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() ), OTodo() );
+ handleAlarms( m_todoMgr.event( currentView()->current() ), OPimTodo() );
m_todoMgr.remove( currentView()->current() );
currentView()->removeEvent( currentView()->current() );
raiseCurrentView();
}
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;
}
- OTodo to = m_todoMgr.event(uid);
+ OPimTodo to = m_todoMgr.event(uid);
if (!QPEMessageBox::confirmDelete(this, QWidget::tr("Todo"), to.toShortText() ) )
return;
- handleAlarms(to, OTodo() );
+ 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( );
}
void MainWindow::slotFind() {
}
void MainWindow::slotEdit() {
slotEdit( currentView()->current() );
}
/*
* set the category
*/
void MainWindow::setCategory( int c) {
if ( c <= 0 ) return;
qWarning("Iterating over cats %d", c );
for ( unsigned int i = 1; i < m_catMenu->count(); i++ )
m_catMenu->setItemChecked(i, c == (int)i );
if (c == 1 ) {
m_curCat = QString::null;
setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("All Categories" ) );
}else if ( c == (int)m_catMenu->count() - 1 ) {
m_curCat = QWidget::tr("Unfiled");
setCaption( QWidget::tr("Todo") + " - " + QWidget::tr("Unfiled") );
}else {
m_curCat = m_todoMgr.categories()[c-2];
setCaption( QWidget::tr("Todo") + " - " + m_curCat );
}
m_catMenu->setItemChecked( c, true );
currentView()->setShowCategory( m_curCat );
raiseCurrentView();
}
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();
else
m_curQuick->widget()->hide();
}
bool MainWindow::showOverDue()const {
return m_overdue;
}
void MainWindow::setDocument( const QString& fi) {
DocLnk doc(fi);
if (doc.isValid() )
receiveFile(doc.file() );
else
receiveFile(fi );
}
static const char *beamfile = "/tmp/opie-todo.vcs";
void MainWindow::slotBeam() {
beam( currentView()->current() );
}
void MainWindow::beamDone( Ir* ir) {
delete ir;
::unlink( beamfile );
}
void MainWindow::receiveFile( const QString& filename ) {
- OTodoAccessVCal* cal = new OTodoAccessVCal(filename );
+ OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(filename );
- OTodoAccess acc( cal );
+ OPimTodoAccess acc( cal );
acc.load();
- OTodoAccess::List list = acc.allRecords();
+ OPimTodoAccess::List list = acc.allRecords();
if (list.count()){
QString message = QWidget::tr("<P>%1 new tasks arrived.<p>Would you like to add them to your Todolist?").arg(list.count() );
if ( QMessageBox::information(this, QWidget::tr("New Tasks"),
message, QMessageBox::Ok,
QMessageBox::Cancel ) == QMessageBox::Ok ) {
- OTodoAccess::List::Iterator it;
+ OPimTodoAccess::List::Iterator it;
for ( it = list.begin(); it != list.end(); ++it )
m_todoMgr.add( (*it) );
currentView()->updateView();
}
}
}
void MainWindow::slotFlush() {
m_syncing = TRUE;
m_todoMgr.save();
}
void MainWindow::slotShowDetails() {
slotShow( currentView()->current() );
}
/*
* populate the Categories
* Menu
*/
void MainWindow::populateCategories() {
m_todoMgr.load();
m_catMenu->clear();
int id, rememberId;
id = 1;
rememberId = 1;
m_catMenu->insertItem( QWidget::tr( "All Categories" ), id++ );
m_catMenu->insertSeparator();
QStringList categories = m_todoMgr.categories();
categories.append( QWidget::tr( "Unfiled" ) );
for ( QStringList::Iterator it = categories.begin();
it != categories.end(); ++it ) {
m_catMenu->insertItem( *it, id );
if ( *it == currentCategory() )
rememberId = id;
++id;
}
setCategory( rememberId );
}
bool MainWindow::showCompleted()const {
return m_completed;
}
bool MainWindow::showDeadline()const {
return m_deadline;
}
bool MainWindow::showQuickTask()const {
return m_quicktask;
}
QString MainWindow::currentCategory()const {
return m_curCat;
}
int MainWindow::currentCatId() {
return m_todoMgr.catId( m_curCat );
}
ViewBase* MainWindow::currentView() {
return m_curView;
}
void MainWindow::raiseCurrentView() {
// due QPE/Application/todolist show(int)
// we might not have the populateCategories slot called once
// we would show the otodo but then imediately switch to the currentView
// if we're initially showing we shouldn't raise the table
// in returnFromView we fix up m_showing
if (m_showing ) return;
m_stack->raiseWidget( m_curView->widget() );
}
void MainWindow::slotShowDue(bool ov) {
m_overdue = ov;
currentView()->showOverDue( ov );
raiseCurrentView();
}
void MainWindow::slotShow( int uid ) {
if ( uid == 0 ) return;
qWarning("slotShow");
currentShow()->slotShow( event( uid ) );
m_stack->raiseWidget( currentShow()->widget() );
}
void MainWindow::slotShowNext() {
int l = currentView()->next();
if (l!=0)
slotShow(l);
}
void MainWindow::slotShowPrev() {
int l = currentView()->prev();
if (l!=0)
slotShow(l);
}
void MainWindow::slotEdit( int uid ) {
if (uid == 0 ) return;
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Data can't be edited, currently syncing"));
return;
}
- OTodo old_todo = m_todoMgr.event( uid );
+ OPimTodo old_todo = m_todoMgr.event( uid );
- OTodo todo = currentEditor()->edit(this, old_todo );
+ OPimTodo todo = currentEditor()->edit(this, old_todo );
/* if completed */
if ( currentEditor()->accepted() ) {
handleAlarms( old_todo, todo );
m_todoMgr.update( todo.uid(), todo );
currentView()->replaceEvent( todo );
/* a Category might have changed */
populateCategories();
}
raiseCurrentView();
}
/*
void MainWindow::slotUpdate1( int uid, const SmallTodo& ev) {
m_todoMgr.update( uid, ev );
}
*/
-void MainWindow::updateTodo( const OTodo& ev) {
+void MainWindow::updateTodo( const OPimTodo& ev) {
m_todoMgr.update( ev.uid() , ev );
}
/* The view changed it's configuration
* update the view menu
*/
void MainWindow::slotUpdate3( QWidget* ) {
}
void MainWindow::updateList() {
m_todoMgr.updateList();
}
void MainWindow::setReadAhead( uint count ) {
if (m_todoMgr.todoDB() )
m_todoMgr.todoDB()->setReadAhead( count );
}
void MainWindow::slotQuickEntered() {
qWarning("entered");
- OTodo todo = quickEditor()->todo();
+ OPimTodo todo = quickEditor()->todo();
if (todo.isEmpty() )
return;
m_todoMgr.add( todo );
currentView()->addEvent( todo );
raiseCurrentView();
}
QuickEditBase* MainWindow::quickEditor() {
return m_curQuick;
}
void MainWindow::slotComplete( int uid ) {
slotComplete( event(uid) );
}
-void MainWindow::slotComplete( const OTodo& todo ) {
- OTodo to = todo;
+void MainWindow::slotComplete( const OPimTodo& todo ) {
+ OPimTodo to = todo;
to.setCompleted( !to.isCompleted() );
to.setCompletedDate( QDate::currentDate() );
/*
* if the item does recur
* we need to spin it off
* and update the items duedate to the next
* possible recurrance of this item...
* the spinned off one will loose the
* recurrence.
* We calculate the difference between the old due date and the
* new one and add this diff to start, completed and alarm dates
* -zecke
*/
if ( to.hasRecurrence() && to.isCompleted() ) {
- OTodo to2( to );
+ OPimTodo to2( to );
/* the spinned off one won't recur anymore */
- to.setRecurrence( ORecur() );
+ to.setRecurrence( OPimRecurrence() );
- ORecur rec = to2.recurrence();
+ OPimRecurrence rec = to2.recurrence();
rec.setStart( to.dueDate() );
to2.setRecurrence( rec );
/*
* if there is a next occurence
* from the duedate of the last recurrance
*/
QDate date;
if ( to2.recurrence().nextOcurrence( to2.dueDate().addDays(1), date ) ) {
int dayDiff = to.dueDate().daysTo( date );
qWarning("day diff is %d", dayDiff );
QDate inval;
/* generate a new uid for the old record */
to.setUid( 1 );
/* add the old one cause it has a new UID here cause it was spin off */
m_todoMgr.add( to );
/*
* update the due date
* start date
* and complete date
*/
to2.setDueDate( date );
rec.setStart( date );
to2.setRecurrence( rec ); // could be Monday, TuesDay, Thursday every week
/* move start date */
if (to2.hasStartDate() )
to2.setStartDate( to2.startDate().addDays( dayDiff ) );
/* now the alarms */
if (to2.hasNotifiers() ) {
OPimNotifyManager::Alarms _als = to2.notifiers().alarms();
OPimNotifyManager::Alarms als;
/* for every alarm move the day */
for ( OPimNotifyManager::Alarms::Iterator it = _als.begin(); it != _als.end(); ++it ) {
OPimAlarm al = (*it);
al.setDateTime( al.dateTime().addDays( dayDiff ) );
als.append( al );
}
to2.notifiers().setAlarms( als );
- handleAlarms( OTodo(), todo );
+ handleAlarms( OPimTodo(), todo );
}
to2.setCompletedDate( inval );
to2.setCompleted( false );
updateTodo( to2 );
}else
updateTodo( to );
}else
updateTodo( to );
currentView()->updateView();
raiseCurrentView();
}
void MainWindow::flush() {
slotFlush();
}
void MainWindow::reload() {
slotReload();
}
int MainWindow::create() {
int uid = 0;
if(m_syncing) {
QMessageBox::warning(this, QWidget::tr("Todo"),
QWidget::tr("Data can not be edited, currently syncing"));
return uid;
}
m_todoMgr.load();
- OTodo todo = currentEditor()->newTodo( currentCatId(),
+ OPimTodo todo = currentEditor()->newTodo( currentCatId(),
this );
if ( currentEditor()->accepted() ) {
//todo.assignUid();
uid = todo.uid();
- handleAlarms( OTodo(), todo );
+ handleAlarms( OPimTodo(), todo );
m_todoMgr.add( todo );
currentView()->addEvent( todo );
// I'm afraid we must call this every time now, otherwise
// spend expensive time comparing all these strings...
// but only call if we changed something -zecke
populateCategories();
}
raiseCurrentView( );
return uid;
}
/* delete it silently... */
bool MainWindow::remove( int uid ) {
if (m_syncing) return false;
/* argh need to get the whole OEvent... to disable alarms -zecke */
- handleAlarms( OTodo(), m_todoMgr.event( uid ) );
+ handleAlarms( OPimTodo(), m_todoMgr.event( uid ) );
return m_todoMgr.remove( uid );
}
void MainWindow::beam( int uid) {
if( uid == 0 ) return;
::unlink( beamfile );
m_todoMgr.load();
- OTodo todo = event( uid );
- OTodoAccessVCal* cal = new OTodoAccessVCal(QString::fromLatin1(beamfile) );
- OTodoAccess acc( cal );
+ OPimTodo todo = event( uid );
+ OPimTodoAccessVCal* cal = new OPimTodoAccessVCal(QString::fromLatin1(beamfile) );
+ OPimTodoAccess acc( cal );
acc.load();
acc.add( todo );
acc.save();
Ir* ir = new Ir(this );
connect(ir, SIGNAL(done(Ir*) ),
this, SLOT(beamDone(Ir*) ) );
ir->send(beamfile, todo.summary(), "text/x-vCalendar" );
}
void MainWindow::show( int uid ) {
m_todoMgr.load(); // might not be loaded yet
m_showing = true;
slotShow( uid );
raise();
QPEApplication::setKeepRunning();
}
void MainWindow::edit( int uid ) {
m_todoMgr.load();
slotEdit( uid );
}
void MainWindow::add( const OPimRecord& rec) {
- if ( rec.rtti() != OTodo::rtti() ) return;
+ if ( rec.rtti() != OPimTodo::rtti() ) return;
m_todoMgr.load(); // might not be loaded
- const OTodo& todo = static_cast<const OTodo&>(rec);
+ const OPimTodo& todo = static_cast<const OPimTodo&>(rec);
m_todoMgr.add(todo );
currentView()->addEvent( todo );
// I'm afraid we must call this every time now, otherwise
// spend expensive time comparing all these strings...
// but only call if we changed something -zecke
populateCategories();
}
void MainWindow::slotReturnFromView() {
m_showing = false;
raiseCurrentView();
}
namespace {
OPimNotifyManager::Alarms findNonMatching( const OPimNotifyManager::Alarms& oldAls,
const OPimNotifyManager::Alarms& newAls ) {
OPimNotifyManager::Alarms nonMatching;
OPimNotifyManager::Alarms::ConstIterator oldIt = oldAls.begin();
OPimNotifyManager::Alarms::ConstIterator newIt;
for ( ; oldIt != oldAls.end(); ++oldIt ) {
bool found = false;
QDateTime oldDt = (*oldIt).dateTime();
for (newIt= newAls.begin(); newIt != newAls.end(); ++newIt ) {
if ( oldDt == (*newIt).dateTime() ) {
found = true;
break;
}
}
if (!found)
nonMatching.append( (*oldIt) );
}
return nonMatching;
}
void addAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
OPimNotifyManager::Alarms::ConstIterator it;
for ( it = als.begin(); it != als.end(); ++it ) {
qWarning("Adding alarm for %s", (*it).dateTime().toString().latin1() );
AlarmServer::addAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
}
}
void removeAlarms( const OPimNotifyManager::Alarms& als, int uid ) {
OPimNotifyManager::Alarms::ConstIterator it;
for ( it = als.begin(); it != als.end(); ++it ) {
qWarning("Removinf alarm for %s", (*it).dateTime().toString().latin1() );
AlarmServer::deleteAlarm( (*it).dateTime(), "QPE/Application/todolist", "alarm(QDateTime,int)", uid );
}
}
}
-void MainWindow::handleAlarms( const OTodo& oldTodo, const OTodo& newTodo) {
+void MainWindow::handleAlarms( const OPimTodo& oldTodo, const OPimTodo& newTodo) {
/*
* if oldTodo is not empty and has notifiers we need to find the deleted ones
*/
if(!oldTodo.isEmpty() && oldTodo.hasNotifiers() ) {
OPimNotifyManager::Alarms removed;
OPimNotifyManager::Alarms oldAls = oldTodo.notifiers().alarms();
if (!newTodo.hasNotifiers() )
removed = oldAls;
else
removed = findNonMatching( oldAls, newTodo.notifiers().alarms() );
removeAlarms( removed, oldTodo.uid() );
}
if ( newTodo.hasNotifiers() ) {
OPimNotifyManager::Alarms added;
if ( oldTodo.isEmpty() || !oldTodo.hasNotifiers() )
added = newTodo.notifiers().alarms();
else
added = findNonMatching( newTodo.notifiers().alarms(), oldTodo.notifiers().alarms() );
addAlarms( added, newTodo.uid() );
}
}
/* we might have not loaded the db */
void MainWindow::doAlarm( const QDateTime& dt, int uid ) {
m_todoMgr.load();
- OTodo todo = m_todoMgr.event( uid );
+ OPimTodo todo = m_todoMgr.event( uid );
if (!todo.hasNotifiers() ) return;
/*
* let's find the right alarm and find out if silent
* then show a richtext widget
*/
bool loud = false;
OPimNotifyManager::Alarms als = todo.notifiers().alarms();
OPimNotifyManager::Alarms::Iterator it;
for ( it = als.begin(); it != als.end(); ++it ) {
if ( (*it).dateTime() == dt ) {
loud = ( (*it).sound() == OPimAlarm::Loud );
break;
}
}
if (loud)
startAlarm();
QDialog dlg(this, 0, TRUE );
QVBoxLayout* lay = new QVBoxLayout( &dlg );
QTextView* view = new QTextView( &dlg );
lay->addWidget( view );
QPushButton* btnOk = new QPushButton( tr("Ok"), &dlg );
connect( btnOk, SIGNAL(clicked() ), &dlg, SLOT(accept() ) );
lay->addWidget( btnOk );
QString text = tr("<h1>Alarm at %1</h1><br>").arg( TimeString::dateString( dt ) );
text += todo.toRichText();
view->setText( text );
bool needToStay = QPEApplication::execDialog( &dlg );
if (loud)
killAlarm();
if (needToStay) {
// showMaximized();
// raise();
QPEApplication::setKeepRunning();
// setActiveWindow();
}
}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index fd0e1bd..6a7296b 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -1,211 +1,213 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef TODO_MAIN_WINDOW_H
#define TODO_MAIN_WINDOW_H
#include <qlist.h>
-#include <opie/otodoaccess.h>
-#include <opie/otodo.h>
-#include <opie/opimmainwindow.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 OWidgetStack;
class Ir;
class QVBox;
class QLineEdit;
+using namespace Opie;
+
namespace Todo {
typedef TodoView View;
class TemplateManager;
class Editor;
class TodoShow;
class TemplateEditor;
struct QuickEditBase;
class MainWindow : public OPimMainWindow {
Q_OBJECT
friend class TodoView; // avoid QObject here....
friend class TodoShow; // avoid QObject
public:
/* 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 OTodo */
+ /** return a context menu for an OPimTodo */
QPopupMenu* contextMenu(int uid, bool doesRecur = FALSE );
QPopupMenu* options();
QPopupMenu* edit();
QToolBar* toolbar();
void updateList();
- OTodoAccess::List list()const;
- OTodoAccess::List sorted( bool asc, int sortOrder );
- OTodoAccess::List sorted( bool asc, int sortOrder, int addFilter );
+ OPimTodoAccess::List list()const;
+ OPimTodoAccess::List sorted( bool asc, int sortOrder );
+ OPimTodoAccess::List sorted( bool asc, int sortOrder, int addFilter );
- OTodo event(int uid );
+ 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 OTodo& );
+ void updateTodo( const OPimTodo& );
void populateTemplates();
Editor* currentEditor();
void setReadAhead(uint count );
private slots:
void slotQuickEntered();
void populateCategories();
void slotReload();
void slotFlush();
protected:
void closeEvent( QCloseEvent* e );
private:
/* handle setting and removing alarms */
- void handleAlarms( const OTodo& oldTodo, const OTodo& newTodo );
+ 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 initTemplate();
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;
TemplateEditor* currentTemplateEditor();
TemplateEditor* m_curTempEd;
QMenuBar* m_bar;
QToolBar* m_tool;
QAction* m_editAction,
*m_deleteAction,
*m_findAction,
*m_completedAction,
*m_showDeadLineAction,
*m_deleteAllAction,
*m_deleteCompleteAction,
*m_duplicateAction,
*m_showOverDueAction,
*m_showQuickTaskAction,
*m_effectiveAction;
OWidgetStack *m_stack;
QPopupMenu* m_catMenu,
*m_edit,
*m_options,
*m_template;
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 slotShow(int);
void slotEdit(int);
void slotUpdate3( QWidget* );
void slotComplete( int uid );
- void slotComplete( const OTodo& ev );
+ void slotComplete( const OPimTodo& ev );
void slotNewFromTemplate(int id );
void slotNew();
void slotDuplicate();
void slotDelete();
void slotDelete(int uid );
void slotDeleteAll();
void slotDeleteCompleted();
void slotEdit();
void slotFind();
void setCategory( int );
void slotShowDeadLine( bool );
void slotShowCompleted( bool );
void slotShowQuickTask( bool );
void setDocument( const QString& );
void slotBeam();
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 OPimRecord& );
void doAlarm( const QDateTime& dt, int uid );
};
}
#endif
diff --git a/core/pim/todo/opie-todo.control b/core/pim/todo/opie-todo.control
index 8ad50b2..3a65c04 100644
--- a/core/pim/todo/opie-todo.control
+++ b/core/pim/todo/opie-todo.control
@@ -1,10 +1,10 @@
Package: opie-todo
Files: plugins/application/libtodolist.so* bin/todolist apps/1Pim/todo.desktop
Priority: optional
Section: opie/pim
Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org>
Architecture: arm
-Depends: task-opie-minimal, libopie1, opie-pics
+Depends: task-opie-minimal, libopiecore2, libopieui2, libopiepim2, opie-pics
Description: Todo list manager
A Todo list manager for the Opie environment.
Version: $QPE_VERSION$EXTRAVERSION
diff --git a/core/pim/todo/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp
index 1ed20b4..ab1ce94 100644
--- a/core/pim/todo/otaskeditor.cpp
+++ b/core/pim/todo/otaskeditor.cpp
@@ -1,92 +1,90 @@
#include <qlayout.h>
-#include <opie/orecurrancewidget.h>
-
#include "taskeditoroverview.h"
#include "taskeditorstatus.h"
#include "taskeditoralarms.h"
#include "otaskeditor.h"
OTaskEditor::OTaskEditor(int cur)
: QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
init();
init( cur );
}
-OTaskEditor::OTaskEditor( const OTodo& to)
+OTaskEditor::OTaskEditor( const OPimTodo& to)
: QDialog( 0, 0, TRUE, WStyle_ContextHelp ) {
init();
init( to );
}
OTaskEditor::~OTaskEditor() {
}
void OTaskEditor::init( int cur ) {
- OTodo to;
+ OPimTodo to;
to.setUid( 1 ); // generate a new uid
if ( cur != 0 )
to.setCategories( cur );
load(to);
}
-void OTaskEditor::init( const OTodo& to ) {
+void OTaskEditor::init( const OPimTodo& to ) {
load( to );
}
-OTodo OTaskEditor::todo()const{
+OPimTodo OTaskEditor::todo()const{
qWarning("saving!");
- OTodo to ( m_todo );
+ 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 OTodo& 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 ORecurranceWidget( true, QDate::currentDate(), this );
+ 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 2daae52..7068df8 100644
--- a/core/pim/todo/otaskeditor.h
+++ b/core/pim/todo/otaskeditor.h
@@ -1,43 +1,43 @@
#ifndef OPIE_TASK_EDITOR_H
#define OPIE_TASK_EDITOR_H
#include <qdialog.h>
-#include <opie/otodo.h>
-#include <opie/otabwidget.h>
+#include <opie2/opimtodo.h>
+#include <opie2/otabwidget.h>
+#include <opie2/opimrecurrencewidget.h>
class TaskEditorOverView;
class TaskEditorStatus;
class TaskEditorAlarms;
-class ORecurranceWidget;
class QMultiLineEdit;
class OTaskEditor : public QDialog {
Q_OBJECT
public:
OTaskEditor(int cur);
- OTaskEditor( const OTodo& todo );
+ OTaskEditor( const 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 OTodo& todo );
+ void init( const OPimTodo& todo );
- OTodo todo()const;
+ OPimTodo todo()const;
private:
- void load( const OTodo& );
+ void load( const OPimTodo& );
void init();
OTabWidget *m_tab;
TaskEditorOverView *m_overView;
TaskEditorStatus *m_stat;
TaskEditorAlarms *m_alarm;
TaskEditorAlarms *m_remind;
- ORecurranceWidget *m_rec;
- OTodo m_todo;
+ OPimRecurrenceWidget *m_rec;
+ OPimTodo m_todo;
};
#endif
diff --git a/core/pim/todo/quickedit.h b/core/pim/todo/quickedit.h
index 5fe74fe..0c0c204 100644
--- a/core/pim/todo/quickedit.h
+++ b/core/pim/todo/quickedit.h
@@ -1,45 +1,47 @@
#ifndef OPIE_QUICK_EDIT_H
#define OPIE_QUICK_EDIT_H
#include <qsignal.h>
#include <qwidget.h>
-#include <opie/otodo.h>
+#include <opie2/opimtodo.h>
+
+using Opie::OPimTodo;
namespace Todo{
class MainWindow;
struct QuickEditBase {
- virtual OTodo todo()const = 0l;
+ 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
- * OTodos in a fast way
+ * OPimTodos in a fast way
*/
class QuickEdit : public QuickEditBase{
public:
QuickEdit(MainWindow* main );
virtual ~QuickEdit();
- //OTodo todo()const;
+ //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 1863ef4..cd0684f 100644
--- a/core/pim/todo/quickeditimpl.cpp
+++ b/core/pim/todo/quickeditimpl.cpp
@@ -1,116 +1,116 @@
#include <qaction.h>
#include <qlineedit.h>
#include <qwhatsthis.h>
#include <qpe/resource.h>
-#include <opie/oclickablelabel.h>
+#include <opie2/oclickablelabel.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" );
m_lbl = new 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 );
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 );
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 );
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() {
}
-OTodo QuickEditImpl::todo()const {
+OPimTodo QuickEditImpl::todo()const {
return m_todo;
}
QWidget* QuickEditImpl::widget() {
return this;
}
void QuickEditImpl::slotEnter() {
- OTodo todo;
+ 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 89b94f8..d465dba 100644
--- a/core/pim/todo/quickeditimpl.h
+++ b/core/pim/todo/quickeditimpl.h
@@ -1,41 +1,41 @@
#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();
- OTodo todo()const;
+ 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;
- OTodo m_todo;
+ OPimTodo m_todo;
bool m_visible;
QPixmap priority1;
QPixmap priority3;
QPixmap priority5;
};
#endif
diff --git a/core/pim/todo/smalltodo.h b/core/pim/todo/smalltodo.h
index 952ed04..963218e 100644
--- a/core/pim/todo/smalltodo.h
+++ b/core/pim/todo/smalltodo.h
@@ -1,70 +1,70 @@
/*
               =. 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.
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 OTodo without holding
- * everything from a OTodo
+ * 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 d980a24..5bbf880 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -1,607 +1,607 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <zecke>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <stdlib.h>
#include <cmath>
#include <cctype>
#include <qcombobox.h>
#include <qlineedit.h>
#include <qtimer.h>
#include <qpopupmenu.h>
#include <qpe/config.h>
#include <qpe/resource.h>
-#include <opie/orecur.h>
+#include <opie2/opimrecurrence.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" );
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 );
}
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();
connect((QTable*)this, SIGNAL( clicked( int, int, int, const QPoint& ) ),
this, SLOT( slotClicked(int, int, int, const QPoint& ) ) );
connect((QTable*)this, SIGNAL( pressed( int, int, int, const QPoint& ) ),
this, SLOT( slotPressed(int, int, int, const QPoint& ) ) );
connect((QTable*)this, SIGNAL(valueChanged(int, int) ),
this, SLOT( slotValueChanged(int, int) ) );
connect((QTable*)this, SIGNAL(currentChanged(int, int) ),
this, SLOT( slotCurrentChanged(int, int) ) );
m_menuTimer = new QTimer( this );
connect( m_menuTimer, SIGNAL(timeout()),
this, SLOT(slotShowMenu()) );
/* now let's init the config */
initConfig();
m_enablePaint = true;
setUpdatesEnabled( true );
viewport()->setUpdatesEnabled( true );
viewport()->update();
setSortOrder( 0 );
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) );
}
void TableView::slotShowMenu() {
QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
menu->exec(QCursor::pos() );
delete menu;
}
QString TableView::type() const {
return QString::fromLatin1( tr("Table View") );
}
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() {
- OTodo to = sorted()[currentRow()];
+ 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( ) {
qWarning("update view");
m_row = false;
static int id;
id = startTimer(4000 );
/* FIXME we want one page to be read!
*
* Calculate that screensize
*/
todoWindow()->setReadAhead( 4 );
sort();
- OTodoAccess::List::Iterator it, end;
+ OPimTodoAccess::List::Iterator it, end;
it = sorted().begin();
end = sorted().end();
qWarning("setTodos");
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 OTodo&) {
+void TableView::setTodo( int, const OPimTodo&) {
sort();
/* repaint */
repaint();
}
-void TableView::addEvent( const OTodo&) {
+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 OTodo& ev) {
+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 b) {
qWarning("Show Completed %d" , b );
updateView();
}
void TableView::setShowDeadline( bool b ) {
qWarning( "Show DeadLine %d" , 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) {
qWarning("setShowCategory");
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: {
m_menuTimer->stop();
showTodo( ui );
break;
}
case 3: {
m_menuTimer->stop();
TodoView::edit( ui );
break;
}
}
}
void TableView::slotPressed(int row, int col, int,
const QPoint& point) {
qWarning("pressed row %d col %d x:%d+y:%d", row,col,point.x(),point.y() );
m_prevP = point;
/* TextColumn column */
if ( col == 2 && cellGeometry( row, col ).contains( point ) )
m_menuTimer->start( 750, TRUE );
}
void TableView::slotValueChanged( int, int ) {
qWarning("Value Changed");
}
void TableView::slotCurrentChanged(int, int ) {
m_menuTimer->stop();
}
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 ) {
qWarning("bool %d", asc );
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();
- OTodo task = sorted()[row];
+ 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 ) {
qWarning("set cell content from editor");
if ( col == 1 ) {
QWidget* wid = cellWidget(row, 1 );
if ( wid->inherits("QComboBox") ) {
int pri = ((QComboBox*)wid)->currentItem() + 1;
- OTodo todo = sorted()[row];
+ OPimTodo todo = sorted()[row];
if ( todo.priority() != pri ) {
todo.setPriority( pri );
TodoView::update( todo.uid(), todo );
updateView();
}
}
}else if ( col == 2) {
QWidget* wid = cellWidget(row, 2);
if ( wid->inherits("QLineEdit") ) {
QString text = ((QLineEdit*)wid)->text();
- OTodo todo = sorted()[row];
+ OPimTodo todo = sorted()[row];
if ( todo.summary() != text ) {
todo.setSummary( text );
TodoView::update( todo.uid(), todo );
updateView();
}
}
}
}
void TableView::slotPriority() {
setCellContentFromEditor( currentRow(), currentColumn() );
}
/*
* We'll use the TimerEvent to read ahead or to keep the cahce always
* filled enough.
* We will try to read ahead 4 items in both ways
* up and down. On odd or even we will currentRow()+-4 or +-9
*
*/
void TableView::timerEvent( QTimerEvent* ) {
// qWarning("sorted %d", sorted().count() );
if (sorted().count() == 0 )
return;
int row = currentRow();
if ( m_row ) {
int ro = row-4;
if (ro < 0 ) ro = 0;
sorted()[ro];
ro = row+4;
sorted()[ro];
} else {
int ro = row + 8;
sorted()[ro];
ro = row-8;
if (ro < 0 ) ro = 0;
sorted()[ro];
}
m_row = !m_row;
}
// We want a strike through completed ;)
// durchstreichen to complete
/*
* MouseTracking is off this mean we only receive
* these events if the mouse button is pressed
* We've the previous point saved
* We check if the previous and current Point are
* in the same row.
* Then we check if they're some pixel horizontal away
* if the distance between the two points is greater than
* 8 we mark the underlying todo as completed and do a repaint
*
* BUG: When clicking on the Due column and it's scrollable
* the todo is marked as completed...
* REASON: QTable is doing auto scrolling which leads to a move
* in the x coordinate and this way it's able to pass the
* m_completeStrokeWidth criteria
* WORKAROUND: strike through needs to strike through the same
* row and two columns!
*/
void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
int row = rowAt(m_prevP.y());
int colOld = columnAt(m_prevP.x() );
int colNew = columnAt(e->x() );
qWarning("colNew: %d colOld: %d", colNew, colOld );
if ( row == rowAt( e->y() ) && row != -1 &&
colOld != colNew ) {
TodoView::complete( sorted()[row] );
return;
}
QTable::contentsMouseReleaseEvent( e );
}
void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
m_menuTimer->stop();
QTable::contentsMouseMoveEvent( e );
}
void TableView::keyPressEvent( QKeyEvent* event) {
if ( m_editorWidget.cellWidget() ) {
// setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() );
endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(),
true, true );
m_editorWidget.releaseCellWidget();
setFocus();
}
if ( sorted().count() < 1 ) {
QTable::keyPressEvent( event );
return;
}
int row = currentRow();
int col = currentColumn();
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h
index 528ddc9..7f78255 100644
--- a/core/pim/todo/tableview.h
+++ b/core/pim/todo/tableview.h
@@ -1,130 +1,130 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#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 OTodo& );
- void addEvent( const OTodo& event );
- void replaceEvent( const OTodo& );
+ 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
- * OTodos where we only show 10 at a time!
+ * 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* );
QTimer *m_menuTimer;
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* );
void contentsMouseMoveEvent( QMouseEvent* );
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 slotShowMenu();
void slotClicked(int, int, int,
const QPoint& );
void slotPressed(int, int, int,
const QPoint& );
void slotValueChanged(int, int);
void slotCurrentChanged(int, int );
void slotPriority();
private:
void initConfig();
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 bcc40fe..930c94e 100644
--- a/core/pim/todo/taskeditoralarms.cpp
+++ b/core/pim/todo/taskeditoralarms.cpp
@@ -1,233 +1,232 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "taskeditoralarms.h"
-#include <opie/otodo.h>
-#include <opie/opimnotifymanager.h>
-#include <opie/otimepicker.h>
+#include <opie2/opimnotifymanager.h>
+#include <opie2/otimepicker.h>
#include <qpe/datebookmonth.h>
#include <qpe/resource.h>
#include <qlistview.h>
#include <qlayout.h>
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 );
//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 );
//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 );
//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 OTodo& todo) {
+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( OTodo& todo ) {
+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 0aa52cc..2379b0c 100644
--- a/core/pim/todo/taskeditoralarms.h
+++ b/core/pim/todo/taskeditoralarms.h
@@ -1,72 +1,75 @@
/*
               =. 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.
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;
-class OTodo;
+
+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 OTodo& );
- void save( OTodo& );
+ 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 415dcf2..294acb9 100644
--- a/core/pim/todo/taskeditoroverview.cpp
+++ b/core/pim/todo/taskeditoroverview.cpp
@@ -1,175 +1,175 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "taskeditoroverview.h"
-#include <opie/orecur.h>
+//#include <opie2/opimrecurrence.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 );
}
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 OTodo& todo )
+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( OTodo &todo )
+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 d5f5125..89679f1 100644
--- a/core/pim/todo/taskeditoroverview.h
+++ b/core/pim/todo/taskeditoroverview.h
@@ -1,69 +1,71 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef TASKEDITOROVERVIEW_H
#define TASKEDITOROVERVIEW_H
-#include <opie/otodo.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 OTodo & );
- void save( OTodo & );
+ 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 98e3cea..367dd58 100644
--- a/core/pim/todo/taskeditorstatus.cpp
+++ b/core/pim/todo/taskeditorstatus.cpp
@@ -1,303 +1,302 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "taskeditorstatus.h"
-#include <opie/otodo.h>
-#include <opie/opimmaintainer.h>
-#include <opie/opimstate.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 OTodo &todo )
+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( OTodo &todo )
+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 3544200..97129f0 100644
--- a/core/pim/todo/taskeditorstatus.h
+++ b/core/pim/todo/taskeditorstatus.h
@@ -1,100 +1,103 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef TASKEDITORSTATUS_H
#define TASKEDITORSTATUS_H
+#include <opie2/opimtodo.h>
+
#include <qdatetime.h>
#include <qwidget.h>
class DateBookMonth;
-class OTodo;
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 OTodo
+ * 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 OTodo & );
- void save( OTodo & );
+ 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/templatedialogimpl.cpp b/core/pim/todo/templatedialogimpl.cpp
index 63d8107..c9ad3d0 100644
--- a/core/pim/todo/templatedialogimpl.cpp
+++ b/core/pim/todo/templatedialogimpl.cpp
@@ -1,127 +1,127 @@
#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 OTodo& );
+ const OPimTodo& );
~TemplateListItem();
- OTodo event()const;
+ OPimTodo event()const;
QString text()const;
void setText(const QString& str );
- void setEvent( const OTodo& );
+ void setEvent( const OPimTodo& );
private:
QString m_name;
- OTodo m_ev;
+ OPimTodo m_ev;
};
/* implementation */
TemplateListItem::TemplateListItem( QListView* view,
const QString& text,
- const OTodo& ev )
+ const OPimTodo& ev )
: QListViewItem( view ), m_name( text ), m_ev( ev )
{
QListViewItem::setText(0, m_name );
}
TemplateListItem::~TemplateListItem() {}
- OTodo TemplateListItem::event() const {
+ 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 OTodo& ev) {
+ 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() );
- OTodo ev;
+ 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() );
- OTodo ev = m_win->currentEditor()->edit( m_win, item->event() );
+ 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 f366c9e..cc78521 100644
--- a/core/pim/todo/templatedialogimpl.h
+++ b/core/pim/todo/templatedialogimpl.h
@@ -1,33 +1,33 @@
#ifndef OPIE_TEMPLATE_DIALOG_IMPL_H
#define OPIE_TEMPLATE_DIALOG_IMPL_H
#include <qlistview.h>
-#include <opie/otodo.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 35ea74b..01e5810 100644
--- a/core/pim/todo/textviewshow.cpp
+++ b/core/pim/todo/textviewshow.cpp
@@ -1,48 +1,48 @@
#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 OTodo& ev ) {
+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 498de81..cc31522 100644
--- a/core/pim/todo/textviewshow.h
+++ b/core/pim/todo/textviewshow.h
@@ -1,20 +1,20 @@
#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 OTodo& ev );
+ void slotShow( const OPimTodo& ev );
QWidget* widget();
protected:
void keyPressEvent( QKeyEvent* );
};
};
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index 51cfde7..9267082 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -1,49 +1,49 @@
#TEMPLATE = app
CONFIG = qt warn_on release quick-app
#DESTDIR = $(OPIEDIR)/bin
HEADERS = smalltodo.h \
todomanager.h \
mainwindow.h \
todoview.h \
tableview.h \
todotemplatemanager.h \
todoeditor.h \
todoshow.h \
textviewshow.h \
templateeditor.h \
templatedialog.h \
templatedialogimpl.h \
quickedit.h \
quickeditimpl.h \
otaskeditor.h \
taskeditoroverview.h \
taskeditorstatus.h \
taskeditoralarms.h
SOURCES = smalltodo.cpp \
todomanager.cpp \
mainwindow.cpp \
# main.cpp \
tableview.cpp \
todoview.cpp \
todotemplatemanager.cpp \
todoeditor.cpp \
todoshow.cpp \
textviewshow.cpp \
templateeditor.cpp \
templatedialog.cpp \
templatedialogimpl.cpp \
quickeditimpl.cpp \
quickedit.cpp \
otaskeditor.cpp \
taskeditoroverview.cpp \
taskeditorstatus.cpp \
taskeditoralarms.cpp
TARGET = todolist
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe -lopie
+LIBS += -lqpe -lopiecore2 -lopieui2 -lopiepim2
include ( $(OPIEDIR)/include.pro )
diff --git a/core/pim/todo/todoedit.h b/core/pim/todo/todoedit.h
index 02800ca..4e89e93 100644
--- a/core/pim/todo/todoedit.h
+++ b/core/pim/todo/todoedit.h
@@ -1,17 +1,17 @@
#ifndef OPIE_TODO_EDIT_H
#define OPIE_TODO_EDIT_H
-#include <opie/otodo.h>
+#include <opie2/opimtodo.h>
namespace Todo {
class Edit {
public:
Edit();
virtual ~Edit();
- ToDoEvent newEvent( const OTodo& ) = 0;
- ToDoEvent editEvent( const OTodo& ) = 0;
+ 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 78aedd6..879d809 100644
--- a/core/pim/todo/todoeditor.cpp
+++ b/core/pim/todo/todoeditor.cpp
@@ -1,62 +1,62 @@
#include <qpe/qpeapplication.h>
#include "otaskeditor.h"
#include "todoeditor.h"
using namespace Todo;
Editor::Editor() {
m_accepted = false;
m_self = 0l;
}
Editor::~Editor() {
delete m_self;
m_self = 0;
}
-OTodo Editor::newTodo( int cur,
+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;
- OTodo ev = e->todo();
+ OPimTodo ev = e->todo();
qWarning("Todo uid");
qWarning("Todo %s %d %d", ev.summary().latin1(), ev.progress(), ev.isCompleted() );
ev.setUid(1);
return ev;
}
-OTodo Editor::edit( QWidget *,
- const OTodo& todo ) {
+OPimTodo Editor::edit( QWidget *,
+ const OPimTodo& todo ) {
OTaskEditor *e = self();
e->init( todo );
e->setCaption( QObject::tr( "Edit Task" ) );
int ret = QPEApplication::execDialog( e );
- OTodo ev = e->todo();
+ 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 fe30634..bcfd205 100644
--- a/core/pim/todo/todoeditor.h
+++ b/core/pim/todo/todoeditor.h
@@ -1,29 +1,29 @@
#ifndef OPIE_TODO_EDITOR_H
#define OPIE_TODO_EDITOR_H
-#include <opie/otodo.h>
+#include <opie2/opimtodo.h>
class OTaskEditor;
namespace Todo {
class Editor {
public:
Editor();
~Editor();
- OTodo newTodo( int currentCatId,
+ OPimTodo newTodo( int currentCatId,
QWidget* par );
- OTodo edit( QWidget* par,
- const OTodo& ev = OTodo() );
+ OPimTodo edit( QWidget* par,
+ const OPimTodo& ev = 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 501cca7..21e1d0c 100644
--- a/core/pim/todo/todomanager.cpp
+++ b/core/pim/todo/todomanager.cpp
@@ -1,127 +1,127 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <qpe/categoryselect.h>
#include "todomanager.h"
using namespace Todo;
TodoManager::TodoManager( QObject *obj )
: QObject( obj ) {
m_db = 0l;
QTime time;
time.start();
int el = time.elapsed();
qWarning("QTimer for loading %d", el/1000 );
}
TodoManager::~TodoManager() {
delete m_db;
}
-OTodo TodoManager::event(int uid ) {
+OPimTodo TodoManager::event(int uid ) {
return m_db->find( uid );
}
void TodoManager::updateList() {
qWarning("update list");
m_list = m_db->allRecords();
}
-OTodoAccess::List TodoManager::list() const{
+OPimTodoAccess::List TodoManager::list() const{
return m_list;
}
-OTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) {
+OPimTodoAccess::List TodoManager::sorted( bool asc, int so, int f, int cat ) {
return m_db->sorted( asc, so, f, cat );
}
-OTodoAccess::List::Iterator TodoManager::overDue() {
+OPimTodoAccess::List::Iterator TodoManager::overDue() {
int filter = 2 | 1;
m_list = m_db->sorted(m_asc, m_sortOrder, filter, m_ca );
m_it = m_list.begin();
return m_it;
}
-OTodoAccess::List::Iterator TodoManager::fromTo( const QDate& start,
+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;
}
-OTodoAccess::List::Iterator TodoManager::query( const OTodo& ev, int query ) {
+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;
}
-OTodoAccess* TodoManager::todoDB() {
+OPimTodoAccess* TodoManager::todoDB() {
return m_db;
}
-void TodoManager::add( const OTodo& ev ) {
+void TodoManager::add( const OPimTodo& ev ) {
m_db->add( ev );
}
void TodoManager::update( int, const SmallTodo& ) {
}
-void TodoManager::update( int, const OTodo& ev) {
+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 OTodoAccess();
+ m_db = new OPimTodoAccess();
m_db->load();
}
}
diff --git a/core/pim/todo/todomanager.h b/core/pim/todo/todomanager.h
index 8544277..865b47b 100644
--- a/core/pim/todo/todomanager.h
+++ b/core/pim/todo/todomanager.h
@@ -1,111 +1,113 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef OPIE_TODO_MANAGER_H
#define OPIE_TODO_MANAGER_H
-#include <qarray.h>
-#include <qobject.h>
-#include <qstring.h>
+#include <opie2/opimtodo.h>
+#include <opie2/otodoaccess.h>
#include <qpe/categories.h>
-#include <opie/otodo.h>
-#include <opie/otodoaccess.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&);
- OTodo event(int uid );
+ OPimTodo event(int uid );
void updateList();
/** returns the iterator sorted if set sorted*/
- OTodoAccess::List list()const;
- OTodoAccess::List sorted( bool asc, int so, int f, int cat );
+ OPimTodoAccess::List list()const;
+ OPimTodoAccess::List sorted( bool asc, int so, int f, int cat );
- OTodoAccess::List::Iterator overDue();
- OTodoAccess::List::Iterator fromTo( const QDate& start,
+ OPimTodoAccess::List::Iterator overDue();
+ OPimTodoAccess::List::Iterator fromTo( const QDate& start,
const QDate& end );
- OTodoAccess::List::Iterator query( const OTodo& ev, int query );
+ 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();
- OTodoAccess* todoDB();
+ OPimTodoAccess* todoDB();
bool saveAll();
signals:
void update();
void updateCategories();
public slots:
- void add( const OTodo& );
+ void add( const OPimTodo& );
void update( int uid, const SmallTodo& );
- void update( int uid, const OTodo& );
+ 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:
- OTodoAccess* m_db;
- OTodoAccess::List m_list;
- OTodoAccess::List::Iterator m_it;
- OTodoAccess::List m_sorted;
+ 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.h b/core/pim/todo/todoshow.h
index 2babe93..1eeadf8 100644
--- a/core/pim/todo/todoshow.h
+++ b/core/pim/todo/todoshow.h
@@ -1,60 +1,62 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef TODO_TODO_SHOW_H
#define TODO_TODO_SHOW_H
#include <qstring.h>
#include <qwidget.h>
-#include <opie/otodo.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 OTodo& ev ) = 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/todotemplatemanager.cpp b/core/pim/todo/todotemplatemanager.cpp
index 5b83f76..eeac51b 100644
--- a/core/pim/todo/todotemplatemanager.cpp
+++ b/core/pim/todo/todotemplatemanager.cpp
@@ -1,81 +1,81 @@
+#include <opie2/otodoaccess.h>
+#include <opie2/otodoaccessxml.h>
+
#include <qpe/config.h>
#include <qpe/global.h>
-#include <opie/otodoaccess.h>
-#include <opie/otodoaccessxml.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");
- OTodoAccessXML *xml = new OTodoAccessXML( QString::fromLatin1("template"),
+ OPimTodoAccessXML *xml = new OPimTodoAccessXML( QString::fromLatin1("template"),
m_path );
- OTodoAccess todoDB(xml );
+ OPimTodoAccess todoDB(xml );
todoDB.load();
- OTodoAccess::List::Iterator it;
- OTodoAccess::List list = todoDB.allRecords();
+ OPimTodoAccess::List::Iterator it;
+ OPimTodoAccess::List list = todoDB.allRecords();
for ( it = list.begin(); it != list.end(); ++it ) {
- OTodo ev = (*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() {
qWarning("Saving!!!!");
Config conf("todolist_templates");
- OTodoAccessXML *res = new OTodoAccessXML( "template",
+ OPimTodoAccessXML *res = new OPimTodoAccessXML( "template",
m_path );
- OTodoAccess db(res);
+ OPimTodoAccess db(res);
db.load();
db.clear();
- QMap<QString, OTodo>::Iterator it;
+ QMap<QString, OPimTodo>::Iterator it;
for ( it = m_templates.begin(); it != m_templates.end(); ++it ) {
- OTodo ev = it.data();
+ OPimTodo ev = it.data();
conf.setGroup( QString::number( ev.uid() ) );
qWarning("Name" + it.key() );
conf.writeEntry("Name", it.key() );
db.add( ev );
}
db.save();
}
void TemplateManager::addEvent( const QString& str,
- const OTodo& ev) {
+ const OPimTodo& ev) {
qWarning("AddEvent"+ str );
- OTodo todo = ev;
+ OPimTodo todo = ev;
if( ev.uid() == 0 )
- todo.setUid(1); // generate a new uid
-
+ 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, OTodo>::ConstIterator it;
+ QMap<QString, OPimTodo>::ConstIterator it;
for (it = m_templates.begin(); it != m_templates.end(); ++it ) {
list << it.key();
}
return list;
}
-OTodo TemplateManager::templateEvent( const QString& templateName ) {
+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 387ced1..ee8aaaf 100644
--- a/core/pim/todo/todotemplatemanager.h
+++ b/core/pim/todo/todotemplatemanager.h
@@ -1,32 +1,33 @@
#ifndef OPIE_TODO_TEMPLATE_H
#define OPIE_TODO_TEMPLATE_H
+#include <opie2/opimtodo.h>
+
#include <qstring.h>
#include <qmap.h>
-#include <opie/otodo.h>
-
+using namespace Opie;
namespace Todo {
class TemplateManager {
public:
TemplateManager();
~TemplateManager();
void load();
void save();
QStringList templates()const;
- OTodo templateEvent( const QString& templateName );
+ OPimTodo templateEvent( const QString& templateName );
/* also replaces one */
- void addEvent( const QString&, const OTodo& );
+ void addEvent( const QString&, const OPimTodo& );
void removeEvent( const QString& );
private:
QString m_path;
- QMap<QString, OTodo> m_templates;
+ QMap<QString, OPimTodo> m_templates;
};
};
#endif
diff --git a/core/pim/todo/todoview.cpp b/core/pim/todo/todoview.cpp
index 31047cf..d99cf77 100644
--- a/core/pim/todo/todoview.cpp
+++ b/core/pim/todo/todoview.cpp
@@ -1,69 +1,69 @@
#include "mainwindow.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;
}
-OTodo TodoView::event(int uid ) {
+OPimTodo TodoView::event(int uid ) {
return m_main->event( uid );
}
-OTodoAccess::List TodoView::list(){
+OPimTodoAccess::List TodoView::list(){
todoWindow()->updateList();
return todoWindow()->list();
}
-OTodoAccess::List TodoView::sorted()const{
+OPimTodoAccess::List TodoView::sorted()const{
return m_sort;
}
void TodoView::sort() {
m_sort = todoWindow()->sorted(m_asc,m_sortOrder );
qWarning("m_sort.count() = %d", m_sort.count() );
}
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 ) {
qWarning("setAscending %d", b );
m_asc = b;
}
void TodoView::update(int, const SmallTodo& ) {
//m_main->slotUpate1( uid, to );
}
-void TodoView::update(int , const OTodo& ev ) {
+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 OTodo& ev ) {
+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 e5ed66f..a5ea9f5 100644
--- a/core/pim/todo/todoview.h
+++ b/core/pim/todo/todoview.h
@@ -1,136 +1,138 @@
/*
               =. This file is part of the OPIE Project
             .=l. Copyright (c) 2002 <>
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef TODO_VIEW_H
#define TODO_VIEW_H
#include <qarray.h>
#include <qstring.h>
#include <qvaluelist.h>
#include <qwidget.h>
-#include <opie/otodoaccess.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 OTodo& ) = 0;
- virtual void replaceEvent( const OTodo& ) = 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();
- OTodo event(int uid );
- OTodoAccess::List list();
- OTodoAccess::List sorted()const;
+ 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 OTodo& ev);
+ 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 OTodo& ev );
+ void complete( const OPimTodo& ev );
private:
MainWindow *m_main;
- OTodoAccess::List m_sort;
+ OPimTodoAccess::List m_sort;
bool m_asc : 1;
int m_sortOrder;
};
};
#endif