summaryrefslogtreecommitdiff
path: root/core/pim/datebook
authorzecke <zecke>2002-06-27 12:42:37 (UTC)
committer zecke <zecke>2002-06-27 12:42:37 (UTC)
commit475c11d442a03d8e53b220923626c4bb7350831f (patch) (unidiff)
tree10e7fdfc22b337dfd8f6947f09e7bd163e609f0f /core/pim/datebook
parente69c1daabcd8149f2ad61b2cbbf205128072b415 (diff)
downloadopie-475c11d442a03d8e53b220923626c4bb7350831f.zip
opie-475c11d442a03d8e53b220923626c4bb7350831f.tar.gz
opie-475c11d442a03d8e53b220923626c4bb7350831f.tar.bz2
Fix for bug 81. It's now like in todolist
If neither description nor note is inserted it'll be discarded
Diffstat (limited to 'core/pim/datebook') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebook.cpp2
-rw-r--r--core/pim/datebook/dateentryimpl.cpp11
2 files changed, 8 insertions, 5 deletions
diff --git a/core/pim/datebook/datebook.cpp b/core/pim/datebook/datebook.cpp
index e10842a..76260e2 100644
--- a/core/pim/datebook/datebook.cpp
+++ b/core/pim/datebook/datebook.cpp
@@ -420,24 +420,26 @@ void DateBook::editEvent( const Event &e )
420 // KLUDGE!!! 420 // KLUDGE!!!
421 sv->setHScrollBarMode( QScrollView::AlwaysOff ); 421 sv->setHScrollBarMode( QScrollView::AlwaysOff );
422 vb->addWidget( sv ); 422 vb->addWidget( sv );
423 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" ); 423 entry = new DateEntry( onMonday, e, ampm, &editDlg, "editor" );
424 entry->timezone->setEnabled( FALSE ); 424 entry->timezone->setEnabled( FALSE );
425 sv->addChild( entry ); 425 sv->addChild( entry );
426 426
427#if defined(Q_WS_QWS) || defined(_WS_QWS_) 427#if defined(Q_WS_QWS) || defined(_WS_QWS_)
428 editDlg.showMaximized(); 428 editDlg.showMaximized();
429#endif 429#endif
430 while (editDlg.exec() ) { 430 while (editDlg.exec() ) {
431 Event newEv = entry->event(); 431 Event newEv = entry->event();
432 if(newEv.description().isEmpty() && newEv.notes().isEmpty() )
433 break;
432 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid 434 newEv.setUid(e.uid()); // FIXME: Hack not to clear uid
433 QString error = checkEvent(newEv); 435 QString error = checkEvent(newEv);
434 if (!error.isNull()) { 436 if (!error.isNull()) {
435 if (QMessageBox::warning(this, "error box", 437 if (QMessageBox::warning(this, "error box",
436 error, "Fix it", "Continue", 438 error, "Fix it", "Continue",
437 0, 0, 1) == 0) 439 0, 0, 1) == 0)
438 continue; 440 continue;
439 } 441 }
440 db->editEvent(e, newEv); 442 db->editEvent(e, newEv);
441 emit newEvent(); 443 emit newEvent();
442 break; 444 break;
443 } 445 }
diff --git a/core/pim/datebook/dateentryimpl.cpp b/core/pim/datebook/dateentryimpl.cpp
index dab3375..2cdda9d 100644
--- a/core/pim/datebook/dateentryimpl.cpp
+++ b/core/pim/datebook/dateentryimpl.cpp
@@ -84,25 +84,25 @@ bool DateEntry::eventFilter(QObject *obj, QEvent *ev )
84 } else if( ev->type() == QEvent::FocusOut ){ 84 } else if( ev->type() == QEvent::FocusOut ){
85 if( obj == comboEnd ){ 85 if( obj == comboEnd ){
86 QString s; 86 QString s;
87 s.sprintf("%.2d:%.2d",endTime.hour(), endTime.minute()); 87 s.sprintf("%.2d:%.2d",endTime.hour(), endTime.minute());
88 comboEnd->setText(s); 88 comboEnd->setText(s);
89 } 89 }
90 else if( obj == comboStart ){ 90 else if( obj == comboStart ){
91 QString s; 91 QString s;
92 s.sprintf("%.2d:%.2d",startTime.hour(), startTime.minute()); 92 s.sprintf("%.2d:%.2d",startTime.hour(), startTime.minute());
93 comboStart->setText(s); 93 comboStart->setText(s);
94 } 94 }
95 } 95 }
96 96
97 return false; 97 return false;
98} 98}
99 99
100static void addOrPick( QComboBox* combo, const QString& t ) 100static void addOrPick( QComboBox* combo, const QString& t )
101{ 101{
102 // Pick an item if one excists 102 // Pick an item if one excists
103 for (int i=0; i<combo->count(); i++) { 103 for (int i=0; i<combo->count(); i++) {
104 if ( combo->text(i) == t ) { 104 if ( combo->text(i) == t ) {
105 combo->setCurrentItem(i); 105 combo->setCurrentItem(i);
106 return; 106 return;
107 } 107 }
108 } 108 }
@@ -177,50 +177,50 @@ void DateEntry::updateTimeEdit(bool s, bool e) {
177 if ( ehour > 12 ) 177 if ( ehour > 12 )
178 ehour -= 12; 178 ehour -= 12;
179 strEnd.sprintf( "%d:%02d PM", ehour, endTime.minute() ); 179 strEnd.sprintf( "%d:%02d PM", ehour, endTime.minute() );
180 } else { 180 } else {
181 if ( ehour == 0 ) 181 if ( ehour == 0 )
182 ehour = 12; 182 ehour = 12;
183 strEnd.sprintf( "%d:%02d AM", ehour, endTime.minute() ); 183 strEnd.sprintf( "%d:%02d AM", ehour, endTime.minute() );
184 } 184 }
185 } else { 185 } else {
186 strStart.sprintf( "%02d:%02d", startTime.hour(), startTime.minute() ); 186 strStart.sprintf( "%02d:%02d", startTime.hour(), startTime.minute() );
187 strEnd.sprintf( "%02d:%02d", endTime.hour(), endTime.minute() ); 187 strEnd.sprintf( "%02d:%02d", endTime.hour(), endTime.minute() );
188 } 188 }
189 189
190 if (s) comboStart->setText(strStart); 190 if (s) comboStart->setText(strStart);
191 if (e) comboEnd->setText(strEnd); 191 if (e) comboEnd->setText(strEnd);
192} 192}
193 193
194void DateEntry::init() 194void DateEntry::init()
195{ 195{
196 comboDescription->setInsertionPolicy(QComboBox::AtCurrent); 196 comboDescription->setInsertionPolicy(QComboBox::AtCurrent);
197 comboLocation->setInsertionPolicy(QComboBox::AtCurrent); 197 comboLocation->setInsertionPolicy(QComboBox::AtCurrent);
198 198
199 initCombos(); 199 initCombos();
200 QPopupMenu *m1 = new QPopupMenu( this ); 200 QPopupMenu *m1 = new QPopupMenu( this );
201 startPicker = new DateBookMonth( m1, 0, TRUE ); 201 startPicker = new DateBookMonth( m1, 0, TRUE );
202 m1->insertItem( startPicker ); 202 m1->insertItem( startPicker );
203 buttonStart->setPopup( m1 ); 203 buttonStart->setPopup( m1 );
204 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ), 204 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
205 this, SLOT( startDateChanged( int, int, int ) ) ); 205 this, SLOT( startDateChanged( int, int, int ) ) );
206 206
207 //Let start button change both start and end dates 207 //Let start button change both start and end dates
208 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ), 208 connect( startPicker, SIGNAL( dateClicked( int, int, int ) ),
209 this, SLOT( endDateChanged( int, int, int ) ) ); 209 this, SLOT( endDateChanged( int, int, int ) ) );
210 connect( qApp, SIGNAL( clockChanged( bool ) ), 210 connect( qApp, SIGNAL( clockChanged( bool ) ),
211 this, SLOT( slotChangeClock( bool ) ) ); 211 this, SLOT( slotChangeClock( bool ) ) );
212 connect( qApp, SIGNAL(weekChanged(bool)), 212 connect( qApp, SIGNAL(weekChanged(bool)),
213 this, SLOT(slotChangeStartOfWeek(bool)) ); 213 this, SLOT(slotChangeStartOfWeek(bool)) );
214 214
215 connect( editNote, SIGNAL(clicked()), 215 connect( editNote, SIGNAL(clicked()),
216 this, SLOT(slotEditNote()) ); 216 this, SLOT(slotEditNote()) );
217 217
218 QPopupMenu *m2 = new QPopupMenu( this ); 218 QPopupMenu *m2 = new QPopupMenu( this );
219 endPicker = new DateBookMonth( m2, 0, TRUE ); 219 endPicker = new DateBookMonth( m2, 0, TRUE );
220 m2->insertItem( endPicker ); 220 m2->insertItem( endPicker );
221 buttonEnd->setPopup( m2 ); 221 buttonEnd->setPopup( m2 );
222 connect( endPicker, SIGNAL( dateClicked( int, int, int ) ), 222 connect( endPicker, SIGNAL( dateClicked( int, int, int ) ),
223 this, SLOT( endDateChanged( int, int, int ) ) ); 223 this, SLOT( endDateChanged( int, int, int ) ) );
224 224
225 connect(timePickerStart, SIGNAL( timeChanged(const QTime &) ), 225 connect(timePickerStart, SIGNAL( timeChanged(const QTime &) ),
226 this, SLOT( startTimePicked(const QTime &) )); 226 this, SLOT( startTimePicked(const QTime &) ));
@@ -237,25 +237,25 @@ DateEntry::~DateEntry()
237 // no need to delete child widgets, Qt does it all for us 237 // no need to delete child widgets, Qt does it all for us
238 //cout << "Del: " << comboStart->currentText() << endl; 238 //cout << "Del: " << comboStart->currentText() << endl;
239} 239}
240 240
241/* 241/*
242 * public slot 242 * public slot
243 */ 243 */
244 244
245void DateEntry::slotEditNote() { 245void DateEntry::slotEditNote() {
246 QString s; 246 QString s;
247 s.sprintf("<B>%d/%d</B> ", startDate.day(), startDate.month()); 247 s.sprintf("<B>%d/%d</B> ", startDate.day(), startDate.month());
248 NoteEntry noteDlg(s+comboDescription->currentText(), noteStr, 248 NoteEntry noteDlg(s+comboDescription->currentText(), noteStr,
249 this,0,TRUE); 249 this,0,TRUE);
250 250
251#if defined(Q_WS_QWS) || defined(_WS_QWS_) 251#if defined(Q_WS_QWS) || defined(_WS_QWS_)
252 noteDlg.showMaximized(); 252 noteDlg.showMaximized();
253#endif 253#endif
254 if (noteDlg.exec() ) { 254 if (noteDlg.exec() ) {
255 noteStr=noteDlg.note->text(); 255 noteStr=noteDlg.note->text();
256 } 256 }
257 257
258} 258}
259 259
260void DateEntry::endDateChanged( int y, int m, int d ) 260void DateEntry::endDateChanged( int y, int m, int d )
261{ 261{
@@ -412,25 +412,25 @@ Event DateEntry::event()
412{ 412{
413 Event ev; 413 Event ev;
414 Event::SoundTypeChoice st; 414 Event::SoundTypeChoice st;
415 ev.setDescription( comboDescription->currentText() ); 415 ev.setDescription( comboDescription->currentText() );
416 ev.setLocation( comboLocation->currentText() ); 416 ev.setLocation( comboLocation->currentText() );
417 ev.setCategories( comboCategory->currentCategories() ); 417 ev.setCategories( comboCategory->currentCategories() );
418 ev.setType( checkAllDay->isChecked() ? Event::AllDay : Event::Normal ); 418 ev.setType( checkAllDay->isChecked() ? Event::AllDay : Event::Normal );
419 if ( startDate > endDate ) { 419 if ( startDate > endDate ) {
420 QDate tmp = endDate; 420 QDate tmp = endDate;
421 endDate = startDate; 421 endDate = startDate;
422 startDate = tmp; 422 startDate = tmp;
423 } 423 }
424 424
425 // This is now done in the changed slots 425 // This is now done in the changed slots
426 // startTime = parseTime( comboStart->text(), ampm ); 426 // startTime = parseTime( comboStart->text(), ampm );
427 //endTime = parseTime( comboEnd->text(), ampm ); 427 //endTime = parseTime( comboEnd->text(), ampm );
428 428
429 if ( startTime > endTime && endDate == startDate ) { 429 if ( startTime > endTime && endDate == startDate ) {
430 QTime tmp = endTime; 430 QTime tmp = endTime;
431 endTime = startTime; 431 endTime = startTime;
432 startTime = tmp; 432 startTime = tmp;
433 } 433 }
434 // don't set the time if theres no need too 434 // don't set the time if theres no need too
435 if ( ev.type() == Event::AllDay ) { 435 if ( ev.type() == Event::AllDay ) {
436 startTime.setHMS( 0, 0, 0 ); 436 startTime.setHMS( 0, 0, 0 );
@@ -561,12 +561,13 @@ void DateEntry::initCombos()
561 } 561 }
562 } 562 }
563 } 563 }
564 */ 564 */
565} 565}
566 566
567void DateEntry::slotChangeClock( bool whichClock ) 567void DateEntry::slotChangeClock( bool whichClock )
568{ 568{
569 ampm = whichClock; 569 ampm = whichClock;
570 initCombos(); 570 initCombos();
571 setDates( QDateTime( startDate, startTime ), QDateTime( endDate, endTime ) ); 571 setDates( QDateTime( startDate, startTime ), QDateTime( endDate, endTime ) );
572} 572}
573