kodi
Profile.h
1 /*
2  * Copyright (C) 2005-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 "LockType.h"
12 #include "SettingsLock.h"
13 
14 #include <string>
15 #include <vector>
16 
17 class TiXmlNode;
18 
19 class CProfile
20 {
21 public:
24  class CLock
25  {
26  public:
27  CLock(LockType type = LOCK_MODE_EVERYONE, const std::string &password = "");
28  void Validate();
29 
30  LockType mode;
31  std::string code;
32  bool addonManager;
33  LOCK_LEVEL::SETTINGS_LOCK settings;
34  bool music;
35  bool video;
36  bool files;
37  bool pictures;
38  bool programs;
39  bool games;
40  };
41 
42  CProfile(const std::string &directory = "", const std::string &name = "", const int id = -1);
43  ~CProfile(void);
44 
45  void Load(const TiXmlNode *node, int nextIdProfile);
46  void Save(TiXmlNode *root) const;
47 
48  const std::string& getDate() const { return m_date;}
49  int getId() const { return m_id; }
50  const std::string& getName() const { return m_name;}
51  const std::string& getDirectory() const { return m_directory;}
52  const std::string& getThumb() const { return m_thumb;}
53  const std::string& getLockCode() const { return m_locks.code;}
54  LockType getLockMode() const { return m_locks.mode; }
55 
56  bool hasDatabases() const { return m_bDatabases; }
57  bool canWriteDatabases() const { return m_bCanWrite; }
58  bool hasSources() const { return m_bSources; }
59  bool canWriteSources() const { return m_bCanWriteSources; }
60  bool hasAddons() const { return m_bAddons; }
65  LOCK_LEVEL::SETTINGS_LOCK settingsLockLevel() const { return m_locks.settings; }
66  bool addonmanagerLocked() const { return m_locks.addonManager; }
67  bool musicLocked() const { return m_locks.music; }
68  bool videoLocked() const { return m_locks.video; }
69  bool picturesLocked() const { return m_locks.pictures; }
70  bool filesLocked() const { return m_locks.files; }
71  bool programsLocked() const { return m_locks.programs; }
72  bool gamesLocked() const { return m_locks.games; }
73  const CLock &GetLocks() const { return m_locks; }
74 
75  void setName(const std::string& name) {m_name = name;}
76  void setDirectory(const std::string& directory) {m_directory = directory;}
77  void setDate(const std::string& strDate) { m_date = strDate;}
78  void setDate();
79  void setThumb(const std::string& thumb) {m_thumb = thumb;}
80  void setDatabases(bool bHas) { m_bDatabases = bHas; }
81  void setWriteDatabases(bool bCan) { m_bCanWrite = bCan; }
82  void setSources(bool bHas) { m_bSources = bHas; }
83  void setWriteSources(bool bCan) { m_bCanWriteSources = bCan; }
84  void SetLocks(const CLock &locks);
85 
86 private:
87  std::string m_directory;
88  int m_id;
89  std::string m_name;
90  std::string m_date;
91  std::string m_thumb;
92  bool m_bDatabases;
93  bool m_bCanWrite;
94  bool m_bSources;
95  bool m_bCanWriteSources;
96  bool m_bAddons;
97  CLock m_locks;
98 };
LOCK_LEVEL::SETTINGS_LOCK settingsLockLevel() const
Returns which settings levels are locked for the current profile.
Definition: Profile.h:65
Class for handling lock status.
Definition: Profile.h:24
Definition: settings.py:1
Definition: inftrees.h:24
Definition: Profile.h:19