~ubuntu-branches/ubuntu/maverick/qgo/maverick

« back to all changes in this revision

Viewing changes to src/qnewgamedlg.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Martin A. Godisch
  • Date: 2005-01-01 23:07:10 UTC
  • Revision ID: james.westby@ubuntu.com-20050101230710-fhng6yidm47xlb2i
Tags: upstream-1.0.0-r2
ImportĀ upstreamĀ versionĀ 1.0.0-r2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
                          qnewgamedlg.cpp  -  description
 
3
                             -------------------
 
4
    begin                : Thu Dec 20 2001
 
5
    copyright            : (C) 2001 by PALM Thomas , DINTILHAC Florian, HIVERT Anthony, PIOC Sebastien
 
6
    email                : 
 
7
 ***************************************************************************/
 
8
 
 
9
/***************************************************************************
 
10
 *                                                                         *
 
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.                                   *
 
15
 *                                                                         *
 
16
 ***************************************************************************/
 
17
 
 
18
#include "qnewgamedlg.h"
 
19
#include "defines.h"
 
20
#include "setting.h"
 
21
#include <qmessagebox.h>
 
22
#include <stdio.h>
 
23
#include <qfiledialog.h>
 
24
 
 
25
 
 
26
/* 
 
27
 *  Constructs a QNewGameDlg which is a child of 'parent', with the
 
28
 *  name 'name' and widget flags set to 'f' 
 
29
 *
 
30
 *  The dialog will by default be modeless, unless you set 'modal' to
 
31
 *  TRUE to construct a modal dialog.
 
32
 */
 
33
 
 
34
 
 
35
 
 
36
 
 
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 )
 
41
{
 
42
        init();
 
43
//      initDialog();
 
44
 
 
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() ) );
 
59
 
 
60
}
 
61
 
 
62
/*  
 
63
 *  Destroys the object and frees any allocated resources
 
64
 */
 
65
QNewGameDlg::~QNewGameDlg()
 
66
{
 
67
    // no need to delete child widgets, Qt does it all for us
 
68
}
 
69
 
 
70
/*  
 
71
 *  Main event handler. Reimplemented to handle application
 
72
 *  font changes
 
73
 */
 
74
bool QNewGameDlg::event( QEvent* ev )
 
75
{
 
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 );
 
86
//    }
 
87
    return true;
 
88
}
 
89
 
 
90
void QNewGameDlg::slotCancel()
 
91
{
 
92
    QDialog::reject();
 
93
 
 
94
}
 
95
 
 
96
void QNewGameDlg::slotOk()
 
97
{
 
98
 
 
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");
 
103
 
 
104
 
 
105
        if (_handicap == 1)
 
106
        {
 
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);                  
 
109
                msg.exec();
 
110
                QDialog::reject();                      
 
111
        }
 
112
        else
 
113
                QDialog::accept();
 
114
}
 
115
 
 
116
void QNewGameDlg::slotGobanSizeChanged()
 
117
{
 
118
        _size=_SizeSpinBox->text().toInt();
 
119
}
 
120
 
 
121
void QNewGameDlg::slotHandicapChanged()
 
122
{
 
123
        _handicap=_HandicapSpinBox->text().toInt();
 
124
 
 
125
                                        
 
126
 
 
127
}
 
128
 
 
129
void QNewGameDlg::slotKomiChanged()
 
130
{
 
131
//    _komi=_KomiLineEdit->text().toFloat();
 
132
}
 
133
 
 
134
void QNewGameDlg::slotLevelBlackChanged()
 
135
{
 
136
        _levelBlack=_BlackLevelSpinBox->text().toInt();
 
137
}
 
138
 
 
139
void QNewGameDlg::slotLevelWhiteChanged()
 
140
{
 
141
        _levelWhite=_WhiteLevelSpinBox->text().toInt();
 
142
}
 
143
 
 
144
void QNewGameDlg::slotPlayerBlackNameChanged()
 
145
{
 
146
        _playerBlackName=_BlackPlayerLineEdit->text();
 
147
}
 
148
 
 
149
void QNewGameDlg::slotPlayerBlackTypeChanged()
 
150
{
 
151
        _playerBlackType=_BlackTypeComboBox->currentItem();
 
152
        if (_BlackTypeComboBox->currentItem()==HUMAN)
 
153
                _BlackLevelSpinBox->setDisabled(true);
 
154
        else
 
155
                _BlackLevelSpinBox->setEnabled(true);                   
 
156
}
 
157
 
 
158
void QNewGameDlg::slotPlayerWhiteNameChanged()
 
159
{
 
160
    _playerWhiteName=_WhitePlayerLineEdit->text();
 
161
}
 
162
 
 
163
void QNewGameDlg::slotPlayerWhiteTypeChanged()
 
164
{
 
165
    _playerWhiteType=_WhiteTypeComboBox->currentItem();
 
166
        if (_WhiteTypeComboBox->currentItem()==HUMAN)
 
167
                _WhiteLevelSpinBox->setDisabled(true);
 
168
        else
 
169
                _WhiteLevelSpinBox->setEnabled(true);                   
 
170
}
 
171
 
 
172
void QNewGameDlg::slotTimeChanged()
 
173
{
 
174
//    _time=_TimeSpinBox->text().toInt();
 
175
}
 
176
 
 
177
void QNewGameDlg::slotOneColorGoClicked()
 
178
{
 
179
        _oneColorGo = _oneColorGoCheckbox->isChecked();
 
180
}
 
181
 
 
182
int QNewGameDlg::getSize()
 
183
{
 
184
        return _size;
 
185
}
 
186
 
 
187
int QNewGameDlg::getHandicap()
 
188
{
 
189
        return _handicap;
 
190
}
 
191
 
 
192
bool QNewGameDlg::getOneColorGo()
 
193
{
 
194
        return _oneColorGo;
 
195
}
 
196
 
 
197
float QNewGameDlg::getKomi()
 
198
{
 
199
        return _komi;
 
200
}
 
201
 
 
202
int QNewGameDlg::getLevelBlack()
 
203
{
 
204
        return _levelBlack;
 
205
}
 
206
 
 
207
int QNewGameDlg::getLevelWhite()
 
208
{
 
209
        return _levelWhite;
 
210
}
 
211
 
 
212
QString QNewGameDlg::getPlayerBlackName()
 
213
{
 
214
        return _playerBlackName;
 
215
}
 
216
 
 
217
QString QNewGameDlg::getPlayerWhiteName()
 
218
{
 
219
        return _playerWhiteName;
 
220
}
 
221
 
 
222
int QNewGameDlg::getPlayerBlackType()
 
223
{
 
224
        return _playerBlackType;
 
225
}
 
226
 
 
227
int QNewGameDlg::getPlayerWhiteType()
 
228
{
 
229
        return _playerWhiteType;
 
230
}
 
231
 
 
232
int QNewGameDlg::getTime()
 
233
{
 
234
        return _time;
 
235
}
 
236
 
 
237
void QNewGameDlg::init()
 
238
{
 
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;
 
249
        _oneColorGo = false;
 
250
 
 
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);
 
259
}
 
260
 
 
261
void QNewGameDlg::slotGetFileName()
 
262
{
 
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())
 
266
                return;
 
267
 
 
268
        _LineEdit_GameToLoad->setText(getFileName);
 
269
        fileName = getFileName;  
 
270
}