1 /*
2     This file is part of Killbots.
3 
4     SPDX-FileCopyrightText: 2007-2009 Parker Coates <coates@kde.org>
5 
6     SPDX-License-Identifier: GPL-2.0-or-later
7 */
8 
9 #include "ruleset.h"
10 
11 #include <KConfigGroup>
12 #include "killbots_debug.h"
13 
14 #include <QFileInfo>
15 
load(const QString & fileName)16 const Killbots::Ruleset *Killbots::Ruleset::load(const QString &fileName)
17 {
18     const Ruleset *result = nullptr;
19     if (!fileName.isEmpty()) {
20         QString filePath = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("killbots/rulesets/") + fileName);
21         if (!filePath.isEmpty()) {
22             // Our only check for validity is that we can open the file as a config
23             // file and that it contains a group named "KillbotsRuleset".
24             KConfig configFile(filePath, KConfig::SimpleConfig);
25             if (configFile.hasGroup("KillbotsRuleset")) {
26                 result = new Ruleset(filePath);
27             }
28         }
29     }
30     if (!result) {
31         qCDebug(KILLBOTS_LOG) << "Failed to load " << fileName;
32     }
33 
34     return result;
35 }
36 
Ruleset(const QString & filePath)37 Killbots::Ruleset::Ruleset(const QString &filePath)
38     : RulesetBase(KSharedConfig::openConfig(filePath))
39 {
40     m_filePath = filePath;
41     QString untranslatedName = KConfigGroup(config(), "KillbotsRuleset").readEntryUntranslated("Name");
42     m_scoreGroupKey = untranslatedName.simplified().remove(QLatin1Char(' ')).toLatin1();
43 }
44 
~Ruleset()45 Killbots::Ruleset::~Ruleset()
46 {
47 }
48 
filePath() const49 QString Killbots::Ruleset::filePath() const
50 {
51     return m_filePath;
52 }
53 
fileName() const54 QString Killbots::Ruleset::fileName() const
55 {
56     return QFileInfo(m_filePath).fileName();
57 }
58 
scoreGroupKey() const59 QByteArray Killbots::Ruleset::scoreGroupKey() const
60 {
61     return m_scoreGroupKey;
62 }
63