summaryrefslogtreecommitdiffstats
path: root/konquest/gameenddlg.cc
blob: 080a8477d50e76cc2edf5e1d7898f00b4bbe4dd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <qlabel.h>
#include <qlayout.h>
#include <qslider.h>
#include <qvbox.h>

#include <kapplication.h>
#include <kconfig.h>
#include <klocale.h>
#include <kstdguiitem.h>

#include "gameenddlg.h"
#include "gameenddlg.moc"

GameEndDlg::GameEndDlg( QWidget *parent )
    : KDialogBase( i18n("Out of Turns"), 
      KDialogBase::Yes|KDialogBase::No, KDialogBase::Yes, KDialogBase::No,
      parent, "end_game_dialog", true, true )
{
    QVBox *page = makeVBoxMainWidget();

    // Create controls
    QLabel *label1 = new QLabel( i18n("This is the last turn.\nDo you wish to add extra turns?")+"\n\n", page );
    label1->setAlignment( AlignCenter );
    
    turnCountLbl = new QLabel( page );
    turnCount = new QSlider( 1, 40, 1, 5, Qt::Horizontal, page );

    KGuiItem addTurns(i18n("&Add Turns"), QString::null, QString::null,
                      i18n("Add the specified number of turns to the game and continue playing."));
    KGuiItem gameOver(i18n("&Game Over"), QString::null, QString::null,
                      i18n("Terminate the current game."));
    
    setButtonGuiItem(KDialogBase::Yes, addTurns);
    setButtonGuiItem(KDialogBase::No, gameOver);

    init();

    connect( turnCount, SIGNAL(valueChanged( int )), this, SLOT(turnCountChange( int )) );
}

GameEndDlg::~GameEndDlg()
{
}

void
GameEndDlg::init()
{
    KConfig *config = kapp->config();
    config->setGroup("Game");
    int turns = config->readNumEntry("ExtraTurns", 10);
    turnCount->setValue(turns);
    turnCountChange(turns);
}

void
GameEndDlg::slotYes()
{
    KConfig *config = kapp->config();
    config->setGroup("Game");
    config->writeEntry("ExtraTurns", extraTurns());
    config->sync();
    KDialogBase::slotYes();
}

int
GameEndDlg::extraTurns()
{
    return turnCount->value();
}

void
GameEndDlg::turnCountChange( int newTurnCount )
{
    QString newLbl = i18n("Extra turns: %1").arg( newTurnCount );
    turnCountLbl->setText( newLbl);
}