summaryrefslogtreecommitdiffabout
path: root/libkdepim/kdateedit.cpp
Unidiff
Diffstat (limited to 'libkdepim/kdateedit.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libkdepim/kdateedit.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libkdepim/kdateedit.cpp b/libkdepim/kdateedit.cpp
index 3d9e690..bf38479 100644
--- a/libkdepim/kdateedit.cpp
+++ b/libkdepim/kdateedit.cpp
@@ -47,62 +47,66 @@ KDateEdit::KDateEdit(QWidget *parent, const char *name, bool withoutDP )
47 withoutDp = withoutDP; 47 withoutDp = withoutDP;
48 mDateEdit = new QLineEdit(this); 48 mDateEdit = new QLineEdit(this);
49 mDateEdit->setText(KGlobal::locale()->formatDate(QDate::currentDate(),dateFormShort)); 49 mDateEdit->setText(KGlobal::locale()->formatDate(QDate::currentDate(),dateFormShort));
50 setFocusProxy(mDateEdit); 50 setFocusProxy(mDateEdit);
51 mDateEdit->installEventFilter(this); 51 mDateEdit->installEventFilter(this);
52 52
53 // Highlight Background and Textcolor 53 // Highlight Background and Textcolor
54 QPalette palette = QWidget::palette(); 54 QPalette palette = QWidget::palette();
55 unsigned char red, green, blue; 55 unsigned char red, green, blue;
56 red = palette.color( QPalette::Normal , QColorGroup::Background ).red() - 10; 56 red = palette.color( QPalette::Normal , QColorGroup::Background ).red() - 10;
57 green = palette.color( QPalette::Normal , QColorGroup::Background ).green() - 10; 57 green = palette.color( QPalette::Normal , QColorGroup::Background ).green() - 10;
58 blue = palette.color( QPalette::Normal , QColorGroup::Background ).blue() - 10; 58 blue = palette.color( QPalette::Normal , QColorGroup::Background ).blue() - 10;
59 palette.setColor( QColorGroup::Highlight, QColor(red,green,blue) ); 59 palette.setColor( QColorGroup::Highlight, QColor(red,green,blue) );
60 palette.setColor( QColorGroup::HighlightedText, palette.color( QPalette::Normal , QColorGroup::Foreground ) ); 60 palette.setColor( QColorGroup::HighlightedText, palette.color( QPalette::Normal , QColorGroup::Foreground ) );
61 mDateEdit->setPalette( palette ); 61 mDateEdit->setPalette( palette );
62 62
63 if ( withoutDP ) { 63 if ( withoutDP ) {
64 mDateFrame = 0; 64 mDateFrame = 0;
65 mDateButton = 0; 65 mDateButton = 0;
66 mDatePicker = 0; 66 mDatePicker = 0;
67 } else { 67 } else {
68 QPixmap pixmap = SmallIcon("smallcal"); 68 QPixmap pixmap = SmallIcon("smallcal");
69 mDateButton = new QPushButton(this); 69 mDateButton = new QPushButton(this);
70 mDateButton->setPixmap(pixmap); 70 mDateButton->setPixmap(pixmap);
71 QPixmap pixmap2 = SmallIcon("today_small");
72 QPushButton* nowButton = new QPushButton(this);
73 nowButton->setPixmap(pixmap2);
71 74
72 mDateFrame = new QVBox(0,0,WType_Popup); 75 mDateFrame = new QVBox(0,0,WType_Popup);
73 // mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised); 76 // mDateFrame->setFrameStyle(QFrame::PopupPanel | QFrame::Raised);
74 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised ); 77 mDateFrame->setFrameStyle( QFrame::WinPanel |QFrame::Raised );
75 mDateFrame->setLineWidth(3); 78 mDateFrame->setLineWidth(3);
76 mDateFrame->hide(); 79 mDateFrame->hide();
77 80
78 mDatePicker = new KDatePicker(mDateFrame,QDate::currentDate()); 81 mDatePicker = new KDatePicker(mDateFrame,QDate::currentDate());
79 connect(mDatePicker,SIGNAL(dateEntered(QDate)),SLOT(setDate(QDate))); 82 connect(mDatePicker,SIGNAL(dateEntered(QDate)),SLOT(setDate(QDate)));
80 connect(mDatePicker,SIGNAL(dateEntered(QDate)),SIGNAL(dateChanged(QDate))); 83 connect(mDatePicker,SIGNAL(dateEntered(QDate)),SIGNAL(dateChanged(QDate)));
81 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(setDate(QDate))); 84 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SLOT(setDate(QDate)));
82 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SIGNAL(dateChanged(QDate))); 85 connect(mDatePicker,SIGNAL(dateSelected(QDate)),SIGNAL(dateChanged(QDate)));
83 connect(mDatePicker,SIGNAL(dateSelected(QDate)),mDateFrame,SLOT(hide())); 86 connect(mDatePicker,SIGNAL(dateSelected(QDate)),mDateFrame,SLOT(hide()));
84 connect(mDateButton,SIGNAL(clicked()),SLOT(toggleDatePicker())); 87 connect(mDateButton,SIGNAL(clicked()),SLOT(toggleDatePicker()));
88 connect(nowButton,SIGNAL(clicked()),SLOT(goToNow()));
85 mDateButton->setFocusPolicy( QWidget::NoFocus ); 89 mDateButton->setFocusPolicy( QWidget::NoFocus );
86 mDateButton->setAutoDefault( false ); 90 mDateButton->setAutoDefault( false );
87 //mDateFrame->resize( 400, 300 ); 91 //mDateFrame->resize( 400, 300 );
88 92
89 } 93 }
90 connect(mDateEdit,SIGNAL(returnPressed()),SLOT(lineEnterPressed())); 94 connect(mDateEdit,SIGNAL(returnPressed()),SLOT(lineEnterPressed()));
91 connect(mDateEdit,SIGNAL(textChanged(const QString &)), 95 connect(mDateEdit,SIGNAL(textChanged(const QString &)),
92 SLOT(textChanged(const QString &))); 96 SLOT(textChanged(const QString &)));
93 97
94 // Create the keyword list. This will be used to match against when the user 98 // Create the keyword list. This will be used to match against when the user
95 // enters information. 99 // enters information.
96 mKeywordMap[i18n("tomorrow")] = 1; 100 mKeywordMap[i18n("tomorrow")] = 1;
97 mKeywordMap[i18n("today")] = 0; 101 mKeywordMap[i18n("today")] = 0;
98 mKeywordMap[i18n("yesterday")] = -1; 102 mKeywordMap[i18n("yesterday")] = -1;
99 103
100 /* 104 /*
101 * This loop uses some math tricks to figure out the offset in days 105 * This loop uses some math tricks to figure out the offset in days
102 * to the next date the given day of the week occurs. There 106 * to the next date the given day of the week occurs. There
103 * are two cases, that the new day is >= the current day, which means 107 * are two cases, that the new day is >= the current day, which means
104 * the new day has not occured yet or that the new day < the current day, 108 * the new day has not occured yet or that the new day < the current day,
105 * which means the new day is already passed (so we need to find the 109 * which means the new day is already passed (so we need to find the
106 * day in the next week). 110 * day in the next week).
107 */ 111 */
108 QString dayName; 112 QString dayName;
@@ -111,48 +115,53 @@ KDateEdit::KDateEdit(QWidget *parent, const char *name, bool withoutDP )
111 { 115 {
112 dayName = KGlobal::locale()->weekDayName(i).lower(); 116 dayName = KGlobal::locale()->weekDayName(i).lower();
113 if (i >= currentDay) 117 if (i >= currentDay)
114 mKeywordMap[dayName] = i - currentDay; 118 mKeywordMap[dayName] = i - currentDay;
115 else 119 else
116 mKeywordMap[dayName] = 7 - currentDay + i; 120 mKeywordMap[dayName] = 7 - currentDay + i;
117 } 121 }
118 122
119 mTextChanged = false; 123 mTextChanged = false;
120 mHandleInvalid = false; 124 mHandleInvalid = false;
121 // QWidget::setTabOrder( mDateEdit, mDateButton ); 125 // QWidget::setTabOrder( mDateEdit, mDateButton );
122} 126}
123 127
124KDateEdit::~KDateEdit() 128KDateEdit::~KDateEdit()
125{ 129{
126 delete mDateFrame; 130 delete mDateFrame;
127} 131}
128void KDateEdit::clear() 132void KDateEdit::clear()
129{ 133{
130 bool b = mDateEdit->signalsBlocked(); 134 bool b = mDateEdit->signalsBlocked();
131 mDateEdit->blockSignals(true); 135 mDateEdit->blockSignals(true);
132 mDateEdit->setText(""); 136 mDateEdit->setText("");
133 mDateEdit->blockSignals(b); 137 mDateEdit->blockSignals(b);
134} 138}
139void KDateEdit::goToNow()
140{
141 setDate(QDate::currentDate() );
142 emit setTimeTo( QTime::currentTime() );
143}
135void KDateEdit::setDate(QDate newDate) 144void KDateEdit::setDate(QDate newDate)
136{ 145{
137 if (!newDate.isValid() && !mHandleInvalid) 146 if (!newDate.isValid() && !mHandleInvalid)
138 return; 147 return;
139 if ( readDate() == newDate ) 148 if ( readDate() == newDate )
140 return; 149 return;
141 QString dateString = ""; 150 QString dateString = "";
142 if(newDate.isValid()) 151 if(newDate.isValid())
143 dateString = KGlobal::locale()->formatDate( newDate, dateFormShort ); 152 dateString = KGlobal::locale()->formatDate( newDate, dateFormShort );
144 153
145 mTextChanged = false; 154 mTextChanged = false;
146 155
147 // We do not want to generate a signal here, since we explicity setting 156 // We do not want to generate a signal here, since we explicity setting
148 // the date 157 // the date
149 bool b = mDateEdit->signalsBlocked(); 158 bool b = mDateEdit->signalsBlocked();
150 mDateEdit->blockSignals(true); 159 mDateEdit->blockSignals(true);
151 mDateEdit->setText(dateString); 160 mDateEdit->setText(dateString);
152 mDateEdit->blockSignals(b); 161 mDateEdit->blockSignals(b);
153} 162}
154 163
155void KDateEdit::setDate( QDate date,int *cpos,const int key ,const bool dateFormShort) 164void KDateEdit::setDate( QDate date,int *cpos,const int key ,const bool dateFormShort)
156{ 165{
157 QString dateForm = dateFormShort ? 166 QString dateForm = dateFormShort ?
158 KGlobal::locale()->dateFormatShort() : 167 KGlobal::locale()->dateFormatShort() :