Refactoring and model improvements
[quicknewsreader] / qml / QuickNewsReader / main.qml
index 0c5cf69..ebee529 100644 (file)
@@ -7,58 +7,23 @@ Rectangle {
     id: window
     width: 800; height: 480
 
-    property int currentJournalIndex: 0
-    property int currentCategoryIndex: -1
-    property int currentNewsIndex: -1
+    property int currentSourceIndex: 0
 
-    property list<JournalModel> listJournalModel: [
-        LeMondeJournalModel{},
-        FavoriteFeedsJournalModel{},
-        YahooJournalModel{}
+    property list<SourceModel> listSourceModel: [
+        LeMondeSourceModel{},
+        FavoriteFeedsSourceModel{},
+        YahooSourceModel{}
     ]
 
     ListModel {
-        id: journalList
+        id: viewsModel
 
-        ListElement {
-            journalName: 'Le Monde'
-            journalHierarchy: [
-                // list of journals
-                ListElement { component: "content/view/Journals.qml"; componentId: "journalsRect" },
-                // list of categories for a given journal
-                ListElement { component: "content/view/Categories.qml"; componentId: "categoriesRect" },
-                // list of news for a given category
-                ListElement { component: "content/view/News.qml"; componentId: "newsRect" },
-                // Details for a given news
-                ListElement { component: "content/view/NewsDetail.qml"; componentId: "newsDetailRect" }
-            ]
-        }
-        ListElement {
-            journalName: 'Favorite RSS'
-            journalHierarchy: [
-                // list of journals
-                ListElement { component: "content/view/Journals.qml"; componentId: "journalsRect" },
-                // list of categories for a given journal
-                ListElement { component: "content/view/Categories.qml"; componentId: "categoriesRect" },
-                // list of news for a given category
-                ListElement { component: "content/view/News.qml"; componentId: "newsRect" }
-            ]
-        }
-        ListElement {
-            journalName: 'Yahoo! News'
-            journalHierarchy: [
-                // list of journals
-                ListElement { component: "content/view/Journals.qml"; componentId: "journalsRect" },
-                // list of categories for a given journal
-                ListElement { component: "content/view/Categories.qml"; componentId: "categoriesRect" },
-                // list of news for a given category
-                ListElement { component: "content/view/News.qml"; componentId: "newsRect" }
-            ]
-        }
+        ListElement { component: "content/view/Sources.qml"; componentId: "sourcesRect"; componentDepth: 0 }
     }
 
-    property variant currentJournal: listJournalModel[currentJournalIndex]
-    property bool loading: currentJournal.loading
+    property variant currentSource: listSourceModel[currentSourceIndex]
+    property bool loading: currentSource.loading
+    property ListModel windowViewsModel: viewsModel
 
     ListView {
         id: viewsList
@@ -68,7 +33,7 @@ Rectangle {
         snapMode: ListView.SnapOneItem
         flickDeceleration: 500
 
-        model: journalList.get(currentJournalIndex).journalHierarchy
+        model: viewsModel
         delegate: Loader {
             id: componentId
             source: component