mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-14 10:20:45 +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.setTabPosition(QTabWidgetTabPositionMap[TCustomTabControl(AWinControl).TabPosition]);
|
||||
QtTabWidget.setTabsClosable(nboShowCloseButtons in TCustomTabControl(AWinControl).Options);
|
||||
QtTabWidget.setTabSize(TCustomTabControl(AWinControl).TabHeight, TCustomTabControl(AWinControl).TabWidth);
|
||||
{$IFDEF DARWIN}
|
||||
QTabWidget_setElideMode(QTabWidgetH(QtTabWidget.Widget), QtElideNone);
|
||||
{$ENDIF}
|
||||
@ -499,29 +500,10 @@ end;
|
||||
|
||||
class procedure TQtWSCustomTabControl.SetTabSize(
|
||||
const ATabControl: TCustomTabControl; const ATabWidth, ATabHeight: integer);
|
||||
var
|
||||
ASize, ANewSize: TSize;
|
||||
WS: WideString;
|
||||
begin
|
||||
if not WSCheckHandleAllocated(ATabControl, 'SetTabSize') then
|
||||
Exit;
|
||||
ASize.cx := -1;
|
||||
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);
|
||||
TQtTabWidget(ATabControl.Handle).setTabSize(ATabHeight, ATabWidth);
|
||||
end;
|
||||
|
||||
class procedure TQtWSCustomTabControl.ShowTabs(const ATabControl: TCustomTabControl;
|
||||
|
@ -1014,6 +1014,7 @@ type
|
||||
procedure setTabPosition(ATabPosition: QTabWidgetTabPosition);
|
||||
procedure setTabIcon(index: Integer; icon: QIconH);
|
||||
procedure setTabText(index: Integer; p2: WideString);
|
||||
procedure setTabSize(const AHeight, AWidth: integer);
|
||||
procedure setTabsClosable(AValue: Boolean);
|
||||
function tabAt(APoint: TPoint): Integer;
|
||||
|
||||
@ -10937,6 +10938,23 @@ begin
|
||||
QTabWidget_setTabText(QTabWidgetH(Widget), index, @p2);
|
||||
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);
|
||||
begin
|
||||
QTabWidget_setTabsClosable(QTabWidgetH(Widget), AValue);
|
||||
|
Loading…
Reference in New Issue
Block a user