summaryrefslogtreecommitdiff
authorharlekin <harlekin>2003-02-11 18:37:03 (UTC)
committer harlekin <harlekin>2003-02-11 18:37:03 (UTC)
commitcb85b004afe2750733cef1663961539f6a3968e6 (patch) (unidiff)
tree6084bf1fb78375325938f96077e0faa03ece955f
parentec6795c6a15a3b9f4721b628d48366097da9c903 (diff)
downloadopie-cb85b004afe2750733cef1663961539f6a3968e6.zip
opie-cb85b004afe2750733cef1663961539f6a3968e6.tar.gz
opie-cb85b004afe2750733cef1663961539f6a3968e6.tar.bz2
fix bug #644, ampm vs 24 h handling
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/citytime/citytime.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/settings/citytime/citytime.cpp b/core/settings/citytime/citytime.cpp
index 5dc9b02..b359ae1 100644
--- a/core/settings/citytime/citytime.cpp
+++ b/core/settings/citytime/citytime.cpp
@@ -4,97 +4,99 @@
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21// changes by Maximilian Reiss <harlekin@handhelds.org> 21// changes by Maximilian Reiss <harlekin@handhelds.org>
22 22
23#include "zonemap.h" 23#include "zonemap.h"
24#include "citytime.h" 24#include "citytime.h"
25 25
26#include <qpe/qpeapplication.h> 26#include <qpe/qpeapplication.h>
27#include <qpe/config.h> 27#include <qpe/config.h>
28#include <qpe/timestring.h> 28#include <qpe/timestring.h>
29#include <qpe/tzselect.h> 29#include <qpe/tzselect.h>
30#if !defined(QT_NO_COP) 30#if !defined(QT_NO_COP)
31#include <qpe/qcopenvelope_qws.h> 31#include <qpe/qcopenvelope_qws.h>
32#endif 32#endif
33 33
34#include <qdir.h> 34#include <qdir.h>
35#include <qfile.h> 35#include <qfile.h>
36#include <qlabel.h> 36#include <qlabel.h>
37#include <qmessagebox.h> 37#include <qmessagebox.h>
38#include <qregexp.h> 38#include <qregexp.h>
39#include <qtextstream.h> 39#include <qtextstream.h>
40#include <qtoolbutton.h> 40#include <qtoolbutton.h>
41#include <qlayout.h> 41#include <qlayout.h>
42 42
43#include <stdlib.h> 43#include <stdlib.h>
44 44
45CityTime::CityTime( QWidget *parent, const char* name, 45CityTime::CityTime( QWidget *parent, const char* name,
46 WFlags fl ) 46 WFlags fl )
47 : CityTimeBase( parent, name, fl ), 47 : CityTimeBase( parent, name, fl ),
48 strRealTz(0), 48 strRealTz(0),
49 bAdded(false) 49 bAdded(false)
50{ 50{
51 Config config( "qpe" ); 51 Config config( "qpe" );
52 config.setGroup( "Time" );
52 bWhichClock = config.readBoolEntry( "AMPM", TRUE ); 53 bWhichClock = config.readBoolEntry( "AMPM", TRUE );
54 qDebug( QString("%1").arg(bWhichClock) );
53 frmMap->changeClock( bWhichClock ); 55 frmMap->changeClock( bWhichClock );
54 56
55 char *pEnv; 57 char *pEnv;
56 pEnv = NULL; 58 pEnv = NULL;
57 pEnv = getenv("TZ"); 59 pEnv = getenv("TZ");
58 if ( pEnv ) 60 if ( pEnv )
59 strRealTz = pEnv; 61 strRealTz = pEnv;
60 pEnv = NULL; 62 pEnv = NULL;
61 pEnv = getenv("HOME"); 63 pEnv = getenv("HOME");
62 if ( pEnv ) 64 if ( pEnv )
63 strHome = pEnv; 65 strHome = pEnv;
64 // append the labels to their respective lists... 66 // append the labels to their respective lists...
65 listCities.setAutoDelete( true ); 67 listCities.setAutoDelete( true );
66 listTimes.setAutoDelete( true ); 68 listTimes.setAutoDelete( true );
67 69
68 listCities.append( cmdCity1 ); 70 listCities.append( cmdCity1 );
69 listCities.append( cmdCity2 ); 71 listCities.append( cmdCity2 );
70 listCities.append( cmdCity3 ); 72 listCities.append( cmdCity3 );
71 73
72 listTimes.append( lblCTime1 ); 74 listTimes.append( lblCTime1 );
73 listTimes.append( lblCTime2 ); 75 listTimes.append( lblCTime2 );
74 listTimes.append( lblCTime3 ); 76 listTimes.append( lblCTime3 );
75 77
76 78
77 // kludgy way of getting the screen size so we don't have to depend 79 // kludgy way of getting the screen size so we don't have to depend
78 // on a resize event... 80 // on a resize event...
79 QWidget *d = QApplication::desktop(); 81 QWidget *d = QApplication::desktop();
80 if ( d->width() < d->height() ) { 82 if ( d->width() < d->height() ) {
81 // append for that 4 down look 83 // append for that 4 down look
82 listCities.append( cmdCity4 ); 84 listCities.append( cmdCity4 );
83 listCities.append( cmdCity5 ); 85 listCities.append( cmdCity5 );
84 listCities.append( cmdCity6 ); 86 listCities.append( cmdCity6 );
85 listTimes.append( lblCTime4 ); 87 listTimes.append( lblCTime4 );
86 listTimes.append( lblCTime5 ); 88 listTimes.append( lblCTime5 );
87 listTimes.append( lblCTime6 ); 89 listTimes.append( lblCTime6 );
88 lblCTime7->hide(); 90 lblCTime7->hide();
89 lblCTime8->hide(); 91 lblCTime8->hide();
90 lblCTime9->hide(); 92 lblCTime9->hide();
91 cmdCity7->hide(); 93 cmdCity7->hide();
92 cmdCity8->hide(); 94 cmdCity8->hide();
93 cmdCity9->hide(); 95 cmdCity9->hide();
94 } else { 96 } else {
95 listCities.append( cmdCity7 ); 97 listCities.append( cmdCity7 );
96 listCities.append( cmdCity8 ); 98 listCities.append( cmdCity8 );
97 listCities.append( cmdCity9 ); 99 listCities.append( cmdCity9 );
98 listTimes.append( lblCTime7 ); 100 listTimes.append( lblCTime7 );
99 listTimes.append( lblCTime8 ); 101 listTimes.append( lblCTime8 );
100 listTimes.append( lblCTime9 ); 102 listTimes.append( lblCTime9 );
@@ -138,97 +140,97 @@ CityTime::~CityTime()
138 cfg.removeEntry("Zone"+QString::number(CITIES)); 140 cfg.removeEntry("Zone"+QString::number(CITIES));
139 cfg.removeEntry("ZoneName"+QString::number(CITIES)); 141 cfg.removeEntry("ZoneName"+QString::number(CITIES));
140 } else { 142 } else {
141 cfg.writeEntry("Zone"+QString::number(CITIES), strRealTz); 143 cfg.writeEntry("Zone"+QString::number(CITIES), strRealTz);
142 if ( nameRealTz.isEmpty() ) { 144 if ( nameRealTz.isEmpty() ) {
143 int i = strRealTz.find( '/' ); 145 int i = strRealTz.find( '/' );
144 nameRealTz = strRealTz.mid( i+1 ); 146 nameRealTz = strRealTz.mid( i+1 );
145 } 147 }
146 cfg.writeEntry("ZoneName"+QString::number(CITIES), nameRealTz); 148 cfg.writeEntry("ZoneName"+QString::number(CITIES), nameRealTz);
147 } 149 }
148 QCopEnvelope ( "QPE/System", "timeZoneListChange()" ); 150 QCopEnvelope ( "QPE/System", "timeZoneListChange()" );
149 151
150 changed = FALSE; 152 changed = FALSE;
151 } 153 }
152 // restore the timezone, just in case we messed with it and 154 // restore the timezone, just in case we messed with it and
153 // are destroyed at an inoppurtune moment 155 // are destroyed at an inoppurtune moment
154 if ( !strRealTz.isNull() ) { 156 if ( !strRealTz.isNull() ) {
155 // this should be checked, but there is not much that can done at this 157 // this should be checked, but there is not much that can done at this
156 //point if it fails 158 //point if it fails
157 setenv( "TZ", strRealTz, true ); 159 setenv( "TZ", strRealTz, true );
158 } 160 }
159} 161}
160 162
161void CityTime::timerEvent( QTimerEvent *e ) 163void CityTime::timerEvent( QTimerEvent *e )
162{ 164{
163 if ( e ) 165 if ( e )
164 killTimer( timerId ); 166 killTimer( timerId );
165 // change the time again!! 167 // change the time again!!
166 showTime(); 168 showTime();
167 int ms = 1000 - QTime::currentTime().msec(); 169 int ms = 1000 - QTime::currentTime().msec();
168 timerId = startTimer( ms ); 170 timerId = startTimer( ms );
169} 171}
170 172
171void CityTime::mousePressEvent( QMouseEvent * ) 173void CityTime::mousePressEvent( QMouseEvent * )
172{ 174{
173 // DEBUG enable this to get a look at the zone information DEBUG 175 // DEBUG enable this to get a look at the zone information DEBUG
174// frmMap->showZones(); 176// frmMap->showZones();
175} 177}
176 178
177void CityTime::showTime( void ) 179void CityTime::showTime( void )
178{ 180{
179 int i; 181 int i;
180 QListIterator<QLabel> itTime(listTimes); 182 QListIterator<QLabel> itTime(listTimes);
181 183
182 // traverse the list... 184 // traverse the list...
183 for ( i = 0, itTime.toFirst(); i < CITIES; i++, ++itTime) { 185 for ( i = 0, itTime.toFirst(); i < CITIES; i++, ++itTime) {
184 if ( !strCityTz[i].isNull() ) { 186 if ( !strCityTz[i].isNull() ) {
185 if ( setenv( "TZ", strCityTz[i], true ) == 0 ) { 187 if ( setenv( "TZ", strCityTz[i], true ) == 0 ) {
186 itTime.current()->setText( TimeString::shortTime(bWhichClock) ); 188 itTime.current()->setText( TimeString::shortTime( bWhichClock ) );
187 } else { 189 } else {
188 QMessageBox::critical( this, tr( "Time Changing" ), 190 QMessageBox::critical( this, tr( "Time Changing" ),
189 tr( "There was a problem setting timezone %1" ) 191 tr( "There was a problem setting timezone %1" )
190 .arg( QString::number( i + 1 ) ) ); 192 .arg( QString::number( i + 1 ) ) );
191 } 193 }
192 } 194 }
193 } 195 }
194 // done playing around... put it all back 196 // done playing around... put it all back
195 unsetenv( "TZ" ); 197 unsetenv( "TZ" );
196 if ( !strRealTz.isNull() ) { 198 if ( !strRealTz.isNull() ) {
197 if ( setenv( "TZ", strRealTz, true ) != 0 ) { 199 if ( setenv( "TZ", strRealTz, true ) != 0 ) {
198 QMessageBox::critical( this, tr( "Restore Time Zone" ), 200 QMessageBox::critical( this, tr( "Restore Time Zone" ),
199 tr( "There was a problem setting your timezone." 201 tr( "There was a problem setting your timezone."
200 "Your time may be wrong now..." ) ); 202 "Your time may be wrong now..." ) );
201 } 203 }
202 } 204 }
203} 205}
204 206
205void CityTime::beginNewTz() 207void CityTime::beginNewTz()
206{ 208{
207 buttonWidget->hide(); 209 buttonWidget->hide();
208 frmMap->setFocus(); 210 frmMap->setFocus();
209 selWidget->show(); 211 selWidget->show();
210 // CityTimeBaseLayout->addWidget( selWidget ); 212 // CityTimeBaseLayout->addWidget( selWidget );
211} 213}
212 214
213void CityTime::slotNewTz( const QString & strNewCountry, 215void CityTime::slotNewTz( const QString & strNewCountry,
214 const QString & strNewCity ) 216 const QString & strNewCity )
215{ 217{
216 // determine what to do based on what putton is pressed... 218 // determine what to do based on what putton is pressed...
217 QListIterator<QToolButton> itCity(listCities); 219 QListIterator<QToolButton> itCity(listCities);
218 int i; 220 int i;
219 // go through the list and make adjustments based on which button is on 221 // go through the list and make adjustments based on which button is on
220 for ( i = 0, itCity.toFirst(); itCity.current(), i < CITIES; i++, ++itCity ) { 222 for ( i = 0, itCity.toFirst(); itCity.current(), i < CITIES; i++, ++itCity ) {
221 QToolButton *cmdTmp = itCity.current(); 223 QToolButton *cmdTmp = itCity.current();
222 if ( cmdTmp->isOn() ) { 224 if ( cmdTmp->isOn() ) {
223 strCityTz[i] = strNewCountry + strNewCity; 225 strCityTz[i] = strNewCountry + strNewCity;
224 QString s = strNewCity; 226 QString s = strNewCity;
225 cmdTmp->setText( s.replace( QRegExp("_"), " " ) ); 227 cmdTmp->setText( s.replace( QRegExp("_"), " " ) );
226 cmdTmp->toggle(); 228 cmdTmp->toggle();
227 // we can actually break, since there is only one button 229 // we can actually break, since there is only one button
228 // that is ever pressed! 230 // that is ever pressed!
229 changed = TRUE; 231 changed = TRUE;
230 break; 232 break;
231 } 233 }
232 } 234 }
233 showTime(); 235 showTime();
234 buttonWidget->show(); 236 buttonWidget->show();