[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-pim
Subject:    [Kde-pim] Re: KOrganizer What's This [2]
From:       Antonio Salazar <savedfastcool () gmail ! com>
Date:       2004-10-17 0:47:47
Message-ID: 669a181d04101617475a91ce80 () mail ! gmail ! com
[Download RAW message or body]

Fixed a few things, including resolving a CVS conflict. New patch attached.
Antonio

["korganizerWhatsThis.diff" (text/x-patch)]

? Doxyfile
? korganizerWhatsThis.diff
Index: korganizer/koeditorattachments.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorattachments.cpp,v
retrieving revision 1.16
diff -u -3 -p -r1.16 koeditorattachments.cpp
--- korganizer/koeditorattachments.cpp	25 Aug 2004 10:33:54 -0000	1.16
+++ korganizer/koeditorattachments.cpp	17 Oct 2004 00:43:24 -0000
@@ -35,6 +35,7 @@
 #include <qlayout.h>
 #include <qlistview.h>
 #include <qpushbutton.h>
+#include <qwhatsthis.h>
 
 KOEditorAttachments::KOEditorAttachments( int spacing, QWidget *parent,
                                           const char *name )
@@ -44,6 +45,10 @@ KOEditorAttachments::KOEditorAttachments
   topLayout->setSpacing( spacing );
 
   mAttachments = new QListView( this );
+  QWhatsThis::add( mAttachments,
+		   i18n("Displays a list of current files that "
+		        "have been associated with this event or to-do. "
+			"The URI column displays the location of the file.") );
   mAttachments->addColumn( i18n("URI") );
   mAttachments->addColumn( i18n("MIME Type") );
   topLayout->addWidget( mAttachments );
@@ -53,18 +58,32 @@ KOEditorAttachments::KOEditorAttachments
   QBoxLayout *buttonLayout = new QHBoxLayout( topLayout );
 
   QPushButton *button = new QPushButton( i18n("&Add..."), this );
+  QWhatsThis::add( button,
+		   i18n("Shows a dialog used to select an attachment "
+		   	"to add to this event or to-do.") );
   buttonLayout->addWidget( button );
   connect( button, SIGNAL( clicked() ), SLOT( slotAdd() ) );
 
   button = new QPushButton( i18n("&Edit..."), this );
+  QWhatsThis::add( button,
+		   i18n("Shows the same dialog as the Add button, but "
+			"instead of adding an attachment, it modifies "
+			"the one currently selected in the list above.") );
   buttonLayout->addWidget( button );
   connect( button, SIGNAL( clicked() ), SLOT( slotEdit() ) );
 
   button = new QPushButton( i18n("&Remove"), this );
+  QWhatsThis::add( button,
+		   i18n("Removes the attachment selected in the list above "
+			"from this event or to-do.") );
   buttonLayout->addWidget( button );
   connect( button, SIGNAL( clicked() ), SLOT( slotRemove() ) );
 
   button = new QPushButton( i18n("&Show"), this );
+  QWhatsThis::add( button,
+		   i18n("Opens the attachment selected in the list above "
+		   	"in the viewer that is associated with it in your "
+			"KDE preferences.") );
   buttonLayout->addWidget( button );
   connect( button, SIGNAL( clicked() ), SLOT( slotShow() ) );
 }
Index: korganizer/koeditordetails.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditordetails.cpp,v
retrieving revision 1.79
diff -u -3 -p -r1.79 koeditordetails.cpp
--- korganizer/koeditordetails.cpp	13 Oct 2004 12:35:47 -0000	1.79
+++ korganizer/koeditordetails.cpp	17 Oct 2004 00:43:25 -0000
@@ -40,6 +40,7 @@
 #include <qpushbutton.h>
 #include <qgroupbox.h>
 #include <qradiobutton.h>
+#include <qwhatsthis.h>
 
 #include <kdebug.h>
 #include <klocale.h>
