diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 8a62062886..e3111668e5 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -587,6 +587,7 @@ type function insertTab(index: Integer; page: QWidgetH; icon: QIconH; p2: WideString): Integer; overload; function getClientBounds: TRect; override; function getCurrentIndex: Integer; + function getTabPosition: QTabWidgetTabPosition; procedure removeTab(AIndex: Integer); procedure setCurrentIndex(AIndex: Integer); procedure setFocusPolicy(const APolicy: QtFocusPolicy); override; @@ -2158,8 +2159,8 @@ begin NewSize := QResizeEvent_size(QResizeEventH(Event))^; -{ - if LCLObject is TTabSheet then + +{ if LCLObject is TTabSheet then WriteLn('SlotResize: ', dbgsName(LCLObject), ' ANewWidth = ', NewSize.cx, ' ANewHeight = ', NewSize.cy); } @@ -4862,12 +4863,22 @@ end; function TQtTabWidget.getClientBounds: TRect; var + ATabSize: TSize; option: QStyleOptionTabWidgetFrameH; begin option := QStyleOptionTabWidgetFrame_create(); QStyleOption_initFrom(QStyleOptionH(option), Widget); QStyle_subElementRect(QWidget_style(Widget), @Result, QStyleSE_TabWidgetTabContents, option, Widget); QStyleOptionTabWidgetFrame_destroy(option); + + QWidget_size(TabBar, @ATabSize); + case getTabPosition of + QTabWidgetNorth: inc(Result.Top, ATabSize.cy); + QTabWidgetSouth: dec(Result.Bottom, ATabSize.cy); + QTabWidgetWest : inc(Result.Left, ATabSize.cx); + QTabWidgetEast : dec(Result.Right, ATabSize.cx); + end; + //WriteLn(dbgs(Result)); end; function TQtTabWidget.getCurrentIndex: Integer; @@ -4875,6 +4886,11 @@ begin Result := QTabWidget_currentIndex(QTabWidgetH(Widget)); end; +function TQtTabWidget.getTabPosition: QTabWidgetTabPosition; +begin + Result := QTabWidget_tabPosition(QTabWidgetH(Widget)); +end; + procedure TQtTabWidget.removeTab(AIndex: Integer); begin QTabWidget_removeTab(QTabWidgetH(Widget), AIndex);