mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 17:52:59 +02:00
Qt: fixed TQtWidgetSet.GetScrollInfo() for max value of scrollbar, it should append getPageStep do stay in measures with LCL.issue #17554
git-svn-id: trunk@29104 -
This commit is contained in:
parent
bda600ef26
commit
08cadf3903
@ -352,6 +352,8 @@ type
|
|||||||
{ TQtScrollBar }
|
{ TQtScrollBar }
|
||||||
|
|
||||||
TQtScrollBar = class(TQtAbstractSlider)
|
TQtScrollBar = class(TQtAbstractSlider)
|
||||||
|
private
|
||||||
|
FTrackPos: Integer;
|
||||||
protected
|
protected
|
||||||
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
|
||||||
public
|
public
|
||||||
@ -359,6 +361,7 @@ type
|
|||||||
procedure setFocusPolicy(const APolicy: QtFocusPolicy); override;
|
procedure setFocusPolicy(const APolicy: QtFocusPolicy); override;
|
||||||
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
|
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override;
|
||||||
procedure AttachEvents; override;
|
procedure AttachEvents; override;
|
||||||
|
property TrackPos: Integer read FTrackPos write FTrackPos;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtFrame }
|
{ TQtFrame }
|
||||||
@ -5900,10 +5903,13 @@ begin
|
|||||||
LMScroll.Pos := p1;
|
LMScroll.Pos := p1;
|
||||||
LMScroll.ScrollCode := SIF_POS;
|
LMScroll.ScrollCode := SIF_POS;
|
||||||
|
|
||||||
|
if not InUpdate then
|
||||||
|
DeliverMessage(LMScroll);
|
||||||
|
|
||||||
b := p1 = getMax;
|
b := p1 = getMax;
|
||||||
|
|
||||||
if not InUpdate or (getVisible and ((p1=getMin) or b)) then
|
if not InUpdate or (getVisible and ((p1=getMin) or b)) then
|
||||||
begin
|
begin
|
||||||
DeliverMessage(LMScroll);
|
|
||||||
if b and (FChildOfComplexWidget = ccwAbstractScrollArea) then
|
if b and (FChildOfComplexWidget = ccwAbstractScrollArea) then
|
||||||
begin
|
begin
|
||||||
LCLObject.DoAdjustClientRectChange;
|
LCLObject.DoAdjustClientRectChange;
|
||||||
@ -6012,6 +6018,7 @@ begin
|
|||||||
Parent := TQtWidget(AParams.WndParent).GetContainerWidget
|
Parent := TQtWidget(AParams.WndParent).GetContainerWidget
|
||||||
else
|
else
|
||||||
Parent := nil;
|
Parent := nil;
|
||||||
|
FTrackPos := 0;
|
||||||
Result := QScrollBar_create(Parent);
|
Result := QScrollBar_create(Parent);
|
||||||
QWidget_setFocusPolicy(Result, QtNoFocus);
|
QWidget_setFocusPolicy(Result, QtNoFocus);
|
||||||
if (QtVersionMajor = 4) and (QtVersionMinor < 6) then
|
if (QtVersionMajor = 4) and (QtVersionMinor < 6) then
|
||||||
@ -11479,6 +11486,12 @@ begin
|
|||||||
begin
|
begin
|
||||||
FHScrollBar := TQtScrollBar.CreateFrom(LCLObject,
|
FHScrollBar := TQtScrollBar.CreateFrom(LCLObject,
|
||||||
QAbstractScrollArea_horizontalScrollBar(QAbstractScrollAreaH(Widget)));
|
QAbstractScrollArea_horizontalScrollBar(QAbstractScrollAreaH(Widget)));
|
||||||
|
|
||||||
|
if FHScrollBar.getTracking then
|
||||||
|
FHScrollBar.TrackPos := SB_POLICY_CONTINUOUS
|
||||||
|
else
|
||||||
|
FHScrollBar.TrackPos := SB_POLICY_DISCONTINUOUS;
|
||||||
|
|
||||||
FHScrollBar.ChildOfComplexWidget := ccwAbstractScrollArea;
|
FHScrollBar.ChildOfComplexWidget := ccwAbstractScrollArea;
|
||||||
FHScrollBar.FOwner := Self;
|
FHScrollBar.FOwner := Self;
|
||||||
FHScrollBar.setFocusPolicy(QtNoFocus);
|
FHScrollBar.setFocusPolicy(QtNoFocus);
|
||||||
@ -11501,6 +11514,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
FVScrollbar := TQtScrollBar.CreateFrom(LCLObject,
|
FVScrollbar := TQtScrollBar.CreateFrom(LCLObject,
|
||||||
QAbstractScrollArea_verticalScrollBar(QAbstractScrollAreaH(Widget)));;
|
QAbstractScrollArea_verticalScrollBar(QAbstractScrollAreaH(Widget)));;
|
||||||
|
if FVScrollBar.getTracking then
|
||||||
|
FVScrollBar.TrackPos := SB_POLICY_CONTINUOUS
|
||||||
|
else
|
||||||
|
FVScrollBar.TrackPos := SB_POLICY_DISCONTINUOUS;
|
||||||
FVScrollBar.ChildOfComplexWidget := ccwAbstractScrollArea;
|
FVScrollBar.ChildOfComplexWidget := ccwAbstractScrollArea;
|
||||||
FVScrollBar.FOwner := Self;
|
FVScrollBar.FOwner := Self;
|
||||||
FVScrollBar.setFocusPolicy(QtNoFocus);
|
FVScrollBar.setFocusPolicy(QtNoFocus);
|
||||||
|
@ -2917,7 +2917,7 @@ begin
|
|||||||
if (ScrollInfo.fMask and SIF_RANGE) <> 0
|
if (ScrollInfo.fMask and SIF_RANGE) <> 0
|
||||||
then begin
|
then begin
|
||||||
ScrollInfo.nMin:= QtScrollBar.getMin;
|
ScrollInfo.nMin:= QtScrollBar.getMin;
|
||||||
ScrollInfo.nMax:= QtScrollBar.getMax;
|
ScrollInfo.nMax:= QtScrollBar.getMax + QtScrollBar.getPageStep;
|
||||||
end;
|
end;
|
||||||
// PAGE
|
// PAGE
|
||||||
if (ScrollInfo.fMask and SIF_PAGE) <> 0 then
|
if (ScrollInfo.fMask and SIF_PAGE) <> 0 then
|
||||||
@ -5355,6 +5355,7 @@ var
|
|||||||
|
|
||||||
if (ScrollInfo.FMask and SIF_TRACKPOS) <> 0 then
|
if (ScrollInfo.FMask and SIF_TRACKPOS) <> 0 then
|
||||||
begin
|
begin
|
||||||
|
ScrollBar.TrackPos := ScrollInfo.nTrackPos;
|
||||||
// from MSDN: the SetScrollInfo function ignores this member
|
// from MSDN: the SetScrollInfo function ignores this member
|
||||||
// ScrollBar.setSliderPosition(ScrollInfo.nTrackPos);
|
// ScrollBar.setSliderPosition(ScrollInfo.nTrackPos);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user