@@ -186,13 +187,29 @@ KOEditorDetails::KOEditorDetails( int sp
   // readEvent will delete it and set another label text instead, if the user
   // isn't the organizer.
   // Note that the i18n text below is duplicated in readEvent
+  QString whatsThis = i18n("Sets the identity corresponding to "
+		  	   "the organizer of this to-do or event. "
+			   "Identities can be set either in the 'Personal' "
+			   "section of the KOrganizer configuration, or in the "
+			   "'Security & Privacy'->'Password & User Account' "
+			   "section of the KDE Control Center. If you choose "
+			   "to set it globally for KDE in the Control Center, "
+			   "be sure to check 'Use email settings from "
+			   "Control Center' in the 'Personal' section of the "
+			   "KOrganizer configuration.");
   mOrganizerLabel = new QLabel( i18n( "Identity as organizer:" ),
                                 mOrganizerHBox );
   mOrganizerCombo = new QComboBox( mOrganizerHBox );
+  QWhatsThis::add( mOrganizerLabel, whatsThis );
+  QWhatsThis::add( mOrganizerCombo, whatsThis );
   fillOrganizerCombo();
   mOrganizerHBox->setStretchFactor( mOrganizerCombo, 100 );
 
   mListView = new KOAttendeeListView( this, "mListView" );
+  QWhatsThis::add( mListView,
+		   i18n("Displays information about current attendees. "
+		   	"Clicking on a column title will sort the list "
+			"according to that column.") );
   mListView->addColumn( i18n("Name"), 200 );
   mListView->addColumn( i18n("Email"), 200 );
   mListView->addColumn( i18n("Role"), 60 );
@@ -210,10 +227,15 @@ KOEditorDetails::KOEditorDetails( int sp
            SLOT( insertAttendee( Attendee * ) ) );
 #endif
 
+  whatsThis = i18n("Edits the name of the attendee selected in the list "
+  		   "above, or adds a new attendee if there are no attendees"
+		   "in the list.");
   QLabel *attendeeLabel = new QLabel( this );
+  QWhatsThis::add( attendeeLabel, whatsThis );
   attendeeLabel->setText( i18n("Na&me:") );
 
   mNameEdit = new KPIM::AddresseeLineEdit( this );
+  QWhatsThis::add( mNameEdit, whatsThis );
   mNameEdit->setClickMessage( i18n("Click to add a new attendee") );
   attendeeLabel->setBuddy( mNameEdit );
   mNameEdit->installEventFilter( this );
@@ -223,25 +245,37 @@ KOEditorDetails::KOEditorDetails( int sp
   mUidEdit = new QLineEdit( 0 );
   mUidEdit->setText( "" );
 
+  whatsThis = i18n("Edits the role of the attendee selected "
+  		   "in the list above.");
   QLabel *attendeeRoleLabel = new QLabel( this );
+  QWhatsThis::add( attendeeRoleLabel, whatsThis );
   attendeeRoleLabel->setText( i18n("Ro&le:") );
 
   mRoleCombo = new QComboBox( false, this );
+  QWhatsThis::add( mRoleCombo, whatsThis );
   mRoleCombo->insertStringList( Attendee::roleList() );
   attendeeRoleLabel->setBuddy( mRoleCombo );
   connect( mRoleCombo, SIGNAL( activated( int ) ),
            SLOT( updateAttendeeItem() ) );
 
+  whatsThis = i18n("Edits the current attendance status of the attendee "
+  		   "selected in the list above.");
   QLabel *statusLabel = new QLabel( this );
+  QWhatsThis::add( statusLabel, whatsThis );
   statusLabel->setText( i18n("Stat&us:") );
 
   mStatusCombo = new QComboBox( false, this );
+  QWhatsThis::add( mStatusCombo, whatsThis );
   mStatusCombo->insertStringList( Attendee::statusList() );
   statusLabel->setBuddy( mStatusCombo );
   connect( mStatusCombo, SIGNAL( activated( int ) ),
            SLOT( updateAttendeeItem() ) );
 
   mRsvpButton = new QCheckBox( this );
+  QWhatsThis::add( mRsvpButton,
+		   i18n("Edits whether to send an email to the attendee "
+			"selected in the list above to request "
+			"a response concerning attendance.") );
   mRsvpButton->setText( i18n("Re&quest response") );
   connect( mRsvpButton, SIGNAL( clicked() ), SLOT( updateAttendeeItem() ) );
 
@@ -249,15 +283,29 @@ KOEditorDetails::KOEditorDetails( int sp
   QVBoxLayout *buttonLayout = new QVBoxLayout( buttonBox );
 
   QPushButton *newButton = new QPushButton( i18n("&New"), buttonBox );
+  QWhatsThis::add( newButton,
+		   i18n("Adds a new attendee to the list. Once the "
+		   	"attendee is added, you will be able to "
+			"edit the attendee's name, role, attendance "
+			"status, and whether or not the attendee is required "
+			"to respond to the invitation. To select an attendee "
+			"from your addressbook, click the 'Select Addressee'"
+			"button instead.") );
   buttonLayout->addWidget( newButton );
   connect( newButton, SIGNAL( clicked() ), SLOT( addNewAttendee() ) );
 
   mRemoveButton = new QPushButton( i18n("&Remove"), buttonBox );
+  QWhatsThis::add( mRemoveButton,
+		   i18n("Removes the attendee selected in "
+		   	"the list above.") );
   buttonLayout->addWidget( mRemoveButton );
   connect( mRemoveButton, SIGNAL( clicked() ), SLOT( removeAttendee() ) );
 
   mAddressBookButton = new QPushButton( i18n("Select Addressee..."),
                                         buttonBox );
+  QWhatsThis::add( mAddressBookButton,
+		   i18n("Opens your address book, allowing you to select "
+			"new attendees from it.") );
   buttonLayout->addWidget( mAddressBookButton );
   connect( mAddressBookButton, SIGNAL( clicked() ), SLOT( openAddressBook() ) );
 
Index: korganizer/koeditorfreebusy.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorfreebusy.cpp,v
retrieving revision 1.18
diff -u -3 -p -r1.18 koeditorfreebusy.cpp
--- korganizer/koeditorfreebusy.cpp	13 Oct 2004 12:35:47 -0000	1.18
+++ korganizer/koeditorfreebusy.cpp	17 Oct 2004 00:43:25 -0000
@@ -27,6 +27,7 @@
 #include <qlabel.h>
 #include <qcombobox.h>
 #include <qpushbutton.h>
+#include <qwhatsthis.h>
 
 #include <kdebug.h>
 #include <klocale.h>
@@ -187,10 +188,19 @@ KOEditorFreeBusy::KOEditorFreeBusy( int 
   // The control panel for the gantt widget
   QBoxLayout *controlLayout = new QHBoxLayout( topLayout );
 
+  QString whatsThis = i18n("Sets the zoom level on the Gantt chart. "
+  			   "'Hour' shows a range of several hours, "
+			   "'Day' shows a range of a few days, "
+			   "'Week' shows a range of a few months, "
+			   "and 'Month' shows a range of a few years, "
+			   "while 'Automatic' selects the range most "
+			   "appropriate for the current event or to-do.");
   QLabel *label = new QLabel( i18n( "Scale: " ), this );
+  QWhatsThis::add( label, whatsThis );
   controlLayout->addWidget( label );
 
-  scaleCombo = new QComboBox( this );
+  scaleCombo = new QComboBox( this ); 
+  QWhatsThis::add( scaleCombo, whatsThis );
   scaleCombo->insertItem( i18n( "Hour" ) );
   scaleCombo->insertItem( i18n( "Day" ) );
   scaleCombo->insertItem( i18n( "Week" ) );
@@ -202,26 +212,43 @@ KOEditorFreeBusy::KOEditorFreeBusy( int 
   controlLayout->addWidget( scaleCombo );
 
   QPushButton *button = new QPushButton( i18n( "Center on Start" ), this );
+  QWhatsThis::add( button,
+		   i18n("Centers the Gantt chart on the start time "
+		        "and day of this event.") );
   connect( button, SIGNAL( clicked() ), SLOT( slotCenterOnStart() ) );
   controlLayout->addWidget( button );
 
   button = new QPushButton( i18n( "Zoom to Fit" ), this );
+  QWhatsThis::add( button,
+		   i18n("Zooms the Gantt chart so that you can see the "
+			"entire duration of the event on it.") );
   connect( button, SIGNAL( clicked() ), SLOT( slotZoomToTime() ) );
   controlLayout->addWidget( button );
 
   controlLayout->addStretch( 1 );
 
   button = new QPushButton( i18n( "Pick Date" ), this );
+  QWhatsThis::add( button,
+		   i18n("Moves the event to a date and time when all the "
+			"attendees are free.") );
   connect( button, SIGNAL( clicked() ), SLOT( slotPickDate() ) );
   controlLayout->addWidget( button );
 
   controlLayout->addStretch( 1 );
 
   button = new QPushButton( i18n("Reload"), this );
+  QWhatsThis::add( button,
+		   i18n("Reloads the Gantt chart and the list of attendees "
+		        "for this to-do.") );
   controlLayout->addWidget( button );
   connect( button, SIGNAL( clicked() ), SLOT( reload() ) );
 
   mGanttView = new KDGanttView( this, "mGanttView" );
+  QWhatsThis::add( mGanttView,
+		   i18n("Shows the free/busy status of all attendees. "
+		   	"Double-clicking on an attendees entry in the "
+			"list will allow you to enter the location of their "
+			"Free/Busy Information.") );
   topLayout->addWidget( mGanttView );
   // Remove the predefined "Task Name" column
   mGanttView->removeColumn( 0 );
@@ -439,7 +466,7 @@ void KOEditorFreeBusy::slotPickDate()
   if( success ) {
     if ( start == mDtStart && end == mDtEnd ) {
       KMessageBox::information( this,
-          i18n( "The meeting has already suitable start/end times." ),
+          i18n( "The meeting already has suitable start/end times." ),
           "MeetinTimeOKFreeBusy" );
     } else {
       emit dateTimesChanged( start, end );
Index: korganizer/koeditorgeneral.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorgeneral.cpp,v
retrieving revision 1.48
diff -u -3 -p -r1.48 koeditorgeneral.cpp
--- korganizer/koeditorgeneral.cpp	18 Sep 2004 16:36:56 -0000	1.48
+++ korganizer/koeditorgeneral.cpp	17 Oct 2004 00:43:25 -0000
@@ -35,6 +35,7 @@
 #include <qcheckbox.h>
 #include <qpushbutton.h>
 #include <qcombobox.h>
+#include <qwhatsthis.h>
 
 #include <kglobal.h>
 #include <kdebug.h>
@@ -93,22 +94,28 @@ void KOEditorGeneral::initHeader(QWidget
   headerLayout->addMultiCellWidget(mOwnerLabel,0,0,0,1);
 #endif
 
+  QString whatsThis = i18n("Sets the Title of this event or to-do.");
   QLabel *summaryLabel = new QLabel(i18n("T&itle:"),parent);
+  QWhatsThis::add( summaryLabel, whatsThis );
   QFont f = summaryLabel->font();
   f.setBold( true );
   summaryLabel->setFont(f);
   headerLayout->addWidget(summaryLabel,1,0);
 
   mSummaryEdit = new FocusLineEdit(parent);
+  QWhatsThis::add( mSummaryEdit, whatsThis );
   connect( mSummaryEdit, SIGNAL( focusReceivedSignal() ),
            SIGNAL( focusReceivedSignal() ) );
   headerLayout->addWidget(mSummaryEdit,1,1);
   summaryLabel->setBuddy( mSummaryEdit );
 
+  whatsThis = i18n("Sets where the event or to-do will take place.");
   QLabel *locationLabel = new QLabel(i18n("&Location:"),parent);
+  QWhatsThis::add( locationLabel, whatsThis );
   headerLayout->addWidget(locationLabel,2,0);
 
   mLocationEdit = new QLineEdit(parent);
+  QWhatsThis::add( mLocationEdit, whatsThis );
   headerLayout->addWidget(mLocationEdit,2,1);
   locationLabel->setBuddy( mLocationEdit );
 }
@@ -117,12 +124,17 @@ void KOEditorGeneral::initCategories(QWi
 {
   QBoxLayout *categoriesLayout = new QHBoxLayout( topLayout );
 
+  QString whatsThis = i18n("Allows you to select the categories that this "
+		  	   "event or to-do belongs to.");
+  
   mCategoriesButton = new QPushButton(parent);
   mCategoriesButton->setText(i18n("Select Cate&gories..."));
+  QWhatsThis::add( mCategoriesButton, whatsThis );
   connect(mCategoriesButton,SIGNAL(clicked()),SIGNAL(openCategoryDialog()));
   categoriesLayout->addWidget(mCategoriesButton);
 
   mCategoriesLabel = new KSqueezedTextLabel(parent);
+  QWhatsThis::add( mCategoriesLabel, whatsThis );
   mCategoriesLabel->setFrameStyle(QFrame::Panel|QFrame::Sunken);
   categoriesLayout->addWidget(mCategoriesLabel,1);
 }
@@ -132,9 +144,18 @@ void KOEditorGeneral::initSecrecy(QWidge
   QBoxLayout *secrecyLayout = new QHBoxLayout( topLayout );
 
   QLabel *secrecyLabel = new QLabel(i18n("Acc&ess:"),parent);
+  QString whatsThis = i18n("Sets whether the access to this event or to-do "
+  			   "is restricted. Please note that KOrganizer "
+			   "currently does not use this setting, so the "
+			   "implementation of the restrictions will depend "
+			   "on the groupware server. This means that events "
+			   "or to-dos marked as private or confidential may "
+			   "be visible to others.");
+  QWhatsThis::add( secrecyLabel, whatsThis );
   secrecyLayout->addWidget(secrecyLabel);
 
   mSecrecyCombo = new QComboBox(parent);
+  QWhatsThis::add( mSecrecyCombo, whatsThis );
   mSecrecyCombo->insertStringList(Incidence::secrecyList());
   secrecyLayout->addWidget(mSecrecyCombo);
   secrecyLabel->setBuddy( mSecrecyCombo );
@@ -143,6 +164,11 @@ void KOEditorGeneral::initSecrecy(QWidge
 void KOEditorGeneral::initDescription(QWidget *parent,QBoxLayout *topLayout)
 {
   mDescriptionEdit = new KTextEdit(parent);
+  QWhatsThis::add( mDescriptionEdit,
+		   i18n("Sets the description for this event. This "
+			"will be displayed in a reminder if one is set, "
+			"as well as in a tooltip when you hover over the "
+			"event and on the event itself it is long enough.") );
   mDescriptionEdit->append("");
   mDescriptionEdit->setReadOnly(false);
   mDescriptionEdit->setOverwriteMode(false);
@@ -160,15 +186,21 @@ void KOEditorGeneral::initAlarm(QWidget 
   alarmLayout->addWidget(mAlarmBell);
 
   mAlarmButton = new QCheckBox(i18n("&Reminder:"),parent);
+  QWhatsThis::add( mAlarmButton,
+		   i18n("Activates a reminder for this event or to-do.") );
   connect(mAlarmButton, SIGNAL(toggled(bool)), SLOT(enableAlarmEdit(bool)));
   alarmLayout->addWidget(mAlarmButton);
 
+  QString whatsThis = i18n("Sets how long before the event occurs "
+		  	   "the reminder will be triggered.");
   mAlarmTimeEdit = new KRestrictedLine(parent, "alarmTimeEdit",
                   "1234567890");
   mAlarmTimeEdit->setText("");
+  QWhatsThis::add( mAlarmTimeEdit, whatsThis );
   alarmLayout->addWidget(mAlarmTimeEdit);
 
   mAlarmIncrCombo = new QComboBox(false, parent);
+  QWhatsThis::add( mAlarmIncrCombo, whatsThis );
   mAlarmIncrCombo->insertItem(i18n("minute(s)"));
   mAlarmIncrCombo->insertItem(i18n("hour(s)"));
   mAlarmIncrCombo->insertItem(i18n("day(s)"));
@@ -176,6 +208,9 @@ void KOEditorGeneral::initAlarm(QWidget 
   alarmLayout->addWidget(mAlarmIncrCombo);
 
   mAlarmSoundButton = new QPushButton(parent);
+  QWhatsThis::add( mAlarmSoundButton,
+		   i18n("Sets a sound to play in conjunction with the popup "
+		        "dialog as a reminder.") );
   mAlarmSoundButton->setPixmap(KOGlobals::self()->smallIcon("playsound"));
   mAlarmSoundButton->setToggleButton(true);
   QToolTip::add(mAlarmSoundButton, i18n("No sound set"));
@@ -183,6 +218,9 @@ void KOEditorGeneral::initAlarm(QWidget 
   alarmLayout->addWidget(mAlarmSoundButton);
 
   mAlarmProgramButton = new QPushButton(parent);
+  QWhatsThis::add( mAlarmProgramButton,
+		   i18n("Sets a program to execute in conjunction with the "
+			"popup dialog.") );
   mAlarmProgramButton->setPixmap(KOGlobals::self()->smallIcon("runprog"));
   mAlarmProgramButton->setToggleButton(true);
   QToolTip::add(mAlarmProgramButton, i18n("No program set"));
Index: korganizer/koeditorgeneralevent.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorgeneralevent.cpp,v
retrieving revision 1.67
diff -u -3 -p -r1.67 koeditorgeneralevent.cpp
--- korganizer/koeditorgeneralevent.cpp	8 Oct 2004 05:01:38 -0000	1.67
+++ korganizer/koeditorgeneralevent.cpp	17 Oct 2004 00:43:25 -0000
@@ -32,6 +32,7 @@
 #include <qcheckbox.h>
 #include <qcombobox.h>
 #include <qpushbutton.h>
+#include <qwhatsthis.h>
 
 #include <kdebug.h>
 #include <kglobal.h>
@@ -95,6 +96,9 @@ void KOEditorGeneralEvent::initTime(QWid
 
   QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal,
                                           i18n("Date && Time"),parent);
+  QWhatsThis::add( timeGroupBox,
+		   i18n("Sets options related to the date and time of the "
+			"event or to-do.") );
   timeLayout->addWidget(timeGroupBox);
 
   QFrame *timeBoxFrame = new QFrame(timeGroupBox);
@@ -157,9 +161,13 @@ void KOEditorGeneralEvent::initClass(QWi
   QBoxLayout *classLayout = new QHBoxLayout(topLayout);
 
   QLabel *freeTimeLabel = new QLabel(i18n("S&how time as:"),parent);
+  QString whatsThis = i18n("Sets how this time will appear on your Free/Busy "
+		  	   "information.");
+  QWhatsThis::add( freeTimeLabel, whatsThis );
   classLayout->addWidget(freeTimeLabel);
 
   mFreeTimeCombo = new QComboBox(false, parent);
+  QWhatsThis::add( mFreeTimeCombo, whatsThis );
   mFreeTimeCombo->insertItem(i18n("Busy"));
   mFreeTimeCombo->insertItem(i18n("Free"));
   classLayout->addWidget(mFreeTimeCombo);
@@ -381,6 +389,9 @@ void KOEditorGeneralEvent::setDuration()
     }
   }
   mDurationLabel->setText(tmpStr);
+  QWhatsThis::add( mDurationLabel,
+		   i18n("Shows the duration of the event or to-do with the "
+			"current start and end dates and times.") );
 }
 
 void KOEditorGeneralEvent::emitDateTimeStr()
Index: korganizer/koeditorgeneraltodo.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorgeneraltodo.cpp,v
retrieving revision 1.53
diff -u -3 -p -r1.53 koeditorgeneraltodo.cpp
--- korganizer/koeditorgeneraltodo.cpp	8 Oct 2004 00:05:54 -0000	1.53
+++ korganizer/koeditorgeneraltodo.cpp	17 Oct 2004 00:43:25 -0000
@@ -32,6 +32,7 @@
 #include <qcheckbox.h>
 #include <qpushbutton.h>
 #include <qlabel.h>
+#include <qwhatsthis.h>
 
 #include <kglobal.h>
 #include <klocale.h>
@@ -98,12 +99,17 @@ void KOEditorGeneralTodo::initTime(QWidg
   timeLayout->addWidget(timeGroupBox);
 
   QFrame *timeBoxFrame = new QFrame(timeGroupBox);
+  QWhatsThis::add( timeBoxFrame,
+		   i18n("Sets options for due and start dates and times "
+		        "for this to-do.") );
 
   QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,1,1);
   layoutTimeBox->setSpacing(topLayout->spacing());
 
 
+  QString whatsThis = i18n("Sets the due date for this to-do.");
   mDueCheck = new QCheckBox(i18n("&Due:"),timeBoxFrame);
+  QWhatsThis::add( mDueCheck, whatsThis );
   layoutTimeBox->addWidget(mDueCheck,0,0);
   connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool)));
   connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm()));
@@ -111,27 +117,38 @@ void KOEditorGeneralTodo::initTime(QWidg
   connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(dateChanged()));
 
   mDueDateEdit = new KDateEdit(timeBoxFrame);
+  QWhatsThis::add( mDueDateEdit, whatsThis );
   layoutTimeBox->addWidget(mDueDateEdit,0,1);
   connect(mDueDateEdit,SIGNAL(dateChanged(QDate)),SLOT(dateChanged()));
 
   mDueTimeEdit = new KTimeEdit(timeBoxFrame);
+  QWhatsThis::add( mDueTimeEdit,
+		   i18n("Sets the due time for this to-do.") );
   layoutTimeBox->addWidget(mDueTimeEdit,0,2);
   connect(mDueTimeEdit,SIGNAL(timeChanged( QTime )),SLOT(dateChanged()));
 
+  whatsThis = i18n("Sets the start date for this to-do");
   mStartCheck = new QCheckBox(i18n("Sta&rt:"),timeBoxFrame);
+  QWhatsThis::add( mStartCheck, whatsThis );
   layoutTimeBox->addWidget(mStartCheck,1,0);
   connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool)));
   connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(startDateModified()));
 
   mStartDateEdit = new KDateEdit(timeBoxFrame);
+  QWhatsThis::add( mStartDateEdit, whatsThis );
   layoutTimeBox->addWidget(mStartDateEdit,1,1);
   connect(mStartDateEdit,SIGNAL(dateChanged(QDate)),SLOT(startDateModified()));
 
   mStartTimeEdit = new KTimeEdit(timeBoxFrame);
+  QWhatsThis::add( mStartTimeEdit,
+		   i18n("Sets the start time for this to-do.") );
   layoutTimeBox->addWidget(mStartTimeEdit,1,2);
   connect(mStartTimeEdit,SIGNAL(timeChanged(QTime)),SLOT(startDateModified()));
 
   mTimeButton = new QCheckBox(i18n("Ti&me associated"),timeBoxFrame);
+  QWhatsThis::add( mTimeButton,
+		   i18n("Sets whether or not this to-do has a time "
+			"associated with it.") );
   layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,2);
 
   connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool)));
