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)16const 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)37Killbots::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()45Killbots::Ruleset::~Ruleset() 46 { 47 } 48 filePath() const49QString Killbots::Ruleset::filePath() const 50 { 51 return m_filePath; 52 } 53 fileName() const54QString Killbots::Ruleset::fileName() const 55 { 56 return QFileInfo(m_filePath).fileName(); 57 } 58 scoreGroupKey() const59QByteArray Killbots::Ruleset::scoreGroupKey() const 60 { 61 return m_scoreGroupKey; 62 } 63