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

List:       kde-commits
Subject:    kdepim/libkdepim
From:       David Jarvie <software () astrojar ! org ! uk>
Date:       2005-03-07 0:47:21
Message-ID: 20050307004721.733A5157B9 () office ! kde ! org
[Download RAW message or body]

CVS commit by djarvie: 

Fix validation of dates entered not working any more in KAlarm's derived class,
due to the virtual method validate() being removed in the rewrite.
Now assignDate() is made virtual instead.


  M +24 -19    kdateedit.cpp   1.37
  M +13 -1     kdateedit.h   1.16


--- kdepim/libkdepim/kdateedit.cpp  #1.36:1.37
@@ -188,5 +188,5 @@ void KDateEdit::popup()
 void KDateEdit::dateSelected( QDate date )
 {
-  assignDate( date );
+  if (assignDate( date ) ) {
   updateView();
   emit dateChanged( date );
@@ -194,11 +194,13 @@ void KDateEdit::dateSelected( QDate date
   if ( date.isValid() )
     mDateFrame->hide();
+  }
 }
 
 void KDateEdit::dateEntered( QDate date )
 {
-  assignDate( date );
+  if (assignDate( date ) ) {
   updateView();
   emit dateChanged( date );
+  }
 }
 
@@ -209,9 +211,10 @@ void KDateEdit::lineEnterPressed()
   QDate date = parseDate( &replaced );
 
-  assignDate( date );
+  if (assignDate( date ) ) {
   if ( replaced )
     updateView();
 
   emit dateChanged( date );
+  }
 }
 
@@ -282,5 +285,5 @@ bool KDateEdit::eventFilter( QObject *ob
         if ( date.isValid() ) {
           date = date.addDays( step );
-          assignDate( date );
+          if ( assignDate( date ) ) {
           updateView();
           emit dateChanged( date );
@@ -289,4 +292,5 @@ bool KDateEdit::eventFilter( QObject *ob
       }
     }
+    }
   } else {
     // It's a date picker event
@@ -328,5 +332,5 @@ void KDateEdit::slotTextChanged( const Q
   QDate date = parseDate();
 
-  assignDate( date );
+  if ( assignDate( date ) )
   emit dateChanged( date );
 
@@ -349,8 +353,9 @@ void KDateEdit::setupKeywords()
 }
 
-void KDateEdit::assignDate( const QDate& date )
+bool KDateEdit::assignDate( const QDate& date )
 {
   mDate = date;
   mTextChanged = false;
+  return true;
 }
 

--- kdepim/libkdepim/kdateedit.h  #1.15:1.16
@@ -106,4 +106,17 @@ class KDE_EXPORT KDateEdit : public QCom
 
     /**
+      Sets the date, without altering the display.
+      This method is used internally to set the widget's date value.
+      As a virtual method, it allows derived classes to perform additional validation
+      on the date value before it is set. Derived classes should return true if
+      QDate::isValid(@p date) returns false.
+
+      @param date The new date to set.
+      @return True if the date was set, false if it was considered invalid and
+              remains unchanged.
+     */
+    virtual bool assignDate( const QDate &date );
+
+    /**
       Fills the keyword map. Reimplement it if you want additional
       keywords.
@@ -114,5 +127,4 @@ class KDE_EXPORT KDateEdit : public QCom
     QDate parseDate( bool* = 0 ) const;
     void updateView();
-    void assignDate( const QDate& );
 
     KDatePicker *mDatePicker;


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

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