Activity log for bug #1560458

Date Who What changed Old value New value Message
2016-03-22 12:00:00 Andrea Bernabei bug added bug
2016-03-22 12:00:09 Andrea Bernabei ubuntu-ui-toolkit (Ubuntu): assignee Tim Peeters (tpeeters)
2016-03-22 12:00:26 Andrea Bernabei description r1886 Header should not update (or stop updating) Flickable content margins in case either one of its sides have null size or it's !visible. This is to be consistent with how QtQuick layout components already behave -> they ignore children whose size is null or that are !visible. NOTE: opacity should not affect this logic. If opacity is 0, the items should NOT be ignored (this allows opacity animations). TestCase: you can verify that flickable.topMargin is equal to editHeader's height even when the header it's not visible and standardHeader is the visible one instead. MainView { id: mainView_movingHeaderTest width: units.gu(50) height: units.gu(80) clip: true property alias page: pageItem property alias standardHeader: standardHeaderItem property alias editHeader: editHeaderItem Page { id: pageItem header: standardHeaderItem Flickable { id: flickable_movingHeaderTest anchors.fill: parent //just make sure the scrollbar is scrollable contentHeight: mainView_movingHeaderTest.height * 2 contentWidth: mainView_movingHeaderTest.width * 2 Label { text: "Use the icons in the header." visible: standardHeaderItem.visible } } Scrollbar { id: scrollbar_movingHeaderTest flickableItem: flickable_movingHeaderTest } PageHeader { id: standardHeaderItem visible: pageItem.header === standardHeaderItem title: "Default title" flickable: flickable_movingHeaderTest trailingActionBar.actions: [ Action { iconName: "edit" text: "Edit" onTriggered: pageItem.header = editHeaderItem } ] } PageHeader { id: editHeaderItem visible: pageItem.header === editHeaderItem flickable: flickable_movingHeaderTest property Component delegate: Component { AbstractButton { id: button action: modelData width: label.width + units.gu(4) height: parent.height Rectangle { color: UbuntuColors.slate opacity: 0.1 anchors.fill: parent visible: button.pressed } Label { anchors.centerIn: parent id: label text: action.text font.weight: text === "Confirm" ? Font.Normal : Font.Light } } } leadingActionBar { anchors.leftMargin: 0 actions: Action { text: "Cancel" iconName: "close" onTriggered: pageItem.header = standardHeaderItem } delegate: editHeaderItem.delegate } trailingActionBar { anchors.rightMargin: 0 actions: Action { text: "Confirm" iconName: "tick" onTriggered: pageItem.header = standardHeaderItem } delegate: editHeaderItem.delegate } extension: Toolbar { anchors { left: parent.left right: parent.right bottom: parent.bottom } trailingActionBar.actions: [ Action { iconName: "bookmark-new" }, Action { iconName: "add" }, Action { iconName: "edit-select-all" }, Action { iconName: "edit-copy" }, Action { iconName: "select" } ] leadingActionBar.actions: Action { iconName: "delete" text: "delete" onTriggered: print("Delete action triggered") } } } } } r1886 Header should not update (or it should stop updating) Flickable content margins in case either one of its sides have null size or it's !visible. This is to be consistent with how QtQuick layout components already behave -> they ignore children whose size is null or that are !visible. NOTE: opacity should not affect this logic. If opacity is 0, the items should NOT be ignored (this allows opacity animations). TestCase: you can verify that flickable.topMargin is equal to editHeader's height even when the header it's not visible and standardHeader is the visible one instead.             MainView {                 id: mainView_movingHeaderTest                 width: units.gu(50)                 height: units.gu(80)                 clip: true                 property alias page: pageItem                 property alias standardHeader: standardHeaderItem                 property alias editHeader: editHeaderItem                 Page {                     id: pageItem                     header: standardHeaderItem                     Flickable {                         id: flickable_movingHeaderTest                         anchors.fill: parent                         //just make sure the scrollbar is scrollable                         contentHeight: mainView_movingHeaderTest.height * 2                         contentWidth: mainView_movingHeaderTest.width * 2                         Label {                             text: "Use the icons in the header."                             visible: standardHeaderItem.visible                         }                     }                     Scrollbar {                         id: scrollbar_movingHeaderTest                         flickableItem: flickable_movingHeaderTest                     }                     PageHeader {                         id: standardHeaderItem                         visible: pageItem.header === standardHeaderItem                         title: "Default title"                         flickable: flickable_movingHeaderTest                         trailingActionBar.actions: [                             Action {                                 iconName: "edit"                                 text: "Edit"                                 onTriggered: pageItem.header = editHeaderItem                             }                         ]                     }                     PageHeader {                         id: editHeaderItem                         visible: pageItem.header === editHeaderItem                         flickable: flickable_movingHeaderTest                         property Component delegate: Component {                             AbstractButton {                                 id: button                                 action: modelData                                 width: label.width + units.gu(4)                                 height: parent.height                                 Rectangle {                                     color: UbuntuColors.slate                                     opacity: 0.1                                     anchors.fill: parent                                     visible: button.pressed                                 }                                 Label {                                     anchors.centerIn: parent                                     id: label                                     text: action.text                                     font.weight: text === "Confirm"                                                  ? Font.Normal                                                  : Font.Light                                 }                             }                         }                         leadingActionBar {                             anchors.leftMargin: 0                             actions: Action {                                 text: "Cancel"                                 iconName: "close"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         trailingActionBar {                             anchors.rightMargin: 0                             actions: Action {                                 text: "Confirm"                                 iconName: "tick"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         extension: Toolbar {                             anchors {                                 left: parent.left                                 right: parent.right                                 bottom: parent.bottom                             }                             trailingActionBar.actions: [                                 Action { iconName: "bookmark-new" },                                 Action { iconName: "add" },                                 Action { iconName: "edit-select-all" },                                 Action { iconName: "edit-copy" },                                 Action { iconName: "select" }                             ]                             leadingActionBar.actions: Action {                                 iconName: "delete"                                 text: "delete"                                 onTriggered: print("Delete action triggered")                             }                         }                     }                 }             }
2016-03-22 12:00:57 Andrea Bernabei description r1886 Header should not update (or it should stop updating) Flickable content margins in case either one of its sides have null size or it's !visible. This is to be consistent with how QtQuick layout components already behave -> they ignore children whose size is null or that are !visible. NOTE: opacity should not affect this logic. If opacity is 0, the items should NOT be ignored (this allows opacity animations). TestCase: you can verify that flickable.topMargin is equal to editHeader's height even when the header it's not visible and standardHeader is the visible one instead.             MainView {                 id: mainView_movingHeaderTest                 width: units.gu(50)                 height: units.gu(80)                 clip: true                 property alias page: pageItem                 property alias standardHeader: standardHeaderItem                 property alias editHeader: editHeaderItem                 Page {                     id: pageItem                     header: standardHeaderItem                     Flickable {                         id: flickable_movingHeaderTest                         anchors.fill: parent                         //just make sure the scrollbar is scrollable                         contentHeight: mainView_movingHeaderTest.height * 2                         contentWidth: mainView_movingHeaderTest.width * 2                         Label {                             text: "Use the icons in the header."                             visible: standardHeaderItem.visible                         }                     }                     Scrollbar {                         id: scrollbar_movingHeaderTest                         flickableItem: flickable_movingHeaderTest                     }                     PageHeader {                         id: standardHeaderItem                         visible: pageItem.header === standardHeaderItem                         title: "Default title"                         flickable: flickable_movingHeaderTest                         trailingActionBar.actions: [                             Action {                                 iconName: "edit"                                 text: "Edit"                                 onTriggered: pageItem.header = editHeaderItem                             }                         ]                     }                     PageHeader {                         id: editHeaderItem                         visible: pageItem.header === editHeaderItem                         flickable: flickable_movingHeaderTest                         property Component delegate: Component {                             AbstractButton {                                 id: button                                 action: modelData                                 width: label.width + units.gu(4)                                 height: parent.height                                 Rectangle {                                     color: UbuntuColors.slate                                     opacity: 0.1                                     anchors.fill: parent                                     visible: button.pressed                                 }                                 Label {                                     anchors.centerIn: parent                                     id: label                                     text: action.text                                     font.weight: text === "Confirm"                                                  ? Font.Normal                                                  : Font.Light                                 }                             }                         }                         leadingActionBar {                             anchors.leftMargin: 0                             actions: Action {                                 text: "Cancel"                                 iconName: "close"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         trailingActionBar {                             anchors.rightMargin: 0                             actions: Action {                                 text: "Confirm"                                 iconName: "tick"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         extension: Toolbar {                             anchors {                                 left: parent.left                                 right: parent.right                                 bottom: parent.bottom                             }                             trailingActionBar.actions: [                                 Action { iconName: "bookmark-new" },                                 Action { iconName: "add" },                                 Action { iconName: "edit-select-all" },                                 Action { iconName: "edit-copy" },                                 Action { iconName: "select" }                             ]                             leadingActionBar.actions: Action {                                 iconName: "delete"                                 text: "delete"                                 onTriggered: print("Delete action triggered")                             }                         }                     }                 }             } r1886 Header should not update (or it should stop updating) Flickable content margins in case either one (or both) of its sides has null size or it's !visible. This is to be consistent with how QtQuick layout components already behave -> they ignore children whose size is null or that are !visible. NOTE: opacity should not affect this logic. If opacity is 0, the items should NOT be ignored (this allows opacity animations). TestCase: you can verify that flickable.topMargin is equal to editHeader's height even when the header it's not visible and standardHeader is the visible one instead.             MainView {                 id: mainView_movingHeaderTest                 width: units.gu(50)                 height: units.gu(80)                 clip: true                 property alias page: pageItem                 property alias standardHeader: standardHeaderItem                 property alias editHeader: editHeaderItem                 Page {                     id: pageItem                     header: standardHeaderItem                     Flickable {                         id: flickable_movingHeaderTest                         anchors.fill: parent                         //just make sure the scrollbar is scrollable                         contentHeight: mainView_movingHeaderTest.height * 2                         contentWidth: mainView_movingHeaderTest.width * 2                         Label {                             text: "Use the icons in the header."                             visible: standardHeaderItem.visible                         }                     }                     Scrollbar {                         id: scrollbar_movingHeaderTest                         flickableItem: flickable_movingHeaderTest                     }                     PageHeader {                         id: standardHeaderItem                         visible: pageItem.header === standardHeaderItem                         title: "Default title"                         flickable: flickable_movingHeaderTest                         trailingActionBar.actions: [                             Action {                                 iconName: "edit"                                 text: "Edit"                                 onTriggered: pageItem.header = editHeaderItem                             }                         ]                     }                     PageHeader {                         id: editHeaderItem                         visible: pageItem.header === editHeaderItem                         flickable: flickable_movingHeaderTest                         property Component delegate: Component {                             AbstractButton {                                 id: button                                 action: modelData                                 width: label.width + units.gu(4)                                 height: parent.height                                 Rectangle {                                     color: UbuntuColors.slate                                     opacity: 0.1                                     anchors.fill: parent                                     visible: button.pressed                                 }                                 Label {                                     anchors.centerIn: parent                                     id: label                                     text: action.text                                     font.weight: text === "Confirm"                                                  ? Font.Normal                                                  : Font.Light                                 }                             }                         }                         leadingActionBar {                             anchors.leftMargin: 0                             actions: Action {                                 text: "Cancel"                                 iconName: "close"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         trailingActionBar {                             anchors.rightMargin: 0                             actions: Action {                                 text: "Confirm"                                 iconName: "tick"                                 onTriggered: pageItem.header = standardHeaderItem                             }                             delegate: editHeaderItem.delegate                         }                         extension: Toolbar {                             anchors {                                 left: parent.left                                 right: parent.right                                 bottom: parent.bottom                             }                             trailingActionBar.actions: [                                 Action { iconName: "bookmark-new" },                                 Action { iconName: "add" },                                 Action { iconName: "edit-select-all" },                                 Action { iconName: "edit-copy" },                                 Action { iconName: "select" }                             ]                             leadingActionBar.actions: Action {                                 iconName: "delete"                                 text: "delete"                                 onTriggered: print("Delete action triggered")                             }                         }                     }                 }             }
2016-03-25 19:46:00 Tim Peeters ubuntu-ui-toolkit (Ubuntu): importance Undecided Medium
2016-03-25 19:46:03 Tim Peeters ubuntu-ui-toolkit (Ubuntu): status New Confirmed
2016-03-31 15:52:09 Tim Peeters ubuntu-ui-toolkit (Ubuntu): status Confirmed In Progress
2016-03-31 17:23:51 Launchpad Janitor branch linked lp:~tpeeters/ubuntu-ui-toolkit/invisible-header-topmargin
2016-04-12 11:17:22 Timo Jyrinki bug task added ubuntu-ui-toolkit (Ubuntu RTM)
2016-04-12 11:17:35 Timo Jyrinki bug task added canonical-devices-system-image
2016-04-12 11:17:43 Timo Jyrinki canonical-devices-system-image: milestone 11
2016-04-12 11:52:30 Timo Jyrinki canonical-devices-system-image: status New In Progress
2016-04-12 11:52:36 Timo Jyrinki canonical-devices-system-image: assignee Zoltan Balogh (bzoltan)
2016-04-12 11:52:38 Timo Jyrinki canonical-devices-system-image: importance Undecided Medium
2016-04-12 11:52:39 Timo Jyrinki ubuntu-ui-toolkit (Ubuntu RTM): importance Undecided Medium
2016-04-12 11:52:44 Timo Jyrinki ubuntu-ui-toolkit (Ubuntu): status In Progress Fix Committed
2016-04-12 11:52:46 Timo Jyrinki ubuntu-ui-toolkit (Ubuntu RTM): status New Fix Committed
2016-04-14 14:34:49 Łukasz Zemczak ubuntu-ui-toolkit (Ubuntu RTM): status Fix Committed Fix Released
2016-04-14 16:54:08 Jean-Baptiste Lallement canonical-devices-system-image: status In Progress Fix Committed
2016-04-18 11:09:26 Tim Peeters ubuntu-ui-toolkit (Ubuntu RTM): assignee Tim Peeters (tpeeters)
2016-05-30 15:39:00 Launchpad Janitor ubuntu-ui-toolkit (Ubuntu): status Fix Committed Fix Released
2016-06-02 12:18:20 Pat McGowan canonical-devices-system-image: status Fix Committed Fix Released