+void ChessClockWindow::pause()
+{
+ if( clocks_ )
+ clocks_->pause();
+}
+
+void ChessClockWindow::newGame()
+{
+ pause();
+ if( clocks_ == 0 || !clocks_->isPlayStarted() || QMessageBox::question(this, tr("Start new game"),
+ tr("Really quit the current game and start a new one?"),
+ QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
+ {
+ stack_->setCurrentWidget(start_);
+
+ if( clocks_ )
+ { stack_->removeWidget(clocks_);
+ delete clocks_;
+ }
+ clocks_=0;
+ }
+}
+
+void ChessClockWindow::visitWeb()
+{
+ pause();
+ QProcess* process = new QProcess(this);
+ process->start(QString("browser --url=chessclock.garage.maemo.org"));
+}
+
+void ChessClockWindow::about()
+{
+ pause();
+ QMessageBox::about(this, tr("About ChessClock"),
+ tr("<h1>Chess Clock %1</h1>"
+ "©Arto Hyvättinen 2010"
+ "<p>Chess Clock is free software under the terms of GNU General Public License 3"
+ "<p>Bugtracker and instructions at <a>http://chessclock.garage.maemo.org</a>"
+ ).arg(qApp->applicationVersion())) ;
+}
+
+void ChessClockWindow::aboutQt()
+{
+ pause();
+ qApp->aboutQt();
+}
+
+
+void ChessClockWindow::initTimeControls()
+{
+ start_->addTimeControl( new NoTimeControl );
+ start_->addTimeControl( new FischerTimeControl);
+ start_->addTimeControl( new FischerAfterTimeControl);
+ start_->addTimeControl( new DelayTimeControl );
+ start_->addTimeControl( new DelayAfterTimeControl);
+ start_->addTimeControl( new HourGlassTimeControl);
+}
+
+void ChessClockWindow::startGame(TimeControl *timecontrol)
+{
+ ClocksWidget* newWidget = timecontrol->initGame(false);
+ if( newWidget )
+ {
+
+ clocks_ = newWidget;
+ stack_->addWidget(clocks_);
+ stack_->setCurrentWidget(clocks_);
+ connect( clocks_, SIGNAL(TurnFinished(TurnInformation*)), this, SLOT(dontEatMemory(TurnInformation*)));
+ }
+}
+
+