[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - 9 commits - chart2/uiconfig desktop/qa editeng/source include/sfx2 sc/source sd/source sd/uiconfig sfx2/source sw/source

Ashod Nakashian (via logerrit) logerrit at kemper.freedesktop.org
Sat May 23 14:27:56 UTC 2020


 chart2/uiconfig/ui/sidebarelements.ui              |   41 ++++++++++---------
 desktop/qa/data/2slides.odp                        |binary
 editeng/source/editeng/impedit.cxx                 |   41 ++++++++++++++++---
 include/sfx2/childwin.hxx                          |    6 +-
 sc/source/ui/app/scdll.cxx                         |    5 +-
 sc/source/ui/inc/viewdata.hxx                      |    5 ++
 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx |    1 
 sc/source/ui/unoobj/docuno.cxx                     |    3 +
 sc/source/ui/view/tabvwsh2.cxx                     |    8 +++
 sd/source/ui/app/sddll.cxx                         |    5 +-
 sd/source/ui/sidebar/SlideBackground.cxx           |   34 ++++++++++------
 sd/source/ui/sidebar/SlideBackground.hxx           |    3 -
 sd/uiconfig/simpress/ui/sidebarslidebackground.ui  |   14 ++++++
 sfx2/source/appl/workwin.cxx                       |    3 +
 sw/source/core/crsr/viscrs.cxx                     |   44 ++++++++++++++++++---
 sw/source/uibase/app/swmodule.cxx                  |    5 +-
 16 files changed, 165 insertions(+), 53 deletions(-)

New commits:
commit 70e50a9a5ceaa2e758dacde55daa918f4b390b04
Author:     Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Sat Jul 27 23:35:13 2019 -0400
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:19:51 2020 +0100

    LOK: spelldialog: don't create the dialog when loading new views
    
    By default dialogs/decks are re-created when a new view is
    created/attached, if they are visible. For the spell checker
    this is unexpected, as the user doesn't expect to be doing
    spell checking upon loading a document, just because another
    user was at the time spell checking. Currently the suppression
    is for LOK only.
    
    This also adds support to suppress the recreation of any
    dialog by flagging it with the SfxChildWindowFlags::NEVERCLONE
    flag upon invoking RegisterChildWindow.
    
    (cherry picked from commit e3fb48fe4f84b5609730c64fdb49b1bd7ddd1f96)
    
    Reviewed-on: https://gerrit.libreoffice.org/85004
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    (cherry picked from commit e573919cd8561a81d967c1a4566c5733dd44b7b1)
    
    Change-Id: I7d71c664f1b2804910c96eeb0431164d48b5679b
    Reviewed-on: https://gerrit.libreoffice.org/85680
    Tested-by: Jenkins
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/desktop/qa/data/2slides.odp b/desktop/qa/data/2slides.odp
index 8be376f5b548..0e3f8758ffc9 100644
Binary files a/desktop/qa/data/2slides.odp and b/desktop/qa/data/2slides.odp differ
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index f5e64fdfedf3..65b5caa8be25 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -47,13 +47,13 @@ enum class SfxChildWindowFlags
     TASK            = 0x10, // ChildWindow inside the Task
     CANTGETFOCUS    = 0x20, // ChildWindow can not get focus
     ALWAYSAVAILABLE = 0x40, // ChildWindow is never disabled
-    NEVERHIDE       = 0x80  // ChildWindow is can always made
-                            // visible/is visible
+    NEVERHIDE       = 0x80, // ChildWindow is always visible
+    NEVERCLONE      = 0x100, // ChildWindow is not recreated in new view
 };
 
 namespace o3tl
 {
-    template<> struct typed_flags<SfxChildWindowFlags> : is_typed_flags<SfxChildWindowFlags, 0xf5> {};
+    template<> struct typed_flags<SfxChildWindowFlags> : is_typed_flags<SfxChildWindowFlags, 0x1f5> {};
 }
 
 
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index 59faba24ece2..45129b81b089 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -22,6 +22,7 @@
 #include <svx/fmobjfac.hxx>
 #include <svx/objfac3d.hxx>
 
+#include <comphelper/lok.hxx>
 #include <sfx2/sidebar/SidebarChildWindow.hxx>
 #include <sfx2/app.hxx>
 #include <avmedia/mediatoolbox.hxx>
