Merge lp:~osomon/webbrowser-app/panel-inside-loader into lp:webbrowser-app

Proposed by Olivier Tilloy
Status: Merged
Approved by: Olivier Tilloy
Approved revision: 142
Merged at revision: 143
Proposed branch: lp:~osomon/webbrowser-app/panel-inside-loader
Merge into: lp:webbrowser-app
Diff against target: 136 lines (+54/-57)
1 file modified
src/Ubuntu/Browser/Browser.qml (+54/-57)
To merge this branch: bzr merge lp:~osomon/webbrowser-app/panel-inside-loader
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Günter Schwann (community) Approve
Review via email: mp+165651@code.launchpad.net

Commit message

Move the Panel inside the Loader, so that it is not instantiated when in chromeless mode.

To post a comment you must log in.
Revision history for this message
Günter Schwann (schwann) wrote :

Looks good and works as expected

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/Ubuntu/Browser/Browser.qml'
2--- src/Ubuntu/Browser/Browser.qml 2013-05-20 14:37:23 +0000
3+++ src/Ubuntu/Browser/Browser.qml 2013-05-24 15:38:41 +0000
4@@ -187,7 +187,7 @@
5
6 onUrlChanged: {
7 if (!browser.chromeless) {
8- chromeLoader.item.url = url
9+ panel.chrome.url = url
10 }
11 }
12
13@@ -286,70 +286,67 @@
14 align: Qt.AlignBottom
15 }
16
17- Panel {
18+ Loader {
19 id: panel
20
21- locked: browser.chromeless
22+ property Item chrome: item ? item.contents[0] : null
23+
24+ sourceComponent: browser.chromeless ? undefined : panelComponent
25
26 anchors {
27 left: parent.left
28 right: parent.right
29- bottom: opened ? osk.top : parent.bottom
30+ bottom: (item && item.opened) ? osk.top : parent.bottom
31 }
32- height: units.gu(8)
33-
34- Loader {
35- id: chromeLoader
36-
37- active: !browser.chromeless
38- source: "Chrome.qml"
39-
40- anchors.fill: parent
41-
42- Binding {
43- target: chromeLoader.item
44- property: "loading"
45- value: webview.loading || (webview.loadProgress == 0)
46- }
47-
48- Binding {
49- target: chromeLoader.item
50- property: "loadProgress"
51- value: webview.loadProgress
52- }
53-
54- Binding {
55- target: chromeLoader.item
56- property: "canGoBack"
57- value: webview.canGoBack
58- }
59-
60- Binding {
61- target: chromeLoader.item
62- property: "canGoForward"
63- value: webview.canGoForward
64- }
65-
66- Connections {
67- target: chromeLoader.item
68- onGoBackClicked: webview.goBack()
69- onGoForwardClicked: webview.goForward()
70- onUrlValidated: browser.url = url
71- property bool stopped: false
72- onLoadingChanged: {
73- if (chromeLoader.item.loading) {
74- panel.opened = true
75- } else if (stopped) {
76- stopped = false
77- } else if (!chromeLoader.item.addressBar.activeFocus) {
78- panel.opened = false
79- webview.forceActiveFocus()
80- }
81+
82+ Component {
83+ id: panelComponent
84+
85+ Panel {
86+ anchors {
87+ left: parent ? parent.left : undefined
88+ right: parent ? parent.right : undefined
89+ bottom: parent ? parent.bottom : undefined
90 }
91- onRequestReload: webview.reload()
92- onRequestStop: {
93- stopped = true
94- webview.stop()
95+ height: units.gu(8)
96+
97+ opened: true
98+
99+ Chrome {
100+ anchors.fill: parent
101+
102+ loading: webview.loading || (webview.loadProgress == 0)
103+ loadProgress: webview.loadProgress
104+
105+ canGoBack: webview.canGoBack
106+ onGoBackClicked: webview.goBack()
107+
108+ canGoForward: webview.canGoForward
109+ onGoForwardClicked: webview.goForward()
110+
111+ onUrlValidated: browser.url = url
112+
113+ property bool stopped: false
114+ onLoadingChanged: {
115+ if (loading) {
116+ if (panel.item) {
117+ panel.item.opened = true
118+ }
119+ } else if (stopped) {
120+ stopped = false
121+ } else if (!addressBar.activeFocus) {
122+ if (panel.item) {
123+ panel.item.opened = false
124+ }
125+ webview.forceActiveFocus()
126+ }
127+ }
128+
129+ onRequestReload: webview.reload()
130+ onRequestStop: {
131+ stopped = true
132+ webview.stop()
133+ }
134 }
135 }
136 }

Subscribers

People subscribed via source and target branches

to status/vote changes: