6
#include "mainwidget.h"
7
#include "interfacehandler.h"
8
#include "normaltools_gui.h"
9
#include "scoretools_gui.h"
12
#include <qbuttongroup.h>
13
#include <qpushbutton.h>
17
#include <qlineedit.h>
18
#include <qtabwidget.h>
21
#include ICON_NODE_BLACK
22
#include ICON_NODE_WHITE
26
* Constructs a MainWidget which is a child of 'parent', with the
27
* name 'name' and widget flags set to 'f'
29
MainWidget::MainWidget(QWidget* parent, const char* name, WFlags fl )
30
: MainWidgetGui( parent, name, fl )
32
connect(toolsTabWidget,
33
SIGNAL(currentChanged(QWidget*)),
34
SLOT(slot_toolsTabChanged(QWidget*)));
38
scoreTools = new ScoreTools(tab_ns, "scoreTools");
39
// scoreTools->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0,
40
// scoreTools->sizePolicy().hasHeightForWidth()));
41
scoreTools->setMinimumSize(QSize(80, 230));
44
interfaceHandler = new InterfaceHandler();
46
interfaceHandler->moveNumLabel = moveNumLabel;
47
interfaceHandler->turnLabel = turnLabel;
48
interfaceHandler->varLabel = varLabel;
49
// interfaceHandler->editTools = editTools;
50
// interfaceHandler->modeButton = modeButton;
51
interfaceHandler->passButton = passButton;
52
interfaceHandler->scoreButton = scoreButton;
53
interfaceHandler->undoButton = undoButton;
54
interfaceHandler->adjournButton = adjournButton;
55
interfaceHandler->resignButton = resignButton;
56
interfaceHandler->refreshButton = refreshButton;
57
interfaceHandler->capturesBlack = normalTools->capturesBlack;
58
interfaceHandler->capturesWhite = normalTools->capturesWhite;
59
interfaceHandler->normalTools = normalTools;
60
// interfaceHandler->teachTools = teachTools;
61
interfaceHandler->scoreTools = scoreTools;
62
interfaceHandler->toolsFrame = toolsFrame;
63
interfaceHandler->board = board;
65
// connect(editTools->editButtonGroup, SIGNAL(clicked(int)), this, SLOT(setMarkType(int)));
68
toggleSlider(setting->readBoolEntry("SLIDER"));
69
slider->setMaxValue(SLIDER_INIT);
70
sliderRightLabel->setText(QString::number(SLIDER_INIT));
71
sliderSignalToggle = true;
73
setFont(setting->fontStandard);
74
normalTools->pb_timeWhite->setFont(setting->fontClocks);
75
normalTools->pb_timeBlack->setFont(setting->fontClocks);
79
* Destroys the object and frees any allocated resources
81
MainWidget::~MainWidget()
83
// no need to delete child widgets, Qt does it all for us
84
delete interfaceHandler;
89
// a tab has been clicked
90
void MainWidget::slot_toolsTabChanged(QWidget * /*w*/)
92
static bool rememberEditTab = false;
96
// edit tab has been released
97
rememberEditTab = false;
98
interfaceHandler->toggleMode();
101
switch (toolsTabWidget->currentPageIndex())
103
// normal/score tools
105
if (interfaceHandler->board->getGameMode() == modeEdit)
107
// sholdn't be, but however...
108
rememberEditTab = false;
109
interfaceHandler->toggleMode();
115
// set color of next move
116
if (interfaceHandler->board->getBoardHandler()->getBlackTurn())
119
colorButton->setPixmap(QPixmap(ICON_NODE_BLACK));
121
colorButton->setPixmap(QPixmap(const_cast<const char**>(node_black_xpm)));
127
colorButton->setPixmap(QPixmap(ICON_NODE_WHITE));
129
colorButton->setPixmap(QPixmap(const_cast<const char**>(node_white_xpm)));
133
interfaceHandler->toggleMode();
134
rememberEditTab = true;
137
// teach tools + game tree
138
case tabTeachGameTree:
146
// set a tab on toolsTabWidget
147
void MainWidget::setToolsTabWidget(enum tabType p, enum tabState s)
161
case tabTeachGameTree:
172
// check whether the page to switch to is enabled
173
if (!toolsTabWidget->isEnabled())
174
toolsTabWidget->setTabEnabled(w, true);
176
toolsTabWidget->setCurrentPage(p);
180
// check whether the current page is to disable; then set to 'normal'
181
if (s == tabDisable && toolsTabWidget->currentPageIndex() == p)
182
toolsTabWidget->setCurrentPage(tabNormalScore);
184
toolsTabWidget->setTabEnabled(w, s == tabEnable);
189
void MainWidget::toggleGameMode()
191
if (interfaceHandler->toggleMode() != modeEdit)
193
// editTools->hide();
195
// if (modeButton->isOn())
196
// modeButton->setOn(false);
201
// editTools->show();
205
void MainWidget::setMarkType(int m)
207
interfaceHandler->setMarkType(m);
210
void MainWidget::doPass()
212
if (interfaceHandler->board->getGameMode() == modeScore)
214
interfaceHandler->board->doCountDone();
215
/* if (scoreButton->text() != QString(tr("Edit")))
217
scoreButton->toggle();
221
interfaceHandler->board->doPass();
224
void MainWidget::doRealScore(bool toggle)
226
static GameMode rememberMode;
227
static int rememberTab;
229
qDebug("MainWidget::doRealScore()");
232
rememberMode = interfaceHandler->board->getGameMode();
233
rememberTab = toolsTabWidget->currentPageIndex();
234
// modeButton->setEnabled(false);
235
setToolsTabWidget(tabEdit, tabDisable);
236
setToolsTabWidget(tabTeachGameTree, tabDisable);
237
if (scoreButton->text() == QString(tr("Edit")))
239
passButton->setText(tr("Done"));
240
scoreButton->setEnabled(false);
242
if (rememberMode==modeComputer)
244
adjournButton->setEnabled(false);
245
resignButton->setEnabled(false);
246
undoButton->setEnabled(false);
251
passButton->setEnabled(false);
254
interfaceHandler->disableToolbarButtons();
255
// editTools->hide();
258
// interfaceHandler->board->setMode(modeScore);
259
interfaceHandler->board->countScore();
263
// modeButton->setEnabled(true);
264
setToolsTabWidget(tabEdit, tabEnable);
265
setToolsTabWidget(tabTeachGameTree, tabEnable);
266
if (scoreButton->text() == QString(tr("Edit")))
268
passButton->setText(tr("Pass"));
269
scoreButton->setEnabled(true);
272
passButton->setEnabled(true);
273
interfaceHandler->restoreToolbarButtons();
276
// if (modeButton->isOn())
277
// editTools->show();
279
// normalTools->show();
280
interfaceHandler->board->setMode(rememberMode);
281
setToolsTabWidget(static_cast<tabType>(rememberTab));
285
void MainWidget::doScore(bool toggle)
287
static bool skipNextSignal;
289
qDebug("MainWidget::doScore()");
290
if (scoreButton->text() == QString(tr("Edit")))
292
if (scoreButton->isOn())
294
// online mode -> don't score, open new Window instead
295
interfaceHandler->board->doEditBoardInNewWindow();
296
// setOn() causes a signal which has to be skipped over
297
skipNextSignal = true;
299
scoreButton->setOn(false);
305
// skip over this one incoming signal
306
skipNextSignal = false;
311
// offline mode -> scoring
315
void MainWidget::sliderChanged(int n)
317
if (sliderSignalToggle)
318
interfaceHandler->board->gotoNthMoveInVar(n);
321
void MainWidget::toggleSlider(bool b)
331
sliderLeftLabel->show();
332
sliderRightLabel->show();
337
sliderLeftLabel->hide();
338
sliderRightLabel->hide();
342
// Overwritten from QWidget
343
void MainWidget::setFont(const QFont &font)
347
scoreTools->totalBlack->setFont(f);
348
scoreTools->totalWhite->setFont(f);
350
QWidget::setFont(font);