Qt: destroy QTreeWidgetItem after taking from QTreeWidget, reworked TQtWSCustomListView.ItemDelete()

git-svn-id: trunk@24309 -
This commit is contained in:
zeljko 2010-03-31 08:47:28 +00:00
parent 38b16d52cb
commit 9857d352e0
2 changed files with 20 additions and 12 deletions

View File

@ -1068,6 +1068,7 @@ type
procedure DestroyNotify(AWidget: TQtWidget); override;
function itemViewViewportEventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
procedure ClearItems;
procedure DeleteItem(const AIndex: integer);
function currentRow: Integer;
procedure setCurrentRow(row: Integer);
function currentItem: QTreeWidgetItemH;
@ -1093,15 +1094,15 @@ type
procedure AttachEvents; override;
procedure DetachEvents; override;
procedure SignalItemClicked(item: QTreeWidgetItemH; column: Integer) cdecl;
procedure SignalItemDoubleClicked(item: QTreeWidgetItemH; column: Integer) cdecl;
procedure SignalItemActivated(item: QTreeWidgetItemH; column: Integer) cdecl;
procedure SignalItemEntered(item: QTreeWidgetItemH; column: Integer) cdecl;
procedure SignalItemChanged(item: QTreeWidgetItemH; column: Integer) cdecl;
procedure SignalitemExpanded(item: QTreeWidgetItemH) cdecl;
procedure SignalItemCollapsed(item: QTreeWidgetItemH) cdecl;
procedure SignalCurrentItemChanged(current: QTreeWidgetItemH; previous: QTreeWidgetItemH) cdecl;
procedure SignalSortIndicatorChanged(ALogicalIndex: Integer; AOrder: QtSortOrder) cdecl;
procedure SignalItemClicked(item: QTreeWidgetItemH; column: Integer); cdecl;
procedure SignalItemDoubleClicked(item: QTreeWidgetItemH; column: Integer); cdecl;
procedure SignalItemActivated(item: QTreeWidgetItemH; column: Integer); cdecl;
procedure SignalItemEntered(item: QTreeWidgetItemH; column: Integer); cdecl;
procedure SignalItemChanged(item: QTreeWidgetItemH; column: Integer); cdecl;
procedure SignalitemExpanded(item: QTreeWidgetItemH); cdecl;
procedure SignalItemCollapsed(item: QTreeWidgetItemH); cdecl;
procedure SignalCurrentItemChanged(current: QTreeWidgetItemH; previous: QTreeWidgetItemH); cdecl;
procedure SignalSortIndicatorChanged(ALogicalIndex: Integer; AOrder: QtSortOrder); cdecl;
property ColCount: Integer read getColCount write setColCount;
property Header: TQtHeaderView read getHeader;
@ -8181,6 +8182,15 @@ begin
QTreeWidget_clear(QTreeWidgetH(Widget));
end;
procedure TQtTreeWidget.DeleteItem(const AIndex: integer);
var
Item: QTreeWidgetItemH;
begin
Item := takeTopLevelItem(AIndex);
if Item <> nil then
QTreeWidgetItem_destroy(Item);
end;
function TQtTreeWidget.getHeader: TQtHeaderView;
begin
{while designing TQtHeaderView is a no-no}

View File

@ -893,13 +893,11 @@ class procedure TQtWSCustomListView.ItemDelete(const ALV: TCustomListView;
const AIndex: Integer);
var
QtTreeWidget: TQtTreeWidget;
QtItem: QTreeWidgetItemH;
Item: TListItem;
begin
if not WSCheckHandleAllocated(ALV, 'ItemDelete') then
Exit;
QtTreeWidget := TQtTreeWidget(ALV.Handle);
QtTreeWidget.takeTopLevelItem(AIndex);
QtTreeWidget.DeleteItem(AIndex);
end;
{------------------------------------------------------------------------------