Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class QtQObjectTemplateWorkaround: public QObject
- {
- Q_OBJECT
- signals:
- void valueChanged();
- };
- template<typename T>
- class BoilerplateHolder: public QtQObjectTemplateWorkaround {
- public:
- BoilerplateHolder(T&& value): m_value{std::forward<T>(value)} {}
- BoilerplateHolder(const BoilerplateHolder<T>& bh){ m_value = bh.m_value; }
- void operator =(const BoilerplateHolder<T>& bh) { m_value = bh.m_value;}
- void operator =(T&& value) { m_value = std::forward<T>(value); valueChanged(); }
- operator T() const { return m_value; }
- private:
- T m_value;
- };
- class Something: public QObject
- {
- Q_OBJECT
- Q_PROPERTY(BoilerplateHolder<int> minPowerLevel MEMBER m_minPowerLevel)
- Q_PROPERTY(BoilerplateHolder<int> maxPowerLevel MEMBER m_maxPowerLevel)
- private:
- BoilerplateHolder<int> m_minPowerLevel{0};
- BoilerplateHolder<int> m_maxPowerLevel{0};
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement