MythTV  master
parentalcontrols.h
Go to the documentation of this file.
1 #ifndef PARENTALCONTROLS_H_
2 #define PARENTALCONTROLS_H_
3 
4 #include <QObject> // for moc
5 #include <QMetaType>
6 
7 #include "mythmetaexp.h"
8 
10 {
11  public:
12  enum Level : std::uint8_t
13  { plNone = 0, plLowest = 1, plLow = 2, plMedium = 3,
14  plHigh = 4 };
15 
16  public:
17  ParentalLevel(Level pl);
18  explicit ParentalLevel(int pl);
19  ParentalLevel(const ParentalLevel &rhs);
20  ParentalLevel &operator=(const ParentalLevel &rhs);
21  ParentalLevel &operator=(Level pl);
22  ParentalLevel &operator++();
23  ParentalLevel &operator+=(int amount);
24  ParentalLevel &operator--();
25  ParentalLevel &operator-=(int amount);
26 
27  Level GetLevel() const;
28 
29  void reset() { m_hitlimit = false; }
30  bool good() const { return !m_hitlimit; }
31 
32  private:
33  Level m_level {plNone};
34  bool m_hitlimit {false};
35 };
36 
37 META_PUBLIC bool operator!=(const ParentalLevel &lhs, const ParentalLevel &rhs);
38 META_PUBLIC bool operator==(const ParentalLevel &lhs, const ParentalLevel &rhs);
39 META_PUBLIC bool operator<(const ParentalLevel &lhs, const ParentalLevel &rhs);
40 META_PUBLIC bool operator>(const ParentalLevel &lhs, const ParentalLevel &rhs);
41 META_PUBLIC bool operator<=(const ParentalLevel &lhs, const ParentalLevel &rhs);
42 META_PUBLIC bool operator>=(const ParentalLevel &lhs, const ParentalLevel &rhs);
43 
45 {
46  Q_OBJECT
47 
48  public:
50 
51  void Check(ParentalLevel::Level fromLevel, ParentalLevel::Level toLevel);
52 
53  signals:
54  void SigResultReady(bool passwordValid, ParentalLevel::Level newLevel);
55 
56  private slots:
57  void OnResultReady(bool passwordValid, ParentalLevel::Level newLevel);
58 
59  private:
60  class ParentalLevelChangeCheckerPrivate *m_private {nullptr};
61 };
62 
65 
66 #endif // PARENTALCONTROLS_H_
operator<
META_PUBLIC bool operator<(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:144
mythmetaexp.h
ParentalLevelChangeChecker
Definition: parentalcontrols.h:44
operator>=
META_PUBLIC bool operator>=(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:159
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(std::chrono::seconds)
ParentalLevel::reset
void reset()
Definition: parentalcontrols.h:29
ParentalLevelChangeCheckerPrivate
Definition: parentalcontrols.cpp:213
operator>
META_PUBLIC bool operator>(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:149
operator!=
META_PUBLIC bool operator!=(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:134
ParentalLevel::good
bool good() const
Definition: parentalcontrols.h:30
ParentalLevel
Definition: parentalcontrols.h:9
ParentalLevel::Level
Level
Definition: parentalcontrols.h:12
operator==
META_PUBLIC bool operator==(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:139
META_PUBLIC
#define META_PUBLIC
Definition: mythmetaexp.h:9
operator<=
META_PUBLIC bool operator<=(const ParentalLevel &lhs, const ParentalLevel &rhs)
Definition: parentalcontrols.cpp:154