-rw-r--r-- | core/pim/todo/mainwindow.cpp | 6 | ||||
-rw-r--r-- | core/pim/todo/mainwindow.h | 7 | ||||
-rw-r--r-- | core/pim/todo/quickeditimpl.cpp | 2 | ||||
-rw-r--r-- | core/pim/todo/tableview.cpp | 113 | ||||
-rw-r--r-- | core/pim/todo/tableview.h | 4 |
5 files changed, 65 insertions, 67 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index f0aa455..0ccf73e 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp @@ -205,20 +205,18 @@ void MainWindow::initConfig() { 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_mainBox = new QVBox(this, "main box "); - - m_stack = new QWidgetStack(m_mainBox, "main stack"); - setCentralWidget( m_mainBox ); + m_stack = new QWidgetStack(this, "main stack"); + setCentralWidget( m_stack ); setToolBarsMovable( FALSE ); m_tool = new QPEToolBar( this ); m_tool->setHorizontalStretchable( TRUE ); m_bar = new QMenuBar( m_tool ); diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h index 86b9ac2..d756d64 100644 --- a/core/pim/todo/mainwindow.h +++ b/core/pim/todo/mainwindow.h @@ -135,23 +135,16 @@ private slots: *m_showOverDueAction, *m_showQuickTaskAction, *m_effectiveAction; QWidgetStack *m_stack; QPopupMenu* m_catMenu, *m_edit, *m_options, *m_template; - /* box with two rows - * top will be the quick edit - * this will bite my ass once - * we want to have all parts - * exchangeable - */ - QVBox* m_mainBox; 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; diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp index 8d0a9fd..cadec03 100644 --- a/core/pim/todo/quickeditimpl.cpp +++ b/core/pim/todo/quickeditimpl.cpp @@ -9,17 +9,17 @@ #include "quickeditimpl.h" QuickEditImpl::QuickEditImpl( QWidget* parent, bool visible ) : QPEToolBar( (QMainWindow *)parent ), Todo::QuickEdit( (Todo::MainWindow *)parent ) { setHorizontalStretchable( TRUE ); // Load priority icons - // TODO - probably should be done globally somewhere else + // TODO - probably should be done globally somewhere else, see also tableview.cpp/h priority1 = Resource::loadPixmap( "todo/priority1" ); priority3 = Resource::loadPixmap( "todo/priority3" ); priority5 = Resource::loadPixmap( "todo/priority5" ); // TODO - come up with icons and replace text priority values m_lbl = new OClickableLabel( this ); m_lbl->setMinimumWidth(15); diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index a8cc271..faf4611 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp @@ -30,16 +30,17 @@ #include <qcombobox.h> #include <qlineedit.h> #include <qtimer.h> #include <qpoint.h> #include <qpopupmenu.h> #include <qpe/config.h> +#include <qpe/resource.h> #include <opie/orecur.h> #include "mainwindow.h" //#include "tableitems.h" #include "tableview.h" using namespace Todo; @@ -59,34 +60,26 @@ void TableView::initConfig() { TableView::TableView( MainWindow* window, QWidget* wid ) : QTable( wid ), TodoView( window ) { setUpdatesEnabled( false ); viewport()->setUpdatesEnabled( false ); m_enablePaint = false; setNumRows(0); setNumCols(4); - setSorting( TRUE ); - setSelectionMode( NoSelection ); -// setColumnStretchable( 2, TRUE ); - setColumnStretchable( 3, FALSE ); - setColumnWidth(0, 20 ); - setColumnWidth(1, 35 ); - setColumnWidth(3, 18 ); - - setLeftMargin( 0 ); - verticalHeader()->hide(); - horizontalHeader()->setLabel(0, tr("C.") ); horizontalHeader()->setLabel(1, tr("Prior.") ); horizontalHeader()->setLabel(2, tr("Description" ) ); + horizontalHeader()->setLabel( 3, tr("Deadline") ); -// setColumnStretchable(3, FALSE ); + setSorting( TRUE ); + setSelectionMode( NoSelection ); - horizontalHeader()->setLabel(3, tr("Deadline") ); + 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& ) ) ); @@ -104,16 +97,39 @@ TableView::TableView( MainWindow* window, QWidget* wid ) 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(); @@ -310,69 +326,58 @@ void TableView::viewportPaintEvent( QPaintEvent* e) { */ 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 ) ); + } + else { + p->fillRect( 0, 0, cr.width(), cr.height(), cg.brush( QColorGroup::Background ) ); + } - 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); + // 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); - switch(col) { - case 0: - { - // completed field int marg = ( cr.width() - BoxSize ) / 2; int x = 0; int y = ( cr.height() - BoxSize ) / 2; - p->setPen( QPen( cg.text() ) ); - p->drawRect( x + marg, y, BoxSize, BoxSize ); - p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); - p->setPen( darkGreen ); - x += 1; - y += 1; + + 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() ) { - QPointArray a( 9*2 ); - int i, xx, yy; - xx = x+2+marg; - yy = y+4; - for ( i=0; i<4; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy++; - } - yy -= 2; - for ( i=4; i<9; i++ ) { - a.setPoint( 2*i, xx, yy ); - a.setPoint( 2*i+1, xx, yy+2 ); - xx++; yy--; - } - p->drawLineSegments( a ); + p->drawPixmap( x + marg, y, m_pic_completed ); } } break; - case 1: - // priority field + case 1: // priority field { - QString text = QString::number(task.priority()); - p->drawText(2,2 + fm.ascent(), text); + p->drawPixmap( x + marg, y, m_pic_priority[ task.priority() - 1 ] ); } break; - case 2: - // description field + 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: @@ -403,21 +408,19 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool } p->restore(); } QWidget* TableView::createEditor(int row, int col, bool )const { switch( col ) { case 1: { /* the priority stuff */ QComboBox* combo = new QComboBox( viewport() ); - combo->insertItem( "1" ); - combo->insertItem( "2" ); - combo->insertItem( "3" ); - combo->insertItem( "4" ); - combo->insertItem( "5" ); + 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; diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h index a27c698..2b6ea2b 100644 --- a/core/pim/todo/tableview.h +++ b/core/pim/todo/tableview.h @@ -26,16 +26,17 @@ */ #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; @@ -75,16 +76,19 @@ namespace Todo { 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 contentsMouseReleaseEvent( QMouseEvent* ); void contentsMouseMoveEvent( QMouseEvent* ); void timerEvent( QTimerEvent* e ); QWidget* createEditor(int row, int col, bool initFromCell )const; void setCellContentFromEditor( int row, int col ); private slots: |