From 4a08bd334b661d00a9fd908d054728ab9e9a5d8d Mon Sep 17 00:00:00 2001 From: Zeno Albisser <zeno.albisser@digia.com> Date: Mon, 17 Jun 2013 12:59:07 +0200 Subject: [PATCH] Use QQuickControls for QtQuick browser ui. --- example/icons/go-next.png | Bin 0 -> 930 bytes example/icons/go-previous.png | Bin 0 -> 955 bytes example/icons/process-stop.png | Bin 0 -> 1272 bytes example/icons/view-refresh.png | Bin 0 -> 1364 bytes example/main.cpp | 5 +- example/quickwindow.cpp | 8 +-- example/quickwindow.h | 6 +- example/quickwindow.qml | 98 ++++++++++----------------------- 8 files changed, 38 insertions(+), 79 deletions(-) create mode 100644 example/icons/go-next.png create mode 100644 example/icons/go-previous.png create mode 100644 example/icons/process-stop.png create mode 100644 example/icons/view-refresh.png diff --git a/example/icons/go-next.png b/example/icons/go-next.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3f65d33d303315f0d8d9dd03c7e7e2427d4950 GIT binary patch literal 930 zcmV;T16}-yP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00004b3#c}2nYxW zd<bNS0000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$TG)Y83R5*>b zm0M^XRTPH5HM8gBV(mpKDJa$_Z|#GH3N?w)f>s1UMXmZGQl%7pX-P>7f}&tiq(1aT zP)ljdLx@@mDPl`Bh9;&enie%Q#!J+svBm_`ljO{0&t5*9IdzgY(T8-w&&-B3-`fA$ zi`k;8T#fLq3ibbj8=Hf!`X=+>l7rQ;d2QV-?>9CVb}uOyV8_ERRIj^v<E!`VHE(a* zCjOFveLvul&D(1>t-Jr}^J`7#mgi;JV)-V&XlM@pz)^Qubt9p3w))KZP8v6Cty-~c zRl~=9ZT*|}%9hiw>&TVBk{`E*J%R4u*)k_V)uAX(9bH4M2p)H=X<%%8)E(<;`P*81 z@8<{N{{IBOvg2J&{nVa86~&Rd6sHcSmeg5NwcJ*BHyV2!{p9dWDJ(v9>J8g5$L0J= zsk213L}W|EX-H&4k~AVoLt+~ery;Q|@y+iixR{Rd<O4geS#j;^wuU`H)1qMO5=u#t z$=NY36o(m~{*9^9pM<tZLP#nRPGX$I3|#18XyOYVyYHFW8|!X*xv|+CtZ>YHa50=@ zc;Z`>a*M<RKk)FK;0HbhQ@}Gm;shrtYNGN}5JYZR5S+MZ4m7CpFom)_BY3_AEY2yn zuB>NG;dVYeab$LCdg4%TZMthga6bIN!w)=6m3OItX9Q0?*00)%Kf9c^j>EIlQ#1Qc zA57l?;H7zB5ee#>%FD+$>_Y(0NEvPf-v}qi-lVpshC8o+i1CprJ$AfhX7ZQl+3(t2 zH&6>05s6eaF&WeV1%>gq+V-!$Z0APe-Os&PsP>n$@w!Jj_x-uF^Rtr^!@atFw9gFz zHT*jWDk5oR$3Ecq9kA<xs!Y|D_xdK&>r&;el~2&q-4lO(_RF6KKCrtkj_?;y0348J zvVd8%$N30LAs>C(5f2Uy_MAE5UP~ip7D;y%aK4(KDFy_}Bhr4nHU9O7(L-n7bFEo! zk}1x<%d6Z9Rkb2Q1|nz80wzuLs~`JES_Y1~?yQi@K`QVBC;_3W>YRUtl<7g%+ko=a zR2)dofzERo0g<ZOORR-1QxWkgpR}J-#ZCUOQoRD?A1x<`zw_bNGynhq07*qoM6N<$ Eg5-w0LI3~& literal 0 HcmV?d00001 diff --git a/example/icons/go-previous.png b/example/icons/go-previous.png new file mode 100644 index 0000000000000000000000000000000000000000..93be3d1ee6b90843d7df0f517733f63ce72f4611 GIT binary patch literal 955 zcmV;s14R6ZP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00004b3#c}2nYxW zd<bNS0000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$TO-V#SR5*>b zl}%_|RTze!@0@e*&7V^HBN&Y|1&xTHg2tGcEZQg$sloamid{(QrYma`p)R6`8xe$x zE=)JAVs%lCB0?>;8x<m*Dkz9SlvvY<p*CsgWM=NU_j56Kk};-ZT=c-pIg5|yd%u@^ z?h#exN-T3lsDS%F#l8E30TB*_ZNC51sQN~=Yj)f>67IczQ|E_9Y~NZ8{U=yn5|bNt zZ{FN-`>T5f542e0(zO_A*m+=BT65yYyKmi^zpwkzroe@3VKxTmpO<#Qo$9}PN9Ubg z_Xgiie@@TlL5!nPUT}-K{lP!##V{MR`u1A(tAcYQ;T_gAofzD<^P1~6-C!rCJ_VE{ zO?Y9~Tg^rcf*`V-<mlM$_23<_I=J^ax4pHw?dZc>pKddeGBNcDMl99@d@*?#BMu`5 zYb=66M96P>ym1t{;b7mot2ey7qkmV+`Nb)IK6?gh0-Om*H6=|GtZ^8z_|#xB$4MHa zD6$$jKjIFyZ|rzxApcm)<oR!yp8IJTs0o3jq_#puJc-7j;0THARd|hAd4rc78`?35 zk`Vh6WnUx~i=x;Nz++I16~t7%X{u-mis^-aMX{9rSIx;2=l=Zt&_^fVy>!!tZo00$ zhq5n{niALwE`qSx617;GS}jp)^&B)CQmI@XtfQKK{hHtR*X)JiW5*8{*M}YSbUs87 z1lYjfLPHRlDtrlQago7TL4k#H%e<v1L?i&Bi8uTQw>?#y8Bg9ja)0mkw!Y3Mr7-(3 zYAQUq<yo9_*ubEwq+UsUbw^<43@suOt7_~rr~|@G(GTw@-`$w!k>h^+o!nj9Hs){H z=}ylcLsNMD&@1I~F^*P_E-*KL76XJLlGGgAOs=NizD)j@|COP{pFB8!alR|pGZbnf z#AOW%WB!5iMHYZ^rc$=oSgzquXnvZ7!rRH-LgDnu&rXb&7mKAv<@GDAIZiV9I`<Vo zd<iX#r7u>7ewn;fJhF#0jl@vQT*g_QU!iIgs_I1~i>lhOu8{-W_eYbl%HYh8>o&{o zBxWuf-PgfmU=b*(s!IKhkt#g^qHK3{6G$e_R6k`ID61~NDss8UR75P*@7&g@Hcf4! d1W0rh$lr11Sh~C<&aD6d002ovPDHLkV1hiw#cluq literal 0 HcmV?d00001 diff --git a/example/icons/process-stop.png b/example/icons/process-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..b68290bf1ebf568d8ab080a4e3ec7d75048ec461 GIT binary patch literal 1272 zcmV<U1PA+xP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00006VoOIv00000 z008+zyMF)x010qNS#tmY3ljhU3ljkVnw%H_000McNliru)d~?8D*!_)NBaN(1cgaN zK~y-)jg?zyR7V)ce{;@m_L6Mk4YjpuNLx(}7TjjV7!4McQVM~-M8pP^w%9@`wp5GJ z2bIKnf%?#gLi-k>P(cu>t+olJDB6Oi7<19INt@fcyGh*L?Ahx%bEXfwuEs>^z{fny z%x}K=F8>icV;qMifOy81NDJ6=Ej;zmN%%s+rvl_$>k2dh=Ow(;0_uN(Pr~WyhK7%} zHZ{3*mkX3CnzC)MEUZ+DpWE9rgMEG9OW5-yd=~fwoT;v_|6tqBo$h#FAF1(iux+sI zJXA`Ql(-iyV*Z*nTse0xGt}Gr-RJP`;~f17=vUQsb?<N6waXLl>mwZsAw=PBr5?>n zVHpONVNg?F?}*0Z)vtxa%RAtQS>O}!_3A)i&-UhKPpqehbR<H|<3TEg%eH5P!w`b$ zk`f%T7-llbn)U0QQ?Xc0?Zm{=4*01EJ^|mZ_WPT+@80c+-o8yb5+Uk#BdV&%m?m~M zTZAWsAmQ`jUAvZeIE*6}!%C%i#qW1U6N$C86B7$N;EDzy9FF(4H#d8tU0q~CA#zHQ zwJa9w*um0$`$+kGObdabX&7Z?tZHp##ooP`LXcJpBNE}k;2>MKZ1HFw&nEyHfUfIk zLXf_H9|}+RS{9)*XAnZL?7#t1<>eTqrM%qQinFwozYZP3ZJM|Mr4&XujIL>@LM|M| zx>PEkc_Bb4Dr}qh)D*$fr&)3EATJ(2j;?8FN-=QwFa(46aygVzD5bEK0x640)*e;7 zDwfm3k}A*TU~-bF3m0&DJUG2xA{Q@Wjg1wdwryiSgv&?0<aiv6ZRb7L^7kcl9qD$n zxUmsU2sGfi#zx||ZedA@>h4CGCbns!G!05h^3KijSjv1eNJ#=PJRV*;b_{1(8ULI* zMc@AYXhKkP^e9u~<HV&T+0#Sv-aU-|e&p~lwrS1;KZGhN$w*0Z-aJ;dwV`{x{N2_@ zrmKtS*|YQ?IfB#WVq<$d8JCL`c@=UjUX1ejW`;sai8(lkn3^IL3}TrkY}!QP=1uNj zx<u~!bxKD^DF+glFVn4QywKEytD*ucFG%Pv7h>tsnJvA|wym+@;ktDV4bEI7LT+LL zXClFaa2Pc*f@fd=y8zIpr-|OVLoS)b6^)V`8Nsu1B~^g{JvVNcp~=bH9q^3~&;eKL zQYke$Hnwry=FQHWVUP(1(T0Z5L!lznE|^nFa=pD|M@A^EtfVp!;7)I^`RCocf7tMP zCs;+T=zyym(`h+6K3?yyuXpB>NwV>H5vJyt%PK2bSzF8Rot@eKv9Vumc(Vnvv(&8v zuGM8S=4ddu$sY(fbD0d;bQ*LWrR$(+sDhPORk7Uf=h`p7WQJm~A8mNM1+1s(u@hMG zF??3z^L_Z%h7Bdo`STHFW%=SSXtI(L<@M5e{=C^8kN@^19I_z-gn{&v;8I{Y@I0`r z33j{+ZvaB&_X!0;<fEVjr~&A2hjYL<5Cr}O1_4vd@l|;NA5Z}-1Qq~`fO&-%89*F( iP_QU44a6wK7vMjbmt^pwc?k0W0000<MNUMnLSTX!5m$Nu literal 0 HcmV?d00001 diff --git a/example/icons/view-refresh.png b/example/icons/view-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..cab4d02c756502f922bbff34df34c0056406bd96 GIT binary patch literal 1364 zcmV-a1*`grP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00004b3#c}2nYxW zd<bNS0000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$U=1D|BR5*>b zm1#^AXBfx-?>jR)yR%C<mRsZyYmuN9MW|>SkD4Z}F=^Tmf|{770@hEqO%szQ{n9is zHEGgX6eKmafTT2OwXsKHJW8z!1VLK`LOl=`0dax7=XjrfU?CiS@JlE8XOfv`e)F4W zo|%^s5&n;jKTA<rS&Q^6bsP3KXP3U)k^lhgX~rd$->y&;^&>EBHBBo`5EO|sKj&=J z5_Cb3Xb}|nqocOcn7QVqeWz0dr@u@KTRZD39?SzX23GoBb3MSyUw(0^ZDmff>~gB$ zoI%$O1VRQLJess_^m+m#;{k~=9QJeN3zwvG=)Bz$Vg)gg)ls`=U><nmf##FhX>nzH zUSF+63=0$fFk&<nnyNtJ0OJgxX#;;Sf=iwE!`J^F(n-LxsW5BVt^N^Xaw3>_?ZmD@ zc?Mck^<7DVOM82J@iOh}mUc1b4RX!_VG$97nd)|hN(wTZg)gK^L_o+OY+avgFUrrb z_dk3R^J-BR>*^ggbs>p)FV8M3)z7(9XZ@K@nhF@qVOPSI5Z_;`t>7V!6wio%`?=P> zA3pu2HQ3fOOioq8(0B+>0w&hyr!z(7uq*-D9-a>d!)pV>lgu3#<6WMedPCPuFCab# zfSWZH-uC*6wktK|<%Vu;{QXK_`-vYrg7FTH%p?t$ZjC~bI4mJpWT7z$sG36^%FIZv zjn(W8V7$*Fn|I;FwAEE~>4te|Dxga-4h2KwAqW6=g~PIlDMA(iFxz8Gh+v}2@nwv| z{<E&Dk14`V#Vk#pS_m$xYFwqr(%I^_iqxcd4QYu^Y%WNKsz@*eF`Kmj>_|(`Ig88U z%-%Ny0HAWkqWLbWYDi<mf3qyoj<&Q%NDzns!t`DUvguYp0CPT&;;N=G2Dlc{01&~) zxY+*0=I(L%MjTJ80RV-dwx8NNN(7SU9FJ@GWQS~%IRFO6fUs`j<GR+!{gKJ{uOHvt z9j%K@+t(>TyjEIJ7<R|#@!kJEEFBzuTt|e&d945uv)g1`xHSR>LTO$Sn$F*e42=4Y zwjJNqu+UBx&J;-%$5e;!r^&ELn(+IpY_e?4oS!pp)0T!Qkdf#F1JK<+Mx3!##qTsP zUG&@%p0g~mVbT}eef!?vhrU2Kn{nKoz45Fth%o?ba^f&J9>kEB<H&(6_NMba+s<9- z?<uKn`bt>T0b&DOv1B6Yh(lH4dhQNwwkZ<1V>QD&5vpGVo|a|^hIHgFiABV;(0R{` zR|+$w;{0^2<IeC0p2xnhXUxaOCxTAN#*pIHke8E;#5gBw{G}_bnR??QFlUV2e>8<d zHJ2th1K+V}xoyk3EW0;g!XltBFHJ76QeBKq_s<Xn(-fHSN6`4|4Zmd=2QQx78=jRU zA~43J^_2}qtkV|g@4C3d({bie?v~1(?j^a^tDjHH$j?ntGE-xj(_urz5HL&&lK~xF zy&iG(=0iO=F><*3^uZbcVE|zw(r3W-b^98;e$VZ)-gBS*1HciDJ$>!YH7P5%l`C5O zT5zU1RmBKKOo<2(5#OJqeXYj^t~PZ82t^YlqTmdet=@g?&6^GTF9WaxQ0GL6Mv|Ov zB_X3AA?O|U21fh50QBfwN1{+4fCv%MqNRy3Ce4A(L<S&X`ZsSyV??6^Fp0>T%lQu} WX<V9e+}~gT0000<MNUMnLSTZM<aw3= literal 0 HcmV?d00001 diff --git a/example/main.cpp b/example/main.cpp index 01850b879..129d8c6c1 100644 --- a/example/main.cpp +++ b/example/main.cpp @@ -56,12 +56,11 @@ int mainWidget(int argc, char **argv) int mainQuick(int argc, char **argv) { - QGuiApplication app(argc, argv); + QApplication app(argc, argv); QQuickWebContentsView::registerType(); - QuickWindow window; - window.show(); + ApplicationEngine appEngine; return app.exec(); } diff --git a/example/quickwindow.cpp b/example/quickwindow.cpp index 5b0ed1d9b..018f1c937 100644 --- a/example/quickwindow.cpp +++ b/example/quickwindow.cpp @@ -62,10 +62,8 @@ public: #include "quickwindow.moc" -QuickWindow::QuickWindow() +ApplicationEngine::ApplicationEngine() { - engine()->rootContext()->setContextProperty("utils", new Utils(this)); - setSource(QUrl("example/quickwindow.qml")); - setResizeMode(QQuickView::SizeRootObjectToView); - setTitle("QQuick Example"); + rootContext()->setContextProperty("utils", new Utils(this)); + load(QUrl("example/quickwindow.qml")); } diff --git a/example/quickwindow.h b/example/quickwindow.h index 7218d084e..3f1f944ca 100644 --- a/example/quickwindow.h +++ b/example/quickwindow.h @@ -42,14 +42,14 @@ #ifndef QUICKWINDOW_H #define QUICKWINDOW_H -#include <QQuickView> +#include <QQmlApplicationEngine> class QWebContentsView; -class QuickWindow : public QQuickView { +class ApplicationEngine : public QQmlApplicationEngine { Q_OBJECT public: - QuickWindow(); + ApplicationEngine(); }; #endif // QUICKWINDOW_H diff --git a/example/quickwindow.qml b/example/quickwindow.qml index 54b82d6c7..3fe0389bf 100644 --- a/example/quickwindow.qml +++ b/example/quickwindow.qml @@ -1,78 +1,43 @@ import QtQuick 2.0 import QtWebEngine 1.0 +import QtQuick.Controls 1.0 +import QtQuick.Layouts 1.0 -Item { +ApplicationWindow { id: browserWindow - height: 480 - width: 320 + height: 600 + width: 800 + visible: true - Rectangle { + toolBar: ToolBar { id: navigationBar - color: "grey" - anchors.top: parent.top - anchors.left: parent.left - anchors.right: parent.right - height: 26 - - Rectangle { - id: backButton - color: "red" - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: parent.left - width: height + RowLayout { + anchors.fill: parent - MouseArea { - anchors.fill: parent - onClicked: { - webContentsView.goBack() - } + ToolButton { + id: backButton + iconName: "go-previous" + iconSource: "icons/go-previous.png" + onClicked: webContentsView.goBack() } - } - Rectangle { - id: forwardButton - color: "green" - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: backButton.right - width: height - - MouseArea { - anchors.fill: parent - onClicked: { - webContentsView.goForward() - } + ToolButton { + id: forwardButton + iconName: "go-next" + iconSource: "icons/go-next.png" + onClicked: webContentsView.goForward() } - } - Rectangle { - id: reloadButton - color: "blue" - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: forwardButton.right - width: height - - MouseArea { - anchors.fill: parent - onClicked: { - webContentsView.reload() - } + ToolButton { + id: reloadButton + iconName: "view-refresh" + iconSource: "icons/view-refresh.png" + onClicked: webContentsView.reload() } - } - TextInput { - id: addressBar - focus: true - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: reloadButton.right - anchors.right: parent.right + TextField { + id: addressBar + focus: true + Layout.fillWidth: true - cursorVisible: true - persistentSelection: true - selectByMouse: true - - onAccepted: { - webContentsView.url = utils.fromUserInput(text) + onAccepted: webContentsView.url = utils.fromUserInput(text) } } } @@ -80,10 +45,7 @@ Item { WebContentsView { id: webContentsView focus: true - anchors.top: navigationBar.bottom - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.right: parent.right + anchors.fill: parent url: "http://qt-project.org/" Binding { -- GitLab