xbmc
SettingPath.h
1 /*
2  * Copyright (C) 2013-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "settings/lib/Setting.h"
12 
13 #include <vector>
14 
16 
18 {
19 public:
20  CSettingPath(const std::string &id, CSettingsManager *settingsManager = nullptr);
21  CSettingPath(const std::string &id, int label, const std::string &value, CSettingsManager *settingsManager = nullptr);
22  CSettingPath(const std::string &id, const CSettingPath &setting);
23  ~CSettingPath() override = default;
24 
25  SettingPtr Clone(const std::string &id) const override;
26 
27  bool Deserialize(const TiXmlNode *node, bool update = false) override;
28  bool SetValue(const std::string &value) override;
29 
30  bool Writable() const { return m_writable; }
31  void SetWritable(bool writable) { m_writable = writable; }
32  const std::vector<std::string>& GetSources() const { return m_sources; }
33  void SetSources(const std::vector<std::string> &sources) { m_sources = sources; }
34  bool HideExtension() const { return m_hideExtension; }
35  void SetHideExtension(bool hideExtension) { m_hideExtension = hideExtension; }
36  std::string GetMasking(const CFileExtensionProvider& fileExtensionProvider) const;
37  void SetMasking(const std::string& masking) { m_masking = masking; }
38 
39 private:
40  using CSettingString::copy;
41  void copy(const CSettingPath &setting);
42 
43  bool m_writable = true;
44  std::vector<std::string> m_sources;
45  bool m_hideExtension = false;
46  std::string m_masking;
47 };
String setting implementation.
Definition: Setting.h:423
Definition: FileExtensionProvider.h:25
Definition: SettingPath.h:17
Settings manager responsible for initializing, loading and handling all settings. ...
Definition: SettingsManager.h:41
bool Deserialize(const TiXmlNode *node, bool update=false) override
Deserializes the given XML node into the properties of the setting object.
Definition: SettingPath.cpp:42