Hi,

Apologies for asking something that should probably be evident (I can't come up 
with a specific enough google search term).

I'm getting inspiration from Qt's Assistant sources to modify KDevelop's 
documentation viewer so it can use QTextBrowser instead of WebKit or WebEngine. 
It currently has a single standarddocumentationview.cpp file that implements 
the support for both web frameworks. I began by adding  USE_QTEXTBROWSER 
#ifdefs but am now looking to clean things up by moving the QTB implementation 
to its own file. There are so many differences that there isn't much point in 
keeping a standarddocumentationview.cpp file for the few remaining common code. 
The standarddocumentationview.h header is used by documentation plugins, so I 
cannot really change that (the rendering framework is supposed to be hidden).

KDevelop uses CMake, so here's how I modified the docviewer cmake file at first:

if(KDEVELOP_USE_QTEXTBROWSER)
    set(KDevPlatformDocumentation_LIB_SRCS
        standarddocumentationview_qtb.cpp)
else()
    set(KDevPlatformDocumentation_LIB_SRCS
        standarddocumentationview.cpp)
endif()
set(KDevPlatformDocumentation_LIB_SRCS ${KDevPlatformDocumentation_LIB_SRCS}
    documentationfindwidget.cpp
    documentationview.cpp
)


Sadly I get a number of link errors that show that something goes wrong with 
the moc files. The standarddocumentationview_qtb.cpp file wants its own 
standarddocumentationview_qtb.moc file, but then it will apparently miss 
anything defined in standarddocumentationview.h .

This approach only works if I keep standarddocumentationview.cpp included with 
almost all code #ifdef'ed out and have it include its own 
standarddocumentationview.moc file.

That's better than nothing but is there no more elegant way to do what I'm 
trying to do here?

Thanks,
René
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to