From: <gua...@us...> - 2013-10-01 12:47:09
|
Revision: 4661 http://sourceforge.net/p/moneymanagerex/code/4661 Author: guanlisheng Date: 2013-10-01 12:47:06 +0000 (Tue, 01 Oct 2013) Log Message: ----------- sort for asset panel Modified Paths: -------------- trunk/src/assetspanel.cpp trunk/src/assetspanel.h trunk/src/budgetingpanel.cpp trunk/src/budgetingpanel.h trunk/src/mmhelppanel.cpp trunk/src/mmhelppanel.h trunk/src/mmhomepagepanel.cpp trunk/src/mmhomepagepanel.h trunk/src/mmpanelbase.h trunk/src/mmreportspanel.cpp trunk/src/mmreportspanel.h trunk/src/stockspanel.cpp Modified: trunk/src/assetspanel.cpp =================================================================== --- trunk/src/assetspanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/assetspanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -405,7 +405,47 @@ void mmAssetsPanel::sortTable() { std::sort(this->m_assets.begin(), this->m_assets.end()); - // TODO + switch (this->m_listCtrlAssets->m_selected_col) + { + case COL_NAME: + std::stable_sort(this->m_assets.begin(), this->m_assets.end() + , [] (const Model_Asset::Data& x, const Model_Asset::Data& y) + { + return x.ASSETNAME < y.ASSETNAME; + }); + break; + case COL_TYPE: + std::stable_sort(this->m_assets.begin(), this->m_assets.end() + , [](const Model_Asset::Data& x, const Model_Asset::Data& y) + { + return x.ASSETTYPE < y.ASSETTYPE; + }); + break; + case COL_VALUE: + std::stable_sort(this->m_assets.begin(), this->m_assets.end() + , [](const Model_Asset::Data& x, const Model_Asset::Data& y) + { + return Model_Asset::value(x) < Model_Asset::value(y); + }); + break; + case COL_DATE: + std::stable_sort(this->m_assets.begin(), this->m_assets.end() + , [](const Model_Asset::Data& x, const Model_Asset::Data& y) + { + return x.STARTDATE < y.STARTDATE; + }); + break; + case COL_NOTES: + std::stable_sort(this->m_assets.begin(), this->m_assets.end() + , [](const Model_Asset::Data& x, const Model_Asset::Data& y) + { + return x.NOTES < y.NOTES; + }); + default: + break; + } + + if (this->m_listCtrlAssets->m_asc) std::reverse(this->m_assets.begin(), this->m_assets.end()); } int mmAssetsPanel::initVirtualListControl(int id, int col, bool asc) Modified: trunk/src/assetspanel.h =================================================================== --- trunk/src/assetspanel.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/assetspanel.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -63,7 +63,7 @@ // TODO enum EColumn { - COL_NAME, + COL_NAME = 0, COL_DATE, COL_TYPE, COL_VALUE, Modified: trunk/src/budgetingpanel.cpp =================================================================== --- trunk/src/budgetingpanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/budgetingpanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -262,6 +262,10 @@ itemBoxSizer2->Add(listCtrlBudget_, 1, wxGROW | wxALL, 1); } +void mmBudgetingPanel::sortTable() +{ +} + bool mmBudgetingPanel::DisplayEntryAllowed(mmBudgetEntryHolder& budgetEntry) { bool result = false; Modified: trunk/src/budgetingpanel.h =================================================================== --- trunk/src/budgetingpanel.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/budgetingpanel.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -144,6 +144,7 @@ const wxString& name = wxPanelNameStr); void CreateControls(); + void sortTable(); bool DisplayEntryAllowed(mmBudgetEntryHolder& budgetEntry); void UpdateBudgetHeading(); Modified: trunk/src/mmhelppanel.cpp =================================================================== --- trunk/src/mmhelppanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmhelppanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -103,6 +103,11 @@ } } +void mmHelpPanel::sortTable() +{ + +} + void mmHelpPanel::OnHelpPageBack(wxCommandEvent& /*event*/) { if (htmlWindow_->HistoryCanBack() ) Modified: trunk/src/mmhelppanel.h =================================================================== --- trunk/src/mmhelppanel.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmhelppanel.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -48,6 +48,7 @@ const wxString& name = wxPanelNameStr); void CreateControls(); + virtual void sortTable(); void OnHelpPageBack(wxCommandEvent& event); void OnHelpPageForward(wxCommandEvent& event); Modified: trunk/src/mmhomepagepanel.cpp =================================================================== --- trunk/src/mmhomepagepanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmhomepagepanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -609,6 +609,10 @@ itemBoxSizer2->Add(htmlWindow_, 1, wxGROW|wxALL, 0); } +void mmHomePagePanel::sortTable() +{ +} + void mmHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link) { mmGUIFrame* frame = wxGetApp().m_frame; Modified: trunk/src/mmhomepagepanel.h =================================================================== --- trunk/src/mmhomepagepanel.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmhomepagepanel.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -75,6 +75,7 @@ mmHtmlWindow* htmlWindow_; mmDateRange* date_range_; void CreateControls(); + void sortTable(); void createFrames(); wxString prepareTemplate(const wxString& left, const wxString& right); wxString html_text_; Modified: trunk/src/mmpanelbase.h =================================================================== --- trunk/src/mmpanelbase.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmpanelbase.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -51,15 +51,15 @@ } public: wxListItemAttr *attr1_, *attr2_; // style1 + long m_selected_row; + int m_selected_col; + bool m_asc; + public: virtual wxListItemAttr* OnGetItemAttr(long row) const { return (row % 2) ? attr2_ : attr1_; } -protected: - long m_selected_row; - int m_selected_col; - bool m_asc; }; class mmPanelBase : public wxPanel @@ -83,6 +83,8 @@ else this->Freeze(); } +public: + virtual void sortTable() = 0; }; //---------------------------------------------------------------------------- #endif // _MM_EX_PANELBASE_H_ Modified: trunk/src/mmreportspanel.cpp =================================================================== --- trunk/src/mmreportspanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmreportspanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -87,6 +87,10 @@ itemBoxSizer2->Add(htmlWindow_, 1, wxGROW|wxALL, 1); } +void mmReportsPanel::sortTable() +{ +} + void mmReportsPanel::OnLinkClicked(wxHtmlLinkEvent& event) { wxHtmlLinkInfo link_info = event.GetLinkInfo(); Modified: trunk/src/mmreportspanel.h =================================================================== --- trunk/src/mmreportspanel.h 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/mmreportspanel.h 2013-10-01 12:47:06 UTC (rev 4661) @@ -46,6 +46,7 @@ const wxString& name = wxPanelNameStr); void CreateControls(); + void sortTable(); wxString getReportText(); Modified: trunk/src/stockspanel.cpp =================================================================== --- trunk/src/stockspanel.cpp 2013-10-01 11:59:46 UTC (rev 4660) +++ trunk/src/stockspanel.cpp 2013-10-01 12:47:06 UTC (rev 4661) @@ -410,6 +410,10 @@ updateExtraStocksData(-1); } +void mmStocksPanel::sortTable() +{ +} + int StocksListCtrl::initVirtualListControl(int id, int col, bool asc) { //Just for testing new classes This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |