ubuntu-sdk-bugs team mailing list archive
-
ubuntu-sdk-bugs team
-
Mailing list archive
-
Message #06946
[Bug 1588238] Re: Flickable's widthRatio and heightRatio are wrong when the content is smaller than the view and has topMargin/leftMargin
** Also affects: canonical-devices-system-image
Importance: Undecided
Status: New
** Changed in: qtdeclarative-opensource-src (Ubuntu)
Importance: Undecided => Medium
** Changed in: qtdeclarative-opensource-src (Ubuntu RTM)
Importance: Undecided => Medium
** Changed in: canonical-devices-system-image
Importance: Undecided => Medium
** Changed in: canonical-devices-system-image
Assignee: (unassigned) => Zoltan Balogh (bzoltan)
** Changed in: canonical-devices-system-image
Milestone: None => 13
** Changed in: canonical-devices-system-image
Status: New => In Progress
--
You received this bug notification because you are a member of Ubuntu
SDK bug tracking, which is subscribed to qtdeclarative-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1588238
Title:
Flickable's widthRatio and heightRatio are wrong when the content is
smaller than the view and has topMargin/leftMargin
Status in Canonical System Image:
In Progress
Status in qtdeclarative-opensource-src package in Ubuntu:
New
Status in qtdeclarative-opensource-src package in Ubuntu RTM:
In Progress
Bug description:
UPSTREAM BUG: https://bugreports.qt.io/browse/QTBUG-53726
Description (copied from the upstream bug I created)
According to Flickable's documentation, widthRatio and heightRatio define
"the percentage of the full view currently visible, scaled to 0.0 - 1.0".
At the moment, defining leftMargin so that
leftMargin+contentWidth < flickable.width
causes widthRatio to be wrongly evaluated to something != 1, whereas it should be 1, because Flickable's defaults at -leftMargin
(see https://github.com/qtproject/qtdeclarative/blob/5.6/src/quick/items/qquickflickable.cpp#L1592 ).
and when contentX is -leftMargin, the whole content fits inside the view.
As a consequence of that, in the current implementation you can also scroll the item from the testcase left and right, which shouldn't be possible (because item+margin are still smaller than the view).
============================
Additional Ubuntu-specific info:
This is currently blocking the correct implementation of the new scrollbars inside TextFields (ping kalikiana or me (faenil) on IRC for more info)
========TESTCASE============
import QtQuick 2.0
Flickable {
id: flickable
width: 200
height: 200
contentWidth: item.width
contentHeight: item.height
topMargin: 20
leftMargin: 40
Component.onCompleted: console.log("xPos", flickable.visibleArea.xPosition, "widthRatio", flickable.visibleArea.widthRatio)
Connections {
target: flickable.visibleArea
onXPositionChanged: console.log("xPosChanged", flickable.visibleArea.xPosition)
onWidthRatioChanged: console.log("widthRatioChanged", flickable.visibleArea.widthRatio)
}
Rectangle {
id: item
width: 100
height: 100
color: "black"
}
}
===========================
How to reproduce:
1) qmlscene testcase.qml
2) watch the console output
Actual result: widthRatio is != 1
Expected result: widthRatio == 1
===========================
Fix: I worked on a fix which is being reviewed by upstream --->
https://codereview.qt-project.org/#/c/161043/
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1588238/+subscriptions
References