Qt,Qt5,Qt6: fixed TListView subItem images after changing items order.issue #41465

(cherry picked from commit 6d4ad25144)

Co-authored-by: zeljan1 <zeljko@holobit.hr>
This commit is contained in:
Željan Rikalo 2025-02-28 07:44:56 +00:00 committed by Željan Rikalo
parent d5fecadfcc
commit 6b6dbd3e81
3 changed files with 33 additions and 0 deletions

View File

@ -2073,6 +2073,17 @@ begin
Str := AItem{%H-}.Subitems.Strings[j];
QtTreeWidget.setItemText(Item, j + 1, Str, AAlignment);
QtTreeWidget.setItemData(Item, j + 1, AItem);
if ImgListRes.Valid and (ImgListRes.Count > 0) and (AItem.SubItemImages[j] >= 0) then
begin
Bmp := TBitmap.Create;
try
ImgListRes.GetBitmap(AItem.SubItemImages[j], Bmp);
QTreeWidgetItem_setIcon(Item, j + 1, TQtImage(Bmp.Handle).AsIcon);
finally
Bmp.Free;
end;
end else
QTreeWidgetItem_setIcon(Item, j + 1, nil);
end;
end;

View File

@ -2146,6 +2146,17 @@ begin
WStr := AItem{%H-}.Subitems.Strings[j];
QtTreeWidget.setItemText(Item, j + 1, WStr, AAlignment);
QtTreeWidget.setItemData(Item, j + 1, AItem);
if ImgListRes.Valid and (ImgListRes.Count > 0) and (AItem.SubItemImages[j] >= 0) then
begin
Bmp := TBitmap.Create;
try
ImgListRes.GetBitmap(AItem.SubItemImages[j], Bmp);
QTreeWidgetItem_setIcon(Item, j + 1, TQtImage(Bmp.Handle).AsIcon);
finally
Bmp.Free;
end;
end else
QTreeWidgetItem_setIcon(Item, j + 1, nil);
end;
end;

View File

@ -2143,6 +2143,17 @@ begin
WStr := AItem{%H-}.Subitems.Strings[j];
QtTreeWidget.setItemText(Item, j + 1, WStr, AAlignment);
QtTreeWidget.setItemData(Item, j + 1, AItem);
if ImgListRes.Valid and (ImgListRes.Count > 0) and (AItem.SubItemImages[j] >= 0) then
begin
Bmp := TBitmap.Create;
try
ImgListRes.GetBitmap(AItem.SubItemImages[j], Bmp);
QTreeWidgetItem_setIcon(Item, j + 1, TQtImage(Bmp.Handle).AsIcon);
finally
Bmp.Free;
end;
end else
QTreeWidgetItem_setIcon(Item, j + 1, nil);
end;
end;