mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-26 20:07:14 +01: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;
|
FSignalPressed: QAbstractItemView_hookH;
|
||||||
FSignalViewportEntered: QAbstractItemView_hookH;
|
FSignalViewportEntered: QAbstractItemView_hookH;
|
||||||
FAbstractItemViewportEventHook: QObject_hookH;
|
FAbstractItemViewportEventHook: QObject_hookH;
|
||||||
|
function getIconSize: TSize;
|
||||||
function GetOwnerDrawn: Boolean;
|
function GetOwnerDrawn: Boolean;
|
||||||
|
procedure setIconSize(const AValue: TSize);
|
||||||
procedure SetOwnerDrawn(const AValue: Boolean);
|
procedure SetOwnerDrawn(const AValue: Boolean);
|
||||||
public
|
public
|
||||||
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
constructor Create(const AWinControl: TWinControl; const AParams: TCreateParams); override;
|
||||||
@ -926,6 +928,7 @@ type
|
|||||||
procedure setEditTriggers(ATriggers: QAbstractItemViewEditTriggers);
|
procedure setEditTriggers(ATriggers: QAbstractItemViewEditTriggers);
|
||||||
procedure setSelectionMode(AMode: QAbstractItemViewSelectionMode);
|
procedure setSelectionMode(AMode: QAbstractItemViewSelectionMode);
|
||||||
procedure setSelectionBehavior(ABehavior: QAbstractItemViewSelectionBehavior);
|
procedure setSelectionBehavior(ABehavior: QAbstractItemViewSelectionBehavior);
|
||||||
|
property IconSize: TSize read getIconSize write setIconSize;
|
||||||
property OwnerDrawn: Boolean read GetOwnerDrawn write SetOwnerDrawn;
|
property OwnerDrawn: Boolean read GetOwnerDrawn write SetOwnerDrawn;
|
||||||
public
|
public
|
||||||
procedure ItemDelegateSizeHint(option: QStyleOptionViewItemH; index: QModelIndexH; Size: PSize); cdecl; virtual;
|
procedure ItemDelegateSizeHint(option: QStyleOptionViewItemH; index: QModelIndexH; Size: PSize); cdecl; virtual;
|
||||||
@ -1020,8 +1023,10 @@ type
|
|||||||
private
|
private
|
||||||
function getColVisible(AIndex: Integer): Boolean;
|
function getColVisible(AIndex: Integer): Boolean;
|
||||||
function getColWidth(AIndex: Integer): Integer;
|
function getColWidth(AIndex: Integer): Integer;
|
||||||
|
function GetUniformRowHeights: Boolean;
|
||||||
procedure setColVisible(AIndex: Integer; const AValue: Boolean);
|
procedure setColVisible(AIndex: Integer; const AValue: Boolean);
|
||||||
procedure setColWidth(AIndex: Integer; const AValue: Integer);
|
procedure setColWidth(AIndex: Integer; const AValue: Integer);
|
||||||
|
procedure SetUniformRowHeights(const AValue: Boolean);
|
||||||
protected
|
protected
|
||||||
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
||||||
public
|
public
|
||||||
@ -1030,6 +1035,7 @@ type
|
|||||||
procedure setRootIsDecorated(AValue: Boolean);
|
procedure setRootIsDecorated(AValue: Boolean);
|
||||||
property ColWidth[AIndex: Integer]: Integer read getColWidth write setColWidth;
|
property ColWidth[AIndex: Integer]: Integer read getColWidth write setColWidth;
|
||||||
property ColVisible[AIndex: Integer]: Boolean read getColVisible write setColVisible;
|
property ColVisible[AIndex: Integer]: Boolean read getColVisible write setColVisible;
|
||||||
|
property UniformRowHeights: Boolean read GetUniformRowHeights write SetUniformRowHeights;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtTreeWidget }
|
{ TQtTreeWidget }
|
||||||
@ -7979,6 +7985,11 @@ begin
|
|||||||
Result := QTreeView_columnWidth(QTreeViewH(Widget), AIndex);
|
Result := QTreeView_columnWidth(QTreeViewH(Widget), AIndex);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtTreeView.GetUniformRowHeights: Boolean;
|
||||||
|
begin
|
||||||
|
Result := QTreeView_uniformRowHeights(QTreeViewH(Widget));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtTreeView.setColVisible(AIndex: Integer; const AValue: Boolean);
|
procedure TQtTreeView.setColVisible(AIndex: Integer; const AValue: Boolean);
|
||||||
begin
|
begin
|
||||||
QTreeView_setColumnHidden(QTreeViewH(Widget), AIndex, not AValue);
|
QTreeView_setColumnHidden(QTreeViewH(Widget), AIndex, not AValue);
|
||||||
@ -7989,6 +8000,11 @@ begin
|
|||||||
QTreeView_setColumnWidth(QTreeViewH(Widget), AIndex, AValue);
|
QTreeView_setColumnWidth(QTreeViewH(Widget), AIndex, AValue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtTreeView.SetUniformRowHeights(const AValue: Boolean);
|
||||||
|
begin
|
||||||
|
QTreeView_setUniformRowHeights(QTreeViewH(Widget), AValue);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtTreeView.setWordWrap(AValue: Boolean);
|
procedure TQtTreeView.setWordWrap(AValue: Boolean);
|
||||||
begin
|
begin
|
||||||
QTreeView_setWordWrap(QTreeViewH(Widget), AValue);
|
QTreeView_setWordWrap(QTreeViewH(Widget), AValue);
|
||||||
@ -10465,6 +10481,16 @@ begin
|
|||||||
Result := FNewDelegate <> nil;
|
Result := FNewDelegate <> nil;
|
||||||
end;
|
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);
|
procedure TQtAbstractItemView.SetOwnerDrawn(const AValue: Boolean);
|
||||||
begin
|
begin
|
||||||
if AValue and (FNewDelegate = nil) then
|
if AValue and (FNewDelegate = nil) then
|
||||||
|
|||||||
@ -1490,22 +1490,23 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
QAbstractItemView_setIconSize(TreeWidget, @Size);
|
QtTreeWidget.IconSize := Size;
|
||||||
Item := QTreeWidget_topLevelItem(TreeWidget, 0);
|
|
||||||
|
Item := QtTreeWidget.topLevelItem(0);
|
||||||
if Item <> nil then
|
if Item <> nil then
|
||||||
begin
|
begin
|
||||||
X := Size.CY;
|
X := Size.CY;
|
||||||
QTreeWidgetItem_sizeHint(Item, @Size, 0);
|
QTreeWidgetItem_sizeHint(Item, @Size, 0);
|
||||||
Size.Cy := X;
|
Size.Cy := X;
|
||||||
QTreeWidgetItem_setSizeHint(Item, 0, @Size);
|
QTreeWidgetItem_setSizeHint(Item, 0, @Size);
|
||||||
for j := 0 to QTreeWidget_columnCount(TreeWidget) - 1 do
|
|
||||||
|
for j := 0 to QtTreeWidget.ColCount - 1 do
|
||||||
begin
|
begin
|
||||||
Item := QTreeWidget_itemAt(TreeWidget, j, 0);
|
Item := QtTreeWidget.itemAt(j, 0);
|
||||||
QTreeWidgetItem_setSizeHint(Item, j, @Size);
|
QTreeWidgetItem_setSizeHint(Item, j, @Size);
|
||||||
end;
|
end;
|
||||||
QTreeView_setUniformRowHeights(TreeWidget, True);
|
|
||||||
end;
|
end;
|
||||||
|
QtTreeWidget.UniformRowHeights := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user