diff options
Diffstat (limited to 'xbmc/settings/lib/SettingRequirement.cpp')
-rw-r--r-- | xbmc/settings/lib/SettingRequirement.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/xbmc/settings/lib/SettingRequirement.cpp b/xbmc/settings/lib/SettingRequirement.cpp new file mode 100644 index 0000000..5ba81ab --- /dev/null +++ b/xbmc/settings/lib/SettingRequirement.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2013-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#include "SettingRequirement.h" + +#include "SettingsManager.h" + +bool CSettingRequirementCondition::Check() const +{ + if (m_settingsManager == nullptr) + return false; + + bool found = m_settingsManager->GetConditions().Check("IsDefined", m_value); + if (m_negated) + return !found; + + return found; +} + +bool CSettingRequirementConditionCombination::Check() const +{ + if (m_operations.empty() && m_values.empty()) + return true; + + return CSettingConditionCombination::Check(); +} + +CSettingRequirement::CSettingRequirement(CSettingsManager *settingsManager /* = nullptr */) + : CSettingCondition(settingsManager) +{ + m_operation = CBooleanLogicOperationPtr(new CSettingRequirementConditionCombination(m_settingsManager)); +} |