@@ -238,7 +239,9 @@ void ScDLL::Init()
     SvxHlinkDlgWrapper          ::RegisterChildWindow(false, pMod);
     SvxFontWorkChildWindow      ::RegisterChildWindow(false, pMod);
     SvxIMapDlgChildWindow       ::RegisterChildWindow(false, pMod);
-    ScSpellDialogChildWindow    ::RegisterChildWindow(false, pMod);
+    ScSpellDialogChildWindow::RegisterChildWindow(
+        false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+                                                            : SfxChildWindowFlags::NONE);
 
     ScValidityRefChildWin::RegisterChildWindow(false, pMod);
     sc::SearchResultsDlgWrapper::RegisterChildWindow(false, pMod);
diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx
index 8098c5d6c31c..55d306e53925 100644
--- a/sd/source/ui/app/sddll.cxx
+++ b/sd/source/ui/app/sddll.cxx
@@ -84,6 +84,7 @@
 #include <sfx2/emojipopup.hxx>
 #include <sfx2/charmappopup.hxx>
 #include <sfx2/sidebar/SidebarChildWindow.hxx>
+#include <comphelper/lok.hxx>
 #include <sdabstdlg.hxx>
 #include <sdfilter.hxx>
 #include <sdmod.hxx>
@@ -165,7 +166,9 @@ void SdDLL::RegisterControllers(SdModule* pMod)
     SvxBmpMaskChildWindow::RegisterChildWindow(false, pMod);
     SvxIMapDlgChildWindow::RegisterChildWindow(false, pMod);
     SvxHlinkDlgWrapper::RegisterChildWindow(false, pMod);
-    ::sd::SpellDialogChildWindow::RegisterChildWindow(false, pMod);
+    ::sd::SpellDialogChildWindow::RegisterChildWindow(
+        false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+                                                            : SfxChildWindowFlags::NONE);
 #if HAVE_FEATURE_AVMEDIA
     ::avmedia::MediaPlayer::RegisterChildWindow(false, pMod);
 #endif
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index 413f26890290..d148ec648b1d 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -1288,6 +1288,9 @@ void SfxWorkWindow::UpdateChildWindows_Impl()
                 else
                     bCreate = true;
 
+                if (pCW->aInfo.nFlags & SfxChildWindowFlags::NEVERCLONE)
+                    pCW->bCreate = bCreate = false; // Don't create and remember that we haven't created.
+
                 // Currently, no window here, but it is enabled; windows
                 // Create window and if possible theContext
                 if ( bCreate )
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 0ec62470c232..8da92e722fb5 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -59,6 +59,7 @@
 #include <com/sun/star/scanner/ScannerManager.hpp>
 #include <com/sun/star/linguistic2/LanguageGuessing.hpp>
 #include <ooo/vba/XSinkCaller.hpp>
+#include <comphelper/lok.hxx>
 #include <comphelper/processfactory.hxx>
 #include <docsh.hxx>
 #include <swmodule.hxx>
@@ -347,7 +348,9 @@ void SwDLL::RegisterControls()
     SwInsertAuthMarkWrapper::RegisterChildWindow( false, pMod );
     SwWordCountWrapper::RegisterChildWindow( false, pMod );
     SvxRubyChildWindow::RegisterChildWindow( false, pMod);
-    SwSpellDialogChildWindow::RegisterChildWindow(false, pMod);
+    SwSpellDialogChildWindow::RegisterChildWindow(
+        false, pMod, comphelper::LibreOfficeKit::isActive() ? SfxChildWindowFlags::NEVERCLONE
+                                                            : SfxChildWindowFlags::NONE);
 
     CharmapPopup::RegisterControl(SID_CHARMAP_CONTROL, pMod );
 
