Rectangle {
id: window
+ //anchors.fill: parent // use this little trick to always adapt itself to the screen
width: 800; height: 480
property int currentSourceIndex: 0
property list<SourceModel> listSourceModel: [
LeMondeSourceModel{},
+ GoogleReaderSourceModel{},
FavoriteFeedsSourceModel{},
YahooSourceModel{}
]
+ property variant currentSource: listSourceModel[currentSourceIndex]
+ property bool loading: currentSource.loading
+ property alias windowViewsModel: viewsModel
+ property alias windowViewsList: viewsList
+ property alias currentContentX: viewsList.contentX
+
ListModel {
id: viewsModel
- ListElement { component: "content/view/Sources.qml"; componentId: "sourcesRect"; componentDepth: 0 }
+ ListElement { component: "content/view/Sources.qml"; componentDepth: 0 }
}
- property variant currentSource: listSourceModel[currentSourceIndex]
- property bool loading: currentSource.loading
- property ListModel windowViewsModel: viewsModel
ListView {
id: viewsList
orientation: ListView.Horizontal
snapMode: ListView.SnapOneItem
flickDeceleration: 500
+ cacheBuffer: 1600 // so that the next delegate gets actually loaded...
+ preferredHighlightBegin: window.x
+ preferredHighlightEnd: window.width
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ boundsBehavior: Flickable.StopAtBounds
+
+ Behavior on contentX {
+ NumberAnimation { duration: 500; easing.type: Easing.InOutCubic }
+ }
model: viewsModel
delegate: Loader {
- id: componentId
+ id: modelLoader
source: component
+
+ ListView.onAdd: {
+ viewsList.contentX = componentDepth*window.width
+ //viewsList.currentIndex = componentDepth // doesn't work well with Qt 4.7.3 on Maemo...
+ }
}
}
+ function showConfigDialog(index) {
+ configDialog.configModel = listSourceModel[index]
+ configDialog.state = "showSourceConfig"
+ }
+
+ SourceConfigDialog {
+ id:configDialog
+ }
+
+/*
+*/
+
Component {
id: quitButtonDelegate
Item {