summaryrefslogtreecommitdiff
path: root/libopie/orecurrancewidget.cpp
Unidiff
Diffstat (limited to 'libopie/orecurrancewidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/orecurrancewidget.cpp46
1 files changed, 45 insertions, 1 deletions
diff --git a/libopie/orecurrancewidget.cpp b/libopie/orecurrancewidget.cpp
index db86184..471249d 100644
--- a/libopie/orecurrancewidget.cpp
+++ b/libopie/orecurrancewidget.cpp
@@ -17,64 +17,98 @@ const QString dayLabel[] = { QObject::tr("Monday"),
17 QObject::tr("Tuesday"), 17 QObject::tr("Tuesday"),
18 QObject::tr("Wednesday"), 18 QObject::tr("Wednesday"),
19 QObject::tr("Thursday"), 19 QObject::tr("Thursday"),
20 QObject::tr("Friday"), 20 QObject::tr("Friday"),
21 QObject::tr("Saturday"), 21 QObject::tr("Saturday"),
22 QObject::tr("Sunday") }; 22 QObject::tr("Sunday") };
23 23
24 24
25 static QString numberPlacing( int x );// return the proper word format for 25 static QString numberPlacing( int x );// return the proper word format for
26 // x (1st, 2nd, etc) 26 // x (1st, 2nd, etc)
27static int week( const QDate &dt ); // what week in the month is dt? 27static int week( const QDate &dt ); // what week in the month is dt?
28 28
29 29/**
30 * Constructs the Widget
31 * @param startOnMonday Does the week start on monday
32 * @param newStart The start date of the recurrence
33 * @param parent The parent widget
34 * @param name the name of object
35 * @param modal if the dialog should be modal
36 * @param fl Additional window flags
37 */
30ORecurranceWidget::ORecurranceWidget( bool startOnMonday, 38ORecurranceWidget::ORecurranceWidget( bool startOnMonday,
31 const QDate& newStart, 39 const QDate& newStart,
32 QWidget* parent, 40 QWidget* parent,
33 const char* name, 41 const char* name,
34 bool modal, 42 bool modal,
35 WFlags fl ) 43 WFlags fl )
36 : ORecurranceBase( parent, name, modal, fl ), 44 : ORecurranceBase( parent, name, modal, fl ),
37 start( newStart ), 45 start( newStart ),
38 currInterval( None ), 46 currInterval( None ),
39 startWeekOnMonday( startOnMonday ) 47 startWeekOnMonday( startOnMonday )
40{ 48{
41 init(); 49 init();
42 fraType->setButton( currInterval ); 50 fraType->setButton( currInterval );
43 chkNoEnd->setChecked( TRUE ); 51 chkNoEnd->setChecked( TRUE );
44 setupNone(); 52 setupNone();
45} 53}
54
55/**
56 * Different constructor
57 * @param startOnMonday Does the week start on monday?
58 * @param rp Already set ORecur object
59 * @param startDate The start date
60 * @param parent The parent widget
61 * @param name The name of the object
62 * @param modal
63 * @param fl The flags for window
64 */
46ORecurranceWidget::ORecurranceWidget( bool startOnMonday, 65ORecurranceWidget::ORecurranceWidget( bool startOnMonday,
47 const ORecur& rp, const QDate& startDate, 66 const ORecur& rp, const QDate& startDate,
48 QWidget* parent, const char* name, 67 QWidget* parent, const char* name,
49 bool modal, WFlags fl) 68 bool modal, WFlags fl)
50 : ORecurranceBase( parent, name, modal, fl ), 69 : ORecurranceBase( parent, name, modal, fl ),
51 start( startDate ), 70 start( startDate ),
52 end( rp.endDate() ), 71 end( rp.endDate() ),
53 startWeekOnMonday( startOnMonday ) 72 startWeekOnMonday( startOnMonday )
54{ 73{
55 // do some stuff with the repeat pattern 74 // do some stuff with the repeat pattern
56 init(); 75 init();
57 setRecurrence( rp ); 76 setRecurrence( rp );
58} 77}
59 78
60ORecurranceWidget::~ORecurranceWidget() { 79ORecurranceWidget::~ORecurranceWidget() {
61} 80}
81
82/**
83 * set the start date
84 * @param date the new start date
85 */
62void ORecurranceWidget::setStartDate( const QDate& date ) { 86void ORecurranceWidget::setStartDate( const QDate& date ) {
63 qWarning("ORecurranceWidget::setStartDate"); 87 qWarning("ORecurranceWidget::setStartDate");
64 setRecurrence( recurrence(), date ); 88 setRecurrence( recurrence(), date );
65} 89}
90/**
91 * set the recurrence
92 * @param rp The ORecur object with the new recurrence rules
93 */
66void ORecurranceWidget::setRecurrence( const ORecur& rp ) { 94void ORecurranceWidget::setRecurrence( const ORecur& rp ) {
67 setRecurrence( rp, start ); 95 setRecurrence( rp, start );
68} 96}
97
98/**
99 * overloaded method taking ORecur and a new start date
100 * @param rp Recurrence rule
101 * @param date The new start date
102 */
69void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) { 103void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) {
70 start = date; 104 start = date;
71 end = rp.endDate(); 105 end = rp.endDate();
72 switch ( rp.type() ) { 106 switch ( rp.type() ) {
73 default: 107 default:
74 case ORecur::NoRepeat: 108 case ORecur::NoRepeat:
75 currInterval = None; 109 currInterval = None;
76 setupNone(); 110 setupNone();
77 break; 111 break;
78 case ORecur::Daily: 112 case ORecur::Daily:
79 currInterval = Day; 113 currInterval = Day;
80 setupDaily(); 114 setupDaily();
@@ -114,24 +148,29 @@ void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) {
114 currInterval = Year; 148 currInterval = Year;
115 setupYearly(); 149 setupYearly();
116 break; 150 break;
117 } 151 }
118 fraType->setButton( currInterval ); 152 fraType->setButton( currInterval );
119 spinFreq->setValue( rp.frequency() ); 153 spinFreq->setValue( rp.frequency() );
120 if ( !rp.hasEndDate() ) { 154 if ( !rp.hasEndDate() ) {
121 cmdEnd->setText( tr("No End Date") ); 155 cmdEnd->setText( tr("No End Date") );
122 chkNoEnd->setChecked( TRUE ); 156 chkNoEnd->setChecked( TRUE );
123 } else 157 } else
124 cmdEnd->setText( TimeString::shortDate( end ) ); 158 cmdEnd->setText( TimeString::shortDate( end ) );
125} 159}
160
161/**
162 * the user selected recurrence rule.
163 * @return The recurrence rule.
164 */
126ORecur ORecurranceWidget::recurrence()const { 165ORecur ORecurranceWidget::recurrence()const {
127 QListIterator<QToolButton> it( listRTypeButtons ); 166 QListIterator<QToolButton> it( listRTypeButtons );
128 QListIterator<QToolButton> itExtra( listExtra ); 167 QListIterator<QToolButton> itExtra( listExtra );
129 ORecur rpTmp; 168 ORecur rpTmp;
130 int i; 169 int i;
131 for ( i = 0; *it; ++it, i++ ) { 170 for ( i = 0; *it; ++it, i++ ) {
132 if ( (*it)->isOn() ) { 171 if ( (*it)->isOn() ) {
133 switch ( i ) { 172 switch ( i ) {
134 case None: 173 case None:
135 rpTmp.setType( ORecur::NoRepeat ); 174 rpTmp.setType( ORecur::NoRepeat );
136 break; 175 break;
137 case Day: 176 case Day:
@@ -171,24 +210,29 @@ ORecur ORecurranceWidget::recurrence()const {
171 break; // no need to keep looking! 210 break; // no need to keep looking!
172 } 211 }
173 } 212 }
174 rpTmp.setFrequency(spinFreq->value() ); 213 rpTmp.setFrequency(spinFreq->value() );
175 rpTmp.setHasEndDate( !chkNoEnd->isChecked() ); 214 rpTmp.setHasEndDate( !chkNoEnd->isChecked() );
176 if ( rpTmp.hasEndDate() ) { 215 if ( rpTmp.hasEndDate() ) {
177 rpTmp.setEndDate( end ); 216 rpTmp.setEndDate( end );
178 } 217 }
179 // timestamp it... 218 // timestamp it...
180// rpTmp.setCreateTime( ); current DateTime is already set -zecke 219// rpTmp.setCreateTime( ); current DateTime is already set -zecke
181 return rpTmp; 220 return rpTmp;
182} 221}
222
223/**
224 * Return the end date of the recurrence. This is only
225 * valid if the recurrence rule does contain an enddate
226 */
183QDate ORecurranceWidget::endDate()const { 227QDate ORecurranceWidget::endDate()const {
184 return end; 228 return end;
185} 229}
186void ORecurranceWidget::slotSetRType(int rtype) { 230void ORecurranceWidget::slotSetRType(int rtype) {
187 // now call the right function based on the type... 231 // now call the right function based on the type...
188 currInterval = static_cast<repeatButtons>(rtype); 232 currInterval = static_cast<repeatButtons>(rtype);
189 switch ( currInterval ) { 233 switch ( currInterval ) {
190 case None: 234 case None:
191 setupNone(); 235 setupNone();
192 break; 236 break;
193 case Day: 237 case Day:
194 setupDaily(); 238 setupDaily();