commit 2805d181bcbcdb8eedbe9a7997da63e59330a7de
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Dec 18 02:11:23 2019 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:18:59 2020 +0100

    lok: Resolves: Writer - selecting a hyperlink doesn't show link in dialog
    
    Repro: Select text in Online, and Ctrl + K to open Hyperlink dialog,
    then assign a hyperlink and close with Ok. Without removing/changing
    the selection, re-open the hyperlink dialog again by Ctrl + K. You see
    that the hyperlink is not recognized.
    
    Why?
    The dialog relies on the hyperlinkUnderCursor property which is
    set by the SfxLokHelper::notifyVisCursorInvalidation() method, which
    also relies on the current char cursor is on. So when you select a hyperlinked
    text from left to right (in English), the final position of the cursor is outside
    the hyperlinked text, thus the hyperlinkUnderCursor property is unset.
    
    Solution
    Check for presence of selection and hyperlink via SfxItemPool and
    proceed accordingly
    
    Change-Id: I3a7f18c8199cec243ac99f011d9aaee7c7c575b8
    Reviewed-on: https://gerrit.libreoffice.org/85348
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89704
    Tested-by: Jenkins

diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index d759598abff3..7c59a4aa7b98 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -54,6 +54,7 @@
 #include <paintfrm.hxx>
 #include <PostItMgr.hxx>
 #include <SwGrammarMarkUp.hxx>
+#include <docsh.hxx>
 
 #include <cellfrm.hxx>
 #include <wrtsh.hxx>
@@ -108,6 +109,23 @@ void SwVisibleCursor::Hide()
     }
 }
 
+namespace
+{
+
+// Build JSON message to be sent to Online
+OString buildHyperlinkJSON(const OUString& sText, const OUString& sLink)
+{
+    boost::property_tree::ptree aTree;
+    aTree.put("text", sText);
+    aTree.put("link", sLink);
+    std::stringstream aStream;
+    boost::property_tree::write_json(aStream, aTree, false);
+
+    return OString(aStream.str().c_str()).trim();
+}
+
+}
+
 void SwVisibleCursor::SetPosAndShow(SfxViewShell const * pViewShell)
 {
     SwRect aRect;
@@ -241,15 +259,29 @@ void SwVisibleCursor::SetPosAndShow(SfxViewShell const * pViewShell)
 
         OString sHyperlink;
         SwContentAtPos aContentAtPos(IsAttrAtPos::InetAttr);
+        bool bIsSelection = m_pCursorShell->IsSelection();
+
         if (const_cast<SwCursorShell*>(m_pCursorShell)->GetContentAtPos(aRect.Pos(), aContentAtPos))
         {
             const SwFormatINetFormat* pItem = static_cast<const SwFormatINetFormat*>(aContentAtPos.aFnd.pAttr);
-            boost::property_tree::ptree aTree;
-            aTree.put("text", aContentAtPos.sStr);
-            aTree.put("link", pItem->GetValue());
-            std::stringstream aStream;
-            boost::property_tree::write_json(aStream, aTree, false);
-            sHyperlink = OString(aStream.str().c_str()).trim();
+            sHyperlink = buildHyperlinkJSON(aContentAtPos.sStr, pItem->GetValue());
+        }
+        else if (bIsSelection)
+        {
+            SwWrtShell* pShell = m_pCursorShell->GetDoc()->GetDocShell()->GetWrtShell();
+
+            if (pShell)
+            {
+                SfxItemSet aSet(m_pCursorShell->GetSfxViewShell()->GetPool(),
+                    svl::Items<RES_TXTATR_INETFMT,
+                    RES_TXTATR_INETFMT>{});
+                pShell->GetCurAttr(aSet);
+                if(SfxItemState::SET <= aSet.GetItemState( RES_TXTATR_INETFMT ))
+                {
+                    sHyperlink = buildHyperlinkJSON(m_pCursorShell->GetSelText(),
+                                                    aSet.GetItem(RES_TXTATR_INETFMT)->GetValue());
+                }
+            }
         }
 
         if (pViewShell)
commit d886d6bfc14aaff91325956f241c166d40cb2640
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Thu Dec 19 08:32:57 2019 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:15:41 2020 +0100

    lok: Resolves: Calc - selecting a hyperlink doesn't show link in dialog
    
    Change-Id: Ic4264fad8035029ba6593c91fa57efa772d394ca
    Reviewed-on: https://gerrit.libreoffice.org/85468
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89705
    Tested-by: Jenkins
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>

diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index e7e1c661fef1..7a2a3e412301 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -897,6 +897,23 @@ void ImpEditView::CalcAnchorPoint()
     }
 }
 
