summaryrefslogtreecommitdiffstats
path: root/examples/quick/quicknanobrowser
Commit message (Collapse)AuthorAgeFilesLines
* Rename example directories to match the source install destinationJocelyn Turcotte2014-03-1912-604/+0
| | | | | | | | | | | | | To match other modules example directory structures we should deploy our examples in a directory matching the module name, webengine and webenginewidgets in our case. qmake uses the relative directory of each example up to the upper "examples" directory to decide where they will be deployed when running the sources install target. Change-Id: I59ce7ff8a30f98fad20064c7eecf72b784f1d275 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Remove the widgetsnanobrowser exampleJocelyn Turcotte2014-03-198-3/+82
| | | | | | | | | This example hasn't been touched since we imported QtWebKit examples. If we need to have a more test-purpose widgets browser in the future, we can dig it back from the history. Change-Id: Icee9bd7f09827a97b33c6783b87311e331d963b1 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix forced exit from fullscreen and reload action in quicknanobrowserAndras Becsi2014-03-061-3/+6
| | | | | | | | The tabs.currentView property was probably removed in some earlier change and is undefined, use the currentWebView property instead. Change-Id: I0fc31b0cc7191f2ed2f57c27306387f062cff2e1 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Make Qt 5.2 a minimum requirementPierre Rossi2014-02-141-2/+0
| | | | | | | | Cleanup version ifdefs and v8-private dependencies. Change-Id: Iac393c06dfba02499e60d713d9f4d04ef0c9e617 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* QQuickWebEngineView new window API refactoringJocelyn Turcotte2014-02-131-20/+19
| | | | | | | | | | | | | | | | | | | | Improve the code and API in a few ways: - Expose a more discoverable "request" argument in the signal. - Use the request as the carrier of the backend WebContentsAdapter and get rid of our handle. - Put the adoption method (renamed to openIn) on the request object and keep the view API clean of a context-specific adoptHandle method. - Use an enum instead of strings for the new view destination. - Do not let JavaScript own the request object since it won't be necessary until we want to support asynchronous view attachment. We can create the request object on the heap and let the JavaScript engine own the object once we want to support it. - Move the request class to its own header. - Replace tabs.currentView by currentWebView in the quicknanobrowser qml code since we now need this property on the root object anyway. Change-Id: I40d7d15255f516ead9f3e414dd587bf345e6ca4b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement requestFullscreen for QQuickWebEngineView.Zeno Albisser2014-02-111-0/+46
| | | | | | | | | | | | | | This patch adds a property isFullScreen and a signal fullScreenRequested to QQuickWebEngineViewExperimental. The signal fullScreenRequested is emitted when some web content requests fullscreen through the javascript API. The property isFullScreen is supposed to be set programmatically when the view is being shown fullscreen. This information is then available to the WebContentsDelegateQt when checking if the fullscreen request has been accepted. Change-Id: I04cbb45f263a188d26cc87d70ac53b0fbab63936 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add TakeFocus in WebContentsViewQt for passing on tab focus.Zeno Albisser2014-02-101-0/+10
| | | | | | | | | | Chromium calls RenderViewHostDelegate::TakeFocus when the last focusable item within the page was reached. We then have to move the focus on to the next/previous QQuickItem. Change-Id: Id0128053602ff1220c1bced1b218050b66fef659 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add Ctrl+R shortcut for reload.Zeno Albisser2014-02-061-0/+4
| | | | | Change-Id: Ia7bb688e3ace174da7fd5957a35f47f9b886952f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix reload button in the QuickNanoBrowserAdam Kallai2014-01-281-1/+1
| | | | | Change-Id: I3670380d76d014a33e0112631bdb42927b67b9d9 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Pave the way for our UI delegation strategy.Pierre Rossi2014-01-154-6/+71
| | | | | | | | | | | | | | | | | | | Starting with the context Menus for QtQuick. Add default UI delegates as a subproject. We allow ourselves to use Qt Quick Controls there for in order to get a nice "out of the box" experience for things like context menus, dialogs, etc while leaving the door open for system embedders to override this. Opting out of the deployment of these QML files is still very primitive but can be done by passing WEBENGINE_CONFIG+=no_ui_delegates at qmake time. Customization of context menus could be done via a qml component, which is probably best kept in experimental for now while we address its shortcomings. Change-Id: I0705b20d5ddd3bb010f9371b65a181c6b02a03e1 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix installation of most examplesSimon Hausmann2014-01-151-0/+3
| | | | | | | | | | * Make sure the example source code is installed * Make sure the installation path is consistent with the path within the module, to ensure that the sources end up next to the compiled binary. * Skip the widgets nano browser from the installation, as it's a developer tool. Change-Id: I35b421e12f8e6ddd3f2045e318b21543ff929cd8 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* quicknanobrowser: reset progress bar when reaching 100%Zeno Albisser2013-12-231-1/+1
| | | | | Change-Id: I146df83948017b5ad72e40d16a8cc7105691c309 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* createWindow QML API for QQuickWebEngineViewJocelyn Turcotte2013-12-232-18/+70
| | | | | | | | | | | | | | | | | | | | | | | | | This implements adoptNewWindow for QQuickWebEngineView. The API is only intended to be used through QML to avoid delegating the QQuickWebEngineViewHandle ownership through a signal parameter. Another limitation of the implementation is currently to fail the handle adoption unless it is done synchronously within the adoptNewWindow call. To support this we would need to delay the call to WebContentsAdapter::initialize which will leave the adapter without a client when returning to the event loop and would require putting null checks everywhere it is used. So I would prefer to keep the API limited and avoid potential crashes. If we want to support asynchronous Loader elements or QML files fetched from the network in the future, the API should be able to scale to the task once we've adjusted the implementation. This also adds basic tabs support in the quicknanobrowser example. The url property is now set imperatively to avoid overwriting the adopted WebContentsAdapter's loading URL. Change-Id: Iba5c5dc3ffa21045f356be131ca15c01b9aee7c8 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix the build with Qt 5.1Andras Becsi2013-11-261-0/+2
| | | | | | | | We are still able to build with Qt 5.1 if we disable the hardware acceleration codepaths. Change-Id: Ic748dac0a7f25bbd79f2f711a18431872cebd917 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove the need for application to set an RPATH.Jocelyn Turcotte2013-11-181-1/+1
| | | | | | | | | | | | | The WebEngineWidgets module and the WebEngine QtQuick plugin libraries already have the RPATH set properly in their headers and the application won't need to link any symbol directly to the Core library. Remove the RPATH directive for examples and tests and fix the build issue by making sure that the link directive isn't passed to dependencies through the prl or pkgconfig file. Change-Id: Id1f5efb8c9823613e804e8e6356d711d561d72ec Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Delegated renderer: Put textures on those quads.Jocelyn Turcotte2013-11-112-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few changes are necessary to allow fetching textures provided by the render processes through IPC and bound to their respective GL context in the GPU process and use them in the QtQuick scene graph. - Remove the plain color test textures. - Allow setting the QtQuick QOpenGLContext's handle as the share context for all context set as shared in the Chromium GPU process. We do this by letting the GpuChannelManager ask us for a ShareGroup instance responsible for returning a sharing GL context handle. - Fetch texture IDs from the MailboxManager used by the GPU process using the Mailbox given to us in the DelegatedFrameData. This is the same mechanism used by Chromium to share textures between "client" GL contexts. - Keep the QtQuick scene graph threads and Chromium in-process GPU thread separate. The complicated part of merging those two rendering pipelines on the same thread is that it would force Qt to also use only one thread for rendering. For the moment we will try to synchronize those threads together instead. - Lock the Qt SG thread while waiting for resource sync points. Do so by posting a callback to the Chromium GPU thread and wait until the sync point of every resource has been retired by the producing contexts. - Acknowledge the delegated from once QtQuick swapped the GL buffers instead of right after we added the frame to the scene graph. This fixes some issues where the textures for the previous frame would already be released as Chromium was producing the new frame. There are still a few issues regarding synchronization that have to be fixed, especially when Qt triggers the rendering of a new frame while Chromium is starting to produce the next frame. Note: To enable it we still need to pass the following command switches: --enable-delegated-renderer --enable-threaded-compositing --in-process-gpu Change-Id: I2d4f7fac603b1808ed1495a8d689cb48e9ed41b9 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Pimp up our QtQuick browserPierre Rossi2013-10-111-10/+26
| | | | | Change-Id: I48c0ed54cd946f223dc050b8a1f26282b02964a2 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix typo in quickwindow.qmlArvid Nilsson2013-10-041-1/+1
| | | | | | | | | Set favicon image source to the value of the icon property, not the url. D'oh! Change-Id: I411f787f4f19fbeb2db9a61e4aada79b3527dcfb Reviewed-by: Arvid Nilsson <anilsson@blackberry.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add loadProgress APIArvid Nilsson2013-10-041-26/+34
| | | | | | | | | | | | | | | | This exposes loadProgress in both widget and quick webengineviews. However, the progress will not change until we get an upstream change in Chromium where the content LoadProgressChanged API is exposed to all ports, not just Android. The upstream change is https://src.chromium.org/viewvc/chrome?revision=221010&view=revision Once we get that change, you'll see the widget example browser start to paint a blue progress rectangle in the background of the URL bar. Also, a progress bar was added to the quicknanobrowser, but it will be stuck at 0 for now. Change-Id: Icbaa01b86c013e0052b3abb7672c38e57128f44a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Quick: Add Favicon APIArvid Nilsson2013-10-031-0/+5
| | | | | | | | | | | | | | | | | | | Adds a favicon API modelled after the WebKit2 QQuickWebView API, but using an http(s) URL instead of a custom protocol, because there's no icondatabase yet. The icon URL lingers even when a new load is committed, until the load finishes. It might be more prudent to clear the icon when committing a new load, but I opted to let the app take care of that detail if desired. Many browsers show a spinner instead of the favicon while loading, for example. There's no widget API implementation for favicons yet, because that API only makes sense if we have a full-fledged icon database (case in point: QWebEngineSettings::iconForUrl()). Change-Id: I1e7b85104c80de2ae46a5fe9a273104d43a5c71f Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Change "Contents" to "Engine" in API class names.Jocelyn Turcotte2013-08-192-11/+11
| | | | | Change-Id: I58d83f4f33728f92e4bf13b6be30b15528fdd033 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Detach common.pri from the nano browser examples.Jocelyn Turcotte2013-08-192-3/+4
| | | | | | | | | | | | | | Move common.pri to the root directory to be able to use it with tests. Remove nano browser specific logic (util.h include and common resources) from this file and use relative paths in the examples instead. This also remove unnecessary directives: - lib doesn't have to be added to INCLUDEPATH since proper modules are used - util.h doesn't need to be added to HEADERS, moc doesn't need to go through it - MOC_DIR doesn't have to be adjusted anymore Change-Id: Id706e7f2ef7c9607bdcd0ba63afecf5b5854262b Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Prepare the directories to have more examples included.Jocelyn Turcotte2013-08-196-0/+303
This also ajust the name to be consistent with other Qt examples. - Move nano browser one directory level down, also renaming them to match their target name - Remove the dashes from the target names - Rename the qtquick example directory to quick, matching the style in lib Change-Id: I4a5e31be0b919ae596eadbf731be52372ae61151 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>