[Development] Moving QWindowSystemInterface out of QPA

Girish Ramakrishnan girish at forwardbias.in
Wed Jul 11 16:30:39 CEST 2012


On Tue, Jul 10, 2012 at 4:59 PM, Stephen Kelly <stephen.kelly at kdab.com> wrote:
> On Tuesday, July 10, 2012 16:54:57 Girish Ramakrishnan wrote:
>> On Tue, Jul 10, 2012 at 3:23 PM, Thiago Macieira
>>
>> <thiago.macieira at intel.com> wrote:
>> > On terça-feira, 10 de julho de 2012 11.37.41, Stephen Kelly wrote:
>> >> If it is not made public, then all CMake based code using QtTest will
>> >> have to  use private QtGui headers.
>> >
>> > $ git grep -l QWindowSystemInterface | cat
>> > qtestkeyboard.h
>> > qtestmouse.h
>> > qtesttouch.h
>> >
>> > We have only two choices:
>> >
>> > 1) make QWindowSystemInterface a proper, public API class
>> > or
>> > 2) remove its use from the public headers listed above.
>
> <snip>
>
>>
>> As for 2, I tried to do exactly that with
>> https://codereview.qt-project.org/#change,23440 but the idea was shot
>> down. I don't know how we can make a qtestlib that doesn't depend on
>> widgets. I think Stephen opposed it previously because a) widgets is
>> non-essential module and b) he wanted corelib tests to depend only on
>> corelib.
>
> Yep, that's why I was opposed to it. I think 1) is the right solution, which
> is the patch I proposed, in part.
>

An alternate approach is to make a header specific to QTestLib which
ensures that modules privates are not required. This approach keeps
QWSI as QPA API and very minor change. We can call this forwarding
header QTestLibWindowSystemInterface or something. Comments ? (of
course, need to have some minor changes to syncqt to not emit warning
code etc).

https://codereview.qt-project.org/#change,30643

Girish



More information about the Development mailing list