@@ -144,7 +161,10 @@ void KOEditorGeneralTodo::initTime(QWidg
 
 void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
 {
+  QString whatsThis = i18n("Sets the current completion status of this to-do "
+		  	   "as a percentage.");
   mCompletedCombo = new QComboBox(parent);
+  QWhatsThis::add( mCompletedCombo, whatsThis );
   for (int i = 0; i <= 100; i+=10) {
     // xgettext:no-c-format
     QString label = i18n("Percent complete", "%1 %").arg (i);
@@ -160,6 +180,12 @@ void KOEditorGeneralTodo::initCompletion
 
 void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
 {
+  QString whatsThis = i18n("Sets the priority of this to-do on a scale "
+  			   "from one to nine, with one being the higest "
+			   "priority and nine being the lowest. "
+			   "In programs that have a "
+			   "different scale, the numbers will be adjusted "
+			   "to match the appropriate scale.");
   QLabel *priorityLabel = new QLabel(i18n("&Priority:"),parent);
   topLayout->addWidget(priorityLabel);
 
Index: korganizer/koeditorrecurrence.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeditorrecurrence.cpp,v
retrieving revision 1.72
diff -u -3 -p -r1.72 koeditorrecurrence.cpp
--- korganizer/koeditorrecurrence.cpp	24 Sep 2004 22:43:03 -0000	1.72
+++ korganizer/koeditorrecurrence.cpp	17 Oct 2004 00:43:27 -0000
@@ -37,6 +37,7 @@
 #include <qradiobutton.h>
 #include <qlabel.h>
 #include <qpushbutton.h>
+#include <qwhatsthis.h>
 
 #include <kdialog.h>
 #include <kglobal.h>
@@ -85,6 +86,10 @@ int RecurBase::frequency()
 QComboBox *RecurBase::createWeekCountCombo( QWidget *parent, const char *name )
 {
   QComboBox *combo = new QComboBox( parent, name );
+  QWhatsThis::add( combo,
+		   i18n("The number of the week from the beginning "
+		        "of this month on which this event or to-do "
+		        "should recur.") );
   if ( !combo ) return 0;
   combo->insertItem( i18n("1st") );
   combo->insertItem( i18n("2nd") );
@@ -102,6 +107,9 @@ QComboBox *RecurBase::createWeekCountCom
 QComboBox *RecurBase::createWeekdayCombo( QWidget *parent, const char *name )
 {
   QComboBox *combo = new QComboBox( parent, name );
+  QWhatsThis::add( combo,
+		   i18n("The weekday on which this event or to-do "
+		        "should recur.") );
   if ( !combo ) return 0;
   const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();
   for( int i = 1; i <= 7; ++i ) {
@@ -113,6 +121,9 @@ QComboBox *RecurBase::createWeekdayCombo
 QComboBox *RecurBase::createMonthNameCombo( QWidget *parent, const char *name )
 {
   QComboBox *combo = new QComboBox( parent, name );
+  QWhatsThis::add( combo,
+		   i18n("The month during which this event or to-do "
+		        "should recur.") );
   if ( !combo ) return 0;
   const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();
   for( int i = 1; i <= 12; ++i ) {
@@ -128,13 +139,17 @@ QBoxLayout *RecurBase::createFrequencySp
 {
   QBoxLayout *freqLayout = new QHBoxLayout( layout );
 
+  QString whatsThis = i18n("Sets how often this event or to-do should recur.");
   QLabel *preLabel = new QLabel( everyText, parent );
+  QWhatsThis::add( preLabel, whatsThis );
   freqLayout->addWidget( preLabel );
 
   freqLayout->addWidget( frequencyEdit() );
   preLabel->setBuddy( frequencyEdit() );
+  QWhatsThis::add( preLabel->buddy(), whatsThis );
 
   QLabel *postLabel = new QLabel( unitText, parent );
+  QWhatsThis::add( postLabel, whatsThis );
   freqLayout->addWidget( postLabel );
   freqLayout->addStretch();
   return freqLayout;
@@ -179,6 +194,9 @@ RecurWeekly::RecurWeekly( QWidget *paren
       weekDayName = weekDayName.left( 1 );
     }
     mDayBoxes[ (i + weekStart + 6)%7 ] = new QCheckBox( weekDayName, dayBox );
+    QWhatsThis::add( mDayBoxes[ (i + weekStart + 6)%7 ],
+		     i18n("Day of the week on which this event or to-do "
+			  "should recur.") );
   }
 
   topLayout->addStretch( 1 );
@@ -226,9 +244,16 @@ RecurMonthly::RecurMonthly( QWidget *par
   }
 
   mByDayRadio = new QRadioButton( recurOnText, buttonGroup );
+  QWhatsThis::add( mByDayRadio,
+		   i18n("Sets a specific day of the month on which "
+		        "this event or to-do should recur.") );
+  
   buttonLayout->addWidget( mByDayRadio, 0, 0 );
 
+  QString whatsThis = i18n("The day of the month that this event or to-do "
+			   "should recur on.");
   mByDayCombo = new QComboBox( buttonGroup );
+  QWhatsThis::add( mByDayCombo, whatsThis );
   mByDayCombo->setSizeLimit( 7 );
   mByDayCombo->insertItem( i18n("1st") );
   mByDayCombo->insertItem( i18n("2nd") );
@@ -264,10 +289,14 @@ RecurMonthly::RecurMonthly( QWidget *par
   buttonLayout->addWidget( mByDayCombo, 0, 1 );
 
   QLabel *byDayLabel = new QLabel( i18n("day"), buttonGroup );
+  QWhatsThis::add( byDayLabel, whatsThis );
   buttonLayout->addWidget( byDayLabel, 0, 2 );
 
 
   mByPosRadio = new QRadioButton( recurOnText, buttonGroup);
+  QWhatsThis::add( mByPosRadio,
+		   i18n("Sets a weekday and specific week in the month "
+			"on which this event or to-do should recur") );
   buttonLayout->addWidget( mByPosRadio, 1, 0 );
 
   mByPosCountCombo = createWeekCountCombo( buttonGroup );
@@ -350,12 +379,19 @@ RecurYearly::RecurYearly( QWidget *paren
     recurInMonthText = i18n("&Day ");
   }
   mByMonthRadio = new QRadioButton( recurInMonthText, buttonGroup );
+  QWhatsThis::add( mByMonthRadio,
+		   i18n("Sets a specific day in a specific month for "
+			"this event or to-do to recur.") );
   monthLayout->addWidget( mByMonthRadio );
   mByMonthSpin = new QSpinBox( 1, 31, 1, buttonGroup );
+  QWhatsThis::add( mByMonthSpin,
+		   i18n("The day of the month on which this event or to-do "
+			"should recur.") );
   monthLayout->addWidget( mByMonthSpin );
   QLabel *ofLabel = new QLabel(
       i18n("part between XXX and YYY of 'Recur on day XXX of month YYY'", " &of "),
       buttonGroup );
+  //What do I do here? I'm not sure if this label should have What's This in it... - Antonio
   monthLayout->addWidget( ofLabel );
 
   mByMonthCombo = createMonthNameCombo( buttonGroup );
@@ -372,6 +408,9 @@ RecurYearly::RecurYearly( QWidget *paren
     recurOnPosText = i18n("Part before XXX in 'Recur on NNN. WEEKDAY of MONTH'", "&On the" );
   }
   mByPosRadio = new QRadioButton( recurOnPosText, buttonGroup );
+  QWhatsThis::add( mByPosRadio,
+		   i18n("Sets a specific day in a specific week of a specific "
+			"month for this event or to-do to recur.") );
   posLayout->addWidget( mByPosRadio );
 
   mByPosDayCombo = createWeekCountCombo( buttonGroup );
@@ -400,10 +439,15 @@ RecurYearly::RecurYearly( QWidget *paren
   } else {
     recurOnDayText = i18n("Recur on &day #");
   }
+  QString whatsThis = i18n("Sets a specific day within the year for this "
+			   "event or to-do to recur.");
   mByDayRadio = new QRadioButton( recurOnDayText, buttonGroup );
+  QWhatsThis::add( mByDayRadio, whatsThis );
   dayLayout->addWidget( mByDayRadio );
 
   mByDaySpin = new QSpinBox( 1, 366, 1, buttonGroup );
+  QWhatsThis::add( mByDaySpin, whatsThis );
+  
   dayLayout->addWidget( mByDaySpin );
 
   QString ofTheYear( i18n("part after NNN of 'Recur on day #NNN of the year'", " of the &year"));
@@ -412,6 +456,7 @@ RecurYearly::RecurYearly( QWidget *paren
         " of the year");
   }
   ofLabel = new QLabel( ofTheYear, buttonGroup );
+  QWhatsThis::add( ofLabel, whatsThis );
   dayLayout->addWidget( ofLabel );
   ofLabel->setBuddy( mByDaySpin );
 
@@ -500,17 +545,33 @@ ExceptionsWidget::ExceptionsWidget( QWid
   QGridLayout *boxLayout = new QGridLayout( box );
 
   mExceptionDateEdit = new KDateEdit( box );
+  QWhatsThis::add( mExceptionDateEdit,
+		   i18n("A date that should be considered an exception "
+			"to the recurrence rules for this event or to-do.") );
   mExceptionDateEdit->setDate( QDate::currentDate() );
   boxLayout->addWidget( mExceptionDateEdit, 0, 0 );
 
   QPushButton *addExceptionButton = new QPushButton( i18n("&Add"), box );
+  QWhatsThis::add( addExceptionButton,
+		   i18n("Add this date as an exception "
+			"to the recurrence rules for this event or to-do.") );
   boxLayout->addWidget( addExceptionButton, 1, 0 );
   QPushButton *changeExceptionButton = new QPushButton( i18n("&Change"), box );
+  QWhatsThis::add( changeExceptionButton,
+		   i18n("Replace the currently selected date with this date.") );
   boxLayout->addWidget( changeExceptionButton, 2, 0 );
   QPushButton *deleteExceptionButton = new QPushButton( i18n("&Delete"), box );
+  QWhatsThis::add( deleteExceptionButton,
+		   i18n("Delete the currently selected date from the list of dates "
+		        "that should be considered exceptions to the recurrence rules "
+		        "for this event or to-do.") );
   boxLayout->addWidget( deleteExceptionButton, 3, 0 );
 
   mExceptionList = new QListBox( box );
+  QWhatsThis::add( mExceptionList,
+		   i18n("Displays current dates that are being considered "
+			"exceptions to the recurrence rules for this event "
+			"or to-do.") );
   boxLayout->addMultiCellWidget( mExceptionList, 0, 3, 1, 1 );
 
   boxLayout->setRowStretch( 4, 1 );
@@ -598,6 +659,9 @@ RecurrenceRangeWidget::RecurrenceRangeWi
 
   mRangeGroupBox = new QGroupBox( 1, Horizontal, i18n("Recurrence Range"),
                                   this );
+  QWhatsThis::add( mRangeGroupBox,
+		   i18n("Sets a range for which these recurrence rules will "
+			"apply to this event or to-do.") );
   topLayout->addWidget( mRangeGroupBox );
 
   QWidget *rangeBox = new QWidget( mRangeGroupBox );
@@ -605,11 +669,16 @@ RecurrenceRangeWidget::RecurrenceRangeWi
   rangeLayout->setSpacing( KDialog::spacingHint() );
 
   mStartDateLabel = new QLabel( i18n("Begin on:"), rangeBox );
+  QWhatsThis::add( mStartDateLabel,
+		   i18n("The date the recurrences for this event or to-do "
+			"begin on.") );
   rangeLayout->addWidget( mStartDateLabel );
 
   QButtonGroup *rangeButtonGroup = new QButtonGroup;
 
   mNoEndDateButton = new QRadioButton( i18n("&No ending date"), rangeBox );
+  QWhatsThis::add( mNoEndDateButton,
+		   i18n("Sets the event or to-do to recur forever.") );
   rangeButtonGroup->insert( mNoEndDateButton );
   rangeLayout->addWidget( mNoEndDateButton );
 
@@ -617,13 +686,20 @@ RecurrenceRangeWidget::RecurrenceRangeWi
   durationLayout->setSpacing( KDialog::spacingHint() );
 
   mEndDurationButton = new QRadioButton( i18n("End &after"), rangeBox );
+  QWhatsThis::add( mEndDurationButton,
+		   i18n("Sets the event or to-do to stop recurring after a "
+			"certain amount of occurrences.") );
   rangeButtonGroup->insert( mEndDurationButton );
   durationLayout->addWidget( mEndDurationButton );
 
+  QString whatsThis = i18n("Number of times the event or to-do should recur "
+		  	   "before stopping.");
   mEndDurationEdit = new QSpinBox( 1, 9999, 1, rangeBox );
+  QWhatsThis::add( mEndDurationEdit, whatsThis );
   durationLayout->addWidget( mEndDurationEdit );
 
   QLabel *endDurationLabel = new QLabel( i18n("&occurrence(s)"), rangeBox );
+  QWhatsThis::add( endDurationLabel, whatsThis );
   durationLayout ->addWidget( endDurationLabel );
   endDurationLabel->setBuddy( mEndDurationEdit );
 
@@ -631,10 +707,16 @@ RecurrenceRangeWidget::RecurrenceRangeWi
   endDateLayout->setSpacing( KDialog::spacingHint() );
 
   mEndDateButton = new QRadioButton( i18n("End &on:"), rangeBox );
+  QWhatsThis::add( mEndDateButton,
+		   i18n("Sets the event or to-do to stop recurring on "
+			"a certain date.") );
   rangeButtonGroup->insert( mEndDateButton );
   endDateLayout->addWidget( mEndDateButton );
 
   mEndDateEdit = new KDateEdit( rangeBox );
+  QWhatsThis::add( mEndDateEdit,
+		   i18n("Date after which the event or to-do should stop "
+			"recurring") );
   endDateLayout->addWidget( mEndDateEdit );
 
   endDateLayout->addStretch( 1 );
@@ -751,6 +833,9 @@ RecurrenceChooser::RecurrenceChooser( QW
 
   if ( KOPrefs::instance()->mCompactDialogs ) {
     mTypeCombo = new QComboBox( this );
+    QWhatsThis::add( mTypeCombo,
+		     i18n("Sets the type of recurrence this event or to-do "
+			  "should have.") );
     mTypeCombo->insertItem( i18n("Daily") );
     mTypeCombo->insertItem( i18n("Weekly") );
     mTypeCombo->insertItem( i18n("Monthly") );
@@ -767,9 +852,21 @@ RecurrenceChooser::RecurrenceChooser( QW
     topLayout->addWidget( ruleButtonGroup );
 
     mDailyButton = new QRadioButton( i18n("&Daily"), ruleButtonGroup );
+    QWhatsThis::add( mDailyButton,
+		     i18n("Sets the event or to-do to recur daily according "
+			  "to the specified rules.") );
     mWeeklyButton = new QRadioButton( i18n("&Weekly"), ruleButtonGroup );
+    QWhatsThis::add( mWeeklyButton,
+		     i18n("Sets the event or to-do to recur weekly according "
+			  "to the specified rules.") );
     mMonthlyButton = new QRadioButton( i18n("&Monthly"), ruleButtonGroup );
+    QWhatsThis::add( mMonthlyButton,
+		     i18n("Sets the event or to-do to recur monthly according "
+			  "to the specified rules.") );
     mYearlyButton = new QRadioButton( i18n("&Yearly"), ruleButtonGroup );
+    QWhatsThis::add( mYearlyButton,
+		     i18n("Sets the event or to-do to recur yearly according "
+			  "to the specified rules.") );
 
     connect( mDailyButton, SIGNAL( toggled( bool ) ),
              SLOT( emitChoice() ) );
@@ -831,6 +928,9 @@ KOEditorRecurrence::KOEditorRecurrence( 
   topLayout->setSpacing( KDialog::spacingHint() );
 
   mEnabledCheck = new QCheckBox( i18n("&Enable recurrence"), this );
+  QWhatsThis::add( mEnabledCheck,
+		   i18n("Enables recurrence for this event or to-do according "
+			"to the specified rules.") );
   connect( mEnabledCheck, SIGNAL( toggled( bool ) ),
            SLOT( setRecurrenceEnabled( bool ) ) );
   topLayout->addMultiCellWidget( mEnabledCheck, 0, 0, 0, 1 );
@@ -838,6 +938,8 @@ KOEditorRecurrence::KOEditorRecurrence( 
 
   mTimeGroupBox = new QGroupBox( 1, Horizontal, i18n("Appointment Time "),
                                  this );
+  QWhatsThis::add( mTimeGroupBox,
+		   i18n("Displays appointment time information.") );
   topLayout->addMultiCellWidget( mTimeGroupBox, 1, 1 , 0 , 1 );
 
   if ( KOPrefs::instance()->mCompactDialogs ) {
@@ -857,6 +959,9 @@ KOEditorRecurrence::KOEditorRecurrence( 
   else orientation = Vertical;
 
   mRuleBox = new QGroupBox( 1, orientation, i18n("Recurrence Rule"), this );
+  QWhatsThis::add( mRuleBox,
+		   i18n("Options concerning the type of recurrence this event "
+			"or to-do should have.") );
   if ( KOPrefs::instance()->mCompactDialogs ) {
     topLayout->addWidget( mRuleBox, 2, 0 );
   } else {
@@ -894,6 +999,9 @@ KOEditorRecurrence::KOEditorRecurrence( 
     mRecurrenceRange = mRecurrenceRangeDialog;
     mRecurrenceRangeButton = new QPushButton( i18n("Recurrence Range..."),
                                               this );
+    QWhatsThis::add( mRecurrenceRangeButton,
+		     i18n("Options concerning the time range during which "
+			  "this event or to-do should recur.") );
     topLayout->addWidget( mRecurrenceRangeButton, 3, 0 );
     connect( mRecurrenceRangeButton, SIGNAL( clicked() ),
              SLOT( showRecurrenceRangeDialog() ) );
@@ -908,6 +1016,9 @@ KOEditorRecurrence::KOEditorRecurrence( 
 
   } else {
     mRecurrenceRangeWidget = new RecurrenceRangeWidget( this );
+    QWhatsThis::add( mRecurrenceRangeWidget,
+		     i18n("Options concerning the time range during which "
+			  "this event or to-do should recur.") );
     mRecurrenceRangeDialog = 0;
     mRecurrenceRange = mRecurrenceRangeWidget;
     mRecurrenceRangeButton = 0;
Index: korganizer/koeventeditor.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koeventeditor.cpp,v
retrieving revision 1.87
diff -u -3 -p -r1.87 koeventeditor.cpp
--- korganizer/koeventeditor.cpp	14 Oct 2004 21:25:39 -0000	1.87
+++ korganizer/koeventeditor.cpp	17 Oct 2004 00:43:27 -0000
@@ -27,6 +27,7 @@
 #include <qpixmap.h>
 #include <qlayout.h>
 #include <qwidgetstack.h>
+#include <qwhatsthis.h>
 
 #include <kabc/addressee.h>
 #include <kiconloader.h>
@@ -112,6 +113,9 @@ void KOEventEditor::setupGeneral()
 
   if( KOPrefs::instance()->mCompactDialogs ) {
     QFrame *topFrame = addPage(i18n("General"));
+    QWhatsThis::add( topFrame,
+		      i18n("The General tab allows you to set the most common "
+			   "options for the event.") );
 
     QBoxLayout *topLayout = new QVBoxLayout(topFrame);
     topLayout->setSpacing(spacingHint());
@@ -135,6 +139,9 @@ void KOEventEditor::setupGeneral()
     mGeneral->initDescription(topFrame2,topLayout2);
   } else {
     QFrame *topFrame = addPage(i18n("&General"));
+    QWhatsThis::add( topFrame,
+		     i18n("The General tab allows you to set the most common "
+			  "options for the event.") );
 
     QBoxLayout *topLayout = new QVBoxLayout(topFrame);
     topLayout->setSpacing(spacingHint());
@@ -163,6 +170,10 @@ void KOEventEditor::modified (int /*modi
 void KOEventEditor::setupRecurrence()
 {
   QFrame *topFrame = addPage( i18n("Rec&urrence") );
+  
+  QWhatsThis::add( topFrame,
+		    i18n("The Recurrence tab allows you to set options on "
+			 "how often this event recurs.") );
 
   QBoxLayout *topLayout = new QVBoxLayout( topFrame );
 
@@ -173,6 +184,9 @@ void KOEventEditor::setupRecurrence()
 void KOEventEditor::setupFreeBusy()
 {
   QFrame *freeBusyPage = addPage( i18n("&Free/Busy") );
+  QWhatsThis::add( freeBusyPage,
+		    i18n("The Free/Busy tab allows you to see whether "
+			 "other attendees are free or busy during your event.") );
 
   QBoxLayout *topLayout = new QVBoxLayout( freeBusyPage );
 
Index: korganizer/koincidenceeditor.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/koincidenceeditor.cpp,v
retrieving revision 1.48
diff -u -3 -p -r1.48 koincidenceeditor.cpp
--- korganizer/koincidenceeditor.cpp	15 Oct 2004 18:40:31 -0000	1.48
+++ korganizer/koincidenceeditor.cpp	17 Oct 2004 00:43:27 -0000
@@ -28,6 +28,7 @@
 #include <qlayout.h>
 #include <qwidgetstack.h>
 #include <qdatetime.h>
+#include <qwhatsthis.h>
 
 #include <kdebug.h>
 #include <klocale.h>
@@ -59,7 +60,12 @@ KOIncidenceEditor::KOIncidenceEditor( co
   mCalendar = calendar;
 
   setButtonText( Default, i18n("Load &Template...") );
-
+  setButtonWhatsThis( Default, 
+		   i18n("Allows you to load a pre-saved "
+		  	"template for the event. You "
+			"can save this event or to-do as a "
+			"template by clicking 'Save as Template...'.") );
+  
   QString saveTemplateText;
   if ( KOPrefs::instance()->mCompactDialogs ) {
     showButton( User1, false );
@@ -68,6 +74,9 @@ KOIncidenceEditor::KOIncidenceEditor( co
     saveTemplateText = i18n("&Save as Template...");
   }
   setButtonText( User1, saveTemplateText );
+  setButtonWhatsThis( User1,
+		   i18n("Allows you to save the current settings as a template "
+			"which can later be loaded for other events.") );
 
   mCategoryDialog = new KPIM::CategorySelectDialog( KOPrefs::instance(), this );
   KOGlobals::fitDialogToScreen( mCategoryDialog );
@@ -88,6 +97,9 @@ KOIncidenceEditor::~KOIncidenceEditor()
 void KOIncidenceEditor::setupAttendeesTab()
 {
   QFrame *topFrame = addPage( i18n("Atte&ndees") );
+  QWhatsThis::add( topFrame,
+		    i18n("The Attendees tab allows you to Add or Remove "
+			 "Attendees to/from this event or to-do.") );
 
   QBoxLayout *topLayout = new QVBoxLayout( topFrame );
 
@@ -98,6 +110,10 @@ void KOIncidenceEditor::setupAttendeesTa
 void KOIncidenceEditor::setupAttachmentsTab()
 {
   QFrame *topFrame = addPage( i18n("Attach&ments") );
+  QWhatsThis::add( topFrame,
+		    i18n("The Attachments tab allows you to add or remove "
+		    	 "files, emails, contacts, and other items "
+			 "associated with this event or to-do.") );
 
   QBoxLayout *topLayout = new QVBoxLayout( topFrame );
 


_______________________________________________
kde-pim mailing list
kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic