/*
-@version: 0.2
+@version: 0.4
@author: Sudheer K. <scifi1947 at gmail.com>
@license: GNU General Public License
*/
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
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()
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" }
}
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" }
}
MouseArea{
anchors.fill: parent
- onClicked: Qt.openUrlExternally(link);
+ onDoubleClicked: Qt.openUrlExternally(link);
}
}
}
id: listViewWrapper
width: parent.width
anchors.top: parent.top
- anchors.bottom: footerText.top
+ anchors.bottom: footerTextArea.top
color: "#343434"
ListView {
onQuoteRefreshCompleted: {
if (success){
stockStatusMsgArea.visible = false;
+ listViewWrapper.visible = true;
}
else{
stockStatusText.text = strMessage;
stockStatusMsgArea.visible = true;
+ listViewWrapper.visible = true;
}
}
}
}
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;
}
}
}
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 {