summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt5
-rw-r--r--korganizer/koeditorgeneralevent.cpp17
-rw-r--r--korganizer/koeditorgeneraltodo.cpp12
-rw-r--r--korganizer/ktimeedit.cpp106
-rw-r--r--korganizer/ktimeedit.h3
-rw-r--r--microkde/kdecore/klocale.cpp4
6 files changed, 33 insertions, 114 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index c8293b2..5d8ef41 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -18,2 +18,7 @@ the incoming filter settings can be used.
An example can be found in the SyncHowTo.
+
+KO/Pi:
+The timeedit input has a pulldown list for times.
+If opened, this pulldown list should now has the right time highlighted.
+
diff --git a/korganizer/koeditorgeneralevent.cpp b/korganizer/koeditorgeneralevent.cpp
index fc5be71..30b792b 100644
--- a/korganizer/koeditorgeneralevent.cpp
+++ b/korganizer/koeditorgeneralevent.cpp
@@ -396,19 +396,2 @@ bool KOEditorGeneralEvent::validateInput()
{
-// kdDebug() << "KOEditorGeneralEvent::validateInput()" << endl;
-
- if (!mNoTimeButton->isChecked()) {
- if (!mStartTimeEdit->inputIsValid()) {
- KMessageBox::sorry( 0,
- i18n("Please specify a valid start time, for example '%1'.")
- .arg( KGlobal::locale()->formatTime( QTime::currentTime() ) ) );
- return false;
- }
-
- if (!mEndTimeEdit->inputIsValid()) {
- KMessageBox::sorry( 0,
- i18n("Please specify a valid end time, for example '%1'.")
- .arg( KGlobal::locale()->formatTime( QTime::currentTime() ) ) );
- return false;
- }
- }
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index 7db7da0..158a7d3 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -386,8 +386,2 @@ bool KOEditorGeneralTodo::validateInput()
}
- if (mTimeButton->isChecked()) {
- if (!mDueTimeEdit->inputIsValid()) {
- KMessageBox::sorry(0,i18n("Please specify a valid due time."));
- return false;
- }
- }
}
@@ -399,8 +393,2 @@ bool KOEditorGeneralTodo::validateInput()
}
- if (mTimeButton->isChecked()) {
- if (!mStartTimeEdit->inputIsValid()) {
- KMessageBox::sorry(0,i18n("Please specify a valid start time."));
- return false;
- }
- }
}
diff --git a/korganizer/ktimeedit.cpp b/korganizer/ktimeedit.cpp
index f5a1c50..5222ac9 100644
--- a/korganizer/ktimeedit.cpp
+++ b/korganizer/ktimeedit.cpp
@@ -27,2 +27,3 @@
#include <qlineedit.h>
+#include <qlistbox.h>
#include <qapplication.h>
@@ -41,40 +42,2 @@
// Mostly locale aware. Author: David Faure <faure@kde.org>
-class KOTimeValidator : public QValidator
-{
-public:
- KOTimeValidator(QWidget* parent, const char* name=0) : QValidator(parent, name) {}
-
- virtual State validate(QString& str, int& /*cursorPos*/) const
- {
- return Acceptable;
- bool ok = false;
- // TODO use KLocale::WithoutSeconds in HEAD
- /*QTime time =*/ KGlobal::locale()->readTime(str, &ok);
- if ( ok )
- return Acceptable;
- // readTime doesn't help knowing when the string is "Intermediate".
- int length = str.length();
- if ( !str ) // empty string?
- return Invalid; // there should always be a ':' in it, right?
- // HACK. Not fully locale aware etc. (esp. the separator is '.' in sv_SE...)
- QChar sep = ':';
- // I want to allow "HH:", ":MM" and ":" to make editing easier
- if ( str[0] == sep )
- {
- if ( length == 1 ) // just ":"
- return Intermediate;
- QString minutes = str.mid(1);
- int m = minutes.toInt(&ok);
- if ( ok && m >= 0 && m < 60 )
- return Intermediate;
- } else if ( str.at(str.length()-1) == sep )
- {
- QString hours = str.left(length-1);
- int h = hours.toInt(&ok);
- if ( ok && h >= 0 && h < 24 )
- return Intermediate;
- }
- return Invalid;
- }
-};
@@ -87,3 +50,2 @@ KOTimeEdit::KOTimeEdit(QWidget *parent, QTime qt, const char *name)
setInsertionPolicy(NoInsertion);
- setValidator( new KOTimeValidator( this ) );
mFlagKeyPressed = false;
@@ -147,7 +109,3 @@ QTime KOTimeEdit::getTime() const
{
- //kdDebug(5850) << "KOTimeEdit::getTime(), currentText() = " << currentText() << endl;
- // TODO use KLocale::WithoutSeconds in HEAD
- QTime time = KGlobal::locale()->readTime(currentText());
- // kdDebug(5850) << "KOTimeEdit::getTime(): " << time.toString() << endl;
- return time;
+ return KGlobal::locale()->readTime(currentText());
}
@@ -167,4 +125,2 @@ void KOTimeEdit::setTime(QTime newTime)
{
- kdDebug(5850) << "KOTimeEdit::setTime(): " << newTime.toString() << endl;
-
mTime = newTime;
@@ -381,2 +337,3 @@ void KOTimeEdit::keyPressEvent(QKeyEvent *e)
case Key_Backspace:
+ qDebug("+++++++++++back ");
if ( cpos > 0) {
@@ -391,2 +348,3 @@ void KOTimeEdit::keyPressEvent(QKeyEvent *e)
changedText();
+ qDebug("---------back ");
}
@@ -487,29 +445,17 @@ void KOTimeEdit::keyPressEvent(QKeyEvent *e)
void KOTimeEdit::updateText()
-{
-// kdDebug(5850) << "KOTimeEdit::updateText() " << endl
- QString s = KGlobal::locale()->formatTime(mTime);
- // Set the text but without emitting signals, nor losing the cursor position
- QLineEdit *line = lineEdit();
- line->blockSignals(true);
- int pos = line->cursorPosition();
- // qDebug(" settext *%s* ", s.latin1());
- line->setText(s);
- // line->setCursorPosition(pos);
-// line->blockSignals(false);
-
-// kdDebug(5850) << "KOTimeEdit::updateText(): " << s << endl;
-
- if (!mTime.minute() % 15) {
+{
+ listBox()->blockSignals( true );
+ blockSignals( true );
+ QString s = KGlobal::locale()->formatTime(mTime);
+ // Set the text but without emitting signals, nor losing the cursor position
+ QLineEdit *line = lineEdit();
+ line->blockSignals(true);
+ int pos = line->cursorPosition();
setCurrentItem((mTime.hour()*4)+(mTime.minute()/15));
- }
- line->setCursorPosition(pos);
- line->blockSignals(false);
-
-}
+ line->setText(s);
+ line->setCursorPosition(pos);
+ line->blockSignals(false);
+ blockSignals( false );
+ listBox()->blockSignals( false );
-bool KOTimeEdit::inputIsValid() const
-{
- int cursorPos = lineEdit()->cursorPosition();
- QString str = currentText();
- return validator()->validate( str, cursorPos ) == QValidator::Acceptable;
}
@@ -518,11 +464,11 @@ void KOTimeEdit::changedText()
{
- //kdDebug(5850) << "KOTimeEdit::changedText()" << endl;
- if ( inputIsValid() )
- {
- int pos = lineEdit()->cursorPosition();
- mTime = getTime();
- // updateText();
- emit timeChanged(mTime);
- lineEdit()->setCursorPosition(pos);
- }
+ int pos = lineEdit()->cursorPosition();
+ mTime = getTime();
+ blockSignals( true );
+ QString text = lineEdit()->text();
+ setCurrentItem((mTime.hour()*4)+(mTime.minute()/15));
+ lineEdit()->setText(text);
+ blockSignals( false );
+ emit timeChanged(mTime);
+ lineEdit()->setCursorPosition(pos);
}
diff --git a/korganizer/ktimeedit.h b/korganizer/ktimeedit.h
index 7923070..b3d842d 100644
--- a/korganizer/ktimeedit.h
+++ b/korganizer/ktimeedit.h
@@ -60,5 +60,2 @@ class KOTimeEdit : public QComboBox
- /** return true if input is a valid time and false if not */
- bool inputIsValid() const;
-
signals:
diff --git a/microkde/kdecore/klocale.cpp b/microkde/kdecore/klocale.cpp
index d7e384c..7f31ab1 100644
--- a/microkde/kdecore/klocale.cpp
+++ b/microkde/kdecore/klocale.cpp
@@ -564,5 +564,5 @@ QTime KLocale::readTime(const QString &intstr, bool *ok) const
QTime _time;
- _time = readTime(intstr, true, ok);
+ _time = readTime(intstr, false, ok);
if (_time.isValid()) return _time;
- return readTime(intstr, false, ok);
+ return readTime(intstr, true, ok);
}