Merge branch 'master' of ssh://repo.or.cz/srv/git/lqt
[lqt.git] / generator / qt_internal.lua
blob8d2d8727a47e57e009068beb448c168eaab05aa1
2 local classes, enums = ...
3 local ret1, ret2 = {}, {}
5 -- don't bind this Qt internals/unsupported classes
6 -- if there are linker errors, or errors when laoding the .so
7 -- add the class here
9 for c in pairs(classes) do
10 local n = c.xarg.name
11 if n~=string.lower(n) and not (string.match(n, '_')
12 -- these are useless to bind, but compile
13 or c.xarg.fullname=='QVariant::Private' -- well, it IS public
14 or c.xarg.fullname=='QVariant::Private::Data' -- well, it IS public
15 or c.xarg.fullname=='QVariant::PrivateShared' -- well, it IS public
16 or c.xarg.fullname=='QObjectData'-- compiles
17 or c.xarg.fullname=='QtConcurrent::internal::ExceptionStore' -- it compiles
18 or c.xarg.fullname=='QtConcurrent::internal::ExceptionHolder' -- it compiles
19 or c.xarg.fullname=='QtConcurrent::ResultIteratorBase' -- it compiles
20 or c.xarg.fullname=='QtSharedPointer' -- compiles
21 or c.xarg.fullname=='QtSharedPointer::InternalRefCountData' -- compiles
22 or c.xarg.fullname=='QtSharedPointer::ExternalRefCountData' -- compiles
23 or c.xarg.fullname=='QUpdateLaterEvent' -- compiles
24 or c.xarg.fullname=='QTextStreamManipulator' -- compiles
25 or c.xarg.fullname=='QtConcurrent::ThreadEngineSemaphore' -- compiles
27 -- platform specific, TODO
28 or c.xarg.fullname=='QWindowsCEStyle'
29 or c.xarg.fullname=='QWindowsMobileStyle'
30 or c.xarg.fullname=='QWindowsXPStyle'
31 or c.xarg.fullname=='QWindowsVistaStyle'
32 or c.xarg.fullname=='QMacStyle'
34 -- binding bugs
35 or c.xarg.fullname=='QThreadStorageData' -- binding error (function pointer)
36 or c.xarg.fullname=='QForeachContainerBase' -- "was not declared in this scope"
37 or c.xarg.fullname=='QtConcurrent::Exception' -- GCC throw() in destructor base declaration
38 or c.xarg.fullname=='QtConcurrent::UnhandledException' -- GCC throw() in destructor base declaration
42 ) then
43 ret1[c] = true
44 end
45 end
47 for e in pairs(enums) do
48 local n = e.xarg.name
49 if n~=string.lower(n) and not string.match(n, '_') then
50 ret2[e] = true
51 end
52 end
54 return ret1, ret2