refresh the grid after resetting the columns positions to the default order
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2289,10 +2289,9 @@ private:
|
|||||||
// the sorting indicator to effectively show
|
// the sorting indicator to effectively show
|
||||||
void UpdateColumnSortingIndicator(int col);
|
void UpdateColumnSortingIndicator(int col);
|
||||||
|
|
||||||
// update column right positions after their order changed (does nothing if
|
// update the grid after changing the columns order (common part of
|
||||||
// we only use the default widths as in this case m_colRights is not used
|
// SetColPos() and ResetColPos())
|
||||||
// neither)
|
void RefreshAfterColPosChange();
|
||||||
void UpdateColumnRights();
|
|
||||||
|
|
||||||
|
|
||||||
// return the position (not index) of the column at the given logical pixel
|
// return the position (not index) of the column at the given logical pixel
|
||||||
|
@@ -6842,11 +6842,13 @@ void wxGrid::DoEndMoveCol(int pos)
|
|||||||
m_dragRowOrCol = -1;
|
m_dragRowOrCol = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGrid::UpdateColumnRights()
|
void wxGrid::RefreshAfterColPosChange()
|
||||||
{
|
{
|
||||||
if ( m_colWidths.empty() )
|
// recalculate the column rights as the column positions have changed,
|
||||||
return;
|
// unless we calculate them dynamically because all columns widths are the
|
||||||
|
// same and it's easy to do
|
||||||
|
if ( !m_colWidths.empty() )
|
||||||
|
{
|
||||||
int colRight = 0;
|
int colRight = 0;
|
||||||
for ( int colPos = 0; colPos < m_numCols; colPos++ )
|
for ( int colPos = 0; colPos < m_numCols; colPos++ )
|
||||||
{
|
{
|
||||||
@@ -6855,6 +6857,21 @@ void wxGrid::UpdateColumnRights()
|
|||||||
colRight += m_colWidths[colID];
|
colRight += m_colWidths[colID];
|
||||||
m_colRights[colID] = colRight;
|
m_colRights[colID] = colRight;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// and make the changes visible
|
||||||
|
if ( m_useNativeHeader )
|
||||||
|
{
|
||||||
|
if ( m_colAt.empty() )
|
||||||
|
GetColHeader()->ResetColumnsOrder();
|
||||||
|
else
|
||||||
|
GetColHeader()->SetColumnsOrder(m_colAt);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_colWindow->Refresh();
|
||||||
|
}
|
||||||
|
m_gridWin->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGrid::SetColPos(int idx, int pos)
|
void wxGrid::SetColPos(int idx, int pos)
|
||||||
@@ -6869,25 +6886,14 @@ void wxGrid::SetColPos(int idx, int pos)
|
|||||||
|
|
||||||
wxHeaderCtrl::MoveColumnInOrderArray(m_colAt, idx, pos);
|
wxHeaderCtrl::MoveColumnInOrderArray(m_colAt, idx, pos);
|
||||||
|
|
||||||
// also recalculate the column rights as the column positions have changed
|
RefreshAfterColPosChange();
|
||||||
UpdateColumnRights();
|
|
||||||
|
|
||||||
// and make the changes visible
|
|
||||||
if ( m_useNativeHeader )
|
|
||||||
GetColHeader()->SetColumnsOrder(m_colAt);
|
|
||||||
else
|
|
||||||
m_colWindow->Refresh();
|
|
||||||
m_gridWin->Refresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGrid::ResetColPos()
|
void wxGrid::ResetColPos()
|
||||||
{
|
{
|
||||||
m_colAt.clear();
|
m_colAt.clear();
|
||||||
|
|
||||||
if ( m_useNativeHeader )
|
RefreshAfterColPosChange();
|
||||||
GetColHeader()->ResetColumnsOrder();
|
|
||||||
else
|
|
||||||
m_colWindow->Refresh();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGrid::EnableDragColMove( bool enable )
|
void wxGrid::EnableDragColMove( bool enable )
|
||||||
|
Reference in New Issue
Block a user