+namespace
+{
+
+// Build JSON message to be sent to Online
+OString buildHyperlinkJSON(const OUString& sText, const OUString& sLink)
+{
+    boost::property_tree::ptree aTree;
+    aTree.put("text", sText);
+    aTree.put("link", sLink);
+    std::stringstream aStream;
+    boost::property_tree::write_json(aStream, aTree, false);
+
+    return OString(aStream.str().c_str()).trim();
+}
+
+} // End of anon namespace
+
 void ImpEditView::ShowCursor( bool bGotoCursor, bool bForceVisCursor )
 {
     // No ShowCursor in an empty View ...
@@ -1139,12 +1156,24 @@ void ImpEditView::ShowCursor( bool bGotoCursor, bool bForceVisCursor )
                 {
                     if (auto pUrlField = dynamic_cast<const SvxURLField*>(pFld->GetField()))
                     {
-                        boost::property_tree::ptree aTree;
-                        aTree.put("text", pUrlField->GetRepresentation());
-                        aTree.put("link", pUrlField->GetURL());
-                        std::stringstream aStream;
-                        boost::property_tree::write_json(aStream, aTree, false);
-                        sHyperlink = OString(aStream.str().c_str()).trim();
+                        sHyperlink = buildHyperlinkJSON(pUrlField->GetRepresentation(), pUrlField->GetURL());
+                    }
+                }
+                else if (GetEditSelection().HasRange())
+                {
+                    EditView* pActiveView = GetEditViewPtr();
+
+                    if (pActiveView)
+                    {
+                        const SvxFieldItem* pFieldItem = pActiveView->GetFieldAtSelection();
+                        if (pFieldItem)
+                        {
+                            const SvxFieldData* pField = pFieldItem->GetField();
+                            if ( auto pUrlField = dynamic_cast<const SvxURLField*>( pField) )
+                            {
+                                sHyperlink = buildHyperlinkJSON(pUrlField->GetRepresentation(), pUrlField->GetURL());
+                            }
+                        }
                     }
                 }
 
commit d6d7c7f7c0b28b29f6b3096162386c317c88fee2
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Feb 12 05:39:07 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:14:59 2020 +0100

    Store and retrieve client visible area on ScViewData
    
    So that core will be aware of the visible area on the client
    side, and act accordingly when needed.
    
    Change-Id: Ieca9b23deb36f3e713704304672dd7037154e904
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88487
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Jenkins

diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index 162ff01492ea..1dc31b11fe71 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -333,6 +333,7 @@ private:
     bool                bGrowing;
 
     long                m_nLOKPageUpDownOffset;
+    tools::Rectangle    maLOKVisibleArea;///< The visible area in the LibreOfficeKit client.
 
     DECL_DLLPRIVATE_LINK( EditEngineHdl, EditStatus&, void );
 
@@ -554,6 +555,10 @@ public:
     void ForcePageUpDownOffset(long nTwips) { m_nLOKPageUpDownOffset = nTwips; }
     long GetPageUpDownOffset() const { return m_nLOKPageUpDownOffset; }
 
+    /// The visible area in the client (set by setClientVisibleArea).
+    const tools::Rectangle& getLOKVisibleArea() const { return maLOKVisibleArea; }
+    void setLOKVisibleArea(const tools::Rectangle& rArea) { maLOKVisibleArea = rArea; }
+
     void            KillEditView();
     void            ResetEditView();
     void            SetEditEngine( ScSplitPos eWhich,
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 6113506648e8..84d5ba33155b 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -954,6 +954,9 @@ void ScModelObj::setClientVisibleArea(const tools::Rectangle& rRectangle)
 
     // set the PgUp/PgDown offset
     pViewData->ForcePageUpDownOffset(rRectangle.GetHeight());
+
+    // Store the visible area so that we can use at places like shape insertion
+    pViewData->setLOKVisibleArea(rRectangle);
 }
 
 void ScModelObj::setOutlineState(bool bColumn, int nLevel, int nIndex, bool bHidden)
commit c7b360c703a17316f1610590701bef5bdda1c6d9
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Feb 12 05:49:11 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:10:44 2020 +0100

    lok: Center shape on insert also for Desktop view
    
    Change-Id: I85c3fe3d0166eb42f46f2aa65d0319e582b851af
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88489
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Jenkins

diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index cb00bb3ce66d..cee19352fdd8 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -19,7 +19,6 @@
 
 #include <comphelper/lok.hxx>
 #include <sfx2/bindings.hxx>
-#include <sfx2/lokhelper.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <svl/whiter.hxx>
 #include <unotools/moduleoptions.hxx>
@@ -321,7 +320,6 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
 
         // calc position and size
         bool bLOKIsActive = comphelper::LibreOfficeKit::isActive();
-        bool bIsMobile = comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView());
         Point aInsertPos;
         if(!bLOKIsActive)
         {
@@ -330,7 +328,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
             aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
             aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
         }
