I have made the following changes intended for : CE:Apps:MTF / heliumreborn
Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below. https://build.pub.meego.com//request/show/4325 Thank You, vesku [This message was auto-generated] --- Request # 4325: Messages from BOSS: State: review at 2012-02-09T11:11:11 by bossbot Reviews: accepted by bossbot : Prechecks succeeded. new for CE-maintainers : Please replace this text with a review and approve/reject the review (not the SR). BOSS will take care of the rest Changes: submit: home:vesku:branches:CE:Apps:MTF / heliumreborn -> CE:Apps:MTF / heliumreborn changes files: -------------- --- heliumreborn.changes +++ heliumreborn.changes @@ -0,0 +1,6 @@ +* Thu Feb 09 2012 Vesa-Matti Hartikainen <[email protected]> - 1.1.1 +- Release 1.1.1 +-- Fix graphics flickr in startup +- Changed order of parameters in desktop-file to properly enable respawn delay +- Added splash screens + old: ---- heliumreborn-1.1.0.tar.bz2 new: ---- heliumreborn-1.1.1.tar.bz2 landscape.png portrait.png spec files: ----------- --- heliumreborn.spec +++ heliumreborn.spec @@ -7,13 +7,15 @@ Name: heliumreborn Summary: Helium Mobile browser ported to MeeGo Qt Quick Components -Version: 1.1.0 +Version: 1.1.1 Release: 1 Group: System/Libraries License: LGPL v2.1 URL: https://github.com/veskuh/HeliumReborn Source0: %{name}-%{version}.tar.bz2 Source1: heliumreborn.desktop +Source2: portrait.png +Source3: landscape.png Source100: heliumreborn.yaml BuildRequires: pkgconfig(QtCore) >= 4.7.0 BuildRequires: pkgconfig(QtOpenGL) @@ -55,7 +57,10 @@ # >> install pre mkdir -p %{buildroot}/%{_bindir} mkdir -p %{buildroot}/%{_datadir}/applications +mkdir -p %{buildroot}/opt/heliumreborn cp %{SOURCE1} %{buildroot}/%{_datadir}/applications/heliumreborn.desktop +cp %{SOURCE2} %{buildroot}/opt/heliumreborn/ +cp %{SOURCE3} %{buildroot}/opt/heliumreborn/ # << install pre %qmake_install @@ -74,6 +79,8 @@ %defattr(-,root,root,-) %{_bindir}/heliumreborn %{_datadir}/applications/heliumreborn.desktop +/opt/heliumreborn/landscape.png +/opt/heliumreborn/portrait.png # >> files # << files other changes: -------------- ++++++ heliumreborn-1.1.0.tar.bz2 -> heliumreborn-1.1.1.tar.bz2 --- qml/HeliumReborn/FieldText.qml +++ qml/HeliumReborn/FieldText.qml @@ -25,238 +25,233 @@ import com.nokia.meego 1.0 Item { - id: fieldText - height: 32 - property string text: "" - property bool mouseGrabbed: false - property bool loading: false - - signal editFinished - signal editAborted - signal editStarted - signal reloadRequested - signal stopRequested - - function updateFavIcon() { - //console.log("fieldText.setFavIcon()"); - defaultFavIcon.opacity = 0; - favIcon.opacity = 1; - } - - function setDefaultFavIcon() { - //console.log("fieldText.setDefaultFavIcon()"); - favIcon.opacity = 0; - defaultFavIcon.opacity = 0.7; - } - - // Set the "fieldText" to "editingUrl" state, and emit the "editStarted" signal - function edit() { - if (!mouseGrabbed) { - fieldText.editStarted(); - fieldText.state = 'editingUrl'; - mouseGrabbed = true; - } - } - - // Emit the "editFinished" signal - function finishEdit() { - fieldText.state = ''; - fieldText.text = textEdit.text; - mouseGrabbed = false; - textEdit.selectAll(); - fieldText.editFinished(); - } - - // Set the "fieldText" to "<empty>" state, and emit the "editAborted" signal - function abortEdit() { - if (mouseGrabbed) { - mouseGrabbed = false; - textEdit.text = fieldText.text; - fieldText.state = ''; - textEdit.selectAll(); - } - fieldText.editAborted(); - } - - SipAttributes { - id:customSipAttributes - actionKeyEnabled: true - actionKeyHighlighted: true - actionKeyLabel: "Go" - } - - // TextInput box in which the User types the URL - TextField { - id: textEdit - - Binding { - target: textEdit - property: "text" - value: fieldText.text - } - - Image { - id: favIcon - height: parent.height-16 - width: height - smooth: true; asynchronous: true; - fillMode: Image.PreserveAspectFit - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 16 - opacity: 0; - source: "image://favicons/"+webView.url - } - - Image { - id: defaultFavIcon - height: parent.height-16 - width: height - smooth: true - fillMode: Image.PreserveAspectFit - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 16 - source: "qrc:/qmls/pics/default-favico-30x30.png" - opacity: 1 - } - - Image { - id: reloadIcon - height: parent.height-16 - width: height - smooth: true - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: 16 - source: "qrc:/qmls/pics/reload-30x30.png" - opacity: 0.7 - MouseArea { - anchors.fill: parent - onClicked: { fieldText.reloadRequested(); } - onPressed: { parent.opacity = 1; } - onReleased: { parent.opacity = 0.7; } - } - } - - Image { - id: clearIcon - height: parent.height-16 - width: height - smooth: true - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: 16 - source: "qrc:/qmls/pics/clear-30x30.png" - opacity: 0 - MouseArea { - anchors.fill: parent - onClicked: { textEdit.text = ''; } - onPressed: { parent.opacity = 1; } - onReleased: { parent.opacity = 0.7; } - } - } - Image { - id: stopIcon - height: parent.height-16 - width: height - smooth: true - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: 16 - source: "qrc:/qmls/pics/stop-30x30.png" - opacity: 0 - MouseArea { - anchors.fill: parent - onClicked: { fieldText.stopRequested(); } - onPressed: { parent.opacity = 1; } - onReleased: { parent.opacity = 0.7; } - } - } - - platformSipAttributes:customSipAttributes - platformStyle: TextFieldStyle { paddingRight: defaultFavIcon.width + 32 ; paddingLeft:reloadIcon.width + 32; } - anchors.left: parent.left - anchors.leftMargin: 4 - anchors.right: parent.right - anchors.rightMargin: 4 - anchors.verticalCenter: parent.verticalCenter - font.family: "Helvetica" - font.bold: false - font.pixelSize: 18 - Keys.onEscapePressed: { abortEdit(); } - Keys.onEnterPressed: { finishEdit(); } - Keys.onReturnPressed: { finishEdit(); } - - placeholderText: "Enter URL" - - onActiveFocusChanged: { - if( textEdit.focus ) { - edit(); - } - - } - - - - } - - - - - - states: [ - State { - name: "editingUrl" - PropertyChanges { - target: clearIcon - opacity: 0.7 - } - PropertyChanges { - target: reloadIcon - opacity: 0 - } - PropertyChanges { - target: stopIcon - opacity: 0 - } - PropertyChanges { - target: textEdit - readOnly: false - focus: true - } - StateChangeScript { - name: "selectAll" - script: { textEdit.selectAll(); } - } - }, - State { - name: "loadingUrl" - when: fieldText.loading - PropertyChanges { - target: clearIcon - opacity: 0 - } - PropertyChanges { - target: reloadIcon - opacity: 0 - } - PropertyChanges { - target: stopIcon - opacity: 0.7 - } - } - ] - - transitions: [ - Transition { - from: "" - to: "*" - reversible: true - NumberAnimation { - property: "opacity" - duration: 200 - } - } - ] + id: fieldText + height: 32 + property string text: "" + property bool mouseGrabbed: false + property bool loading: false + + signal editFinished + signal editAborted + signal editStarted + signal reloadRequested + signal stopRequested + + function updateFavIcon() { + //console.log("fieldText.setFavIcon()"); + defaultFavIcon.opacity = 0; + favIcon.opacity = 1; + } + + function setDefaultFavIcon() { + //console.log("fieldText.setDefaultFavIcon()"); + favIcon.opacity = 0; + defaultFavIcon.opacity = 0.7; + } + + // Set the "fieldText" to "editingUrl" state, and emit the "editStarted" signal + function edit() { + if (!mouseGrabbed) { + fieldText.editStarted(); + fieldText.state = 'editingUrl'; + mouseGrabbed = true; + } + } + + // Emit the "editFinished" signal + function finishEdit() { + fieldText.state = ''; + fieldText.text = textEdit.text; + mouseGrabbed = false; + textEdit.selectAll(); + fieldText.editFinished(); + } + + // Set the "fieldText" to "<empty>" state, and emit the "editAborted" signal + function abortEdit() { + if (mouseGrabbed) { + mouseGrabbed = false; + textEdit.text = fieldText.text; + fieldText.state = ''; + textEdit.selectAll(); + } + fieldText.editAborted(); + } + + SipAttributes { + id:customSipAttributes + actionKeyEnabled: true + actionKeyHighlighted: true + actionKeyLabel: "Go" + } + + // TextInput box in which the User types the URL + TextField { + id: textEdit + + Binding { + target: textEdit + property: "text" + value: fieldText.text + } + + Image { + id: favIcon + height: parent.height-16 + width: height + smooth: true; asynchronous: true; + fillMode: Image.PreserveAspectFit + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 16 + opacity: 0; + source: "image://favicons/"+webView.url + } + + Image { + id: defaultFavIcon + height: parent.height-16 + width: height + smooth: true + fillMode: Image.PreserveAspectFit + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 16 + source: "qrc:/qmls/pics/default-favico-30x30.png" + opacity: 1 + } + + Image { + id: reloadIcon + height: parent.height-16 + width: height + smooth: true + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 16 + source: "qrc:/qmls/pics/reload-30x30.png" + opacity: 0.7 + MouseArea { + anchors.fill: parent + onClicked: { fieldText.reloadRequested(); } + onPressed: { parent.opacity = 1; } + onReleased: { parent.opacity = 0.7; } + } + } + + Image { + id: clearIcon + height: parent.height-16 + width: height + smooth: true + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 16 + source: "qrc:/qmls/pics/clear-30x30.png" + opacity: 0 + MouseArea { + anchors.fill: parent + onClicked: { textEdit.text = ''; } + onPressed: { parent.opacity = 1; } + onReleased: { parent.opacity = 0.7; } + } + } + Image { + id: stopIcon + height: parent.height-16 + width: height + smooth: true + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 16 + source: "qrc:/qmls/pics/stop-30x30.png" + opacity: 0 + MouseArea { + anchors.fill: parent + onClicked: { fieldText.stopRequested(); } + onPressed: { parent.opacity = 1; } + onReleased: { parent.opacity = 0.7; } + } + } + + platformSipAttributes:customSipAttributes + platformStyle: TextFieldStyle { paddingRight: defaultFavIcon.width + 32 ; paddingLeft:reloadIcon.width + 32; } + anchors.left: parent.left + anchors.leftMargin: 4 + anchors.right: parent.right + anchors.rightMargin: 4 + anchors.verticalCenter: parent.verticalCenter + font.family: "Helvetica" + font.bold: false + font.pixelSize: 18 + Keys.onEscapePressed: { abortEdit(); } + Keys.onEnterPressed: { finishEdit(); } + Keys.onReturnPressed: { finishEdit(); } + + placeholderText: "Enter URL" + + onActiveFocusChanged: { + if( textEdit.focus ) { + edit(); + } + } + + } + + + states: [ + State { + name: "editingUrl" + PropertyChanges { + target: clearIcon + opacity: 0.7 + } + PropertyChanges { + target: reloadIcon + opacity: 0 + } + PropertyChanges { + target: stopIcon + opacity: 0 + } + PropertyChanges { + target: textEdit + readOnly: false + focus: true + } + StateChangeScript { + name: "selectAll" + script: { textEdit.selectAll(); } + } + }, + State { + name: "loadingUrl" + when: fieldText.loading + PropertyChanges { + target: clearIcon + opacity: 0 + } + PropertyChanges { + target: reloadIcon + opacity: 0 + } + PropertyChanges { + target: stopIcon + opacity: 0.7 + } + } + ] + + + transitions: [ + Transition { + from: "" + to: "*" + reversible: true + NumberAnimation { + property: "opacity" + duration: 200 + } + } + ] } --- qml/HeliumReborn/FlickableWebView.qml +++ qml/HeliumReborn/FlickableWebView.qml @@ -190,25 +190,4 @@ } } } - -// Rectangle { -// id: focusAwayRect -// color: "#000" -// anchors.top: parent.top -// anchors.bottom: parent.bottom -// anchors.left: parent.left -// anchors.right: parent.right -// opacity: 0 -// z: 2 - -// states: State { -// name: "focusAway"; when: !focus; -// PropertyChanges { target: focusAwayRect; opacity: 0.8; } -// } - -// transitions: Transition { -// from: ""; to: "focusAway"; reversible: true; -// NumberAnimation { property: "opacity"; duration: 100; } -// } -// } } --- qml/HeliumReborn/Header.qml +++ qml/HeliumReborn/Header.qml @@ -89,9 +89,6 @@ target: busyLoadingIcon; property: "rotation"; from: 360; to: 0; loops: Animation.Infinite; easing.type: "Linear"; duration: 5000; } - - - } // Header Text: Holds the Page Title @@ -126,11 +123,6 @@ anchors.topMargin: 4 anchors.bottom: parent.bottom - - - - - Item { id: urlBox height: fieldText.height+16 @@ -187,21 +179,21 @@ property real progressOff : 1 states: [ - State { - name: "ProgressShown" - when: webView.progress < 1.0 - PropertyChanges { target: headerSkeleton; progressOff: 0; } - } + State { + name: "ProgressShown" + when: webView.progress < 1.0 + PropertyChanges { target: headerSkeleton; progressOff: 0; } + } ] transitions: [ - Transition { - PropertyAnimation { - target: headerSkeleton - property: "progressOff" - easing.type: "InOutQuad" - duration: 300 - } - } + Transition { + PropertyAnimation { + target: headerSkeleton + property: "progressOff" + easing.type: "InOutQuad" + duration: 300 + } + } ] } } --- qml/HeliumReborn/MainPage.qml +++ qml/HeliumReborn/MainPage.qml @@ -13,64 +13,59 @@ webView.forward.trigger(); } - - - // Header Header { - id: header - width: parent.width - onUrlChanged: { webView.changeUrl(urlString); } - loading: webView.loading - z: 3 + id: header + width: parent.width + onUrlChanged: { webView.changeUrl(urlString); } + loading: webView.loading + z: 3 } - // WebView FlickableWebView { - id: webView - width: parent.width - anchors.top: header.bottom - //anchors.bottom: footer.top - anchors.bottom: parent.bottom - - anchors.left: parent.left - anchors.right: parent.right - onGotFocus: { header.abortEdit(); } - onUrlChanged: { header.setDefaultFavIcon(); header.changeUrl(urlString); } - onIconChanged: { header.updateFavIcon(); } - z: 1 + id: webView + width: parent.width + anchors.top: header.bottom + anchors.bottom: parent.bottom + + anchors.left: parent.left + anchors.right: parent.right + onGotFocus: { header.abortEdit(); } + onUrlChanged: { header.setDefaultFavIcon(); header.changeUrl(urlString); } + onIconChanged: { header.updateFavIcon(); } + z: 1 } // Attach scrollbars to the right and bottom edges of the view. ScrollBar { - id: verticalScrollBar - verticalOrientation: true - whenToShow: webView.moving - positionInContent: webView.visibleArea.yPosition - visibleContent: webView.visibleArea.heightRatio - width: 8 - anchors.top: parent.top - anchors.topMargin: header.height - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.bottomMargin: 8 - z: 3 + id: verticalScrollBar + verticalOrientation: true + whenToShow: webView.moving + positionInContent: webView.visibleArea.yPosition + visibleContent: webView.visibleArea.heightRatio + width: 8 + anchors.top: parent.top + anchors.topMargin: header.height + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.bottomMargin: 8 + z: 3 } // Attach scrollbars to the right and bottom edges of the view. ScrollBar { - id: horizontalScrollBar - verticalOrientation: false - whenToShow: webView.moving - positionInContent: webView.visibleArea.xPosition - visibleContent: webView.visibleArea.widthRatio - height: 8 - anchors.left: parent.left - anchors.right: parent.right - anchors.rightMargin: 8 - anchors.bottom: parent.bottom - z: 3 + id: horizontalScrollBar + verticalOrientation: false + whenToShow: webView.moving + positionInContent: webView.visibleArea.xPosition + visibleContent: webView.visibleArea.widthRatio + height: 8 + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: 8 + anchors.bottom: parent.bottom + z: 3 } } --- qml/HeliumReborn/main.qml +++ qml/HeliumReborn/main.qml @@ -37,37 +37,35 @@ buttons: ButtonRow { style: ButtonStyle { } anchors.horizontalCenter: parent.horizontalCenter - Button {text: "Ok"; onClicked: warningDialog.accept()} + Button { + text: "Ok"; + onClicked: warningDialog.accept() + } } Connections { - target: appcore - onSslError: { text.text="<b>SSL error</b><p>Site cannot be securely authenticated. <p>Error Message:<br>"+errorMsg; warningDialog.open(); } + target: appcore + onSslError: { + text.text="<b>SSL error</b><p>Site cannot be securely authenticated. <p>Error Message:<br>"+errorMsg; + warningDialog.open(); + } } } - InfoBanner { id: bookmarkAdded text: "Bookmark added" iconSource:"qrc:/qmls/pics/bookmark-icon-30x30.png" } - - Sheet { id: logbookSheet - acceptButtonText: "Done" - content: LogbookView { - } } - - MainPage { id: mainPage } @@ -77,43 +75,42 @@ visible: true ToolIcon { - // iconId: "toolbar-previous" iconSource: "qrc:/qmls/pics/back-30x30.png" onClicked: { mainPage.back(); } } ToolIcon { - // iconId: "toolbar-home" iconSource: "qrc:/qmls/pics/home-30x30.png" onClicked: { if (appcore) appcore.loadHomeUrl(); } } ToolIcon { - // iconId: "toolbar-next" iconSource: "qrc:/qmls/pics/forward-30x30.png" onClicked: { mainPage.forward(); } } ToolIcon { - // iconId: "toolbar-favorite-mark" iconSource: "qrc:/qmls/pics/new-bookmark-30x30.png" - onClicked: { bookmarkAdded.show(); if (appcore) appcore.bookmarkCurrentUrl(); } + onClicked: { + bookmarkAdded.show(); + if (appcore) + appcore.bookmarkCurrentUrl(); + } } ToolIcon { - // iconId: "toolbar-directory" iconSource: "qrc:/qmls/pics/bookmarks-30x30.png" onClicked: { logbookSheet.open(); } } ToolIcon { - platformIconId: "toolbar-view-menu"; - id: menuIcon - anchors.right: parent===undefined ? undefined : parent.right - onClicked: (myMenu.status == DialogStatus.Closed) ? myMenu.open() : myMenu.close() + platformIconId: "toolbar-view-menu"; + id: menuIcon + anchors.right: parent===undefined ? undefined : parent.right + onClicked: (myMenu.status == DialogStatus.Closed) ? myMenu.open() : myMenu.close() } } @@ -137,7 +134,6 @@ text: qsTr("Reset All") onClicked: { if (appcore) appcore.resetAll(); } } - } } } --- qmlapplicationviewer/qmlapplicationviewer.cpp +++ qmlapplicationviewer/qmlapplicationviewer.cpp @@ -103,6 +103,11 @@ { connect(view->engine(), SIGNAL(quit()), view, SLOT(close())); view->setResizeMode(QDeclarativeView::SizeRootObjectToView); + view->setAttribute(Qt::WA_OpaquePaintEvent); + view->setAttribute(Qt::WA_NoSystemBackground); + view->viewport()->setAttribute(Qt::WA_OpaquePaintEvent); + view->viewport()->setAttribute(Qt::WA_NoSystemBackground); + // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in #if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 #if !defined(NO_JSDEBUGGER) ++++++ heliumreborn.desktop --- heliumreborn.desktop +++ heliumreborn.desktop @@ -1,9 +1,9 @@ [Desktop Entry] Name=HeliumReborn Comment=HeliumReborn Mobile Browser -Exec=invoker --type=d /usr/bin/heliumreborn -r 7 +Exec=invoker --splash /opt/heliumreborn/portrait.png -L /opt/heliumreborn/landscape.png -r 9 --type=d /usr/bin/heliumreborn Categories=Network Icon=icons-Applications-browser Type=Application Terminal=false -StartupNotify=true \ No newline at end of file +StartupNotify=true ++++++ heliumreborn.yaml --- heliumreborn.yaml +++ heliumreborn.yaml @@ -1,6 +1,6 @@ Name: heliumreborn Summary: Helium Mobile browser ported to MeeGo Qt Quick Components -Version: 1.1.0 +Version: 1.1.1 Release: 1 Group: System/Libraries License: LGPL v2.1 @@ -8,6 +8,8 @@ Sources: - "%{name}-%{version}.tar.bz2" - heliumreborn.desktop + - portrait.png + - landscape.png Description: Helium Mobile browser ported to Qt Quick Components for Nemo Mobile. Configure: none Builder: qmake @@ -30,8 +32,13 @@ - QtGui - qdeclarative-boostable +# We set explicitly platform specific platform screens here since +# the UI looks slightly different in Harmattan and thus there different +# splashcreens are needed. Files: - "%{_bindir}/heliumreborn" - "%{_datadir}/applications/heliumreborn.desktop" + - "/opt/heliumreborn/landscape.png" + - "/opt/heliumreborn/portrait.png" ++++++ landscape.png (new) Binary files landscape.png added ++++++ portrait.png (new) Binary files portrait.png added
