-rw-r--r-- | korganizer/koeditordetails.cpp | 10 | ||||
-rw-r--r-- | korganizer/koeditordetails.h | 2 |
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 | |||
@@ -88,66 +88,64 @@ KOEditorDetails::KOEditorDetails (int spacing,QWidget* parent,const char* name) | |||
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())); |
@@ -326,157 +324,157 @@ void KOEditorDetails::insertAttendees(const QString& uid,const QStringList& name | |||
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 | ||
336 | void KOEditorDetails::insertAttendee(Attendee *a) | 334 | void 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 | ||
349 | void KOEditorDetails::setDefaults() | 347 | void 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 | ||
365 | void KOEditorDetails::readEvent(Incidence *event) | 363 | void 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 | ||
379 | void KOEditorDetails::writeEvent(Incidence *event) | 377 | void 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 | ||
392 | void KOEditorDetails::cancelAttendeeEvent(Incidence *event) | 390 | void 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 | ||
402 | bool KOEditorDetails::validateInput() | 400 | bool KOEditorDetails::validateInput() |
403 | { | 401 | { |
404 | return true; | 402 | return true; |
405 | } | 403 | } |
406 | 404 | ||
407 | void KOEditorDetails::updateAttendeeInput() | 405 | void 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 | ||
418 | void KOEditorDetails::clearAttendeeInput() | 416 | void 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 | ||
429 | void KOEditorDetails::fillAttendeeInput( AttendeeListItem *aItem ) | 427 | void 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 | ||
445 | void KOEditorDetails::setEnabledAttendeeInput( bool enabled ) | 443 | void 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 | ||
456 | void KOEditorDetails::itemClicked(QListViewItem * item ,const QPoint & pnt, int c ) | 454 | void 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 | } |
463 | void KOEditorDetails::updateAttendeeItem() | 461 | void 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 | |||
@@ -62,48 +62,48 @@ class KOEditorDetails : public QWidget | |||
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 |