summaryrefslogtreecommitdiff
authorschurig <schurig>2004-09-13 13:54:56 (UTC)
committer schurig <schurig>2004-09-13 13:54:56 (UTC)
commit5880f51e9d6a4ad2c670f7679e874fc0610d850a (patch) (unidiff)
tree50f251b078dc63588f0a521e9ccea014dabc0ca7
parent79c99fb1b7317ad104e3b54bcbcf726f6413e8be (diff)
downloadopie-5880f51e9d6a4ad2c670f7679e874fc0610d850a.zip
opie-5880f51e9d6a4ad2c670f7679e874fc0610d850a.tar.gz
opie-5880f51e9d6a4ad2c670f7679e874fc0610d850a.tar.bz2
Renamed 'Mine Hunt' to 'Mine Sweep', both in title and icon name
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--apps/Games/minesweep.desktop2
-rw-r--r--noncore/games/minesweep/minesweep.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/apps/Games/minesweep.desktop b/apps/Games/minesweep.desktop
index 3a74b46..b630647 100644
--- a/apps/Games/minesweep.desktop
+++ b/apps/Games/minesweep.desktop
@@ -1,27 +1,27 @@
1[Desktop Entry] 1[Desktop Entry]
2Exec=minesweep 2Exec=minesweep
3Icon=minesweep/MineHunt 3Icon=minesweep/MineSweep
4Type=Application 4Type=Application
5Name=Mine Hunt 5Name=Mine Hunt
6Comment=Find the mines 6Comment=Find the mines
7Name[fr]=Démineur 7Name[fr]=Démineur
8Comment[fr]=Jeu de déminage 8Comment[fr]=Jeu de déminage
9Name[de]=Minenjagd 9Name[de]=Minenjagd
10Comment[de]=Finde die Minen 10Comment[de]=Finde die Minen
11Name[es]=Busca Minas 11Name[es]=Busca Minas
12Comment[es]=Busca las minas 12Comment[es]=Busca las minas
13Name[fr]=Démineur 13Name[fr]=Démineur
14Name[hu]=Aknakeresõ 14Name[hu]=Aknakeresõ
15Name[it]=Campo Minato 15Name[it]=Campo Minato
16Comment[it]=Campo Minato 16Comment[it]=Campo Minato
17Name[no]=Minesøk 17Name[no]=Minesøk
18Name[pt]=Minas 18Name[pt]=Minas
19Comment[pt]=Procura as minas 19Comment[pt]=Procura as minas
20Name[pt_BR]=Caça-Minas 20Name[pt_BR]=Caça-Minas
21Comment[pt_BR]=Caça as minas 21Comment[pt_BR]=Caça as minas
22Name[zh_TW]=踩地雷 22Name[zh_TW]=踩地雷
23Name[sl]=Minolovec 23Name[sl]=Minolovec
24Comment[sl]=Najdi mine 24Comment[sl]=Najdi mine
25Name[nl]=Mijnenveger 25Name[nl]=Mijnenveger
26Name[ru]=Сапер 26Name[ru]=Сапер
27Comment[ru]=Отыщите мины 27Comment[ru]=Отыщите мины
diff --git a/noncore/games/minesweep/minesweep.cpp b/noncore/games/minesweep/minesweep.cpp
index 4a6a92c..c14609d 100644
--- a/noncore/games/minesweep/minesweep.cpp
+++ b/noncore/games/minesweep/minesweep.cpp
@@ -1,408 +1,408 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the 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#include "minesweep.h" 21#include "minesweep.h"
22#include "minefield.h" 22#include "minefield.h"
23 23
24#include <qtopia/qpeapplication.h> 24#include <qtopia/qpeapplication.h>
25#include <qtopia/resource.h> 25#include <qtopia/resource.h>
26#include <qtopia/config.h> 26#include <qtopia/config.h>
27 27
28#include <qtoolbar.h> 28#include <qtoolbar.h>
29#include <qmenubar.h> 29#include <qmenubar.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31#include <qlcdnumber.h> 31#include <qlcdnumber.h>
32#include <qtimer.h> 32#include <qtimer.h>
33#include <qlabel.h> 33#include <qlabel.h>
34 34
35#include <stdlib.h> 35#include <stdlib.h>
36#include <time.h> 36#include <time.h>
37 37
38 38
39 39
40 40
41static const char *pix_new[]={ 41static const char *pix_new[]={
42"20 20 3 1", 42"20 20 3 1",
43" c None", 43" c None",
44"# c #00FF00", 44"# c #00FF00",
45". c #000000", 45". c #000000",
46" ", 46" ",
47" ...... ", 47" ...... ",
48" ..######.. ", 48" ..######.. ",
49" .##########. ", 49" .##########. ",
50" .############. ", 50" .############. ",
51" .##############. ", 51" .##############. ",
52" .##############. ", 52" .##############. ",
53" .################. ", 53" .################. ",
54" .################. ", 54" .################. ",
55" .################. ", 55" .################. ",
56" .################. ", 56" .################. ",
57" .################. ", 57" .################. ",
58" .################. ", 58" .################. ",
59" .##############. ", 59" .##############. ",
60" .##############. ", 60" .##############. ",
61" .############. ", 61" .############. ",
62" .##########. ", 62" .##########. ",
63" ..######.. ", 63" ..######.. ",
64" ...... ", 64" ...... ",
65" "}; 65" "};
66 66
67 67
68/* XPM */ 68/* XPM */
69static const char * happy_xpm[] = { 69static const char * happy_xpm[] = {
70"20 20 3 1", 70"20 20 3 1",
71 " c None", 71 " c None",
72 ".c #ffff3f ", 72 ".c #ffff3f ",
73 "#c #000000", 73 "#c #000000",
74" ", 74" ",
75" ###### ", 75" ###### ",
76" ##......## ", 76" ##......## ",
77" #..........# ", 77" #..........# ",
78" #............# ", 78" #............# ",
79" #..............# ", 79" #..............# ",
80" #..............# ", 80" #..............# ",
81" #....##....##....# ", 81" #....##....##....# ",
82" #....##....##....# ", 82" #....##....##....# ",
83" #................# ", 83" #................# ",
84" #................# ", 84" #................# ",
85" #................# ", 85" #................# ",
86" #...#........#...# ", 86" #...#........#...# ",
87" #.##........##.# ", 87" #.##........##.# ",
88" #...########...# ", 88" #...########...# ",
89" #...######...# ", 89" #...######...# ",
90" #..........# ", 90" #..........# ",
91" ##......## ", 91" ##......## ",
92" ###### ", 92" ###### ",
93" "}; 93" "};
94 94
95 95
96/* XPM */ 96/* XPM */
97static const char * worried_xpm[] = { 97static const char * worried_xpm[] = {
98"20 20 3 1", 98"20 20 3 1",
99 " c None", 99 " c None",
100 ".c #ffff3f", 100 ".c #ffff3f",
101 "#c #000000", 101 "#c #000000",
102" ", 102" ",
103" ###### ", 103" ###### ",
104" ##......## ", 104" ##......## ",
105" #..........# ", 105" #..........# ",
106" #............# ", 106" #............# ",
107" #..............# ", 107" #..............# ",
108" #..............# ", 108" #..............# ",
109" #....##....##....# ", 109" #....##....##....# ",
110" #....##....##....# ", 110" #....##....##....# ",
111" #................# ", 111" #................# ",
112" #................# ", 112" #................# ",
113" #................# ", 113" #................# ",
114" #................# ", 114" #................# ",
115" #....######....# ", 115" #....######....# ",
116" #..............# ", 116" #..............# ",
117" #............# ", 117" #............# ",
118" #..........# ", 118" #..........# ",
119" ##......## ", 119" ##......## ",
120" ###### ", 120" ###### ",
121" "}; 121" "};
122 122
123 123
124/* XPM */ 124/* XPM */
125static const char * dead_xpm[] = { 125static const char * dead_xpm[] = {
126"20 20 3 1", 126"20 20 3 1",
127 " c None", 127 " c None",
128 ".c #ffff3f", 128 ".c #ffff3f",
129 "#c #000000", 129 "#c #000000",
130" ", 130" ",
131" ###### ", 131" ###### ",
132" ##......## ", 132" ##......## ",
133" #..........# ", 133" #..........# ",
134" #............# ", 134" #............# ",
135" #..............# ", 135" #..............# ",
136" #..#.#...#.#...# ", 136" #..#.#...#.#...# ",
137" #....#.....#.....# ", 137" #....#.....#.....# ",
138" #...#.#...#.#....# ", 138" #...#.#...#.#....# ",
139" #................# ", 139" #................# ",
140" #................# ", 140" #................# ",
141" #................# ", 141" #................# ",
142" #......####......# ", 142" #......####......# ",
143" #....# #....# ", 143" #....# #....# ",
144" #...#......#...# ", 144" #...#......#...# ",
145" #............# ", 145" #............# ",
146" #..........# ", 146" #..........# ",
147" ##......## ", 147" ##......## ",
148" ###### ", 148" ###### ",
149" "}; 149" "};
150 150
151 151
152class ResultIndicator : private QLabel 152class ResultIndicator : private QLabel
153{ 153{
154public: 154public:
155 static void showResult( QWidget *ref, bool won ); 155 static void showResult( QWidget *ref, bool won );
156private: 156private:
157 ResultIndicator( QWidget *parent, const char *name, WFlags f) 157 ResultIndicator( QWidget *parent, const char *name, WFlags f)
158 :QLabel( parent, name, f ) {} 158 :QLabel( parent, name, f ) {}
159 159
160 void timerEvent( QTimerEvent *); 160 void timerEvent( QTimerEvent *);
161 void center(); 161 void center();
162 bool twoStage; 162 bool twoStage;
163 int timerId; 163 int timerId;
164}; 164};
165 165
166void ResultIndicator::showResult( QWidget *ref, bool won ) 166void ResultIndicator::showResult( QWidget *ref, bool won )
167{ 167{
168 ResultIndicator *r = new ResultIndicator( ref, 0, WStyle_Customize | WStyle_Tool | WType_TopLevel ); 168 ResultIndicator *r = new ResultIndicator( ref, 0, WStyle_Customize | WStyle_Tool | WType_TopLevel );
169 169
170 r->setAlignment( AlignCenter ); 170 r->setAlignment( AlignCenter );
171 r->setFrameStyle( Sunken|StyledPanel ); 171 r->setFrameStyle( Sunken|StyledPanel );
172 if ( won ) { 172 if ( won ) {
173 r->setText( MineSweep::tr("You won!") ); 173 r->setText( MineSweep::tr("You won!") );
174 r->center(); 174 r->center();
175 r->show(); 175 r->show();
176 r->twoStage = FALSE; 176 r->twoStage = FALSE;
177 r->timerId = r->startTimer(1500); 177 r->timerId = r->startTimer(1500);
178 } else { 178 } else {
179 QPalette p( red ); 179 QPalette p( red );
180 r->setPalette( p ); 180 r->setPalette( p );
181 r->setText( MineSweep::tr("You exploded!") ); 181 r->setText( MineSweep::tr("You exploded!") );
182 r->resize( ref->size() ); 182 r->resize( ref->size() );
183 r->move( ref->mapToGlobal(QPoint(0,0)) ); 183 r->move( ref->mapToGlobal(QPoint(0,0)) );
184 r->show(); 184 r->show();
185 r->twoStage = TRUE; 185 r->twoStage = TRUE;
186 r->timerId =r->startTimer(200); 186 r->timerId =r->startTimer(200);
187 } 187 }
188} 188}
189 189
190void ResultIndicator::center() 190void ResultIndicator::center()
191{ 191{
192 QWidget *w = parentWidget(); 192 QWidget *w = parentWidget();
193 193
194 QPoint pp = w->mapToGlobal( QPoint(0,0) ); 194 QPoint pp = w->mapToGlobal( QPoint(0,0) );
195 QSize s = sizeHint()*3; 195 QSize s = sizeHint()*3;
196 s.setWidth( QMIN(s.width(), w->width()) ); 196 s.setWidth( QMIN(s.width(), w->width()) );
197 pp = QPoint( pp.x() + w->width()/2 - s.width()/2, 197 pp = QPoint( pp.x() + w->width()/2 - s.width()/2,
198 pp.y() + w->height()/ 2 - s.height()/2 ); 198 pp.y() + w->height()/ 2 - s.height()/2 );
199 199
200 setGeometry( QRect(pp, s) ); 200 setGeometry( QRect(pp, s) );
201 201
202} 202}
203 203
204void ResultIndicator::timerEvent( QTimerEvent *te ) 204void ResultIndicator::timerEvent( QTimerEvent *te )
205{ 205{
206 if ( te->timerId() != timerId ) 206 if ( te->timerId() != timerId )
207 return; 207 return;
208 killTimer( timerId ); 208 killTimer( timerId );
209 if ( twoStage ) { 209 if ( twoStage ) {
210 center(); 210 center();
211 twoStage = FALSE; 211 twoStage = FALSE;
212 timerId = startTimer( 1000 ); 212 timerId = startTimer( 1000 );
213 } else { 213 } else {
214 delete this; 214 delete this;
215 } 215 }
216} 216}
217 217
218 218
219class MineFrame : public QFrame 219class MineFrame : public QFrame
220{ 220{
221public: 221public:
222 MineFrame( QWidget *parent, const char *name = 0 ) 222 MineFrame( QWidget *parent, const char *name = 0 )
223 :QFrame( parent, name ), field(0) {} 223 :QFrame( parent, name ), field(0) {}
224 void setField( MineField *f ) { 224 void setField( MineField *f ) {
225 field = f; 225 field = f;
226 setMinimumSize( field->sizeHint() ); 226 setMinimumSize( field->sizeHint() );
227 } 227 }
228protected: 228protected:
229 void resizeEvent( QResizeEvent *e ) { 229 void resizeEvent( QResizeEvent *e ) {
230 field->setAvailableRect( contentsRect()); 230 field->setAvailableRect( contentsRect());
231 QFrame::resizeEvent(e); 231 QFrame::resizeEvent(e);
232 } 232 }
233private: 233private:
234 MineField *field; 234 MineField *field;
235}; 235};
236 236
237 237
238 238
239MineSweep::MineSweep( QWidget* parent, const char* name, WFlags f ) 239MineSweep::MineSweep( QWidget* parent, const char* name, WFlags f )
240: QMainWindow( parent, name, f ) 240: QMainWindow( parent, name, f )
241{ 241{
242 srand(::time(0)); 242 srand(::time(0));
243 setCaption( tr("Mine Hunt") ); 243 setCaption( tr("Mine Sweep") );
244 QPEApplication::setInputMethodHint(this, QPEApplication::AlwaysOff ); 244 QPEApplication::setInputMethodHint(this, QPEApplication::AlwaysOff );
245 setIcon( Resource::loadPixmap( "minesweep/MineHunt" ) ); 245 setIcon( Resource::loadPixmap( "minesweep/MineSweep" ) );
246 246
247 QToolBar *toolBar = new QToolBar( this ); 247 QToolBar *toolBar = new QToolBar( this );
248 toolBar->setHorizontalStretchable( TRUE ); 248 toolBar->setHorizontalStretchable( TRUE );
249 249
250 QMenuBar *menuBar = new QMenuBar( toolBar ); 250 QMenuBar *menuBar = new QMenuBar( toolBar );
251 251
252 QPopupMenu *gameMenu = new QPopupMenu( this ); 252 QPopupMenu *gameMenu = new QPopupMenu( this );
253 gameMenu->insertItem( tr("Beginner"), this, SLOT( beginner() ) ); 253 gameMenu->insertItem( tr("Beginner"), this, SLOT( beginner() ) );
254 gameMenu->insertItem( tr("Advanced"), this, SLOT( advanced() ) ); 254 gameMenu->insertItem( tr("Advanced"), this, SLOT( advanced() ) );
255 255
256 if (qApp->desktop()->width() >= 240) { 256 if (qApp->desktop()->width() >= 240) {
257 gameMenu->insertItem( tr("Expert"), this, SLOT( expert() ) ); 257 gameMenu->insertItem( tr("Expert"), this, SLOT( expert() ) );
258 } 258 }
259 259
260 menuBar->insertItem( tr("Game"), gameMenu ); 260 menuBar->insertItem( tr("Game"), gameMenu );
261 261
262 guessLCD = new QLCDNumber( toolBar ); 262 guessLCD = new QLCDNumber( toolBar );
263 toolBar->setStretchableWidget( guessLCD ); 263 toolBar->setStretchableWidget( guessLCD );
264 264
265 QPalette lcdPal( red ); 265 QPalette lcdPal( red );
266 lcdPal.setColor( QColorGroup::Background, QApplication::palette().active().background() ); 266 lcdPal.setColor( QColorGroup::Background, QApplication::palette().active().background() );
267 lcdPal.setColor( QColorGroup::Button, QApplication::palette().active().button() ); 267 lcdPal.setColor( QColorGroup::Button, QApplication::palette().active().button() );
268 268
269// guessLCD->setPalette( lcdPal ); 269// guessLCD->setPalette( lcdPal );
270 guessLCD->setSegmentStyle( QLCDNumber::Flat ); 270 guessLCD->setSegmentStyle( QLCDNumber::Flat );
271 guessLCD->setFrameStyle( QFrame::NoFrame ); 271 guessLCD->setFrameStyle( QFrame::NoFrame );
272 guessLCD->setNumDigits( 2 ); 272 guessLCD->setNumDigits( 2 );
273 guessLCD->setBackgroundMode( PaletteButton ); 273 guessLCD->setBackgroundMode( PaletteButton );
274 newGameButton = new QPushButton( toolBar ); 274 newGameButton = new QPushButton( toolBar );
275 newGameButton->setPixmap( QPixmap( pix_new ) ); 275 newGameButton->setPixmap( QPixmap( pix_new ) );
276 newGameButton->setFocusPolicy(QWidget::NoFocus); 276 newGameButton->setFocusPolicy(QWidget::NoFocus);
277 connect( newGameButton, SIGNAL(clicked()), this, SLOT(newGame()) ); 277 connect( newGameButton, SIGNAL(clicked()), this, SLOT(newGame()) );
278 278
279 timeLCD = new QLCDNumber( toolBar ); 279 timeLCD = new QLCDNumber( toolBar );
280// timeLCD->setPalette( lcdPal ); 280// timeLCD->setPalette( lcdPal );
281 timeLCD->setSegmentStyle( QLCDNumber::Flat ); 281 timeLCD->setSegmentStyle( QLCDNumber::Flat );
282 timeLCD->setFrameStyle( QFrame::NoFrame ); 282 timeLCD->setFrameStyle( QFrame::NoFrame );
283 timeLCD->setNumDigits( 5 ); // "mm:ss" 283 timeLCD->setNumDigits( 5 ); // "mm:ss"
284 timeLCD->setBackgroundMode( PaletteButton ); 284 timeLCD->setBackgroundMode( PaletteButton );
285 285
286 setToolBarsMovable ( FALSE ); 286 setToolBarsMovable ( FALSE );
287 287
288 addToolBar( toolBar ); 288 addToolBar( toolBar );
289 289
290 MineFrame *mainframe = new MineFrame( this ); 290 MineFrame *mainframe = new MineFrame( this );
291 mainframe->setFrameShape( QFrame::Box ); 291 mainframe->setFrameShape( QFrame::Box );
292 mainframe->setFrameShadow( QFrame::Raised ); 292 mainframe->setFrameShadow( QFrame::Raised );
293 293
294 mainframe->setLineWidth(2); 294 mainframe->setLineWidth(2);
295 295
296 field = new MineField( mainframe ); 296 field = new MineField( mainframe );
297 mainframe->setField( field ); 297 mainframe->setField( field );
298 QFont fnt = field->font(); 298 QFont fnt = field->font();
299 fnt.setBold( TRUE ); 299 fnt.setBold( TRUE );
300 field->setFont( QFont( fnt ) ); 300 field->setFont( QFont( fnt ) );
301 field->setFocus(); 301 field->setFocus();
302 setCentralWidget( mainframe ); 302 setCentralWidget( mainframe );
303 303
304 connect( field, SIGNAL( gameOver(bool) ), this, SLOT( gameOver(bool) ) ); 304 connect( field, SIGNAL( gameOver(bool) ), this, SLOT( gameOver(bool) ) );
305 connect( field, SIGNAL( mineCount(int) ), this, SLOT( setCounter(int) ) ); 305 connect( field, SIGNAL( mineCount(int) ), this, SLOT( setCounter(int) ) );
306 connect( field, SIGNAL( gameStarted()), this, SLOT( startPlaying() ) ); 306 connect( field, SIGNAL( gameStarted()), this, SLOT( startPlaying() ) );
307 307
308 timer = new QTimer( this ); 308 timer = new QTimer( this );
309 connect( timer, SIGNAL( timeout() ), this, SLOT( updateTime() ) ); 309 connect( timer, SIGNAL( timeout() ), this, SLOT( updateTime() ) );
310 310
311 readConfig(); 311 readConfig();
312} 312}
313 313
314MineSweep::~MineSweep() 314MineSweep::~MineSweep()
315{ 315{
316 writeConfig(); 316 writeConfig();
317} 317}
318 318
319void MineSweep::gameOver( bool won ) 319void MineSweep::gameOver( bool won )
320{ 320{
321 field->showMines(); 321 field->showMines();
322 if ( won ) { 322 if ( won ) {
323 newGameButton->setPixmap( QPixmap( happy_xpm ) ); 323 newGameButton->setPixmap( QPixmap( happy_xpm ) );
324 } else { 324 } else {
325 newGameButton->setPixmap( QPixmap( dead_xpm ) ); 325 newGameButton->setPixmap( QPixmap( dead_xpm ) );
326 } 326 }
327 ResultIndicator::showResult( this, won ); 327 ResultIndicator::showResult( this, won );
328 timer->stop(); 328 timer->stop();
329} 329}
330 330
331void MineSweep::newGame() 331void MineSweep::newGame()
332{ 332{
333 newGame(field->level()); 333 newGame(field->level());
334} 334}
335 335
336void MineSweep::newGame(int level) 336void MineSweep::newGame(int level)
337{ 337{
338 timeLCD->display( "0:00" ); 338 timeLCD->display( "0:00" );
339 field->setup( level ); 339 field->setup( level );
340 newGameButton->setPixmap( QPixmap( pix_new ) ); 340 newGameButton->setPixmap( QPixmap( pix_new ) );
341 timer->stop(); 341 timer->stop();
342} 342}
343 343
344void MineSweep::startPlaying() 344void MineSweep::startPlaying()
345{ 345{
346 newGameButton->setPixmap( QPixmap( worried_xpm ) ); 346 newGameButton->setPixmap( QPixmap( worried_xpm ) );
347 starttime = QDateTime::currentDateTime(); 347 starttime = QDateTime::currentDateTime();
348 timer->start( 1000 ); 348 timer->start( 1000 );
349} 349}
350 350
351void MineSweep::beginner() 351void MineSweep::beginner()
352{ 352{
353 newGame(1); 353 newGame(1);
354} 354}
355 355
356void MineSweep::advanced() 356void MineSweep::advanced()
357{ 357{
358 newGame(2); 358 newGame(2);
359} 359}
360 360
361void MineSweep::expert() 361void MineSweep::expert()
362{ 362{
363 newGame(3); 363 newGame(3);
364} 364}
365 365
366void MineSweep::setCounter( int c ) 366void MineSweep::setCounter( int c )
367{ 367{
368 if ( !guessLCD ) 368 if ( !guessLCD )
369 return; 369 return;
370 370
371 guessLCD->display( c ); 371 guessLCD->display( c );
372} 372}
373 373
374void MineSweep::updateTime() 374void MineSweep::updateTime()
375{ 375{
376 if ( !timeLCD ) 376 if ( !timeLCD )
377 return; 377 return;
378 378
379 int s = starttime.secsTo(QDateTime::currentDateTime()); 379 int s = starttime.secsTo(QDateTime::currentDateTime());
380 if ( s/60 > 99 ) 380 if ( s/60 > 99 )
381 timeLCD->display( "-----" ); 381 timeLCD->display( "-----" );
382 else 382 else
383 timeLCD->display( QString().sprintf("%2d:%02d",s/60,s%60) ); 383 timeLCD->display( QString().sprintf("%2d:%02d",s/60,s%60) );
384} 384}
385 385
386void MineSweep::writeConfig() const 386void MineSweep::writeConfig() const
387{ 387{
388 Config cfg("MineSweep"); 388 Config cfg("MineSweep");
389 cfg.setGroup("Panel"); 389 cfg.setGroup("Panel");
390 cfg.writeEntry("Time", 390 cfg.writeEntry("Time",
391 timer->isActive() ? starttime.secsTo(QDateTime::currentDateTime()) : -1); 391 timer->isActive() ? starttime.secsTo(QDateTime::currentDateTime()) : -1);
392 field->writeConfig(cfg); 392 field->writeConfig(cfg);
393} 393}
394 394
395void MineSweep::readConfig() 395void MineSweep::readConfig()
396{ 396{
397 Config cfg("MineSweep"); 397 Config cfg("MineSweep");
398 field->readConfig(cfg); 398 field->readConfig(cfg);
399 cfg.setGroup("Panel"); 399 cfg.setGroup("Panel");
400 int s = cfg.readNumEntry("Time",-1); 400 int s = cfg.readNumEntry("Time",-1);
401 if ( s<0 ) { 401 if ( s<0 ) {
402 newGame(); 402 newGame();
403 } else { 403 } else {
404 startPlaying(); 404 startPlaying();
405 starttime = QDateTime::currentDateTime().addSecs(-s); 405 starttime = QDateTime::currentDateTime().addSecs(-s);
406 updateTime(); 406 updateTime();
407 } 407 }
408} 408}