20 #ifndef KEXTHIGHSCORE_INTERNAL_H 21 #define KEXTHIGHSCORE_INTERNAL_H 23 #include <tdeapplication.h> 24 #include <tdeconfig.h> 25 #include <tdelocale.h> 28 #include "khighscore.h" 29 #include "kexthighscore.h" 33 class TQDomNamedNodeMap;
45 class RankItem :
public Item
49 :
Item((uint)0, i18n(
"Rank"), TQt::AlignRight) {}
51 TQVariant read(uint rank,
const TQVariant &)
const {
return rank; }
52 TQString pretty(uint rank,
const TQVariant &)
const 53 {
return TQString::number(rank+1); }
56 class NameItem :
public Item 60 : Item(TQString(), i18n(
"Name"), TQt::AlignLeft) {
61 setPrettySpecial(Anonymous);
65 class DateItem :
public Item
69 : Item(TQDateTime(), i18n(
"Date"), TQt::AlignRight) {
70 setPrettyFormat(DateTime);
74 class SuccessPercentageItem :
public Item
77 SuccessPercentageItem()
78 : Item((double)-1, i18n(
"Success"), TQt::AlignRight) {
79 setPrettyFormat(Percentage);
80 setPrettySpecial(NegativeNotDefined);
91 void setItem(Item *item);
92 const Item *item()
const {
return _item; }
93 Item *item() {
return _item; }
95 void setName(
const TQString &name) { _name = name; }
96 TQString name()
const {
return _name; }
98 void setGroup(
const TQString &group) { _group = group; }
99 bool isStored()
const {
return !_group.isNull(); }
101 void setSubGroup(
const TQString &subGroup) { _subGroup = subGroup; }
102 bool canHaveSubGroup()
const {
return !_subGroup.isNull(); }
104 static const char ANONYMOUS[];
105 static const char ANONYMOUS_LABEL[];
107 TQVariant read(uint i)
const;
108 TQString pretty(uint i)
const;
109 void write(uint i,
const TQVariant &value)
const;
111 uint increment(uint i)
const;
115 TQString _name, _group, _subGroup;
117 TQString entryName()
const;
119 ItemContainer(
const ItemContainer &);
120 ItemContainer &operator =(
const ItemContainer &);
134 virtual uint nbEntries()
const = 0;
136 const ItemContainer *item(
const TQString &name)
const;
137 ItemContainer *item(
const TQString &name);
139 void addItem(
const TQString &name,
Item *,
bool stored =
true,
140 bool canHaveSubGroup =
false);
141 void setItem(
const TQString &name,
Item *);
142 int findIndex(
const TQString &name)
const;
144 void setGroup(
const TQString &group);
145 void setSubGroup(
const TQString &subGroup);
147 void read(uint k,
Score &data)
const;
148 void write(uint k,
const Score &data, uint maxNbLines)
const;
150 void exportToText(TQTextStream &)
const;
153 TQString _group, _subGroup;
155 void _setItem(uint i,
const TQString &name,
Item *,
bool stored,
156 bool canHaveSubGroup);
166 ScoreInfos(uint maxNbEntries,
const PlayerInfos &infos);
168 uint nbEntries()
const;
169 uint maxNbEntries()
const {
return _maxNbEntries; }
176 class ConfigGroup :
public TDEConfigGroupSaver
179 ConfigGroup(
const TQString &group = TQString())
180 : TDEConfigGroupSaver(kapp->config(), group) {}
189 bool isNewPlayer()
const {
return _newPlayer; }
190 bool isOldLocalPlayer()
const {
return _oldLocalPlayer; }
191 uint nbEntries()
const;
192 TQString name()
const {
return item(
"name")->read(_id).toString(); }
193 bool isAnonymous()
const;
194 TQString prettyName()
const {
return prettyName(_id); }
195 TQString prettyName(uint
id)
const {
return item(
"name")->pretty(
id); }
196 TQString registeredName()
const;
197 TQString comment()
const {
return item(
"comment")->pretty(_id); }
198 bool isWWEnabled()
const;
199 TQString key()
const;
200 uint id()
const {
return _id; }
201 uint oldLocalId()
const {
return _oldLocalId; }
203 void createHistoItems(
const TQMemArray<uint> &scores,
bool bound);
204 TQString histoName(uint i)
const;
205 uint histoSize()
const;
206 const TQMemArray<uint> &histogram()
const {
return _histogram; }
208 void submitScore(
const Score &)
const;
210 bool isNameUsed(
const TQString &name)
const;
211 void modifyName(
const TQString &newName)
const;
212 void modifySettings(
const TQString &newName,
const TQString &comment,
213 bool WWEnabled,
const TQString &newKey)
const;
217 bool _newPlayer, _bound, _oldLocalPlayer;
218 uint _id, _oldLocalId;
219 TQMemArray<uint> _histogram;
226 ManagerPrivate(uint nbGameTypes,
Manager &manager);
227 void init(uint maxNbentries);
230 bool modifySettings(
const TQString &newName,
const TQString &comment,
231 bool WWEnabled, TQWidget *widget);
233 void setGameType(uint type);
235 int submitLocal(
const Score &score);
236 int submitScore(
const Score &score, TQWidget *widget,
bool askIfAnonymous);
237 Score readScore(uint i)
const;
239 uint gameType()
const {
return _gameType; }
240 uint nbGameTypes()
const {
return _nbGameTypes; }
241 bool isWWHSAvailable()
const {
return !serverURL.isEmpty(); }
242 ScoreInfos &scoreInfos() {
return *_scoreInfos; }
243 PlayerInfos &playerInfos() {
return *_playerInfos; }
245 enum QueryType { Submit, Register, Change, Players, Scores };
246 KURL queryURL(QueryType type,
const TQString &newName=TQString())
const;
248 void exportHighscores(TQTextStream &);
253 bool showStatistics, showDrawGames, trackLostGames, trackDrawGames;
258 PlayerInfos *_playerInfos;
259 ScoreInfos *_scoreInfos;
261 const uint _nbGameTypes;
265 int rank(
const Score &score)
const;
267 bool submitWorldWide(
const Score &score, TQWidget *parent)
const;
268 static bool doQuery(
const KURL &url, TQWidget *parent,
269 TQDomNamedNodeMap *map = 0);
270 static bool getFromQuery(
const TQDomNamedNodeMap &map,
const TQString &name,
271 TQString &value, TQWidget *parent);
272 void convertToGlobal();
Class for managing highscore tables.
This class manages highscores and players entries (several players can share the same highscores list...
This class defines how to convert and how to display a highscore element (such as the score...
ShowMode
Enumerate different conditions under which to show the high score dialog.
Item(const TQVariant &def=TQVariant::Invalid, const TQString &label=TQString(), int alignment=TQt::AlignRight)
Constructor.
This class contains data for a score.
Manage a bunch of Item which are saved under the same group in KHighscores config file...