-        else if (bIsMobile)
+        else
         {
             aInsertPos = GetViewData().getLOKVisibleArea().Center();
 
@@ -340,10 +338,6 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
             aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
             aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
         }
-        else
-        {
-            aInsertPos = GetInsertPos();
-        }
 
         tools::Rectangle aNewObjectRectangle(aInsertPos, Size(nDefaultObjectSizeWidth, nDefaultObjectSizeHeight));
 
commit c28b2edf38a4288bbb005708801deeba57166fc4
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Feb 12 05:42:11 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:10:25 2020 +0100

    mobile: Center inserted shapes on visible area
    
    Change-Id: I366ef5d01ee3afb072b1f67d24015c889a41f4b7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88488
    Tested-by: Jenkins
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index cae192630ab9..cb00bb3ce66d 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -19,6 +19,7 @@
 
 #include <comphelper/lok.hxx>
 #include <sfx2/bindings.hxx>
+#include <sfx2/lokhelper.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <svl/whiter.hxx>
 #include <unotools/moduleoptions.hxx>
@@ -320,6 +321,7 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
 
         // calc position and size
         bool bLOKIsActive = comphelper::LibreOfficeKit::isActive();
+        bool bIsMobile = comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView());
         Point aInsertPos;
         if(!bLOKIsActive)
         {
@@ -328,6 +330,16 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq)
             aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
             aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
         }
