Modified font colors for change column
[marketstoday] / src / qml / MarketsTodayApp.qml
index deb094e..8542773 100644 (file)
@@ -1,5 +1,5 @@
 /*
-@version: 0.2
+@version: 0.4
 @author: Sudheer K. <scifi1947 at gmail.com>
 @license: GNU General Public License
 */
@@ -10,6 +10,7 @@ import com.nokia.meego 1.0
 import "Library" as Library
 import "Library/js/ISODate.js" as DateLib
 import "Library/js/DBUtility.js" as DBUtility
+import "Library/js/CSVUtility.js" as CSVUtility
 import "Library/js/Common.js" as Common
 import "Library/js/CoreLogic.js" as CoreLib
 
@@ -22,9 +23,9 @@ PageStackWindow {
     property int autoUpdateInterval: 300000
     property bool updateWeekDaysOnly: false
     property bool updateOnSavedNetworksOnly: false
+    property bool isDesktopWidget: false
     property string rssURL: "http://finance.yahoo.com/rss/topfinstories"
     property string lastUpdatedTimeStamp
-    property bool isDesktopWidget
     //property string selectedSymbol:"YHOO"
     property string selectedSymbol:sharedContext.getStockSymbol()
 
@@ -133,9 +134,8 @@ PageStackWindow {
 
                             Text { text: stockName; width: parent.width * 30/100; font.pixelSize: 18; font.bold: true; elide: Text.ElideRight; color: "white"; style: Text.Raised; styleColor: "black" }
                             Text { text: lastTradedPrice; width: parent.width * 15/100; font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
-                            Text { text: change !== ""? (change + " ("+changePercentage+")"):""; width: parent.width * 25/100;  font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideRight
-                                    color: if(change >= 0){"green";} else {"red";}
-                                        style: Text.Raised; styleColor: "black" }
+                            Text { text: change !== ""? (change + " ("+changePercentage+")"):""; width: parent.width * 25/100; font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideRight
+                                color: change >= 0 ? "#00ff00":"#ff0000"; style: Text.Raised; styleColor: "black"}
                             Text { text: volume; width: parent.width * 15/100; font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
                             Text { text: marketCap; width: parent.width * 15/100; font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
                         }
@@ -174,10 +174,10 @@ PageStackWindow {
                                 width: parent.width * 18/100; height: parent.height
                                 spacing: 2
                                 Text { text: change; font.pixelSize: 16; horizontalAlignment: Text.AlignLeft; elide: Text.ElideRight
-                                    color: if(change >= 0){"green";} else {"red";}
+                                    color: change >= 0 ? "#00ff00":"#ff0000";
                                         style: Text.Raised; styleColor: "black" }
                                 Text { text: changePercentage; font.pixelSize: 16; horizontalAlignment: Text.AlignLeft; elide: Text.ElideRight;
-                                    color: if(change >= 0){"green";} else {"red";}
+                                    color: change >= 0 ? "#00ff00":"#ff0000";
                                         style: Text.Raised; styleColor: "black" }
                             }
                             Text { text: volume; width: parent.width * 20/100; font.pixelSize: 18; horizontalAlignment: Text.AlignLeft; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" }
@@ -210,7 +210,7 @@ PageStackWindow {
                         }
                         MouseArea{
                             anchors.fill: parent
-                            onClicked: Qt.openUrlExternally(link);
+                            onDoubleClicked: Qt.openUrlExternally(link);
                         }
                     }
                 }
@@ -297,7 +297,7 @@ PageStackWindow {
                         id: listViewWrapper
                         width: parent.width
                         anchors.top: parent.top
-                        anchors.bottom: footerText.top
+                        anchors.bottom: footerTextArea.top
                         color: "#343434"
 
                         ListView {
@@ -334,10 +334,12 @@ PageStackWindow {
                                 onQuoteRefreshCompleted: {
                                     if (success){
                                         stockStatusMsgArea.visible = false;
+                                        listViewWrapper.visible = true;
                                     }
                                     else{
                                         stockStatusText.text = strMessage;
                                         stockStatusMsgArea.visible = true;
+                                        listViewWrapper.visible = true;
                                     }
                                 }
                             }
@@ -345,24 +347,39 @@ PageStackWindow {
                     }
 
                     Rectangle{
-                        id: footerText
+                        id: footerTextArea
                         width: parent.width
                         height: 25
                         color: "#343434"
                         anchors.bottom: parent.bottom
                         Text {
-                            id: timeStamp
+                            id: footerMessage
                             anchors.fill: parent
                             text: lastUpdatedTimeStamp
                             horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignVCenter
                             width: parent.width; font.pixelSize: 12; elide: Text.ElideRight;
                             color: "#cccccc"
                             style: Text.Raised; styleColor: "black"
+                        }
 
-                            Connections {
-                                target: appWindow
-                                onQuoteRefreshCompleted:{
-                                    timeStamp.text = lastUpdatedTimeStamp;
+                        Timer {
+                            id: footerMessageTimer
+                            interval: 10000
+                            repeat: false
+                            onTriggered: {
+                                footerMessage.text = appWindow.lastUpdatedTimeStamp;
+                            }
+                        }
+
+                        Connections {
+                            target: appWindow
+                            onQuoteRefreshCompleted:{
+                                if (success){
+                                    footerMessage.text = "Double-tap on a row to display more details.";
+                                    footerMessageTimer.start();
+                                }
+                                else{
+                                    footerMessage.text = appWindow.lastUpdatedTimeStamp;
                                 }
                             }
                         }
@@ -373,11 +390,39 @@ PageStackWindow {
             Component{
                 id: stockDetailsComponent
                 StockDetailsComponent {
+                    id: detailsComponent
                     symbol: selectedSymbol
                     onLogRequest: logUtility.logMessage(strMessage)
-                    onLockInLandscape: mainPage.orientationLock = PageOrientation.LockLandscape
-                    onUnlockOrientation: mainPage.orientationLock = PageOrientation.Automatic
-                }
+                    orientation: (appWindow.inPortrait)? "Portrait":"Landscape";  //Initial Orientation
+                    states: [
+                                State {
+                                    name: "inLandscape"
+                                    when: !appWindow.inPortrait
+                                    PropertyChanges {
+                                        target: detailsComponent
+                                        orientation: "Landscape"
+                                    }
+                                },
+                                State {
+                                    name: "inPortrait"
+                                    when: appWindow.inPortrait
+                                    PropertyChanges {
+                                        target: detailsComponent
+                                        orientation: "Portrait"
+                                    }
+                                }
+                    ]
+
+                    Component.onCompleted: {
+                        if (appWindow.inPortrait){
+                            logUtility.logMessage("Initial orientation is Portrait");
+                        }
+                        else
+                        {
+                            logUtility.logMessage("Initial orientation is Landscape");
+                        }
+                    }
+                }                
             }
 
             Component {