summaryrefslogtreecommitdiff
path: root/library/tzselect.cpp
Unidiff
Diffstat (limited to 'library/tzselect.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/tzselect.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/library/tzselect.cpp b/library/tzselect.cpp
index 335037e..4343eab 100644
--- a/library/tzselect.cpp
+++ b/library/tzselect.cpp
@@ -11,48 +11,56 @@
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#define QTOPIA_INTERNAL_TZSELECT_INC_LOCAL 21#define QTOPIA_INTERNAL_TZSELECT_INC_LOCAL
22 22
23#include "tzselect.h" 23#include "tzselect.h"
24#include "resource.h" 24#include "resource.h"
25#include "global.h" 25#include "global.h"
26#include "config.h" 26#include "config.h"
27#include <qtoolbutton.h> 27#include <qtoolbutton.h>
28#include <qfile.h> 28#include <qfile.h>
29#include <stdlib.h> 29#include <stdlib.h>
30 30
31#include <qcopchannel_qws.h> 31#include <qcopchannel_qws.h>
32#include <qpe/qpeapplication.h> 32#include <qpe/qpeapplication.h>
33#include <qmessagebox.h> 33#include <qmessagebox.h>
34 34
35/*!
36 \class TimeZoneSelector
37
38 \brief The TimeZoneSelector widget allows users to configure their time zone information.
39
40 \ingroup qtopiaemb
41*/
42
35class TimeZoneSelectorPrivate 43class TimeZoneSelectorPrivate
36{ 44{
37public: 45public:
38 TimeZoneSelectorPrivate() : includeLocal(FALSE) {} 46 TimeZoneSelectorPrivate() : includeLocal(FALSE) {}
39 bool includeLocal; 47 bool includeLocal;
40}; 48};
41 49
42TZCombo::TZCombo( QWidget *p, const char* n ) 50TZCombo::TZCombo( QWidget *p, const char* n )
43 : QComboBox( p, n ) 51 : QComboBox( p, n )
44{ 52{
45 updateZones(); 53 updateZones();
46 // check to see if TZ is set, if it is set the current item to that 54 // check to see if TZ is set, if it is set the current item to that
47 QString tz = getenv("TZ"); 55 QString tz = getenv("TZ");
48 if (parent()->inherits("TimeZoneSelector")) { 56 if (parent()->inherits("TimeZoneSelector")) {
49 if ( ((TimeZoneSelector *)parent())->localIncluded() ) { 57 if ( ((TimeZoneSelector *)parent())->localIncluded() ) {
50 // overide to the 'local' type. 58 // overide to the 'local' type.
51 tz = "None"; 59 tz = "None";
52 } 60 }
53 } 61 }
54 if ( !tz.isNull() ) { 62 if ( !tz.isNull() ) {
55 int n = 0, 63 int n = 0,
56 index = 0; 64 index = 0;
57 for ( QStringList::Iterator it=identifiers.begin(); 65 for ( QStringList::Iterator it=identifiers.begin();
58 it!=identifiers.end(); ++it) { 66 it!=identifiers.end(); ++it) {
@@ -172,106 +180,124 @@ QString TZCombo::currZone() const
172 180
173void TZCombo::setCurrZone( const QString& id ) 181void TZCombo::setCurrZone( const QString& id )
174{ 182{
175 for (int i=0; i< count(); i++) { 183 for (int i=0; i< count(); i++) {
176 if ( identifiers[i] == id ) { 184 if ( identifiers[i] == id ) {
177 setCurrentItem(i); 185 setCurrentItem(i);
178 return; 186 return;
179} 187}
180 } 188 }
181 insertItem(id); 189 insertItem(id);
182 setCurrentItem( count() - 1); 190 setCurrentItem( count() - 1);
183 identifiers.append(id); 191 identifiers.append(id);
184 extras.append(id); 192 extras.append(id);
185} 193}
186 194
187 195
188 196
189void TZCombo::handleSystemChannel(const QCString&msg, const QByteArray&) 197void TZCombo::handleSystemChannel(const QCString&msg, const QByteArray&)
190{ 198{
191 if ( msg == "timeZoneListChange()" ) { 199 if ( msg == "timeZoneListChange()" ) {
192 updateZones(); 200 updateZones();
193 } 201 }
194} 202}
195 203
204/*!
205 Creates a new TimeZoneSelector with parent \a p and name \a n. The combobox will be
206 populated with the available timezones.
207*/
196 208
197TimeZoneSelector::TimeZoneSelector(QWidget* p, const char* n) : 209TimeZoneSelector::TimeZoneSelector(QWidget* p, const char* n) :
198 QHBox(p,n) 210 QHBox(p,n)
199{ 211{
200 d = new TimeZoneSelectorPrivate(); 212 d = new TimeZoneSelectorPrivate();
201 // build the combobox before we do any updates... 213 // build the combobox before we do any updates...
202 cmbTz = new TZCombo( this, "timezone combo" ); 214 cmbTz = new TZCombo( this, "timezone combo" );
203 215
204 cmdTz = new QToolButton( this, "timezone button" ); 216 cmdTz = new QToolButton( this, "timezone button" );
205 cmdTz->setIconSet( Resource::loadIconSet( "citytime_icon" ) ); 217 cmdTz->setIconSet( Resource::loadIconSet( "citytime_icon" ) );
206 cmdTz->setMaximumSize( cmdTz->sizeHint() ); 218 cmdTz->setMaximumSize( cmdTz->sizeHint() );
207 219
208 // set up a connection to catch a newly selected item and throw our 220 // set up a connection to catch a newly selected item and throw our
209 // signal 221 // signal
210 QObject::connect( cmbTz, SIGNAL( activated( int ) ), 222 QObject::connect( cmbTz, SIGNAL( activated( int ) ),
211 this, SLOT( slotTzActive( int ) ) ); 223 this, SLOT( slotTzActive( int ) ) );
212 QObject::connect( cmdTz, SIGNAL( clicked() ), 224 QObject::connect( cmdTz, SIGNAL( clicked() ),
213 this, SLOT( slotExecute() ) ); 225 this, SLOT( slotExecute() ) );
214} 226}
215 227
228/*!
229 Destroys a TimeZoneSelector.
230*/
216TimeZoneSelector::~TimeZoneSelector() 231TimeZoneSelector::~TimeZoneSelector()
217{ 232{
218} 233}
219 234
220void TimeZoneSelector::setLocalIncluded(bool b) 235void TimeZoneSelector::setLocalIncluded(bool b)
221{ 236{
222 d->includeLocal = b; 237 d->includeLocal = b;
223 cmbTz->updateZones(); 238 cmbTz->updateZones();
224} 239}
225 240
226bool TimeZoneSelector::localIncluded() const 241bool TimeZoneSelector::localIncluded() const
227{ 242{
228 return d->includeLocal; 243 return d->includeLocal;
229} 244}
230 245
231 246/*!
247 Returns the currently selected timezone as a string in location format, e.g.
248 \code Australia/Brisbane \endcode
249*/
232QString TimeZoneSelector::currentZone() const 250QString TimeZoneSelector::currentZone() const
233{ 251{
234 return cmbTz->currZone(); 252 return cmbTz->currZone();
235} 253}
236 254
255/*!
256 Sets the current timezone to \a id.
257*/
237void TimeZoneSelector::setCurrentZone( const QString& id ) 258void TimeZoneSelector::setCurrentZone( const QString& id )
238{ 259{
239 cmbTz->setCurrZone( id ); 260 cmbTz->setCurrZone( id );
240} 261}
262/*! \fn void TimeZoneSelector::signalNewTz( const QString& id )
263 This signal is emitted when a timezone has been selected by the user. The id
264 is a \l QString in location format, eg \code Australia/Brisbane \endcode
265*/
266
241 267
242void TimeZoneSelector::slotTzActive( int ) 268void TimeZoneSelector::slotTzActive( int )
243{ 269{
244 emit signalNewTz( cmbTz->currZone() ); 270 emit signalNewTz( cmbTz->currZone() );
245} 271}
246 272
247void TimeZoneSelector::slotExecute( void ) 273void TimeZoneSelector::slotExecute( void )
248{ 274{
249 // execute the world time application... 275 // execute the world time application...
250 if (QFile::exists(QPEApplication::qpeDir()+"bin/citytime")) 276 if (QFile::exists(QPEApplication::qpeDir()+"bin/citytime"))
251 Global::execute( "citytime" ); 277 Global::execute( "citytime" );
252 else 278 else
253 QMessageBox::warning(this,tr("citytime executable not found"), 279 QMessageBox::warning(this,tr("citytime executable not found"),
254 tr("In order to choose the time zones,\nplease install citytime.")); 280 tr("In order to choose the time zones,\nplease install citytime."));
255} 281}
256 282
257QStringList timezoneDefaults( void ) 283QStringList timezoneDefaults( void )
258{ 284{
259 QStringList tzs; 285 QStringList tzs;
260 // load up the list just like the file format (citytime.cpp) 286 // load up the list just like the file format (citytime.cpp)
261 tzs.append( "America/New_York" ); 287 tzs.append( "America/New_York" );
262 tzs.append( "New York" ); 288 tzs.append( "New York" );
263 tzs.append( "America/Los_Angeles" ); 289 tzs.append( "America/Los_Angeles" );
264 tzs.append( "Los Angeles" ); 290 tzs.append( "Los Angeles" );
265 tzs.append( "Australia/Brisbane" ); 291 tzs.append( "Australia/Brisbane" );
266 tzs.append( "Brisbane" ); 292 tzs.append( "Brisbane" );
267 tzs.append( "Europe/Berlin" ); 293 tzs.append( "Europe/Berlin" );
268 tzs.append( "Berlin" ); 294 tzs.append( "Berlin" );
269 tzs.append( "Asia/Tokyo" ); 295 tzs.append( "Asia/Tokyo" );
270 tzs.append( "Tokyo" ); 296 tzs.append( "Tokyo" );
271 tzs.append( "America/Denver" ); 297 tzs.append( "America/Denver" );
272 tzs.append( "Denver" ); 298 tzs.append( "Denver" );
273 299
274 return tzs; 300 return tzs;
275} 301}
276 302
277 303