author | umopapisdn <umopapisdn> | 2003-05-05 21:44:39 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2003-05-05 21:44:39 (UTC) |
commit | 3b193b852133a82b5c1708b68a7e460c63629768 (patch) (unidiff) | |
tree | 8cd0ff3adc14f0b937d24ab99fca327fb3f16875 /core/pim/datebook/datebookweekheaderimpl.cpp | |
parent | 12a700f8903eedeba03d3aba7990b9d660410045 (diff) | |
download | opie-3b193b852133a82b5c1708b68a7e460c63629768.zip opie-3b193b852133a82b5c1708b68a7e460c63629768.tar.gz opie-3b193b852133a82b5c1708b68a7e460c63629768.tar.bz2 |
UI and code cleanup. Both UI and code is now more consistent. Also removed menus in favor of toolbuttons. (why were they even available as menus in the first place?)
Diffstat (limited to 'core/pim/datebook/datebookweekheaderimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/datebook/datebookweekheaderimpl.cpp | 137 |
1 files changed, 48 insertions, 89 deletions
diff --git a/core/pim/datebook/datebookweekheaderimpl.cpp b/core/pim/datebook/datebookweekheaderimpl.cpp index 5f555d5..fd792e2 100644 --- a/core/pim/datebook/datebookweekheaderimpl.cpp +++ b/core/pim/datebook/datebookweekheaderimpl.cpp | |||
@@ -29,26 +29,22 @@ | |||
29 | #include <qtoolbutton.h> | 29 | #include <qtoolbutton.h> |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Constructs a DateBookWeekHeader which is a child of 'parent', with the | 32 | * Constructs a DateBookWeekHeader which is a child of 'parent', with the |
33 | * name 'name' and widget flags set to 'f' | 33 | * name 'name' and widget flags set to 'f' |
34 | */ | 34 | */ |
35 | DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, | 35 | DateBookWeekHeader::DateBookWeekHeader( bool startOnMonday, QWidget* parent, const char* name, WFlags fl ) |
36 | const char* name, WFlags fl ) | ||
37 | : DateBookWeekHeaderBase( parent, name, fl ), | 36 | : DateBookWeekHeaderBase( parent, name, fl ), |
38 | bStartOnMonday( startOnMonday ) | 37 | bStartOnMonday( startOnMonday ) |
39 | { | 38 | { |
40 | setBackgroundMode( PaletteButton ); | 39 | setBackgroundMode( PaletteButton ); |
41 | labelDate->setBackgroundMode( PaletteButton ); | 40 | labelDate->setBackgroundMode( PaletteButton ); |
42 | 41 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); | |
43 | backmonth->setPixmap( Resource::loadPixmap("fastback") ); | 42 | backweek->setPixmap( Resource::loadPixmap("back") ); |
44 | backweek->setPixmap( Resource::loadPixmap("back") ); | 43 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); |
45 | forwardweek->setPixmap( Resource::loadPixmap("forward") ); | 44 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); |
46 | forwardmonth->setPixmap( Resource::loadPixmap("fastforward") ); | ||
47 | spinYear->hide(); | ||
48 | spinWeek->hide(); | ||
49 | } | 45 | } |
50 | 46 | ||
51 | /* | 47 | /* |
52 | * Destroys the object and frees any allocated resources | 48 | * Destroys the object and frees any allocated resources |
53 | */ | 49 | */ |
54 | DateBookWeekHeader::~DateBookWeekHeader() | 50 | DateBookWeekHeader::~DateBookWeekHeader() |
@@ -57,124 +53,87 @@ DateBookWeekHeader::~DateBookWeekHeader() | |||
57 | } | 53 | } |
58 | 54 | ||
59 | void DateBookWeekHeader::pickDate() | 55 | void DateBookWeekHeader::pickDate() |
60 | { | 56 | { |
61 | static QPopupMenu *m1 = 0; | 57 | static QPopupMenu *m1 = 0; |
62 | static DateBookMonth *picker = 0; | 58 | static DateBookMonth *picker = 0; |
63 | QDate currDate = dateFromWeek( week, year, bStartOnMonday ); | ||
64 | if ( !m1 ) { | 59 | if ( !m1 ) { |
65 | m1 = new QPopupMenu( this ); | 60 | m1 = new QPopupMenu( this ); |
66 | picker = new DateBookMonth( m1, 0, TRUE ); | 61 | picker = new DateBookMonth( m1, 0, TRUE ); |
67 | m1->insertItem( picker ); | 62 | m1->insertItem( picker ); |
68 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), | 63 | connect( picker, SIGNAL( dateClicked( int, int, int ) ), this, SLOT( setDate( int, int, int ) ) ); |
69 | this, SLOT( setDate( int, int, int ) ) ); | 64 | // connect( m1, SIGNAL( aboutToHide() ), this, SLOT( gotHide() ) ); |
70 | // connect( m1, SIGNAL( aboutToHide() ), | ||
71 | // this, SLOT( gotHide() ) ); | ||
72 | } | 65 | } |
73 | picker->setDate( currDate.year(), currDate.month(), currDate.day() ); | 66 | picker->setDate( date.year(), date.month(), date.day() ); |
74 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); | 67 | m1->popup(mapToGlobal(labelDate->pos()+QPoint(0,labelDate->height()))); |
75 | picker->setFocus(); | 68 | picker->setFocus(); |
76 | } | 69 | } |
77 | /* | 70 | |
78 | * public slot | ||
79 | */ | ||
80 | void DateBookWeekHeader::yearChanged( int y ) | ||
81 | { | ||
82 | setDate( y, week ); | ||
83 | } | ||
84 | void DateBookWeekHeader::nextMonth() | 71 | void DateBookWeekHeader::nextMonth() |
85 | { | 72 | { |
86 | QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week | 73 | setDate(date.addDays(28)); |
87 | calcWeek( mydate.addDays(28), week, year, bStartOnMonday ); // Add 4 weeks. | ||
88 | setDate( year, week ); // update view | ||
89 | } | 74 | } |
90 | void DateBookWeekHeader::prevMonth() | 75 | void DateBookWeekHeader::prevMonth() |
91 | { | 76 | { |
92 | QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week | 77 | setDate(date.addDays(-28)); |
93 | calcWeek( mydate.addDays(-28), week, year, bStartOnMonday ); // Subtract 4 weeks | ||
94 | setDate( year, week ); // update view | ||
95 | } | 78 | } |
96 | /* | ||
97 | * public slot | ||
98 | */ | ||
99 | void DateBookWeekHeader::nextWeek() | 79 | void DateBookWeekHeader::nextWeek() |
100 | { | 80 | { |
101 | QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week | 81 | setDate(date.addDays(7)); |
102 | calcWeek( mydate.addDays(7), week, year, bStartOnMonday); // Add 1 week | ||
103 | // if ( week < 52 ) | ||
104 | //week++; | ||
105 | setDate( year, week ); | ||
106 | } | 82 | } |
107 | /* | ||
108 | * public slot | ||
109 | */ | ||
110 | void DateBookWeekHeader::prevWeek() | 83 | void DateBookWeekHeader::prevWeek() |
111 | { | 84 | { |
112 | QDate mydate = dateFromWeek( week, year, bStartOnMonday ); // Get current week | 85 | setDate(date.addDays(-7)); |
113 | calcWeek( mydate.addDays(-7), week, year, bStartOnMonday); // Add 1 week | ||
114 | // if ( week > 1 ) | ||
115 | //week--; | ||
116 | setDate( year, week ); | ||
117 | } | ||
118 | /* | ||
119 | * public slot | ||
120 | */ | ||
121 | void DateBookWeekHeader::weekChanged( int w ) | ||
122 | { | ||
123 | setDate( year, w ); | ||
124 | } | 86 | } |
125 | 87 | ||
126 | void DateBookWeekHeader::setDate( int y, int m, int d ) | 88 | void DateBookWeekHeader::setDate( int y, int m, int d ) |
127 | { | 89 | { |
128 | calcWeek( QDate(y,m,d), week, year, bStartOnMonday ); | 90 | setDate(QDate(y,m,d)); |
129 | setDate( year, week ); | ||
130 | } | 91 | } |
131 | 92 | ||
132 | void DateBookWeekHeader::setDate( int y, int w ) | 93 | void DateBookWeekHeader::setDate(const QDate &d) { |
133 | { | 94 | int year,week,dayofweek; |
134 | year = y; | 95 | date=d; |
135 | week = w; | 96 | dayofweek=d.dayOfWeek(); |
136 | spinYear->setValue( y ); | 97 | if(bStartOnMonday) dayofweek--; |
137 | spinWeek->setValue( w ); | 98 | date=date.addDays(-dayofweek); |
138 | |||
139 | QDate d = dateFromWeek( week, year, bStartOnMonday ); | ||
140 | |||
141 | QString s = QString::number( d.day() ) + ". " + d.monthName( d.month() ) | ||
142 | + "-"; | ||
143 | d = d.addDays( 6 ); | ||
144 | s += QString::number( d.day() ) + ". " + d.monthName( d.month() ); | ||
145 | s += " ("+tr("week")+":"+QString::number( w )+")"; | ||
146 | labelDate->setText( s ); | ||
147 | 99 | ||
148 | emit dateChanged( y, w ); | 100 | calcWeek(date,week,year,bStartOnMonday); |
101 | QDate start=date; | ||
102 | QDate stop=start.addDays(6); | ||
103 | labelDate->setText( QString::number(start.day()) + "." + | ||
104 | start.monthName(start.month()) + "-" + | ||
105 | QString::number(stop.day()) + "." + | ||
106 | start.monthName(stop.month()) +" ("+ | ||
107 | tr("w")+":"+QString::number( week ) +")"); | ||
108 | emit dateChanged(year,week); | ||
149 | } | 109 | } |
150 | 110 | ||
151 | void DateBookWeekHeader::setStartOfWeek( bool onMonday ) | 111 | void DateBookWeekHeader::setStartOfWeek( bool onMonday ) |
152 | { | 112 | { |
153 | bStartOnMonday = onMonday; | 113 | bStartOnMonday = onMonday; |
154 | setDate( year, week ); | 114 | setDate( date ); |
155 | } | 115 | } |
156 | 116 | ||
157 | // dateFromWeek | 117 | // dateFromWeek |
158 | // compute the date from the week in the year | 118 | // compute the date from the week in the year |
159 | |||
160 | QDate dateFromWeek( int week, int year, bool startOnMonday ) | 119 | QDate dateFromWeek( int week, int year, bool startOnMonday ) |
161 | { | 120 | { |
162 | QDate d; | 121 | QDate d; |
163 | d.setYMD( year, 1, 1 ); | 122 | d.setYMD( year, 1, 1 ); |
164 | int dayOfWeek = d.dayOfWeek(); | 123 | int dayOfWeek = d.dayOfWeek(); |
165 | if ( startOnMonday ) { | 124 | if ( startOnMonday ) { |
166 | if ( dayOfWeek <= 4 ) { | 125 | if ( dayOfWeek <= 4 ) { |
167 | d = d.addDays( ( week - 1 ) * 7 - dayOfWeek + 1 ); | 126 | d = d.addDays( ( week - 1 ) * 7 - dayOfWeek + 1 ); |
168 | } else { | 127 | } else { |
169 | d = d.addDays( (week) * 7 - dayOfWeek + 1 ); | 128 | d = d.addDays( (week) * 7 - dayOfWeek + 1 ); |
170 | } | 129 | } |
171 | } else { | ||
172 | if ( dayOfWeek <= 4 || dayOfWeek == 7) { | ||
173 | d = d.addDays( ( week - 1 ) * 7 - dayOfWeek % 7 ); | ||
174 | } else { | 130 | } else { |
175 | d = d.addDays( ( week ) * 7 - dayOfWeek % 7 ); | 131 | if ( dayOfWeek <= 4 || dayOfWeek == 7) { |
132 | d = d.addDays( ( week - 1 ) * 7 - dayOfWeek % 7 ); | ||
133 | } else { | ||
134 | d = d.addDays( ( week ) * 7 - dayOfWeek % 7 ); | ||
135 | } | ||
176 | } | 136 | } |
177 | } | 137 | return d; |
178 | return d; | ||
179 | } | 138 | } |
180 | 139 | ||