author | drw <drw> | 2002-12-22 15:54:54 (UTC) |
---|---|---|
committer | drw <drw> | 2002-12-22 15:54:54 (UTC) |
commit | 043abeb16589fa2aaa0881d2781bb46fa99007b6 (patch) (side-by-side diff) | |
tree | 9a36c9bf485dd72d021b57a3de56b2f27f2e7f96 | |
parent | 255d01d91f79b27765a03e100a6704fb43e1a9c1 (diff) | |
download | opie-043abeb16589fa2aaa0881d2781bb46fa99007b6.zip opie-043abeb16589fa2aaa0881d2781bb46fa99007b6.tar.gz opie-043abeb16589fa2aaa0881d2781bb46fa99007b6.tar.bz2 |
Main todo view text color and column width fixes.
-rw-r--r-- | core/pim/todo/tableview.cpp | 50 |
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() ) { |