+        else if (bIsMobile)
+        {
+            aInsertPos = GetViewData().getLOKVisibleArea().Center();
+
+            aInsertPos.setX(sc::TwipsToHMM(aInsertPos.X()));
+            aInsertPos.setY(sc::TwipsToHMM(aInsertPos.Y()));
+
+            aInsertPos.AdjustX( -sal_Int32(nDefaultObjectSizeWidth / 2) );
+            aInsertPos.AdjustY( -sal_Int32(nDefaultObjectSizeHeight / 2) );
+        }
         else
         {
             aInsertPos = GetInsertPos();
commit 005208e01047c14d97fe78325ac14e19db5b665a
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Mar 18 18:27:55 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:09:39 2020 +0100

    Give the legend checkbox a label
    
    So that we don't see a nameless checkbox on Online mobile
    
    Change-Id: I95e8910e96335a03ebad6dd46255a902df2c47a4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90707
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>

diff --git a/chart2/uiconfig/ui/sidebarelements.ui b/chart2/uiconfig/ui/sidebarelements.ui
index c4ec4cd49e2d..9db51b35a5d7 100644
--- a/chart2/uiconfig/ui/sidebarelements.ui
+++ b/chart2/uiconfig/ui/sidebarelements.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="chart">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkGrid" id="ChartElementsPanel">
@@ -9,9 +9,9 @@
       <object class="GtkBox" id="container">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="border_width">6</property>
         <property name="orientation">vertical</property>
         <property name="spacing">6</property>
-        <property name="border_width">6</property>
         <child>
           <object class="GtkFrame" id="frame1">
             <property name="visible">True</property>
@@ -97,22 +97,6 @@
                   <object class="GtkGrid" id="grid5">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton_legend">
-                        <property name="tooltip_text" translatable="yes" context="sidebarelements|checkbutton_legend|tooltip_text">Show Legend</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="xalign">0</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="margin_right">5</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">0</property>
-                      </packing>
-                    </child>
                     <child>
                       <object class="GtkBox" id="box_legend">
                         <property name="visible">True</property>
@@ -123,6 +107,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="halign">end</property>
+                            <property name="margin_left">4</property>
                             <property name="label" translatable="yes" context="sidebarelements|placement_label">_Placement:</property>
                             <property name="use_underline">True</property>
                             <property name="ellipsize">end</property>
@@ -149,12 +134,28 @@
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">True</property>
-                            <property name="position">3</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
                       <packing>
-                        <property name="left_attach">1</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="checkbutton_legend">
+                        <property name="label" translatable="yes" context="sidebarelements|checkbutton_legend">Show legend</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip_text" translatable="yes" context="sidebarelements|checkbutton_legend|tooltip_text">Show Legend</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
                         <property name="top_attach">0</property>
                       </packing>
                     </child>
commit bb0af9cfa2aa8b2d1fc675130c7353b90585b5f4
Author:     Mert Tumer <mert.tumer at collabora.com>
AuthorDate: Tue Apr 14 18:15:59 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:06:27 2020 +0100

    Added unique id for number format combobox
    
    This will allow us to control it for the mobilewizard
    easily rather than using the id of 'category' which is
    not unique.
    
    Change-Id: I61b612d5355584597a16942b7151a82376033a45
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92202
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
index 7d8a8401ac84..f89072bf7cae 100644
--- a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
+++ b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
@@ -91,6 +91,7 @@ void NumberFormatPropertyPanel::Initialize()
     mpLbCategory->SetSelectHdl ( LINK(this, NumberFormatPropertyPanel, NumFormatSelectHdl) );
     mpLbCategory->SelectEntryPos(0);
     mpLbCategory->SetDropDownLineCount(mpLbCategory->GetEntryCount());
+    mpLbCategory->set_id("numberformatcombobox");
 
     Link<Edit&,void> aLink = LINK(this, NumberFormatPropertyPanel, NumFormatValueHdl);
 
commit 38faf776b4414fc6ab5340f3514a8d0444da5cb3
Author:     Pranam Lashkari <lpranam at collabora.com>
AuthorDate: Thu Apr 23 12:54:23 2020 +0530
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Sat May 23 15:05:08 2020 +0100

    Added separate color picker for slide background gradient
    
    Change-Id: I27b60244f011cb482affa5f47cde170daf3fc309
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92741
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>

diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx
index acb1e513ff08..453421e3c45d 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -134,7 +134,8 @@ SlideBackground::SlideBackground(
     mpMasterSlide->set_width_request(0);
     get(mpBackgroundLabel, "label3");
     get(mpFillAttr, "fillattr1");
-    get(mpFillGrad, "fillattr2");
+    get(mpFillGrad1, "fillattr2");
+    get(mpFillGrad2, "fillattr3");
     get(mpFillStyle, "fillstyle");
     get(mpFillLB, "fillattr");
     get(mpInsertImage, "button2");
@@ -225,7 +226,8 @@ void SlideBackground::Initialize()
 
     mpFillStyle->SetSelectHdl(LINK(this, SlideBackground, FillStyleModifyHdl));
     mpFillLB->SetSelectHdl(LINK(this, SlideBackground, FillColorHdl));
-    mpFillGrad->SetSelectHdl(LINK(this, SlideBackground, FillColorHdl));
+    mpFillGrad1->SetSelectHdl(LINK(this, SlideBackground, FillColorHdl));
+    mpFillGrad2->SetSelectHdl(LINK(this, SlideBackground, FillColorHdl));
     mpFillAttr->SetSelectHdl(LINK(this, SlideBackground, FillBackgroundHdl));
 
     ViewShell* pMainViewShell = mrBase.GetMainViewShell().get();
@@ -366,13 +368,15 @@ void SlideBackground::Update()
         {
             mpFillLB->Hide();
             mpFillAttr->Hide();
-            mpFillGrad->Hide();
+            mpFillGrad1->Hide();
+            mpFillGrad2->Hide();
         }
         break;
         case SOLID:
         {
             mpFillAttr->Hide();
-            mpFillGrad->Hide();
+            mpFillGrad1->Hide();
+            mpFillGrad2->Hide();
             mpFillLB->Show();
             const Color aColor = GetColorSetOrDefault();
             mpFillLB->SelectEntry(aColor);
@@ -380,15 +384,16 @@ void SlideBackground::Update()
         break;
         case GRADIENT:
         {
-            mpFillLB->Show();
+            mpFillLB->Hide();
             mpFillAttr->Hide();
-            mpFillGrad->Show();
+            mpFillGrad1->Show();
+            mpFillGrad2->Show();
 
             const XGradient xGradient = GetGradientSetOrDefault();
             const Color aStartColor = xGradient.GetStartColor();
-            mpFillLB->SelectEntry(aStartColor);
+            mpFillGrad1->SelectEntry(aStartColor);
             const Color aEndColor = xGradient.GetEndColor();
-            mpFillGrad->SelectEntry(aEndColor);
+            mpFillGrad2->SelectEntry(aEndColor);
         }
         break;
 
@@ -398,7 +403,8 @@ void SlideBackground::Update()
             mpFillAttr->Show();
             mpFillAttr->Clear();
             mpFillAttr->Fill(pSh->GetItem(SID_HATCH_LIST)->GetHatchList());
-            mpFillGrad->Hide();
+            mpFillGrad1->Hide();
+            mpFillGrad2->Hide();
 
             const OUString aHatchName = GetHatchingSetOrDefault();
             mpFillAttr->SelectEntry( aHatchName );
@@ -411,7 +417,8 @@ void SlideBackground::Update()
             mpFillLB->Hide();
             mpFillAttr->Show();
             mpFillAttr->Clear();
-            mpFillGrad->Hide();
+            mpFillGrad1->Hide();
+            mpFillGrad2->Hide();
             OUString aName;
             if(nPos == BITMAP)
             {
@@ -661,7 +668,8 @@ void SlideBackground::dispose()
     mpMasterSlide.clear();
     mpBackgroundLabel.clear();
     mpFillAttr.clear();
-    mpFillGrad.clear();
+    mpFillGrad1.clear();
+    mpFillGrad2.clear();
     mpFillStyle.clear();
     mpFillLB.clear();
     mpInsertImage.clear();
@@ -1076,8 +1084,8 @@ IMPL_LINK_NOARG(SlideBackground, FillColorHdl, SvxColorListBox&, void)
         case drawing::FillStyle_GRADIENT:
         {
             XGradient aGradient;
-            aGradient.SetStartColor(mpFillLB->GetSelectEntryColor());
-            aGradient.SetEndColor(mpFillGrad->GetSelectEntryColor());
+            aGradient.SetStartColor(mpFillGrad1->GetSelectEntryColor());
+            aGradient.SetEndColor(mpFillGrad2->GetSelectEntryColor());
 
             // the name doesn't really matter, it'll be converted to unique one eventually,
             // but it has to be non-empty
diff --git a/sd/source/ui/sidebar/SlideBackground.hxx b/sd/source/ui/sidebar/SlideBackground.hxx
index 41963834b53c..76e6cf33f2b1 100644
--- a/sd/source/ui/sidebar/SlideBackground.hxx
+++ b/sd/source/ui/sidebar/SlideBackground.hxx
@@ -90,7 +90,8 @@ private:
     VclPtr<SvxFillTypeBox> mpFillStyle;
     VclPtr<SvxColorListBox> mpFillLB;
     VclPtr<SvxFillAttrBox> mpFillAttr;
-    VclPtr<SvxColorListBox> mpFillGrad;
+    VclPtr<SvxColorListBox> mpFillGrad1;
+    VclPtr<SvxColorListBox> mpFillGrad2;
     VclPtr<Button> mpInsertImage;
     VclPtr<CheckBox> mpDspMasterBackground;
     VclPtr<CheckBox> mpDspMasterObjects;
diff --git a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui
index 256f06935ee4..2c4e4202a6e6 100644
--- a/sd/uiconfig/simpress/ui/sidebarslidebackground.ui
+++ b/sd/uiconfig/simpress/ui/sidebarslidebackground.ui
@@ -155,6 +155,20 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="hexpand">True</property>
+            <property name="has_tooltip">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">4</property>
+          </packing>
+        </child>
+        <child>
+          <object class="svxcorelo-SvxColorListBox" id="fillattr3">
+            <property name="width_request">150</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="has_tooltip">True</property>
           </object>
           <packing>
             <property name="left_attach">1</property>


More information about the Libreoffice-commits mailing list