340b926a0ebbb0212682a5f76908ec2f7e1e4614
[chessclock] / classes / timecontrol / hourglasstimecontrol.cpp
1  /**************************************************************************
2
3     Chess Clock
4
5     Copyright (c) Arto Hyvättinen 2010
6
7     This file is part of Chess Clock software.
8
9     Chess Clock is free software: you can redistribute it and/or modify
10     it under the terms of the GNU General Public License as published by
11     the Free Software Foundation, either version 3 of the License, or
12     (at your option) any later version.
13
14     Chess Clock is distributed in the hope that it will be useful,
15     but WITHOUT ANY WARRANTY; without even the implied warranty of
16     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17     GNU General Public License for more details.
18
19
20 **************************************************************************/
21
22 #include "hourglasstimecontrol.h"
23 #include "hourglassclock.h"
24 #include "../clockswidget.h"
25 #include "basicdialog.h"
26
27 #include <QApplication>
28 #include <QTime>
29
30 HourGlassTimeControl::HourGlassTimeControl()
31 {
32 }
33
34
35 QString HourGlassTimeControl::getName()
36 {
37     return qApp->translate("Hour Glass","Hour Glass");
38 }
39
40 QString HourGlassTimeControl::getDescription()
41 {
42     return qApp->translate("Hour Glass","Time added to clock is substracted to another");
43 }
44
45 ClocksWidget* HourGlassTimeControl::initGame(bool useLastSettings)
46 {
47     BasicDialog dialog(getName());
48     dialog.disableAddition();
49     dialog.init(QTime(0,30),QTime(0,30));
50
51     if( useLastSettings || dialog.exec() == QDialog::Accepted)
52     {
53         dialog.store();
54         HourGlassClock* white = new HourGlassClock( true);
55         white->setTimeAvailable(dialog.getWhiteInitial());
56
57         HourGlassClock* black = new HourGlassClock( false);
58         black->setTimeAvailable( dialog.getBlackInitial());
59
60         return( new ClocksWidget(white,black));
61
62     }
63     else
64         return 0;
65 }