[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kdepim-3.5.5+/kontact/plugins/planner
From:       Oral Timocin <oral.timocin () kdemail ! net>
Date:       2007-01-31 22:34:07
Message-ID: 1170282847.184903.11236.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 628918 by timocin:

Update: Config and Functionality of To-dos

 M  +90 -57    branches/work/kdepim-3.5.5+/kontact/plugins/planner/planner.cpp  


--- branches/work/kdepim-3.5.5+/kontact/plugins/planner/planner.cpp #628917:628918
@@ -86,9 +86,97 @@
   config.setGroup( "Calendar" );
   mDays = config.readNumEntry( "DaysToShow", 1 );
 
+  config.setGroup( "Todo" );
+  mShowAllTodos = config.readBoolEntry( "ShowAllTodos" );
+  mShowTodayEndingTodos = config.readBoolEntry( "ShowTodayEndingTodos" );
+  mShowTodosInProgress = config.readBoolEntry( "ShowTodosInProgress" );
   updateView();
 }
 
+void Planner::initTodoList( const QDate dt )
+{
+  KCal::Todo *todo;
+  KCal::Todo::List todos = mCalendar->todos();
+  KCal::Todo::List::ConstIterator td = todos.begin();
+  mTodos.setAutoDelete( true );
+  if( mShowAllTodos ){
+    mTodos = mCalendar->todos();
+  } 
+  if( mShowTodayEndingTodos ){
+    mTodos = mCalendar->todos( dt );
+  }
+  if( mShowTodosInProgress ){
+    for( ; td != todos.end(); ++td){
+      todo = *td;
+      if ( todo->hasStartDate() && todo->hasDueDate() &&
+       todo->dtStart().date() < dt &&
+       dt < todo->dtDue().date() ){
+        mTodos.append( todo );
+      }
+    }
+  }
+}
+
+int Planner::showTodos(int counter)
+{
+  KIconLoader loader( "kdepim" );
+  QDate dt = QDate::currentDate();
+  initTodoList( dt );
+
+  if ( !mTodos.empty() ) {
+    KCal::Todo *todo;
+    KCal::Todo::List::ConstIterator td = mTodos.begin();
+
+    ++counter;
+    mGrid = new QGridLayout ( this, 2 , 5, 3 );
+    mGrid->setRowStretch( 6, 1 );
+    mLayout->addMultiCellLayout( mGrid, counter, counter, 1, 4 );
+
+    for ( ; td != mTodos.end() ; ++td ) {
+      todo = *td;
+
+      QPixmap todoPm = loader.loadIcon( "kontact_todo", KIcon::Small );
+      QLabel *label = new QLabel( this );
+      label->setPixmap( todoPm );
+      label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
+      mGrid->addWidget( label, counter, 0 );
+      mLabels.append( label );
+
+      label = new QLabel( QString::number( todo->percentComplete() ) + '%', this );
+      label->setAlignment( AlignHCenter | AlignVCenter );
+      label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
+      mGrid->addWidget( label, counter, 1 );
+      mLabels.append( label );
+
+      QString string = todo->summary();
+      KURLLabel *urlLabel = new KURLLabel( this );
+      urlLabel->setText( string );
+      urlLabel->setURL( todo->uid() );
+      urlLabel->installEventFilter( this );
+      urlLabel->setTextFormat( Qt::RichText );
+      mGrid->addWidget( urlLabel, counter, 2 );
+      mLabels.append( urlLabel );
+
+      connect( urlLabel, SIGNAL( leftClickedURL( const QString& ) ),
+                this, SLOT( viewTodo( const QString& ) ) );
+      connect( urlLabel, SIGNAL( rightClickedURL( const QString& ) ),
+                this, SLOT( todoPopupMenu( const QString& ) ) );
+
+      QString stateText = initStateText ( todo );
+      label = new QLabel( stateText, this );
+      label->setAlignment( AlignLeft | AlignVCenter );
+      label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
+      mGrid->addWidget( label, counter, 4 );
+      mLabels.append( label );
+
+      if ( td != mTodos.end() ) {
+        ++counter;
+      }
+    }
+  }
+  return counter;
+}
+
 void Planner::updateView()
 {
   mLabels.setAutoDelete( true );
@@ -177,58 +265,8 @@
       mLayout->addWidget( label, counter, 1 );
       mLabels.append( label );
 
-      //ToDo Section
-      KCal::Todo *todo;
-      KCal::Todo::List todos = mCalendar->todos( dt );
-      KCal::Todo::List::ConstIterator td = todos.begin();
-
-      if ( !todos.empty() ) {
-        ++counter;
-        mGrid = new QGridLayout ( this, 2 , 5, 3 );
-        mGrid->setRowStretch( 6, 1 );
-        mLayout->addMultiCellLayout( mGrid, counter, counter, 1, 4 );
-
-        for ( ; td != todos.end() ; ++td ) {
-          todo = *td;
-
-          QPixmap todoPm = loader.loadIcon( "kontact_todo", KIcon::Small );
-          label = new QLabel( this );
-          label->setPixmap( todoPm );
-          label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
-          mGrid->addWidget( label, counter, 0 );
-          mLabels.append( label );
-
-          label = new QLabel( QString::number( todo->percentComplete() ) + '%', this );
-          label->setAlignment( AlignHCenter | AlignVCenter );
-          label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
-          mGrid->addWidget( label, counter, 1 );
-          mLabels.append( label );
-
-          QString string = todo->summary();
-          KURLLabel *urlLabel = new KURLLabel( this );
-          urlLabel->setText( string );
-          urlLabel->setURL( todo->uid() );
-          urlLabel->installEventFilter( this );
-          urlLabel->setTextFormat( Qt::RichText );
-          mGrid->addWidget( urlLabel, counter, 2 );
-          mLabels.append( urlLabel );
-
-          connect( urlLabel, SIGNAL( leftClickedURL( const QString& ) ),
-                   this, SLOT( viewTodo( const QString& ) ) );
-          connect( urlLabel, SIGNAL( rightClickedURL( const QString& ) ),
-                   this, SLOT( todoPopupMenu( const QString& ) ) );
-
-          QString stateText = initStateText ( todo );
-          label = new QLabel( stateText, this );
-          label->setAlignment( AlignLeft | AlignVCenter );
-          label->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
-          mGrid->addWidget( label, counter, 4 );
-          mLabels.append( label );
-
-          if ( td != todos.end() ) {
-            ++counter;
-          }
-        }
+      if( datestr == i18n( "Today" ) ){
+        counter = showTodos( counter );
       }
 
       for ( it=events.begin(); it!=events.end(); ++it ) {
@@ -265,11 +303,6 @@
           label = new QLabel( datestr, this );
           label->setAlignment( AlignLeft | AlignTop );
           label->setPaletteForegroundColor( colorGroup().text() );
-          if ( makeBold ){
-            QFont font = label->font();
-            font.setBold( true );
-            label->setFont( font );
-          }
           mLayout->addWidget( label, i, 1 );
           mLabels.append( label );
         }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic