mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 03:09:32 +02:00
Qt: fixed bug where uniformrowheights weren't setted up on empty listview.Now we have TListView performance boost > 500%.
git-svn-id: trunk@24316 -
This commit is contained in:
parent
eeaeeb9665
commit
26a08a551d
@ -901,7 +901,9 @@ type
|
||||
FSignalPressed: QAbstractItemView_hookH;
|
||||
FSignalViewportEntered: QAbstractItemView_hookH;
|
||||
FAbstractItemViewportEventHook: QObject_hookH;
|
||||
function getIconSize: TSize;
|
||||
function GetOwnerDrawn: Boolean;
|
||||
procedure setIconSize(const AValue: TSize);
|
||||
procedure SetOwnerDrawn(const AValue: Boolean);
|
||||
public
|
||||
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
||||
@ -926,6 +928,7 @@ type
|
||||
procedure setEditTriggers(ATriggers: QAbstractItemViewEditTriggers);
|
||||
procedure setSelectionMode(AMode: QAbstractItemViewSelectionMode);
|
||||
procedure setSelectionBehavior(ABehavior: QAbstractItemViewSelectionBehavior);
|
||||
property IconSize: TSize read getIconSize write setIconSize;
|
||||
property OwnerDrawn: Boolean read GetOwnerDrawn write SetOwnerDrawn;
|
||||
public
|
||||
procedure ItemDelegateSizeHint(option: QStyleOptionViewItemH; index: QModelIndexH; Size: PSize); cdecl; virtual;
|
||||
@ -1020,8 +1023,10 @@ type
|
||||
private
|
||||
function getColVisible(AIndex: Integer): Boolean;
|
||||
function getColWidth(AIndex: Integer): Integer;
|
||||
function GetUniformRowHeights: Boolean;
|
||||
procedure setColVisible(AIndex: Integer; const AValue: Boolean);
|
||||
procedure setColWidth(AIndex: Integer; const AValue: Integer);
|
||||
procedure SetUniformRowHeights(const AValue: Boolean);
|
||||
protected
|
||||
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
||||
public
|
||||
@ -1030,6 +1035,7 @@ type
|
||||
procedure setRootIsDecorated(AValue: Boolean);
|
||||
property ColWidth[AIndex: Integer]: Integer read getColWidth write setColWidth;
|
||||
property ColVisible[AIndex: Integer]: Boolean read getColVisible write setColVisible;
|
||||
property UniformRowHeights: Boolean read GetUniformRowHeights write SetUniformRowHeights;
|
||||
end;
|
||||
|
||||
{ TQtTreeWidget }
|
||||
@ -7979,6 +7985,11 @@ begin
|
||||
Result := QTreeView_columnWidth(QTreeViewH(Widget), AIndex);
|
||||
end;
|
||||
|
||||
function TQtTreeView.GetUniformRowHeights: Boolean;
|
||||
begin
|
||||
Result := QTreeView_uniformRowHeights(QTreeViewH(Widget));
|
||||
end;
|
||||
|
||||
procedure TQtTreeView.setColVisible(AIndex: Integer; const AValue: Boolean);
|
||||
begin
|
||||
QTreeView_setColumnHidden(QTreeViewH(Widget), AIndex, not AValue);
|
||||
@ -7989,6 +8000,11 @@ begin
|
||||
QTreeView_setColumnWidth(QTreeViewH(Widget), AIndex, AValue);
|
||||
end;
|
||||
|
||||
procedure TQtTreeView.SetUniformRowHeights(const AValue: Boolean);
|
||||
begin
|
||||
QTreeView_setUniformRowHeights(QTreeViewH(Widget), AValue);
|
||||
end;
|
||||
|
||||
procedure TQtTreeView.setWordWrap(AValue: Boolean);
|
||||
begin
|
||||
QTreeView_setWordWrap(QTreeViewH(Widget), AValue);
|
||||
@ -10465,6 +10481,16 @@ begin
|
||||
Result := FNewDelegate <> nil;
|
||||
end;
|
||||
|
||||
function TQtAbstractItemView.getIconSize: TSize;
|
||||
begin
|
||||
QAbstractItemView_iconSize(QAbstractItemViewH(Widget), @Result);
|
||||
end;
|
||||
|
||||
procedure TQtAbstractItemView.setIconSize(const AValue: TSize);
|
||||
begin
|
||||
QAbstractItemView_setIconSize(QAbstractItemViewH(Widget), @AValue);
|
||||
end;
|
||||
|
||||
procedure TQtAbstractItemView.SetOwnerDrawn(const AValue: Boolean);
|
||||
begin
|
||||
if AValue and (FNewDelegate = nil) then
|
||||
|
@ -1490,22 +1490,23 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
QAbstractItemView_setIconSize(TreeWidget, @Size);
|
||||
Item := QTreeWidget_topLevelItem(TreeWidget, 0);
|
||||
QtTreeWidget.IconSize := Size;
|
||||
|
||||
Item := QtTreeWidget.topLevelItem(0);
|
||||
if Item <> nil then
|
||||
begin
|
||||
X := Size.CY;
|
||||
QTreeWidgetItem_sizeHint(Item, @Size, 0);
|
||||
Size.Cy := X;
|
||||
QTreeWidgetItem_setSizeHint(Item, 0, @Size);
|
||||
for j := 0 to QTreeWidget_columnCount(TreeWidget) - 1 do
|
||||
|
||||
for j := 0 to QtTreeWidget.ColCount - 1 do
|
||||
begin
|
||||
Item := QTreeWidget_itemAt(TreeWidget, j, 0);
|
||||
Item := QtTreeWidget.itemAt(j, 0);
|
||||
QTreeWidgetItem_setSizeHint(Item, j, @Size);
|
||||
end;
|
||||
QTreeView_setUniformRowHeights(TreeWidget, True);
|
||||
end;
|
||||
|
||||
QtTreeWidget.UniformRowHeights := True;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user