[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-pim
Subject: [Kde-pim] [Patch] Let KDateEdit handle invalid Dates
From: Marco =?iso-8859-1?q?Z=FChlke?= <mzuehlke () myrealbox ! com>
Date: 2002-07-04 22:28:04
[Download RAW message or body]
[I'm not subscribed so please CC me]
Hello,
I recognized that the KDateEdit displays the date of today,
if the birthday is not set.
So I looked at the source and developed the attached patch.
Please comment on it.
Can anyone with an account apply the patch,
if it is ok ??
Another bugreport about kaddressbook.
In the detailview the details on the right hand site are shown
very small (1 pt Font).
cu Marco
["kdateedit.patch" (text/plain)]
--- kdepim/libkdepim/kdateedit.h.orig Thu Jul 4 13:35:21 2002
+++ kdepim/libkdepim/kdateedit.h Thu Jul 4 16:58:59 2002
@@ -66,6 +66,13 @@
*/
QDate date() const;
+ /** @param handleInvalid If true the date edit accepts invalid dates
+ * and displays them as the empty ("") string. It also returns an invalid date.
+ * If false (default) invalid dates are not accepted and instead the date
+ * of today will be returned.
+ */
+ void setHandleInvalid(bool handleInvalid);
+
/** Checks for a focus out event. The display of the date is updated
* to display the proper date when the focus leaves.
*/
@@ -109,6 +116,7 @@
*/
QMap<QString, int> mKeywordMap;
bool mTextChanged;
+ bool mHandleInvalid;
QPushButton *mDateButton;
QLineEdit *mDateEdit;
--- kdepim/libkdepim/kdateedit.cpp.orig Thu Jul 4 13:35:12 2002
+++ kdepim/libkdepim/kdateedit.cpp Thu Jul 4 23:59:44 2002
@@ -94,6 +94,7 @@
}
mTextChanged = false;
+ mHandleInvalid = false;
}
KDateEdit::~KDateEdit()
@@ -103,19 +104,28 @@
void KDateEdit::setDate(QDate newDate)
{
- if (!newDate.isValid())
+ if (!newDate.isValid() && !mHandleInvalid)
return;
+ QString dateString = "";
+ if(newDate.isValid())
+ dateString = KGlobal::locale()->formatDate( newDate, true );
+
mTextChanged = false;
// We do not want to generate a signal here, since we explicity setting
// the date
bool b = mDateEdit->signalsBlocked();
mDateEdit->blockSignals(true);
- mDateEdit->setText(KGlobal::locale()->formatDate( newDate, true ));
+ mDateEdit->setText(dateString);
mDateEdit->blockSignals(b);
}
+void KDateEdit::setHandleInvalid(bool handleInvalid)
+{
+ mHandleInvalid = handleInvalid;
+}
+
void KDateEdit::setEnabled(bool on)
{
mDateEdit->setEnabled(on);
@@ -126,7 +136,7 @@
{
QDate date = readDate();
- if (date.isValid()) {
+ if (date.isValid() || mHandleInvalid) {
return date;
} else {
KNotifyClient::beep();
@@ -215,5 +225,11 @@
void KDateEdit::textChanged(const QString &)
{
+ if(mDateEdit->text().stripWhiteSpace().isEmpty())
+ {
+ QDate date; //invalid date
+ emit(dateChanged(date));
+ }
+ else
mTextChanged = true;
}
--- kdepim/kaddressbook/addresseeeditorwidget.cpp.orig Thu Jul 4 15:57:08 2002
+++ kdepim/kaddressbook/addresseeeditorwidget.cpp Thu Jul 4 23:31:05 2002
@@ -327,6 +327,7 @@
label = new QLabel(i18n("Birthday:"), tab2);
layout->addWidget(label, 4, 3);
mBirthdayPicker = new KDateEdit(tab2, "mBirthdayPicker");
+ mBirthdayPicker->setHandleInvalid(true);
connect(mBirthdayPicker, SIGNAL(dateChanged(QDate)),
SLOT(dateChanged(QDate)));
layout->addWidget(mBirthdayPicker, 4, 4);
@@ -334,6 +335,7 @@
label = new QLabel(i18n("Anniversary:"), tab2);
layout->addWidget(label, 5, 3);
mAnniversaryPicker = new KDateEdit(tab2, "mAnniversaryPicker");
+ mAnniversaryPicker->setEnabled(false);
connect(mAnniversaryPicker, SIGNAL(dateChanged(QDate)),
SLOT(dateChanged(QDate)));
layout->addWidget(mAnniversaryPicker, 5, 4);
_______________________________________________
kde-pim mailing list
kde-pim@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic