From: <vo...@us...> - 2012-07-17 21:57:57
|
Revision: 2781 http://moneymanagerex.svn.sourceforge.net/moneymanagerex/?rev=2781&view=rev Author: vomikan Date: 2012-07-17 21:57:50 +0000 (Tue, 17 Jul 2012) Log Message: ----------- fix Modified Paths: -------------- branches/0.9.9.0/mmex/src/mmcheckingpanel.cpp Modified: branches/0.9.9.0/mmex/src/mmcheckingpanel.cpp =================================================================== --- branches/0.9.9.0/mmex/src/mmcheckingpanel.cpp 2012-07-17 21:04:45 UTC (rev 2780) +++ branches/0.9.9.0/mmex/src/mmcheckingpanel.cpp 2012-07-17 21:57:50 UTC (rev 2781) @@ -1124,7 +1124,7 @@ if (m_listCtrlAccount->GetItemCount() <= m_listCtrlAccount->m_selectedIndex) m_listCtrlAccount->m_selectedIndex--; - if (m_trans.size() > 1) + if (m_trans.size() > 0) { if (g_asc) m_listCtrlAccount->EnsureVisible(static_cast<long>(m_trans.size()) - 1); @@ -1573,7 +1573,6 @@ } m_cp->setAccountSummary(); - } //---------------------------------------------------------------------------- @@ -1656,6 +1655,8 @@ */ int TransactionListCtrl::OnGetItemColumnImage(long item, long column) const { + if (m_cp->m_trans.size() < 1) return ICON_NONE; + int res = -1; if(column == COL_DATE_OR_TRANSACTION_ID) { @@ -1828,16 +1829,17 @@ if ((long)m_cp->m_trans.size() < topItemIndex && (long)m_cp->m_trans.size() < m_selectedIndex) - m_selectedIndex--; + g_asc ? m_selectedIndex -- : m_selectedIndex; - EnsureVisible(topItemIndex); + if (m_selectedIndex >= 0 && m_cp->m_trans.size() > 0) + EnsureVisible(topItemIndex); } //---------------------------------------------------------------------------- void TransactionListCtrl::OnDeleteTransaction(wxCommandEvent& /*event*/) { - if (m_selectedIndex == -1) //check if a transaction is selected - return; + //check if a transaction is selected + if (m_selectedIndex < 0) return; //ask if they really want to delete wxMessageDialog msgDlg(this,_("Do you really want to delete the selected transaction?"), @@ -1847,7 +1849,7 @@ return; //find the topmost visible item - this will be used to set // where to display the list again after refresh - long topItemIndex = GetTopItem(); + //long topItemIndex = GetTopItem(); if ((m_selectedForCopy > -1) && (m_selectedForCopy == m_cp->m_trans[m_selectedIndex]->transactionID())) m_selectedForCopy = -1; @@ -1859,13 +1861,9 @@ //initialize the transaction list to redo balances and images m_cp->initVirtualListControl(); - if (m_cp->m_trans.size() > 0) + if (m_cp->m_trans.size() >= 0) { - //refresh the items showing from the point of the transaction delete down - //the transactions above the deleted transaction won't change so they - // don't need to be refreshed - if (m_selectedIndex +1 > (long)(m_cp->m_trans.size()) && m_selectedIndex > 0) - m_selectedIndex--; + g_asc ? m_selectedIndex -- : m_selectedIndex; refreshVisualList(); } else @@ -1876,7 +1874,9 @@ m_cp->updateExtraTransactionData(m_selectedIndex); } } - EnsureVisible(topItemIndex); + + if (m_selectedIndex >= 0 && m_cp->m_trans.size() > 0) + EnsureVisible(m_selectedIndex); } //---------------------------------------------------------------------------- @@ -1936,7 +1936,7 @@ else m_selectedIndex = -1; - if(m_selectedIndex >= 0) + if (m_selectedIndex >= 0 && m_cp->m_trans.size() > 0) { SetItemState(m_selectedIndex, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); SetItemState(m_selectedIndex, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED); @@ -2014,7 +2014,7 @@ m_cp->initVirtualListControl(); if (m_cp->m_trans.size() > 0) RefreshItems(0, static_cast<long>(m_cp->m_trans.size()) - 1); - if (m_selectedIndex != -1) + if (m_selectedIndex > 0 && m_cp->m_trans.size() > 0) { SetItemState(m_selectedIndex, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); SetItemState(m_selectedIndex, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |