Use CuteChessApplication as base for the GUI
[sloppygui.git] / projects / gui / src / chessclock.cpp
blob2d1a876cb57ad5255c127d6a5a2d7b3abbf13269
1 /*
2 This file is part of Cute Chess.
4 Cute Chess is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 Cute Chess is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with Cute Chess. If not, see <http://www.gnu.org/licenses/>.
18 #include <QtGui>
19 #include "chessclock.h"
22 ChessClock::ChessClock(QWidget* parent)
23 : QLCDNumber(parent),
24 m_totalTime(0),
25 m_timerId(-1)
27 setFrameShape(QFrame::NoFrame);
28 setSegmentStyle(QLCDNumber::Flat);
31 void ChessClock::start(int totalTime)
33 m_time.start();
34 m_totalTime = totalTime;
35 m_timerId = startTimer(1000);
36 updateDisplay();
39 void ChessClock::stop()
41 killTimer(m_timerId);
42 updateDisplay();
45 void ChessClock::updateDisplay()
47 int msLeft = m_totalTime - m_time.elapsed();
48 QTime timeLeft = QTime().addMSecs(abs(msLeft));
50 QString format;
51 if (timeLeft.hour() > 0)
52 format = "hh:mm:ss";
53 else
54 format = "mm:ss";
56 QString str;
57 if (msLeft < 0)
58 str += "-";
59 str += timeLeft.toString(format);
60 setNumDigits(str.length());
61 display(str);
64 void ChessClock::timerEvent(QTimerEvent* event)
66 if (!event)
67 return;
69 if (event->timerId() == m_timerId)
70 updateDisplay();