summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/libopie.pro6
-rw-r--r--libopie/orecurrancewidget.cpp20
-rw-r--r--libopie/orecurrancewidget.h6
3 files changed, 27 insertions, 5 deletions
diff --git a/libopie/libopie.pro b/libopie/libopie.pro
index b7537cc..2e76cb1 100644
--- a/libopie/libopie.pro
+++ b/libopie/libopie.pro
@@ -1,93 +1,99 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG += qte warn_on release 2CONFIG += qte warn_on release
3HEADERS = ofontmenu.h \ 3HEADERS = ofontmenu.h \
4 ocolorbutton.h \ 4 ocolorbutton.h \
5 ofiledialog.h ofileselector.h tododb.h \ 5 ofiledialog.h ofileselector.h tododb.h \
6 ocheckitem.h todoevent.h todoresource.h \ 6 ocheckitem.h todoevent.h todoresource.h \
7 todovcalresource.h xmltree.h \ 7 todovcalresource.h xmltree.h \
8 colordialog.h colorpopupmenu.h \ 8 colordialog.h colorpopupmenu.h \
9 oclickablelabel.h oprocctrl.h \ 9 oclickablelabel.h oprocctrl.h \
10 oprocess.h odevice.h \ 10 oprocess.h odevice.h \
11 otimepicker.h otabwidget.h \ 11 otimepicker.h otabwidget.h \
12 otabbar.h otabinfo.h \ 12 otabbar.h otabinfo.h \
13 ofontselector.h \ 13 ofontselector.h \
14 pim/opimrecord.h \ 14 pim/opimrecord.h \
15 pim/otodo.h \ 15 pim/otodo.h \
16 pim/orecordlist.h \ 16 pim/orecordlist.h \
17 pim/opimaccesstemplate.h \ 17 pim/opimaccesstemplate.h \
18 pim/opimaccessbackend.h \ 18 pim/opimaccessbackend.h \
19 pim/otodoaccess.h \ 19 pim/otodoaccess.h \
20 pim/otodoaccessbackend.h \ 20 pim/otodoaccessbackend.h \
21 pim/ocontact.h \ 21 pim/ocontact.h \
22 pim/ocontactaccess.h \ 22 pim/ocontactaccess.h \
23 pim/ocontactaccessbackend.h \ 23 pim/ocontactaccessbackend.h \
24 pim/ocontactaccessbackend_xml.h \ 24 pim/ocontactaccessbackend_xml.h \
25 pim/ocontactaccessbackend_vcard.h \ 25 pim/ocontactaccessbackend_vcard.h \
26 pim/obackendfactory.h \ 26 pim/obackendfactory.h \
27 pim/opimcache.h \ 27 pim/opimcache.h \
28 pim/otodoaccessvcal.h \ 28 pim/otodoaccessvcal.h \
29 pim/orecur.h \ 29 pim/orecur.h \
30 pim/opimstate.h \ 30 pim/opimstate.h \
31 pim/opimxrefpartner.h \ 31 pim/opimxrefpartner.h \
32 pim/opimxref.h \ 32 pim/opimxref.h \
33 pim/opimxrefmanager.h \ 33 pim/opimxrefmanager.h \
34 pim/opimmaintainer.h \ 34 pim/opimmaintainer.h \
35 pim/opimnotify.h \
36 pim/opimnotifymanager.h \
37 pim/opimmainwindow.h \
35 orecurrancewidget.h \ 38 orecurrancewidget.h \
36 oticker.h 39 oticker.h
37# pim/otodoaccesssql.h \ 40# pim/otodoaccesssql.h \
38 41
39SOURCES = ofontmenu.cc \ 42SOURCES = ofontmenu.cc \
40 ocolorbutton.cpp \ 43 ocolorbutton.cpp \
41 sharp_compat.cpp \ 44 sharp_compat.cpp \
42 xmltree.cc \ 45 xmltree.cc \
43 ofiledialog.cc ofileselector.cc \ 46 ofiledialog.cc ofileselector.cc \
44 ocheckitem.cpp tododb.cpp todoevent.cpp \ 47 ocheckitem.cpp tododb.cpp todoevent.cpp \
45 todovcalresource.cpp colordialog.cpp \ 48 todovcalresource.cpp colordialog.cpp \
46 colorpopupmenu.cpp oclickablelabel.cpp \ 49 colorpopupmenu.cpp oclickablelabel.cpp \
47 oprocctrl.cpp oprocess.cpp \ 50 oprocctrl.cpp oprocess.cpp \
48 odevice.cpp otimepicker.cpp \ 51 odevice.cpp otimepicker.cpp \
49 otabwidget.cpp otabbar.cpp \ 52 otabwidget.cpp otabbar.cpp \
50 ofontselector.cpp \ 53 ofontselector.cpp \
51 pim/otodo.cpp \ 54 pim/otodo.cpp \
52 pim/opimrecord.cpp \ 55 pim/opimrecord.cpp \
53 pim/otodoaccess.cpp \ 56 pim/otodoaccess.cpp \
54 pim/otodoaccessbackend.cpp \ 57 pim/otodoaccessbackend.cpp \
55 pim/otodoaccessxml.cpp \ 58 pim/otodoaccessxml.cpp \
56 pim/ocontact.cpp \ 59 pim/ocontact.cpp \
57 pim/ocontactaccess.cpp \ 60 pim/ocontactaccess.cpp \
58 pim/ocontactaccessbackend_vcard.cpp \ 61 pim/ocontactaccessbackend_vcard.cpp \
59 pim/otodoaccessvcal.cpp \ 62 pim/otodoaccessvcal.cpp \
60 pim/orecur.cpp \ 63 pim/orecur.cpp \
61 pim/opimstate.cpp \ 64 pim/opimstate.cpp \
62 pim/opimxrefpartner.cpp \ 65 pim/opimxrefpartner.cpp \
63 pim/opimxref.cpp \ 66 pim/opimxref.cpp \
64 pim/opimxrefmanager.cpp \ 67 pim/opimxrefmanager.cpp \
65 pim/opimmaintainer.cpp \ 68 pim/opimmaintainer.cpp \
69 pim/opimnotify.cpp \
70 pim/opimnotifymanager.cpp \
71 pim/opimmainwindow.cpp \
66 orecurrancewidget.cpp \ 72 orecurrancewidget.cpp \
67 oticker.cpp 73 oticker.cpp
68# pim/otodoaccesssql.cpp \ 74# pim/otodoaccesssql.cpp \
69 75
70TARGET = opie 76TARGET = opie
71INCLUDEPATH += $(OPIEDIR)/include 77INCLUDEPATH += $(OPIEDIR)/include
72DESTDIR = $(QTDIR)/lib$(PROJMAK) 78DESTDIR = $(QTDIR)/lib$(PROJMAK)
73#VERSION = 1.0.0 79#VERSION = 1.0.0
74 80
75# LIBS += -lopiesql 81# LIBS += -lopiesql
76 82
77INTERFACES = otimepickerbase.ui orecurrancebase.ui 83INTERFACES = otimepickerbase.ui orecurrancebase.ui
78 84
79TRANSLATIONS = ../i18n/de/libopie.ts \ 85TRANSLATIONS = ../i18n/de/libopie.ts \
80 ../i18n/en/libopie.ts \ 86 ../i18n/en/libopie.ts \
81 ../i18n/es/libopie.ts \ 87 ../i18n/es/libopie.ts \
82 ../i18n/fr/libopie.ts \ 88 ../i18n/fr/libopie.ts \
83 ../i18n/hu/libopie.ts \ 89 ../i18n/hu/libopie.ts \
84 ../i18n/ja/libopie.ts \ 90 ../i18n/ja/libopie.ts \
85 ../i18n/ko/libopie.ts \ 91 ../i18n/ko/libopie.ts \
86 ../i18n/no/libopie.ts \ 92 ../i18n/no/libopie.ts \
87 ../i18n/pl/libopie.ts \ 93 ../i18n/pl/libopie.ts \
88 ../i18n/pt/libopie.ts \ 94 ../i18n/pt/libopie.ts \
89 ../i18n/pt_BR/libopie.ts \ 95 ../i18n/pt_BR/libopie.ts \
90 ../i18n/sl/libopie.ts \ 96 ../i18n/sl/libopie.ts \
91 ../i18n/zh_CN/libopie.ts \ 97 ../i18n/zh_CN/libopie.ts \
92 ../i18n/zh_TW/libopie.ts \ 98 ../i18n/zh_TW/libopie.ts \
93 ../i18n/da/libopie.ts 99 ../i18n/da/libopie.ts
diff --git a/libopie/orecurrancewidget.cpp b/libopie/orecurrancewidget.cpp
index 53cee65..0484ab9 100644
--- a/libopie/orecurrancewidget.cpp
+++ b/libopie/orecurrancewidget.cpp
@@ -9,154 +9,166 @@
9 9
10// Global Templates for use in setting up the repeat label... 10// Global Templates for use in setting up the repeat label...
11const QString strDayTemplate = QObject::tr("Every"); 11const QString strDayTemplate = QObject::tr("Every");
12const QString strYearTemplate = QObject::tr("%1 %2 every "); 12const QString strYearTemplate = QObject::tr("%1 %2 every ");
13const QString strMonthDateTemplate = QObject::tr("The %1 every "); 13const QString strMonthDateTemplate = QObject::tr("The %1 every ");
14const QString strMonthDayTemplate = QObject::tr("The %1 %1 of every"); 14const QString strMonthDayTemplate = QObject::tr("The %1 %1 of every");
15const QString strWeekTemplate = QObject::tr("Every "); 15const QString strWeekTemplate = QObject::tr("Every ");
16const QString dayLabel[] = { QObject::tr("Monday"), 16const 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
30ORecurranceWidget::ORecurranceWidget( bool startOnMonday, 30ORecurranceWidget::ORecurranceWidget( bool startOnMonday,
31 const QDate& newStart, 31 const QDate& newStart,
32 QWidget* parent, 32 QWidget* parent,
33 const char* name, 33 const char* name,
34 bool modal, 34 bool modal,
35 WFlags fl ) 35 WFlags fl )
36 : ORecurranceBase( parent, name, modal, fl ), 36 : ORecurranceBase( parent, name, modal, fl ),
37 start( newStart ), 37 start( newStart ),
38 currInterval( None ), 38 currInterval( None ),
39 startWeekOnMonday( startOnMonday ) 39 startWeekOnMonday( startOnMonday )
40{ 40{
41 init(); 41 init();
42 fraType->setButton( currInterval ); 42 fraType->setButton( currInterval );
43 chkNoEnd->setChecked( TRUE ); 43 chkNoEnd->setChecked( TRUE );
44 setupNone(); 44 setupNone();
45} 45}
46ORecurranceWidget::ORecurranceWidget( bool startOnMonday, 46ORecurranceWidget::ORecurranceWidget( bool startOnMonday,
47 const ORecur& rp, const QDate& startDate, 47 const ORecur& rp, const QDate& startDate,
48 QWidget* parent, const char* name, 48 QWidget* parent, const char* name,
49 bool modal, WFlags fl) 49 bool modal, WFlags fl)
50 : ORecurranceBase( parent, name, modal, fl ), 50 : ORecurranceBase( parent, name, modal, fl ),
51 start( startDate ), 51 start( startDate ),
52 end( rp.endDate() ), 52 end( rp.endDate() ),
53 startWeekOnMonday( startOnMonday ) 53 startWeekOnMonday( startOnMonday )
54{ 54{
55 // do some stuff with the repeat pattern 55 // do some stuff with the repeat pattern
56 init(); 56 init();
57 setRecurrence( rp );
58}
59
60ORecurranceWidget::~ORecurranceWidget() {
61}
62void ORecurranceWidget::setStartDate( const QDate& date ) {
63 qWarning("ORecurranceWidget::setStartDate");
64 setRecurrence( recurrence(), date );
65}
66void ORecurranceWidget::setRecurrence( const ORecur& rp ) {
67 setRecurrence( rp, start );
68}
69void ORecurranceWidget::setRecurrence( const ORecur& rp, const QDate& date ) {
70 start = date;
71 end = rp.endDate();
57 switch ( rp.type() ) { 72 switch ( rp.type() ) {
58 default: 73 default:
59 case ORecur::NoRepeat: 74 case ORecur::NoRepeat:
60 currInterval = None; 75 currInterval = None;
61 setupNone(); 76 setupNone();
62 break; 77 break;
63 case ORecur::Daily: 78 case ORecur::Daily:
64 currInterval = Day; 79 currInterval = Day;
65 setupDaily(); 80 setupDaily();
66 break; 81 break;
67 case ORecur::Weekly: 82 case ORecur::Weekly:
68 currInterval = Week; 83 currInterval = Week;
69 setupWeekly(); 84 setupWeekly();
70 int day, buttons; 85 int day, buttons;
71 for ( day = 0x01, buttons = 0; buttons < 7; 86 for ( day = 0x01, buttons = 0; buttons < 7;
72 day = day << 1, buttons++ ) { 87 day = day << 1, buttons++ ) {
73 if ( rp.days() & day ) { 88 if ( rp.days() & day ) {
74 if ( startWeekOnMonday ) 89 if ( startWeekOnMonday )
75 fraExtra->setButton( buttons ); 90 fraExtra->setButton( buttons );
76 else { 91 else {
77 if ( buttons == 7 ) 92 if ( buttons == 7 )
78 fraExtra->setButton( 0 ); 93 fraExtra->setButton( 0 );
79 else 94 else
80 fraExtra->setButton( buttons + 1 ); 95 fraExtra->setButton( buttons + 1 );
81 } 96 }
82 } 97 }
83 } 98 }
84 slotWeekLabel(); 99 slotWeekLabel();
85 break; 100 break;
86 case ORecur::MonthlyDay: 101 case ORecur::MonthlyDay:
87 currInterval = Month; 102 currInterval = Month;
88 setupMonthly(); 103 setupMonthly();
89 fraExtra->setButton( 0 ); 104 fraExtra->setButton( 0 );
90 slotMonthLabel( 0 ); 105 slotMonthLabel( 0 );
91 break; 106 break;
92 case ORecur::MonthlyDate: 107 case ORecur::MonthlyDate:
93 currInterval = Month; 108 currInterval = Month;
94 setupMonthly(); 109 setupMonthly();
95 fraExtra->setButton( 1 ); 110 fraExtra->setButton( 1 );
96 slotMonthLabel( 1 ); 111 slotMonthLabel( 1 );
97 break; 112 break;
98 case ORecur::Yearly: 113 case ORecur::Yearly:
99 currInterval = Year; 114 currInterval = Year;
100 setupYearly(); 115 setupYearly();
101 break; 116 break;
102 } 117 }
103 fraType->setButton( currInterval ); 118 fraType->setButton( currInterval );
104 spinFreq->setValue( rp.frequency() ); 119 spinFreq->setValue( rp.frequency() );
105 if ( !rp.hasEndDate() ) { 120 if ( !rp.hasEndDate() ) {
106 cmdEnd->setText( tr("No End Date") ); 121 cmdEnd->setText( tr("No End Date") );
107 chkNoEnd->setChecked( TRUE ); 122 chkNoEnd->setChecked( TRUE );
108 } else 123 } else
109 cmdEnd->setText( TimeString::shortDate( end ) ); 124 cmdEnd->setText( TimeString::shortDate( end ) );
110} 125}
111ORecurranceWidget::~ORecurranceWidget() { 126ORecur ORecurranceWidget::recurrence()const {
112
113}
114ORecur ORecurranceWidget::recurrance()const {
115 QListIterator<QToolButton> it( listRTypeButtons ); 127 QListIterator<QToolButton> it( listRTypeButtons );
116 QListIterator<QToolButton> itExtra( listExtra ); 128 QListIterator<QToolButton> itExtra( listExtra );
117 ORecur rpTmp; 129 ORecur rpTmp;
118 int i; 130 int i;
119 for ( i = 0; *it; ++it, i++ ) { 131 for ( i = 0; *it; ++it, i++ ) {
120 if ( (*it)->isOn() ) { 132 if ( (*it)->isOn() ) {
121 switch ( i ) { 133 switch ( i ) {
122 case None: 134 case None:
123 rpTmp.setType( ORecur::NoRepeat ); 135 rpTmp.setType( ORecur::NoRepeat );
124 break; 136 break;
125 case Day: 137 case Day:
126 rpTmp.setType( ORecur::Daily ); 138 rpTmp.setType( ORecur::Daily );
127 break; 139 break;
128 case Week:{ 140 case Week:{
129 rpTmp.setType( ORecur::Weekly ); 141 rpTmp.setType( ORecur::Weekly );
130 int day; 142 int day;
131 int day2 = 0; 143 int day2 = 0;
132 for ( day = 1; *itExtra; ++itExtra, day = day << 1 ) { 144 for ( day = 1; *itExtra; ++itExtra, day = day << 1 ) {
133 if ( (*itExtra)->isOn() ) { 145 if ( (*itExtra)->isOn() ) {
134 if ( startWeekOnMonday ) 146 if ( startWeekOnMonday )
135 day2 |= day; 147 day2 |= day;
136 else { 148 else {
137 if ( day == 1 ) 149 if ( day == 1 )
138 day2 |= Event::SUN; 150 day2 |= Event::SUN;
139 else 151 else
140 day2 |= day >> 1; 152 day2 |= day >> 1;
141 } 153 }
142 } 154 }
143 } 155 }
144 rpTmp.setDays( day2 ); 156 rpTmp.setDays( day2 );
145 } 157 }
146 break; 158 break;
147 case Month: 159 case Month:
148 if ( cmdExtra1->isOn() ) 160 if ( cmdExtra1->isOn() )
149 rpTmp.setType( ORecur::MonthlyDay ); 161 rpTmp.setType( ORecur::MonthlyDay );
150 else if ( cmdExtra2->isOn() ) 162 else if ( cmdExtra2->isOn() )
151 rpTmp.setType( ORecur::MonthlyDate ); 163 rpTmp.setType( ORecur::MonthlyDate );
152 // figure out the montly day... 164 // figure out the montly day...
153 rpTmp.setPosition( week( start ) ); 165 rpTmp.setPosition( week( start ) );
154 break; 166 break;
155 case Year: 167 case Year:
156 rpTmp.setType( ORecur::Yearly ); 168 rpTmp.setType( ORecur::Yearly );
157 break; 169 break;
158 } 170 }
159 break; // no need to keep looking! 171 break; // no need to keep looking!
160 } 172 }
161 } 173 }
162 rpTmp.setFrequency(spinFreq->value() ); 174 rpTmp.setFrequency(spinFreq->value() );
diff --git a/libopie/orecurrancewidget.h b/libopie/orecurrancewidget.h
index f2d7f87..4a8dd08 100644
--- a/libopie/orecurrancewidget.h
+++ b/libopie/orecurrancewidget.h
@@ -1,68 +1,72 @@
1/* 1/*
2 * GPL and based on the widget from TT 2 * GPL and based on the widget from TT
3 */ 3 */
4 4
5#ifndef OPIE_RECURRANCE_WIDGET_H 5#ifndef OPIE_RECURRANCE_WIDGET_H
6#define OPIE_RECURRANCE_WIDGET_H 6#define OPIE_RECURRANCE_WIDGET_H
7 7
8#include <qlist.h> 8#include <qlist.h>
9#include <qtoolbutton.h> 9#include <qtoolbutton.h>
10#include <qcheckbox.h> 10#include <qcheckbox.h>
11#include <qdatetime.h> 11#include <qdatetime.h>
12#include <qbuttongroup.h> 12#include <qbuttongroup.h>
13 13
14#include <qpe/datebookmonth.h> 14#include <qpe/datebookmonth.h>
15 15
16#include "orecurrancebase.h" 16#include "orecurrancebase.h"
17#include <opie/orecur.h> 17#include <opie/orecur.h>
18 18
19// FIXME spelling!!!! -zecke
19class ORecurranceWidget : public ORecurranceBase { 20class ORecurranceWidget : public ORecurranceBase {
20 Q_OBJECT 21 Q_OBJECT
21public: 22public:
22 ORecurranceWidget( bool startOnMonday, 23 ORecurranceWidget( bool startOnMonday,
23 const QDate& start, QWidget* parent = 0, 24 const QDate& start, QWidget* parent = 0,
24 const char* name = 0, bool modal = TRUE, 25 const char* name = 0, bool modal = TRUE,
25 WFlags fl = 0 ); 26 WFlags fl = 0 );
26 ORecurranceWidget( bool startOnMonday, 27 ORecurranceWidget( bool startOnMonday,
27 const ORecur& rp, const QDate& start, 28 const ORecur& rp, const QDate& start,
28 QWidget* parent = 0, const char* name =0, 29 QWidget* parent = 0, const char* name =0,
29 bool modal = TRUE, WFlags = 0 ); 30 bool modal = TRUE, WFlags = 0 );
30 ~ORecurranceWidget(); 31 ~ORecurranceWidget();
31 ORecur recurrance()const; 32 ORecur recurrence()const;
32 QDate endDate()const; 33 QDate endDate()const;
33 34
34public slots: 35public slots:
35 void slotSetRType( int ); 36 void slotSetRType( int );
36 void endDateChanged( int, int, int ); 37 void endDateChanged( int, int, int );
37 void slotNoEnd( bool unused ); 38 void slotNoEnd( bool unused );
39 void setStartDate( const QDate& );
40 void setRecurrence( const ORecur& recur, const QDate& start );
41 void setRecurrence( const ORecur& recur );
38 42
39private slots: 43private slots:
40 void setupRepeatLabel( const QString& ); 44 void setupRepeatLabel( const QString& );
41 void setupRepeatLabel( int ); 45 void setupRepeatLabel( int );
42 void slotWeekLabel(); 46 void slotWeekLabel();
43 void slotMonthLabel( int ); 47 void slotMonthLabel( int );
44 void slotChangeStartOfWeek( bool onMonday ); 48 void slotChangeStartOfWeek( bool onMonday );
45 49
46private: 50private:
47 void setupNone(); 51 void setupNone();
48 void setupDaily(); 52 void setupDaily();
49 void setupWeekly(); 53 void setupWeekly();
50 void setupMonthly(); 54 void setupMonthly();
51 void setupYearly(); 55 void setupYearly();
52 56
53 enum repeatButtons { None, Day, Week, Month, Year }; 57 enum repeatButtons { None, Day, Week, Month, Year };
54 void init(); 58 void init();
55 void hideExtras(); 59 void hideExtras();
56 void showRepeatStuff(); 60 void showRepeatStuff();
57 61
58 QList<QToolButton> listRTypeButtons; 62 QList<QToolButton> listRTypeButtons;
59 QList<QToolButton> listExtra; 63 QList<QToolButton> listExtra;
60 QDate start; // only used in one spot... 64 QDate start; // only used in one spot...
61 QDate end; 65 QDate end;
62 repeatButtons currInterval; 66 repeatButtons currInterval;
63 bool startWeekOnMonday : 1; 67 bool startWeekOnMonday : 1;
64 DateBookMonth *repeatPicker; 68 DateBookMonth *repeatPicker;
65 69
66}; 70};
67 71
68#endif 72#endif