Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename T>
- class HookPointer
- {
- public:
- HookPointer() : m_obj(0), m_ptr(0) {}
- HookPointer(QObject *obj) : m_obj(obj), m_ptr(qobject_cast<T*>(obj)) {}
- HookPointer(const HookPointer<T> &that) : m_obj(that.m_obj), m_ptr(that.m_ptr) {}
- ~HookPointer() {}
- HookPointer &operator =(const HookPointer<T> &that)
- {
- m_obj = that.m_obj;
- m_ptr = that.m_ptr;
- return *this;
- }
- HookPointer &operator =(QObject *obj) { return operator =(HookPointer(obj)); }
- T *operator ->() { return m_ptr; }
- operator QObject *() const { return m_obj; }
- operator T *() const { return m_ptr; }
- operator bool() const { return m_obj != NULL; }
- inline QObject *object() const { return m_obj; }
- inline T *pointer() const { return m_ptr; }
- private:
- QObject *m_obj;
- T *m_ptr;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement