summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-12-14 23:11:09 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-12-14 23:11:09 +0000
commit18b5622af48967838240687fc54ff937acaae903 (patch)
treeb29cd7f60dddd65d10f9ffee62daf3dbe50ac46d
parentc90c389a8a8d9d8661e9772ec4144c5cf2039f23 (diff)
downloadtdegames-18b5622af48967838240687fc54ff937acaae903.tar.gz
tdegames-18b5622af48967838240687fc54ff937acaae903.zip
Fix high scores display
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegames@1062508 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--katomic/gamewidget.cpp25
-rw-r--r--katomic/gamewidget.h3
2 files changed, 27 insertions, 1 deletions
diff --git a/katomic/gamewidget.cpp b/katomic/gamewidget.cpp
index fc6838a8..165e55c0 100644
--- a/katomic/gamewidget.cpp
+++ b/katomic/gamewidget.cpp
@@ -116,6 +116,25 @@ void GameWidget::getMoves(int moves)
ys->setText(current);
}
+void GameWidget::mergeHighScores(int l)
+{
+ KConfigGroup oldConfig(kapp->config(), QString("High Scores Level %1").arg(l).utf8());
+ KConfigGroup newConfig(kapp->config(), QString("Highscores Level %1").arg(l).utf8());
+
+ newConfig.writeEntry("LastPlayer", oldConfig.readEntry("LastPlayer"));
+
+ QString num;
+ for (int i = 1; i <= 10; ++i)
+ {
+ num.setNum(i);
+ QString key = "Pos" + num + "Name";
+ newConfig.writeEntry(key, oldConfig.readEntry(key, "-"));
+ key = "Pos" + num + "Score";
+ newConfig.writeEntry(key, oldConfig.readEntry(key, "-"));
+ }
+ kapp->config()->sync();
+}
+
void GameWidget::updateLevel (int l)
{
level=l;
@@ -128,7 +147,11 @@ void GameWidget::updateLevel (int l)
cfg.setGroup("Level");
feld->load(cfg);
- highScore->setConfigGroup(QString("High Scores Level %1").arg(level));
+ if (!kapp->config()->hasGroup(QString("Highscores Level %1").arg(level)) &&
+ kapp->config()->hasGroup(QString("High Scores Level %1").arg(level)))
+ mergeHighScores(level);
+
+ highScore->setConfigGroup(QString("Highscores Level %1").arg(level));
highest.setNum(highScore->highScore());
if (highest != "0" ) hs->setText(highest);
diff --git a/katomic/gamewidget.h b/katomic/gamewidget.h
index 6259e6b7..00e95376 100644
--- a/katomic/gamewidget.h
+++ b/katomic/gamewidget.h
@@ -28,6 +28,9 @@ class GameWidget : public QWidget
// bringt level auf neuesten stand
void updateLevel (int);
+ // copy highscores from "High Scores" key to "Highscores" key
+ void mergeHighScores(int l);
+
// restart current level
void restartLevel();