[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - cui/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Feb 28 21:09:29 UTC 2019


 cui/source/inc/cuitabarea.hxx    |    2 +
 cui/source/tabpages/backgrnd.cxx |    4 ++-
 cui/source/tabpages/tparea.cxx   |   48 ++++++++++++++++++++++++++-------------
 3 files changed, 38 insertions(+), 16 deletions(-)

New commits:
commit b3ef6fd488cb2b08488fd61494704755b0800712
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Feb 27 11:41:54 2019 +0000
Commit:     Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Thu Feb 28 22:09:03 2019 +0100

    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 at ubuntu.com>

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 {


More information about the Libreoffice-commits mailing list