mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-22 02:39:23 +02:00
Qt6: fixed tab sizing. issue #40168
This commit is contained in:
parent
ec1e775ac1
commit
454cf2d90c
@ -176,6 +176,7 @@ begin
|
|||||||
QtTabWidget := TQtTabWidget.Create(AWinControl, AParams);
|
QtTabWidget := TQtTabWidget.Create(AWinControl, AParams);
|
||||||
QtTabWidget.setTabPosition(QTabWidgetTabPositionMap[TCustomTabControl(AWinControl).TabPosition]);
|
QtTabWidget.setTabPosition(QTabWidgetTabPositionMap[TCustomTabControl(AWinControl).TabPosition]);
|
||||||
QtTabWidget.setTabsClosable(nboShowCloseButtons in TCustomTabControl(AWinControl).Options);
|
QtTabWidget.setTabsClosable(nboShowCloseButtons in TCustomTabControl(AWinControl).Options);
|
||||||
|
QtTabWidget.setTabSize(TCustomTabControl(AWinControl).TabHeight, TCustomTabControl(AWinControl).TabWidth);
|
||||||
{$IFDEF DARWIN}
|
{$IFDEF DARWIN}
|
||||||
QTabWidget_setElideMode(QTabWidgetH(QtTabWidget.Widget), QtElideNone);
|
QTabWidget_setElideMode(QTabWidgetH(QtTabWidget.Widget), QtElideNone);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -499,29 +500,10 @@ end;
|
|||||||
|
|
||||||
class procedure TQtWSCustomTabControl.SetTabSize(
|
class procedure TQtWSCustomTabControl.SetTabSize(
|
||||||
const ATabControl: TCustomTabControl; const ATabWidth, ATabHeight: integer);
|
const ATabControl: TCustomTabControl; const ATabWidth, ATabHeight: integer);
|
||||||
var
|
|
||||||
ASize, ANewSize: TSize;
|
|
||||||
WS: WideString;
|
|
||||||
begin
|
begin
|
||||||
if not WSCheckHandleAllocated(ATabControl, 'SetTabSize') then
|
if not WSCheckHandleAllocated(ATabControl, 'SetTabSize') then
|
||||||
Exit;
|
Exit;
|
||||||
ASize.cx := -1;
|
TQtTabWidget(ATabControl.Handle).setTabSize(ATabHeight, ATabWidth);
|
||||||
ASize.cy := -1;
|
|
||||||
ANewSize := ASize;
|
|
||||||
if ATabWidth > 0 then
|
|
||||||
ANewSize.cx := ATabWidth;
|
|
||||||
if ATabHeight > 0 then
|
|
||||||
ANewSize.cy := ATabHeight;
|
|
||||||
if (ATabWidth = 0) and (ATabHeight = 0) then
|
|
||||||
WS := ''
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
if ATabControl.TabPosition in [tpLeft, tpRight] then
|
|
||||||
WS := {%H-}Format('QTabBar::tab { height: %dpx; width: %dpx; }',[ANewSize.cx, ANewSize.cy])
|
|
||||||
else
|
|
||||||
WS := {%H-}Format('QTabBar::tab { height: %dpx; width: %dpx; }',[ANewSize.cy, ANewSize.cx]);
|
|
||||||
end;
|
|
||||||
QWidget_setStyleSheet(TQtTabWidget(ATabControl.Handle).Widget, @WS);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TQtWSCustomTabControl.ShowTabs(const ATabControl: TCustomTabControl;
|
class procedure TQtWSCustomTabControl.ShowTabs(const ATabControl: TCustomTabControl;
|
||||||
|
@ -1014,6 +1014,7 @@ type
|
|||||||
procedure setTabPosition(ATabPosition: QTabWidgetTabPosition);
|
procedure setTabPosition(ATabPosition: QTabWidgetTabPosition);
|
||||||
procedure setTabIcon(index: Integer; icon: QIconH);
|
procedure setTabIcon(index: Integer; icon: QIconH);
|
||||||
procedure setTabText(index: Integer; p2: WideString);
|
procedure setTabText(index: Integer; p2: WideString);
|
||||||
|
procedure setTabSize(const AHeight, AWidth: integer);
|
||||||
procedure setTabsClosable(AValue: Boolean);
|
procedure setTabsClosable(AValue: Boolean);
|
||||||
function tabAt(APoint: TPoint): Integer;
|
function tabAt(APoint: TPoint): Integer;
|
||||||
|
|
||||||
@ -10937,6 +10938,23 @@ begin
|
|||||||
QTabWidget_setTabText(QTabWidgetH(Widget), index, @p2);
|
QTabWidget_setTabText(QTabWidgetH(Widget), index, @p2);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TQtTabWidget.setTabSize(const AHeight, AWidth: integer);
|
||||||
|
var
|
||||||
|
ANewSize: TSize;
|
||||||
|
WS: WideString;
|
||||||
|
begin
|
||||||
|
ANewSize := Default(TSize);
|
||||||
|
if AWidth > 0 then
|
||||||
|
ANewSize.cx := AWidth;
|
||||||
|
if AHeight > 0 then
|
||||||
|
ANewSize.cy := AHeight;
|
||||||
|
if (AWidth <= 0) and (AHeight <= 0) then
|
||||||
|
WS := ''
|
||||||
|
else
|
||||||
|
WS := {%H-}Format('QTabBar::tab { height: %dpx; width: %dpx; }',[ANewSize.cy, ANewSize.cx]);
|
||||||
|
QWidget_setStyleSheet(Widget, @WS);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtTabWidget.setTabsClosable(AValue: Boolean);
|
procedure TQtTabWidget.setTabsClosable(AValue: Boolean);
|
||||||
begin
|
begin
|
||||||
QTabWidget_setTabsClosable(QTabWidgetH(Widget), AValue);
|
QTabWidget_setTabsClosable(QTabWidgetH(Widget), AValue);
|
||||||
|
Loading…
Reference in New Issue
Block a user