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
37META_PUBLIC bool operator!=(const ParentalLevel &lhs, const ParentalLevel &rhs);
38META_PUBLIC bool operator==(const ParentalLevel &lhs, const ParentalLevel &rhs);
39META_PUBLIC bool operator<(const ParentalLevel &lhs, const ParentalLevel &rhs);
40META_PUBLIC bool operator>(const ParentalLevel &lhs, const ParentalLevel &rhs);
41META_PUBLIC bool operator<=(const ParentalLevel &lhs, const ParentalLevel &rhs);
42META_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_
void SigResultReady(bool passwordValid, ParentalLevel::Level newLevel)
bool good() const
Q_DECLARE_METATYPE(std::chrono::seconds)
#define META_PUBLIC
Definition: mythmetaexp.h:9
META_PUBLIC bool operator==(const ParentalLevel &lhs, const ParentalLevel &rhs)
META_PUBLIC bool operator>(const ParentalLevel &lhs, const ParentalLevel &rhs)
META_PUBLIC bool operator<(const ParentalLevel &lhs, const ParentalLevel &rhs)
META_PUBLIC bool operator!=(const ParentalLevel &lhs, const ParentalLevel &rhs)
META_PUBLIC bool operator>=(const ParentalLevel &lhs, const ParentalLevel &rhs)
META_PUBLIC bool operator<=(const ParentalLevel &lhs, const ParentalLevel &rhs)