1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import QtQuick 2.0
import Ubuntu.Components 0.1
import Ubuntu.Components.ListItems 0.1 as ListItem
import Ubuntu.Components.Popups 0.1
import "./addDelegate.js" as AddD
import "./imgSeparator.js" as ImgS
//import "./article_items"
Column {
id: rss_item_delegate
// width: units.gu(50)
// height: units.gu(75)
// height: parent.height
spacing: units.gu(2)
property bool isFull: false
property real childrenSumHeight: 0
property real childrenMaxWidth: 0
property int modelIndex
function addItem(rss_item, rss_description, model, index)
{
var newD = AddD.addDelegate(rss_item, ImgS.separate(rss_description), model, index, rss_item_delegate);
getChildrenRect() ;
rss_item_delegate.width = childrenMaxWidth ;
// console.log("childrenSumHeight, column.height: ", childrenSumHeight, rss_item_delegate.childrenRect.height)
//console.log("children list: ", rss_item_delegate.children.length)
if (childrenSumHeight > rss_item_delegate.height + units.gu(2))
{
isFull = true ;
newD.destroy() ;
getChildrenRect() ;
rss_item_delegate.width = childrenMaxWidth ;
// rss_item_delegate.children[rss_item_delegate.children.length-1].destroy() ;
// rss_item_delegate.spacing = (childrenSumHeight - rss_item_delegate.height) / (rss_item_delegate.children.length + 2)
return false ;
}
else
{
isFull = false ;
return true ;
}
}
function getChildrenRect()
{
childrenSumHeight = 0 ;
childrenMaxWidth = 0 ;
var length = rss_item_delegate.children.length ;
for (var i=0; i<length; i++)
{
childrenSumHeight += (rss_item_delegate.children[i].height + units.gu(2) * length) ;
if (rss_item_delegate.children[i].width > childrenMaxWidth)
{
childrenMaxWidth = rss_item_delegate.children[i].width
}
}
}
}
|