From b4ab8de24873cd077d3255303cea88d6105860a8 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 19 Feb 2023 23:34:57 +0100 Subject: [PATCH] Avoid deprecation warnings due to recent wxPropertyGrid changes Rename the new overload of DoSetSplitterPosition() to use a different name: not only this avoids deprecation warnings that broke all the CI builds, but it also makes things more clear and simpler to use as all the derived classes don't need to override both the deprecated overload and the new one to avoid warnings about hiding a base class virtual function and can just override the new one. Also remove the default value "Refresh" for the flags which seems to be inconsistent with the default value "Null" used elsewhere and prefer to specify it explicitly. --- include/wx/propgrid/manager.h | 14 +++----------- include/wx/propgrid/propgrid.h | 8 ++++---- include/wx/propgrid/propgridpagestate.h | 14 ++++++++------ interface/wx/propgrid/propgridpagestate.h | 6 +++--- src/propgrid/manager.cpp | 21 ++++++++++----------- src/propgrid/propgrid.cpp | 16 ++++++++-------- src/propgrid/propgridiface.cpp | 2 +- src/propgrid/propgridpagestate.cpp | 15 +++++++-------- 8 files changed, 44 insertions(+), 52 deletions(-) diff --git a/include/wx/propgrid/manager.h b/include/wx/propgrid/manager.h index 97cee24859..5beb6f778e 100644 --- a/include/wx/propgrid/manager.h +++ b/include/wx/propgrid/manager.h @@ -129,17 +129,9 @@ public: protected: // Propagate to other pages -#if WXWIN_COMPATIBILITY_3_2 - // TODO: Fix and enable deprecation message - // wxDEPRECATED_MSG("use DoSetSplitterPosition with flags argument as wxPGSplitterPositionFlags") - virtual void DoSetSplitterPosition(int pos, int splitterColumn, int flags) override - { - DoSetSplitterPosition(pos, splitterColumn, static_cast(flags)); - } -#endif // WXWIN_COMPATIBILITY_3_2 - virtual void DoSetSplitterPosition(int pos, - int splitterColumn = 0, - wxPGSplitterPositionFlags flags = wxPGSplitterPositionFlags::Refresh) override; + virtual void DoSetSplitter(int pos, + int splitterColumn, + wxPGSplitterPositionFlags flags) override; // Page label (may be referred as name in some parts of documentation). // Can be set in constructor, or passed in diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 43ac94eb09..92db45c0b2 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -956,7 +956,7 @@ public: // than desired splitter position, especially when sizers are being used. void SetSplitterPosition( int newXPos, int col = 0 ) { - DoSetSplitterPosition(newXPos, col, wxPGSplitterPositionFlags::Refresh); + DoSetSplitter(newXPos, col, wxPGSplitterPositionFlags::Refresh); } // Sets the property sorting function. @@ -1774,9 +1774,9 @@ protected: void DoSetSelection( const wxArrayPGProperty& newSelection, wxPGSelectPropertyFlags selFlags = wxPGSelectPropertyFlags::Null ); - void DoSetSplitterPosition( int newxpos, - int splitterIndex = 0, - wxPGSplitterPositionFlags flags = wxPGSplitterPositionFlags::Refresh ); + void DoSetSplitter( int newxpos, + int splitterIndex = 0, + wxPGSplitterPositionFlags flags = wxPGSplitterPositionFlags::Refresh ); bool DoAddToSelection( wxPGProperty* prop, wxPGSelectPropertyFlags selFlags = wxPGSelectPropertyFlags::Null ); diff --git a/include/wx/propgrid/propgridpagestate.h b/include/wx/propgrid/propgridpagestate.h index be20677509..1dbcd28da4 100644 --- a/include/wx/propgrid/propgridpagestate.h +++ b/include/wx/propgrid/propgridpagestate.h @@ -95,7 +95,7 @@ constexpr bool operator!(wxPGSelectPropertyFlags a) // ----------------------------------------------------------------------- -// DoSetSplitterPosition() flags +// DoSetSplitter() flags enum class wxPGSplitterPositionFlags : int { @@ -472,16 +472,18 @@ public: // This needs to be overridden in grid used the manager so that splitter // changes can be propagated to other pages. + virtual void DoSetSplitter(int pos, + int splitterColumn = 0, + wxPGSplitterPositionFlags + flags = wxPGSplitterPositionFlags::Null); + #if WXWIN_COMPATIBILITY_3_2 - wxDEPRECATED_MSG("use DoSetSplitterPosition with flags argument as wxPGSplitterPositionFlags") + wxDEPRECATED_MSG("use DoSetSplitter() taking wxPGSplitterPositionFlags") virtual void DoSetSplitterPosition(int pos, int splitterColumn, int flags) { - DoSetSplitterPosition(pos, splitterColumn, static_cast(flags)); + DoSetSplitter(pos, splitterColumn, static_cast(flags)); } #endif // WXWIN_COMPATIBILITY_3_2 - virtual void DoSetSplitterPosition(int pos, - int splitterColumn = 0, - wxPGSplitterPositionFlags flags = wxPGSplitterPositionFlags::Null); bool EnableCategories( bool enable ); diff --git a/interface/wx/propgrid/propgridpagestate.h b/interface/wx/propgrid/propgridpagestate.h index 90876b8941..fbec44e56f 100644 --- a/interface/wx/propgrid/propgridpagestate.h +++ b/interface/wx/propgrid/propgridpagestate.h @@ -349,9 +349,9 @@ public: This needs to be overridden in grid used the manager so that splitter changes can be propagated to other pages. */ - virtual void DoSetSplitterPosition( int pos, - int splitterColumn = 0, - int flags = 0 ); + virtual void DoSetSplitter( int pos, + int splitterColumn = 0, + wxPGSplitterPositionFlags flags = 0 ); bool EnableCategories( bool enable ); diff --git a/src/propgrid/manager.cpp b/src/propgrid/manager.cpp index c8de74a2d5..747638a0b2 100644 --- a/src/propgrid/manager.cpp +++ b/src/propgrid/manager.cpp @@ -366,17 +366,15 @@ void wxPropertyGridPage::SetSplitterPosition( int splitterPos, int col ) if ( pg->GetState() == this ) pg->SetSplitterPosition(splitterPos); else - DoSetSplitterPosition(splitterPos, col, wxPGSplitterPositionFlags::Null); + DoSetSplitter(splitterPos, col, wxPGSplitterPositionFlags::Null); } -void wxPropertyGridPage::DoSetSplitterPosition(int pos, int splitterColumn, wxPGSplitterPositionFlags flags ) +void wxPropertyGridPage::DoSetSplitter(int pos, int splitterColumn, wxPGSplitterPositionFlags flags ) { if ( !!(flags & wxPGSplitterPositionFlags::AllPages) && m_manager->GetPageCount() ) m_manager->SetSplitterPosition( pos, splitterColumn ); else - wxPropertyGridPageState::DoSetSplitterPosition( pos, - splitterColumn, - flags ); + wxPropertyGridPageState::DoSetSplitter( pos, splitterColumn, flags ); } // ----------------------------------------------------------------------- @@ -512,9 +510,9 @@ private: x += colWidth; - pg->DoSetSplitterPosition(x, col, - wxPGSplitterPositionFlags::Refresh | - wxPGSplitterPositionFlags::FromEvent); + pg->DoSetSplitter(x, col, + wxPGSplitterPositionFlags::Refresh | + wxPGSplitterPositionFlags::FromEvent); } void OnResizing(wxHeaderCtrlEvent& evt) @@ -2316,8 +2314,8 @@ void wxPropertyGridManager::SetSplitterPosition( int pos, int splitterColumn ) for ( size_t i = 0; i < GetPageCount(); i++ ) { wxPropertyGridPage* page = GetPage(i); - page->DoSetSplitterPosition( pos, splitterColumn, - wxPGSplitterPositionFlags::Refresh ); + page->DoSetSplitter( pos, splitterColumn, + wxPGSplitterPositionFlags::Refresh ); } #if wxUSE_HEADERCTRL @@ -2332,7 +2330,8 @@ void wxPropertyGridManager::SetPageSplitterPosition( int page, int pos, int column ) { - GetPage(page)->DoSetSplitterPosition( pos, column ); + GetPage(page)->DoSetSplitter( pos, column, + wxPGSplitterPositionFlags::Refresh ); #if wxUSE_HEADERCTRL if ( m_pHeaderCtrl && m_pHeaderCtrl->IsShown() ) diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index 8869a12e4d..d09d3f1c71 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -2783,9 +2783,9 @@ void wxPropertyGrid::SwitchState( wxPropertyGridPageState* pNewState ) // Call to SetSplitterPosition will always disable splitter auto-centering // if parent window is shown. -void wxPropertyGrid::DoSetSplitterPosition( int newxpos, - int splitterIndex, - wxPGSplitterPositionFlags flags ) +void wxPropertyGrid::DoSetSplitter( int newxpos, + int splitterIndex, + wxPGSplitterPositionFlags flags ) { if ( newxpos < wxPG_DRAG_MARGIN ) return; @@ -2793,7 +2793,7 @@ void wxPropertyGrid::DoSetSplitterPosition( int newxpos, if ( !!(flags & wxPGSplitterPositionFlags::FromEvent) ) m_pState->m_dontCenterSplitter = true; - m_pState->DoSetSplitterPosition(newxpos, splitterIndex, flags); + m_pState->DoSetSplitter(newxpos, splitterIndex, flags); if ( !!(flags & wxPGSplitterPositionFlags::Refresh) ) { @@ -5001,10 +5001,10 @@ bool wxPropertyGrid::HandleMouseMove( int x, unsigned int y, if ( newSplitterX != splitterX ) { // Move everything - DoSetSplitterPosition(newSplitterX, - m_draggedSplitter, - wxPGSplitterPositionFlags::Refresh | - wxPGSplitterPositionFlags::FromEvent); + DoSetSplitter(newSplitterX, + m_draggedSplitter, + wxPGSplitterPositionFlags::Refresh | + wxPGSplitterPositionFlags::FromEvent); SendEvent(wxEVT_PG_COLS_RESIZED, wxNullProperty); SendEvent(wxEVT_PG_COL_DRAGGING, diff --git a/src/propgrid/propgridiface.cpp b/src/propgrid/propgridiface.cpp index 0af035fedf..ad9e98e78e 100644 --- a/src/propgrid/propgridiface.cpp +++ b/src/propgrid/propgridiface.cpp @@ -1094,7 +1094,7 @@ bool wxPropertyGridInterface::RestoreEditableState( const wxString& src, int res long pos = 0; values[n].ToLong(&pos); if ( pos > 0 ) - pageState->DoSetSplitterPosition(pos, n); + pageState->DoSetSplitter(pos, n); } } } diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 321222d3a9..b15df5290c 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -380,7 +380,7 @@ void wxPropertyGridPageState::OnClientWidthChange( int newWidth, int widthChange } else { - DoSetSplitterPosition( newWidth / 2 ); + DoSetSplitter( newWidth / 2 ); m_isSplitterPreSet = false; } } @@ -869,8 +869,8 @@ void wxPropertyGridPageState::PropagateColSizeDec( int column, wxASSERT( decrease == 0 ); } -void wxPropertyGridPageState::DoSetSplitterPosition(int newXPos, int splitterColumn, - wxPGSplitterPositionFlags flags ) +void wxPropertyGridPageState::DoSetSplitter(int newXPos, int splitterColumn, + wxPGSplitterPositionFlags flags ) { int adjust = newXPos - DoGetSplitterPosition(splitterColumn); int otherColumn = splitterColumn + 1; @@ -912,7 +912,7 @@ void wxPropertyGridPageState::SetSplitterLeft( bool subProps ) if ( maxW > 0 ) { maxW += pg->GetMarginWidth(); - DoSetSplitterPosition( maxW ); + DoSetSplitter( maxW ); } m_dontCenterSplitter = true; @@ -1084,8 +1084,8 @@ void wxPropertyGridPageState::CheckColumnWidths( int widthChange ) } } - DoSetSplitterPosition((int)splitterX, 0, - wxPGSplitterPositionFlags::FromAutoCenter); + DoSetSplitter((int)splitterX, 0, + wxPGSplitterPositionFlags::FromAutoCenter); m_fSplitterX = splitterX; // needed to retain accuracy } @@ -1111,8 +1111,7 @@ void wxPropertyGridPageState::ResetColumnSizes(wxPGSplitterPositionFlags setSpli { int cwid = (puwid*m_columnProportions[i]) / 256; cpos += cwid; - DoSetSplitterPosition(cpos, (int)i, - setSplitterFlags); + DoSetSplitter(cpos, (int)i, setSplitterFlags); } }