diff options
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/inc/cuitabarea.hxx | 2 | ||||
-rw-r--r-- | cui/source/tabpages/backgrnd.cxx | 4 | ||||
-rw-r--r-- | cui/source/tabpages/tparea.cxx | 48 |
3 files changed, 38 insertions, 16 deletions
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx index 40ea7ce95592..98289ab450e6 100644 --- a/cui/source/inc/cuitabarea.hxx +++ b/cui/source/inc/cuitabarea.hxx @@ -249,6 +249,8 @@ protected: std::unique_ptr<weld::ToggleButton> m_xBtnBitmap; std::unique_ptr<weld::ToggleButton> m_xBtnPattern; + void SetOptimalSize(); + private: DECL_LINK(SelectFillTypeHdl_Impl, weld::ToggleButton&, void); diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx index f0e186d5376d..8711e3a3ebc9 100644 --- a/cui/source/tabpages/backgrnd.cxx +++ b/cui/source/tabpages/backgrnd.cxx @@ -1478,7 +1478,9 @@ bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet ) VclPtr<SfxTabPage> SvxBkgTabPage::Create(TabPageParent pWindow, const SfxItemSet* rAttrs) { - return VclPtr<SvxBkgTabPage>::Create(pWindow, *rAttrs); + auto xRet = VclPtr<SvxBkgTabPage>::Create(pWindow, *rAttrs); + xRet->SetOptimalSize(); + return xRet; } void SvxBkgTabPage::PageCreated(const SfxAllItemSet& aSet) diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx index cacca8f8d51e..ee48acd5f9a8 100644 --- a/cui/source/tabpages/tparea.cxx +++ b/cui/source/tabpages/tparea.cxx @@ -117,8 +117,11 @@ SvxAreaTabPage::SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs m_xBtnPattern->connect_toggled(aLink); SetExchangeSupport(); +} - TabPageParent aFillTab(m_xFillTab.get(), pParent.pController); +void SvxAreaTabPage::SetOptimalSize() +{ + TabPageParent aFillTab(m_xFillTab.get(), GetDialogController()); // TEMP if (!aFillTab.pController) aFillTab.pParent = GetParentDialog(); @@ -126,21 +129,34 @@ SvxAreaTabPage::SvxAreaTabPage(TabPageParent pParent, const SfxItemSet& rInAttrs // Calculate optimal size of all pages.. m_pFillTabPage.disposeAndReset(SvxColorTabPage::Create(aFillTab, &m_rXFSet)); m_aColorSize = m_xFillTab->get_preferred_size(); - m_pFillTabPage.disposeAndReset(SvxGradientTabPage::Create(aFillTab, &m_rXFSet)); - Size aGradientSize = m_xFillTab->get_preferred_size(); - m_pFillTabPage.disposeAndReset(SvxBitmapTabPage::Create(aFillTab, &m_rXFSet)); - Size aBitmapSize = m_xFillTab->get_preferred_size(); - m_pFillTabPage.disposeAndReset(SvxHatchTabPage::Create(aFillTab, &m_rXFSet)); - Size aHatchSize = m_xFillTab->get_preferred_size(); - m_pFillTabPage.disposeAndReset(SvxPatternTabPage::Create(aFillTab, &m_rXFSet)); - Size aPatternSize = m_xFillTab->get_preferred_size(); + Size aSize(m_aColorSize); + + if (m_xBtnGradient->get_visible()) + { + m_pFillTabPage.disposeAndReset(SvxGradientTabPage::Create(aFillTab, &m_rXFSet)); + Size aGradientSize = m_xFillTab->get_preferred_size(); + lclExtendSize(aSize, aGradientSize); + } + if (m_xBtnBitmap->get_visible()) + { + m_pFillTabPage.disposeAndReset(SvxBitmapTabPage::Create(aFillTab, &m_rXFSet)); + Size aBitmapSize = m_xFillTab->get_preferred_size(); + lclExtendSize(aSize, aBitmapSize); + } + if (m_xBtnHatch->get_visible()) + { + m_pFillTabPage.disposeAndReset(SvxHatchTabPage::Create(aFillTab, &m_rXFSet)); + Size aHatchSize = m_xFillTab->get_preferred_size(); + lclExtendSize(aSize, aHatchSize); + } + if (m_xBtnPattern->get_visible()) + { + m_pFillTabPage.disposeAndReset(SvxPatternTabPage::Create(aFillTab, &m_rXFSet)); + Size aPatternSize = m_xFillTab->get_preferred_size(); + lclExtendSize(aSize, aPatternSize); + } m_pFillTabPage.disposeAndClear(); - Size aSize(m_aColorSize); - lclExtendSize(aSize, aGradientSize); - lclExtendSize(aSize, aBitmapSize); - lclExtendSize(aSize, aHatchSize); - lclExtendSize(aSize, aPatternSize); m_xFillTab->set_size_request(aSize.Width(), aSize.Height()); } @@ -326,7 +342,9 @@ void SvxAreaTabPage::Reset( const SfxItemSet* rAttrs ) VclPtr<SfxTabPage> SvxAreaTabPage::Create(TabPageParent pParent, const SfxItemSet* rAttrs) { - return VclPtr<SvxAreaTabPage>::Create(pParent, *rAttrs); + auto xRet = VclPtr<SvxAreaTabPage>::Create(pParent, *rAttrs); + xRet->SetOptimalSize(); + return xRet; } namespace { |