From 161bb592ce9d58fecf0b906a0f04019a8b04e14b Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Thu, 1 Nov 2018 18:22:22 +0100 Subject: [PATCH] Use wxVector instead of wxArrayInt --- include/wx/propgrid/propgridpagestate.h | 6 ++-- src/propgrid/propgrid.cpp | 40 ++++++++++++------------- src/propgrid/propgridpagestate.cpp | 7 ++--- 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/include/wx/propgrid/propgridpagestate.h b/include/wx/propgrid/propgridpagestate.h index 2dc6d1eb27..246f23dec0 100644 --- a/include/wx/propgrid/propgridpagestate.h +++ b/include/wx/propgrid/propgridpagestate.h @@ -642,13 +642,13 @@ protected: wxPGHashMapS2P m_dictName; // List of column widths (first column does not include margin). - wxArrayInt m_colWidths; + wxVector m_colWidths; // List of indices of columns the user can edit by clicking it. - wxArrayInt m_editableColumns; + wxVector m_editableColumns; // Column proportions. - wxArrayInt m_columnProportions; + wxVector m_columnProportions; double m_fSplitterX; diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index 1981069b3b..826317cb4d 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -137,6 +137,22 @@ DeletedObjects gs_deletedEditorObjects; } // anonymous namespace #endif + // Utility to check if specific item is in a vector. +template +static bool wxPGItemExistsInVector(const wxVector& vector, const T& item) +{ +#if wxUSE_STL + return std::find(vector.begin(), vector.end(), item) != vector.end(); +#else + for ( wxVector::const_iterator it = vector.begin(); it != vector.end(); ++it ) + { + if ( *it == item ) + return true; + } + return false; +#endif // wxUSE_STL/!wxUSE_STL +} + // ----------------------------------------------------------------------- #if wxUSE_INTL @@ -802,7 +818,7 @@ bool wxPropertyGrid::DoSelectAndEdit( wxPGProperty* prop, // send event DoClearSelection(false, wxPG_SEL_NO_REFRESH); - if ( m_pState->m_editableColumns.Index(colIndex) == wxNOT_FOUND ) + if ( !wxPGItemExistsInVector(m_pState->m_editableColumns, colIndex) ) { res = DoAddToSelection(prop, selFlags); } @@ -972,7 +988,7 @@ void wxPropertyGrid::MakeColumnEditable( unsigned int column, wxS("Set wxPG_PROP_READONLY property flag instead") ); - wxArrayInt& cols = m_pState->m_editableColumns; + wxVector& cols = m_pState->m_editableColumns; if ( editable ) { @@ -2145,7 +2161,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc, const wxPGProperty* firstSelected = GetSelection(); const wxPropertyGridPageState* state = m_pState; - const wxArrayInt& colWidths = state->m_colWidths; + const wxVector& colWidths = state->m_colWidths; const unsigned int colCount = state->GetColumnCount(); // TODO: Only render columns that are within clipping region. @@ -5587,24 +5603,6 @@ void wxPropertyGrid::ClearActionTriggers( int action ) while ( didSomething ); } -#if WXWIN_COMPATIBILITY_3_0 -// Utility to check if specific item is in a vector. -template -static bool wxPGItemExistsInVector(const wxVector& vector, const T& item) -{ -#if wxUSE_STL - return std::find(vector.begin(), vector.end(), item) != vector.end(); -#else - for (wxVector::const_iterator it = vector.begin(); it != vector.end(); ++it) - { - if ( *it == item ) - return true; - } - return false; -#endif // wxUSE_STL/!wxUSE_STL -} -#endif // WXWIN_COMPATIBILITY_3_0 - void wxPropertyGrid::HandleKeyEvent( wxKeyEvent &event, bool fromChild ) { // diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 679c39b405..9833b65dc9 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -1219,11 +1219,8 @@ void wxPropertyGridPageState::ResetColumnSizes( int setSplitterFlags ) void wxPropertyGridPageState::SetColumnCount( int colCount ) { wxASSERT( colCount >= 2 ); - m_colWidths.SetCount( colCount, wxPG_DRAG_MARGIN ); - m_columnProportions.SetCount( colCount, 1 ); - if ( m_colWidths.size() > (unsigned int)colCount ) - m_colWidths.RemoveAt( m_colWidths.size()-1, - m_colWidths.size() - colCount ); + m_colWidths.resize(colCount, wxPG_DRAG_MARGIN); + m_columnProportions.resize(colCount, 1); if ( m_pPropGrid->GetState() == this ) m_pPropGrid->RecalculateVirtualSize();