00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include <tqlabel.h>
00033 #include <tqradiobutton.h>
00034 #include <tqbuttongroup.h>
00035 #include <tqvbox.h>
00036
00037 #include <tdelocale.h>
00038
00039 #include <libtdepim/kdateedit.h>
00040 #include <libtdepim/ktimeedit.h>
00041
00042 #include <libkcal/journal.h>
00043 #include <libkcal/alarm.h>
00044
00045 #include "knotealarmdlg.h"
00046
00047
00048 KNoteAlarmDlg::KNoteAlarmDlg( const TQString& caption, TQWidget *parent, const char *name )
00049 : KDialogBase( parent, name, true, caption, Ok|Cancel, Ok )
00050 {
00051 TQVBox *page = makeVBoxMainWidget();
00052 TQGroupBox *group = new TQGroupBox( 3, Qt::Vertical, i18n("Scheduled Alarm"), page );
00053 m_buttons = new TQButtonGroup( page );
00054 m_buttons->hide();
00055
00056 TQRadioButton *none = new TQRadioButton( i18n("&No alarm"), group );
00057 m_buttons->insert( none );
00058
00059 TQHBox *at = new TQHBox( group );
00060 TQRadioButton *label_at = new TQRadioButton( i18n("Alarm &at:"), at );
00061 m_buttons->insert( label_at );
00062 m_atDate = new KDateEdit( at );
00063 m_atTime = new KTimeEdit( at );
00064 at->setStretchFactor( m_atDate, 1 );
00065
00066 TQHBox *in = new TQHBox( group );
00067 TQRadioButton *label_in = new TQRadioButton( i18n("Alarm &in:"), in );
00068 m_buttons->insert( label_in );
00069 m_inTime = new KTimeEdit( in );
00070 TQLabel *in_min = new TQLabel( i18n("hours/minutes"), in );
00071
00072 label_in->setEnabled( false );
00073 in->hide();
00074
00075 connect( m_buttons, TQT_SIGNAL(clicked( int )), TQT_SLOT(slotButtonChanged( int )) );
00076 }
00077
00078
00079 void KNoteAlarmDlg::setIncidence( KCal::Journal *journal )
00080 {
00081 m_journal = journal;
00082
00083 if ( !m_journal->alarms().isEmpty() )
00084 {
00085 KCal::Alarm *alarm = m_journal->alarms().first();
00086 if ( alarm->hasTime() )
00087 {
00088 m_buttons->setButton( 1 );
00089 m_atDate->setDate( alarm->time().date() );
00090 m_atTime->setTime( alarm->time().time() );
00091 }
00092 else if ( alarm->hasStartOffset() )
00093 m_buttons->setButton( 2 );
00094 else
00095 m_buttons->setButton( 0 );
00096 }
00097 else
00098 m_buttons->setButton( 0 );
00099
00100 slotButtonChanged( m_buttons->selectedId() );
00101 }
00102
00103 void KNoteAlarmDlg::slotButtonChanged( int id )
00104 {
00105 switch ( id )
00106 {
00107 case 0:
00108 m_atDate->setEnabled( false );
00109 m_atTime->setEnabled( false );
00110 m_inTime->setEnabled( false );
00111 break;
00112 case 1:
00113 m_atDate->setEnabled( true );
00114 m_atTime->setEnabled( true );
00115 m_inTime->setEnabled( false );
00116 break;
00117 case 2:
00118 m_atDate->setEnabled( false );
00119 m_atTime->setEnabled( false );
00120 m_inTime->setEnabled( true );
00121 }
00122 }
00123
00124 void KNoteAlarmDlg::slotOk()
00125 {
00126 if ( m_buttons->selectedId() == 0 )
00127 {
00128 m_journal->clearAlarms();
00129 KDialogBase::slotOk();
00130 return;
00131 }
00132
00133 KCal::Alarm *alarm;
00134 if ( m_journal->alarms().isEmpty() )
00135 {
00136 alarm = m_journal->newAlarm();
00137 alarm->setEnabled( true );
00138 alarm->setType( KCal::Alarm::Display );
00139 }
00140 else
00141 alarm = m_journal->alarms().first();
00142
00143 if ( m_buttons->selectedId() == 1 )
00144 alarm->setTime( TQDateTime( m_atDate->date(), m_atTime->getTime() ) );
00145 else
00146 {
00147
00148 }
00149
00150 KDialogBase::slotOk();
00151 }
00152
00153 #include "knotealarmdlg.moc"