Diffstat (limited to 'libopie/orecurrancewidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/orecurrancewidget.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libopie/orecurrancewidget.cpp b/libopie/orecurrancewidget.cpp index 53cee65..0484ab9 100644 --- a/libopie/orecurrancewidget.cpp +++ b/libopie/orecurrancewidget.cpp @@ -45,24 +45,39 @@ ORecurranceWidget::ORecurranceWidget( bool startOnMonday, } ORecurranceWidget::ORecurranceWidget( bool startOnMonday, const ORecur& rp, const QDate& startDate, QWidget* parent, const char* name, bool modal, WFlags fl) : ORecurranceBase( parent, name, modal, fl ), start( startDate ), end( rp.endDate() ), startWeekOnMonday( startOnMonday ) { // do some stuff with the repeat pattern init(); + setRecurrence( rp ); +} + +ORecurranceWidget::~ORecurranceWidget() { +} +void ORecurranceWidget::setStartDate( const QDate& date ) { + qWarning("ORecurranceWidget::setStartDate"); + setRecurrence( recurrence(), date ); +} +void ORecurranceWidget::setRecurrence( const ORecur& rp ) { + setRecurrence( rp, start ); +} +void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) { + start = date; + end = rp.endDate(); switch ( rp.type() ) { default: case ORecur::NoRepeat: currInterval = None; setupNone(); break; case ORecur::Daily: currInterval = Day; setupDaily(); break; case ORecur::Weekly: currInterval = Week; @@ -99,28 +114,25 @@ ORecurranceWidget::ORecurranceWidget( bool startOnMonday, currInterval = Year; setupYearly(); break; } fraType->setButton( currInterval ); spinFreq->setValue( rp.frequency() ); if ( !rp.hasEndDate() ) { cmdEnd->setText( tr("No End Date") ); chkNoEnd->setChecked( TRUE ); } else cmdEnd->setText( TimeString::shortDate( end ) ); } -ORecurranceWidget::~ORecurranceWidget() { - -} -ORecur ORecurranceWidget::recurrance()const { +ORecur ORecurranceWidget::recurrence()const { QListIterator<QToolButton> it( listRTypeButtons ); QListIterator<QToolButton> itExtra( listExtra ); ORecur rpTmp; int i; for ( i = 0; *it; ++it, i++ ) { if ( (*it)->isOn() ) { switch ( i ) { case None: rpTmp.setType( ORecur::NoRepeat ); break; case Day: rpTmp.setType( ORecur::Daily ); |