Removed redundant CONTEXT_MENU::m_parent field.

This commit is contained in:
Maciej Suminski 2017-01-23 09:59:36 +01:00
parent 682da70a86
commit fc7be1a497
2 changed files with 7 additions and 12 deletions

View File

@ -32,7 +32,7 @@
using namespace std::placeholders; using namespace std::placeholders;
CONTEXT_MENU::CONTEXT_MENU() : CONTEXT_MENU::CONTEXT_MENU() :
m_titleSet( false ), m_selected( -1 ), m_tool( nullptr ), m_parent( nullptr ), m_icon( nullptr ) m_titleSet( false ), m_selected( -1 ), m_tool( nullptr ), m_icon( nullptr )
{ {
setupEvents(); setupEvents();
} }
@ -41,12 +41,14 @@ CONTEXT_MENU::CONTEXT_MENU() :
CONTEXT_MENU::~CONTEXT_MENU() CONTEXT_MENU::~CONTEXT_MENU()
{ {
// Set parent to NULL to prevent submenus from unregistering from a notexisting object // Set parent to NULL to prevent submenus from unregistering from a notexisting object
//for( std::list<CONTEXT_MENU*>::iterator it = m_submenus.begin(); it != m_submenus.end(); ++it )
for( auto menu : m_submenus ) for( auto menu : m_submenus )
menu->m_parent = nullptr; menu->SetParent( nullptr );
if( m_parent ) CONTEXT_MENU* parent = dynamic_cast<CONTEXT_MENU*>( GetParent() );
m_parent->m_submenus.remove( this ); wxASSERT( parent || !GetParent() );
if( parent )
parent->m_submenus.remove( this );
} }
@ -116,7 +118,6 @@ std::list<wxMenuItem*> CONTEXT_MENU::Add( CONTEXT_MENU* aMenu, const wxString& a
std::list<wxMenuItem*> items; std::list<wxMenuItem*> items;
CONTEXT_MENU* menuCopy = aMenu->Clone(); CONTEXT_MENU* menuCopy = aMenu->Clone();
m_submenus.push_back( menuCopy ); m_submenus.push_back( menuCopy );
menuCopy->m_parent = this;
if( aExpand ) if( aExpand )
{ {
@ -154,7 +155,6 @@ void CONTEXT_MENU::Clear()
m_toolActions.clear(); m_toolActions.clear();
m_submenus.clear(); m_submenus.clear();
m_parent = NULL;
wxASSERT( GetMenuItemCount() == 0 ); wxASSERT( GetMenuItemCount() == 0 );
} }
@ -335,7 +335,6 @@ void CONTEXT_MENU::copyFrom( const CONTEXT_MENU& aMenu )
m_selected = -1; // aMenu.m_selected; m_selected = -1; // aMenu.m_selected;
m_tool = aMenu.m_tool; m_tool = aMenu.m_tool;
m_toolActions = aMenu.m_toolActions; m_toolActions = aMenu.m_toolActions;
m_parent = NULL; // aMenu.m_parent;
// Copy all the menu entries // Copy all the menu entries
for( int i = 0; i < (int) aMenu.GetMenuItemCount(); ++i ) for( int i = 0; i < (int) aMenu.GetMenuItemCount(); ++i )
@ -364,7 +363,6 @@ wxMenuItem* CONTEXT_MENU::appendCopy( const wxMenuItem* aSource )
CONTEXT_MENU* menuCopy = menu->Clone(); CONTEXT_MENU* menuCopy = menu->Clone();
newItem->SetSubMenu( menuCopy ); newItem->SetSubMenu( menuCopy );
m_submenus.push_back( menuCopy ); m_submenus.push_back( menuCopy );
menuCopy->m_parent = this; // TODO remove m_parent
} }
} }

View File

@ -212,9 +212,6 @@ private:
///> List of submenus. ///> List of submenus.
std::list<CONTEXT_MENU*> m_submenus; std::list<CONTEXT_MENU*> m_submenus;
///> Parent CONTEXT_MENU.
CONTEXT_MENU* m_parent;
///> Optional icon ///> Optional icon
const BITMAP_OPAQUE* m_icon; const BITMAP_OPAQUE* m_icon;