summaryrefslogtreecommitdiff
path: root/core/pim
authorzecke <zecke>2002-04-23 12:45:20 (UTC)
committer zecke <zecke>2002-04-23 12:45:20 (UTC)
commite25c5384f3f3025be64ed26d244c59afc5862711 (patch) (side-by-side diff)
tree603f32b0550ecda9cbe95a93807a2a89b32cabcd /core/pim
parent367304a610dd618ad45ddce8256ba4d7d8ded442 (diff)
downloadopie-e25c5384f3f3025be64ed26d244c59afc5862711.zip
opie-e25c5384f3f3025be64ed26d244c59afc5862711.tar.gz
opie-e25c5384f3f3025be64ed26d244c59afc5862711.tar.bz2
Patch from Stefan Eilers for overview
merged by hand
Diffstat (limited to 'core/pim') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/TODO3
-rw-r--r--core/pim/todo/mainwindow.cpp68
-rw-r--r--core/pim/todo/mainwindow.h16
-rw-r--r--core/pim/todo/opie-todo.control2
-rw-r--r--core/pim/todo/todo.pro6
-rw-r--r--core/pim/todo/todolabel.cc58
-rw-r--r--core/pim/todo/todolabel.h51
-rw-r--r--core/pim/todo/todotable.cpp24
-rw-r--r--core/pim/todo/todotable.h2
9 files changed, 202 insertions, 28 deletions
diff --git a/core/pim/todo/TODO b/core/pim/todo/TODO
index 7601dd2..b00450c 100644
--- a/core/pim/todo/TODO
+++ b/core/pim/todo/TODO
@@ -1,4 +1 @@
--fix the journal (wip )
--fix day wrapping update all DueDateItems
-when checking the C. box update the deadline
--TodoLabel : public TextView
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index fc17c5f..d3f4cb4 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -1,6 +1,6 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
- Copyright (C) 2002 zecke
- Copyright (C) 2002 Stefan Eilers
+** Copyright (C) 2002 zecke
+** Copyright (C) 2002 Stefan Eilers (se, eilers.stefan@epost.de)
**
** This file is part of Qtopia Environment.
@@ -26,4 +26,5 @@
#include "todoentryimpl.h"
#include "todotable.h"
+#include "todolabel.h"
#include <opie/tododb.h>
@@ -49,4 +50,5 @@
#include <qmessagebox.h>
#include <qpopupmenu.h>
+#include <qwidgetstack.h>
#include <sys/stat.h>
@@ -72,5 +74,6 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
// QTime t;
// t.start();
-
+ mView = 0l;
+ mStack = new QWidgetStack(this, "main stack");
setCaption( tr("Todo") );
QString str;
@@ -102,5 +105,7 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
"before you enter any data") );
- setCentralWidget( table );
+ mStack->addWidget(table, 1 );
+ mStack->raiseWidget( 1 );
+ setCentralWidget( mStack );
setToolBarsMovable( FALSE );
@@ -147,4 +152,11 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
a->setEnabled( FALSE );
editAction = a;
+
+ a = new QAction( QString::null, tr("View Task"), 0, this, 0 );
+ a->addTo( edit );
+ a->addTo( contextMenu );
+ connect( a, SIGNAL( activated() ),
+ this, SLOT(slotShowDetails() ) );
+
edit->insertSeparator();
@@ -177,6 +189,8 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
a->setEnabled( FALSE );
duplicateAction = a;
-
edit->insertSeparator();
+
+
+
if ( Ir::supported() ) {
a = new QAction( tr( "Beam" ), Resource::loadPixmap( "beam" ),
@@ -250,4 +264,6 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
this, SLOT( currentEntryChanged( int, int ) ) );
+ connect( table, SIGNAL(showDetails(const ToDoEvent &) ),
+ this, SLOT(slotShowDetails(const ToDoEvent & ) ) );
// qDebug("done: t=%d", t.elapsed() );
}
@@ -287,4 +303,5 @@ void TodoWindow::slotNew()
// spend expensive time comparing all these strings...
populateCategories();
+ mStack->raiseWidget(1 );
}
@@ -319,4 +336,5 @@ void TodoWindow::slotDelete()
findAction->setEnabled( FALSE );
}
+ mStack->raiseWidget(1);
}
void TodoWindow::slotDeleteAll()
@@ -330,5 +348,5 @@ void TodoWindow::slotDeleteAll()
//QString strName = table->text( table->currentRow(), 2 ).left( 30 );
- if ( !QPEMessageBox::confirmDelete( this, tr( "Todo" ), tr("Should I delete all tasks?") ) )
+ if ( !QPEMessageBox::confirmDelete( this, tr( "Todo" ), tr("Delete all tasks?") ) )
return;
@@ -343,4 +361,5 @@ void TodoWindow::slotDeleteAll()
findAction->setEnabled( FALSE );
}
+ mStack->raiseWidget(1 );
}
@@ -370,5 +389,5 @@ void TodoWindow::slotEdit()
}
populateCategories();
-
+ mStack->raiseWidget( 1 );
}
void TodoWindow::slotDuplicate()
@@ -380,8 +399,17 @@ void TodoWindow::slotDuplicate()
}
ToDoEvent ev = table->currentEntry();
- ToDoEvent ev2 = ToDoEvent( ev );
+ ToDoEvent ev2 = ToDoEvent( ev ); // what about the uid
+ int uid;
+ { // uid
+ Qtopia::UidGen *uidgen = new Qtopia::UidGen();
+ uid = uidgen->generate();
+ delete uidgen;
+ }
+ ev2.setUid( uid );
table->setPaintingEnabled( false );
table->addEntry( ev2 );
table->setPaintingEnabled( true );
+
+ mStack->raiseWidget( 1 );
}
void TodoWindow::slotShowPopup( const QPoint &p )
@@ -434,4 +462,6 @@ void TodoWindow::setCategory( int c )
}
table->setPaintingEnabled( true );
+
+ mStack->raiseWidget( 1 );
}
@@ -441,4 +471,5 @@ void TodoWindow::populateCategories()
int id, rememberId;
id = 1;
+ rememberId = 0;
catMenu->insertItem( tr( "All Categories" ), id++ );
catMenu->insertSeparator();
@@ -473,4 +504,9 @@ void TodoWindow::flush()
void TodoWindow::closeEvent( QCloseEvent *e )
{
+ if( mStack->visibleWidget() != table ){
+ mStack->raiseWidget( 1 );
+ e->ignore();
+ return;
+ }
if(syncing) {
/* no need to save if in the middle of syncing */
@@ -563,5 +599,4 @@ void TodoWindow::beamDone( Ir *ir )
}
-/* added 20.01.2k2 by se */
void TodoWindow::showDeadline( bool s )
{
@@ -570,2 +605,17 @@ void TodoWindow::showDeadline( bool s )
table->setPaintingEnabled( true );
}
+void TodoWindow::slotShowDetails()
+{
+ ToDoEvent event = table->currentEntry();
+ slotShowDetails( event );
+}
+void TodoWindow::slotShowDetails( const ToDoEvent &event )
+{
+ if( mView == 0l ){
+ mView = new TodoLabel(mStack);
+ mStack->addWidget( mView, 2 );
+ }
+ mView->init( event );
+ mView->sync();
+ mStack->raiseWidget( 2);
+}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index b9172e1..f62ec6e 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -1,4 +1,5 @@
/**********************************************************************
- Copyright (C) 2002 Holger 'zecke' Freyther <freyther@kde.org>
+** Copyright (C) 2002 Holger 'zecke' Freyther <freyther@kde.org>
+** Copyright (C) 2002 by Stefan Eilers (se, eilers.stefan@epost.de)
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
@@ -30,4 +31,8 @@ class QPopupMenu;
class Ir;
class OFontMenu;
+class TodoLabel;
+class ToDoDB;
+class QWidgetStack;
+class ToDoEvent;
class TodoWindow : public QMainWindow
@@ -50,7 +55,9 @@ protected slots:
void showCompleted( bool );
- /* added 20.01.2k2 by se */
void showDeadline( bool );
-
+
+ void slotShowDetails(const ToDoEvent &event );
+ void slotShowDetails();
+
void currentEntryChanged( int r, int c );
void setCategory( int );
@@ -67,7 +74,9 @@ protected:
private:
void populateCategories();
+ //inline void switchToTable(); // move back to the normal view
private:
TodoTable *table;
+ TodoLabel *mView;
QAction *editAction,
*deleteAction,
@@ -78,4 +87,5 @@ private:
*duplicateAction;
QPopupMenu *contextMenu, *catMenu;
+ QWidgetStack *mStack;
bool syncing;
diff --git a/core/pim/todo/opie-todo.control b/core/pim/todo/opie-todo.control
index cb9b110..71929af 100644
--- a/core/pim/todo/opie-todo.control
+++ b/core/pim/todo/opie-todo.control
@@ -2,5 +2,5 @@ Files: bin/todolist apps/Applications/todo.desktop
Priority: optional
Section: opie/applications
-Maintainer: Warwick Allison <warwick@trolltech.com>
+Maintainer: Holger 'zecke' Freyther <zecke@handhelds.org>
Architecture: arm
Version: $QPE_VERSION-$SUB_VERSION
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index a46fb47..a365081 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -4,9 +4,11 @@ DESTDIR = $(OPIEDIR)/bin
HEADERS = mainwindow.h \
todotable.h \
- todoentryimpl.h
+ todoentryimpl.h \
+ todolabel.h
SOURCES = main.cpp \
mainwindow.cpp \
todotable.cpp \
- todoentryimpl.cpp
+ todoentryimpl.cpp \
+ todolabel.cc
INTERFACES = todoentry.ui
diff --git a/core/pim/todo/todolabel.cc b/core/pim/todo/todolabel.cc
new file mode 100644
index 0000000..4ce3499
--- a/dev/null
+++ b/core/pim/todo/todolabel.cc
@@ -0,0 +1,58 @@
+/**********************************************************************
+** Copyright (C) 2002 by Stefan Eilers (se, eilers.stefan@epost.de)
+** Copyright (C) 2002 Holger 'zecke' Freyther <freyther@kde.org>
+** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
+**
+** This file is part of the Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+
+
+#include <qpe/stringutil.h>
+
+#include <qregexp.h>
+#include <qstylesheet.h>
+
+
+#include "todolabel.h"
+
+TodoLabel::TodoLabel( QWidget *parent, const char *name )
+ : QTextView( parent, name )
+{
+}
+
+TodoLabel::~TodoLabel()
+{
+}
+
+void TodoLabel::init( const ToDoEvent &item )
+{
+ m_item = item;
+}
+
+void TodoLabel::sync()
+{
+ QString text = m_item.richText();
+ setText( text );
+}
+
+void TodoLabel::keyPressEvent( QKeyEvent *e )
+{
+ if ( e->key() == Qt::Key_F33 ) {
+ emit okPressed();
+ }
+}
diff --git a/core/pim/todo/todolabel.h b/core/pim/todo/todolabel.h
new file mode 100644
index 0000000..b6d67af
--- a/dev/null
+++ b/core/pim/todo/todolabel.h
@@ -0,0 +1,51 @@
+/**********************************************************************
+** Copyright (C) 2002 by Stefan Eilers (se, eilers.stefan@epost.de)
+** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
+**
+** This file is part of the Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#ifndef TODOLABEL_H
+#define TODOLABEL_H
+
+#include <opie/todoevent.h>
+
+#include <qtextview.h>
+
+class TodoLabel : public QTextView
+{
+ Q_OBJECT
+
+public:
+ TodoLabel( QWidget *parent, const char *name = 0 );
+ ~TodoLabel();
+
+public slots:
+ void init( const ToDoEvent &item);
+ void sync();
+
+signals:
+ void okPressed();
+
+protected:
+ void keyPressEvent( QKeyEvent * );
+
+private:
+ ToDoEvent m_item;
+
+};
+
+#endif
diff --git a/core/pim/todo/todotable.cpp b/core/pim/todo/todotable.cpp
index d0bc61c..753c036 100644
--- a/core/pim/todo/todotable.cpp
+++ b/core/pim/todo/todotable.cpp
@@ -306,13 +306,19 @@ void TodoTable::slotClicked( int row, int col, int, const QPoint &pos )
break;
case 2:
- // may as well edit it...
- // menuTimer->stop();
-// emit signalEdit();
- // fall through
- case 3:
- // may as well edit it...
+ // may as well edit it...
+ // menuTimer->stop();
+ // emit signalEdit();
+ // Show detailed view of the selected entry
+ {
menuTimer->stop();
- // emit signalEdit();
- break;
+ ToDoEvent *todo = todoList[static_cast<CheckItem*>(item(row, 0))];
+ emit showDetails( *todo );
+ }
+ break;
+ case 3:
+ // may as well edit it...
+ menuTimer->stop();
+ // emit signalEdit();
+ break;
}
}
@@ -346,5 +352,5 @@ void TodoTable::internalAddEntries( QList<ToDoEvent> &list )
ToDoEvent TodoTable::currentEntry() const
{
- printf ("in currentEntry\n");
+ //qWarning ("in currentEntry\n");
QTableItem *i = item( currentRow(), 0 );
diff --git a/core/pim/todo/todotable.h b/core/pim/todo/todotable.h
index 458e07a..2f6e635 100644
--- a/core/pim/todo/todotable.h
+++ b/core/pim/todo/todotable.h
@@ -143,5 +143,5 @@ signals:
void signalNotFound();
void signalWrapAround();
-
+ void showDetails( const ToDoEvent & );
protected:
void keyPressEvent( QKeyEvent *e );