This series of patches fix the compilation problem, as well as some memory leak. But the main focus is to enable Qt script so that phonesim GUI can be controlled using JavaScript. In the meantime, D-Bus support is added for the sake of test automation.
Here are several examples: 1. call.js (stands for incoming call and copy it to /tmp/call/) tabRegistration.gbIncomingCall.leCaller.text = "12345"; tabRegistration.gbIncomingCall.pbIncomingCall.click(); Then we set the path of script and run the script with its name dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.SetPath string:/tmp/call dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.Run string:call.js Now we have simulated an incoming call. 2. sms.js (stands for incoming sms and copy it to /tmp/sms/) tabSMS.gbMessage1.leMessageSender.text = "Yang"; tabSMS.gbMessage1.leSMSClass.text = "1"; tabSMS.gbMessage1.teSMSText.setPlainText("This message is sent automatically from phonesim"); tabSMS.gbMessage1.pbSendSMSMessage.click(); Then we do the similar things as first example: dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.SetPath string:/tmp/sms dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.Run string:sms.js Now we have simulated an incoming sms. 3. Get the current path for script dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.GetPath 4. Make script return some string The string can be any string, number, bool, date, etc in JavaScript, but it couldn't be a object because of some side effect. Refer "QScriptValue Class Reference" for details. For example, if you want to know the current incoming number, you may write a script as below: // number.js tabRegistration.gbIncomingCall.leCaller.text After running the script the similar way as above, you may get the number. By the way, you may need below file (/etc/dbus-1/system.d/phonesim.conf) so that phonesim can register its service in system bus: <!-- This configuration file specifies the required security policies for oFono core daemon to work. --> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <!-- ../system.conf have denied everything, so we just punch some holes --> <policy user="root"> <allow own="org.phonesim"/> <allow send_destination="org.phonesim"/> </policy> <policy at_console="true"> <allow send_destination="org.phonesim"/> </policy> <policy context="default"> <deny send_destination="org.phonesim"/> </policy> </busconfig> Comments are welcome! ------------ Yang Gu (3): Move def of class ControlWidget to header file Some instances in ControlWidget need to be deleted Enable Qt Script Makefile.am | 5 +- configure.ac | 2 +- src/control.cpp | 165 ++++++++++++++++++++++++++++++++----------------------- src/control.h | 106 +++++++++++++++++++++++++++++++++++- 4 files changed, 203 insertions(+), 75 deletions(-) _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono