summaryrefslogtreecommitdiff
authordrw <drw>2002-12-22 15:54:54 (UTC)
committer drw <drw>2002-12-22 15:54:54 (UTC)
commit043abeb16589fa2aaa0881d2781bb46fa99007b6 (patch) (side-by-side diff)
tree9a36c9bf485dd72d021b57a3de56b2f27f2e7f96
parent255d01d91f79b27765a03e100a6704fb43e1a9c1 (diff)
downloadopie-043abeb16589fa2aaa0881d2781bb46fa99007b6.zip
opie-043abeb16589fa2aaa0881d2781bb46fa99007b6.tar.gz
opie-043abeb16589fa2aaa0881d2781bb46fa99007b6.tar.bz2
Main todo view text color and column width fixes.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp50
1 files changed, 26 insertions, 24 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index faf4611..d229f52 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -45,107 +45,91 @@
using namespace Todo;
namespace {
static const int BoxSize = 14;
static const int RowHeight = 20;
}
void TableView::initConfig() {
Config config( "todo" );
config.setGroup( "Options" );
m_completeStrokeWidth = config.readNumEntry( "CompleteStrokeWidth", 8 );
}
TableView::TableView( MainWindow* window, QWidget* wid )
: QTable( wid ), TodoView( window ) {
setUpdatesEnabled( false );
viewport()->setUpdatesEnabled( false );
m_enablePaint = false;
setNumRows(0);
setNumCols(4);
horizontalHeader()->setLabel( 0, tr("C.") );
- horizontalHeader()->setLabel( 1, tr("Prior.") );
+ horizontalHeader()->setLabel( 1, tr("Priority") );
horizontalHeader()->setLabel( 2, tr("Description" ) );
horizontalHeader()->setLabel( 3, tr("Deadline") );
+ setShowDeadline( todoWindow()->showDeadline() );
+
setSorting( TRUE );
setSelectionMode( NoSelection );
setLeftMargin( 0 );
verticalHeader()->hide();
- if ( todoWindow()->showDeadline() )
- showColumn( 3 );
- else
- hideColumn( 3 );
-
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()) );
m_enablePaint = true;
setUpdatesEnabled( true );
viewport()->setUpdatesEnabled( true );
viewport()->update();
setSortOrder( 0 );
setAscending( TRUE );
m_first = true;
// Load icons
// TODO - probably should be done globally somewhere else, see also quickeditimpl.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 );
}
- // Try to intelligently size columns
- int col2width = 240;
- int width = m_pic_completed.width();
- setColumnWidth( 0, width );
- col2width -= width;
- width = fontMetrics().boundingRect( horizontalHeader()->label( 1 ) ).width()+8;
- setColumnWidth( 1, width );
- col2width -= width;
- width = fontMetrics().boundingRect( horizontalHeader()->label( 3 ) ).width()+8;
- setColumnWidth( 3, width );
- col2width -= width;
- setColumnWidth( 2, col2width - 2 );
-
/* now let's init the config */
initConfig();
}
/* a new day has started
* update the day
*/
void TableView::newDay() {
clear();
updateView();
}
TableView::~TableView() {
}
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() {
int uid = sorted().uidAt(currentRow() );
@@ -204,54 +188,70 @@ void TableView::setTodo( int, const OTodo&) {
void TableView::addEvent( const OTodo&) {
/* fix problems of not showing the 'Haken' */
updateView();
}
/*
* find the event
* and then replace the complete row
*/
void TableView::replaceEvent( const OTodo& 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 );
+void TableView::setShowDeadline( bool b ) {
+ qWarning( "Show DeadLine %d" + b );
+ if ( b )
+ showColumn( 3 );
else
- hideColumn(3 );
+ 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 ( !cellGeometry(row, col ).contains(point ) )
return;
int ui= sorted().uidAt( row );
switch( col ) {
case 0:{
int x = point.x() -columnPos( col );
@@ -315,51 +315,53 @@ void TableView::sortColumn( int col, bool asc, bool ) {
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];
// 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() ) {