kjsembed uses both QUiLoader and QFormBuilder

Erik L. Bunce kde at bunce.us
Sun Dec 10 21:12:23 GMT 2006


I haven't seen this link problem on Mac OS X, however I agree we should 
probably default to only using QUiLoader.  I'll probably commit an 
initial form of that change today. 

I also believe we should move the use of QUiLoader out of the QWidget 
binding and into its own.  When I finish adding runtime loadable binding 
support I will probably have QUiLoader and QFormBuilder available as 
separately loadable bindings.  That way things that want to embed 
designer can still avail themselves of the QFormBuilder binding.

Thanks and Enjoy,
Erik

David Faure wrote:
> ... which doesn't seem to be a problem on linux, but on Mac OS X, linking to both libQtUiTools.a and libQtDesigner leads to:
>
> ld: multiple definitions of symbol _ZN26QAbstractFormBuilderGadget11qt_metacastEPKc.eh
> /Users/dfaure/qt/qt-mac-opensource-src-4.2.1/lib/QtDesigner.framework/QtDesigner(single module) definition of _ZN26QAbstractFormBuilderGadget11qt_metacastEPKc.eh
> /Users/dfaure/qt/qt-mac-opensource-src-4.2.1/lib/libQtUiTools.a(abstractformbuilder.o) definition of absolute _ZN26QAbstractFormBuilderGadget11qt_metacastEPKc.eh (value 0x0)
> ld: multiple definitions of symbol _ZNK26QAbstractFormBuilderGadget10metaObjectEv.eh
> /Users/dfaure/qt/qt-mac-opensource-src-4.2.1/lib/QtDesigner.framework/QtDesigner(single module) definition of _ZNK26QAbstractFormBuilderGadget10metaObjectEv.eh
> /Users/dfaure/qt/qt-mac-opensource-src-4.2.1/lib/libQtUiTools.a(abstractformbuilder.o) definition of absolute _ZNK26QAbstractFormBuilderGadget10metaObjectEv.eh (value 0x0)
> ld: multiple definitions of symbol QAbstractFormBuilderGadget::qt_metacall(QMetaObject::Call, int, void**)
> /Users/dfaure/qt/qt-mac-opensource-src-4.2.1/lib/QtDesigner.framework/QtDesigner(single module) definition of QAbstractFormBuilderGadget::qt_metacall(QMetaObject::Call, int, void**)
> etc.
>
> As far as I can see, QUiLoader and QFormBuilder are very similar, the former simply exists for code that doesn't need to link to the big libQtDesigner
> (which is mostly for designer plugins). Could kjsembed maybe use only QUiLoader?
>
> qwidget_binding.cpp:      gUiLoader = new QUiLoader();
> qformbuilder_binding.cpp:        QFormBuilder *formBuilder = new QFormBuilder();
>
>   





More information about the kde-core-devel mailing list