Very nice.
The trick now, is a bit more interesting...
You need to get a copy of the LinuxMCE build tree available, if you do not already have it. This can be done without a full builder so basically, you can check out the code from the LinuxMCE-0810 branch (all you really need is src), copy /usr/pluto/lib into src/lib, install the pluto-sql2cpp and pluto-dcegen packages, and add the following environment variables to your .profile SNR_CPPFLAGS="-DKDE-LMCE" SNR_LDFLAGS=" " ... You can then:
* do an sqlcvs update of the DCE repository from the web admin to get up to date.
* Create a device template in the web admin, describing the web browser, its commands, and its events.
* Run DCEGen with -d xxxx where xxxx is the device template # that it gave you when you created the template.
you will now have a directory named the same as your template, with spaces replaced by underscores.
Inside this, you will have the relevant code for the DCE portion of the browser... now... here's the trick
* You need to fold the Qt stuff over, replace the main.cpp here with Qt's main.cpp,
This will make the main thread the Qt program.
* You need to add the DCE bits to the qmake project file, including your base files in src/Gen_Devices (adding include paths for .. and a few other places is probably a good idea.)
* You need to make the main.cpp initialize the DCE code. This involves literally calling its GetConfig method, and then calling run. The good news is, once you do this, it will spawn threads it needs automatically.
* You need to make a global variable that you can pass between threads, so you can communicate between the DCE thread and the GUI thread to call things in the DCE thread for events, and so DCE thread can call things over in the Qt thread for events.
look at src/lmce_launch_manager_old for an example of how to meld a GUI app together with DCE. This is the old LMCE Launch Manager GUI, and implements exactly these patterns.
Once you have this, you'll have a working DCE controllable web browser that you can test by manually adding to a system in the web admin, and sending commands to it via "Send Command" in the web admin. or via MessageSend.
(yes, I have deliberately left some things unsaid, this is an exercise.)
-Thom