summaryrefslogtreecommitdiff
path: root/core/settings/citytime/zonemap.cpp
Side-by-side diff
Diffstat (limited to 'core/settings/citytime/zonemap.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/citytime/zonemap.cpp402
1 files changed, 203 insertions, 199 deletions
diff --git a/core/settings/citytime/zonemap.cpp b/core/settings/citytime/zonemap.cpp
index b6843d2..e4a25ef 100644
--- a/core/settings/citytime/zonemap.cpp
+++ b/core/settings/citytime/zonemap.cpp
@@ -20,26 +20,30 @@
// changes by Maximilian Reiss <harlekin@handhelds.org>
#include "sun.h"
#include "zonemap.h"
+/* OPIE */
#include <qpe/resource.h>
#include <qpe/qpeapplication.h>
+#include <opie2/odebug.h>
+/* QT */
#include <qfile.h>
#include <qlabel.h>
#include <qmessagebox.h>
#include <qtextstream.h>
#include <qtimer.h>
#include <qtoolbutton.h>
#include <qlayout.h>
#include <qhbox.h>
#include <qlistview.h>
#include <qwhatsthis.h>
+/* STD */
#include <limits.h>
// the map file...
static const char strZONEINFO[] = "/usr/share/zoneinfo/zone.tab";
static const char strMAP[] = "citytime/simple_grid_400";
@@ -58,85 +62,85 @@ const int iCITYOFFSET = 2;
static inline void darken( QImage *pImage, int start, int stop, int row );
static void dayNight( QImage *pImage );
ZoneField::ZoneField( const QString& strLine )
{
// make a bunch of RegExp's to match the data from the line
- QRegExp regCoord( "[-+][0-9]+" ); // the latitude
+ QRegExp regCoord( "[-+][0-9]+" ); // the latitude
QRegExp regCountry( "[A-Za-z]+/" ); // the country (not good enough)
QRegExp regCity( "[A-Za-z_-]*" ); // the city
int iStart,
- iStop,
+ iStop,
iLen,
tmp;
QString strTmp;
// we should be able to assume that the country code is always the first
// two chars, so just grap them and let it go...
strCountryCode = strLine.left( 2 );
iStart = regCoord.match( strLine, 0, &iLen );
if ( iStart >= 0 ) {
- strTmp = strLine.mid( iStart, iLen );
- tmp = strTmp.toInt();
- // okay, there are two versions of the format, make a decision based on
- // the size...
- // Oh BTW, we are storing everything in seconds!
- if ( iLen < 7 ) {
- _y = tmp / 100;
- _y *= 60;
- _y += tmp % 100;
- _y *= 60;
- } else {
- _y = tmp / 10000;
- _y *= 60;
- tmp %= 10000;
- _y += tmp / 100;
- _y *= 60;
- tmp %= 100;
- _y += tmp;
- }
+ strTmp = strLine.mid( iStart, iLen );
+ tmp = strTmp.toInt();
+ // okay, there are two versions of the format, make a decision based on
+ // the size...
+ // Oh BTW, we are storing everything in seconds!
+ if ( iLen < 7 ) {
+ _y = tmp / 100;
+ _y *= 60;
+ _y += tmp % 100;
+ _y *= 60;
+ } else {
+ _y = tmp / 10000;
+ _y *= 60;
+ tmp %= 10000;
+ _y += tmp / 100;
+ _y *= 60;
+ tmp %= 100;
+ _y += tmp;
+ }
}
iStart = regCoord.match( strLine, iStart + iLen, &iLen );
if ( iStart >= 0 ) {
- strTmp = strLine.mid( iStart, iLen );
- tmp = strTmp.toInt();
- if ( iLen < 8 ) {
- _x = tmp / 100;
- _x *= 60;
- _x += tmp % 100;
- _x *= 60;
- } else {
- _x = tmp / 10000;
- _x *= 60;
- tmp %= 10000;
- _x += tmp / 100;
- _x *= 60;
- tmp %= 100;
- _x += tmp;
- }
+ strTmp = strLine.mid( iStart, iLen );
+ tmp = strTmp.toInt();
+ if ( iLen < 8 ) {
+ _x = tmp / 100;
+ _x *= 60;
+ _x += tmp % 100;
+ _x *= 60;
+ } else {
+ _x = tmp / 10000;
+ _x *= 60;
+ tmp %= 10000;
+ _x += tmp / 100;
+ _x *= 60;
+ tmp %= 100;
+ _x += tmp;
+ }
}
iStart = regCountry.match( strLine, 0, &iLen );
// help with the shortcoming in 2.x regexp...
iStop = strLine.findRev( '/' );
if ( iStart >= 0 ) {
- iLen = (iStop - iStart) + 1;
- strCountry = strLine.mid( iStart, iLen );
+ iLen = (iStop - iStart) + 1;
+ strCountry = strLine.mid( iStart, iLen );
}
// now match the city...
iStart = regCity.match( strLine, iStart + iLen, &iLen );
if ( iStart >= 0 ) {
- strCity = strLine.mid( iStart, iLen );
+ strCity = strLine.mid( iStart, iLen );
}
}
void ZoneField::showStructure( void ) const
{
- qDebug( "Country: %s", strCountry.latin1() );
- qDebug( "City: %s", strCity.latin1() );
- qDebug( "x: %d", _x );
- qDebug( "y: %d\n", _y );
+ odebug << "Country: " << strCountry << "" << oendl;
+ odebug << "City: " << strCity << "" << oendl;
+ odebug << "x: " << _x << "" << oendl;
+ odebug << "y: " << _y << "\n" << oendl;
}
ZoneMap::ZoneMap( QWidget *parent, const char* name )
: QScrollView( parent, name ),
pLast( 0 ),
pRepaint( 0 ),
@@ -204,27 +208,27 @@ ZoneMap::~ZoneMap()
}
void ZoneMap::readZones( void )
{
QFile fZone( strZONEINFO );
if ( !fZone.open( IO_ReadOnly ) ) {
- QMessageBox::warning (this,
- tr( "Unable to Find Timezone Info" ),
- tr( "<p>Unable to find any timezone information in %1" )
- .arg( strZONEINFO ));
- exit(-1);
+ QMessageBox::warning (this,
+ tr( "Unable to Find Timezone Info" ),
+ tr( "<p>Unable to find any timezone information in %1" )
+ .arg( strZONEINFO ));
+ exit(-1);
} else {
- QTextStream tZone( &fZone );
- while ( !tZone.atEnd() ) {
- QString strLine = tZone.readLine();
- // only pass on lines that aren't comments
- if ( strLine[0] != '#' ) {
- zones.append( new ZoneField( strLine ) );
- }
- }
- fZone.close();
+ QTextStream tZone( &fZone );
+ while ( !tZone.atEnd() ) {
+ QString strLine = tZone.readLine();
+ // only pass on lines that aren't comments
+ if ( strLine[0] != '#' ) {
+ zones.append( new ZoneField( strLine ) );
+ }
+ }
+ fZone.close();
}
}
void ZoneMap::viewportMousePressEvent( QMouseEvent* event )
{
// add the mouse event into the normalizer, and get the average,
@@ -242,88 +246,88 @@ void ZoneMap::viewportMouseMoveEvent( QMouseEvent* event )
void ZoneMap::viewportMouseReleaseEvent( QMouseEvent* )
{
// get the averaged points in case a timeout hasn't occurred,
// more for "mouse clicks"
norm.stop();
if ( pLast != NULL ) {
- emit signalTz( pLast->country(), pLast->city() );
- pLast = NULL;
+ emit signalTz( pLast->country(), pLast->city() );
+ pLast = NULL;
}
tHide->start( 2000, true );
}
void ZoneMap::keyPressEvent( QKeyEvent *ke )
{
switch ( ke->key() ) {
- case Key_Left:
- case Key_Right:
- case Key_Up:
- case Key_Down: {
- tHide->stop();
- if ( !cursor )
- slotFindCity( QPoint( contentsWidth(), contentsHeight() ) / 2 );
- ZoneField *city = findCityNear( cursor, ke->key() );
- if ( city ) {
- cursor = city;
- int tmpx, tmpy;
- zoneToWin( cursor->x(), cursor->y(), tmpx, tmpy );
- ensureVisible( tmpx, tmpy );
- showCity( cursor );
- tHide->start( 3000, true );
- }
- }
- break;
-
- case Key_Space:
- case Key_Enter:
- case Key_Return:
- if ( cursor ) {
- emit signalTz( cursor->country(), cursor->city() );
- tHide->start( 0, true );
- }
- break;
+ case Key_Left:
+ case Key_Right:
+ case Key_Up:
+ case Key_Down: {
+ tHide->stop();
+ if ( !cursor )
+ slotFindCity( QPoint( contentsWidth(), contentsHeight() ) / 2 );
+ ZoneField *city = findCityNear( cursor, ke->key() );
+ if ( city ) {
+ cursor = city;
+ int tmpx, tmpy;
+ zoneToWin( cursor->x(), cursor->y(), tmpx, tmpy );
+ ensureVisible( tmpx, tmpy );
+ showCity( cursor );
+ tHide->start( 3000, true );
+ }
+ }
+ break;
+
+ case Key_Space:
+ case Key_Enter:
+ case Key_Return:
+ if ( cursor ) {
+ emit signalTz( cursor->country(), cursor->city() );
+ tHide->start( 0, true );
+ }
+ break;
}
}
ZoneField *ZoneMap::findCityNear( ZoneField *city, int key )
{
ZoneField *pZone;
ZoneField *pClosest = 0;
long ddist = LONG_MAX;
QListIterator<ZoneField> it( zones );
for (; it.current(); ++it) {
- pZone = it.current();
- long dx = (pZone->x() - city->x())/100;
- long dy = (pZone->y() - city->y())/100;
- switch ( key ) {
- case Key_Right:
- case Key_Left:
- if ( key == Key_Left )
- dx = -dx;
- if ( dx > 0 ) {
- long dist = QABS(dy)*4 + dx;
- if ( dist < ddist ) {
- ddist = dist;
- pClosest = pZone;
- }
- }
- break;
- case Key_Down:
- case Key_Up:
- if ( key == Key_Down )
- dy = -dy;
- if ( dy > 0 ) {
- long dist = QABS(dx)*4 + dy;
- if ( dist < ddist ) {
- ddist = dist;
- pClosest = pZone;
- }
- }
- break;
- }
+ pZone = it.current();
+ long dx = (pZone->x() - city->x())/100;
+ long dy = (pZone->y() - city->y())/100;
+ switch ( key ) {
+ case Key_Right:
+ case Key_Left:
+ if ( key == Key_Left )
+ dx = -dx;
+ if ( dx > 0 ) {
+ long dist = QABS(dy)*4 + dx;
+ if ( dist < ddist ) {
+ ddist = dist;
+ pClosest = pZone;
+ }
+ }
+ break;
+ case Key_Down:
+ case Key_Up:
+ if ( key == Key_Down )
+ dy = -dy;
+ if ( dy > 0 ) {
+ long dist = QABS(dx)*4 + dy;
+ if ( dist < ddist ) {
+ ddist = dist;
+ pClosest = pZone;
+ }
+ }
+ break;
+ }
}
return pClosest;
}
void ZoneMap::slotFindCity( const QPoint &pos )
@@ -348,26 +352,26 @@ void ZoneMap::slotFindCity( const QPoint &pos )
// another way to do it at the moment. Another problem is a linked list is
// used obviously something indexed would help
QListIterator<ZoneField> it( zones );
pClosest = 0;
lClosest = LONG_MAX;
for (; it.current(); ++it) {
- pZone = it.current();
- // use the manhattenLength, a good enough of an appoximation here
- lDistance = QABS( x - pZone->x() ) + QABS( y - pZone->y() );
- // first to zero wins!
- if ( lDistance < lClosest ) {
- lClosest = lDistance;
- pClosest = pZone;
- }
+ pZone = it.current();
+ // use the manhattenLength, a good enough of an appoximation here
+ lDistance = QABS( x - pZone->x() ) + QABS( y - pZone->y() );
+ // first to zero wins!
+ if ( lDistance < lClosest ) {
+ lClosest = lDistance;
+ pClosest = pZone;
+ }
}
// Okay, we found the closest city, but it might still be too far away.
if ( lClosest <= iTHRESHOLD ) {
- showCity( pClosest );
- cursor = pClosest;
+ showCity( pClosest );
+ cursor = pClosest;
}
}
void ZoneMap::showCity( ZoneField *city )
{
pLast = city;
@@ -378,57 +382,57 @@ void ZoneMap::showCity( ZoneField *city )
// Display the time at this location by setting the environment timezone
// getting the current time [there] and then swapping back the variable
// so no one notices...
QString strSave;
char *p = getenv( "TZ" );
if ( p ) {
- strSave = p;
+ strSave = p;
}
// set the timezone :)
setenv( "TZ", strCountry + strCity, true );
lblCity->setText( strCity.replace( QRegExp("_"), " ") + "\n" +
- TimeString::shortTime( ampm ) );
+ TimeString::shortTime( ampm ) );
lblCity->setMinimumSize( lblCity->sizeHint() );
// undue our damage...
unsetenv( "TZ" );
if ( p )
- setenv( "TZ", strSave, true );
+ setenv( "TZ", strSave, true );
// Now decide where to move the label, x & y can be reused
int tmpx, tmpy, x, y;
zoneToWin( pLast->x(), pLast->y(), tmpx, tmpy );
contentsToViewport(tmpx, tmpy, x, y);
if ( lblCity->width() > drawableW - x ) {
- // oops... try putting it on the right
- x = x - lblCity->width() - iLABELOFFSET;
+ // oops... try putting it on the right
+ x = x - lblCity->width() - iLABELOFFSET;
} else {
- // the default...
- x += iLABELOFFSET;
+ // the default...
+ x += iLABELOFFSET;
}
if ( lblCity->height() > drawableH - y ) {
- // move it up...
- y = y - lblCity->height() - iLABELOFFSET;
+ // move it up...
+ y = y - lblCity->height() - iLABELOFFSET;
} else if ( y < 0 ) {
- // the city is actually off the screen...
- // this only happens on the a zoom when you are near the top,
- // a quick workaround..
- y = iLABELOFFSET;
+ // the city is actually off the screen...
+ // this only happens on the a zoom when you are near the top,
+ // a quick workaround..
+ y = iLABELOFFSET;
} else {
- // the default
- y += iLABELOFFSET;
+ // the default
+ y += iLABELOFFSET;
}
// draw in the city and the label
if ( pRepaint ) {
- int repx,
- repy;
- zoneToWin( pRepaint->x(), pRepaint->y(), repx, repy );
- updateContents( repx - iCITYOFFSET, repy - iCITYOFFSET,
- iCITYSIZE, iCITYSIZE );
+ int repx,
+ repy;
+ zoneToWin( pRepaint->x(), pRepaint->y(), repx, repy );
+ updateContents( repx - iCITYOFFSET, repy - iCITYOFFSET,
+ iCITYSIZE, iCITYSIZE );
}
updateContents( tmpx - iCITYOFFSET, tmpy - iCITYOFFSET, iCITYSIZE,
- iCITYSIZE );
+ iCITYSIZE );
pRepaint = pLast;
lblCity->move( x, y );
lblCity->show();
}
@@ -436,26 +440,26 @@ void ZoneMap::resizeEvent( QResizeEvent *e )
{
// keep the zoom button down in the corner
QSize _size = e->size();
cmdZoom->move( _size.width() - cmdZoom->width(),
_size.height() - cmdZoom->height() );
if ( !bZoom ) {
- drawableW = width() - 2 * frameWidth();
- drawableH = height() - 2 * frameWidth();
- makeMap( drawableW, drawableH );
- resizeContents( drawableW, drawableH );
+ drawableW = width() - 2 * frameWidth();
+ drawableH = height() - 2 * frameWidth();
+ makeMap( drawableW, drawableH );
+ resizeContents( drawableW, drawableH );
}
}
void ZoneMap::showZones( void ) const
{
// go through the zones in the list and just display the values...
QListIterator<ZoneField> itZone( zones );
for ( itZone.toFirst(); itZone.current(); ++itZone ) {
- ZoneField *pZone = itZone.current();
- pZone->showStructure();
+ ZoneField *pZone = itZone.current();
+ pZone->showStructure();
}
}
QWidget* ZoneMap::selectionWidget( QWidget *parent) {
@@ -468,13 +472,13 @@ QWidget* ZoneMap::selectionWidget( QWidget *parent) {
QWhatsThis::add( continentView, tr("Select a continent/country here, then select a city") );
connect ( continentView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( slotGetCities(QListViewItem*) ) );
QStringList continentList;
QListIterator<ZoneField> itZone( zones );
for ( itZone.toFirst(); itZone.current(); ++itZone ) {
- ZoneField *pZone = itZone.current();
+ ZoneField *pZone = itZone.current();
if ( continentList.contains( pZone->country() ) == 0 ) {
QString name;
QListViewItem *item;
if ( !(pZone->country().length() > 24) ) {
name = pZone->country().left(pZone->country().length()-1 );
} else {
@@ -495,13 +499,13 @@ QWidget* ZoneMap::selectionWidget( QWidget *parent) {
void ZoneMap::slotGetCities( QListViewItem * contItem) {
cityView->clear();
selectedCont = contItem->text( 1 );
QListIterator<ZoneField> itZone( zones );
for ( itZone.toFirst(); itZone.current(); ++itZone ) {
- ZoneField *pZone = itZone.current();
+ ZoneField *pZone = itZone.current();
if ( pZone->country() == contItem->text( 1 ) ) {
QListViewItem *item;
item = new QListViewItem( cityView, pZone->city() );
connect ( cityView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( slotCitySelected(QListViewItem*) ) );
}
}
@@ -519,17 +523,17 @@ void ZoneMap::drawCities( QPainter *p )
// draw in the cities
// for testing only as when you put it
// on the small screen it looks awful and not to mention useless
p->setPen( red );
QListIterator<ZoneField> itZone( zones );
for ( itZone.toFirst(), j = 0; itZone.current(); ++itZone, j++ ) {
- ZoneField *pZone = itZone.current();
- zoneToWin( pZone->x(), pZone->y(), x, y );
- if ( x > wImg )
- x = x - wImg;
- p->drawRect( x - iCITYOFFSET, y - iCITYOFFSET, iCITYSIZE, iCITYSIZE);
+ ZoneField *pZone = itZone.current();
+ zoneToWin( pZone->x(), pZone->y(), x, y );
+ if ( x > wImg )
+ x = x - wImg;
+ p->drawRect( x - iCITYOFFSET, y - iCITYOFFSET, iCITYSIZE, iCITYSIZE);
}
}
static void dayNight(QImage *pImage)
{
// create a mask the functions from sun.h
@@ -560,26 +564,26 @@ static void dayNight(QImage *pImage)
relw = wImage - int( wImage * 0.0275 );
// draw the map, keeping in mind that we may go too far off the map...
iMid = ( relw * ( 24*60 - pTm->tm_hour * 60 - pTm->tm_min ) ) / ( 24*60 );
for ( i = 0; i < hImage; i++ ) {
- if ( wtab[i] > 0 ) {
- iStart = iMid - wtab[i];
- iStop = iMid + wtab[i];
- if ( iStart < 0 ) {
- darken( pImage, iStop, wImage + iStart, i );
- } else if ( iStop > wImage ) {
- darken( pImage, iStop - wImage, iStart, i );
- } else {
- darken( pImage, 0, iStart, i );
- darken( pImage, iStop, wImage, i );
- }
- } else {
- darken( pImage, 0, wImage, i );
- }
+ if ( wtab[i] > 0 ) {
+ iStart = iMid - wtab[i];
+ iStop = iMid + wtab[i];
+ if ( iStart < 0 ) {
+ darken( pImage, iStop, wImage + iStart, i );
+ } else if ( iStop > wImage ) {
+ darken( pImage, iStop - wImage, iStart, i );
+ } else {
+ darken( pImage, 0, iStart, i );
+ darken( pImage, iStop, wImage, i );
+ }
+ } else {
+ darken( pImage, 0, wImage, i );
+ }
}
}
static inline void darken( QImage *pImage, int start, int stop, int row )
{
int colors,
@@ -588,44 +592,44 @@ static inline void darken( QImage *pImage, int start, int stop, int row )
// assume that the image is similar to the one we have...
colors = pImage->numColors() / 2;
p = pImage->scanLine( row );
for ( j = start; j <= stop; j++ ) {
- if ( p[j] < colors )
- p[j] += colors;
+ if ( p[j] < colors )
+ p[j] += colors;
}
}
void ZoneMap::makeMap( int w, int h )
{
QImage imgOrig = Resource::loadImage( strMAP );
if ( imgOrig.isNull() ) {
- QMessageBox::warning( this,
- tr( "Couldn't Find Map" ),
- tr( "<p>Couldn't load map: %1, exiting")
+ QMessageBox::warning( this,
+ tr( "Couldn't Find Map" ),
+ tr( "<p>Couldn't load map: %1, exiting")
.arg( strMAP ) );
- exit(-1);
+ exit(-1);
}
// set up the color table for darkening...
imgOrig = imgOrig.convertDepth( 8 );
int numColors = imgOrig.numColors();
// double the colors
imgOrig.setNumColors( 2 * numColors );
// darken the new ones...
for ( int i = 0; i < numColors; i++ ) {
- QRgb rgb = imgOrig.color( i );
- imgOrig.setColor ( i + numColors, qRgb( 2 * qRed( rgb ) / 3,
- 2 * qGreen( rgb ) / 3, 2 * qBlue( rgb ) / 3 ) );
+ QRgb rgb = imgOrig.color( i );
+ imgOrig.setColor ( i + numColors, qRgb( 2 * qRed( rgb ) / 3,
+ 2 * qGreen( rgb ) / 3, 2 * qBlue( rgb ) / 3 ) );
}
// else go one with making the map...
if ( bIllum ) {
- // do a daylight mask
- dayNight(&imgOrig);
+ // do a daylight mask
+ dayNight(&imgOrig);
}
// redo the width and height
wImg = w;
hImg = h;
ox = ( wImg / 2 ) - int( wImg * 0.0275 );
oy = hImg / 2;
@@ -651,44 +655,44 @@ void ZoneMap::drawContents( QPainter *p, int cx, int cy, int cw, int ch )
drawableH = height() - 2 * frameWidth();
int pixmapW = pixCurr->width(),
pixmapH = pixCurr->height();
if ( !bZoom && ( ( pixmapW != drawableW ) ||
( pixmapH != drawableH) ) ) {
- makeMap( drawableW, drawableH );
+ makeMap( drawableW, drawableH );
}
// taken from the scrollview example...
int rowheight = pixCurr->height();
int toprow = cy / rowheight;
int bottomrow = ( cy + ch + rowheight - 1 ) / rowheight;
int colwidth = pixCurr->width();
int leftcol= cx / colwidth;
int rightcol= ( cx + cw + colwidth - 1 ) / colwidth;
for ( int r = toprow; r <= bottomrow; r++ ) {
- int py = r * rowheight;
- for ( int c = leftcol; c <= rightcol; c++ ) {
- int px = c * colwidth;
- p->drawPixmap( px, py, *pixCurr );
- }
+ int py = r * rowheight;
+ for ( int c = leftcol; c <= rightcol; c++ ) {
+ int px = c * colwidth;
+ p->drawPixmap( px, py, *pixCurr );
+ }
}
// Draw that city!
if ( pLast )
- drawCity( p, pLast );
+ drawCity( p, pLast );
}
void ZoneMap::slotZoom( bool setZoom )
{
bZoom = setZoom;
if ( bZoom ) {
- makeMap( 2 * wImg , 2 * hImg );
- resizeContents( wImg, hImg );
+ makeMap( 2 * wImg , 2 * hImg );
+ resizeContents( wImg, hImg );
} else {
- makeMap( drawableW, drawableH );
- resizeContents( drawableW, drawableH );
+ makeMap( drawableW, drawableH );
+ resizeContents( drawableW, drawableH );
}
}
void ZoneMap::slotIllum( bool setIllum )
{
bIllum = !setIllum;
@@ -708,15 +712,15 @@ void ZoneMap::slotUpdate( void )
void ZoneMap::slotRedraw( void )
{
// paint over that pesky city...
int x,
y;
if ( pRepaint ) {
- pLast = 0;
- zoneToWin(pRepaint->x(), pRepaint->y(), x, y);
- updateContents( x - iCITYOFFSET, y - iCITYOFFSET, iCITYSIZE, iCITYSIZE);
+ pLast = 0;
+ zoneToWin(pRepaint->x(), pRepaint->y(), x, y);
+ updateContents( x - iCITYOFFSET, y - iCITYOFFSET, iCITYSIZE, iCITYSIZE);
pRepaint = 0;
}
}
void ZoneMap::changeClock( bool whichClock )
{