b31887db48bff767a7b203d31aef461c5ea64f93
[quicknewsreader] / qml / QuickNewsReader / content / view / NewsComments.qml
1 /***
2 ** Copyright (C) 2012 Christophe CHAPUIS <chris.chapuis _at_ gmail _dot_ com>
3 **
4 ** This package is free software; you can redistribute it and/or modify
5 ** it under the terms of the GNU General Public License as published by
6 ** the Free Software Foundation; either version 2 of the License, or
7 ** (at your option) any later version.
8 **
9 ** This package is distributed in the hope that it will be useful,
10 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ** GNU General Public License for more details.
13 **
14 ** You should have received a copy of the GNU General Public License
15 ** along with this package; if not, write to the Free Software
16 ** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
17 **
18 ***/
19 import QtQuick 1.0
20 import QtWebKit 1.0
21
22 Item {
23     id: newsCommentsRect
24     width: window.width; height: window.height
25
26     function getNewsModelItem(prop)
27     {
28         if( typeof currentSource.listModels[componentDepth-1] != "undefined" )
29             if( typeof currentSource.listModels[componentDepth-1][prop] != "undefined" )
30                 return currentSource.listModels[componentDepth-1][prop]
31
32         return ""
33     }
34
35     property string commentURL: getNewsModelItem('commentURL')
36     property string title: getNewsModelItem('title')
37     property string image: getNewsModelItem('image')
38
39     VisualItemModel {
40         id: itemModel
41
42         Column {
43             id: column
44             x: 10; y: 10
45             width: newsCommentsRect.width - 20
46 //            height: newsCommentsRect.height
47
48             Row {
49                 id: titleRow
50                 spacing: 5
51
52                 Image {
53                     id: detailImage
54                     source: image
55                 }
56
57                 Text {
58                     anchors.verticalCenter: titleRow.verticalCenter
59                     text: title; width: column.width - detailImage.width - 10; wrapMode: Text.WordWrap
60                     font { bold: true; family: "Helvetica"; pointSize: 16 }
61                 }
62             }
63
64             WebView {
65                 width: column.width
66                 id: newsCommentsWebView
67                 url: commentURL
68                 preferredWidth: column.width
69
70                 // on the maemo platform, the background is dark gray by default, so change it to white
71                 onLoadFinished: {
72                     newsCommentsWebView.evaluateJavaScript("document.bgColor = '#FFFFFF';")
73                 }
74             }
75         }
76     }
77     ListView {
78         id: itemListView
79         anchors.fill: newsCommentsRect
80         model: itemModel
81     }
82     ScrollBar { scrollArea: itemListView; height: itemListView.height; width: 8; anchors.right: itemListView.right }
83 }