summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditordetails.cpp10
-rw-r--r--korganizer/koeditordetails.h2
2 files changed, 5 insertions, 7 deletions
diff --git a/korganizer/koeditordetails.cpp b/korganizer/koeditordetails.cpp
index 479bd8b..b90b9eb 100644
--- a/korganizer/koeditordetails.cpp
+++ b/korganizer/koeditordetails.cpp
@@ -56,130 +56,128 @@
56template <> 56template <>
57CustomListViewItem<class Attendee *>::~CustomListViewItem() 57CustomListViewItem<class Attendee *>::~CustomListViewItem()
58{ 58{
59 delete mData; 59 delete mData;
60} 60}
61 61
62template <> 62template <>
63void CustomListViewItem<class Attendee *>::updateItem() 63void CustomListViewItem<class Attendee *>::updateItem()
64{ 64{
65 setText(0,mData->name()); 65 setText(0,mData->name());
66 setText(1,mData->email()); 66 setText(1,mData->email());
67 setText(2,mData->roleStr()); 67 setText(2,mData->roleStr());
68 setText(3,mData->statusStr()); 68 setText(3,mData->statusStr());
69 if (mData->RSVP() && !mData->email().isEmpty()) { 69 if (mData->RSVP() && !mData->email().isEmpty()) {
70 setPixmap(4,SmallIcon("mailappt")); 70 setPixmap(4,SmallIcon("mailappt"));
71 setSortKey(4,"j"); 71 setSortKey(4,"j");
72 } 72 }
73 else { 73 else {
74 setPixmap(4,SmallIcon("nomailappt")); 74 setPixmap(4,SmallIcon("nomailappt"));
75 setSortKey(4,"n"); 75 setSortKey(4,"n");
76 } 76 }
77} 77}
78 78
79 79
80KOEditorDetails::KOEditorDetails (int spacing,QWidget* parent,const char* name) 80KOEditorDetails::KOEditorDetails (int spacing,QWidget* parent,const char* name)
81 : QWidget( parent, name), mDisableItemUpdate( false ) 81 : QWidget( parent, name), mDisableItemUpdate( false )
82{ 82{
83 QGridLayout *topLayout = new QGridLayout(this); 83 QGridLayout *topLayout = new QGridLayout(this);
84 topLayout->setSpacing(spacing); 84 topLayout->setSpacing(spacing);
85 topLayout->setMargin(KDialog::marginHint()-2); 85 topLayout->setMargin(KDialog::marginHint()-2);
86 86
87 QString organizer = KOPrefs::instance()->email(); 87 QString organizer = KOPrefs::instance()->email();
88 mOrganizerLabel = new QLabel(i18n("Organizer: %1").arg(organizer),this); 88 mOrganizerLabel = new QLabel(i18n("Organizer: %1").arg(organizer),this);
89 89
90 mListView = new KListView(this,"mListView"); 90 mListView = new KListView(this,"mListView");
91 mListView->addColumn(i18n("Name"),180); 91 mListView->addColumn(i18n("Name"),180);
92 mListView->addColumn(i18n("Email"),180); 92 mListView->addColumn(i18n("Email"),180);
93 mListView->addColumn(i18n("Role"),60); 93 mListView->addColumn(i18n("Role"),60);
94 mListView->addColumn(i18n("Status"),100); 94 mListView->addColumn(i18n("Status"),100);
95 mListView->addColumn(i18n("RSVP"),35); 95 mListView->addColumn(i18n("RSVP"),35);
96 if ( QApplication::desktop()->width() <= 320 || QApplication::desktop()->height() <= 240) { 96 if ( QApplication::desktop()->width() <= 320 || QApplication::desktop()->height() <= 240) {
97 int hei = 80; 97 int hei = 80;
98 if ( QApplication::desktop()->height() <= 240 ) 98 if ( QApplication::desktop()->height() <= 240 )
99 hei = 60; 99 hei = 60;
100 mListView->setFixedHeight(hei); 100 mListView->setFixedHeight(hei);
101 } 101 }
102 mListView->setAllColumnsShowFocus (true ); 102 mListView->setAllColumnsShowFocus (true );
103 //mListView->setSingleClick( true ); 103 //mListView->setSingleClick( true );
104 connect(mListView,SIGNAL(selectionChanged(QListViewItem *)), 104 connect(mListView,SIGNAL(selectionChanged(QListViewItem *)),
105 SLOT(updateAttendeeInput())); 105 SLOT(updateAttendeeInput()));
106 106
107 connect(mListView,SIGNAL(executed(QListViewItem * ,const QPoint&, int )), 107 connect(mListView,SIGNAL(executed(QListViewItem * ,const QPoint&, int )),
108 SLOT(itemClicked(QListViewItem * ,const QPoint& , int ))); 108 SLOT(itemClicked(QListViewItem * ,const QPoint& , int )));
109 109
110 mRsvpButton = new QCheckBox(this); 110 mRsvpButton = new QCheckBox(this);
111 mRsvpButton->setText(i18n("Request response")); 111 mRsvpButton->setText(i18n("Request response"));
112 mAddressBookButton = new QPushButton(i18n("Address &Book..."),this); 112 mAddressBookButton = new QPushButton(i18n("Address &Book..."),this);
113 QLabel *attendeeLabel = new QLabel(this); 113 QLabel *attendeeLabel = new QLabel(this);
114 attendeeLabel->setText(i18n("Name:")); 114 attendeeLabel->setText(i18n("Name:"));
115 attendeeLabel->setFixedSize( attendeeLabel->sizeHint() ); 115 attendeeLabel->setFixedSize( attendeeLabel->sizeHint() );
116 mNameEdit = new QLineEdit(this); 116 mNameEdit = new QLineEdit(this);
117 connect(mNameEdit,SIGNAL(textChanged(const QString &)), 117 connect(mNameEdit,SIGNAL(textChanged(const QString &)),
118 SLOT(updateAttendeeItem())); 118 SLOT(updateAttendeeItem()));
119 119
120 mUidEdit = new QLineEdit(0);
121 mUidEdit->setText("");
122 120
123 QLabel *emailLabel = new QLabel(this); 121 QLabel *emailLabel = new QLabel(this);
124 emailLabel->setText(i18n("Email:")); 122 emailLabel->setText(i18n("Email:"));
125 mEmailEdit = new QLineEdit(this); 123 mEmailEdit = new QLineEdit(this);
126 connect(mEmailEdit,SIGNAL(textChanged(const QString &)), 124 connect(mEmailEdit,SIGNAL(textChanged(const QString &)),
127 SLOT(updateAttendeeItem())); 125 SLOT(updateAttendeeItem()));
128 126
129 QLabel *attendeeRoleLabel = new QLabel(this); 127 QLabel *attendeeRoleLabel = new QLabel(this);
130 attendeeRoleLabel->setText(i18n("Role:")); 128 attendeeRoleLabel->setText(i18n("Role:"));
131 mRoleCombo = new QComboBox(false,this); 129 mRoleCombo = new QComboBox(false,this);
132 mRoleCombo->insertStringList(Attendee::roleList()); 130 mRoleCombo->insertStringList(Attendee::roleList());
133 connect(mRoleCombo,SIGNAL(activated(int)),SLOT(updateAttendeeItem())); 131 connect(mRoleCombo,SIGNAL(activated(int)),SLOT(updateAttendeeItem()));
134 132
135 QLabel *statusLabel = new QLabel(this); 133 QLabel *statusLabel = new QLabel(this);
136 statusLabel->setText( i18n("Status:") ); 134 statusLabel->setText( i18n("Status:") );
137 135
138 mStatusCombo = new QComboBox(false,this); 136 mStatusCombo = new QComboBox(false,this);
139 mStatusCombo->insertStringList(Attendee::statusList()); 137 mStatusCombo->insertStringList(Attendee::statusList());
140 connect(mStatusCombo,SIGNAL(activated(int)),SLOT(updateAttendeeItem())); 138 connect(mStatusCombo,SIGNAL(activated(int)),SLOT(updateAttendeeItem()));
141 139
142 140
143 connect(mRsvpButton,SIGNAL(clicked()),SLOT(updateAttendeeItem())); 141 connect(mRsvpButton,SIGNAL(clicked()),SLOT(updateAttendeeItem()));
144 QWidget *buttonBox = new QWidget(this); 142 QWidget *buttonBox = new QWidget(this);
145 QVBoxLayout *buttonLayout = new QVBoxLayout(buttonBox); 143 QVBoxLayout *buttonLayout = new QVBoxLayout(buttonBox);
146 144
147 QPushButton *newButton = new QPushButton(i18n("&New"),buttonBox); 145 QPushButton *newButton = new QPushButton(i18n("&New"),buttonBox);
148 buttonLayout->addWidget(newButton); 146 buttonLayout->addWidget(newButton);
149 connect(newButton,SIGNAL(clicked()),SLOT(addNewAttendee())); 147 connect(newButton,SIGNAL(clicked()),SLOT(addNewAttendee()));
150 148
151 mRemoveButton = new QPushButton(i18n("&Remove"),buttonBox); 149 mRemoveButton = new QPushButton(i18n("&Remove"),buttonBox);
152 buttonLayout->addWidget(mRemoveButton); 150 buttonLayout->addWidget(mRemoveButton);
153 connect(mRemoveButton, SIGNAL(clicked()),SLOT(removeAttendee())); 151 connect(mRemoveButton, SIGNAL(clicked()),SLOT(removeAttendee()));
154 152
155 // buttonLayout->addWidget(mAddressBookButton); 153 // buttonLayout->addWidget(mAddressBookButton);
156 connect(mAddressBookButton,SIGNAL(clicked()),SLOT(openAddressBook())); 154 connect(mAddressBookButton,SIGNAL(clicked()),SLOT(openAddressBook()));
157 //mRoleCombo->setFixedSize( mRoleCombo->sizeHint () ); 155 //mRoleCombo->setFixedSize( mRoleCombo->sizeHint () );
158 if ( QApplication::desktop()->height() <= 240 ) { 156 if ( QApplication::desktop()->height() <= 240 ) {
159 mRoleCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Minimum ,FALSE) ); 157 mRoleCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Minimum ,FALSE) );
160 mStatusCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Minimum ,FALSE) ); 158 mStatusCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Minimum ,FALSE) );
161 topLayout->addMultiCellWidget(mOrganizerLabel,0,0,0,5); 159 topLayout->addMultiCellWidget(mOrganizerLabel,0,0,0,5);
162 topLayout->addMultiCellWidget(mListView,1,1,0,5); 160 topLayout->addMultiCellWidget(mListView,1,1,0,5);
163 topLayout->addWidget(attendeeLabel,3,0); 161 topLayout->addWidget(attendeeLabel,3,0);
164 topLayout->addMultiCellWidget(mNameEdit,3,3,1,4); 162 topLayout->addMultiCellWidget(mNameEdit,3,3,1,4);
165 topLayout->addWidget(emailLabel,4,0); 163 topLayout->addWidget(emailLabel,4,0);
166 topLayout->addMultiCellWidget(mEmailEdit,4,4,1,4); 164 topLayout->addMultiCellWidget(mEmailEdit,4,4,1,4);
167 topLayout->addWidget(attendeeRoleLabel,5,0); 165 topLayout->addWidget(attendeeRoleLabel,5,0);
168 topLayout->addMultiCellWidget(mRoleCombo,5,5,1,2); 166 topLayout->addMultiCellWidget(mRoleCombo,5,5,1,2);
169 topLayout->addWidget(statusLabel,5,3); 167 topLayout->addWidget(statusLabel,5,3);
170 topLayout->addMultiCellWidget(mStatusCombo,5,5,4,5); 168 topLayout->addMultiCellWidget(mStatusCombo,5,5,4,5);
171 topLayout->addMultiCellWidget(mAddressBookButton,2,2,2,5); 169 topLayout->addMultiCellWidget(mAddressBookButton,2,2,2,5);
172 topLayout->addMultiCellWidget(mRsvpButton,2,2,0,1); 170 topLayout->addMultiCellWidget(mRsvpButton,2,2,0,1);
173 topLayout->addMultiCellWidget(buttonBox,3,4,5,5); 171 topLayout->addMultiCellWidget(buttonBox,3,4,5,5);
174 topLayout->setRowStretch(1,5); 172 topLayout->setRowStretch(1,5);
175 topLayout->setColStretch(0,0); 173 topLayout->setColStretch(0,0);
176 } else { 174 } else {
177 if (qApp->desktop()->width() < 640 ) { 175 if (qApp->desktop()->width() < 640 ) {
178 if ( qApp->desktop()->width() < 300 ) 176 if ( qApp->desktop()->width() < 300 )
179 topLayout->setSpacing(1); 177 topLayout->setSpacing(1);
180 ;//mListView->setFixedHeight(80); 178 ;//mListView->setFixedHeight(80);
181 topLayout->addMultiCellWidget(mOrganizerLabel,0,0,0,3); 179 topLayout->addMultiCellWidget(mOrganizerLabel,0,0,0,3);
182 topLayout->addMultiCellWidget(mListView,1,1,0,3); 180 topLayout->addMultiCellWidget(mListView,1,1,0,3);
183 topLayout->addWidget(attendeeLabel,3,0); 181 topLayout->addWidget(attendeeLabel,3,0);
184 topLayout->addMultiCellWidget(mNameEdit,3,3,1,2); 182 topLayout->addMultiCellWidget(mNameEdit,3,3,1,2);
185 topLayout->addWidget(emailLabel,4,0); 183 topLayout->addWidget(emailLabel,4,0);
@@ -294,189 +292,189 @@ void KOEditorDetails::addNewAttendee()
294#if 0 292#if 0
295 // this is cool. If they didn't enter an email address, 293 // this is cool. If they didn't enter an email address,
296 // try to look it up in the address book and fill it in for them. 294 // try to look it up in the address book and fill it in for them.
297 if (QString(mEmailEdit->text()).stripWhiteSpace().isEmpty()) { 295 if (QString(mEmailEdit->text()).stripWhiteSpace().isEmpty()) {
298 KabAPI addrBook; 296 KabAPI addrBook;
299 QString name; 297 QString name;
300 std::list<AddressBook::Entry> entries; 298 std::list<AddressBook::Entry> entries;
301 name = mNameEdit->text(); 299 name = mNameEdit->text();
302 if (addrBook.init() == AddressBook::NoError) { 300 if (addrBook.init() == AddressBook::NoError) {
303 if (addrBook.getEntryByName(name, entries, 1) == AddressBook::NoError) { 301 if (addrBook.getEntryByName(name, entries, 1) == AddressBook::NoError) {
304 kdDebug() << "positive match" << endl; 302 kdDebug() << "positive match" << endl;
305 // take first email address 303 // take first email address
306 if (!entries.front().emails.isEmpty() && 304 if (!entries.front().emails.isEmpty() &&
307 entries.front().emails.first().length()>0) 305 entries.front().emails.first().length()>0)
308 mEmailEdit->setText(entries.front().emails.first()); 306 mEmailEdit->setText(entries.front().emails.first());
309 } 307 }
310 } 308 }
311 } 309 }
312#endif 310#endif
313 311
314 Attendee *a = new Attendee(i18n("(EmptyName)"),i18n("(EmptyEmail)")); 312 Attendee *a = new Attendee(i18n("(EmptyName)"),i18n("(EmptyEmail)"));
315 insertAttendee(a); 313 insertAttendee(a);
316} 314}
317 315
318//the map includes name/email pairs, that comes from Ka/Pi 316//the map includes name/email pairs, that comes from Ka/Pi
319void KOEditorDetails::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList) 317void KOEditorDetails::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
320{ 318{
321 if (uid == this->name()) 319 if (uid == this->name())
322 { 320 {
323 for ( int i = 0; i < nameList.count(); i++) 321 for ( int i = 0; i < nameList.count(); i++)
324 { 322 {
325 QString _name = nameList[i]; 323 QString _name = nameList[i];
326 QString _email = emailList[i]; 324 QString _email = emailList[i];
327 QString _uid = uidList[i]; 325 QString _uid = uidList[i];
328 326
329 Attendee *a = new Attendee(_name,_email,false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant, _uid); 327 Attendee *a = new Attendee(_name,_email,false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant, _uid);
330 insertAttendee(a); 328 insertAttendee(a);
331 } 329 }
332 } 330 }
333 331
334} 332}
335 333
336void KOEditorDetails::insertAttendee(Attendee *a) 334void KOEditorDetails::insertAttendee(Attendee *a)
337{ 335{
338 AttendeeListItem *first = (AttendeeListItem*) mListView->firstChild(); 336 AttendeeListItem *first = (AttendeeListItem*) mListView->firstChild();
339 while (first) { 337 while (first) {
340 if ( first->data()->name() == a->name() && first->data()->email() == a->email() ) 338 if ( first->data()->name() == a->name() && first->data()->email() == a->email() )
341 return; 339 return;
342 first = (AttendeeListItem*) first->nextSibling(); 340 first = (AttendeeListItem*) first->nextSibling();
343 } 341 }
344 342
345 AttendeeListItem *item = new AttendeeListItem(a,mListView); 343 AttendeeListItem *item = new AttendeeListItem(a,mListView);
346 mListView->setSelected( item, true ); 344 mListView->setSelected( item, true );
347} 345}
348 346
349void KOEditorDetails::setDefaults() 347void KOEditorDetails::setDefaults()
350{ 348{
351 mRsvpButton->setChecked(true); 349 mRsvpButton->setChecked(true);
352 mListView->clear(); 350 mListView->clear();
353 mdelAttendees.clear(); 351 mdelAttendees.clear();
354 clearAttendeeInput(); 352 clearAttendeeInput();
355 mOrganizerLabel->setText(i18n("Organizer: %1").arg(KOPrefs::instance()->email())); 353 mOrganizerLabel->setText(i18n("Organizer: %1").arg(KOPrefs::instance()->email()));
356 354
357 mNameEdit->setText(""); 355 mNameEdit->setText("");
358 mUidEdit->setText(""); 356 mUidEdit = "";
359 mEmailEdit->setText(""); 357 mEmailEdit->setText("");
360 mRoleCombo->setCurrentItem( 0 ); 358 mRoleCombo->setCurrentItem( 0 );
361 mStatusCombo->setCurrentItem( 0 ); 359 mStatusCombo->setCurrentItem( 0 );
362 360
363} 361}
364 362
365void KOEditorDetails::readEvent(Incidence *event) 363void KOEditorDetails::readEvent(Incidence *event)
366{ 364{
367 setDefaults(); 365 setDefaults();
368 //mListView->clear(); 366 //mListView->clear();
369 //mdelAttendees.clear(); 367 //mdelAttendees.clear();
370 QPtrList<Attendee> tmpAList = event->attendees(); 368 QPtrList<Attendee> tmpAList = event->attendees();
371 Attendee *a; 369 Attendee *a;
372 for (a = tmpAList.first(); a; a = tmpAList.next()) 370 for (a = tmpAList.first(); a; a = tmpAList.next())
373 insertAttendee(new Attendee(*a)); 371 insertAttendee(new Attendee(*a));
374 372
375 mListView->setSelected( mListView->firstChild(), true ); 373 mListView->setSelected( mListView->firstChild(), true );
376 mOrganizerLabel->setText(i18n("Organizer: %1").arg(event->organizer())); 374 mOrganizerLabel->setText(i18n("Organizer: %1").arg(event->organizer()));
377} 375}
378 376
379void KOEditorDetails::writeEvent(Incidence *event) 377void KOEditorDetails::writeEvent(Incidence *event)
380{ 378{
381 event->clearAttendees(); 379 event->clearAttendees();
382 QListViewItem *item; 380 QListViewItem *item;
383 AttendeeListItem *a; 381 AttendeeListItem *a;
384 for (item = mListView->firstChild(); item; 382 for (item = mListView->firstChild(); item;
385 item = item->nextSibling()) { 383 item = item->nextSibling()) {
386 a = (AttendeeListItem *)item; 384 a = (AttendeeListItem *)item;
387 event->addAttendee(new Attendee(*(a->data()))); 385 event->addAttendee(new Attendee(*(a->data())));
388 } 386 }
389 event->setOrganizer(KOPrefs::instance()->email()); 387 event->setOrganizer(KOPrefs::instance()->email());
390} 388}
391 389
392void KOEditorDetails::cancelAttendeeEvent(Incidence *event) 390void KOEditorDetails::cancelAttendeeEvent(Incidence *event)
393{ 391{
394 event->clearAttendees(); 392 event->clearAttendees();
395 Attendee * att; 393 Attendee * att;
396 for (att=mdelAttendees.first();att;att=mdelAttendees.next()) { 394 for (att=mdelAttendees.first();att;att=mdelAttendees.next()) {
397 event->addAttendee(new Attendee(*att)); 395 event->addAttendee(new Attendee(*att));
398 } 396 }
399 mdelAttendees.clear(); 397 mdelAttendees.clear();
400} 398}
401 399
402bool KOEditorDetails::validateInput() 400bool KOEditorDetails::validateInput()
403{ 401{
404 return true; 402 return true;
405} 403}
406 404
407void KOEditorDetails::updateAttendeeInput() 405void KOEditorDetails::updateAttendeeInput()
408{ 406{
409 QListViewItem *item = mListView->selectedItem(); 407 QListViewItem *item = mListView->selectedItem();
410 AttendeeListItem *aItem = static_cast<AttendeeListItem *>( item ); 408 AttendeeListItem *aItem = static_cast<AttendeeListItem *>( item );
411 if (aItem) { 409 if (aItem) {
412 fillAttendeeInput( aItem ); 410 fillAttendeeInput( aItem );
413 } else { 411 } else {
414 clearAttendeeInput(); 412 clearAttendeeInput();
415 } 413 }
416} 414}
417 415
418void KOEditorDetails::clearAttendeeInput() 416void KOEditorDetails::clearAttendeeInput()
419{ 417{
420 mNameEdit->setText(""); 418 mNameEdit->setText("");
421 mUidEdit->setText(""); 419 mUidEdit = "";
422 mEmailEdit->setText(""); 420 mEmailEdit->setText("");
423 mRoleCombo->setCurrentItem(0); 421 mRoleCombo->setCurrentItem(0);
424 mStatusCombo->setCurrentItem(0); 422 mStatusCombo->setCurrentItem(0);
425 mRsvpButton->setChecked(true); 423 mRsvpButton->setChecked(true);
426 setEnabledAttendeeInput( false ); 424 setEnabledAttendeeInput( false );
427} 425}
428 426
429void KOEditorDetails::fillAttendeeInput( AttendeeListItem *aItem ) 427void KOEditorDetails::fillAttendeeInput( AttendeeListItem *aItem )
430{ 428{
431 Attendee *a = aItem->data(); 429 Attendee *a = aItem->data();
432 mDisableItemUpdate = true; 430 mDisableItemUpdate = true;
433 mNameEdit->setText(a->name()); 431 mNameEdit->setText(a->name());
434 mUidEdit->setText(a->uid()); 432 mUidEdit = a->uid();
435 mEmailEdit->setText(a->email()); 433 mEmailEdit->setText(a->email());
436 mRoleCombo->setCurrentItem(a->role()); 434 mRoleCombo->setCurrentItem(a->role());
437 mStatusCombo->setCurrentItem(a->status()); 435 mStatusCombo->setCurrentItem(a->status());
438 mRsvpButton->setChecked(a->RSVP()); 436 mRsvpButton->setChecked(a->RSVP());
439 437
440 mDisableItemUpdate = false; 438 mDisableItemUpdate = false;
441 439
442 setEnabledAttendeeInput( true ); 440 setEnabledAttendeeInput( true );
443} 441}
444 442
445void KOEditorDetails::setEnabledAttendeeInput( bool enabled ) 443void KOEditorDetails::setEnabledAttendeeInput( bool enabled )
446{ 444{
447 mNameEdit->setEnabled( enabled ); 445 mNameEdit->setEnabled( enabled );
448 mEmailEdit->setEnabled( enabled ); 446 mEmailEdit->setEnabled( enabled );
449 mRoleCombo->setEnabled( enabled ); 447 mRoleCombo->setEnabled( enabled );
450 mStatusCombo->setEnabled( enabled ); 448 mStatusCombo->setEnabled( enabled );
451 mRsvpButton->setEnabled( enabled ); 449 mRsvpButton->setEnabled( enabled );
452 450
453 mRemoveButton->setEnabled( enabled ); 451 mRemoveButton->setEnabled( enabled );
454} 452}
455 453
456void KOEditorDetails::itemClicked(QListViewItem * item ,const QPoint & pnt, int c ) 454void KOEditorDetails::itemClicked(QListViewItem * item ,const QPoint & pnt, int c )
457{ 455{
458 if ( item && c == 4 ) { 456 if ( item && c == 4 ) {
459 mRsvpButton->setChecked( !mRsvpButton->isChecked() ); 457 mRsvpButton->setChecked( !mRsvpButton->isChecked() );
460 updateAttendeeItem(); 458 updateAttendeeItem();
461 } 459 }
462} 460}
463void KOEditorDetails::updateAttendeeItem() 461void KOEditorDetails::updateAttendeeItem()
464{ 462{
465 if (mDisableItemUpdate) return; 463 if (mDisableItemUpdate) return;
466 464
467 QListViewItem *item = mListView->selectedItem(); 465 QListViewItem *item = mListView->selectedItem();
468 AttendeeListItem *aItem = static_cast<AttendeeListItem *>( item ); 466 AttendeeListItem *aItem = static_cast<AttendeeListItem *>( item );
469 if ( !aItem ) return; 467 if ( !aItem ) return;
470 468
471 Attendee *a = aItem->data(); 469 Attendee *a = aItem->data();
472 470
473 a->setName( mNameEdit->text() ); 471 a->setName( mNameEdit->text() );
474 a->setUid( mUidEdit->text() ); 472 a->setUid( mUidEdit );
475 a->setEmail( mEmailEdit->text() ); 473 a->setEmail( mEmailEdit->text() );
476 if ( mEmailEdit->text().isEmpty() ) 474 if ( mEmailEdit->text().isEmpty() )
477 mRsvpButton->setChecked( false ); 475 mRsvpButton->setChecked( false );
478 a->setRSVP( mRsvpButton->isChecked() ); 476 a->setRSVP( mRsvpButton->isChecked() );
479 a->setRole( Attendee::Role( mRoleCombo->currentItem() ) ); 477 a->setRole( Attendee::Role( mRoleCombo->currentItem() ) );
480 a->setStatus( Attendee::PartStat( mStatusCombo->currentItem() ) ); 478 a->setStatus( Attendee::PartStat( mStatusCombo->currentItem() ) );
481 aItem->updateItem(); 479 aItem->updateItem();
482} 480}
diff --git a/korganizer/koeditordetails.h b/korganizer/koeditordetails.h
index a33ee82..5f8f6f2 100644
--- a/korganizer/koeditordetails.h
+++ b/korganizer/koeditordetails.h
@@ -30,80 +30,80 @@
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31#include <qgroupbox.h> 31#include <qgroupbox.h>
32#include <qlineedit.h> 32#include <qlineedit.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qmultilineedit.h> 34#include <qmultilineedit.h>
35#include <klistview.h> 35#include <klistview.h>
36#include <qradiobutton.h> 36#include <qradiobutton.h>
37#include <qptrlist.h> 37#include <qptrlist.h>
38 38
39#include <kapplication.h> 39#include <kapplication.h>
40 40
41#include <libkcal/event.h> 41#include <libkcal/event.h>
42 42
43#include "ktimeedit.h" 43#include "ktimeedit.h"
44#include "customlistviewitem.h" 44#include "customlistviewitem.h"
45 45
46class KDateEdit; 46class KDateEdit;
47 47
48using namespace KCal; 48using namespace KCal;
49 49
50typedef CustomListViewItem<Attendee *> AttendeeListItem; 50typedef CustomListViewItem<Attendee *> AttendeeListItem;
51 51
52 52
53class KOEditorDetails : public QWidget 53class KOEditorDetails : public QWidget
54{ 54{
55 Q_OBJECT 55 Q_OBJECT
56 public: 56 public:
57 KOEditorDetails (int spacing = 8,QWidget* parent = 0, const char* name = 0); 57 KOEditorDetails (int spacing = 8,QWidget* parent = 0, const char* name = 0);
58 virtual ~KOEditorDetails(); 58 virtual ~KOEditorDetails();
59 59
60 /** Set widgets to default values */ 60 /** Set widgets to default values */
61 void setDefaults(); 61 void setDefaults();
62 /** Read event object and setup widgets accordingly */ 62 /** Read event object and setup widgets accordingly */
63 void readEvent(Incidence *); 63 void readEvent(Incidence *);
64 /** Write event settings to event object */ 64 /** Write event settings to event object */
65 void writeEvent(Incidence *); 65 void writeEvent(Incidence *);
66 66
67 /** return a clone of the event with attendees to be canceld*/ 67 /** return a clone of the event with attendees to be canceld*/
68 void cancelAttendeeEvent(Incidence *); 68 void cancelAttendeeEvent(Incidence *);
69 /** Check if the input is valid. */ 69 /** Check if the input is valid. */
70 bool validateInput(); 70 bool validateInput();
71 71
72 public slots: 72 public slots:
73 void insertAttendee(Attendee *); 73 void insertAttendee(Attendee *);
74 // called when the app recieves a list of name/email/uid (=addresses) from another app. Usually Ka/Pi 74 // called when the app recieves a list of name/email/uid (=addresses) from another app. Usually Ka/Pi
75 // The first parameter is a uniqueid. It can be used to identify if event 75 // The first parameter is a uniqueid. It can be used to identify if event
76 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist); 76 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist);
77 77
78 78
79 protected slots: 79 protected slots:
80 void addNewAttendee(); 80 void addNewAttendee();
81 void removeAttendee(); 81 void removeAttendee();
82 void openAddressBook(); 82 void openAddressBook();
83 void updateAttendeeInput(); 83 void updateAttendeeInput();
84 void clearAttendeeInput(); 84 void clearAttendeeInput();
85 void fillAttendeeInput(AttendeeListItem *); 85 void fillAttendeeInput(AttendeeListItem *);
86 void itemClicked(QListViewItem *,const QPoint & pnt, int c); 86 void itemClicked(QListViewItem *,const QPoint & pnt, int c);
87 void updateAttendeeItem(); 87 void updateAttendeeItem();
88 void setEnabledAttendeeInput(bool); 88 void setEnabledAttendeeInput(bool);
89 89
90 private: 90 private:
91 bool mDisableItemUpdate; 91 bool mDisableItemUpdate;
92 92
93 QLineEdit *mNameEdit; 93 QLineEdit *mNameEdit;
94 QLineEdit *mUidEdit; 94 QString mUidEdit;
95 QLineEdit *mEmailEdit; 95 QLineEdit *mEmailEdit;
96 KListView *mListView; 96 KListView *mListView;
97 QComboBox* mRoleCombo; 97 QComboBox* mRoleCombo;
98 QCheckBox* mRsvpButton; 98 QCheckBox* mRsvpButton;
99 QComboBox* mStatusCombo; 99 QComboBox* mStatusCombo;
100 QLabel *mOrganizerLabel; 100 QLabel *mOrganizerLabel;
101 101
102 QPushButton* mAddButton; 102 QPushButton* mAddButton;
103 QPushButton* mRemoveButton; 103 QPushButton* mRemoveButton;
104 QPushButton* mAddressBookButton; 104 QPushButton* mAddressBookButton;
105 105
106 QPtrList<Attendee> mdelAttendees; 106 QPtrList<Attendee> mdelAttendees;
107}; 107};
108 108
109#endif 109#endif