From: <vo...@us...> - 2012-09-07 12:36:35
|
Revision: 2964 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2964&view=rev Author: vomikan Date: 2012-09-07 12:36:24 +0000 (Fri, 07 Sep 2012) Log Message: ----------- filter added Modified Paths: -------------- branches/0.9.9.0/mmex/src/assetspanel.cpp branches/0.9.9.0/mmex/src/assetspanel.h Modified: branches/0.9.9.0/mmex/src/assetspanel.cpp =================================================================== --- branches/0.9.9.0/mmex/src/assetspanel.cpp 2012-09-07 07:25:49 UTC (rev 2963) +++ branches/0.9.9.0/mmex/src/assetspanel.cpp 2012-09-07 12:36:24 UTC (rev 2964) @@ -42,6 +42,7 @@ EVT_BUTTON(wxID_NEW, mmAssetsPanel::OnNewAsset) EVT_BUTTON(wxID_EDIT, mmAssetsPanel::OnEditAsset) EVT_BUTTON(wxID_DELETE, mmAssetsPanel::OnDeleteAsset) + EVT_MENU(wxID_ANY, mmAssetsPanel::OnViewPopupSelected) END_EVENT_TABLE() /*******************************************************/ BEGIN_EVENT_TABLE(assetsListCtrl, wxListCtrl) @@ -106,6 +107,7 @@ { m_selected_col = 0; m_asc = true; + m_cp->filter_ = wxT(" 'Property','Automobile','Household Object','Art','Jewellery','Cash','Other' "); } void mmAssetsPanel::CreateControls() @@ -123,12 +125,23 @@ int font_size = this->GetFont().GetPointSize() + 2; - wxStaticText* itemStaticText9 = new wxStaticText( headerPanel, wxID_ANY, _("Assets")); + wxStaticText* itemStaticText9 = new wxStaticText( headerPanel, wxID_STATIC, _("Assets")); itemStaticText9->SetFont(wxFont(font_size, wxSWISS, wxNORMAL, wxBOLD, FALSE, wxT(""))); + itemBoxSizerVHeader->Add(itemStaticText9, 0, wxALL, 1); + wxBoxSizer* itemBoxSizerHHeader2 = new wxBoxSizer(wxHORIZONTAL); + itemBoxSizerVHeader->Add(itemBoxSizerHHeader2); + + wxBitmap itemStaticBitmap(rightarrow_xpm); + wxStaticBitmap* itemStaticBitmap3 = new wxStaticBitmap( headerPanel, wxID_STATIC, itemStaticBitmap); + itemBoxSizerHHeader2->Add(itemStaticBitmap3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + //itemStaticBitmap3->Connect(ID_PANEL_CHECKING_STATIC_BITMAP_VIEW, wxEVT_RIGHT_DOWN, wxMouseEventHandler(mmAssetsPanel::OnFilterResetToViewAll), NULL, this); + itemStaticBitmap3->Connect(wxID_STATIC, wxEVT_LEFT_DOWN, wxMouseEventHandler(mmAssetsPanel::OnMouseLeftDown), NULL, this); + + itemStaticTextMainFilter_ = new wxStaticText( headerPanel, wxID_STATIC, _("All")); + itemBoxSizerHHeader2->Add(itemStaticTextMainFilter_, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + wxStaticText* itemStaticText10 = new wxStaticText( headerPanel, IDC_PANEL_CHECKING_STATIC_BALHEADER, _("Total:")); - - itemBoxSizerVHeader->Add(itemStaticText9, 0, wxALL, 1); itemBoxSizerVHeader->Add(itemStaticText10, 0, wxALL, 1); /* ---------------------- */ @@ -201,7 +214,6 @@ wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); assets_panel->SetSizer(itemBoxSizer4); - //assets_panel->SetBackgroundColour(mmColors::listBackColor); wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL); itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_LEFT|wxALL, 3); @@ -254,7 +266,8 @@ wxString lbl = wxString::Format(_("Total: %s"), balance.c_str()); header->SetLabel(lbl); - const wxString sql = wxString::FromUTF8(SELECT_ALL_FROM_ASSETS_V1) + const wxString sql = wxString::FromUTF8(SELECT_ALL_FROM_ASSETS_V1) + + wxString::Format(wxT(" where ASSETTYPE in ( %s ) "), filter_) + wxT(" order by ") + (wxString()<<col+1) + (!asc ? wxT(" desc") : wxT(" ")); @@ -506,3 +519,52 @@ doRefreshItems(trx_id); } + +void mmAssetsPanel::OnMouseLeftDown ( wxMouseEvent& event ) +{ + wxMenu* menu = new wxMenu; + menu->Append(new wxMenuItem(menu, 0, wxGetTranslation(wxTRANSLATE("All")))); + + size_t size = sizeof(ASSET_TYPE)/sizeof(wxString); + for(size_t i = 0; i < size; ++i) + { + wxMenuItem* menuItem = new wxMenuItem(menu, i+1, wxGetTranslation(ASSET_TYPE[i])); + menu->Append(menuItem); + } + PopupMenu(menu); + + event.Skip(); +} + +void mmAssetsPanel::OnViewPopupSelected(wxCommandEvent& event) +{ + int evt = event.GetId(); + + filter_ = wxT(""); + wxString label; + + size_t size = sizeof(ASSET_TYPE)/sizeof(wxString); + for(size_t i = 0; i < size; ++i) + { + if (evt == 0 || evt == i+1) + filter_ << wxT("'") << ASSET_TYPE[i] << wxT("'") << wxT(","); + if (evt == i+1) label = ASSET_TYPE[i]; + } + filter_.RemoveLast(1); + + if (evt == 0) + itemStaticTextMainFilter_->SetLabel(_("All")); + else + itemStaticTextMainFilter_->SetLabel(wxGetTranslation(label)); + + int trx_id = -1; + //if (selectedIndex_>=0) trx_id = m_cp->getTrans()[selectedIndex_].id_; + + m_listCtrlAssets->doRefreshItems(trx_id); + +/* core_->db_.get()->Begin(); + mmDBWrapper::setInfoSettingValue(core_->db_.get(), + wxString::Format(wxT("CHECK_FILTER_ID_%ld"), (long)m_AccountID), m_currentView); + core_->db_.get()->Commit(); +*/ +} Modified: branches/0.9.9.0/mmex/src/assetspanel.h =================================================================== --- branches/0.9.9.0/mmex/src/assetspanel.h 2012-09-07 07:25:49 UTC (rev 2963) +++ branches/0.9.9.0/mmex/src/assetspanel.h 2012-09-07 12:36:24 UTC (rev 2964) @@ -47,6 +47,7 @@ void OnEditAsset(wxCommandEvent& event); void OnDeleteAsset(wxCommandEvent& event); void InitVariables(); + void doRefreshItems(int trx_id = -1); private: wxListItemAttr m_attr1; // style1 @@ -67,7 +68,6 @@ void OnListItemSelected(wxListEvent& event); void OnListItemDeselected(wxListEvent& event); void OnColClick(wxListEvent& event); - void doRefreshItems(int trx_id = -1); void OnItemResize(wxListEvent& event); }; @@ -101,6 +101,8 @@ const std::vector<mmAssetHolder>& getTrans() const { return m_trans; } void updateExtraAssetData(int selIndex); assetsListCtrl* m_listCtrlAssets; + wxStaticText* itemStaticTextMainFilter_; + wxString filter_; private: boost::scoped_ptr<wxImageList> m_imageList; @@ -113,6 +115,7 @@ void OnNewAsset(wxCommandEvent& event); void OnDeleteAsset(wxCommandEvent& event); void OnEditAsset(wxCommandEvent& event); + void OnMouseLeftDown ( wxMouseEvent& event ); void OnViewPopupSelected(wxCommandEvent& event); void sortTable(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |