Source Code (Use browser search to find items of interest.)
Class Index
kmines'WHighScores (./kdegames/kmines/dialogs.h:112)
class WHighScores : public DialogBase
{
Q_OBJECT
public:
WHighScores(QWidget *parent, const Score *score = 0);
static uint time(GameType);
private slots:
void writeName();
void reject();
private:
GameType type;
QLineEdit *qle;
};
//-----------------------------------------------------------------------------
kmines'WHighScores::time() (./kdegames/kmines/dialogs.cpp:174)
uint WHighScores::time(GameType type)
{
KConfig *conf = kapp->config();
conf->setGroup(HS_GRP[type]);
int sec = conf->readNumEntry(HS_SEC, 59);
int min = conf->readNumEntry(HS_MIN, 59);
if ( sec<0 || sec>59 || min<0 || min>59 )
return DigitalClock::toSec(59, 59);
return DigitalClock::toSec(sec, min);
}
kmines'WHighScores::WHighScores() (./kdegames/kmines/dialogs.cpp:186)
WHighScores::WHighScores(QWidget *parent, const Score *score)
: DialogBase(i18n("Hall of Fame"), Close, Close, parent), qle(0)
{
KConfig *conf = kapp->config();
if (score) { // set highscores
type = score->type;
conf->setGroup(HS_GRP[type]);
conf->writeEntry(HS_NAME, i18n("Anonymous")); // default
conf->writeEntry(HS_MIN, score->min);
conf->writeEntry(HS_SEC, score->sec);
}
QLabel *lab;
QFont f( font() );
f.setBold(TRUE);
/* Grid layout */
QGridLayout *gl = new QGridLayout(3, 4, spacingHint());
top->addLayout(gl);
/* level names */
QString str;
for(int k=0; k<3; k++) {
if ( k==0 ) str = i18n("Easy");
else if ( k==1 ) str = i18n("Normal");
else str = i18n("Expert");
lab = new QLabel(str, plainPage());
lab->setMinimumSize( lab->sizeHint() );
gl->addWidget(lab, k, 0);
lab = new QLabel(":", plainPage());
lab->setMinimumSize( lab->sizeHint() );
gl->addWidget(lab, k, 1);
conf->setGroup(HS_GRP[k]);
int min = conf->readNumEntry(HS_MIN, 0);
int sec = conf->readNumEntry(HS_SEC, 0);
bool no_score = FALSE;
if ( !score || (k!=type) ) {
lab = new QLabel(plainPage());
lab->setFont(f);
QString name = conf->readEntry(HS_NAME, "");
no_score = name.isEmpty() || (!min && !sec);
if (no_score) {
lab->setText(i18n("no score for this level"));
lab->setMinimumSize( lab->sizeHint() );
gl->addWidget(lab, k, 2);
continue;
} else {
lab->setText(name);
lab->setMinimumSize( lab->sizeHint() );
gl->addWidget(lab, k, 2);
}
} else {
qle = new QLineEdit(plainPage());
qle->setMaxLength(10);
qle->setFont(f);
qle->setMinimumSize(qle->fontMetrics().maxWidth()*10,
qle->sizeHint().height());
qle->setFocus();
connect(qle, SIGNAL(returnPressed()), SLOT(writeName()));
gl->addWidget(qle, k, 2);
}
if (min) {
if (sec) str = i18n("in %1 minutes and %2 seconds.")
.arg(min).arg(sec);
else str = i18n("in %1 minutes.").arg(min);
} else str = i18n("in %1 seconds.").arg(sec);
lab = new QLabel(str, plainPage());
lab->setAlignment(AlignCenter);
lab->setMinimumSize( lab->sizeHint() );
gl->addWidget(lab, k, 3);
}
if (score) enableButton(Close, FALSE);
}
kmines'WHighScores::writeName() (./kdegames/kmines/dialogs.cpp:268)
void WHighScores::writeName()
{
KConfig *conf = kapp->config();
conf->setGroup(HS_GRP[type]);
QString str = qle->text();
if ( str.length() ) conf->writeEntry(HS_NAME, str);
conf->sync();
str = conf->readEntry(HS_NAME);
qle->setText(str);
enableButton(Close, TRUE);
}
kmines'WHighScores::reject() (./kdegames/kmines/dialogs.cpp:280)
void WHighScores::reject()
{
if ( qle && qle->isEnabled() ) {
qle->setEnabled(FALSE);
focusNextPrevChild(TRUE); // sort of hack (wonder why its call in
// setEnabled(FALSE) does nothing ...)
} else DialogBase::reject();
}
//-----------------------------------------------------------------------------