Building-QtWebKit-for-Blackberry: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:BlackBerry]]<br />[[Category:HowTo]]<br />[[Category:Developing_with_Qt::Qt 5]]
[[Category:BlackBerry]]
[[Category:HowTo]]
[[Category:Developing_with_Qt::Qt 5]]


[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]
[toc align_right="yes" depth="2"]


= Building Qt 5 QtWebKit for BlackBerry =
= Building Qt 5 QtWebKit for BlackBerry =
Line 13: Line 15:
We will clone the git repository of webkit from Gitorious. Note that this takes a very long time and includes lots of test data, leading to a whopping 5GB disk space requirement for the checkout.
We will clone the git repository of webkit from Gitorious. Note that this takes a very long time and includes lots of test data, leading to a whopping 5GB disk space requirement for the checkout.


<code><br />$ git clone git://gitorious.org/webkit/webkit.git<br /></code>
<code>
$ git clone git://gitorious.org/webkit/webkit.git
</code>


== Building ==
== Building ==
Line 27: Line 31:
There is a second process of building QtWebKit which differs from the other Qt5 modules. This is the suggested way to use when you want to develop QtWebKit. you still have to have configured your environment to use the BBNDK as described in [[Blackberry]]! Especially ensure that the QMake binary in your PATH is the Blackberry version.
There is a second process of building QtWebKit which differs from the other Qt5 modules. This is the suggested way to use when you want to develop QtWebKit. you still have to have configured your environment to use the BBNDK as described in [[Blackberry]]! Especially ensure that the QMake binary in your PATH is the Blackberry version.


<code><br />$ cd webkit<br />$ # here &lt;N&amp;gt; is the number of parallel make jobs to run. This is often set to &lt;No. of CPU cores + 1&amp;gt;. adapt this<br />$ perl Tools/Scripts/webkit-build —qt —install-libs=&quot;$(qmake -query QT_INSTALL_PREFIX)&quot; —makeargs=&quot;<s>j&amp;amp;lt;N&amp;amp;gt;&quot;<br /></code>
<code>
<br />This will compile QtWebKit for QNX in a folder called WebKitBuild/Release in your webkit checkout.
$ cd webkit
<br />After this process, you should have a Qt5 QtWebKit located in your Qt install prefix (i.e. $HOME/development/qnx/qt5 or in C:stall, depending of your operating system</s> if you followed the other howtos).
$ # here <N> is the number of parallel make jobs to run. This is often set to <No. of CPU cores + 1>. adapt this
$ perl Tools/Scripts/webkit-build —qt —install-libs="$(qmake -query QT_INSTALL_PREFIX)" —makeargs="-j&amp;amp;lt;N&amp;amp;gt;"
</code>
 
This will compile QtWebKit for QNX in a folder called WebKitBuild/Release in your webkit checkout.
 
After this process, you should have a Qt5 QtWebKit located in your Qt install prefix (i.e. $HOME/development/qnx/qt5 or in C:stall, depending of your operating system- if you followed the other howtos).


=== See also ===
=== See also ===
Line 44: Line 54:
QtWebKit applications using the WebKit1/C++ API are a bad fit for touch devices like the PlayBook. To simulate mouse events out of touch events, call the following on your QWebView:
QtWebKit applications using the WebKit1/C++ API are a bad fit for touch devices like the PlayBook. To simulate mouse events out of touch events, call the following on your QWebView:


<code><br />webView-&gt;setAttribute(Qt::WA_AcceptTouchEvents, false);<br /></code>
<code>
webView->setAttribute(Qt::WA_AcceptTouchEvents, false);
</code>


If you do not do this, touch events are accpted and delegated to the JavaScript, but you will not be able to interact with the WebView, meaning: You cannot scroll, click links or do anything with it.
If you do not do this, touch events are accpted and delegated to the JavaScript, but you will not be able to interact with the WebView, meaning: You cannot scroll, click links or do anything with it.

Revision as of 10:15, 25 February 2015


[toc align_right="yes" depth="2"]

Building Qt 5 QtWebKit for BlackBerry

Setting up the environment

See Blackberry for instructions. Furthermore see Building Qt5 for Blackberry as a prerequisite.

Getting the source

We will clone the git repository of webkit from Gitorious. Note that this takes a very long time and includes lots of test data, leading to a whopping 5GB disk space requirement for the checkout.

$ git clone git://gitorious.org/webkit/webkit.git

Building

There are two ways of building QtWebKit:

Usage/Testing

The suggested way is to build QtWebKit just like any other Qt5 module via QMake. See Building Qt5 for Blackberry on how to call QMake.

Development

There is a second process of building QtWebKit which differs from the other Qt5 modules. This is the suggested way to use when you want to develop QtWebKit. you still have to have configured your environment to use the BBNDK as described in Blackberry! Especially ensure that the QMake binary in your PATH is the Blackberry version.

$ cd webkit
$ # here <N> is the number of parallel make jobs to run. This is often set to <No. of CPU cores + 1>. adapt this
$ perl Tools/Scripts/webkit-build qt install-libs="$(qmake -query QT_INSTALL_PREFIX)" makeargs="-j&amp;amp;lt;N&amp;amp;gt;"

This will compile QtWebKit for QNX in a folder called WebKitBuild/Release in your webkit checkout.

After this process, you should have a Qt5 QtWebKit located in your Qt install prefix (i.e. $HOME/development/qnx/qt5 or in C:stall, depending of your operating system- if you followed the other howtos).

See also

Known Issues

WebKit1/C++

QtWebKit applications using the WebKit1/C++ API are a bad fit for touch devices like the PlayBook. To simulate mouse events out of touch events, call the following on your QWebView:

webView->setAttribute(Qt::WA_AcceptTouchEvents, false);

If you do not do this, touch events are accpted and delegated to the JavaScript, but you will not be able to interact with the WebView, meaning: You cannot scroll, click links or do anything with it.

WebKit1/QML

Using QtWebKit with the old QtQuick1 QML API is currently broken. Eventually, this code will be moved from QtWebKit to the QtQuick1 module and reactivated.

WebKit2/QML