2
This file is part of KDE.
4
Copyright (c) 2011 Laszlo Papp <djszapi@archlinux.us>
6
This library is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Lesser General Public
8
License as published by the Free Software Foundation; either
9
version 2.1 of the License, or (at your option) version 3, or any
10
later version accepted by the membership of KDE e.V. (or its
11
successor approved by the membership of KDE e.V.), which shall
12
act as a proxy defined in Section 6 of version 3 of the license.
14
This library is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
Lesser General Public License for more details.
19
You should have received a copy of the GNU Lesser General Public
20
License along with this library. If not, see <http://www.gnu.org/licenses/>.
24
#include "achievement.h"
26
using namespace Attica;
28
Achievement::Type Achievement::stringToAchievementType(const QString &achievementTypeString)
30
if (achievementTypeString == QLatin1String("flowing")) {
31
return Achievement::FlowingAchievement;
32
} else if (achievementTypeString == QLatin1String("stepped")) {
33
return Achievement::SteppedAchievement;
34
} else if (achievementTypeString == QLatin1String("namedsteps")) {
35
return Achievement::NamedstepsAchievement;
36
} else if (achievementTypeString == QLatin1String("set")) {
37
return Achievement::SetAchievement;
41
return Achievement::FlowingAchievement;
44
QString Achievement::achievementTypeToString(const Achievement::Type type)
47
case Achievement::FlowingAchievement:
48
return QLatin1String("flowing");
50
case Achievement::SteppedAchievement:
51
return QLatin1String("stepped");
53
case Achievement::NamedstepsAchievement:
54
return QLatin1String("namedsteps");
56
case Achievement::SetAchievement:
57
return QLatin1String("set");
65
Achievement::Visibility Achievement::stringToAchievementVisibility(const QString &achievementVisibilityString)
67
if (achievementVisibilityString == QLatin1String("visible")) {
68
return Achievement::VisibleAchievement;
69
} else if (achievementVisibilityString == QLatin1String("dependents")) {
70
return Achievement::DependentsAchievement;
71
} else if (achievementVisibilityString == QLatin1String("secret")) {
72
return Achievement::SecretAchievement;
76
return Achievement::VisibleAchievement;
79
QString Achievement::achievementVisibilityToString(const Achievement::Visibility visibility)
82
case Achievement::VisibleAchievement:
83
return QLatin1String("visible");
85
case Achievement::DependentsAchievement:
86
return QLatin1String("dependents");
88
case Achievement::SecretAchievement:
89
return QLatin1String("secret");
97
class Achievement::Private : public QSharedData
103
QString m_description;
104
QString m_explanation;
107
QStringList m_dependencies;
108
Achievement::Visibility m_visibility;
109
Achievement::Type m_type;
110
QStringList m_options;
121
Achievement::Achievement()
126
Achievement::Achievement(const Achievement &other)
131
Achievement &Achievement::operator=(const Attica::Achievement &other)
137
Achievement::~Achievement()
141
void Achievement::setId(const QString &id)
146
QString Achievement::id() const
151
void Achievement::setContentId(const QString &contentId)
153
d->m_contentId = contentId;
156
QString Achievement::contentId() const
158
return d->m_contentId;
161
void Achievement::setName(const QString &name)
166
QString Achievement::name() const
171
void Achievement::setDescription(const QString &description)
173
d->m_description = description;
176
QString Achievement::description() const
178
return d->m_description;
181
void Achievement::setExplanation(const QString &explanation)
183
d->m_explanation = explanation;
186
QString Achievement::explanation() const
188
return d->m_explanation;
191
void Achievement::setPoints(const int points)
193
d->m_points = points;
196
int Achievement::points() const
201
void Achievement::setImage(const QUrl &image)
206
QUrl Achievement::image() const
211
void Achievement::setDependencies(const QStringList &dependencies)
213
d->m_dependencies = dependencies;
216
void Achievement::addDependency(const QString &dependency)
218
d->m_dependencies.append(dependency);
221
void Achievement::removeDependency(const QString &dependency)
223
d->m_dependencies.removeOne(dependency);
226
QStringList Achievement::dependencies() const
228
return d->m_dependencies;
231
void Achievement::setVisibility(Achievement::Visibility visibility)
233
d->m_visibility = visibility;
236
Achievement::Visibility Achievement::visibility() const
238
return d->m_visibility;
241
void Achievement::setType(Achievement::Type type)
246
Achievement::Type Achievement::type() const
251
void Achievement::setOptions(const QStringList &options)
253
d->m_options = options;
256
void Achievement::addOption(const QString &option)
258
d->m_options.append(option);
261
void Achievement::removeOption(const QString &option)
263
d->m_options.removeOne(option);
266
QStringList Achievement::options() const
271
void Achievement::setSteps(const int steps)
276
int Achievement::steps() const
281
void Achievement::setProgress(const QVariant &progress)
283
d->m_progress = progress;
286
QVariant Achievement::progress() const
288
return d->m_progress;
291
bool Achievement::isValid() const
293
return !(d->m_id.isEmpty());