From 933d11e471356859f2d2a56344eb42a6d487f5d9 Mon Sep 17 00:00:00 2001 From: zeljko Date: Sun, 13 Dec 2009 16:44:54 +0000 Subject: [PATCH] Qt: fixed painting of QAbstractItemView viewport.Now owner drawn listboxes,listviews is properly updated/repainted. git-svn-id: trunk@23123 - --- lcl/interfaces/qt/qtwidgets.pas | 56 ++++++++++++++++----------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index afe79e72fe..15b9663564 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -895,6 +895,8 @@ type procedure setSelectionBehavior(ABehavior: QAbstractItemViewSelectionBehavior); property OwnerDrawn: Boolean read GetOwnerDrawn write SetOwnerDrawn; public + procedure Update(ARect: PRect = nil); override; + procedure Repaint(ARect: PRect = nil); override; procedure ItemDelegateSizeHint(option: QStyleOptionViewItemH; index: QModelIndexH; Size: PSize); cdecl; virtual; procedure ItemDelegatePaint(painter: QPainterH; option: QStyleOptionViewItemH; index: QModelIndexH); cdecl; virtual; end; @@ -1059,8 +1061,6 @@ type procedure SignalItemCollapsed(item: QTreeWidgetItemH) cdecl; procedure SignalCurrentItemChanged(current: QTreeWidgetItemH; previous: QTreeWidgetItemH) cdecl; procedure SignalSortIndicatorChanged(ALogicalIndex: Integer; AOrder: QtSortOrder) cdecl; - procedure Update(ARect: PRect = nil); override; - procedure Repaint(ARect: PRect = nil); override; property ColCount: Integer read getColCount write setColCount; property Header: TQtHeaderView read getHeader; @@ -8285,32 +8285,6 @@ begin end; end; -procedure TQtTreeWidget.Update(ARect: PRect); -var - P: TPoint; -begin - if ARect <> nil then - begin - P := getClientOffset; - OffsetRect(ARect^, -P.X , -P.Y); - QWidget_update(QAbstractScrollArea_viewport(QTreeWidgetH(Widget)), ARect); - end else - QWidget_update(QAbstractScrollArea_viewport(QTreeWidgetH(Widget))); -end; - -procedure TQtTreeWidget.Repaint(ARect: PRect); -var - P: TPoint; -begin - if ARect <> nil then - begin - P := getClientOffset; - OffsetRect(ARect^, -P.X , -P.Y); - QWidget_repaint(QAbstractScrollArea_viewport(QTreeWidgetH(Widget)), ARect); - end else - QWidget_repaint(QAbstractScrollArea_viewport(QTreeWidgetH(Widget))); -end; - {TQtTableView} function TQtTableView.CreateWidget(const Params: TCreateParams): QWidgetH; @@ -9822,6 +9796,32 @@ begin QAbstractItemView_setSelectionBehavior(QAbstractItemViewH(Widget), ABehavior); end; +procedure TQtAbstractItemView.Update(ARect: PRect); +var + P: TPoint; +begin + if ARect <> nil then + begin + P := getClientOffset; + OffsetRect(ARect^, -P.X , -P.Y); + QWidget_update(QAbstractScrollArea_viewport(QAbstractItemViewH(Widget)), ARect); + end else + QWidget_update(QAbstractScrollArea_viewport(QAbstractItemViewH(Widget))); +end; + +procedure TQtAbstractItemView.Repaint(ARect: PRect); +var + P: TPoint; +begin + if ARect <> nil then + begin + P := getClientOffset; + OffsetRect(ARect^, -P.X , -P.Y); + QWidget_repaint(QAbstractScrollArea_viewport(QAbstractItemViewH(Widget)), ARect); + end else + QWidget_repaint(QAbstractScrollArea_viewport(QAbstractItemViewH(Widget))); +end; + procedure TQtAbstractItemView.ItemDelegateSizeHint( option: QStyleOptionViewItemH; index: QModelIndexH; Size: PSize); cdecl; var