psa: fix updateBar
[feedingit] / psa_harmattan / feedingit / deb_dist / feedingit-0.1.0 / qml / ArticleViewer.qml
index 83898b4..f2b89aa 100644 (file)
@@ -1,4 +1,5 @@
 import Qt 4.7
+import com.nokia.meego 1.0
 
 Item {
     id: articleViewer
@@ -56,9 +57,12 @@ Item {
         id: articleList; /*model: visualModel.parts.list;*/ z: 6
         model: articles
         delegate: listing
-        width: parent.width; height: parent.height; /*x: 0;*/
+        width: parent.width;
+        height: updateBarArticles.visible? parent.height-updateBarArticles.height : parent.height;
+        /*x: 0;*/
         cacheBuffer: 100;
         flickDeceleration: 1500
+        visible: articles.status==XmlListModel.Ready
     }
 
     ListView {
@@ -66,7 +70,9 @@ Item {
         model: articles;
         delegate: viewer
         orientation: ListView.Horizontal
-        width: parent.width; height: parent.height; visible: false; z:8
+        width: parent.width;
+        height: updateBarArticles.visible? parent.height-updateBarArticles.height : parent.height;
+        visible: false; z:8
         //onCurrentIndexChanged: photosGridView.positionViewAtIndex(currentIndex, GridView.Contain)
         highlightRangeMode: ListView.StrictlyEnforceRange; snapMode: ListView.SnapOneItem
         //cacheBuffer: 5;
@@ -75,19 +81,43 @@ Item {
         highlightMoveDuration: 300;
     }
 
+    ProgressBar {
+        id: updateBarArticles
+        minimumValue: 0
+        maximumValue: 100
+        value: window.updateProgressValue
+        visible: window.isUpdateInProgress
+        width: parent.width
+        anchors.bottom: parent.bottom
+    }
+
     Rectangle {
         id: noArticle
         //width: parent.width; height: parent.height;
-        //color: "#000000"
-        anchors.centerIn: parent;
+        color: "black"
+        opacity: 0.8
+
+        //anchors.centerIn: parent;
+        anchors.fill: parent
         visible: false;
         z:8;
-        Text { id: noText; color: "#ffffff"; anchors.centerIn: parent; text: qsTr("No articles available"); }
-        Image { id: loadingImage; anchors.centerIn: parent; source: "common/images/loading.png";
-            height: 96; width: 96;
-            NumberAnimation on rotation {
-                from: 0; to: 360; running: (loadingImage.visible == true); loops: Animation.Infinite; duration: 900
-            }
+        Text {
+            id: noText; color: "#ffffff"; anchors.centerIn: parent; text: qsTr("No articles available");
+            font.pixelSize: settings.mainTextSize
+        }
+
+        BusyIndicator {
+                     id: loadingIndicator
+                     anchors.centerIn: parent;
+                     running: visible
+                     visible: false
+                     platformStyle: BusyIndicatorStyle { size: "large" }
+        }
+
+        MouseArea {
+            // Disable clicks when this item is visible
+            anchors.fill: parent
+            enabled: parent.visible
         }
 
         states: [ State {
@@ -96,29 +126,46 @@ Item {
             PropertyChanges { target: loadingImage; visible: false; }
             PropertyChanges { target: noText; visible: true; }
             }, State {
-            name: "loading"; when: articles.count==0 && articles.status != XmlListModel.Ready
+            name: "loading"; when: articles.status != XmlListModel.Ready
             PropertyChanges { target: noArticle; visible: true; }
             PropertyChanges { target: noText; visible: false; }
-            PropertyChanges { target: loadingImage; visible: true; }
+            PropertyChanges { target: loadingIndicator; visible: true; }
             }
         ]
     }
 
+    Rectangle {
+        id: reloading
+        visible: articles.status != XmlListModel.Ready
+
+
+    }
+
     Component {
             id: listing;
 
             Item {
-                width: articleViewer.width; height: 86
+                width: articleViewer.width; height: backRect.height + 3
                 id: listItem
-                Rectangle { id: backRect; color: "#dddddd"; opacity: index % 2 ? 0.2 : 0.4; height: 84; width: listItem.width; y: 1 }
+
+                Rectangle {
+                    id: backRect; color: settings.backColour; opacity: index % 2 ? 0.2 : 0.4;
+                    height: articleText.height + 22; width: listItem.width;
+                    y: 1
+                }
                 Text {
-                    anchors.fill: backRect
+                    id: articleText
+                    anchors.verticalCenter: backRect.verticalCenter
+                    x: 3
+                    width: listItem.width - 6;
+
                     anchors.margins: 5
-                    verticalAlignment: Text.AlignVCenter; text: title;
-                    color: (unread=="True") ? "white" : "#7b97fd";
+                    verticalAlignment: Text.AlignVCenter;
+                    text: title;
+                    color: (unread=="True") ? settings.mainTextColour : settings.secondaryTextColour;
 
-                    width: listItem.width; wrapMode: Text.WordWrap; font.bold: false;
-                    font.pointSize: 18
+                     wrapMode: Text.WordWrap; font.bold: false;
+                    font.pixelSize: settings.mainTextSize
                 }
                 MouseArea { anchors.fill: listItem;
                     onClicked: { articleView.positionViewAtIndex(index, ListView.Contain); articleView.visible = true; }
@@ -133,7 +180,7 @@ Item {
             id: flipItem;
             width: articleViewer.width; height: articleViewer.height;
 
-            property string url: (articleView.visible && Math.abs(articleView.currentIndex-index)<2) ? path: "";
+            //property string url: (articleView.visible && Math.abs(articleView.currentIndex-index)<2) ? path: "";
             property string html: controller.getArticle(articleViewer.feedid, articleid)
             ArticleDisplay {
                 zoomEnabled: articleViewer.zoomEnabled;
@@ -145,15 +192,10 @@ Item {
                     StateChangeScript {
                         name: "myScript"
                         script: {
-                            flipItem.url=path;
+                            //flipItem.url=path;
                             controller.setEntryRead(articleViewer.feedid, articleid)
                         }
                     }
-                    }, State {
-                        name: 'articleIsClose'; when: articleView.visible && Math.abs(articleView.currentIndex-index)<2;
-                        StateChangeScript {
-                            script: { flipItem.url=path; }
-                        }
                     }
                 ]
             }
@@ -173,5 +215,4 @@ Item {
         XmlRole { name: "unread"; query: "unread/string()"; isKey: true}
     }
 
-
 }