author | zecke <zecke> | 2002-10-07 11:39:30 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-07 11:39:30 (UTC) |
commit | f11d4bda64b58abfebf77485d5d77143a10dc8c9 (patch) (side-by-side diff) | |
tree | a4e80550c4abe867303553de608316941dd943f1 /core/pim/todo/tableitems.cpp | |
parent | c2cd5470fa3ec69394fa65ad16ab29a6cadab56f (diff) | |
download | opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.zip opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.tar.gz opie-f11d4bda64b58abfebf77485d5d77143a10dc8c9.tar.bz2 |
Re add files
for todo
Diffstat (limited to 'core/pim/todo/tableitems.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/todo/tableitems.cpp | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/core/pim/todo/tableitems.cpp b/core/pim/todo/tableitems.cpp new file mode 100644 index 0000000..ebfefc8 --- a/dev/null +++ b/core/pim/todo/tableitems.cpp @@ -0,0 +1,181 @@ +/* + =. 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 "tableview.h" + +#include "tableitems.h" +#include <string.h> + +using namespace Todo; + +CheckItem::CheckItem( QTable* t, + const QString& sortKey, + int uid, + const QArray<int>& lis) + : OCheckItem(t, sortKey), m_uid(uid ), m_cat( lis ) +{ +} +CheckItem::~CheckItem() { +} +void CheckItem::setChecked( bool b ) { + OCheckItem::setChecked(b); +} +void CheckItem::toggle() { + TableView* view = static_cast<TableView*>( table() ); + OTodo ev = view->find( view->current() ); + ev.setCompleted(!isChecked() ); + view->updateFromTable( ev ); + + OCheckItem::toggle(); + table()->updateCell( row(), col() ); +} +int CheckItem::uid() const { + return m_uid; +} +QArray<int> CheckItem::cats() { + return m_cat; +} + +/* ComboItem */ +ComboItem::ComboItem( QTable* t, EditType et ) + : QTableItem( t, et, "3" ), m_cb(0) +{ + setReplaceable( FALSE ); +} +ComboItem::~ComboItem() { + +} +QWidget* ComboItem::createEditor()const { + qWarning( "create editor"); + QString txt = text(); + + ( (ComboItem*)this)-> m_cb = new QComboBox( table()->viewport() ); + + m_cb->insertItem( "1" ); + m_cb->insertItem( "2" ); + m_cb->insertItem( "3" ); + m_cb->insertItem( "4" ); + m_cb->insertItem( "5" ); + m_cb->setCurrentItem( txt.toInt() - 1 ); + + return m_cb; +} +void ComboItem::setContentFromEditor( QWidget* w) { + TableView* view = static_cast<TableView*>( table() ); + OTodo ev = view->find( view->current() ); + + if ( w->inherits( "QComboBox" ) ) + setText( ( (QComboBox*)w )->currentText() ); + else + QTableItem::setContentFromEditor( w ); + + ev.setPriority( text().toInt() ); + view->updateFromTable( ev ); +} +void ComboItem::setText( const QString& s ) { + if ( m_cb ) + m_cb->setCurrentItem( s.toInt()-1 ); + + QTableItem::setText( s ); +} +QString ComboItem::text()const { + if ( m_cb) + return m_cb->currentText(); + + return QTableItem::text(); +} + +/* TodoTextItem */ +TodoTextItem::~TodoTextItem() { + +} +TodoTextItem::TodoTextItem( QTable* t, + const QString& string ) + : QTableItem( t, QTableItem::Never, string ) +{} + +/* DueTextItem */ +DueTextItem::DueTextItem( QTable* t, const OTodo& ev) + : QTableItem(t, Never, QString::null ) +{ + setToDoEvent( ev ); +} +DueTextItem::~DueTextItem() { + +} +QString DueTextItem::key() const { + QString key; + + if( m_hasDate ){ + if(m_off == 0 ){ + key.append("b"); + }else if( m_off > 0 ){ + key.append("c"); + }else if( m_off < 0 ){ + key.append("a"); + } + key.append(QString::number(m_off ) ); + }else{ + key.append("d"); + } + return key; +} +void DueTextItem::setCompleted( bool comp ) { + m_completed = comp; + table()->updateCell( row(), col() ); +} +void DueTextItem::setToDoEvent( const OTodo& ev ) { + m_hasDate = ev.hasDueDate(); + m_completed = ev.isCompleted(); + + if( ev.hasDueDate() ){ + QDate today = QDate::currentDate(); + m_off = today.daysTo(ev.dueDate() ); + setText( QString::number(m_off) + " day(s) " ); + }else{ + setText("n.d." ); + m_off = 0; + } +} +void DueTextItem::paint( QPainter* p, const QColorGroup &cg, + const QRect& cr, bool selected ) { + QColorGroup cg2(cg); + + QColor text = cg.text(); + if( m_hasDate && !m_completed ){ + if( m_off < 0 ){ + cg2.setColor(QColorGroup::Text, QColor(red ) ); + }else if( m_off == 0 ){ + cg2.setColor(QColorGroup::Text, QColor(yellow) ); // orange isn't predefined + }else if( m_off > 0){ + cg2.setColor(QColorGroup::Text, QColor(green ) ); + } + } + QTableItem::paint(p, cg2, cr, selected ); + /* restore default color */ + cg2.setColor(QColorGroup::Text, text ); +} |