diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-02-27 11:41:54 +0000 |
---|---|---|
committer | Adolfo Jayme Barrientos <fitojb@ubuntu.com> | 2019-02-28 22:09:03 +0100 |
commit | b3ef6fd488cb2b08488fd61494704755b0800712 (patch) | |
tree | 8f1c92c094e3dd5abbd180546692d82c42f57c61 /cui | |
parent | 8b07376f70f5e1192d9ac1e97bcf34de7a09a8a2 (diff) |
Related: tdf#123711 better optimal size for highlighting tab
it only uses the color subtab, so just measure
ones which can be visible
Change-Id: Id09419480fd920b242f4d0d65e9ac5fbfb619784
Reviewed-on: https://gerrit.libreoffice.org/68432
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
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 19c52a601f25..3d69c9c717ae 100644 --- a/cui/source/inc/cuitabarea.hxx +++ b/cui/source/inc/cuitabarea.hxx @@ -252,6 +252,8 @@ protected: std::unique_ptr<weld::ToggleButton> m_xBtnBitmap; std::unique_ptr<weld::ToggleButton> m_xBtnPattern; + void SetOptimalSize(weld::DialogController* pController); + private: DECL_LINK(SelectFillTypeHdl_Impl, weld::ToggleButton&, void); diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx index b41680e22c81..e7926e552be3 100644 --- a/cui/source/tabpages/backgrnd.cxx +++ b/cui/source/tabpages/backgrnd.cxx @@ -1480,7 +1480,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(pWindow.pController); + return xRet; } void SvxBkgTabPage::PageCreated(const SfxAllItemSet& aSet) diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx index cacca8f8d51e..a311becb2fe1 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(weld::DialogController* pController) +{ + TabPageParent aFillTab(m_xFillTab.get(), pController); // 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(pParent.pController); + return xRet; } namespace { |