fix: opaque-pointer declarations need qmetatype include and single ownership

The scripted Q_DECLARE_OPAQUE_POINTER sweep missed the QtCore/qmetatype.h
include (cascade of stdlib errors) and declared a few types in two headers
(redefinition of IsPointerDeclaredOpaque). Include qmetatype.h everywhere
and declare each handle in exactly one header.
This commit is contained in:
2026-08-02 18:25:52 +08:00
parent 824e352da1
commit 393b650fb4
14 changed files with 13 additions and 6 deletions
+1 -1
View File
@@ -1312,10 +1312,10 @@ oakengine_clip_get_connected_viewer(const OakEngineBlock *clip);
// Qt6 on some toolchains requires complete types in meta-type instantiations
// (e.g. QList<OakEngineBlock*> in TimelinePanel signals); declare the handles
// opaque instead of pulling the engine definitions into the public header.
#include <QtCore/qmetatype.h>
Q_DECLARE_OPAQUE_POINTER(OakEngineBlock *)
Q_DECLARE_OPAQUE_POINTER(OakEngineClip *)
Q_DECLARE_OPAQUE_POINTER(OakEngineMarkerList *)
Q_DECLARE_OPAQUE_POINTER(OakEngineMarker *)
Q_DECLARE_OPAQUE_POINTER(OakEngineWorkarea *)
Q_DECLARE_OPAQUE_POINTER(OakEngineTrack *)
Q_DECLARE_OPAQUE_POINTER(OakEngineTrackList *)