pysideqslotobject_p.h 991 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright (C) 2024 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. #ifndef PYSIDEQSLOTOBJECT_P_H
  4. #define PYSIDEQSLOTOBJECT_P_H
  5. #include "pysidemacros.h"
  6. #include <sbkpython.h>
  7. #include <QtCore/qobject.h>
  8. #include <QtCore/qobjectdefs.h>
  9. #include <memory>
  10. namespace PySide
  11. {
  12. class DynamicSlot;
  13. class PySideQSlotObject : public QtPrivate::QSlotObjectBase
  14. {
  15. Q_DISABLE_COPY_MOVE(PySideQSlotObject)
  16. public:
  17. explicit PySideQSlotObject(PyObject *callable, const QByteArrayList &parameterTypes,
  18. const char *returnType = nullptr);
  19. ~PySideQSlotObject();
  20. private:
  21. static void impl(int which, QSlotObjectBase *this_, QObject *receiver, void **args, bool *ret);
  22. void call(void **args);
  23. std::unique_ptr<DynamicSlot> m_dynamicSlot;
  24. const QByteArrayList m_parameterTypes;
  25. const char *m_returnType;
  26. };
  27. } // namespace PySide
  28. #endif // PYSIDEQSLOTOBJECT_P_H