Fix menu first radio button state and synchronise state changes.

This commit is contained in:
Richard Smith
2018-11-21 16:02:33 +00:00
parent 6b7b43d1fe
commit bfad2a5425
2 changed files with 3 additions and 1 deletions

View File

@@ -53,7 +53,7 @@ static wxMenuItem *GetMenuItemAt( const wxMenu *menu, size_t position )
static void InsertMenuItemAction( const wxMenu *menu, const wxMenuItem *previousItem, static void InsertMenuItemAction( const wxMenu *menu, const wxMenuItem *previousItem,
const wxMenuItem *item, const wxMenuItem *successiveItem ) wxMenuItem *item, const wxMenuItem *successiveItem )
{ {
QMenu *qtMenu = menu->GetHandle(); QMenu *qtMenu = menu->GetHandle();
QAction *itemAction = item->GetHandle(); QAction *itemAction = item->GetHandle();
@@ -74,6 +74,7 @@ static void InsertMenuItemAction( const wxMenu *menu, const wxMenuItem *previous
{ {
QActionGroup *actionGroup = new QActionGroup( qtMenu ); QActionGroup *actionGroup = new QActionGroup( qtMenu );
actionGroup->addAction( itemAction ); actionGroup->addAction( itemAction );
item->Check();
wxASSERT_MSG( itemAction->actionGroup() == actionGroup, "Must be the same action group" ); wxASSERT_MSG( itemAction->actionGroup() == actionGroup, "Must be the same action group" );
} }
break; break;

View File

@@ -165,5 +165,6 @@ void wxQtAction::onActionTriggered( bool checked )
{ {
wxMenuItem *handler = GetHandler(); wxMenuItem *handler = GetHandler();
wxMenu *menu = handler->GetMenu(); wxMenu *menu = handler->GetMenu();
if(handler->IsCheckable()) handler->Check(checked);
menu->SendEvent( handler->GetId(), handler->IsCheckable() ? checked : -1 ); menu->SendEvent( handler->GetId(), handler->IsCheckable() ? checked : -1 );
} }