1
/***************************************************************************
2
qnewgamedlg.cpp - description
4
begin : Thu Dec 20 2001
5
copyright : (C) 2001 by PALM Thomas , DINTILHAC Florian, HIVERT Anthony, PIOC Sebastien
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
18
#include "qnewgamedlg.h"
21
#include <qmessagebox.h>
23
#include <qfiledialog.h>
27
* Constructs a QNewGameDlg which is a child of 'parent', with the
28
* name 'name' and widget flags set to 'f'
30
* The dialog will by default be modeless, unless you set 'modal' to
31
* TRUE to construct a modal dialog.
37
//QNewGameDlg::QNewGameDlg( QWidget* parent, const char* name, bool modal, WFlags fl )
38
// : QDialog( parent, name, modal, fl )
39
QNewGameDlg::QNewGameDlg( QWidget* parent, const char* name)
40
: QNewGameDlgGui( parent, name, true )
45
// signals and slots connections
46
connect( _BlackTypeComboBox, SIGNAL( activated(int) ), this, SLOT( slotPlayerBlackTypeChanged() ) );
47
connect( _WhiteTypeComboBox, SIGNAL( activated(int) ), this, SLOT( slotPlayerWhiteTypeChanged() ) );
48
connect( _WhitePlayerLineEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotPlayerWhiteNameChanged() ) );
49
connect( _BlackPlayerLineEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotPlayerBlackNameChanged() ) );
50
connect( _SizeSpinBox, SIGNAL( valueChanged(int) ), this, SLOT( slotGobanSizeChanged() ) );
51
// connect( _KomiLineEdit, SIGNAL( textChanged(const QString&) ), this, SLOT( slotKomiChanged() ) );
52
connect( _HandicapSpinBox, SIGNAL( valueChanged(int) ), this, SLOT( slotHandicapChanged() ) );
53
// connect( _TimeSpinBox, SIGNAL( valueChanged(int) ), this, SLOT( slotTimeChanged() ) );
54
connect( _WhiteLevelSpinBox, SIGNAL( valueChanged(int) ), this, SLOT( slotLevelWhiteChanged() ) );
55
connect( _BlackLevelSpinBox, SIGNAL( valueChanged(int) ), this, SLOT( slotLevelBlackChanged() ) );
56
connect( _OkPushButton, SIGNAL( clicked() ), this, SLOT( slotOk() ) );
57
connect( _CancelPushButton, SIGNAL( clicked() ), this, SLOT( slotCancel() ) );
58
connect( _oneColorGoCheckbox, SIGNAL( clicked() ), this, SLOT( slotOneColorGoClicked() ) );
63
* Destroys the object and frees any allocated resources
65
QNewGameDlg::~QNewGameDlg()
67
// no need to delete child widgets, Qt does it all for us
71
* Main event handler. Reimplemented to handle application
74
bool QNewGameDlg::event( QEvent* ev )
76
// bool ret = QDialog::event( ev );
77
// if ( ev->type() == QEvent::ApplicationFontChange ) {
78
// QFont WhiteNewGameLabel_font( _WhiteNewGameLabel->font() );
79
// WhiteNewGameLabel_font.setPointSize( 18 );
80
// WhiteNewGameLabel_font.setBold( TRUE );
81
// _WhiteNewGameLabel->setFont( WhiteNewGameLabel_font );
82
// QFont BlackNewGameLabel_font( _BlackNewGameLabel->font() );
83
// BlackNewGameLabel_font.setPointSize( 19 );
84
// BlackNewGameLabel_font.setBold( TRUE );
85
// _BlackNewGameLabel->setFont( BlackNewGameLabel_font );
90
void QNewGameDlg::slotCancel()
96
void QNewGameDlg::slotOk()
99
if (getPlayerBlackName().simplifyWhiteSpace().isEmpty())
100
_playerBlackName = getPlayerBlackType() == HUMAN ? tr("Human") : tr("Computer");
101
if (getPlayerWhiteName().simplifyWhiteSpace().isEmpty())
102
_playerWhiteName = getPlayerWhiteType() == HUMAN ? tr("Human") : tr("Computer");
107
QMessageBox msg(tr("Error"),tr("You entered an invalid Handicap (1 is not legal)"), QMessageBox::Warning,
108
QMessageBox::Ok | QMessageBox::Default, QMessageBox::NoButton, QMessageBox::NoButton);
116
void QNewGameDlg::slotGobanSizeChanged()
118
_size=_SizeSpinBox->text().toInt();
121
void QNewGameDlg::slotHandicapChanged()
123
_handicap=_HandicapSpinBox->text().toInt();
129
void QNewGameDlg::slotKomiChanged()
131
// _komi=_KomiLineEdit->text().toFloat();
134
void QNewGameDlg::slotLevelBlackChanged()
136
_levelBlack=_BlackLevelSpinBox->text().toInt();
139
void QNewGameDlg::slotLevelWhiteChanged()
141
_levelWhite=_WhiteLevelSpinBox->text().toInt();
144
void QNewGameDlg::slotPlayerBlackNameChanged()
146
_playerBlackName=_BlackPlayerLineEdit->text();
149
void QNewGameDlg::slotPlayerBlackTypeChanged()
151
_playerBlackType=_BlackTypeComboBox->currentItem();
152
if (_BlackTypeComboBox->currentItem()==HUMAN)
153
_BlackLevelSpinBox->setDisabled(true);
155
_BlackLevelSpinBox->setEnabled(true);
158
void QNewGameDlg::slotPlayerWhiteNameChanged()
160
_playerWhiteName=_WhitePlayerLineEdit->text();
163
void QNewGameDlg::slotPlayerWhiteTypeChanged()
165
_playerWhiteType=_WhiteTypeComboBox->currentItem();
166
if (_WhiteTypeComboBox->currentItem()==HUMAN)
167
_WhiteLevelSpinBox->setDisabled(true);
169
_WhiteLevelSpinBox->setEnabled(true);
172
void QNewGameDlg::slotTimeChanged()
174
// _time=_TimeSpinBox->text().toInt();
177
void QNewGameDlg::slotOneColorGoClicked()
179
_oneColorGo = _oneColorGoCheckbox->isChecked();
182
int QNewGameDlg::getSize()
187
int QNewGameDlg::getHandicap()
192
bool QNewGameDlg::getOneColorGo()
197
float QNewGameDlg::getKomi()
202
int QNewGameDlg::getLevelBlack()
207
int QNewGameDlg::getLevelWhite()
212
QString QNewGameDlg::getPlayerBlackName()
214
return _playerBlackName;
217
QString QNewGameDlg::getPlayerWhiteName()
219
return _playerWhiteName;
222
int QNewGameDlg::getPlayerBlackType()
224
return _playerBlackType;
227
int QNewGameDlg::getPlayerWhiteType()
229
return _playerWhiteType;
232
int QNewGameDlg::getTime()
237
void QNewGameDlg::init()
239
_size = setting->readIntEntry("COMPUTER_SIZE") ;//Gothic::size;
240
_komi = 5.5 ;//Gothic::komi;
241
_handicap = setting->readIntEntry("COMPUTER_HANDICAP") ;//Gothic::handicap;
242
_playerBlackType = (setting->readBoolEntry("COMPUTER_BLACK") ? COMPUTER : HUMAN); //Gothic::blackType;
243
_playerWhiteType = (setting->readBoolEntry("COMPUTER_WHITE") ? COMPUTER : HUMAN); //Gothic::whiteType;
244
_levelBlack = 10; //Gothic::levelBlack;
245
_levelWhite = 10; //Gothic::levelWhite;
246
_playerBlackName = "";//Gothic::playerBlackName;
247
_playerWhiteName = "";//Gothic::playerWhiteName;
248
_time = 0;//Gothic::time;
251
_WhiteTypeComboBox->insertItem(tr("Human"));
252
_WhiteTypeComboBox->insertItem(tr("Computer"));
253
_WhiteTypeComboBox->setCurrentItem(_playerWhiteType);
254
_BlackTypeComboBox->insertItem(tr("Human"));
255
_BlackTypeComboBox->insertItem(tr("Computer"));
256
_BlackTypeComboBox->setCurrentItem(_playerBlackType);
257
_SizeSpinBox->setValue(_size);
258
_HandicapSpinBox->setValue(_handicap);
261
void QNewGameDlg::slotGetFileName()
263
QString getFileName(QFileDialog::getOpenFileName("",//setting->readEntry("LAST_DIR"),
264
tr("SGF Files (*.sgf);;MGT Files (*.mgt);;XML Files (*.xml);;All Files (*)"), this));
265
if (getFileName.isEmpty())
268
_LineEdit_GameToLoad->setText(getFileName);
269
fileName = getFileName;