KExtHighscore::Manager Class Reference
This class manages highscores and players entries (several players can share the same highscores list if the libkdegame library is built to support a common highscores file; NOTE that to correctly implement such feature we probably need a locking mechanism in KHighscore). More...
#include <kexthighscore.h>
Public Types | |
enum | ScoreTypeBound { ScoreNotBound, ScoreBound } |
enum | ShowMode { AlwaysShow, NeverShow, ShowForHigherScore, ShowForHighestScore } |
enum | ScoreType { Normal, MinuteTime } |
enum | ItemType { ScoreDefault, MeanScoreDefault, BestScoreDefault, ElapsedTime } |
enum | PlayerItemType { MeanScore, BestScore } |
enum | LabelType { Standard, I18N, WW, Icon } |
Public Member Functions | |
Manager (uint nbGameTypes=1, uint maxNbEntries=10) | |
void | setWWHighscores (const KURL &url, const QString &version) |
void | setTrackLostGames (bool track) |
void | showStatistics (bool show) |
void | setScoreHistogram (const QMemArray< uint > &scores, ScoreTypeBound type) |
void | setShowMode (ShowMode mode) |
void | setScoreType (ScoreType type) |
void | setScoreItem (uint worstScore, Item *item) |
void | addScoreItem (const QString &name, Item *item) |
void | setPlayerItem (PlayerItemType type, Item *item) |
virtual bool | isStrictlyLess (const Score &s1, const Score &s2) const |
virtual QString | gameTypeLabel (uint gameType, LabelType type) const |
Static Public Member Functions | |
Item * | createItem (ItemType type) |
Protected Member Functions | |
virtual void | convertLegacy (uint gameType) |
void | submitLegacyScore (const Score &score) const |
virtual void | additionalQueryItems (KURL &url, const Score &score) const |
Static Protected Member Functions | |
void | addToQueryURL (KURL &url, const QString &item, const QString &content) |
Detailed Description
This class manages highscores and players entries (several players can share the same highscores list if the libkdegame library is built to support a common highscores file; NOTE that to correctly implement such feature we probably need a locking mechanism in KHighscore).You need one instance of this class during the application lifetime ; in main() just insert
with the needed arguments. Use the derived class if you need to reimplement some of the default methods.KExtHighscore::Manager highscoresManager;
This class has three functions :
- Update the highscores list when new entries are submitted
- Display the highscores list and the players list
- Send query to an optionnal web server to support world-wide highscores
The highscores and the players lists contain several items described by the Item class.
The highscores list contains by default :
- the player name (automatically set from the config value)
- the score value
- the time and date of the highscore (automatically set)
The players list contains :
- the player name (as defined by the user in the configuration dialog)
- the number of games played
- the mean score
- the best score
- the best score time and date
- the player comment (as defined by the user in the configuration dialog)
To submit a new score at game end, just construct a Score, set the score data and then call submitScore().
You only need to set the score value with Score::setScore() and the value of the items that you have optionnally added with Score::setData() ; player name and date are set automatically.KExtHighscore::Score score(KExtHighscore::Won); score.setScore(myScore); KExtHighscore::submitScore(score, widget);
Definition at line 138 of file kexthighscore.h.
Member Enumeration Documentation
|
Score type (.
Definition at line 204 of file kexthighscore.h. |
|
Some predefined item types.
Definition at line 220 of file kexthighscore.h. |
|
Possible type of label (.
Definition at line 268 of file kexthighscore.h. |
Constructor & Destructor Documentation
|
Constructor.
Definition at line 107 of file kexthighscore.cpp. |
Member Function Documentation
|
Set the world-wide highscores. Note: should be called at construction time.
Definition at line 133 of file kexthighscore.cpp. |
|
Set if the number of lost games should be track for the world-wide highscores statistics. By default, there is no tracking. Note: should be called at construction time. Definition at line 123 of file kexthighscore.cpp. |
|
Set if the statistics tab should be shown in the highscores dialog. You only want to show this tab if it makes sense to lose or to win the game (for e.g. it makes no sense for a tetris game but it does for a minesweeper game). Note: should be called at construction time. Definition at line 128 of file kexthighscore.cpp. |
|
Set the ranges for the score histogram. Note: should be called at construction time. Definition at line 145 of file kexthighscore.cpp. |
|
Set how the highscores dialog is shown at game end. By default, the mode is ShowAtHigherScore. Note: should be called at construction time. Definition at line 154 of file kexthighscore.cpp. |
|
Set score type. Helper method to quickly set the type of score. Note: should be called at construction time. Definition at line 159 of file kexthighscore.cpp. References createItem(), setPlayerItem(), KExtHighscore::Item::setPrettyFormat(), and setScoreItem(). |
|
Create a predefined item.
Definition at line 191 of file kexthighscore.cpp. References KExtHighscore::Item::setPrettyFormat(), and KExtHighscore::Item::setPrettySpecial(). Referenced by setScoreType(). |
|
Replace the default score item in the highscores list by the given one.
Note : This method should be called at construction time. Definition at line 216 of file kexthighscore.cpp. References KExtHighscore::Item::setDefaultValue(). Referenced by setScoreType(). |
|
Add an item in the highscores list (it will add a column to this list). Note : This method should be called at construction time. Definition at line 226 of file kexthighscore.cpp. |
|
Replace an item in the players list. Note : This method should be called at construction time. Definition at line 231 of file kexthighscore.cpp. References KExtHighscore::Item::defaultValue(), and KExtHighscore::Item::setDefaultValue(). Referenced by setScoreType(). |
|
s1<s2since the operator calls this method. Definition at line 186 of file kexthighscore.cpp. References KExtHighscore::Score::score(). |
|
Definition at line 249 of file kexthighscore.cpp. |
|
This method is called once for each player (ie for each user). You can reimplement it to convert old style highscores to the new mechanism (
Definition at line 285 of file kexthighscore.h. References convertLegacy(). Referenced by convertLegacy(). |
|
This method should be called from convertLegacy. It is used to submit an old highscore (it will not be send over the network). For each score do something like: Note that here you can set the player "name" and the highscore "date" if they are known. Definition at line 181 of file kexthighscore.cpp. |
|
This method is called before submitting a score to the world-wide highscores server. You can reimplement this method to add an entry with addToQueryURL. By default this method does nothing.
Definition at line 310 of file kexthighscore.h. References additionalQueryItems(). Referenced by additionalQueryItems(). |
|
Add an entry to the url to be submitted (.
Definition at line 263 of file kexthighscore.cpp. |
The documentation for this class was generated from the following files: