From: <vo...@us...> - 2010-12-02 14:48:04
|
Revision: 1023 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1023&view=rev Author: vomikan Date: 2010-12-02 14:47:58 +0000 (Thu, 02 Dec 2010) Log Message: ----------- Buttons color changed Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2010-12-02 14:42:32 UTC (rev 1022) +++ trunk/mmex/src/stockspanel.cpp 2010-12-02 14:47:58 UTC (rev 1023) @@ -266,19 +266,19 @@ wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_LEFT|wxALL, 5); - wxButton* itemButton6 = new wxButton( itemPanel12, ID_BUTTON_NEW_STOCK, _("&New"), - wxDefaultPosition, wxDefaultSize, 0 ); + wxButton* itemButton6 = new wxButton( itemPanel12, ID_BUTTON_NEW_STOCK, _("&New")); + itemButton6->SetForegroundColour(wxColour(wxT("FOREST GREEN"))); itemButton6->SetToolTip(_("New Stock Investment")); itemBoxSizer5->Add(itemButton6, 0, wxGROW|wxALL, 1); - wxButton* itemButton81 = new wxButton( itemPanel12, ID_BUTTON_EDIT_STOCK, _("&Edit"), - wxDefaultPosition, wxDefaultSize, 0 ); + wxButton* itemButton81 = new wxButton( itemPanel12, ID_BUTTON_EDIT_STOCK, _("&Edit")); + itemButton81->SetForegroundColour(wxColour(wxT("ORANGE"))); itemButton81->SetToolTip(_("Edit Stock Investment")); itemBoxSizer5->Add(itemButton81, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); itemButton81->Enable(false); - wxButton* itemButton7 = new wxButton( itemPanel12, ID_BUTTON_DELETE_STOCK, _("&Delete"), - wxDefaultPosition, wxDefaultSize, 0 ); + wxButton* itemButton7 = new wxButton( itemPanel12, ID_BUTTON_DELETE_STOCK, _("&Delete")); + itemButton7->SetForegroundColour(wxColour(wxT("RED"))); itemButton7->SetToolTip(_("Delete Stock Investment")); itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); itemButton7->Enable(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-02-01 05:33:32
|
Revision: 1132 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1132&view=rev Author: vomikan Date: 2011-02-01 05:33:25 +0000 (Tue, 01 Feb 2011) Log Message: ----------- Changed The Value formating Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-02-01 05:14:38 UTC (rev 1131) +++ trunk/mmex/src/stockspanel.cpp 2011-02-01 05:33:25 UTC (rev 1132) @@ -377,13 +377,14 @@ th.purchasePrice_ = q1.GetDouble(wxT("PURCHASEPRICE")); th.value_ = q1.GetDouble(wxT("VALUE")); - th.valueStr_ = wxString::Format(wxT("%.2f"), th.value_); + //th.valueStr_ = wxString::Format(wxT("%.2f"), th.value_); double commission = q1.GetDouble(wxT("COMMISSION")); th.gainLoss_ = th.value_ - ((th.numShares_ * th.purchasePrice_) + commission); mmex::formatDoubleToCurrencyEdit(th.gainLoss_, th.gainLossStr_); + mmex::formatDoubleToCurrencyEdit(th.value_, th.valueStr_); mmex::formatDoubleToCurrencyEdit(th.currentPrice_, th.cPriceStr_); trans_.push_back(th); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-02-14 22:34:48
|
Revision: 1155 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1155&view=rev Author: vomikan Date: 2011-02-14 22:34:42 +0000 (Mon, 14 Feb 2011) Log Message: ----------- Date mask fixed Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-02-14 08:21:55 UTC (rev 1154) +++ trunk/mmex/src/stockspanel.cpp 2011-02-14 22:34:42 UTC (rev 1155) @@ -383,10 +383,13 @@ header->SetLabel(lbl); // -- - + //TODO: SQLite can't year format like yy can only yyyy + //Convertion should be easy static const char sql[] = "select STOCKID, HELDAT, STOCKNAME, SYMBOL, NUMSHARES, PURCHASEPRICE, NOTES, CURRENTPRICE, VALUE, COMMISSION, " - "strftime(INFOVALUE,PURCHASEDATE) as PURCHDATE " + "coalesce ( strftime(INFOVALUE,PURCHASEDATE), replace (replace (replace (INFOVALUE, '%y', " + "(replace(strftime('%Y',PURCHASEDATE)-(round(strftime('%Y',PURCHASEDATE)/100)*100),'.0',''))) , '%m' , strftime('%m',PURCHASEDATE)) " + ", '%d', strftime('%d',PURCHASEDATE))) as PURCHDATE " "from STOCK_V1 " "left join infotable_v1 i on i.INFONAME='DATEFORMAT' " "where HELDAT = ? " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-03-11 08:22:15
|
Revision: 1183 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1183&view=rev Author: vomikan Date: 2011-03-11 08:22:09 +0000 (Fri, 11 Mar 2011) Log Message: ----------- for stagnation down arrow in red Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-03-11 08:18:57 UTC (rev 1182) +++ trunk/mmex/src/stockspanel.cpp 2011-03-11 08:22:09 UTC (rev 1183) @@ -28,7 +28,7 @@ /* Include XPM Support */ #include "../resources/uparrow.xpm" -#include "../resources/downarrow.xpm" +#include "../resources/downarrow_red.xpm" /*******************************************************/ namespace This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-03-22 19:40:19
|
Revision: 1201 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1201&view=rev Author: vomikan Date: 2011-03-22 19:40:12 +0000 (Tue, 22 Mar 2011) Log Message: ----------- Old style of stock account calculation returned Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-03-21 19:20:12 UTC (rev 1200) +++ trunk/mmex/src/stockspanel.cpp 2011-03-22 19:40:12 UTC (rev 1201) @@ -350,14 +350,14 @@ mmDBWrapper::loadSettings(accountID_, db_); //Get Init Value of the account - //double initVal = mmDBWrapper::getInitBalanceOnAccount(db_, accountID_); + double initVal = mmDBWrapper::getInitBalanceOnAccount(db_, accountID_); // + Transfered from other accounts - Transfered to other accounts - double initVal = mmDBWrapper::getTotalBalanceOnAccount(db_, accountID_, true); + //double initVal = mmDBWrapper::getTotalBalanceOnAccount(db_, accountID_, true); //Get Stock Investment Account Balance as Init Amount + sum (Value) - sum (Purchase Price) double total = mmDBWrapper::getStockInvestmentBalance(db_, accountID_, false, originalVal); wxString balance; - mmex::formatDoubleToCurrency(total+initVal-originalVal, balance); + mmex::formatDoubleToCurrency(total+initVal, balance); wxString original; mmex::formatDoubleToCurrency(originalVal, original); @@ -372,7 +372,7 @@ header = (wxStaticText*)FindWindow(ID_PANEL_CHECKING_STATIC_BALHEADER); wxString lbl; - lbl << _("Balance: ") << balance << wxT (" ") << _("Invested: ") << original; + lbl << _("Total: ") << balance << wxT (" ") << _("Invested: ") << original; if (total > originalVal) lbl << wxT (" ") << _("Gain: "); else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-05-24 17:45:38
|
Revision: 1291 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1291&view=rev Author: vomikan Date: 2011-05-24 17:45:31 +0000 (Tue, 24 May 2011) Log Message: ----------- Gain/Loss percentage per year calculation fixed Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-05-24 11:53:47 UTC (rev 1290) +++ trunk/mmex/src/stockspanel.cpp 2011-05-24 17:45:31 UTC (rev 1291) @@ -385,7 +385,7 @@ "select STOCKID, HELDAT, STOCKNAME, SYMBOL, NUMSHARES, PURCHASEPRICE, NOTES, CURRENTPRICE, VALUE, COMMISSION, " " strftime(INFOVALUE,PURCHASEDATE) as PURCHDATE, " "PURCHASEDATE, " - "julianday('now', 'localtime')-julianday (PURCHASEDATE) as DAYSOWN " + "julianday('now', 'localtime')-julianday (PURCHASEDATE, 'localtime') as DAYSOWN " "from STOCK_V1 " "left join infotable_v1 i on i.INFONAME='DATEFORMAT' " "where HELDAT = ? " @@ -418,7 +418,7 @@ th.stockDays_ = q1.GetDouble (wxT ("DAYSOWN")); th.gainLoss_ = th.value_ - ((th.numShares_ * th.purchasePrice_) + commission); - mmex::formatDoubleToCurrencyEdit(((th.value_ / ((th.numShares_ * th.purchasePrice_) + commission)-1.0)*100.0 * th.stockDays_ /365.0 ), th.stockPercentagePerYearStr_); + mmex::formatDoubleToCurrencyEdit(((th.value_ / ((th.numShares_ * th.purchasePrice_) + commission)-1.0)*100.0 * 365.0 / th.stockDays_ ), th.stockPercentagePerYearStr_); mmex::formatDoubleToCurrencyEdit(th.gainLoss_, th.gainLossStr_); mmex::formatDoubleToCurrencyEdit(th.value_, th.valueStr_); @@ -893,7 +893,7 @@ double stockDaysOwn = trans_[selectedIndex_].stockDays_; //Commision don't calculates here double stockPercentage = (stockCurrentPrice/stockPurchasePrice-1.0)*100.0; - double stockPercentagePerYear = stockPercentage * stockDaysOwn /365.0; + double stockPercentagePerYear = stockPercentage * 365.0 / stockDaysOwn; mmex::formatDoubleToCurrencyEdit(stockPurchasePrice, stockPurchasePriceStr); mmex::formatDoubleToCurrencyEdit(stockCurrentPrice, stockCurrentPriceStr); @@ -902,14 +902,16 @@ mmex::formatDoubleToCurrencyEdit(stockPercentagePerYear, stockPercentagePerYearStr); - wxString miniInfo; - miniInfo << wxT ("\t") << _("Symbol: ") << trans_[selectedIndex_].stockSymbol_ - << wxT ("\t\t") << _("Percent/Year: ") << trans_[selectedIndex_].stockPercentagePerYearStr_; + wxString miniInfo = wxT(""); + if (trans_[selectedIndex_].stockSymbol_ != wxT("")) + miniInfo << wxT("\t") << _("Symbol: ") << trans_[selectedIndex_].stockSymbol_; + miniInfo << wxT ("\t\t") << _("Percent/Year: ") << trans_[selectedIndex_].stockPercentagePerYearStr_; stm->SetLabel(miniInfo); - wxString additionInfo; - - additionInfo << trans_[selectedIndex_].stockSymbol_ << wxT(" : ") << stockPurchasePriceStr - << wxT(" - ") << stockCurrentPriceStr << wxT(" = ") << stockDifferenceStr << wxT (" ( ") << stockPercentageStr << wxT ('%') + wxString additionInfo =wxT(""); + if (trans_[selectedIndex_].stockSymbol_ != wxT("")) + additionInfo << trans_[selectedIndex_].stockSymbol_<< wxT(" : "); + additionInfo << wxT("|") << stockPurchasePriceStr << wxT(" - ") << stockCurrentPriceStr << wxT("|") << wxT(" = ") << stockDifferenceStr + << wxT (" ( ") << stockPercentageStr << wxT ('%') << wxT (" | ")<< stockPercentagePerYearStr << wxT("% ") << _("Yearly") << wxT (" )") << wxT ("\n") << getItem(selectedIndex_, COL_NOTES); st->SetLabel(additionInfo); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-05-25 06:42:26
|
Revision: 1292 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1292&view=rev Author: vomikan Date: 2011-05-25 06:42:20 +0000 (Wed, 25 May 2011) Log Message: ----------- Refresh of info panel after edit of shares added. And minor changes. Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-05-24 17:45:31 UTC (rev 1291) +++ trunk/mmex/src/stockspanel.cpp 2011-05-25 06:42:20 UTC (rev 1292) @@ -382,17 +382,28 @@ header->SetLabel(lbl); char sql[] = - "select STOCKID, HELDAT, STOCKNAME, SYMBOL, NUMSHARES, PURCHASEPRICE, NOTES, CURRENTPRICE, VALUE, COMMISSION, " - " strftime(INFOVALUE,PURCHASEDATE) as PURCHDATE, " - "PURCHASEDATE, " - "julianday('now', 'localtime')-julianday (PURCHASEDATE, 'localtime') as DAYSOWN " + "select STOCKID, HELDAT, STOCKNAME, SYMBOL, " + "total (NUMSHARES) as NUMSHARES, " + "avg (PURCHASEPRICE) as PURCHASEPRICE, " + "avg (CURRENTPRICE) as CURRENTPRICE, " + "total (VALUE) as VALUE, total (COMMISSION) as COMMISSION, " + " strftime(INFOVALUE, min (PURCHASEDATE)) as PURCHDATE, " + "min (PURCHASEDATE) as PURCHASEDATE, " + "avg (julianday('now', 'localtime')-julianday (PURCHASEDATE, 'localtime')) as DAYSOWN, " + "NOTES " "from STOCK_V1 " "left join infotable_v1 i on i.INFONAME='DATEFORMAT' " "where HELDAT = ? " - "order by julianday(PURCHASEDATE), STOCKNAME "; + "group by HELDAT, SYMBOL, STOCKID " + "order by julianday(min (PURCHASEDATE),'localtime'), SYMBOL, STOCKNAME "; wxSQLite3Statement st = db_->PrepareStatement(sql); st.Bind(1, accountID_); + + //TODO: All records with the same Symbol may be groupped + // This may be necessary in case the records are many. + // Addition user parameter and button or view option should be provided + //st.Bind(2, wxT ("STOCKID")); //<--It's does not work wxSQLite3ResultSet q1 = st.ExecuteQuery(); int cnt = 0; @@ -408,7 +419,7 @@ th.heldAt_ = mmDBWrapper::getAccountName(db_, accountID); th.shareName_ = q1.GetString(wxT("STOCKNAME")); th.shareNotes_ = q1.GetString(wxT("NOTES")); - th.numSharesStr_ = q1.GetString(wxT("NUMSHARES")); + th.numSharesStr_ = wxT(""); th.numShares_ = q1.GetDouble(wxT("NUMSHARES")); th.currentPrice_ = q1.GetDouble(wxT("CURRENTPRICE")); @@ -423,8 +434,12 @@ mmex::formatDoubleToCurrencyEdit(th.gainLoss_, th.gainLossStr_); mmex::formatDoubleToCurrencyEdit(th.value_, th.valueStr_); mmex::formatDoubleToCurrencyEdit(th.currentPrice_, th.cPriceStr_); - if ((th.numShares_ - static_cast<int>(th.numShares_)) != 0.0 ) + //I wish see integer if it integer else double + if ((th.numShares_ - static_cast<long>(th.numShares_)) != 0.0 ) mmex::formatDoubleToCurrencyEdit(th.numShares_, th.numSharesStr_); + else + th.numSharesStr_ << static_cast<long>(th.numShares_); + //sqlite does not support %y date mask therefore null value should be replaces if (th.stockPDate_ == wxT("")) @@ -1016,5 +1031,7 @@ { cp_->initVirtualListControl(); RefreshItems(0, ((int)cp_->trans_.size()) - 1); + cp_->updateExtraStocksData(selectedIndex_); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-05-27 14:47:12
|
Revision: 1296 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1296&view=rev Author: vomikan Date: 2011-05-27 14:47:06 +0000 (Fri, 27 May 2011) Log Message: ----------- some objects geometry a bit fixed Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-05-25 11:53:17 UTC (rev 1295) +++ trunk/mmex/src/stockspanel.cpp 2011-05-27 14:47:06 UTC (rev 1296) @@ -192,7 +192,7 @@ wxStaticText* itemStaticText10 = new wxStaticText( headerPanel, ID_PANEL_CHECKING_STATIC_BALHEADER, - _("Total:"), wxDefaultPosition, wxSize(500, 20), 0 ); + _("Total:"), wxDefaultPosition, wxSize(800, 20), 0 ); m_LED = new awxLed( headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN, 1, 5 ); //m_LED = new awxLed( headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN); @@ -296,39 +296,39 @@ wxButton* itemButton6 = new wxButton( itemPanel12, ID_BUTTON_NEW_STOCK, _("&New")); itemButton6->SetForegroundColour(wxColour(wxT("FOREST GREEN"))); itemButton6->SetToolTip(_("New Stock Investment")); - itemBoxSizer5->Add(itemButton6, 0, wxGROW|wxALL, 1); + itemBoxSizer5->Add(itemButton6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); wxButton* itemButton81 = new wxButton( itemPanel12, ID_BUTTON_EDIT_STOCK, _("&Edit")); itemButton81->SetForegroundColour(wxColour(wxT("ORANGE"))); itemButton81->SetToolTip(_("Edit Stock Investment")); - itemBoxSizer5->Add(itemButton81, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); + itemBoxSizer5->Add(itemButton81, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); itemButton81->Enable(false); wxButton* itemButton7 = new wxButton( itemPanel12, ID_BUTTON_DELETE_STOCK, _("&Delete")); itemButton7->SetForegroundColour(wxColour(wxT("RED"))); itemButton7->SetToolTip(_("Delete Stock Investment")); - itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); + itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); itemButton7->Enable(false); wxButton* itemButton8 = new wxButton( itemPanel12, ID_BUTTON_REFRESH_STOCK, _("&Refresh"), wxDefaultPosition, wxDefaultSize, 0 ); itemButton8->SetToolTip(_("Refresh Stock Prices from Yahoo")); - itemBoxSizer5->Add(itemButton8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); + itemBoxSizer5->Add(itemButton8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); wxButton* itemButton9 = new wxButton( itemPanel12, ID_BUTTON_HTTP_SETTINGS, _("&Settings"), wxDefaultPosition, wxDefaultSize, 0 ); itemButton9->SetToolTip(_("Change settings for automatic refresh")); - itemBoxSizer5->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); + itemBoxSizer5->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); //Infobar-mini wxStaticText* itemStaticText44 = new wxStaticText( itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, wxT(""), wxPoint(-1,-1), wxSize(450, -1), wxNO_BORDER|wxST_NO_AUTORESIZE); - itemBoxSizer5->Add(itemStaticText44, 1, wxGROW|wxALL, 5); + itemBoxSizer5->Add(itemStaticText44, 1, wxGROW|wxALL, 12); //Infobar wxStaticText* itemStaticText33 = new wxStaticText( itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS, _("Using MMEX it is possible to track stocks/mutual funds investments."), wxPoint(-1,-1), wxSize(350, -1), wxNO_BORDER|wxTE_MULTILINE|wxTE_WORDWRAP|wxST_NO_AUTORESIZE); - itemBoxSizer4->Add(itemStaticText33, 1, wxGROW|wxALL, 5); + itemBoxSizer4->Add(itemStaticText33, 1, wxGROW|wxALL, 1); //updateExtraStocksData(-1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oma...@us...> - 2011-09-08 13:51:40
|
Revision: 1446 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1446&view=rev Author: omalleypat Date: 2011-09-08 13:51:31 +0000 (Thu, 08 Sep 2011) Log Message: ----------- fix crash on Mac introduced in r1424 Revision Links: -------------- http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1424&view=rev Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-09-07 13:14:09 UTC (rev 1445) +++ trunk/mmex/src/stockspanel.cpp 2011-09-08 13:51:31 UTC (rev 1446) @@ -324,7 +324,7 @@ //Infobar-mini wxStaticText* itemStaticText44 = new wxStaticText( itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, wxT(""), - wxPoint(-1,-1), wxSize(550, -1), wxNO_BORDER|wxTE_DONTWRAP); + wxPoint(-1,-1), wxSize(550, -1), wxNO_BORDER|wxST_NO_AUTORESIZE); itemBoxSizer5->Add(itemStaticText44, 1, wxGROW|wxALL, 12); //Infobar wxStaticText* itemStaticText33 = new wxStaticText( itemPanel12, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2011-10-12 23:41:50
|
Revision: 1480 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1480&view=rev Author: vomikan Date: 2011-10-12 23:41:44 +0000 (Wed, 12 Oct 2011) Log Message: ----------- if share name is leave empty - it will be updated from yahoo Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2011-10-09 05:44:22 UTC (rev 1479) +++ trunk/mmex/src/stockspanel.cpp 2011-10-12 23:41:44 UTC (rev 1480) @@ -689,7 +689,7 @@ wxString YSymbols; wxSortedArrayString symbolarray; - wxSQLite3ResultSet q1 = db_->ExecuteQuery("select SYMBOL from STOCK_V1"); + wxSQLite3ResultSet q1 = db_->ExecuteQuery("select UPPER (SYMBOL) as SYMBOL from STOCK_V1"); while (q1.NextRow()) { wxString strSymbol = q1.GetString(wxT("SYMBOL")); @@ -707,7 +707,7 @@ { YSymbols = YSymbols+wxT("+")+symbolarray.Item(i)+yahoo_->Suffix_; } - + //http://finance.yahoo.com/d/quotes.csv?s=SBER03.ME&f=sl1n&e=.csv wxString site = wxT("http://")+ yahoo_->Server_+ wxT("/d/quotes.csv?s=")+ @@ -743,6 +743,7 @@ wxString StockSymbolWithSuffix; double dPrice = 0; + wxString dName; while ( tkz.HasMoreTokens() ) { wxString csvline = tkz.GetNextToken(); @@ -755,6 +756,11 @@ if (csvsimple.HasMoreTokens()) { csvsimple.GetNextToken().ToDouble(&dPrice); + if (csvsimple.HasMoreTokens()) + dName = csvsimple.GetNextToken(); + else + yahoo_->StocksRefreshStatus_ = mmYahoo::DS_FAILED; + } else { @@ -794,15 +800,16 @@ static const char sql[] = "select STOCKID, " "CURRENTPRICE, " - "NUMSHARES " + "NUMSHARES, " + "STOCKNAME " "from STOCK_V1 " - "where lower(SYMBOL) = ?"; + "where UPPER(SYMBOL) = ?"; typedef std::vector<mmStockTransactionHolder> vec_t; vec_t stockVec; wxSQLite3Statement st = db_->PrepareStatement(sql); - st.Bind(1, StockSymbolNoSuffix.Lower()); + st.Bind(1, StockSymbolNoSuffix.Upper()); wxSQLite3ResultSet q1 = st.ExecuteQuery(); @@ -811,14 +818,18 @@ mmStockTransactionHolder sh; sh.stockID_ = q1.GetInt(wxT("STOCKID")); + sh.numShares_ = q1.GetDouble(wxT("NUMSHARES")); // If the stock's symbol is not found, Yahoo CSV will return 0 for the current price. // Therefore, we assume the current price of all existing stock's symbols are greater // than zero and we will not update any stock if its curreny price is zero. - if(dPrice == 0) { + if(dPrice == 0 || sh.numShares_<0.0 ) { dPrice = q1.GetDouble(wxT("CURRENTPRICE")); } + sh.shareName_ = q1.GetString (wxT ("STOCKNAME")); + if (sh.shareName_.IsEmpty () ) + sh.shareName_ = dName; + sh.currentPrice_ = dPrice; - sh.numShares_ = q1.GetDouble(wxT("NUMSHARES")); sh.value_ = sh.numShares_ * dPrice; stockVec.push_back(sh); } @@ -828,7 +839,7 @@ static const char sql_upd[] = "update STOCK_V1 " - "SET CURRENTPRICE = ?, VALUE = ? " + "SET CURRENTPRICE = ?, VALUE = ?, STOCKNAME = ? " "WHERE STOCKID = ?"; st = db_->PrepareStatement(sql_upd); @@ -837,7 +848,8 @@ { st.Bind(1, i->currentPrice_); st.Bind(2, i->value_); - st.Bind(3, i->stockID_); + st.Bind(3, i->shareName_); + st.Bind(4, i->stockID_); st.ExecuteUpdate(); st.Reset(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-01-19 16:42:28
|
Revision: 1669 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1669&view=rev Author: vomikan Date: 2012-01-19 16:42:17 +0000 (Thu, 19 Jan 2012) Log Message: ----------- background color added for leds Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-01-19 15:05:58 UTC (rev 1668) +++ trunk/mmex/src/stockspanel.cpp 2012-01-19 16:42:17 UTC (rev 1669) @@ -201,6 +201,7 @@ m_LED = new awxLed( headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN, 1, 5 ); //m_LED = new awxLed( headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN); m_LED->SetState( awxLED_OFF ); + m_LED->SetBackgroundColour(mmColors::listBackColor); m_LED->SetToolTip( _("Idle") ); wxBoxSizer* itemBoxSizerHHeader = new wxBoxSizer(wxHORIZONTAL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-02-18 15:00:33
|
Revision: 1836 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1836&view=rev Author: guanlisheng Date: 2012-02-18 15:00:27 +0000 (Sat, 18 Feb 2012) Log Message: ----------- format Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-02-18 14:44:54 UTC (rev 1835) +++ trunk/mmex/src/stockspanel.cpp 2012-02-18 15:00:27 UTC (rev 1836) @@ -255,20 +255,13 @@ /* See if we can get data from inidb */ long col0, col1, col2, col3, col4, col5, col6; - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL0_WIDTH"), wxT("150")).ToLong(&col0); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL1_WIDTH"), wxT("-2")).ToLong(&col1); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL2_WIDTH"), wxT("-2")).ToLong(&col2); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL3_WIDTH"), wxT("-2")).ToLong(&col3); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL4_WIDTH"), wxT("-2")).ToLong(&col4); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL5_WIDTH"), wxT("-2")).ToLong(&col5); - mmDBWrapper::getINISettingValue(inidb_, - wxT("STOCKS_COL6_WIDTH"), wxT("-2")).ToLong(&col6); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL0_WIDTH"), wxT("150")).ToLong(&col0); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL1_WIDTH"), wxT("-2")).ToLong(&col1); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL2_WIDTH"), wxT("-2")).ToLong(&col2); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL3_WIDTH"), wxT("-2")).ToLong(&col3); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL4_WIDTH"), wxT("-2")).ToLong(&col4); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL5_WIDTH"), wxT("-2")).ToLong(&col5); + mmDBWrapper::getINISettingValue(inidb_, wxT("STOCKS_COL6_WIDTH"), wxT("-2")).ToLong(&col6); listCtrlAccount_->SetColumnWidth(COL_DATE, col0); listCtrlAccount_->SetColumnWidth(COL_NAME, col1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-03-06 07:07:21
|
Revision: 1922 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1922&view=rev Author: guanlisheng Date: 2012-03-06 07:07:11 +0000 (Tue, 06 Mar 2012) Log Message: ----------- cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-03-06 01:42:12 UTC (rev 1921) +++ trunk/mmex/src/stockspanel.cpp 2012-03-06 07:07:11 UTC (rev 1922) @@ -167,14 +167,12 @@ void mmStocksPanel::CreateControls() { - mmStocksPanel* itemPanel8 = this; - wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL); - itemPanel8->SetSizer(itemBoxSizer9); - itemPanel8->SetBackgroundColour(mmColors::listBackColor); + this->SetSizer(itemBoxSizer9); + this->SetBackgroundColour(mmColors::listBackColor); /* ---------------------- */ - wxPanel* headerPanel = new wxPanel(itemPanel8, wxID_ANY, wxDefaultPosition, + wxPanel* headerPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL); itemBoxSizer9->Add(headerPanel, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); @@ -206,7 +204,7 @@ /* ---------------------- */ - wxSplitterWindow* itemSplitterWindow10 = new wxSplitterWindow(itemPanel8, + wxSplitterWindow* itemSplitterWindow10 = new wxSplitterWindow(this, ID_SPLITTERWINDOW, wxDefaultPosition, wxSize(100, 100), wxSP_3DBORDER|wxSP_3DSASH|wxNO_BORDER); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-03-06 11:32:23
|
Revision: 1932 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1932&view=rev Author: guanlisheng Date: 2012-03-06 11:32:17 +0000 (Tue, 06 Mar 2012) Log Message: ----------- cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-03-06 11:25:05 UTC (rev 1931) +++ trunk/mmex/src/stockspanel.cpp 2012-03-06 11:32:17 UTC (rev 1932) @@ -133,10 +133,8 @@ } if (yahoo_) delete yahoo_; + if (m_LED) delete m_LED; - if (m_LED) - delete m_LED; - long col0, col1, col2, col3, col4, col5, col6; col0 = listCtrlAccount_->GetColumnWidth(COL_DATE); col1 = listCtrlAccount_->GetColumnWidth(COL_NAME); @@ -203,14 +201,12 @@ itemBoxSizerVHeader->Add(itemStaticText10, 0, wxALL, 1); /* ---------------------- */ - wxSplitterWindow* itemSplitterWindow10 = new wxSplitterWindow(this, ID_SPLITTERWINDOW, wxDefaultPosition, wxSize(100, 100), wxSP_3DBORDER|wxSP_3DSASH|wxNO_BORDER); wxSize imageSize(16, 16); - m_imageList = new wxImageList(imageSize.GetWidth(), - imageSize.GetHeight()); + m_imageList = new wxImageList(imageSize.GetWidth(), imageSize.GetHeight()); m_imageList->Add(wxBitmap(uparrow_xpm)); m_imageList->Add(wxBitmap(downarrow_xpm)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-03-06 12:02:01
|
Revision: 1934 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=1934&view=rev Author: guanlisheng Date: 2012-03-06 12:01:54 +0000 (Tue, 06 Mar 2012) Log Message: ----------- cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-03-06 11:57:29 UTC (rev 1933) +++ trunk/mmex/src/stockspanel.cpp 2012-03-06 12:01:54 UTC (rev 1934) @@ -1042,6 +1042,5 @@ cp_->initVirtualListControl(); RefreshItems(0, ((int)cp_->trans_.size()) - 1); cp_->updateExtraStocksData(selectedIndex_); - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-04-09 16:07:52
|
Revision: 2132 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2132&view=rev Author: vomikan Date: 2012-04-09 16:07:46 +0000 (Mon, 09 Apr 2012) Log Message: ----------- fix for account statistics if account is empty Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-04-09 15:26:06 UTC (rev 2131) +++ trunk/mmex/src/stockspanel.cpp 2012-04-09 16:07:46 UTC (rev 2132) @@ -184,7 +184,7 @@ wxStaticText* itemStaticText10 = new wxStaticText(headerPanel, ID_PANEL_CHECKING_STATIC_BALHEADER, - _("Total:"), wxDefaultPosition, wxDefaultSize, 0); + _("Total:"), wxDefaultPosition, wxSize(800, 20), 0); m_LED = new awxLed(headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN, 1, 5); //m_LED = new awxLed(headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN); @@ -343,20 +343,23 @@ // wxString diffStr; mmex::formatDoubleToCurrency((total > originalVal ? total - originalVal : originalVal - total), diffStr); - //Percent - wxString diffStrPercents; - double diffPercents = (total > originalVal ? total/originalVal*100.0-100.0 : -(total/originalVal*100.0-100.0)); - mmex::formatDoubleToCurrencyEdit(diffPercents, diffStrPercents); header = (wxStaticText*)FindWindow(ID_PANEL_CHECKING_STATIC_BALHEADER); wxString lbl; lbl << _("Total: ") << balance << wxT (" ") << _("Invested: ") << original; - if (total > originalVal) - lbl << wxT (" ") << _("Gain: "); - else - lbl << wxT (" ") << _("Loss: "); - lbl << diffStr << wxT(" ( ") << diffStrPercents << wxT(" %)"); + //Percent + wxString diffStrPercents; + if (originalVal!= 0.0) { + if (total > originalVal) + lbl << wxT (" ") << _("Gain: "); + else + lbl << wxT (" ") << _("Loss: "); + double diffPercents = (total > originalVal ? total/originalVal*100.0-100.0 : -(total/originalVal*100.0-100.0)); + mmex::formatDoubleToCurrencyEdit(diffPercents, diffStrPercents); + lbl << diffStr << wxT(" ( ") << diffStrPercents << wxT(" %)"); + } + header->SetLabel(lbl); char sql[] = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-04-26 16:11:39
|
Revision: 2206 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2206&view=rev Author: vomikan Date: 2012-04-26 16:11:28 +0000 (Thu, 26 Apr 2012) Log Message: ----------- improuvments & cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-04-26 14:23:48 UTC (rev 2205) +++ trunk/mmex/src/stockspanel.cpp 2012-04-26 16:11:28 UTC (rev 2206) @@ -36,11 +36,11 @@ ID_PANEL_STOCKS_STATIC_DETAILS_MINI }; enum EColumn -{ +{ //COL_HELDAT, COL_DATE, - COL_NAME, - COL_NUMBER, + COL_NAME, + COL_NUMBER, COL_VALUE, COL_GAIN_LOSS, COL_CURRENT, @@ -290,7 +290,7 @@ itemButton7->SetToolTip(_("Delete Stock Investment")); itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); itemButton7->Enable(false); - + wxButton* itemButton8 = new wxButton(itemPanel12, wxID_REFRESH, _("&Refresh"), wxDefaultPosition, wxDefaultSize, 0); itemButton8->SetToolTip(_("Refresh Stock Prices from Yahoo")); @@ -300,17 +300,17 @@ wxDefaultPosition, wxDefaultSize, 0); itemButton9->SetToolTip(_("Change settings for automatic refresh")); itemBoxSizer5->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); - - //Infobar-mini - wxStaticText* itemStaticText44 = new wxStaticText(itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, wxT(""), + + //Infobar-mini + wxStaticText* itemStaticText44 = new wxStaticText(itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, wxT(""), wxDefaultPosition, wxDefaultSize, 0); itemBoxSizer5->Add(itemStaticText44, 1, wxGROW|wxTOP, 12); - //Infobar - wxStaticText* itemStaticText33 = new wxStaticText(itemPanel12, - ID_PANEL_STOCKS_STATIC_DETAILS, wxT(""), + //Infobar + wxStaticText* itemStaticText33 = new wxStaticText(itemPanel12, + ID_PANEL_STOCKS_STATIC_DETAILS, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_WORDWRAP); itemBoxSizer4->Add(itemStaticText33, 1, wxGROW|wxLEFT|wxRIGHT, 14); - + updateExtraStocksData(-1); } @@ -325,9 +325,9 @@ mmDBWrapper::loadBaseCurrencySettings(db_); double originalVal = 0.0; - + mmDBWrapper::loadSettings(accountID_, db_); - + //Get Init Value of the account double initVal = core_->getAccountSharedPtr(accountID_)->initialBalance_; // + Transfered from other accounts - Transfered to other accounts @@ -336,14 +336,14 @@ double total = mmDBWrapper::getStockInvestmentBalance(db_, accountID_, false, originalVal); wxString balance; mmex::formatDoubleToCurrency(total+initVal, balance); - + wxString original; mmex::formatDoubleToCurrency(originalVal, original); // wxString diffStr; mmex::formatDoubleToCurrency((total > originalVal ? total - originalVal : originalVal - total), diffStr); - + header = (wxStaticText*)FindWindow(ID_PANEL_CHECKING_STATIC_BALHEADER); wxString lbl; lbl << _("Total: ") << balance << wxT (" ") << _("Invested: ") << original; @@ -352,7 +352,7 @@ wxString diffStrPercents; if (originalVal!= 0.0) { if (total > originalVal) - lbl << wxT (" ") << _("Gain: "); + lbl << wxT (" ") << _("Gain: "); else lbl << wxT (" ") << _("Loss: "); double diffPercents = (total > originalVal ? total/originalVal*100.0-100.0 : -(total/originalVal*100.0-100.0)); @@ -387,7 +387,7 @@ ") T on UPPER (T.SYMBOL)=UPPER (S.SYMBOL) and T.HELDAT=S.HELDAT " "where S.HELDAT = ? " "order by julianday((S.PURCHASEDATE),'localtime'), S.SYMBOL, S.STOCKNAME "; - + wxSQLite3Statement st = db_->PrepareStatement(sql); st.Bind(1, accountID_); @@ -428,7 +428,7 @@ //I wish see integer if it integer else double if ((th.numShares_ - static_cast<long>(th.numShares_)) != 0.0) th.numSharesStr_=wxString::Format(wxT("%.4f"),th.numShares_); - else + else th.numSharesStr_ << static_cast<long>(th.numShares_); if ((th.totalnumShares_ - static_cast<long>(th.totalnumShares_)) != 0.0) @@ -657,19 +657,15 @@ wxString YSymbols; wxSortedArrayString symbolarray; - wxSQLite3ResultSet q1 = db_->ExecuteQuery("select UPPER (SYMBOL) as SYMBOL from STOCK_V1"); + wxSQLite3ResultSet q1 = db_->ExecuteQuery("select distinct UPPER (SYMBOL) as SYMBOL from STOCK_V1"); while (q1.NextRow()) { - wxString strSymbol = q1.GetString(wxT("SYMBOL")); - if (wxNOT_FOUND == symbolarray.Index(strSymbol.GetData())) - symbolarray.Add(strSymbol); + symbolarray.Add( q1.GetString(wxT("SYMBOL"))); } q1.Finalize(); - if(symbolarray.GetCount() < 1) - { + if(symbolarray.GetCount() < 1) return; - } YSymbols = symbolarray.Item(0)+yahoo_->Suffix_; for (size_t i = 1; i < symbolarray.GetCount(); i++) @@ -677,17 +673,12 @@ YSymbols = YSymbols+wxT("+")+symbolarray.Item(i)+yahoo_->Suffix_; } //http://finance.yahoo.com/d/quotes.csv?s=SBER03.ME&f=sl1n&e=.csv - wxString site = wxT("http://")+ - yahoo_->Server_+ - wxT("/d/quotes.csv?s=")+ - YSymbols+ - wxT("&f=")+ - yahoo_->CSVColumns_+ - wxT("&e=.csv"); - + wxString site = wxString::Format(wxT("http://%s/d/quotes.csv?s=%s&f=%s&e=.csv"), + yahoo_->Server_.c_str(), YSymbols.c_str(), yahoo_->CSVColumns_.c_str()); + wxURL url(site); - if (url.GetError()!=wxURL_NOERR) - { + if (url.GetError()!=wxURL_NOERR) + { mmShowErrorMessage(this, _("Unable to connect!"), _("Stock Download")); return; } @@ -704,19 +695,19 @@ delete in_stream; buf[bytes_read] = '\0'; wxString quotes = wxString::FromAscii((const char *)buf); - + yahoo_->StocksRefreshStatus_ = mmYahoo::DS_INPROGRESS; // Break it up into lines wxStringTokenizer tkz(quotes, wxT("\r\n")); - wxString StockSymbolWithSuffix; + wxString StockSymbolWithSuffix, dName; double dPrice = 0; - wxString dName; + db_->Begin(); while (tkz.HasMoreTokens()) { wxString csvline = tkz.GetNextToken(); - + /*** Grab the relevant bits (for now only the symbol and the current price) */ wxStringTokenizer csvsimple(csvline,wxT("\","),wxTOKEN_STRTOK); if (csvsimple.HasMoreTokens()) @@ -727,19 +718,14 @@ csvsimple.GetNextToken().ToDouble(&dPrice); if (csvsimple.HasMoreTokens()) dName = csvsimple.GetNextToken(); - else + else yahoo_->StocksRefreshStatus_ = mmYahoo::DS_FAILED; - } else - { yahoo_->StocksRefreshStatus_ = mmYahoo::DS_FAILED; - } } else - { yahoo_->StocksRefreshStatus_ = mmYahoo::DS_FAILED; - } /****** Update all that match this symbol ******/ // wxString Suffix_ = mmDBWrapper::getINISettingValue(inidb_,wxT("HTTP_YAHOO_SUFFIX"), wxT(".AX")); @@ -757,7 +743,7 @@ } //**** HACK HACK HACK - // Note: + // Note: // 1. If the share is a UK share (e.g. HSBA.L), its downloaded value in pence // 2. If the share is not a UK share (e.g. 0005.HK) while we are using UK Yahoo finance, we do not need // to modify the price @@ -765,11 +751,11 @@ //// UK finance apparently downloads values in pence //if (!yahoo_->Server_.CmpNoCase(wxT("uk.finance.yahoo.com"))) // dPrice = dPrice / 100; - //// ------------------ - if(StockSymbolNoSuffix.Find(wxT(".L")) != wxNOT_FOUND) + //// ------------------ + if(StockSymbolNoSuffix.Find(wxT(".L")) != wxNOT_FOUND) dPrice = dPrice / 100; - static const char sql[] = + static const char sql[] = "select STOCKID, " "CURRENTPRICE, " "NUMSHARES, " @@ -797,7 +783,7 @@ if(dPrice == 0 || sh.numShares_<0.0) dPrice = q1.GetDouble(wxT("CURRENTPRICE")); sh.shareName_ = q1.GetString (wxT ("STOCKNAME")); if (sh.shareName_.IsEmpty()) sh.shareName_ = dName; - + sh.currentPrice_ = dPrice; sh.value_ = sh.numShares_ * dPrice; stockVec.push_back(sh); @@ -805,7 +791,7 @@ st.Finalize(); // -- - static const char sql_upd[] = + static const char sql_upd[] = "update STOCK_V1 " "SET CURRENTPRICE = ?, VALUE = ?, STOCKNAME = ? " "WHERE STOCKID = ?"; @@ -818,13 +804,14 @@ st.Bind(2, i->value_); st.Bind(3, i->shareName_); st.Bind(4, i->id_); - + st.ExecuteUpdate(); st.Reset(); } - + st.Finalize(); } + db_->Commit(); // Now refresh the display initVirtualListControl(); @@ -856,7 +843,7 @@ if (column == COL_VALUE) return trans_[item].valueStr_; if (column == COL_CURRENT) return trans_[item].cPriceStr_; if (column == COL_NOTES) return trans_[item].shareNotes_; - + return wxT(""); } @@ -883,13 +870,13 @@ { wxStaticText* st = (wxStaticText*)FindWindow(ID_PANEL_STOCKS_STATIC_DETAILS); wxStaticText* stm = (wxStaticText*)FindWindow(ID_PANEL_STOCKS_STATIC_DETAILS_MINI); - if (selectedIndex_ == -1) + if (selectedIndex_ == -1) { st->SetLabel(Tips(TIPS_STOCK)); stm->SetLabel(wxT("")); } else - { + { wxString stockPurchasePriceStr; wxString stockCurrentPriceStr; wxString stockDifferenceStr; @@ -902,11 +889,11 @@ wxString stocktotalnumSharesStr = trans_[selectedIndex_].totalnumSharesStr_; wxString stockgainlossStr = trans_[selectedIndex_].gainLossStr_; wxString stocktotalgainlossStr; - + double stockPurchasePrice = trans_[selectedIndex_].purchasePrice_; double stockCurrentPrice = trans_[selectedIndex_].currentPrice_; double stockDifference = stockCurrentPrice - stockPurchasePrice; - + double stockavgPurchasePrice = trans_[selectedIndex_].avgpurchasePrice_; double stocktotalDifference = stockCurrentPrice - stockavgPurchasePrice; double stockDaysOwn = trans_[selectedIndex_].stockDays_; @@ -931,26 +918,26 @@ wxString miniInfo = wxT(""); if (trans_[selectedIndex_].stockSymbol_ != wxT("")) - miniInfo << wxT("\t") << _("Symbol: ") << trans_[selectedIndex_].stockSymbol_ << wxT ("\t\t"); + miniInfo << wxT("\t") << _("Symbol: ") << trans_[selectedIndex_].stockSymbol_ << wxT ("\t\t"); miniInfo << _ ("Total:") << wxT (" (") << trans_[selectedIndex_].totalnumSharesStr_ << wxT (") "); //If some share has been bot for a short period we don't need that info because the forecast may be too optimistic //if (stockDaysOwn > 182.5) //miniInfo << wxT ("\t\t") << _("Percent/Year: ") << trans_[selectedIndex_].stockPercentagePerYearStr_; stm->SetLabel(miniInfo); - + wxString additionInfo =wxT(""); //Selected share info - additionInfo - << wxT("|") << stockCurrentPriceStr << wxT(" - ") << stockPurchasePriceStr << wxT("|") << wxT(" = ") << stockDifferenceStr + additionInfo + << wxT("|") << stockCurrentPriceStr << wxT(" - ") << stockPurchasePriceStr << wxT("|") << wxT(" = ") << stockDifferenceStr << wxT (" * ") << stocknumSharesStr << wxT (" = ") << stockgainlossStr << wxT (" ( ") << stockPercentageStr << wxT ('%') - //<< wxT (" | ")<< stockPercentagePerYearStr << wxT("% ") << _("Yearly") + //<< wxT (" | ")<< stockPercentagePerYearStr << wxT("% ") << _("Yearly") << wxT (" )") << wxT ("\n"); //Summary for account for selected symbol if (trans_[selectedIndex_].purchasedTime_ > 1) { - additionInfo << wxT("|") << stockCurrentPriceStr << wxT(" - ") << stockavgPurchasePriceStr << wxT("|") << wxT(" = ") << stocktotalDifferenceStr + additionInfo << wxT("|") << stockCurrentPriceStr << wxT(" - ") << stockavgPurchasePriceStr << wxT("|") << wxT(" = ") << stocktotalDifferenceStr << wxT (" * ") << stocktotalnumSharesStr << wxT (" = ") << stocktotalgainlossStr << wxT (" ( ") << stocktotalPercentageStr << wxT ('%') - //<< wxT (" | ")<< stockPercentagePerYearStr << wxT("% ") << _("Yearly") + //<< wxT (" | ")<< stockPercentagePerYearStr << wxT("% ") << _("Yearly") << wxT (" )") //<< wxT ("\n") << wxT ("\n") << getItem(selectedIndex_, COL_NOTES); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-05-06 04:26:10
|
Revision: 2254 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2254&view=rev Author: vomikan Date: 2012-05-06 04:26:04 +0000 (Sun, 06 May 2012) Log Message: ----------- revert wrong changes Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-06 04:16:37 UTC (rev 2253) +++ trunk/mmex/src/stockspanel.cpp 2012-05-06 04:26:04 UTC (rev 2254) @@ -23,9 +23,6 @@ #include "mmyahoo.h" #include "yahoosettingsdialog.h" -#include "mmex_db_view.h" -#include <boost/foreach.hpp> - /* Include XPM Support */ #include "../resources/uparrow.xpm" #include "../resources/downarrow_red.xpm" @@ -110,7 +107,7 @@ // m_LED->SetTimerInterval(m_LED->GetTimerInterval()/2); StatusRefreshTimer_ = new wxTimer(this,ID_TIMER_REFRESH_STOCK); - StatusRefreshTimer_->Start(1250, wxTIMER_CONTINUOUS); + StatusRefreshTimer_->Start(250, wxTIMER_CONTINUOUS); DownloadScheduleTimer_ = new wxTimer(this, ID_TIMER_SCHEDULE_STOCK); DownloadScheduleTimer_->Start(yahoo_->UpdateIntervalMinutes_ * 60000, wxTIMER_CONTINUOUS); @@ -187,7 +184,7 @@ wxStaticText* itemStaticText10 = new wxStaticText(headerPanel, ID_PANEL_CHECKING_STATIC_BALHEADER, - _("Total:"), wxDefaultPosition, wxSize(800, 20), 0); + _("Total:"), wxDefaultPosition, wxDefaultSize, 0); m_LED = new awxLed(headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN, 1, 5); //m_LED = new awxLed(headerPanel, ID_PANEL_STOCK_UPDATE_LED, wxDefaultPosition, wxDefaultSize, awxLED_GREEN); @@ -657,60 +654,65 @@ * * ****************************************************************************************************************/ - std::vector<DB_View_STOCK_V1::Data> all_stocks = STOCK_V1.all(db_); - if (all_stocks.empty()) - return; + wxString YSymbols; + wxSortedArrayString symbolarray; - wxString suffix, site; - wxSortedArrayString symbols_array; + wxSQLite3ResultSet q1 = db_->ExecuteQuery("select distinct UPPER (SYMBOL) as SYMBOL from STOCK_V1"); + while (q1.NextRow()) + { + symbolarray.Add( q1.GetString(wxT("SYMBOL"))); + } + q1.Finalize(); - suffix = yahoo_->Suffix_.Upper(); - bool suffix_available = !suffix.IsEmpty(); + if(symbolarray.GetCount() < 1) + return; - BOOST_FOREACH(const DB_View_STOCK_V1::Data &stocks, all_stocks) + YSymbols = symbolarray.Item(0)+yahoo_->Suffix_; + for (size_t i = 1; i < symbolarray.GetCount(); i++) { - if (wxNOT_FOUND == symbols_array.Index(stocks.SYMBOL)) { - symbols_array.Add(stocks.SYMBOL.Upper()); - site << stocks.SYMBOL.Upper() << suffix << wxT("+"); - } + YSymbols = YSymbols+wxT("+")+symbolarray.Item(i)+yahoo_->Suffix_; } - site.RemoveLast(1); - //Sample: //http://finance.yahoo.com/d/quotes.csv?s=SBER03.ME&f=sl1n&e=.csv - site = wxString() << wxT("http://") << yahoo_->Server_ << wxT("/d/quotes.csv?s=") << site; - site << wxT("&f=") << yahoo_->CSVColumns_ << wxT("&e=.csv"); + wxString site = wxString::Format(wxT("http://%s/d/quotes.csv?s=%s&f=%s&e=.csv"), + yahoo_->Server_.c_str(), YSymbols.c_str(), yahoo_->CSVColumns_.c_str()); -wxSafeShowMessage(wxT(""), site); - - yahoo_->StocksRefreshStatus_ = mmYahoo::DS_INPROGRESS; - - int err_code = 0; - wxString quotes = site_content(site, err_code); - if (err_code != 0) + wxURL url(site); + if (url.GetError()!=wxURL_NOERR) { mmShowErrorMessage(this, _("Unable to connect!"), _("Stock Download")); return; } + url.GetProtocol().SetTimeout(10); // 10 secs + unsigned char buf[16084]; + wxInputStream* in_stream = url.GetInputStream(); + if (!in_stream) + { + mmShowErrorMessage(this, _("Unable to connect!"), _("Stock Download")); + return; + } + in_stream->Read(buf, 16084); + size_t bytes_read=in_stream->LastRead(); + delete in_stream; + buf[bytes_read] = '\0'; + wxString quotes = wxString::FromAscii((const char *)buf); -wxSafeShowMessage(wxT(""), quotes); + yahoo_->StocksRefreshStatus_ = mmYahoo::DS_INPROGRESS; - wxString StockSymbol, dName; - double dPrice = 0; - - std::map<wxString, double> stocks_data; - // Break it up into lines wxStringTokenizer tkz(quotes, wxT("\r\n")); + + wxString StockSymbolWithSuffix, dName; + double dPrice = 0; + db_->Begin(); while (tkz.HasMoreTokens()) { wxString csvline = tkz.GetNextToken(); /*** Grab the relevant bits (for now only the symbol and the current price) */ - wxStringTokenizer csvsimple(csvline,wxT(",\""),wxTOKEN_STRTOK); + wxStringTokenizer csvsimple(csvline,wxT("\","),wxTOKEN_STRTOK); if (csvsimple.HasMoreTokens()) { - StockSymbol = csvsimple.GetNextToken(); - if (suffix_available) StockSymbol.Replace(suffix, wxT("")); + StockSymbolWithSuffix = csvsimple.GetNextToken(); if (csvsimple.HasMoreTokens()) { csvsimple.GetNextToken().ToDouble(&dPrice); @@ -725,61 +727,90 @@ else yahoo_->StocksRefreshStatus_ = mmYahoo::DS_FAILED; - stocks_data.insert(std::pair<wxString, double>(StockSymbol, dPrice)); - } + /****** Update all that match this symbol ******/ + // wxString Suffix_ = mmDBWrapper::getINISettingValue(inidb_,wxT("HTTP_YAHOO_SUFFIX"), wxT(".AX")); + wxString StockSymbolNoSuffix; + if (yahoo_->Suffix_.IsEmpty()) + { + StockSymbolNoSuffix = wxString(StockSymbolWithSuffix.c_str()); + } + else + { + if (!StockSymbolWithSuffix.EndsWith(yahoo_->Suffix_.GetData(), &StockSymbolNoSuffix)) + { + wxSafeShowMessage(wxT("Big Oops"),wxT("How did I get here?")); + } + } - //for debuging - for (std::map<wxString, double, wxString>::const_iterator it = stocks_data.begin(); - it != stocks_data.end(); - ++ it) { - wxSafeShowMessage(it->first, wxString()<<it->second ); - } + //**** HACK HACK HACK + // Note: + // 1. If the share is a UK share (e.g. HSBA.L), its downloaded value in pence + // 2. If the share is not a UK share (e.g. 0005.HK) while we are using UK Yahoo finance, we do not need + // to modify the price + //// UK finance apparently downloads values in pence + //if (!yahoo_->Server_.CmpNoCase(wxT("uk.finance.yahoo.com"))) + // dPrice = dPrice / 100; + //// ------------------ + //if(StockSymbolNoSuffix.Find(wxT(".L")) != wxNOT_FOUND) + // dPrice = dPrice / 100; - // -- - static const char sql_upd[] = - "update STOCK_V1 " - "SET CURRENTPRICE = ?, VALUE = ?, STOCKNAME = ? " - "WHERE STOCKID = ?"; + static const char sql[] = + "select STOCKID, " + "CURRENTPRICE, " + "NUMSHARES, " + "STOCKNAME " + "from STOCK_V1 " + "where UPPER(SYMBOL) = ?"; + typedef std::vector<mmStockTransactionHolder> vec_t; + vec_t stockVec; - db_->Begin(); - wxSQLite3Statement st = db_->PrepareStatement(sql_upd); - BOOST_FOREACH(const DB_View_STOCK_V1::Data &stocks, all_stocks) - { + wxSQLite3Statement st = db_->PrepareStatement(sql); + st.Bind(1, StockSymbolNoSuffix.Upper()); + + wxSQLite3ResultSet q1 = st.ExecuteQuery(); + + while (q1.NextRow()) + { mmStockTransactionHolder sh; - sh.id_ = stocks.STOCKID; - sh.symbol_ = stocks.SYMBOL.Upper(); - sh.numShares_ = stocks.NUMSHARES; + sh.id_ = q1.GetInt(wxT("STOCKID")); + sh.numShares_ = q1.GetDouble(wxT("NUMSHARES")); // If the stock's symbol is not found, Yahoo CSV will return 0 for the current price. // Therefore, we assume the current price of all existing stock's symbols are greater // than zero and we will not update any stock if its curreny price is zero. - if(stocks_data.find(sh.symbol_)->second <= 0.000001 || sh.numShares_<=0.0) - sh.currentPrice_ = stocks.CURRENTPRICE; - else - sh.currentPrice_ = stocks_data.find(sh.symbol_)->second; + if(dPrice == 0 || sh.numShares_<0.0) dPrice = q1.GetDouble(wxT("CURRENTPRICE")); + sh.shareName_ = q1.GetString (wxT ("STOCKNAME")); + if (sh.shareName_.IsEmpty()) sh.shareName_ = dName; - sh.shareName_ = stocks.STOCKNAME; - //if (sh.shareName_.IsEmpty()) sh.shareName_ = dName; + sh.currentPrice_ = dPrice; + sh.value_ = sh.numShares_ * dPrice; + stockVec.push_back(sh); + } + st.Finalize(); - sh.value_ = sh.numShares_ * sh.currentPrice_; + // -- + static const char sql_upd[] = + "update STOCK_V1 " + "SET CURRENTPRICE = ?, VALUE = ?, STOCKNAME = ? " + "WHERE STOCKID = ?"; st = db_->PrepareStatement(sql_upd); - st.Bind(1, sh.currentPrice_); - st.Bind(2, sh.value_); - st.Bind(3, sh.shareName_); - st.Bind(4, sh.id_); + for (vec_t::const_iterator i = stockVec.begin(); i != stockVec.end(); ++i) + { + st.Bind(1, i->currentPrice_); + st.Bind(2, i->value_); + st.Bind(3, i->shareName_); + st.Bind(4, i->id_); -wxSafeShowMessage(wxString()<< sh.id_ <<wxT("=") <<sh.currentPrice_ <<wxT("=") << stocks_data.find(sh.symbol_)->second, sh.shareName_); - st.ExecuteUpdate(); st.Reset(); + } st.Finalize(); } - db_->Commit(); // Now refresh the display This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-05-08 23:32:30
|
Revision: 2265 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2265&view=rev Author: guanlisheng Date: 2012-05-08 23:32:23 +0000 (Tue, 08 May 2012) Log Message: ----------- name formating Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-08 18:36:01 UTC (rev 2264) +++ trunk/mmex/src/stockspanel.cpp 2012-05-08 23:32:23 UTC (rev 2265) @@ -667,11 +667,11 @@ suffix = yahoo_->Suffix_.Upper(); bool suffix_available = !suffix.IsEmpty(); - BOOST_FOREACH(const DB_View_STOCK_V1::Data &stocks, all_stocks) + BOOST_FOREACH(const DB_View_STOCK_V1::Data &stock, all_stocks) { - if (wxNOT_FOUND == symbols_array.Index(stocks.SYMBOL.Upper())) { - symbols_array.Add(stocks.SYMBOL.Upper()); - site << stocks.SYMBOL.Upper() << suffix << wxT("+"); + if (wxNOT_FOUND == symbols_array.Index(stock.SYMBOL.Upper())) { + symbols_array.Add(stock.SYMBOL.Upper()); + site << stock.SYMBOL.Upper() << suffix << wxT("+"); } } site.RemoveLast(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-05-24 05:16:07
|
Revision: 2384 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2384&view=rev Author: guanlisheng Date: 2012-05-24 05:16:01 +0000 (Thu, 24 May 2012) Log Message: ----------- format & cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-24 05:13:33 UTC (rev 2383) +++ trunk/mmex/src/stockspanel.cpp 2012-05-24 05:16:01 UTC (rev 2384) @@ -127,14 +127,7 @@ if (yahoo_) delete yahoo_; if (m_LED) delete m_LED; - - inidb_->Begin(); - for (int i = 0; i < COL_MAX; ++i) - { - mmDBWrapper::setINISettingValue(inidb_, wxString::Format(wxT("STOCKS_COL%i_WIDTH"), i), - wxString::Format(wxT("%i"), listCtrlAccount_->GetColumnWidth(i))); - }; - inidb_->Commit(); + this->save_config(listCtrlAccount_, wxT("STOCKS_COL")); } void mmStocksPanel::CreateControls() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-05-24 12:07:44
|
Revision: 2392 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2392&view=rev Author: guanlisheng Date: 2012-05-24 12:07:37 +0000 (Thu, 24 May 2012) Log Message: ----------- Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-24 11:01:15 UTC (rev 2391) +++ trunk/mmex/src/stockspanel.cpp 2012-05-24 12:07:37 UTC (rev 2392) @@ -230,16 +230,16 @@ wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_LEFT|wxALL, 5); - wxButton* itemButton6 = new wxButton(itemPanel12, wxID_NEW, _("&New")); + wxButton* itemButton6 = new wxButton(itemPanel12, wxID_NEW); itemButton6->SetToolTip(_("New Stock Investment")); itemBoxSizer5->Add(itemButton6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); - wxButton* itemButton81 = new wxButton(itemPanel12, wxID_EDIT, _("&Edit")); + wxButton* itemButton81 = new wxButton(itemPanel12, wxID_EDIT); itemButton81->SetToolTip(_("Edit Stock Investment")); itemBoxSizer5->Add(itemButton81, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); itemButton81->Enable(false); - wxButton* itemButton7 = new wxButton(itemPanel12, wxID_DELETE, _("&Delete")); + wxButton* itemButton7 = new wxButton(itemPanel12, wxID_DELETE); itemButton7->SetToolTip(_("Delete Stock Investment")); itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); itemButton7->Enable(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gua...@us...> - 2012-05-25 02:56:39
|
Revision: 2408 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2408&view=rev Author: guanlisheng Date: 2012-05-25 02:56:33 +0000 (Fri, 25 May 2012) Log Message: ----------- cleanup Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-25 02:40:25 UTC (rev 2407) +++ trunk/mmex/src/stockspanel.cpp 2012-05-25 02:56:33 UTC (rev 2408) @@ -60,9 +60,9 @@ EVT_LIST_ITEM_SELECTED(ID_PANEL_STOCKS_LISTCTRL, stocksListCtrl::OnListItemSelected) EVT_LIST_ITEM_DESELECTED(ID_PANEL_STOCKS_LISTCTRL, stocksListCtrl::OnListItemDeselected) - EVT_MENU(MENU_TREEPOPUP_NEW, stocksListCtrl::OnNewStocks) - EVT_MENU(MENU_TREEPOPUP_EDIT, stocksListCtrl::OnEditStocks) - EVT_MENU(MENU_TREEPOPUP_DELETE, stocksListCtrl::OnDeleteStocks) + EVT_MENU(wxID_NEW, stocksListCtrl::OnNewStocks) + EVT_MENU(wxID_EDIT, stocksListCtrl::OnEditStocks) + EVT_MENU(wxID_DELETE, stocksListCtrl::OnDeleteStocks) EVT_LIST_KEY_DOWN(ID_PANEL_STOCKS_LISTCTRL, stocksListCtrl::OnListKeyDown) END_EVENT_TABLE() @@ -715,10 +715,10 @@ selectedIndex_ = event.GetIndex(); wxMenu menu; - menu.Append(MENU_TREEPOPUP_NEW, _("&New Stock Investment")); + menu.Append(wxID_NEW); menu.AppendSeparator(); - menu.Append(MENU_TREEPOPUP_EDIT, _("&Edit Stock Investment")); - menu.Append(MENU_TREEPOPUP_DELETE, _("&Delete Stock Investment")); + menu.Append(wxID_EDIT); + menu.Append(wxID_DELETE); PopupMenu(&menu, event.GetPoint()); } @@ -841,7 +841,7 @@ { case WXK_DELETE: { - wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_DELETE); + wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, wxID_DELETE); OnDeleteStocks(evt); } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-05-29 08:18:15
|
Revision: 2450 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2450&view=rev Author: vomikan Date: 2012-05-29 08:18:08 +0000 (Tue, 29 May 2012) Log Message: ----------- format, cleanup, simplification Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-05-29 02:02:20 UTC (rev 2449) +++ trunk/mmex/src/stockspanel.cpp 2012-05-29 08:18:08 UTC (rev 2450) @@ -31,15 +31,14 @@ enum EColumn { - //COL_HELDAT, - COL_DATE, - COL_NAME, - COL_NUMBER, - COL_VALUE, - COL_GAIN_LOSS, - COL_CURRENT, - COL_NOTES, - COL_MAX, // number of columns + COL_DATE, + COL_NAME, + COL_NUMBER, + COL_VALUE, + COL_GAIN_LOSS, + COL_CURRENT, + COL_NOTES, + COL_MAX, // number of columns }; BEGIN_EVENT_TABLE(mmStocksPanel, wxPanel) @@ -81,7 +80,6 @@ SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); wxPanel::Create(parent, winid, pos, size, style, name); - this->Freeze(); CreateControls(); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); @@ -97,13 +95,12 @@ updateExtraStocksData(-1); - DownloadScheduleTimer_=NULL; - StatusRefreshTimer_=NULL; + DownloadScheduleTimer_ = NULL; + StatusRefreshTimer_ = NULL; DownloadScheduleTimer_ = new wxTimer(this, ID_TIMER_SCHEDULE_STOCK); DownloadScheduleTimer_->Start(yahoo_->UpdateIntervalMinutes_ * 60000, wxTIMER_CONTINUOUS); - this->Thaw(); return TRUE; } @@ -122,41 +119,42 @@ } if (yahoo_) delete yahoo_; - this->save_config(listCtrlStock_, wxT("STOCKS_COL")); + this->save_config(listCtrlStock_, wxT("STOCKS")); } void mmStocksPanel::CreateControls() { wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL); this->SetSizer(itemBoxSizer9); - //this->SetBackgroundColour(mmColors::listBackColor); + wxSizerFlags flags; + flags.Align(wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL).Border(wxLEFT|wxTOP, 4); /* ---------------------- */ - wxPanel* headerPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL); - itemBoxSizer9->Add(headerPanel, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5); + wxPanel* headerPanel = new wxPanel(this, + wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); + itemBoxSizer9->Add(headerPanel, flags); wxBoxSizer* itemBoxSizerVHeader = new wxBoxSizer(wxVERTICAL); headerPanel->SetSizer(itemBoxSizerVHeader); - //headerPanel->SetBackgroundColour(mmColors::listBackColor); - wxStaticText* itemStaticText9 = new wxStaticText(headerPanel, ID_PANEL_BD_STATIC_HEADER, - _("Stock Investments"), wxDefaultPosition, wxDefaultSize, 0); - itemStaticText9->SetFont(wxFont(12, wxSWISS, wxNORMAL, wxBOLD, FALSE, wxT(""))); + wxStaticText* header_text = new wxStaticText(headerPanel, + ID_PANEL_BD_STATIC_HEADER, _("Stock Investments")); + int font_size = this->GetFont().GetPointSize() + 2; + header_text->SetFont(wxFont(font_size, wxSWISS, wxNORMAL, wxBOLD, FALSE, wxT(""))); wxStaticText* itemStaticText10 = new wxStaticText(headerPanel, ID_PANEL_CHECKING_STATIC_BALHEADER, - _("Total:"), wxDefaultPosition, wxDefaultSize, 0); + _("Total:")); wxBitmap pic(led_off_xpm); m_LED = new wxStaticBitmap(headerPanel, ID_PANEL_STOCK_UPDATE_LED, pic); - m_LED->SetToolTip(_("Idle")); wxBoxSizer* itemBoxSizerHHeader = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizerHHeader->Add(m_LED, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2); - itemBoxSizerHHeader->Add(itemStaticText9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 1); + itemBoxSizerHHeader->Add(m_LED, flags); + itemBoxSizerHHeader->Add(header_text, flags); - itemBoxSizerVHeader->Add(itemBoxSizerHHeader, 1, wxEXPAND, 1); - itemBoxSizerVHeader->Add(itemStaticText10, 0, wxALL, 1); + itemBoxSizerVHeader->Add(itemBoxSizerHHeader, flags); + itemBoxSizerVHeader->Add(itemStaticText10, flags); /* ---------------------- */ wxSplitterWindow* itemSplitterWindow10 = new wxSplitterWindow(this, @@ -166,92 +164,77 @@ listCtrlStock_ = new stocksListCtrl(this, itemSplitterWindow10, ID_PANEL_STOCKS_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_HRULES | wxLC_VRULES | wxLC_VIRTUAL | wxLC_SINGLE_SEL); - //listCtrlStock_->SetBackgroundColour(mmColors::listDetailsPanelColor); - listCtrlStock_->InsertColumn(COL_DATE, _("Purchase Date")); + long col_x; wxListItem itemCol; itemCol.SetImage(-1); - //itemCol.SetAlign(wxLIST_FORMAT_LEFT); - itemCol.SetText(_("Share Name")); - listCtrlStock_->InsertColumn(COL_NAME, itemCol); + const wxChar* columns[] = { _("Purchase Date"), + _("Share Name"), + _("Number of Shares"), + _("Gain/Loss"), + _("Value"), + _("Current"), + _("Notes")}; - itemCol.SetAlign(wxLIST_FORMAT_RIGHT); - itemCol.SetText(_("Number of Shares")); - - listCtrlStock_->InsertColumn(COL_NUMBER, itemCol); - - itemCol.SetAlign(wxLIST_FORMAT_RIGHT); - itemCol.SetText(_("Gain/Loss")); - - listCtrlStock_->InsertColumn(COL_GAIN_LOSS, itemCol); - - itemCol.SetAlign(wxLIST_FORMAT_RIGHT); - itemCol.SetText(_("Value")); - listCtrlStock_->InsertColumn(COL_VALUE, itemCol); - - itemCol.SetAlign(wxLIST_FORMAT_RIGHT); - itemCol.SetText(_("Current")); - listCtrlStock_->InsertColumn(COL_CURRENT, itemCol); - - itemCol.SetAlign(wxLIST_FORMAT_LEFT); - itemCol.SetText(_("Notes")); - listCtrlStock_->InsertColumn(COL_NOTES, itemCol); - - /* See if we can get data from inidb */ - long col_x = -2; for (int i = 0; i < COL_MAX; ++i) { + if (i==2 || i==3 || i==4 || i==5) + itemCol.SetAlign(wxLIST_FORMAT_RIGHT); + else + itemCol.SetAlign(wxLIST_FORMAT_LEFT); + + itemCol.SetText(wxString()<<columns[i]); + listCtrlStock_->InsertColumn(i, columns[i], (i<2 || i>5 ? wxLIST_FORMAT_LEFT : wxLIST_FORMAT_RIGHT)); + if (!mmDBWrapper::getINISettingValue(inidb_, wxString::Format(wxT("STOCKS_COL%i_WIDTH"), i), (i == 0 ? wxT("140"): wxT("-2"))).ToLong(&col_x)) (i == 0 ? col_x = 140 : col_x = -2); listCtrlStock_->SetColumnWidth(i, col_x); - }; + } - wxPanel* itemPanel12 = new wxPanel(itemSplitterWindow10, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL); + wxPanel* itemPanel12 = new wxPanel(itemSplitterWindow10, + ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL); itemSplitterWindow10->SplitHorizontally(listCtrlStock_, itemPanel12); itemSplitterWindow10->SetMinimumPaneSize(100); itemSplitterWindow10->SetSashGravity(1.0); - itemBoxSizer9->Add(itemSplitterWindow10, 1, wxGROW|wxALL, 1); + itemBoxSizer9->Add(itemSplitterWindow10, 1, wxGROW|wxALL, 5); wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); itemPanel12->SetSizer(itemBoxSizer4); - //itemPanel12->SetBackgroundColour(mmColors::listBackColor); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_LEFT|wxALL, 5); + itemBoxSizer4->Add(itemBoxSizer5, flags); wxButton* itemButton6 = new wxButton(itemPanel12, wxID_NEW); - itemBoxSizer5->Add(itemButton6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); + itemBoxSizer5->Add(itemButton6, flags); wxButton* itemButton81 = new wxButton(itemPanel12, wxID_EDIT); itemButton81->SetToolTip(_("Edit Stock Investment")); - itemBoxSizer5->Add(itemButton81, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); + itemBoxSizer5->Add(itemButton81, flags); itemButton81->Enable(false); wxButton* itemButton7 = new wxButton(itemPanel12, wxID_DELETE); itemButton7->SetToolTip(_("Delete Stock Investment")); - itemBoxSizer5->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); + itemBoxSizer5->Add(itemButton7, flags); itemButton7->Enable(false); - wxButton* itemButton8 = new wxButton(itemPanel12, wxID_REFRESH, _("&Refresh"), - wxDefaultPosition, wxDefaultSize, 0); + wxButton* itemButton8 = new wxButton(itemPanel12, wxID_REFRESH); itemButton8->SetToolTip(_("Refresh Stock Prices from Yahoo")); - itemBoxSizer5->Add(itemButton8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); + itemBoxSizer5->Add(itemButton8, flags); - wxButton* itemButton9 = new wxButton(itemPanel12, wxID_SETUP, _("&Settings"), - wxDefaultPosition, wxDefaultSize, 0); + wxButton* itemButton9 = new wxButton(itemPanel12, wxID_SETUP, _("&Settings")); itemButton9->SetToolTip(_("Change settings for automatic refresh")); - itemBoxSizer5->Add(itemButton9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4); + itemBoxSizer5->Add(itemButton9, flags); //Infobar-mini stock_details_short_ = new wxStaticText(itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, strLastUpdate_); - itemBoxSizer5->Add(stock_details_short_, 1, wxGROW|wxTOP, 12); + itemBoxSizer5->Add(stock_details_short_, flags); //Infobar stock_details_ = new wxStaticText(itemPanel12, - ID_PANEL_STOCKS_STATIC_DETAILS, wxT(""), + ID_PANEL_STOCKS_STATIC_DETAILS, wxT(" "), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_WORDWRAP); - itemBoxSizer4->Add(stock_details_, 1, wxGROW|wxLEFT|wxRIGHT, 14); + itemBoxSizer4->Add(stock_details_, 1, wxGROW|wxLEFT|wxTOP, 4); } void mmStocksPanel::initVirtualListControl() @@ -755,9 +738,9 @@ { additionInfo << wxT("|") << stockCurrentPriceStr << wxT(" - ") << stockavgPurchasePriceStr << wxT("|") << wxT(" = ") << stocktotalDifferenceStr << wxT (" * ") << stocktotalnumSharesStr << wxT (" = ") << stocktotalgainlossStr << wxT (" ( ") << stocktotalPercentageStr << wxT ('%') - << wxT (" )") //<< wxT ("\n") - << wxT ("\n") << getItem(selectedIndex_, COL_NOTES); + << wxT (" )") << wxT ("\n"); } + additionInfo << getItem(selectedIndex_, COL_NOTES); stock_details_->SetLabel(additionInfo); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-06-02 22:05:59
|
Revision: 2498 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2498&view=rev Author: vomikan Date: 2012-06-02 22:05:52 +0000 (Sat, 02 Jun 2012) Log Message: ----------- align Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-06-02 21:53:03 UTC (rev 2497) +++ trunk/mmex/src/stockspanel.cpp 2012-06-02 22:05:52 UTC (rev 2498) @@ -140,7 +140,7 @@ /* ---------------------- */ wxPanel* headerPanel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - itemBoxSizer9->Add(headerPanel, flags); + itemBoxSizer9->Add(headerPanel); wxBoxSizer* itemBoxSizerVHeader = new wxBoxSizer(wxVERTICAL); headerPanel->SetSizer(itemBoxSizerVHeader); @@ -161,7 +161,7 @@ itemBoxSizerHHeader->Add(m_LED, flags); itemBoxSizerHHeader->Add(header_text, flags); - itemBoxSizerVHeader->Add(itemBoxSizerHHeader, flags); + itemBoxSizerVHeader->Add(itemBoxSizerHHeader); itemBoxSizerVHeader->Add(itemStaticText10, flags); /* ---------------------- */ @@ -211,7 +211,7 @@ itemPanel12->SetSizer(itemBoxSizer4); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer4->Add(itemBoxSizer5, flags); + itemBoxSizer4->Add(itemBoxSizer5); wxButton* itemButton6 = new wxButton(itemPanel12, wxID_NEW); itemBoxSizer5->Add(itemButton6, flags); @@ -237,12 +237,12 @@ //Infobar-mini stock_details_short_ = new wxStaticText(itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS_MINI, strLastUpdate_); - itemBoxSizer5->Add(stock_details_short_, flags); + itemBoxSizer5->Add(stock_details_short_, flags);y //Infobar stock_details_ = new wxStaticText(itemPanel12, ID_PANEL_STOCKS_STATIC_DETAILS, wxT(" "), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_WORDWRAP); - itemBoxSizer4->Add(stock_details_, 1, wxGROW|wxLEFT|wxTOP, 4); + itemBoxSizer4->Add(stock_details_, 1, wxGROW|wxALL, 5); } void mmStocksPanel::initVirtualListControl() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vo...@us...> - 2012-10-27 17:49:35
|
Revision: 3086 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=3086&view=rev Author: vomikan Date: 2012-10-27 17:49:28 +0000 (Sat, 27 Oct 2012) Log Message: ----------- fix Modified Paths: -------------- trunk/mmex/src/stockspanel.cpp Modified: trunk/mmex/src/stockspanel.cpp =================================================================== --- trunk/mmex/src/stockspanel.cpp 2012-10-24 07:00:48 UTC (rev 3085) +++ trunk/mmex/src/stockspanel.cpp 2012-10-27 17:49:28 UTC (rev 3086) @@ -112,7 +112,7 @@ { int i = width; int col_x = listCtrlAccount_->GetColumnWidth(i); - core_->iniSettings_->GetIntSetting(wxString::Format(wxT("STOCKS_COL%d_WIDTH"), i),col_x); + core_->iniSettings_->SetIntSetting(wxString::Format(wxT("STOCKS_COL%d_WIDTH"), i),col_x); } void stocksListCtrl::OnItemResize(wxListEvent& event) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |