[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames
From: Stefan Majewsky <majewsky () gmx ! net>
Date: 2012-02-21 15:58:15
Message-ID: 20120221155815.B5218AC895 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1281422 by majewsky:
Add KScoreDialog::initFromDifficulty method to integrate with KgDifficulty.
That's just a quick hack; I plan to rewrite the scoring anyway, but I
want to port the other games to KgDifficulty without having to copy this
ugly blob of code anywhere.
M +2 -23 kdiamond/src/mainwindow.cpp
M +19 -0 libkdegames/highscore/kscoredialog.cpp
M +13 -0 libkdegames/highscore/kscoredialog.h
--- trunk/KDE/kdegames/kdiamond/src/mainwindow.cpp #1281421:1281422
@@ -142,20 +142,9 @@
scoreInfo[KScoreDialog::Custom1] = m_gameState->mode() == KDiamond::UntimedGame ? i18n("Untimed") : i18n("Timed");
//report score
QPointer<KScoreDialog> dialog = new KScoreDialog(KScoreDialog::Name | KScoreDialog::Score, this);
-
- QMap<QByteArray, QString> localizedLevelStrings;
- QMap<int, QByteArray> levelWeights;
- foreach (const KgDifficultyLevel* level, m_difficulty->levels())
- {
- localizedLevelStrings.insert(level->key(), level->title());
- levelWeights.insert(level->hardness(), level->key());
- }
- dialog->addLocalizedConfigGroupNames(localizedLevelStrings);
- dialog->setConfigGroupWeights(levelWeights);
dialog->addField(KScoreDialog::Custom1, i18n("Mode"), "mode");
- dialog->setConfigGroup(m_difficulty->currentLevel()->title());
+ dialog->initFromDifficulty(m_difficulty);
dialog->addScore(scoreInfo);
- dialog->exec();
delete dialog;
}
@@ -167,18 +156,8 @@
actionCollection()->action("game_pause")->setChecked(true);
//show dialog
QPointer<KScoreDialog> dialog = new KScoreDialog(KScoreDialog::Name | KScoreDialog::Score, this);
-
- QMap<QByteArray, QString> localizedLevelStrings;
- QMap<int, QByteArray> levelWeights;
- foreach (const KgDifficultyLevel* level, m_difficulty->levels())
- {
- localizedLevelStrings.insert(level->key(), level->title());
- levelWeights.insert(level->hardness(), level->key());
- }
- dialog->addLocalizedConfigGroupNames(localizedLevelStrings);
- dialog->setConfigGroupWeights(levelWeights);
dialog->addField(KScoreDialog::Custom1, i18n("Mode"), "mode");
- dialog->setConfigGroup(m_difficulty->currentLevel()->title());
+ dialog->initFromDifficulty(m_difficulty);
dialog->exec();
delete dialog;
}
--- trunk/KDE/kdegames/libkdegames/highscore/kscoredialog.cpp #1281421:1281422
@@ -25,6 +25,7 @@
#include "kscoredialog.h"
#include "khighscore.h"
+#include "../kgdifficulty.h"
#include <KConfig>
#include <KUser>
@@ -178,6 +179,24 @@
}
}
+void KScoreDialog::initFromDifficulty(const KgDifficulty* diff, bool doSetConfigGroup)
+{
+ QMap<QByteArray, QString> localizedLevelStrings;
+ QMap<int, QByteArray> levelWeights;
+ foreach (const KgDifficultyLevel* level, diff->levels())
+ {
+ localizedLevelStrings.insert(level->key(), level->title());
+ levelWeights.insert(level->hardness(), level->key());
+ }
+ addLocalizedConfigGroupNames(localizedLevelStrings);
+ setConfigGroupWeights(levelWeights);
+ if (doSetConfigGroup)
+ {
+ const KgDifficultyLevel* curLvl = diff->currentLevel();
+ setConfigGroup(qMakePair(curLvl->key(), curLvl->title()));
+ }
+}
+
void KScoreDialog::setHiddenConfigGroups(const QList<QByteArray>& hiddenGroups)
{
d->hiddenGroups = hiddenGroups;
--- trunk/KDE/kdegames/libkdegames/highscore/kscoredialog.h #1281421:1281422
@@ -34,6 +34,7 @@
#include <kdialog.h>
class KLocalizedString;
+class KgDifficulty;
/**
* \class KScoreDialog kscoredialog.h <KScoreDialog>
@@ -250,6 +251,18 @@
*/
int highScore();
+ /**
+ * Assume that config groups (incl. current selection) are equal to
+ * difficulty levels, and initialize them. This is usually equal to the
+ * following code using KGameDifficulty:
+ * @code
+ * addLocalizedConfigGroupNames(KGameDifficulty::localizedLevelStrings());
+ * setConfigGroupWeights(KGameDifficulty::levelWeights());
+ * setConfigGroup(KGameDifficulty::localizedLevelString());
+ * @endcode
+ */
+ void initFromDifficulty(const KgDifficulty* difficulty, bool setConfigGroup = true);
+
///Display the dialog as non-modal
virtual void show();
///Display the dialog as modal
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic