summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/citytime/citytime.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/settings/citytime/citytime.cpp b/core/settings/citytime/citytime.cpp
index f33b19f..5dc9b02 100644
--- a/core/settings/citytime/citytime.cpp
+++ b/core/settings/citytime/citytime.cpp
@@ -1,282 +1,282 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
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 Q_WS_QWS || defined(_WS_QWS_) ) && !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 bWhichClock = config.readBoolEntry( "AMPM", TRUE ); 52 bWhichClock = config.readBoolEntry( "AMPM", TRUE );
53 frmMap->changeClock( bWhichClock ); 53 frmMap->changeClock( bWhichClock );
54 54
55 char *pEnv; 55 char *pEnv;
56 pEnv = NULL; 56 pEnv = NULL;
57 pEnv = getenv("TZ"); 57 pEnv = getenv("TZ");
58 if ( pEnv ) 58 if ( pEnv )
59 strRealTz = pEnv; 59 strRealTz = pEnv;
60 pEnv = NULL; 60 pEnv = NULL;
61 pEnv = getenv("HOME"); 61 pEnv = getenv("HOME");
62 if ( pEnv ) 62 if ( pEnv )
63 strHome = pEnv; 63 strHome = pEnv;
64 // append the labels to their respective lists... 64 // append the labels to their respective lists...
65 listCities.setAutoDelete( true ); 65 listCities.setAutoDelete( true );
66 listTimes.setAutoDelete( true ); 66 listTimes.setAutoDelete( true );
67 67
68 listCities.append( cmdCity1 ); 68 listCities.append( cmdCity1 );
69 listCities.append( cmdCity2 ); 69 listCities.append( cmdCity2 );
70 listCities.append( cmdCity3 ); 70 listCities.append( cmdCity3 );
71 71
72 listTimes.append( lblCTime1 ); 72 listTimes.append( lblCTime1 );
73 listTimes.append( lblCTime2 ); 73 listTimes.append( lblCTime2 );
74 listTimes.append( lblCTime3 ); 74 listTimes.append( lblCTime3 );
75 75
76 76
77 // kludgy way of getting the screen size so we don't have to depend 77 // kludgy way of getting the screen size so we don't have to depend
78 // on a resize event... 78 // on a resize event...
79 QWidget *d = QApplication::desktop(); 79 QWidget *d = QApplication::desktop();
80 if ( d->width() < d->height() ) { 80 if ( d->width() < d->height() ) {
81 // append for that 4 down look 81 // append for that 4 down look
82 listCities.append( cmdCity4 ); 82 listCities.append( cmdCity4 );
83 listCities.append( cmdCity5 ); 83 listCities.append( cmdCity5 );
84 listCities.append( cmdCity6 ); 84 listCities.append( cmdCity6 );
85 listTimes.append( lblCTime4 ); 85 listTimes.append( lblCTime4 );
86 listTimes.append( lblCTime5 ); 86 listTimes.append( lblCTime5 );
87 listTimes.append( lblCTime6 ); 87 listTimes.append( lblCTime6 );
88 lblCTime7->hide(); 88 lblCTime7->hide();
89 lblCTime8->hide(); 89 lblCTime8->hide();
90 lblCTime9->hide(); 90 lblCTime9->hide();
91 cmdCity7->hide(); 91 cmdCity7->hide();
92 cmdCity8->hide(); 92 cmdCity8->hide();
93 cmdCity9->hide(); 93 cmdCity9->hide();
94 } else { 94 } else {
95 listCities.append( cmdCity7 ); 95 listCities.append( cmdCity7 );
96 listCities.append( cmdCity8 ); 96 listCities.append( cmdCity8 );
97 listCities.append( cmdCity9 ); 97 listCities.append( cmdCity9 );
98 listTimes.append( lblCTime7 ); 98 listTimes.append( lblCTime7 );
99 listTimes.append( lblCTime8 ); 99 listTimes.append( lblCTime8 );
100 listTimes.append( lblCTime9 ); 100 listTimes.append( lblCTime9 );
101 lblCTime4->hide(); 101 lblCTime4->hide();
102 lblCTime5->hide(); 102 lblCTime5->hide();
103 lblCTime6->hide(); 103 lblCTime6->hide();
104 cmdCity4->hide(); 104 cmdCity4->hide();
105 cmdCity5->hide(); 105 cmdCity5->hide();
106 cmdCity6->hide(); 106 cmdCity6->hide();
107 } 107 }
108 108
109 selWidget = frmMap->selectionWidget( this ); 109 selWidget = frmMap->selectionWidget( this );
110 selWidget->hide(); 110 selWidget->hide();
111 CityTimeBaseLayout->addWidget( selWidget ); 111 CityTimeBaseLayout->addWidget( selWidget );
112 bAdded = true; 112 bAdded = true;
113 readInTimes(); 113 readInTimes();
114 changed = FALSE; 114 changed = FALSE;
115 QObject::connect( qApp, SIGNAL( clockChanged( bool ) ), 115 QObject::connect( qApp, SIGNAL( clockChanged( bool ) ),
116 this, SLOT( changeClock( bool ) ) ); 116 this, SLOT( changeClock( bool ) ) );
117 // now start the timer so we can update the time quickly every second 117 // now start the timer so we can update the time quickly every second
118 timerEvent( 0 ); 118 timerEvent( 0 );
119} 119}
120 120
121CityTime::~CityTime() 121CityTime::~CityTime()
122{ 122{
123 if ( changed ) { 123 if ( changed ) {
124 Config cfg("CityTime"); 124 Config cfg("CityTime");
125 cfg.setGroup("TimeZones"); 125 cfg.setGroup("TimeZones");
126 QListIterator<QToolButton> itCity( listCities ); 126 QListIterator<QToolButton> itCity( listCities );
127 int i; 127 int i;
128 bool realTzWritten = FALSE; 128 bool realTzWritten = FALSE;
129 for ( i = 0, itCity.toFirst(); i < CITIES; i++, ++itCity ) { 129 for ( i = 0, itCity.toFirst(); i < CITIES; i++, ++itCity ) {
130 if ( !strCityTz[i].isNull() ) { 130 if ( !strCityTz[i].isNull() ) {
131 cfg.writeEntry("Zone"+QString::number(i), strCityTz[i]); 131 cfg.writeEntry("Zone"+QString::number(i), strCityTz[i]);
132 cfg.writeEntry("ZoneName"+QString::number(i), itCity.current()->text()); 132 cfg.writeEntry("ZoneName"+QString::number(i), itCity.current()->text());
133 if ( strCityTz[i] == strRealTz ) 133 if ( strCityTz[i] == strRealTz )
134 realTzWritten = TRUE; 134 realTzWritten = TRUE;
135 } 135 }
136 } 136 }
137 if ( realTzWritten ) { 137 if ( realTzWritten ) {
138 cfg.removeEntry("Zone"+QString::number(CITIES)); 138 cfg.removeEntry("Zone"+QString::number(CITIES));
139 cfg.removeEntry("ZoneName"+QString::number(CITIES)); 139 cfg.removeEntry("ZoneName"+QString::number(CITIES));
140 } else { 140 } else {
141 cfg.writeEntry("Zone"+QString::number(CITIES), strRealTz); 141 cfg.writeEntry("Zone"+QString::number(CITIES), strRealTz);
142 if ( nameRealTz.isEmpty() ) { 142 if ( nameRealTz.isEmpty() ) {
143 int i = strRealTz.find( '/' ); 143 int i = strRealTz.find( '/' );
144 nameRealTz = strRealTz.mid( i+1 ); 144 nameRealTz = strRealTz.mid( i+1 );
145 } 145 }
146 cfg.writeEntry("ZoneName"+QString::number(CITIES), nameRealTz); 146 cfg.writeEntry("ZoneName"+QString::number(CITIES), nameRealTz);
147 } 147 }
148 QCopEnvelope ( "QPE/System", "timeZoneListChange()" ); 148 QCopEnvelope ( "QPE/System", "timeZoneListChange()" );
149 149
150 changed = FALSE; 150 changed = FALSE;
151 } 151 }
152 // restore the timezone, just in case we messed with it and 152 // restore the timezone, just in case we messed with it and
153 // are destroyed at an inoppurtune moment 153 // are destroyed at an inoppurtune moment
154 if ( !strRealTz.isNull() ) { 154 if ( !strRealTz.isNull() ) {
155 // this should be checked, but there is not much that can done at this 155 // this should be checked, but there is not much that can done at this
156 //point if it fails 156 //point if it fails
157 setenv( "TZ", strRealTz, true ); 157 setenv( "TZ", strRealTz, true );
158 } 158 }
159} 159}
160 160
161void CityTime::timerEvent( QTimerEvent *e ) 161void CityTime::timerEvent( QTimerEvent *e )
162{ 162{
163 if ( e ) 163 if ( e )
164 killTimer( timerId ); 164 killTimer( timerId );
165 // change the time again!! 165 // change the time again!!
166 showTime(); 166 showTime();
167 int ms = 1000 - QTime::currentTime().msec(); 167 int ms = 1000 - QTime::currentTime().msec();
168 timerId = startTimer( ms ); 168 timerId = startTimer( ms );
169} 169}
170 170
171void CityTime::mousePressEvent( QMouseEvent * ) 171void CityTime::mousePressEvent( QMouseEvent * )
172{ 172{
173 // DEBUG enable this to get a look at the zone information DEBUG 173 // DEBUG enable this to get a look at the zone information DEBUG
174// frmMap->showZones(); 174// frmMap->showZones();
175} 175}
176 176
177void CityTime::showTime( void ) 177void CityTime::showTime( void )
178{ 178{
179 int i; 179 int i;
180 QListIterator<QLabel> itTime(listTimes); 180 QListIterator<QLabel> itTime(listTimes);
181 181
182 // traverse the list... 182 // traverse the list...
183 for ( i = 0, itTime.toFirst(); i < CITIES; i++, ++itTime) { 183 for ( i = 0, itTime.toFirst(); i < CITIES; i++, ++itTime) {
184 if ( !strCityTz[i].isNull() ) { 184 if ( !strCityTz[i].isNull() ) {
185 if ( setenv( "TZ", strCityTz[i], true ) == 0 ) { 185 if ( setenv( "TZ", strCityTz[i], true ) == 0 ) {
186 itTime.current()->setText( TimeString::shortTime(bWhichClock) ); 186 itTime.current()->setText( TimeString::shortTime(bWhichClock) );
187 } else { 187 } else {
188 QMessageBox::critical( this, tr( "Time Changing" ), 188 QMessageBox::critical( this, tr( "Time Changing" ),
189 tr( "There was a problem setting timezone %1" ) 189 tr( "There was a problem setting timezone %1" )
190 .arg( QString::number( i + 1 ) ) ); 190 .arg( QString::number( i + 1 ) ) );
191 } 191 }
192 } 192 }
193 } 193 }
194 // done playing around... put it all back 194 // done playing around... put it all back
195 unsetenv( "TZ" ); 195 unsetenv( "TZ" );
196 if ( !strRealTz.isNull() ) { 196 if ( !strRealTz.isNull() ) {
197 if ( setenv( "TZ", strRealTz, true ) != 0 ) { 197 if ( setenv( "TZ", strRealTz, true ) != 0 ) {
198 QMessageBox::critical( this, tr( "Restore Time Zone" ), 198 QMessageBox::critical( this, tr( "Restore Time Zone" ),
199 tr( "There was a problem setting your timezone." 199 tr( "There was a problem setting your timezone."
200 "Your time may be wrong now..." ) ); 200 "Your time may be wrong now..." ) );
201 } 201 }
202 } 202 }
203} 203}
204 204
205void CityTime::beginNewTz() 205void CityTime::beginNewTz()
206{ 206{
207 buttonWidget->hide(); 207 buttonWidget->hide();
208 frmMap->setFocus(); 208 frmMap->setFocus();
209 selWidget->show(); 209 selWidget->show();
210 // CityTimeBaseLayout->addWidget( selWidget ); 210 // CityTimeBaseLayout->addWidget( selWidget );
211} 211}
212 212
213void CityTime::slotNewTz( const QString & strNewCountry, 213void CityTime::slotNewTz( const QString & strNewCountry,
214 const QString & strNewCity ) 214 const QString & strNewCity )
215{ 215{
216 // determine what to do based on what putton is pressed... 216 // determine what to do based on what putton is pressed...
217 QListIterator<QToolButton> itCity(listCities); 217 QListIterator<QToolButton> itCity(listCities);
218 int i; 218 int i;
219 // go through the list and make adjustments based on which button is on 219 // 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 ) { 220 for ( i = 0, itCity.toFirst(); itCity.current(), i < CITIES; i++, ++itCity ) {
221 QToolButton *cmdTmp = itCity.current(); 221 QToolButton *cmdTmp = itCity.current();
222 if ( cmdTmp->isOn() ) { 222 if ( cmdTmp->isOn() ) {
223 strCityTz[i] = strNewCountry + strNewCity; 223 strCityTz[i] = strNewCountry + strNewCity;
224 QString s = strNewCity; 224 QString s = strNewCity;
225 cmdTmp->setText( s.replace( QRegExp("_"), " " ) ); 225 cmdTmp->setText( s.replace( QRegExp("_"), " " ) );
226 cmdTmp->toggle(); 226 cmdTmp->toggle();
227 // we can actually break, since there is only one button 227 // we can actually break, since there is only one button
228 // that is ever pressed! 228 // that is ever pressed!
229 changed = TRUE; 229 changed = TRUE;
230 break; 230 break;
231 } 231 }
232 } 232 }
233 showTime(); 233 showTime();
234 buttonWidget->show(); 234 buttonWidget->show();
235 selWidget->hide(); 235 selWidget->hide();
236} 236}
237 237
238void CityTime::readInTimes( void ) 238void CityTime::readInTimes( void )
239{ 239{
240 Config cfg("CityTime"); 240 Config cfg("CityTime");
241 cfg.setGroup("TimeZones"); 241 cfg.setGroup("TimeZones");
242 QListIterator<QToolButton> itCity( listCities ); 242 QListIterator<QToolButton> itCity( listCities );
243 int i=0; 243 int i=0;
244 nameRealTz = QString::null; 244 nameRealTz = QString::null;
245 QString zn; 245 QString zn;
246 for ( ; i < CITIES ; i++ ) { 246 for ( ; i < CITIES ; i++ ) {
247 zn = cfg.readEntry("Zone"+QString::number(i), QString::null); 247 zn = cfg.readEntry("Zone"+QString::number(i), QString::null);
248 if ( zn.isNull() ) 248 if ( zn.isNull() )
249 break; 249 break;
250 QString nm = cfg.readEntry("ZoneName"+QString::number(i)); 250 QString nm = cfg.readEntry("ZoneName"+QString::number(i));
251 strCityTz[i] = zn; 251 strCityTz[i] = zn;
252 itCity.current()->setText(nm); 252 itCity.current()->setText(nm);
253 if ( zn == strRealTz ) 253 if ( zn == strRealTz )
254 nameRealTz = nm; 254 nameRealTz = nm;
255 ++itCity; 255 ++itCity;
256 } 256 }
257 if ( i == 0 ) { 257 if ( i == 0 ) {
258 // write in our own in a shameless self promotion and some humor 258 // write in our own in a shameless self promotion and some humor
259 QStringList list = timezoneDefaults(); 259 QStringList list = timezoneDefaults();
260 int i; 260 int i;
261 QStringList::Iterator it = list.begin(); 261 QStringList::Iterator it = list.begin();
262 for ( i = 0, itCity.toFirst(); i < CITIES && itCity.current(); 262 for ( i = 0, itCity.toFirst(); i < CITIES && itCity.current();
263 i++, ++itCity ) { 263 i++, ++itCity ) {
264 strCityTz[i] = *it++; 264 strCityTz[i] = *it++;
265 itCity.current()->setText( *it++ ); 265 itCity.current()->setText( *it++ );
266 } 266 }
267 } 267 }
268 if ( nameRealTz.isEmpty() ) { 268 if ( nameRealTz.isEmpty() ) {
269 //remember the current time zone even if we don't have room 269 //remember the current time zone even if we don't have room
270 //to show it. 270 //to show it.
271 zn = cfg.readEntry("Zone"+QString::number(CITIES), QString::null); 271 zn = cfg.readEntry("Zone"+QString::number(CITIES), QString::null);
272 if ( zn == strRealTz ) 272 if ( zn == strRealTz )
273 nameRealTz = cfg.readEntry("ZoneName"+QString::number(CITIES)); 273 nameRealTz = cfg.readEntry("ZoneName"+QString::number(CITIES));
274 i++; 274 i++;
275 } 275 }
276} 276}
277 277
278void CityTime::changeClock( bool newClock ) 278void CityTime::changeClock( bool newClock )
279{ 279{
280 bWhichClock = newClock; 280 bWhichClock = newClock;
281 showTime(); 281 showTime();
282} 282}