Qt,Qt5,Qt6: fixed menuitem radio items behaviour. issue #41577

This commit is contained in:
zeljan1 2025-04-09 09:18:15 +02:00
parent a3dc9a9061
commit b066b08122
6 changed files with 3 additions and 27 deletions

View File

@ -16165,7 +16165,7 @@ begin
for i := 0 to FActions.Count - 1 do
begin
Group := TQtActionGroup(FActions.Items[i]);
if Group.GroupIndex = AItem.GroupIndex then
if (Group.GroupIndex = AItem.GroupIndex) and (Group.Exclusive = AItem.RadioItem) then
begin
QAction_setEnabled(TQtMenu(AItem.Handle).actionHandle, AItem.Enabled);
QAction_setVisible(TQtMenu(AItem.Handle).actionHandle, AItem.Visible);

View File

@ -115,14 +115,6 @@ begin
begin
Result.setText(AMenuItem.Caption{%H-});
Result.setEnabled(AMenuItem.Enabled);
{issue #37741}
if AMenuItem.RadioItem and (AMenuItem.Count = 0) and (AMenuItem.GroupIndex = 0) then
begin
if AMenuItem.GroupIndex = 0 then
AMenuItem.GroupIndex := 1;
end;
Result.setCheckable(AMenuItem.RadioItem or AMenuItem.ShowAlwaysCheckable);
Result.BeginUpdate;
Result.setChecked(AMenuItem.Checked);

View File

@ -16686,7 +16686,7 @@ begin
for i := 0 to FActions.Count - 1 do
begin
Group := TQtActionGroup(FActions.Items[i]);
if Group.GroupIndex = AItem.GroupIndex then
if (Group.GroupIndex = AItem.GroupIndex) and (Group.Exclusive = AItem.RadioItem) then
begin
QAction_setEnabled(TQtMenu(AItem.Handle).actionHandle, AItem.Enabled);
QAction_setVisible(TQtMenu(AItem.Handle).actionHandle, AItem.Visible);

View File

@ -114,14 +114,6 @@ begin
begin
Result.setText(AMenuItem.Caption{%H-});
Result.setEnabled(AMenuItem.Enabled);
{issue #37741}
if AMenuItem.RadioItem and (AMenuItem.Count = 0) and (AMenuItem.GroupIndex = 0) then
begin
if AMenuItem.GroupIndex = 0 then
AMenuItem.GroupIndex := 1;
end;
Result.setCheckable(AMenuItem.RadioItem or AMenuItem.ShowAlwaysCheckable);
Result.BeginUpdate;
Result.setChecked(AMenuItem.Checked);

View File

@ -16595,7 +16595,7 @@ begin
for i := 0 to FActions.Count - 1 do
begin
Group := TQtActionGroup(FActions.Items[i]);
if Group.GroupIndex = AItem.GroupIndex then
if (Group.GroupIndex = AItem.GroupIndex) and (Group.Exclusive = AItem.RadioItem) then
begin
QAction_setEnabled(TQtMenu(AItem.Handle).actionHandle, AItem.Enabled);
QAction_setVisible(TQtMenu(AItem.Handle).actionHandle, AItem.Visible);

View File

@ -114,14 +114,6 @@ begin
begin
Result.setText(AMenuItem.Caption{%H-});
Result.setEnabled(AMenuItem.Enabled);
{issue #37741}
if AMenuItem.RadioItem and (AMenuItem.Count = 0) and (AMenuItem.GroupIndex = 0) then
begin
if AMenuItem.GroupIndex = 0 then
AMenuItem.GroupIndex := 1;
end;
Result.setCheckable(AMenuItem.RadioItem or AMenuItem.ShowAlwaysCheckable);
Result.BeginUpdate;
Result.setChecked(AMenuItem.Checked);