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

List:       kde-commits
Subject:    KDE/kdepim/mobile/lib/calendar
From:       Artur Duque de Souza <asouza () kde ! org>
Date:       2010-08-31 22:59:34
Message-ID: 20100831225934.DF3F7AC857 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1170447 by asouza:

Check for wrong values in set(Day/Month/Year) in Calendar Helper

We need to validate the input before setting it.


 M  +25 -3     calendarhelper.cpp  


--- trunk/KDE/kdepim/mobile/lib/calendar/calendarhelper.cpp #1170446:1170447
@@ -22,12 +22,14 @@
 #define MAX_DAYS_ON_WIDGET 35
 #define MAX_WEEKS_ON_WIDGET 5
 
+#include <KDebug>
 
+
 CalendarHelper::CalendarHelper( QObject *parent )
     : QObject( parent )
 {
     //setDate(QDateTime::currentDateTime());
-    setDate(QDateTime(QDate(2010, 8, 31)));
+    setDate(QDateTime(QDate(2010, 8, 10)));
 }
 
 CalendarHelper::~CalendarHelper()
@@ -51,7 +53,6 @@
   QDate firstDay = QDate(m_year, m_month, 1);
   m_offset = firstDay.dayOfWeek();
   m_weekOffset = firstDay.weekNumber();
-
   emit dateChanged();
 }
 
@@ -65,6 +66,11 @@
   if ( m_day == day )
       return;
 
+  QDate newDate(m_year, m_month, day);
+  if ( !newDate.isValid() )
+    return;
+
+  m_original.setDate( newDate );
   m_day = day;
   emit dayChanged();
 }
@@ -84,6 +90,11 @@
   if ( m_month == month )
       return;
 
+  QDate newDate(m_year, month, m_day);
+  if ( !newDate.isValid() )
+    return;
+
+  m_original.setDate( newDate );
   m_month = month;
   m_daysInMonth = m_original.date().daysInMonth();
   emit monthChanged();
@@ -99,6 +110,11 @@
   if ( m_year == year )
       return;
 
+  QDate newDate(year, m_month, m_day);
+  if ( !newDate.isValid() )
+    return;
+
+  m_original.setDate( newDate );
   m_year = year;
   emit yearChanged();
 }
@@ -112,9 +128,15 @@
     return QString();
 
   // if the position is the firsts days (0 to m_offset)
-  if ( pos <= m_offset )
+  if ( pos < m_offset )
     return QString::number(pos);
 
+  // the current day
+  if ( pos == m_offset ) {
+    const QString rpos = QString::number(pos);
+    emit activeDay( rpos );
+    return rpos;
+  }
 
   if ( res >= m_daysInMonth )
     return QString();
[prev in list] [next in list] [prev in thread] [next in thread] 

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