[Libreoffice-commits] core.git: Branch 'feature/skia' - 167 commits - bin/update_pch compilerplugins/clang compilerplugins/Makefile-clang.mk config_host/config_features.h.in config_host/config_skia.h.in config_host.mk.in configure.ac cui/inc cui/source cui/uiconfig download.lst drawinglayer/source external/mdds external/Module_external.mk external/skia include/o3tl include/sal include/svl include/svtools include/vcl Makefile.fetch officecfg/registry package/source readlicense_oo/license RepositoryExternal.mk sal/osl schema/libreoffice sc/inc sc/qa sc/source sd/source sd/uiconfig solenv/clang-format solenv/CompilerTest_compilerplugins_clang.mk solenv/gbuild solenv/sanitizers starmath/source svl/source svtools/source svtools/uiconfig sw/inc sw/qa sw/source vcl/backendtest vcl/inc vcl/Library_vcl.mk vcl/Library_vclplug_gen.mk vcl/Library_vclplug_win.mk vcl/opengl vcl/qa vcl/README.vars vcl/skia vcl/source vcl/unx vcl/win vcl/workben writerfilter/source xmloff/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Tue Nov 26 11:59:45 UTC 2019


Rebased ref, commits from common ancestor:
commit c16502c38de34c460bc433ebc09a32e4c088214e
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Nov 25 15:51:24 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:29 2019 +0100

    ofz#19065 sw: invalid fieldmarks created in SwWW8ImplReader::End_Field
    
    The problem is that the check added in commit
    06767a5394f1dfba71c4f0a2a07daa5664bdbd01 "sw: WW8: do not create
    fieldmark with start in frame and end in body" doesn't work as well as
    imagined; the CheckNodesRange will only check against mismatching
    top-level and second-level (in the non-body-text top-levels)
    sections, whereas in this case the start is in one table cell and the
    end in the next one.
    
    So replace that and move the check into MarkManager::makeMark(),
    so other things than WW8 import are also checked.
    
    Change-Id: I2bf32e7b579d87600b6b6718a3222f37c14aa53d
    Reviewed-on: https://gerrit.libreoffice.org/83585
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/core/data/ww8/pass/ofz19065.doc b/sw/qa/core/data/ww8/pass/ofz19065.doc
new file mode 100644
index 000000000000..a242f13bf8e6
Binary files /dev/null and b/sw/qa/core/data/ww8/pass/ofz19065.doc differ
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index dec1b3d58654..f736348480a5 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -583,6 +583,15 @@ namespace sw { namespace mark
         }
 
         if ((eType == MarkType::TEXT_FIELDMARK || eType == MarkType::DATE_FIELDMARK)
+            && (rPaM.GetPoint()->nNode.GetNode().StartOfSectionNode() != rPaM.GetMark()->nNode.GetNode().StartOfSectionNode()
+                || (pSepPos && rPaM.GetPoint()->nNode.GetNode().StartOfSectionNode() != pSepPos->nNode.GetNode().StartOfSectionNode())))
+        {
+            SAL_WARN("sw.core", "MarkManager::makeMark(..)"
+                " - invalid range on fieldmark, different nodes array sections");
+            return nullptr;
+        }
+
+        if ((eType == MarkType::TEXT_FIELDMARK || eType == MarkType::DATE_FIELDMARK)
             // can't check for Copy - it asserts - but it's also obviously unnecessary
             && eMode == InsertMode::New
             && sw::mark::IsFieldmarkOverlap(rPaM))
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 39e13b8cac5d..e6f31bb0736a 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -533,12 +533,6 @@ sal_uInt16 SwWW8ImplReader::End_Field()
         case ww::eFORMTEXT:
         if (bUseEnhFields && m_pPaM!=nullptr && m_pPaM->GetPoint()!=nullptr) {
             SwPosition aEndPos = *m_pPaM->GetPoint();
-            if (!::CheckNodesRange(m_aFieldStack.back().GetPtNode(),
-                        aEndPos.nNode, true))
-            {   // example ofz7322-1.doc
-                SAL_INFO("sw.ww8", "skipping field with invalid node range");
-                break;
-            }
             SwPaM aFieldPam( m_aFieldStack.back().GetPtNode(), m_aFieldStack.back().GetPtContent(), aEndPos.nNode, aEndPos.nContent.GetIndex());
             IDocumentMarkAccess* pMarksAccess = m_rDoc.getIDocumentMarkAccess( );
             IFieldmark *pFieldmark = pMarksAccess->makeFieldBookmark(
commit a9a0e4b0019a93fe4c3edc8de892ce38b5b28206
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Nov 24 19:27:09 2019 +0000
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:28 2019 +0100

    dynamic_cast followed by the same dynamic_cast
    
    Change-Id: I182763eb693eb9f681ac90f25e6367919328d454
    Reviewed-on: https://gerrit.libreoffice.org/83618
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx
index ab6ce1236e31..2c2391081b96 100644
--- a/sw/source/filter/xml/xmlexpit.cxx
+++ b/sw/source/filter/xml/xmlexpit.cxx
@@ -146,15 +146,13 @@ void SvXMLExportItemMapper::exportXML( const SvXMLExport& rExport,
                 rAttrList.AddAttribute( sName, aValue );
             }
         }
-        if( dynamic_cast<const SvXMLAttrContainerItem*>( &rItem) !=  nullptr )
+
+        if (const SvXMLAttrContainerItem *pUnknown = dynamic_cast<const SvXMLAttrContainerItem*>(&rItem))
         {
             std::unique_ptr<SvXMLNamespaceMap> pNewNamespaceMap;
             const SvXMLNamespaceMap *pNamespaceMap = &rNamespaceMap;
 
-            const SvXMLAttrContainerItem *pUnknown =
-                dynamic_cast<const SvXMLAttrContainerItem*>( &rItem  );
-
-            const sal_uInt16 nCount = pUnknown ? pUnknown->GetAttrCount() : 0;
+            const sal_uInt16 nCount = pUnknown->GetAttrCount();
             for( sal_uInt16 i=0; i < nCount; i++ )
             {
                 const OUString sPrefix( pUnknown->GetAttrPrefix( i ) );
commit 264894a4f88291eb23fa3766a4d624ad0d6e8274
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Nov 23 19:56:21 2019 +0000
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:28 2019 +0100

    cid#706206 Time of check time of use
    
    add attribute markup
    
    Change-Id: I8d70513ae3e7abf80368016343f69060f197eae0
    Reviewed-on: https://gerrit.libreoffice.org/83586
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sal/osl/unx/file_volume.cxx b/sal/osl/unx/file_volume.cxx
index 7125580f7fe9..3c51a909359e 100644
--- a/sal/osl/unx/file_volume.cxx
+++ b/sal/osl/unx/file_volume.cxx
@@ -214,6 +214,7 @@ static oslFileError osl_psz_getVolumeInformation (
     {
         OSL_detail_STATFS_STRUCT sfs;
         OSL_detail_STATFS_INIT(sfs);
+        // coverity[fs_check_call : FALSE]
         if ((OSL_detail_STATFS(pszDirectory, &sfs)) < (0))
         {
             oslFileError result = oslTranslateFileError(errno);
commit f0397b1a3567f149ba28564dcdd5cb6c63e9f1d5
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Nov 25 10:33:42 2019 +0000
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:28 2019 +0100

    tdf#126043 cache the appname and filename
    
    Change-Id: I10987f8a447785eb0d9887f94ee0ffb0da99649a
    Reviewed-on: https://gerrit.libreoffice.org/83658
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx
index fc54f4628705..9433b860897e 100644
--- a/cui/source/customize/SvxNotebookbarConfigPage.cxx
+++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx
@@ -170,12 +170,10 @@ void SvxNotebookbarConfigPage::Init()
     m_xContentsListBox->clear();
     m_xSaveInListBox->clear();
     CustomNotebookbarGenerator::createCustomizedUIFile();
-    OUString sAppName, sFileName;
-    CustomNotebookbarGenerator::getFileNameAndAppName(sAppName, sFileName);
-    OUString sNotebookbarInterface = getFileName(sFileName);
+    OUString sNotebookbarInterface = getFileName(m_sFileName);
 
     OUString sScopeName
-        = utl::ConfigManager::getProductName() + " " + sAppName + " -  " + sNotebookbarInterface;
+        = utl::ConfigManager::getProductName() + " " + m_sAppName + " -  " + sNotebookbarInterface;
     OUString sSaveInListBoxID = notebookbarTabScope;
 
     m_xSaveInListBox->append(sSaveInListBoxID, sScopeName);
@@ -213,12 +211,10 @@ short SvxNotebookbarConfigPage::QueryReset()
         OUString sOriginalUIPath = CustomNotebookbarGenerator::getOriginalUIPath();
         OUString sCustomizedUIPath = CustomNotebookbarGenerator::getCustomizedUIPath();
         osl::File::copy(sOriginalUIPath, sCustomizedUIPath);
-        OUString sAppName, sFileName;
-        CustomNotebookbarGenerator::getFileNameAndAppName(sAppName, sFileName);
-        OUString sNotebookbarInterface = getFileName(sFileName);
+        OUString sNotebookbarInterface = getFileName(m_sFileName);
         Sequence<OUString> sSequenceEntries;
         CustomNotebookbarGenerator::setCustomizedUIItem(sSequenceEntries, sNotebookbarInterface);
-        OUString sUIPath = "modules/s" + sAppName.toAsciiLowerCase() + "/ui/";
+        OUString sUIPath = "modules/s" + m_sAppName.toAsciiLowerCase() + "/ui/";
         sfx2::SfxNotebookBar::ReloadNotebookBar(sUIPath);
     }
     return nValue;
@@ -229,9 +225,6 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
                                                     const OUString& sUIItemCommand, int nPos,
                                                     int nStartCol)
 {
-    OUString sAppName, sFileName;
-    CustomNotebookbarGenerator::getFileNameAndAppName(sAppName, sFileName);
-
     css::uno::Reference<css::container::XNameAccess> m_xCommandToLabelMap,
         m_xGlobalCommandToLabelMap;
     uno::Reference<uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext();
@@ -241,7 +234,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
     uno::Sequence<beans::PropertyValue> aPropSeq, aGlobalPropSeq;
 
     xNameAccess->getByName("com.sun.star.text.GlobalDocument") >>= m_xGlobalCommandToLabelMap;
-    xNameAccess->getByName(getModuleId(sAppName)) >>= m_xCommandToLabelMap;
+    xNameAccess->getByName(getModuleId(m_sAppName)) >>= m_xCommandToLabelMap;
 
     try
     {
@@ -559,10 +552,7 @@ static void EditRegistryFile(const OUString& sUIItemId, const OUString& sSetEntr
 void SvxNotebookbarEntriesListBox::ChangedVisibility(int nRow)
 {
     OUString sUIItemId = m_xControl->get_selected_id();
-    OUString sAppName;
-    OUString sFileName;
-    CustomNotebookbarGenerator::getFileNameAndAppName(sAppName, sFileName);
-    OUString sNotebookbarInterface = getFileName(sFileName);
+    OUString sNotebookbarInterface = getFileName(m_pPage->GetFileName());
 
     OUString sVisible;
     if (m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE)
@@ -574,7 +564,7 @@ void SvxNotebookbarEntriesListBox::ChangedVisibility(int nRow)
     sSeqOfEntries[0] = sSetEntries;
     EditRegistryFile(sUIItemId, sSetEntries, sNotebookbarInterface);
     CustomNotebookbarGenerator::modifyCustomizedUIFile(sSeqOfEntries);
-    OUString sUIPath = "modules/s" + sAppName.toAsciiLowerCase() + "/ui/";
+    OUString sUIPath = "modules/s" + m_pPage->GetAppName().toAsciiLowerCase() + "/ui/";
     sfx2::SfxNotebookBar::ReloadNotebookBar(sUIPath);
 }
 
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 4e084ce21951..2ff9df40902d 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -48,6 +48,7 @@
 
 #include <acccfg.hxx>
 #include <cfg.hxx>
+#include <CustomNotebookbarGenerator.hxx>
 #include <SvxMenuConfigPage.hxx>
 #include <SvxToolbarConfigPage.hxx>
 #include <SvxNotebookbarConfigPage.hxx>
@@ -992,6 +993,8 @@ SvxConfigPage::SvxConfigPage(weld::Container* pPage, weld::DialogController* pCo
     , m_xAddCommandButton(m_xBuilder->weld_button("add"))
     , m_xRemoveCommandButton(m_xBuilder->weld_button("remove"))
 {
+    CustomNotebookbarGenerator::getFileNameAndAppName(m_sAppName, m_sFileName);
+
     m_xTopLevelListBox->connect_changed(LINK(this, SvxConfigPage, SelectElementHdl));
 
     weld::TreeView& rTreeView = m_xFunctions->get_widget();
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index 93f4346aa15f..0cd522354124 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -418,6 +418,8 @@ protected:
     std::unique_ptr<weld::Button>              m_xAddCommandButton;
     std::unique_ptr<weld::Button>              m_xRemoveCommandButton;
 
+    OUString m_sAppName;
+    OUString m_sFileName;
 
     SvxConfigPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet&);
 
@@ -464,6 +466,8 @@ public:
     static bool     CanConfig( const OUString& rModuleId );
 
     SaveInData*     GetSaveInData() { return pCurrentSaveInData; }
+    const OUString& GetAppName() const { return m_sAppName; }
+    const OUString& GetFileName() const { return m_sFileName; }
 
     int             AddFunction(int nTarget,
                                 bool bAllowDuplicates);
commit 471686665f362cda6a9dbdf1ce00d4aeb91b67b0
Author:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Mon Nov 25 11:31:02 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:28 2019 +0100

    tdf#120734 Increase max lookup value to 10.000
    
    Writer stops analyzing text attributes when the selection
    has more paragraphs than this max lookup value.
    Increase this value to 10.000 as it's quite possible to have
    longer texts with more than 1.000 paragraphs with the same style.
    
    This also fixes tdf#112800.
    
    Change-Id: Icd0c4026f55058af77334930e3601d18f9aae6ae
    Reviewed-on: https://gerrit.libreoffice.org/83657
    Tested-by: Jenkins
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>

diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx
index 64227cde6291..20abffc64ea4 100644
--- a/sw/source/core/edit/edattr.cxx
+++ b/sw/source/core/edit/edattr.cxx
@@ -52,7 +52,7 @@
 // => no attributes
 static sal_uInt16 getMaxLookup()
 {
-    return 1000;
+    return 10000;
 }
 
 bool SwEditShell::GetPaMAttr( SwPaM* pPaM, SfxItemSet& rSet,
commit d26d824a0c9f57969e856e0dd25a80ac9219ded0
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 25 20:07:02 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:28 2019 +0100

    tdf#128629 vcl DrawTransformedBitmapEx: do scaling for flipped bitmaps
    
    Regression from commit dd4a67084853a030bf4b9f1f85d728620e0604a5 (vcl:
    avoid downscale && upscale in DrawTransformedBitmapEx(), 2019-10-08),
    the original problem to be solved was that in case you downscale a
    bitmap and upscale it later, then you get blurry result, so we try to
    avoid touching the pixels and just scale during rendering of the bitmap.
    
    However, here the problem is that scaling is also (mis)used for flip
    purposes, so go back to the original behavior for negative scaling.
    
    This keeps the original problem fixed and solves the loss of flip as
    well.
    
    Change-Id: Ic9a6eb49d55f2fb8ccf18d982e574398f010cabd
    Reviewed-on: https://gerrit.libreoffice.org/83711
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx
index f4a27b0b0558..8b2dd7c3a841 100644
--- a/vcl/qa/cppunit/outdev.cxx
+++ b/vcl/qa/cppunit/outdev.cxx
@@ -31,6 +31,7 @@ public:
     void testGetReadableFontColorPrinter();
     void testGetReadableFontColorWindow();
     void testDrawTransformedBitmapEx();
+    void testDrawTransformedBitmapExFlip();
 
     CPPUNIT_TEST_SUITE(VclOutdevTest);
     CPPUNIT_TEST(testVirtualDevice);
@@ -40,6 +41,7 @@ public:
     CPPUNIT_TEST(testGetReadableFontColorPrinter);
     CPPUNIT_TEST(testGetReadableFontColorWindow);
     CPPUNIT_TEST(testDrawTransformedBitmapEx);
+    CPPUNIT_TEST(testDrawTransformedBitmapExFlip);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -201,6 +203,57 @@ void VclOutdevTest::testDrawTransformedBitmapEx()
     }
 }
 
+void VclOutdevTest::testDrawTransformedBitmapExFlip()
+{
+    // Create a virtual device, and connect a metafile to it.
+    // Also create a 16x16 bitmap.
+    ScopedVclPtrInstance<VirtualDevice> pVDev;
+    Bitmap aBitmap(Size(16, 16), 24);
+    {
+        // Fill the top left quarter with black.
+        BitmapScopedWriteAccess pWriteAccess(aBitmap);
+        pWriteAccess->Erase(COL_WHITE);
+        for (int i = 0; i < 8; ++i)
+        {
+            for (int j = 0; j < 8; ++j)
+            {
+                pWriteAccess->SetPixel(j, i, COL_BLACK);
+            }
+        }
+    }
+    BitmapEx aBitmapEx(aBitmap);
+    basegfx::B2DHomMatrix aMatrix;
+    // Negative y scale: bitmap should be upside down, so the black part goes to the bottom left.
+    aMatrix.scale(8, -8);
+    // Rotate 90 degrees clockwise, so the black part goes back to the top left.
+    aMatrix.rotate(M_PI / 2);
+    GDIMetaFile aMtf;
+    aMtf.Record(pVDev.get());
+
+    // Draw the scaled and rotated bitmap on the vdev.
+    pVDev->DrawTransformedBitmapEx(aMatrix, aBitmapEx);
+    CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aMtf.GetActionSize());
+    MetaAction* pAction = aMtf.GetAction(0);
+    CPPUNIT_ASSERT_EQUAL(MetaActionType::BMPEXSCALE, pAction->GetType());
+    auto pBitmapAction = static_cast<MetaBmpExScaleAction*>(pAction);
+    const BitmapEx& rBitmapEx = pBitmapAction->GetBitmapEx();
+
+    aBitmap = rBitmapEx.GetBitmap();
+    Bitmap::ScopedReadAccess pAccess(aBitmap);
+    int nX = 8 * 0.25;
+    int nY = 8 * 0.25;
+    BitmapColor aColor = pAccess->GetPixel(nY, nX);
+    std::stringstream ss;
+    ss << "Color is expected to be black, is " << aColor.AsRGBHexString();
+    ss << " (row " << nY << ", col " << nX << ")";
+    // Without the accompanying fix in place, this test would have failed with:
+    // - Expected: c[00000000]
+    // - Actual  : c[ffffff00]
+    // - Color is expected to be black, is ffffff (row 2, col 2)
+    // i.e. the top left quarter of the image was not black, due to a missing flip.
+    CPPUNIT_ASSERT_EQUAL_MESSAGE(ss.str(), COL_BLACK, Color(aColor));
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(VclOutdevTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/vcl/source/outdev/bitmap.cxx b/vcl/source/outdev/bitmap.cxx
index 79c30b830fed..7ab069c2f443 100644
--- a/vcl/source/outdev/bitmap.cxx
+++ b/vcl/source/outdev/bitmap.cxx
@@ -1279,7 +1279,8 @@ void OutputDevice::DrawTransformedBitmapEx(
             basegfx::B2DVector aFullScale, aFullTranslate;
             double fFullRotate, fFullShearX;
             aFullTransform.decompose(aFullScale, aFullTranslate, fFullRotate, fFullShearX);
-            if (aFullScale.getX() != 0 && aFullScale.getY() != 0)
+            // Require positive scaling, negative scaling would loose horizontal or vertical flip.
+            if (aFullScale.getX() > 0 && aFullScale.getY() > 0)
             {
                 basegfx::B2DHomMatrix aTransform = basegfx::utils::createScaleB2DHomMatrix(
                     rOriginalSizePixel.getWidth() / aFullScale.getX(),
commit 8fdb7f4ddc39671c1d206dfa02fa591c39d0f70b
Author:     Julien Nabet <serval2412 at yahoo.fr>
AuthorDate: Tue Nov 26 07:51:18 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:27 2019 +0100

    Fix 9d63592d530e9ad5ab2d6aee0aba5bc0c117aae3 (take 2)
    
    Change-Id: I565bc0daa1f5902d6e619cb30c64c0c84475383e
    Reviewed-on: https://gerrit.libreoffice.org/83725
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/sd/source/filter/eppt/grouptable.hxx b/sd/source/filter/eppt/grouptable.hxx
index a88201e195ee..a23283aa663b 100644
--- a/sd/source/filter/eppt/grouptable.hxx
+++ b/sd/source/filter/eppt/grouptable.hxx
@@ -32,7 +32,7 @@ struct GroupEntry
 
     explicit GroupEntry( css::uno::Reference< css::container::XIndexAccess > const & rIndex )
       : mnCurrentPos(0),
-        mnCount(mXIndexAccess->getCount()),
+        mnCount(rIndex->getCount()),
         mXIndexAccess(rIndex)
     {
     };
commit a1167d2b0a51cf49e218463380119e423e2feccc
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 17:05:45 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:27 2019 +0100

    Remove bogus enumarray[_const]_iterator assignment ops
    
    ...that write into the m_buf of reference type (or at least would try to if the
    assignment op were ever instantiated for enumarray_const_iterator).  They have
    been present since a0032a2dc2e4ac7615baaacdde5fefa64048822e "improve
    o3tl::enumarray const-ness" turned m_buf from a pointer to a reference.  (Found
    with recent Clang 10 trunk -Werror,-Wdeprecated-copy, cf.
    <https://gerrit.libreoffice.org/#/c/83698/> "Remove some redundantly
    user-declared copy ctors and assignment ops".)
    
    But then at least some MSVC 2017 would still want to implicitly define them as
    non-deleted (see <https://ci.libreoffice.org/job/gerrit_windows/50602/> trying
    to build a prior version of this change) and fail, so change m_buf from
    reference to pointer.
    
    Change-Id: I3d4a420d2c4c6a6e966df74cfa33b5e00e0af5f6
    Reviewed-on: https://gerrit.libreoffice.org/83701
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/o3tl/enumarray.hxx b/include/o3tl/enumarray.hxx
index ca012e197f27..a3c09d56bea0 100644
--- a/include/o3tl/enumarray.hxx
+++ b/include/o3tl/enumarray.hxx
@@ -85,7 +85,7 @@ public:
 
 template<typename EA>
 class enumarray_iterator {
-    EA&         m_buf;
+    EA*         m_buf;
     size_t      m_pos;
 public:
     typedef enumarray_iterator<EA>  self_type;
@@ -100,19 +100,17 @@ public:
     typedef typename EA::value_type&   reference;
 
     enumarray_iterator(EA& b, size_t start_pos)
-         : m_buf(b), m_pos(start_pos) {}
-    value_type& operator*()  const { return m_buf[static_cast<key_type>(m_pos)]; }
+         : m_buf(&b), m_pos(start_pos) {}
+    value_type& operator*()  const { return (*m_buf)[static_cast<key_type>(m_pos)]; }
     value_type* operator->() const { return &(operator*()); }
     self_type&  operator++() { ++m_pos; return *this; }
-    bool        operator!=(self_type const & other) const { return &m_buf != &other.m_buf || m_pos != other.m_pos; }
-    bool        operator==(self_type const & other) const { return &m_buf == &other.m_buf && m_pos == other.m_pos; }
-    enumarray_iterator&
-                operator=(self_type const & other) { m_buf = other.m_buf; m_pos = other.m_pos; return *this; }
+    bool        operator!=(self_type const & other) const { return m_buf != other.m_buf || m_pos != other.m_pos; }
+    bool        operator==(self_type const & other) const { return m_buf == other.m_buf && m_pos == other.m_pos; }
 };
 
 template<typename EA>
 class enumarray_const_iterator {
-    EA const &  m_buf;
+    EA const *  m_buf;
     size_t      m_pos;
 public:
     typedef enumarray_const_iterator<EA>    self_type;
@@ -127,14 +125,12 @@ public:
     typedef typename EA::value_type const & reference;
 
     enumarray_const_iterator(EA const & b, size_t start_pos)
-         : m_buf(b), m_pos(start_pos) {}
-    value_type& operator*()  const { return m_buf[static_cast<key_type>(m_pos)]; }
+         : m_buf(&b), m_pos(start_pos) {}
+    value_type& operator*()  const { return (*m_buf)[static_cast<key_type>(m_pos)]; }
     value_type* operator->() const { return &(operator*()); }
     self_type&  operator++() { ++m_pos; return *this; }
-    bool        operator!=(self_type const & other) const { return &m_buf != &other.m_buf || m_pos != other.m_pos; }
-    bool        operator==(self_type const & other) const { return &m_buf == &other.m_buf && m_pos == other.m_pos; }
-    enumarray_const_iterator&
-                operator=(self_type const & other) { m_buf = other.m_buf; m_pos = other.m_pos; return *this; }
+    bool        operator!=(self_type const & other) const { return m_buf != other.m_buf || m_pos != other.m_pos; }
+    bool        operator==(self_type const & other) const { return m_buf == other.m_buf && m_pos == other.m_pos; }
 };
 
 }; // namespace o3tl
commit f820ef787066f0348fb1e5f22adec98e1bdb4ce3
Author:     Zdeněk Crhonek <zcrhonek at gmail.com>
AuthorDate: Mon Nov 25 20:50:50 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:27 2019 +0100

    uitest for bug tdf#122232
    
    Change-Id: I40045b46f5cf8063e41211f9f7ea55e712036cd2
    Reviewed-on: https://gerrit.libreoffice.org/83713
    Tested-by: Jenkins
    Reviewed-by: Zdenek Crhonek <zcrhonek at gmail.com>

diff --git a/sc/qa/uitest/calc_tests/data/tdf122232.ods b/sc/qa/uitest/calc_tests/data/tdf122232.ods
new file mode 100644
index 000000000000..23dc98f61308
Binary files /dev/null and b/sc/qa/uitest/calc_tests/data/tdf122232.ods differ
diff --git a/sc/qa/uitest/calc_tests9/tdf122232.py b/sc/qa/uitest/calc_tests9/tdf122232.py
new file mode 100644
index 000000000000..16cce021914d
--- /dev/null
+++ b/sc/qa/uitest/calc_tests9/tdf122232.py
@@ -0,0 +1,49 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict
+from uitest.path import get_srcdir_url
+from libreoffice.calc.document import get_sheet_from_doc
+from libreoffice.calc.conditional_format import get_conditional_format_from_sheet
+from uitest.debug import sleep
+from libreoffice.calc.document import get_cell_by_position
+from libreoffice.uno.propertyvalue import mkPropertyValues
+import org.libreoffice.unotest
+import pathlib
+
+def get_url_for_data_file(file_name):
+    return pathlib.Path(org.libreoffice.unotest.makeCopyFromTDOC(file_name)).as_uri()
+
+#Bug 122232 - UI: Pressing Enter in a protected sheet doesn't jump to next row in every case
+
+class tdf122232(UITestCase):
+
+    def test_tdf122232_press_Enter_key_jump(self):
+        calc_doc = self.ui_test.load_file(get_url_for_data_file("tdf122232.ods"))
+        xCalcDoc = self.xUITest.getTopFocusWindow()
+        gridwin = xCalcDoc.getChild("grid_window")
+        document = self.ui_test.get_component()
+        #Start with from C6. Press tabulator to reach G6.
+        gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "C6"}))
+        gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RIGHT"}))
+        gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "LEFT"}))
+
+        gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+        gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+        #Press "Enter".
+        gridWinState = get_state_as_dict(gridwin)
+        self.assertEqual(gridWinState["CurrentRow"], "5")
+        self.assertEqual(gridWinState["CurrentColumn"], "6")
+        gridwin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"}))
+        #Cursor jumps to C29 instead of C7.
+        gridWinState = get_state_as_dict(gridwin)
+        self.assertEqual(gridWinState["CurrentRow"], "6")
+        self.assertEqual(gridWinState["CurrentColumn"], "2")
+
+        self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
commit 165f5dc8572e971572e6169236a2fa995bdf0c1f
Author:     Julien Nabet <serval2412 at yahoo.fr>
AuthorDate: Tue Nov 26 08:48:24 2019 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:27 2019 +0100

    Revert "Fix 9d63592d530e9ad5ab2d6aee0aba5bc0c117aae3"
    
    It's possible to make a better fix here
    
    This reverts commit 685a0c2de4e12cde691ebff63b0f2348a7d68b58.
    
    Change-Id: I764a2a296170cd66e6d2cf4f9646488c099fa870
    Reviewed-on: https://gerrit.libreoffice.org/83724
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/sd/source/filter/eppt/grouptable.hxx b/sd/source/filter/eppt/grouptable.hxx
index 1e16b377f0a1..a88201e195ee 100644
--- a/sd/source/filter/eppt/grouptable.hxx
+++ b/sd/source/filter/eppt/grouptable.hxx
@@ -26,14 +26,14 @@
 
 struct GroupEntry
 {
-    css::uno::Reference< css::container::XIndexAccess >           mXIndexAccess;
     sal_uInt32                  mnCurrentPos;
     sal_uInt32                  mnCount;
+    css::uno::Reference< css::container::XIndexAccess >           mXIndexAccess;
 
     explicit GroupEntry( css::uno::Reference< css::container::XIndexAccess > const & rIndex )
-      : mXIndexAccess(rIndex),
-        mnCurrentPos(0),
-        mnCount(mXIndexAccess->getCount())
+      : mnCurrentPos(0),
+        mnCount(mXIndexAccess->getCount()),
+        mXIndexAccess(rIndex)
     {
     };
 
commit 53b44e78b88155889f599bf5b65231bdea385ba2
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 14:16:57 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:27 2019 +0100

    Better fix for GCC -Werror=stringop-truncation
    
    ...following up on 2679c012115424e2728cfe79f7c6b5b243739b4e "GCC trunk towards
    GCC 9 still emits a bogus -Wstringop-truncation" addressing
    
    > In member function ‘void {anonymous}::Type1Emitter::setSubsetName(const char*)’,
    >     inlined from ‘bool FontSubsetInfo::CreateFontSubsetFromCff(sal_Int32*)’ at vcl/source/fontsubset/cff.cxx:2057:32:
    > vcl/source/fontsubset/cff.cxx:1634:16: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Werror=stringop-truncation]
    >  1634 |         strncpy( maSubsetName, pSubsetName, sizeof(maSubsetName));
    >       |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    ...that at least "gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1-1)" started to emit
    with --enable-optimized after f853ec317f6af1b8c65cc5bd758371689c75118d "Extend
    loplugin:external to warn about classes"
    
    Change-Id: I7b6f1fc43397cc88cb212041c3ea070941281b25
    Reviewed-on: https://gerrit.libreoffice.org/83681
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/vcl/source/fontsubset/cff.cxx b/vcl/source/fontsubset/cff.cxx
index 208264e7346a..b4ae6809085b 100644
--- a/vcl/source/fontsubset/cff.cxx
+++ b/vcl/source/fontsubset/cff.cxx
@@ -1631,14 +1631,7 @@ void Type1Emitter::setSubsetName( const char* pSubsetName)
 {
     maSubsetName[0] = '\0';
     if( pSubsetName)
-#if defined __GNUC__ && (__GNUC__ == 8 || __GNUC__ == 9) && !defined __clang__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wstringop-truncation"
-#endif
-        strncpy( maSubsetName, pSubsetName, sizeof(maSubsetName));
-#if defined __GNUC__ && (__GNUC__ == 8 || __GNUC__ == 9) && !defined __clang__
-#pragma GCC diagnostic pop
-#endif
+        strncpy( maSubsetName, pSubsetName, sizeof(maSubsetName) - 1);
     maSubsetName[sizeof(maSubsetName)-1] = '\0';
 }
 
commit 6983fdc2648b4e5b05cc7220ad69029045af4ac0
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 17:01:03 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:26 2019 +0100

    external/mdds: -Werror,-Wdeprecated-copy
    
    > In file included from sc/source/core/data/cellvalues.cxx:12:
    > In file included from sc/inc/column.hxx:28:
    > In file included from sc/inc/mtvelements.hxx:30:
    > In file included from workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector.hpp:33:
    > workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:74:9: error: definition of implicit copy assignment operator for 'private_data' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
    >         private_data(const private_data& other) :
    >         ^
    > workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:44:8: note: in implicit copy assignment operator for 'mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block>::private_data' first required here
    > struct iterator_value_node
    >        ^
    > workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:219:20: note: in implicit copy assignment operator for 'mdds::detail::mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block>' first required here
    >         m_cur_node = other.m_cur_node;
    >                    ^
    > workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:238:7: note: in instantiation of member function 'mdds::detail::mtv::iterator_common_base<mdds::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreEvent>::iterator_trait>::operator=' requested here
    > class iterator_base : public iterator_common_base<_Trait>
    >       ^
    
    with recent Clang 10 trunk, similar to
    <https://gerrit.libreoffice.org/#/c/83698/> "Remove some redundantly
    user-declared copy ctors and assignment ops"
    
    Change-Id: I156674bad367ca68404c3c75d61ec72b401c6305
    Reviewed-on: https://gerrit.libreoffice.org/83700
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk
index c015f4c13f5a..c5ca78bd368c 100644
--- a/external/mdds/UnpackedTarball_mdds.mk
+++ b/external/mdds/UnpackedTarball_mdds.mk
@@ -14,6 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL)))
 $(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,mdds,\
+    external/mdds/Wdeprecated-copy.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/mdds/Wdeprecated-copy.patch b/external/mdds/Wdeprecated-copy.patch
new file mode 100644
index 000000000000..edcb2ddaa9ec
--- /dev/null
+++ b/external/mdds/Wdeprecated-copy.patch
@@ -0,0 +1,11 @@
+--- include/mdds/multi_type_vector_itr.hpp
++++ include/mdds/multi_type_vector_itr.hpp
+@@ -71,8 +71,6 @@
+         private_data() : block_index(0) {}
+         private_data(size_type _block_index) :
+             block_index(_block_index) {}
+-        private_data(const private_data& other) :
+-            block_index(other.block_index) {}
+ 
+         void swap(private_data& other)
+         {
commit 74092e9fbf87c27ca09d5c71a670323aebfd5f1b
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 13:04:02 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:26 2019 +0100

    Adapt to clang::MaterializeTemporaryExpr::GetTemparyExpr rename
    
    ...in <https://github.com/llvm/llvm-project/commit/
    b0561b3346e7bf0ae974995ca95b917eebde18e1> "[NFC] Refactor representation of
    materialized temporaries"
    
    Change-Id: I02fbf6765f9713e4d457f07521129cc9d8db5751
    Reviewed-on: https://gerrit.libreoffice.org/83669
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index c091c51601f7..ca752552f677 100644
--- a/compilerplugins/clang/compat.hxx
+++ b/compilerplugins/clang/compat.hxx
@@ -168,6 +168,14 @@ inline bool EvaluateAsInt(clang::Expr const * expr, llvm::APSInt& intRes, const
 #endif
 }
 
+inline clang::Expr * getSubExpr(clang::MaterializeTemporaryExpr const * expr) {
+#if CLANG_VERSION >= 100000
+    return expr->getSubExpr();
+#else
+    return expr->GetTemporaryExpr();
+#endif
+}
+
 // Work around <http://reviews.llvm.org/D22128>:
 //
 // SfxErrorHandler::GetClassString (svtools/source/misc/ehdl.cxx):
@@ -202,7 +210,7 @@ namespace detail {
     // Skip through reference binding to temporary.
     if (clang::MaterializeTemporaryExpr *Materialize
                                   = clang::dyn_cast<clang::MaterializeTemporaryExpr>(expr))
-      expr = Materialize->GetTemporaryExpr();
+      expr = compat::getSubExpr(Materialize);
 
     // Skip any temporary bindings; they're implicit.
     if (clang::CXXBindTemporaryExpr *Binder = clang::dyn_cast<clang::CXXBindTemporaryExpr>(expr))
diff --git a/compilerplugins/clang/conditionalstring.cxx b/compilerplugins/clang/conditionalstring.cxx
index d09472c25446..2d40c1b3aebf 100644
--- a/compilerplugins/clang/conditionalstring.cxx
+++ b/compilerplugins/clang/conditionalstring.cxx
@@ -40,7 +40,7 @@ Expr const* ignoreImplicit(Expr const* expr)
 #endif
         else if (auto const e3 = dyn_cast<MaterializeTemporaryExpr>(e))
         {
-            e = e3->GetTemporaryExpr();
+            e = compat::getSubExpr(e3);
         }
         else if (auto const e4 = dyn_cast<CXXBindTemporaryExpr>(e))
         {
diff --git a/compilerplugins/clang/doubleconvert.cxx b/compilerplugins/clang/doubleconvert.cxx
index 95565301b751..2dbff56ca30b 100644
--- a/compilerplugins/clang/doubleconvert.cxx
+++ b/compilerplugins/clang/doubleconvert.cxx
@@ -53,7 +53,7 @@ bool DoubleConvert::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr const
     if (ignoreLocation(materializetemp))
         return true;
     auto cxxConstruct
-        = dyn_cast<CXXConstructExpr>(materializetemp->GetTemporaryExpr()->IgnoreParenCasts());
+        = dyn_cast<CXXConstructExpr>(compat::getSubExpr(materializetemp)->IgnoreParenCasts());
     if (!cxxConstruct)
         return true;
     if (cxxConstruct->getNumArgs() == 0)
diff --git a/compilerplugins/clang/implicitboolconversion.cxx b/compilerplugins/clang/implicitboolconversion.cxx
index 3adbf7197f47..5b713ce77ecb 100644
--- a/compilerplugins/clang/implicitboolconversion.cxx
+++ b/compilerplugins/clang/implicitboolconversion.cxx
@@ -30,7 +30,7 @@ Expr const * ignoreParenAndTemporaryMaterialization(Expr const * expr) {
         if (e == nullptr) {
             return expr;
         }
-        expr = e->GetTemporaryExpr();
+        expr = compat::getSubExpr(e);
     }
 }
 
@@ -908,7 +908,7 @@ bool ImplicitBoolConversion::VisitMaterializeTemporaryExpr(
     if (ignoreLocation(expr)) {
         return true;
     }
-    if (auto const sub = dyn_cast<ExplicitCastExpr>(expr->GetTemporaryExpr())) {
+    if (auto const sub = dyn_cast<ExplicitCastExpr>(compat::getSubExpr(expr))) {
         auto const subsub = compat::getSubExprAsWritten(sub);
         if (subsub->getType().IgnoreParens() == expr->getType().IgnoreParens()
             && isBool(subsub))
diff --git a/compilerplugins/clang/plugin.cxx b/compilerplugins/clang/plugin.cxx
index 01484bddc432..eb4ac24c9743 100644
--- a/compilerplugins/clang/plugin.cxx
+++ b/compilerplugins/clang/plugin.cxx
@@ -18,6 +18,7 @@
 #include <clang/Basic/FileManager.h>
 #include <clang/Lex/Lexer.h>
 
+#include "compat.hxx"
 #include "pluginhandler.hxx"
 
 /*
@@ -30,7 +31,7 @@ namespace {
 
 Expr const * skipImplicit(Expr const * expr) {
     if (auto const e = dyn_cast<MaterializeTemporaryExpr>(expr)) {
-        expr = e->GetTemporaryExpr()->IgnoreImpCasts();
+        expr = compat::getSubExpr(e)->IgnoreImpCasts();
     }
     if (auto const e = dyn_cast<CXXBindTemporaryExpr>(expr)) {
         expr = e->getSubExpr();
diff --git a/compilerplugins/clang/redundantfcast.cxx b/compilerplugins/clang/redundantfcast.cxx
index 5084d5a29ab3..0dca2a1c60cb 100644
--- a/compilerplugins/clang/redundantfcast.cxx
+++ b/compilerplugins/clang/redundantfcast.cxx
@@ -42,7 +42,7 @@ public:
             expr = cxxConstructExpr->getArg(0);
         }
         if (auto materializeTemporaryExpr = dyn_cast<MaterializeTemporaryExpr>(expr))
-            expr = materializeTemporaryExpr->GetTemporaryExpr();
+            expr = compat::getSubExpr(materializeTemporaryExpr);
         auto cxxFunctionalCastExpr = dyn_cast<CXXFunctionalCastExpr>(expr);
         if (!cxxFunctionalCastExpr)
             return true;
@@ -94,7 +94,7 @@ public:
             if (!materializeTemporaryExpr)
                 continue;
             auto functionalCast = dyn_cast<CXXFunctionalCastExpr>(
-                materializeTemporaryExpr->GetTemporaryExpr()->IgnoreImpCasts());
+                compat::getSubExpr(materializeTemporaryExpr)->IgnoreImpCasts());
             if (!functionalCast)
                 continue;
             auto const t1 = functionalCast->getTypeAsWritten();
diff --git a/compilerplugins/clang/referencecasting.cxx b/compilerplugins/clang/referencecasting.cxx
index 45b65d3e7f26..1f8e13173811 100644
--- a/compilerplugins/clang/referencecasting.cxx
+++ b/compilerplugins/clang/referencecasting.cxx
@@ -10,6 +10,7 @@
  */
 #ifndef LO_CLANG_SHARED_PLUGINS
 
+#include "compat.hxx"
 #include "plugin.hxx"
 #include "check.hxx"
 #include <iostream>
@@ -111,7 +112,7 @@ bool ReferenceCasting::VisitCXXConstructExpr(const CXXConstructExpr* cce)
         }
         if (auto matTempExpr = dyn_cast<MaterializeTemporaryExpr>(constructorArg0))
         {
-            constructorArg0 = matTempExpr->GetTemporaryExpr();
+            constructorArg0 = compat::getSubExpr(matTempExpr);
             continue;
         }
         if (auto bindTempExpr = dyn_cast<CXXBindTemporaryExpr>(constructorArg0))
@@ -223,7 +224,7 @@ bool ReferenceCasting::VisitCXXMemberCallExpr(const CXXMemberCallExpr* mce)
         }
         if (auto matTempExpr = dyn_cast<MaterializeTemporaryExpr>(arg0))
         {
-            arg0 = matTempExpr->GetTemporaryExpr();
+            arg0 = compat::getSubExpr(matTempExpr);
             continue;
         }
         if (auto bindTempExpr = dyn_cast<CXXBindTemporaryExpr>(arg0))
diff --git a/compilerplugins/clang/simplifybool.cxx b/compilerplugins/clang/simplifybool.cxx
index 83cbf2dc56f6..b1cd6b8c2abd 100644
--- a/compilerplugins/clang/simplifybool.cxx
+++ b/compilerplugins/clang/simplifybool.cxx
@@ -9,6 +9,7 @@
 
 #include <cassert>
 
+#include "compat.hxx"
 #include "plugin.hxx"
 #include "clang/AST/CXXInheritance.h"
 
@@ -21,7 +22,7 @@ Expr const * ignoreAllImplicit(Expr const * expr) {
         expr = e->getSubExpr();
     }
     if (auto const e = dyn_cast<MaterializeTemporaryExpr>(expr)) {
-        expr = e->GetTemporaryExpr();
+        expr = compat::getSubExpr(e);
     }
     if (auto const e = dyn_cast<CXXBindTemporaryExpr>(expr)) {
         expr = e->getSubExpr();
diff --git a/compilerplugins/clang/stringbuffer.cxx b/compilerplugins/clang/stringbuffer.cxx
index b68a8ba32700..61df3069a51c 100644
--- a/compilerplugins/clang/stringbuffer.cxx
+++ b/compilerplugins/clang/stringbuffer.cxx
@@ -9,6 +9,7 @@
 #ifndef LO_CLANG_SHARED_PLUGINS
 
 #include "check.hxx"
+#include "compat.hxx"
 #include "plugin.hxx"
 #include <vector>
 
@@ -57,7 +58,7 @@ bool StringBuffer::VisitCXXMemberCallExpr(CXXMemberCallExpr const* memberCallExp
     auto matTemp = dyn_cast<MaterializeTemporaryExpr>(memberCallExpr->getArg(0));
     if (!matTemp)
         return true;
-    if (!isa<CXXOperatorCallExpr>(matTemp->GetTemporaryExpr()))
+    if (!isa<CXXOperatorCallExpr>(compat::getSubExpr(matTemp)))
         return true;
     report(DiagnosticsEngine::Warning,
            "appending added result of OUString to OUStringBuffer, rather do .append(x).append(y)",
diff --git a/compilerplugins/clang/stringconstant.cxx b/compilerplugins/clang/stringconstant.cxx
index 2360ef2e3620..389691796dd7 100644
--- a/compilerplugins/clang/stringconstant.cxx
+++ b/compilerplugins/clang/stringconstant.cxx
@@ -86,7 +86,7 @@ bool hasOverloads(FunctionDecl const * decl, unsigned arguments) {
 
 CXXConstructExpr const * lookForCXXConstructExpr(Expr const * expr) {
     if (auto e = dyn_cast<MaterializeTemporaryExpr>(expr)) {
-        expr = e->GetTemporaryExpr();
+        expr = compat::getSubExpr(e);
     }
     if (auto e = dyn_cast<CXXFunctionalCastExpr>(expr)) {
         expr = e->getSubExpr();
@@ -1072,7 +1072,7 @@ bool StringConstant::VisitCXXConstructExpr(CXXConstructExpr const * expr) {
             for (auto i(argsBeg); i != argsEnd; ++i) {
                 Expr const * e = (*i)->IgnoreParenImpCasts();
                 if (isa<MaterializeTemporaryExpr>(e)) {
-                    e = cast<MaterializeTemporaryExpr>(e)->GetTemporaryExpr()
+                    e = compat::getSubExpr(cast<MaterializeTemporaryExpr>(e))
                         ->IgnoreParenImpCasts();
                 }
                 if (isa<CXXFunctionalCastExpr>(e)) {
diff --git a/compilerplugins/clang/stringstatic.cxx b/compilerplugins/clang/stringstatic.cxx
index a923da405f25..69e6c427f90e 100644
--- a/compilerplugins/clang/stringstatic.cxx
+++ b/compilerplugins/clang/stringstatic.cxx
@@ -12,6 +12,7 @@
 #include <set>
 
 #include "check.hxx"
+#include "compat.hxx"
 #include "plugin.hxx"
 
 /** Look for static OUString and OUString[], they can be more efficiently declared as:
@@ -100,7 +101,7 @@ bool StringStatic::VisitVarDecl(VarDecl const* varDecl)
                 expr = castExpr->getSubExpr();
             }
             else if (MaterializeTemporaryExpr const * materializeExpr = dyn_cast<MaterializeTemporaryExpr>(expr)) {
-                expr = materializeExpr->GetTemporaryExpr();
+                expr = compat::getSubExpr(materializeExpr);
             }
             else if (CXXBindTemporaryExpr const * bindExpr = dyn_cast<CXXBindTemporaryExpr>(expr)) {
                 expr = bindExpr->getSubExpr();
diff --git a/compilerplugins/clang/unnecessaryparen.cxx b/compilerplugins/clang/unnecessaryparen.cxx
index 9fb8fb85aa82..f1c17c830207 100644
--- a/compilerplugins/clang/unnecessaryparen.cxx
+++ b/compilerplugins/clang/unnecessaryparen.cxx
@@ -44,7 +44,7 @@ Expr const * ignoreAllImplicit(Expr const * expr) {
             }
         }
         else if (auto const e = dyn_cast<MaterializeTemporaryExpr>(expr)) {
-            expr = e->GetTemporaryExpr();
+            expr = compat::getSubExpr(e);
         }
         else if (auto const e = dyn_cast<CXXBindTemporaryExpr>(expr)) {
             expr = e->getSubExpr();
diff --git a/compilerplugins/clang/unoany.cxx b/compilerplugins/clang/unoany.cxx
index e0360c6cd2de..d44fce1d434c 100644
--- a/compilerplugins/clang/unoany.cxx
+++ b/compilerplugins/clang/unoany.cxx
@@ -10,6 +10,7 @@
 #ifndef LO_CLANG_SHARED_PLUGINS
 
 #include "check.hxx"
+#include "compat.hxx"
 #include "plugin.hxx"
 
 namespace {
@@ -52,7 +53,7 @@ bool UnoAny::VisitCXXOperatorCallExpr(CXXOperatorCallExpr const * expr)
         return true;
     }
     if (auto expr2 = dyn_cast<MaterializeTemporaryExpr>(expr->getArg(1))) {
-        if (auto expr3 = dyn_cast<CXXBindTemporaryExpr>(expr2->GetTemporaryExpr())) {
+        if (auto expr3 = dyn_cast<CXXBindTemporaryExpr>(compat::getSubExpr(expr2))) {
             if (auto expr4 = dyn_cast<CallExpr>(expr3->getSubExpr())) {
                 if (loplugin::DeclCheck(expr4->getDirectCallee()).Function("makeAny").
                     Namespace("uno").Namespace("star").Namespace("sun").Namespace("com").GlobalNamespace()) {
@@ -66,7 +67,7 @@ bool UnoAny::VisitCXXOperatorCallExpr(CXXOperatorCallExpr const * expr)
                 }
             }
         }
-        if (isa<CXXFunctionalCastExpr>(expr2->GetTemporaryExpr())) {
+        if (isa<CXXFunctionalCastExpr>(compat::getSubExpr(expr2))) {
             //expr->getArg(1)->dump();
             report(
                     DiagnosticsEngine::Warning,
diff --git a/compilerplugins/clang/unoquery.cxx b/compilerplugins/clang/unoquery.cxx
index 82427555fef9..fd7715fe1df3 100644
--- a/compilerplugins/clang/unoquery.cxx
+++ b/compilerplugins/clang/unoquery.cxx
@@ -10,6 +10,7 @@
 #ifndef LO_CLANG_SHARED_PLUGINS
 
 #include "check.hxx"
+#include "compat.hxx"
 #include "plugin.hxx"
 
 // TODO it would be better if we were running some kind of nullability analysis here, where we marked
@@ -63,7 +64,7 @@ bool UnoQuery::VisitCXXMemberCallExpr(CXXMemberCallExpr const* memberCallExpr)
     Expr const* expr = operatorCallExpr->getArg(0)->IgnoreImplicit();
     // depending on the version of clang, the IgnoreImplicit may or may not look through these nodes
     if (auto matTemp = dyn_cast<MaterializeTemporaryExpr>(expr))
-        expr = matTemp->GetTemporaryExpr();
+        expr = compat::getSubExpr(matTemp);
     if (auto bindTemp = dyn_cast<CXXBindTemporaryExpr>(expr))
         expr = bindTemp->getSubExpr();
 
commit d33ca29be8ff885fd59ac5b3e1e68de5f4f5603c
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 11:17:19 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:26 2019 +0100

    loplugin:implicitboolconversion: Filter out bool -> std::atomic<bool>
    
    ...as used since patch set 8 of <https://gerrit.libreoffice.org/#/c/81542/8>
    "WIP: tdf#120006 New Document converter"
    
    Change-Id: I79c2237a2e5839162272c0d49bdb4d87c9e35102
    Reviewed-on: https://gerrit.libreoffice.org/83655
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/compilerplugins/clang/implicitboolconversion.cxx b/compilerplugins/clang/implicitboolconversion.cxx
index e16b15517bc9..3adbf7197f47 100644
--- a/compilerplugins/clang/implicitboolconversion.cxx
+++ b/compilerplugins/clang/implicitboolconversion.cxx
@@ -1020,6 +1020,19 @@ void ImplicitBoolConversion::checkCXXConstructExpr(
 
 void ImplicitBoolConversion::reportWarning(ImplicitCastExpr const * expr) {
     if (compiler.getLangOpts().CPlusPlus) {
+        if (expr->getCastKind() == CK_ConstructorConversion) {
+            auto const t1 = expr->getType();
+            if (auto const t2 = t1->getAs<TemplateSpecializationType>()) {
+                assert(t2->getNumArgs() >= 1);
+                auto const a = t2->getArg(0);
+                if (a.getKind() == TemplateArgument::Type && a.getAsType()->isBooleanType()
+                    && (loplugin::TypeCheck(t1).TemplateSpecializationClass()
+                        .ClassOrStruct("atomic").StdNamespace()))
+                {
+                    return;
+                }
+            }
+        }
         report(
             DiagnosticsEngine::Warning,
             "implicit conversion (%0) from %1 to %2", compat::getBeginLoc(expr))
diff --git a/compilerplugins/clang/test/implicitboolconversion.cxx b/compilerplugins/clang/test/implicitboolconversion.cxx
new file mode 100644
index 000000000000..c438822d3b88
--- /dev/null
+++ b/compilerplugins/clang/test/implicitboolconversion.cxx
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <atomic>
+
+void f()
+{
+    // expected-error at +1 {{implicit conversion (IntegralCast) from 'bool' to 'int' [loplugin:implicitboolconversion]}}
+    int i = false;
+    (void)i;
+    std::atomic<bool> b = false;
+    (void)b;
+    //TODO: Emit only one diagnostic here:
+    // expected-error at +2 {{implicit conversion (ConstructorConversion) from 'bool' to 'std::atomic<int>' [loplugin:implicitboolconversion]}}
+    // expected-error-re at +1 {{implicit conversion (IntegralCast) from 'bool' to {{.+}} [loplugin:implicitboolconversion]}}
+    std::atomic<int> a = false;
+    (void)a;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/solenv/CompilerTest_compilerplugins_clang.mk b/solenv/CompilerTest_compilerplugins_clang.mk
index 318bf8c69d0a..3c9969bd628f 100644
--- a/solenv/CompilerTest_compilerplugins_clang.mk
+++ b/solenv/CompilerTest_compilerplugins_clang.mk
@@ -41,6 +41,7 @@ $(eval $(call gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
     compilerplugins/clang/test/flatten \
     compilerplugins/clang/test/fragiledestructor \
     compilerplugins/clang/test/getstr \
+    compilerplugins/clang/test/implicitboolconversion \
     compilerplugins/clang/test/indentation \
     compilerplugins/clang/test/intvsfloat \
     compilerplugins/clang/test/logexceptionnicely \
commit ae60c795ff224e13e86bd5c8548cb80e3cf0b22f
Author:     Roman Kuznetsov <antilibreoffice at gmail.com>
AuthorDate: Mon Nov 25 07:59:33 2019 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:26 2019 +0100

    tdf#128757 Move pane context menu's items
    
    Change-Id: If7ab3e87d3ec8550ba7c25781915e7fa364a5f05
    Reviewed-on: https://gerrit.libreoffice.org/83638
    Tested-by: Jenkins
    Reviewed-by: Roman Kuznetsov <antilibreoffice at gmail.com>

diff --git a/sd/uiconfig/simpress/popupmenu/pagepane.xml b/sd/uiconfig/simpress/popupmenu/pagepane.xml
index f790b40eeee2..1854282250c8 100644
--- a/sd/uiconfig/simpress/popupmenu/pagepane.xml
+++ b/sd/uiconfig/simpress/popupmenu/pagepane.xml
@@ -14,6 +14,9 @@
   <menu:menuseparator/>
   <menu:menuitem menu:id=".uno:InsertSlide"/>
   <menu:menuitem menu:id=".uno:DuplicateSlide"/>
+  <menu:menuitem menu:id=".uno:RenameSlide"/>
+  <menu:menuitem menu:id=".uno:HideSlide"/>
+  <menu:menuitem menu:id=".uno:ShowSlide"/>
   <menu:menuitem menu:id=".uno:DeleteSlide"/>
   <menu:menuseparator/>
   <menu:menu menu:id=".uno:SlideLayoutMenu">
@@ -38,12 +41,6 @@
       <menu:menuitem menu:id=".uno:AssignLayout?WhatLayout:long=30"/>
     </menu:menupopup>
   </menu:menu>
-  <menu:menuitem menu:id=".uno:SlideSetup"/>
-  <menu:menuseparator/>
-  <menu:menuitem menu:id=".uno:HideSlide"/>
-  <menu:menuitem menu:id=".uno:ShowSlide"/>
-  <menu:menuitem menu:id=".uno:RenameSlide"/>
-  <menu:menuseparator/>
   <menu:menu menu:id=".uno:NavigateMenu">
     <menu:menupopup>
       <menu:menuitem menu:id=".uno:FirstSlide"/>
@@ -59,5 +56,7 @@
       <menu:menuitem menu:id=".uno:MoveSlideDown"/>
       <menu:menuitem menu:id=".uno:MoveSlideLast"/>
     </menu:menupopup>
+  <menu:menuseparator/>
+  <menu:menuitem menu:id=".uno:SlideSetup"/>
   </menu:menu>
 </menu:menupopup>
commit 53f64d6cf1e95e4593b85efde6e7029563dc6053
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 17:47:25 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:26 2019 +0100

    CppunitTest_sd_dialogs_test still needs DrawView RTTI
    
    After 5f520f757774db17ea4e33d34c724cf2af3adcba "make some classes
    module-private", it failed with
    
    > [LNK] CppunitTest/libtest_sd_dialogs_test.so
    > sd/qa/unit/dialogs-test.cxx:160: error: undefined reference to 'typeinfo for sd::DrawView'
    > collect2: error: ld returned 1 exit status
    
    Change-Id: I913c40840596baf5358ea5acc4082a898ac4548e
    Reviewed-on: https://gerrit.libreoffice.org/83703
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sd/source/ui/inc/drawview.hxx b/sd/source/ui/inc/drawview.hxx
index 34360c61c772..2d41de1af250 100644
--- a/sd/source/ui/inc/drawview.hxx
+++ b/sd/source/ui/inc/drawview.hxx
@@ -30,7 +30,7 @@ class DrawViewShell;
 /**
  * Derivative of ::sd::View; contains also a pointer to the document
  */
-class DrawView : public ::sd::View
+class SD_DLLPUBLIC DrawView : public ::sd::View
 {
 public:
 
commit 6366cf6348c39b6f906300c1a725ab196b0fcef6
Author:     Julien Nabet <serval2412 at yahoo.fr>
AuthorDate: Mon Nov 25 18:53:48 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:25 2019 +0100

    Fix 9d63592d530e9ad5ab2d6aee0aba5bc0c117aae3
    
    Thank you Vincent!
    
    Change-Id: Icb300158fe0b8f10bcee81c1f9d8a4a4a63dafc5
    Reviewed-on: https://gerrit.libreoffice.org/83706
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/sd/source/filter/eppt/grouptable.hxx b/sd/source/filter/eppt/grouptable.hxx
index a88201e195ee..1e16b377f0a1 100644
--- a/sd/source/filter/eppt/grouptable.hxx
+++ b/sd/source/filter/eppt/grouptable.hxx
@@ -26,14 +26,14 @@
 
 struct GroupEntry
 {
+    css::uno::Reference< css::container::XIndexAccess >           mXIndexAccess;
     sal_uInt32                  mnCurrentPos;
     sal_uInt32                  mnCount;
-    css::uno::Reference< css::container::XIndexAccess >           mXIndexAccess;
 
     explicit GroupEntry( css::uno::Reference< css::container::XIndexAccess > const & rIndex )
-      : mnCurrentPos(0),
-        mnCount(mXIndexAccess->getCount()),
-        mXIndexAccess(rIndex)
+      : mXIndexAccess(rIndex),
+        mnCurrentPos(0),
+        mnCount(mXIndexAccess->getCount())
     {
     };
 
commit 238b9240c610916e7aa0315fd642274b070a3038
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Nov 25 16:52:49 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:25 2019 +0100

    Remove some redundantly user-declared copy ctors and assignment ops
    
    ...that trigger -Werror,-Wdeprecated-copy ("definition of implicit copy
    {constructor, assignment operator} for ... is deprecated beause it has a
    user-declared copy {assignment operator, constructor}") new in recent Clang 10
    trunk (and which apparently warns about more cases then its GCC counterpart, for
    which we already adapted the code in the past, see e.g. the various
    "-Werror=deprecated-copy (GCC trunk towards GCC 9)" commits)
    
    Change-Id: Ie37bd820e6c0c05c74e1a862bb1d4ead5fb7cc9c
    Reviewed-on: https://gerrit.libreoffice.org/83698
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/svl/macitem.hxx b/include/svl/macitem.hxx
index 7a062f2aec47..f796d1d3586b 100644
--- a/include/svl/macitem.hxx
+++ b/include/svl/macitem.hxx
@@ -60,8 +60,6 @@ public:
     ScriptType GetScriptType() const        { return eType; }
 
     bool HasMacro() const { return !aMacName.isEmpty(); }
-
-    SvxMacro& operator=( const SvxMacro& rBase );
 };
 
 inline SvxMacro::SvxMacro( const OUString &rMacName, const OUString &rLibName,
diff --git a/package/source/xstor/xstorage.hxx b/package/source/xstor/xstorage.hxx
index d4f48e282627..0c6cc442acde 100644
--- a/package/source/xstor/xstorage.hxx
+++ b/package/source/xstor/xstorage.hxx
@@ -104,12 +104,6 @@ struct StorageHolder_Impl
     css::uno::WeakReference< css::embed::XStorage > m_xWeakRef;
 
     explicit inline StorageHolder_Impl( OStorage* pStorage );
-
-    StorageHolder_Impl( const StorageHolder_Impl& aSH )
-    : m_pPointer( aSH.m_pPointer )
-    , m_xWeakRef( aSH.m_xWeakRef )
-    {
-    }
 };
 
 class SwitchablePersistenceStream;
diff --git a/sc/inc/pivot.hxx b/sc/inc/pivot.hxx
index 2dcb9b2f1e0b..6bdd24353285 100644
--- a/sc/inc/pivot.hxx
+++ b/sc/inc/pivot.hxx
@@ -122,7 +122,6 @@ struct ScPivotField
     sal_uInt8   mnDupCount;
 
     explicit ScPivotField( SCCOL nNewCol = 0 );
-    ScPivotField( const ScPivotField& r );
 
     long getOriginalDim() const;
 };
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx
index 3856eef9aaef..ca9d3496be7a 100644
--- a/sc/inc/scmatrix.hxx
+++ b/sc/inc/scmatrix.hxx
@@ -149,9 +149,6 @@ public:
 
         IterateResult(double fFirst, double fRest, size_t nCount) :
             mfFirst(fFirst), mfRest(fRest), mnCount(nCount) {}
-
-        IterateResult(const IterateResult& r) :
-            mfFirst(r.mfFirst), mfRest(r.mfRest), mnCount(r.mnCount) {}
     };
 
     /** Checks nC or nR for zero and uses GetElementsMax() whether a matrix of
diff --git a/sc/source/core/data/pivot2.cxx b/sc/source/core/data/pivot2.cxx
index 3c1ce479a845..111df0a0947c 100644
--- a/sc/source/core/data/pivot2.cxx
+++ b/sc/source/core/data/pivot2.cxx
@@ -80,14 +80,6 @@ ScPivotField::ScPivotField(SCCOL nNewCol) :
     mnDupCount(0)
 {}
 
-ScPivotField::ScPivotField( const ScPivotField& rPivotField ) :
-    maFieldRef(rPivotField.maFieldRef),
-    mnOriginalDim(rPivotField.mnOriginalDim),
-    nFuncMask(rPivotField.nFuncMask),
-    nCol(rPivotField.nCol),
-    mnDupCount(rPivotField.mnDupCount)
-{}
-
 long ScPivotField::getOriginalDim() const
 {
     return mnOriginalDim >= 0 ? mnOriginalDim : static_cast<long>(nCol);
diff --git a/svl/source/items/macitem.cxx b/svl/source/items/macitem.cxx
index 5f923774b513..37a895d3673e 100644
--- a/svl/source/items/macitem.cxx
+++ b/svl/source/items/macitem.cxx
@@ -55,18 +55,6 @@ OUString SvxMacro::GetLanguage()const
     return aLibName;
 }
 
-SvxMacro& SvxMacro::operator=( const SvxMacro& rBase )
-{
-    if( this != &rBase )
-    {
-        aMacName = rBase.aMacName;
-        aLibName = rBase.aLibName;
-        eType = rBase.eType;
-    }
-    return *this;
-}
-
-
 SvxMacroTableDtor& SvxMacroTableDtor::operator=( const SvxMacroTableDtor& rTbl )
 {
     if (this != &rTbl)
diff --git a/sw/source/core/inc/mvsave.hxx b/sw/source/core/inc/mvsave.hxx
index c8ff124af161..bdbab23f08ab 100644
--- a/sw/source/core/inc/mvsave.hxx
+++ b/sw/source/core/inc/mvsave.hxx
@@ -165,13 +165,6 @@ class ZSortFly
 public:
     ZSortFly( const SwFrameFormat* pFrameFormat, const SwFormatAnchor* pFlyAnchor,
                 sal_uInt32 nArrOrdNum );
-    ZSortFly& operator=( const ZSortFly& rCpy )
-    {
-        pFormat = rCpy.pFormat;
-        pAnchor = rCpy.pAnchor;
-        nOrdNum = rCpy.nOrdNum;
-        return *this;
-    }
 
     bool operator==( const ZSortFly& ) const { return false; }
     bool operator<( const ZSortFly& rCmp ) const
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index bf9c2804a16a..3321da254e37 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -6568,11 +6568,6 @@ namespace sw
         {
         }
 
-        Position::Position(const Position &rPos)
-            : maPtNode(rPos.maPtNode), mnPtContent(rPos.mnPtContent)
-        {
-        }
-
         Position::operator SwPosition() const
         {
             SwPosition aRet(maPtNode);
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
index 4221eb3b454c..61e30e6618ed 100644
--- a/sw/source/filter/ww8/ww8par.hxx
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -546,7 +546,6 @@ namespace sw
             sal_Int32 mnPtContent;
         public:
             explicit Position(const SwPosition &rPos);
-            Position(const Position &rPos);
             operator SwPosition() const;
             const SwNodeIndex& GetPtNode() const { return maPtNode; };
             sal_Int32 GetPtContent() const { return mnPtContent; };
diff --git a/xmloff/source/core/attrlist.cxx b/xmloff/source/core/attrlist.cxx
index d0dfaa7185ba..8120fc32d647 100644
--- a/xmloff/source/core/attrlist.cxx
+++ b/xmloff/source/core/attrlist.cxx
@@ -40,12 +40,6 @@ struct SvXMLTagAttribute_Impl
     {
     }
 
-    SvXMLTagAttribute_Impl( const SvXMLTagAttribute_Impl& r ) :
-        sName(r.sName),
-        sValue(r.sValue)
-    {
-    }
-
     OUString sName;
     OUString sValue;
 };
diff --git a/xmloff/source/style/xmlprmap.cxx b/xmloff/source/style/xmlprmap.cxx
index eb232b155477..58be75a638e2 100644
--- a/xmloff/source/style/xmlprmap.cxx
+++ b/xmloff/source/style/xmlprmap.cxx
@@ -65,9 +65,6 @@ struct XMLPropertySetMapperEntry_Impl
         const XMLPropertyMapEntry& rMapEntry,
         const rtl::Reference< XMLPropertyHandlerFactory >& rFactory );
 
-    XMLPropertySetMapperEntry_Impl(
-        const XMLPropertySetMapperEntry_Impl& rEntry );
-
     sal_uInt32 GetPropType() const { return nType & XML_TYPE_PROP_MASK; }
 };
 
@@ -89,20 +86,6 @@ XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
     assert(pHdl);
 }
 
-XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
-        const XMLPropertySetMapperEntry_Impl& rEntry ) :
-    sXMLAttributeName( rEntry.sXMLAttributeName),
-    sAPIPropertyName( rEntry.sAPIPropertyName),
-    nType( rEntry.nType),
-    nXMLNameSpace( rEntry.nXMLNameSpace),
-    nContextId( rEntry.nContextId),
-    nEarliestODFVersionForExport( rEntry.nEarliestODFVersionForExport ),
-    bImportOnly( rEntry.bImportOnly),
-    pHdl( rEntry.pHdl)
-{
-    assert(pHdl);
-}
-
 struct XMLPropertySetMapper::Impl
 {
     std::vector<XMLPropertySetMapperEntry_Impl> maMapEntries;
commit 06ca65b3ea6f9f29a300d29e94db04e764fe52c4
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 25 16:01:34 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:25 2019 +0100

    Turn on clang-format for these files
    
    I (tried to) keep these files consistent locally with astyle in the past,
    switching to clang-format makes sure that the recent problem with introducing
    inconsistencies with automatic loplugin rewrites doesn't happen again.
    
    Change-Id: I86def0d13a1d16f8cedb7cf9927a48ce14c2b3bf
    Reviewed-on: https://gerrit.libreoffice.org/83690
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index a9d4ca6fbebf..4b4124a74ae5 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -13358,7 +13358,6 @@ starmath/source/typemap.cxx
 starmath/source/uiobject.cxx
 starmath/source/uiobject.hxx
 starmath/source/unodoc.cxx
-starmath/source/unofilter.cxx
 starmath/source/unomodel.cxx
 starmath/source/utility.cxx
 starmath/source/view.cxx
@@ -18374,8 +18373,6 @@ writerfilter/source/dmapper/WrapPolygonHandler.hxx
 writerfilter/source/dmapper/domainmapperfactory.cxx
 writerfilter/source/dmapper/util.cxx
 writerfilter/source/dmapper/util.hxx
-writerfilter/source/filter/RtfFilter.cxx
-writerfilter/source/filter/WriterFilter.cxx
 writerfilter/source/ooxml/Handler.cxx
 writerfilter/source/ooxml/Handler.hxx
 writerfilter/source/ooxml/OOXMLBinaryObjectReference.cxx
diff --git a/starmath/source/unofilter.cxx b/starmath/source/unofilter.cxx
index 5886e9e6e0b9..719681af4b4b 100644
--- a/starmath/source/unofilter.cxx
+++ b/starmath/source/unofilter.cxx
@@ -21,15 +21,11 @@
 
 using namespace ::com::sun::star;
 
-namespace {
-
+namespace
+{
 /// Invokes the MathType importer via UNO.
-class MathTypeFilter : public cppu::WeakImplHelper
-    <
-    document::XFilter,
-    document::XImporter,
-    lang::XServiceInfo
-    >
+class MathTypeFilter
+    : public cppu::WeakImplHelper<document::XFilter, document::XImporter, lang::XServiceInfo>
 {
     uno::Reference<lang::XComponent> m_xDstDoc;
 
@@ -48,7 +44,6 @@ public:
     sal_Bool SAL_CALL supportsService(const OUString& rServiceName) override;
     uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
 };
-
 }
 
 MathTypeFilter::MathTypeFilter() = default;
@@ -94,19 +89,14 @@ sal_Bool MathTypeFilter::filter(const uno::Sequence<beans::PropertyValue>& rDesc
     return bSuccess;
 }
 
-void MathTypeFilter::cancel()
-{
-}
+void MathTypeFilter::cancel() {}
 
-void MathTypeFilter::setTargetDocument(const uno::Reference< lang::XComponent >& xDoc)
+void MathTypeFilter::setTargetDocument(const uno::Reference<lang::XComponent>& xDoc)
 {
     m_xDstDoc = xDoc;
 }
 
-OUString MathTypeFilter::getImplementationName()
-{
-    return "com.sun.star.comp.Math.MathTypeFilter";
-}
+OUString MathTypeFilter::getImplementationName() { return "com.sun.star.comp.Math.MathTypeFilter"; }
 
 sal_Bool MathTypeFilter::supportsService(const OUString& rServiceName)
 {
@@ -115,14 +105,13 @@ sal_Bool MathTypeFilter::supportsService(const OUString& rServiceName)
 
 uno::Sequence<OUString> MathTypeFilter::getSupportedServiceNames()
 {
-    uno::Sequence<OUString> aRet =
-    {
-        OUString("com.sun.star.document.ImportFilter")
-    };
+    uno::Sequence<OUString> aRet = { OUString("com.sun.star.document.ImportFilter") };
     return aRet;
 }
 
-extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface* com_sun_star_comp_Math_MathTypeFilter_get_implementation(uno::XComponentContext* /*pCtx*/, uno::Sequence<uno::Any> const& /*rSeq*/)
+extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
+com_sun_star_comp_Math_MathTypeFilter_get_implementation(uno::XComponentContext* /*pCtx*/,
+                                                         uno::Sequence<uno::Any> const& /*rSeq*/)
 {
     return cppu::acquire(new MathTypeFilter);
 }
diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx
index 1f6260b1c1e6..68995b348d80 100644
--- a/writerfilter/source/filter/RtfFilter.cxx
+++ b/writerfilter/source/filter/RtfFilter.cxx
@@ -41,17 +41,12 @@
 
 using namespace ::com::sun::star;
 
-namespace {
-
+namespace
+{
 /// Invokes the RTF tokenizer + dmapper or RtfExportFilter in sw via UNO.
-class RtfFilter : public cppu::WeakImplHelper
-    <
-    document::XFilter,
-    document::XImporter,
-    document::XExporter,
-    lang::XInitialization,
-    lang::XServiceInfo
-    >
+class RtfFilter
+    : public cppu::WeakImplHelper<document::XFilter, document::XImporter, document::XExporter,
+                                  lang::XInitialization, lang::XServiceInfo>
 {
     uno::Reference<uno::XComponentContext> m_xContext;
     uno::Reference<lang::XComponent> m_xSrcDoc, m_xDstDoc;
@@ -76,9 +71,7 @@ public:
     OUString SAL_CALL getImplementationName() override;
     sal_Bool SAL_CALL supportsService(const OUString& rServiceName) override;
     uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
-
 };
-
 }
 
 RtfFilter::RtfFilter(uno::Reference<uno::XComponentContext> xContext)
@@ -86,15 +79,17 @@ RtfFilter::RtfFilter(uno::Reference<uno::XComponentContext> xContext)
 {
 }
 
-sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+sal_Bool RtfFilter::filter(const uno::Sequence<beans::PropertyValue>& rDescriptor)
 {
     sal_uInt32 nStartTime = osl_getGlobalTimer();
     if (m_xSrcDoc.is())
     {
-        uno::Reference< lang::XMultiServiceFactory > xMSF(m_xContext->getServiceManager(), uno::UNO_QUERY_THROW);
-        uno::Reference< uno::XInterface > xIfc(xMSF->createInstance("com.sun.star.comp.Writer.RtfExport"), uno::UNO_SET_THROW);
-        uno::Reference< document::XExporter > xExporter(xIfc, uno::UNO_QUERY_THROW);
-        uno::Reference< document::XFilter > xFilter(xIfc, uno::UNO_QUERY_THROW);
+        uno::Reference<lang::XMultiServiceFactory> xMSF(m_xContext->getServiceManager(),
+                                                        uno::UNO_QUERY_THROW);
+        uno::Reference<uno::XInterface> xIfc(
+            xMSF->createInstance("com.sun.star.comp.Writer.RtfExport"), uno::UNO_SET_THROW);
+        uno::Reference<document::XExporter> xExporter(xIfc, uno::UNO_QUERY_THROW);
+        uno::Reference<document::XFilter> xFilter(xIfc, uno::UNO_QUERY_THROW);
         xExporter->setSourceDocument(m_xSrcDoc);
         return xFilter->filter(rDescriptor);
     }
@@ -107,17 +102,20 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescrip
         utl::MediaDescriptor aMediaDesc(rDescriptor);
         bool bRepairStorage = aMediaDesc.getUnpackedValueOrDefault("RepairPackage", false);
         bool bIsNewDoc = !aMediaDesc.getUnpackedValueOrDefault("InsertMode", false);
-        uno::Reference< io::XInputStream > xInputStream;
+        uno::Reference<io::XInputStream> xInputStream;
 
         aMediaDesc.addInputStream();
-        aMediaDesc[ utl::MediaDescriptor::PROP_INPUTSTREAM() ] >>= xInputStream;
+        aMediaDesc[utl::MediaDescriptor::PROP_INPUTSTREAM()] >>= xInputStream;
 
         // If this is set, write to this file, instead of the real document during paste.
         char* pEnv = getenv("SW_DEBUG_RTF_PASTE_TO");
         OUString aOutStr;
-        if (!bIsNewDoc && pEnv && osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pEnv), aOutStr) == osl::FileBase::E_None)
+        if (!bIsNewDoc && pEnv
+            && osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pEnv), aOutStr)
+                   == osl::FileBase::E_None)
         {
-            std::unique_ptr<SvStream> pOut(utl::UcbStreamHelper::CreateStream(aOutStr, StreamMode::WRITE));
+            std::unique_ptr<SvStream> pOut(
+                utl::UcbStreamHelper::CreateStream(aOutStr, StreamMode::WRITE));
             std::unique_ptr<SvStream> pIn(utl::UcbStreamHelper::CreateStream(xInputStream));
             pOut->WriteStream(*pIn);
             return true;
@@ -129,34 +127,36 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescrip
         {
             OUString aInStr;
             osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pEnv), aInStr);
-            std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
+            std::unique_ptr<SvStream> pStream
+                = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
             uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
             xInputStream.set(xStream, uno::UNO_QUERY);
         }
 
-        uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_FRAME(),
-                                               uno::Reference<frame::XFrame>());
+        uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(
+            utl::MediaDescriptor::PROP_FRAME(), uno::Reference<frame::XFrame>());
 
-        xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(),
-                           uno::Reference<task::XStatusIndicator>());
+        xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(
+            utl::MediaDescriptor::PROP_STATUSINDICATOR(), uno::Reference<task::XStatusIndicator>());
 
         writerfilter::Stream::Pointer_t pStream(
             writerfilter::dmapper::DomainMapperFactory::createMapper(
                 m_xContext, xInputStream, m_xDstDoc, bRepairStorage,
                 writerfilter::dmapper::SourceDocumentType::RTF, aMediaDesc));
         writerfilter::rtftok::RTFDocument::Pointer_t pDocument(
-            writerfilter::rtftok::RTFDocumentFactory::createDocument(m_xContext, xInputStream, m_xDstDoc, xFrame, xStatusIndicator, aMediaDesc));
+            writerfilter::rtftok::RTFDocumentFactory::createDocument(
+                m_xContext, xInputStream, m_xDstDoc, xFrame, xStatusIndicator, aMediaDesc));
         pDocument->resolve(*pStream);
         bResult = true;
         sal_uInt32 nEndTime = osl_getGlobalTimer();
-        SAL_INFO("writerfilter.profile", "RtfFilter::filter: finished in " << nEndTime - nStartTime << " ms");
+        SAL_INFO("writerfilter.profile",
+                 "RtfFilter::filter: finished in " << nEndTime - nStartTime << " ms");
     }
     catch (const io::WrongFormatException&)
     {
         css::uno::Any anyEx = cppu::getCaughtException();
         // cannot throw WrongFormatException directly :(
-        throw lang::WrappedTargetRuntimeException("",
-                static_cast<OWeakObject*>(this), anyEx);
+        throw lang::WrappedTargetRuntimeException("", static_cast<OWeakObject*>(this), anyEx);
     }
     catch (const uno::Exception&)
     {
@@ -168,30 +168,25 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescrip
     return bResult;
 }
 
-void RtfFilter::cancel()
-{
-}
+void RtfFilter::cancel() {}
 
-void RtfFilter::setSourceDocument(const uno::Reference< lang::XComponent >& xDoc)
+void RtfFilter::setSourceDocument(const uno::Reference<lang::XComponent>& xDoc)
 {
     m_xSrcDoc = xDoc;
 }
 
-void RtfFilter::setTargetDocument(const uno::Reference< lang::XComponent >& xDoc)
+void RtfFilter::setTargetDocument(const uno::Reference<lang::XComponent>& xDoc)
 {
     m_xDstDoc = xDoc;
 }
 
-void RtfFilter::initialize(const uno::Sequence< uno::Any >& /*aArguments*/)
+void RtfFilter::initialize(const uno::Sequence<uno::Any>& /*aArguments*/)
 {
     // The DOCX exporter here extracts 'type' of the filter, ie 'Word' or
     // 'Word Template' but we don't need it for RTF.
 }
 
-OUString RtfFilter::getImplementationName()
-{
-    return "com.sun.star.comp.Writer.RtfFilter";
-}
+OUString RtfFilter::getImplementationName() { return "com.sun.star.comp.Writer.RtfFilter"; }
 
 sal_Bool RtfFilter::supportsService(const OUString& rServiceName)
 {
@@ -200,15 +195,14 @@ sal_Bool RtfFilter::supportsService(const OUString& rServiceName)
 
 uno::Sequence<OUString> RtfFilter::getSupportedServiceNames()
 {
-    uno::Sequence<OUString> aRet =
-    {
-        OUString("com.sun.star.document.ImportFilter"),
-        OUString("com.sun.star.document.ExportFilter")
-    };
+    uno::Sequence<OUString> aRet = { OUString("com.sun.star.document.ImportFilter"),
+                                     OUString("com.sun.star.document.ExportFilter") };
     return aRet;
 }
 
-extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface* com_sun_star_comp_Writer_RtfFilter_get_implementation(uno::XComponentContext* pComponent, uno::Sequence<uno::Any> const& /*rSequence*/)
+extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
+com_sun_star_comp_Writer_RtfFilter_get_implementation(uno::XComponentContext* pComponent,
+                                                      uno::Sequence<uno::Any> const& /*rSequence*/)
 {
     return cppu::acquire(new RtfFilter(pComponent));
 }
diff --git a/writerfilter/source/filter/WriterFilter.cxx b/writerfilter/source/filter/WriterFilter.cxx
index a89c6874427a..4b4ccbb2a431 100644
--- a/writerfilter/source/filter/WriterFilter.cxx
+++ b/writerfilter/source/filter/WriterFilter.cxx
@@ -57,8 +57,9 @@ static OUString lcl_GetExceptionMessage(xml::sax::SAXException const& e)
 }
 static OUString lcl_GetExceptionMessage(xml::sax::SAXParseException const& e)
 {
-    OUString const thisMessage("SAXParseException: '" + e.Message + "', Stream '" + e.SystemId + "', Line " + OUString::number(e.LineNumber)
-                               + ", Column " + OUString::number(e.ColumnNumber));
+    OUString const thisMessage("SAXParseException: '" + e.Message + "', Stream '" + e.SystemId
+                               + "', Line " + OUString::number(e.LineNumber) + ", Column "
+                               + OUString::number(e.ColumnNumber));
     OUString const restMessage(lcl_GetExceptionMessageRec(e));
     return restMessage + "\n" + thisMessage;
 }
@@ -83,17 +84,12 @@ static OUString lcl_GetExceptionMessageRec(xml::sax::SAXException const& e)
     return OUString();
 }
 
-namespace {
-
+namespace
+{
 /// Common DOCX filter, calls DocxExportFilter via UNO or does the DOCX import.
-class WriterFilter : public cppu::WeakImplHelper
-    <
-    document::XFilter,
-    document::XImporter,
-    document::XExporter,
-    lang::XInitialization,
-    lang::XServiceInfo
-    >
+class WriterFilter
+    : public cppu::WeakImplHelper<document::XFilter, document::XImporter, document::XExporter,
+                                  lang::XInitialization, lang::XServiceInfo>
 {
     uno::Reference<uno::XComponentContext> m_xContext;
     uno::Reference<lang::XComponent> m_xSrcDoc, m_xDstDoc;
@@ -102,7 +98,8 @@ class WriterFilter : public cppu::WeakImplHelper
 public:
     explicit WriterFilter(uno::Reference<uno::XComponentContext> xContext)
         : m_xContext(std::move(xContext))
-    {}
+    {
+    }
 
     // XFilter
     sal_Bool SAL_CALL filter(const uno::Sequence<beans::PropertyValue>& rDescriptor) override;
@@ -122,18 +119,19 @@ public:
     sal_Bool SAL_CALL supportsService(const OUString& rServiceName) override;
     uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
 };
-
 }
 
-sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescriptor)
+sal_Bool WriterFilter::filter(const uno::Sequence<beans::PropertyValue>& rDescriptor)
 {
     if (m_xSrcDoc.is())
     {
-        uno::Reference< lang::XMultiServiceFactory > xMSF(m_xContext->getServiceManager(), uno::UNO_QUERY_THROW);
-        uno::Reference< uno::XInterface > xIfc;
+        uno::Reference<lang::XMultiServiceFactory> xMSF(m_xContext->getServiceManager(),
+                                                        uno::UNO_QUERY_THROW);
+        uno::Reference<uno::XInterface> xIfc;
         try
         {
-            xIfc.set(xMSF->createInstance("com.sun.star.comp.Writer.DocxExport"), uno::UNO_SET_THROW);
+            xIfc.set(xMSF->createInstance("com.sun.star.comp.Writer.DocxExport"),
+                     uno::UNO_SET_THROW);
         }
         catch (uno::RuntimeException&)
         {
@@ -142,14 +140,16 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
         catch (uno::Exception& e)
         {
             uno::Any a(cppu::getCaughtException());
-            throw lang::WrappedTargetRuntimeException("wrapped " + a.getValueTypeName() + ": " + e.Message, uno::Reference<uno::XInterface>(), a);
+            throw lang::WrappedTargetRuntimeException("wrapped " + a.getValueTypeName() + ": "
+                                                          + e.Message,
+                                                      uno::Reference<uno::XInterface>(), a);
         }
 
         uno::Reference<lang::XInitialization> xInit(xIfc, uno::UNO_QUERY_THROW);
         xInit->initialize(m_xInitializationArguments);
 
         uno::Reference<document::XExporter> xExprtr(xIfc, uno::UNO_QUERY_THROW);
-        uno::Reference< document::XFilter > xFltr(xIfc, uno::UNO_QUERY_THROW);
+        uno::Reference<document::XFilter> xFltr(xIfc, uno::UNO_QUERY_THROW);
         xExprtr->setSourceDocument(m_xSrcDoc);
         return xFltr->filter(rDescriptor);
     }
@@ -157,13 +157,15 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
     {
         utl::MediaDescriptor aMediaDesc(rDescriptor);
         bool bRepairStorage = aMediaDesc.getUnpackedValueOrDefault("RepairPackage", false);
-        bool bSkipImages = aMediaDesc.getUnpackedValueOrDefault("FilterOptions", OUString()) == "SkipImages";
+        bool bSkipImages
+            = aMediaDesc.getUnpackedValueOrDefault("FilterOptions", OUString()) == "SkipImages";
 
-        uno::Reference< io::XInputStream > xInputStream;
+        uno::Reference<io::XInputStream> xInputStream;
         try
         {
             // use the oox.core.FilterDetect implementation to extract the decrypted ZIP package
-            rtl::Reference<::oox::core::FilterDetect> xDetector(new ::oox::core::FilterDetect(m_xContext));
+            rtl::Reference<::oox::core::FilterDetect> xDetector(
+                new ::oox::core::FilterDetect(m_xContext));
             xInputStream = xDetector->extractUnencryptedPackage(aMediaDesc);
         }
         catch (uno::Exception&)
@@ -178,17 +180,21 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
                 m_xContext, xInputStream, m_xDstDoc, bRepairStorage,
                 writerfilter::dmapper::SourceDocumentType::OOXML, aMediaDesc));
         //create the tokenizer and domain mapper
-        writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream, bRepairStorage);
-        uno::Reference<task::XStatusIndicator> xStatusIndicator = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(), uno::Reference<task::XStatusIndicator>());
-        writerfilter::ooxml::OOXMLDocument::Pointer_t pDocument(writerfilter::ooxml::OOXMLDocumentFactory::createDocument(pDocStream, xStatusIndicator, bSkipImages, rDescriptor));
+        writerfilter::ooxml::OOXMLStream::Pointer_t pDocStream
+            = writerfilter::ooxml::OOXMLDocumentFactory::createStream(m_xContext, xInputStream,
+                                                                      bRepairStorage);
+        uno::Reference<task::XStatusIndicator> xStatusIndicator
+            = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_STATUSINDICATOR(),
+                                                   uno::Reference<task::XStatusIndicator>());
+        writerfilter::ooxml::OOXMLDocument::Pointer_t pDocument(
+            writerfilter::ooxml::OOXMLDocumentFactory::createDocument(pDocStream, xStatusIndicator,
+                                                                      bSkipImages, rDescriptor));
 
         uno::Reference<frame::XModel> xModel(m_xDstDoc, uno::UNO_QUERY_THROW);
         pDocument->setModel(xModel);
 
-        uno::Reference<drawing::XDrawPageSupplier> xDrawings
-        (m_xDstDoc, uno::UNO_QUERY_THROW);
-        uno::Reference<drawing::XDrawPage> xDrawPage
-        (xDrawings->getDrawPage(), uno::UNO_SET_THROW);
+        uno::Reference<drawing::XDrawPageSupplier> xDrawings(m_xDstDoc, uno::UNO_QUERY_THROW);
+        uno::Reference<drawing::XDrawPage> xDrawPage(xDrawings->getDrawPage(), uno::UNO_SET_THROW);
         pDocument->setDrawPage(xDrawPage);
 
         try
@@ -199,15 +205,15 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
         {
             // note: SfxObjectShell checks for WrongFormatException
             io::WrongFormatException wfe(lcl_GetExceptionMessage(e));
-            throw lang::WrappedTargetRuntimeException("",
-                    static_cast<OWeakObject*>(this), uno::makeAny(wfe));
+            throw lang::WrappedTargetRuntimeException("", static_cast<OWeakObject*>(this),
+                                                      uno::makeAny(wfe));
         }
         catch (xml::sax::SAXException const& e)
         {
             // note: SfxObjectShell checks for WrongFormatException
             io::WrongFormatException wfe(lcl_GetExceptionMessage(e));
-            throw lang::WrappedTargetRuntimeException("",
-                    static_cast<OWeakObject*>(this), uno::makeAny(wfe));
+            throw lang::WrappedTargetRuntimeException("", static_cast<OWeakObject*>(this),
+                                                      uno::makeAny(wfe));
         }
         catch (uno::RuntimeException const&)
         {
@@ -216,9 +222,9 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
         catch (uno::Exception const&)
         {
             css::uno::Any anyEx = cppu::getCaughtException();
-            SAL_WARN("writerfilter", "WriterFilter::filter(): failed with " << exceptionToString(anyEx));
-            throw lang::WrappedTargetRuntimeException("",
-                    static_cast<OWeakObject*>(this), anyEx);
+            SAL_WARN("writerfilter",
+                     "WriterFilter::filter(): failed with " << exceptionToString(anyEx));
+            throw lang::WrappedTargetRuntimeException("", static_cast<OWeakObject*>(this), anyEx);
         }
 
         // Adding some properties to the document's grab bag for interoperability purposes:
@@ -240,24 +246,30 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
 
         oox::core::XmlFilterBase::putPropertiesToDocumentGrabBag(m_xDstDoc, aGrabBagProperties);
 
-        writerfilter::ooxml::OOXMLStream::Pointer_t  pVBAProjectStream(writerfilter::ooxml::OOXMLDocumentFactory::createStream(pDocStream, writerfilter::ooxml::OOXMLStream::VBAPROJECT));
-        oox::StorageRef xVbaPrjStrg(new ::oox::ole::OleStorage(m_xContext, pVBAProjectStream->getDocumentStream(), false));
+        writerfilter::ooxml::OOXMLStream::Pointer_t pVBAProjectStream(
+            writerfilter::ooxml::OOXMLDocumentFactory::createStream(
+                pDocStream, writerfilter::ooxml::OOXMLStream::VBAPROJECT));
+        oox::StorageRef xVbaPrjStrg(
+            new ::oox::ole::OleStorage(m_xContext, pVBAProjectStream->getDocumentStream(), false));
         if (xVbaPrjStrg.get() && xVbaPrjStrg->isStorage())
         {
             ::oox::ole::VbaProject aVbaProject(m_xContext, xModel, "Writer");
-            uno::Reference< frame::XFrame > xFrame = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_FRAME(), uno::Reference< frame::XFrame > ());
+            uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(
+                utl::MediaDescriptor::PROP_FRAME(), uno::Reference<frame::XFrame>());
 
             // if no XFrame try fallback to what we can glean from the Model
             if (!xFrame.is())
             {
-                uno::Reference< frame::XController > xController =  xModel->getCurrentController();
-                xFrame =  xController.is() ? xController->getFrame() : nullptr;
+                uno::Reference<frame::XController> xController = xModel->getCurrentController();
+                xFrame = xController.is() ? xController->getFrame() : nullptr;
             }
 
             oox::GraphicHelper gHelper(m_xContext, xFrame, xVbaPrjStrg);
             aVbaProject.importVbaProject(*xVbaPrjStrg, gHelper);
 
-            writerfilter::ooxml::OOXMLStream::Pointer_t pVBADataStream(writerfilter::ooxml::OOXMLDocumentFactory::createStream(pDocStream, writerfilter::ooxml::OOXMLStream::VBADATA));
+            writerfilter::ooxml::OOXMLStream::Pointer_t pVBADataStream(
+                writerfilter::ooxml::OOXMLDocumentFactory::createStream(
+                    pDocStream, writerfilter::ooxml::OOXMLStream::VBADATA));
             if (pVBADataStream)
             {
                 uno::Reference<io::XInputStream> xDataStream = pVBADataStream->getDocumentStream();
@@ -273,17 +285,16 @@ sal_Bool WriterFilter::filter(const uno::Sequence< beans::PropertyValue >& rDesc
     return false;
 }
 
-void WriterFilter::cancel()
-{
-}
+void WriterFilter::cancel() {}
 
-void WriterFilter::setTargetDocument(const uno::Reference< lang::XComponent >& xDoc)
+void WriterFilter::setTargetDocument(const uno::Reference<lang::XComponent>& xDoc)
 {
     m_xDstDoc = xDoc;
 
     // Set some compatibility options that are valid for all the formats
-    uno::Reference< lang::XMultiServiceFactory > xFactory(xDoc, uno::UNO_QUERY);
-    uno::Reference< beans::XPropertySet > xSettings(xFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);
+    uno::Reference<lang::XMultiServiceFactory> xFactory(xDoc, uno::UNO_QUERY);
+    uno::Reference<beans::XPropertySet> xSettings(
+        xFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);
 
     xSettings->setPropertyValue("AddFrameOffsets", uno::makeAny(true));
     xSettings->setPropertyValue("AddVerticalFrameOffsets", uno::makeAny(true));
@@ -312,39 +323,33 @@ void WriterFilter::setTargetDocument(const uno::Reference< lang::XComponent >& x
     xSettings->setPropertyValue("DisableOffPagePositioning", uno::makeAny(true));
 }
 
-void WriterFilter::setSourceDocument(const uno::Reference< lang::XComponent >& xDoc)
+void WriterFilter::setSourceDocument(const uno::Reference<lang::XComponent>& xDoc)
 {
     m_xSrcDoc = xDoc;
 }
 
-void WriterFilter::initialize(const uno::Sequence< uno::Any >& rArguments)
+void WriterFilter::initialize(const uno::Sequence<uno::Any>& rArguments)
 {
     m_xInitializationArguments = rArguments;
 }
 
-OUString WriterFilter::getImplementationName()
-{
-    return "com.sun.star.comp.Writer.WriterFilter";
-}
-
+OUString WriterFilter::getImplementationName() { return "com.sun.star.comp.Writer.WriterFilter"; }
 
 sal_Bool WriterFilter::supportsService(const OUString& rServiceName)
 {
     return cppu::supportsService(this, rServiceName);
 }
 
-
 uno::Sequence<OUString> WriterFilter::getSupportedServiceNames()
 {
-    uno::Sequence<OUString> aRet =
-    {
-        OUString("com.sun.star.document.ImportFilter"),
-        OUString("com.sun.star.document.ExportFilter")
-    };
+    uno::Sequence<OUString> aRet = { OUString("com.sun.star.document.ImportFilter"),
+                                     OUString("com.sun.star.document.ExportFilter") };
     return aRet;
 }
 
-extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface* com_sun_star_comp_Writer_WriterFilter_get_implementation(uno::XComponentContext* component, uno::Sequence<uno::Any> const& /*rSequence*/)
+extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
+com_sun_star_comp_Writer_WriterFilter_get_implementation(
+    uno::XComponentContext* component, uno::Sequence<uno::Any> const& /*rSequence*/)
 {
     return cppu::acquire(new WriterFilter(component));
 }
commit fca4734d0c001f5f000b914e664b0df30270c943
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Mon Nov 25 12:06:38 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:25 2019 +0100

    use -Xclang -fno-pch-timestamp also for Clang PCH in compilerplugins
    
    We already use that normally, the build system should generally take
    care of this by gmake dependencies. One exception is system headers,
    but those usually do not really change even if their timestamps do,
    so this should prevent Clang from giving an error about this after
    system headers update (which should be harmless, and if it isn't
    then I suppose either something else such as compiler upgrade
    should trigger a rebuild, or cleaning needs to be done manually).
    
    Change-Id: I60581c0d2d3233aadc60e1c90bd62cb9ad684ba2
    Reviewed-on: https://gerrit.libreoffice.org/83662
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/compilerplugins/Makefile-clang.mk b/compilerplugins/Makefile-clang.mk
index 0965c74636fc..29bc89c6b2a2 100644
--- a/compilerplugins/Makefile-clang.mk
+++ b/compilerplugins/Makefile-clang.mk
@@ -112,6 +112,7 @@ ifneq ($(OS),WNT)
 # Currently only Clang PCH is supported (which should usually be the case, as Clang is usually self-built).
 ifneq ($(findstring clang,$(COMPILER_PLUGINS_CXX)),)
 LO_CLANG_USE_PCH=1
+LO_CLANG_PCH_FLAGS:=-Xclang -fno-pch-timestamp
 endif
 endif
 endif
@@ -326,6 +327,7 @@ $(CLANGOUTDIR)/clang.pch: $(CLANGINDIR)/precompiled_clang.hxx \
 	$(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),PCH,1)
 	$(QUIET)$(COMPILER_PLUGINS_CXX) -x c++-header $(CLANGDEFS) $(CLANGCXXFLAGS) $(CLANGWERROR) \
         $(CLANGINCLUDES) -I$(BUILDDIR)/config_host -I$(CLANGINDIR) -DPCH_LEVEL=$(gb_ENABLE_PCH) \
+        $(LO_CLANG_PCH_FLAGS) \
         -fPIC -c $< -o $@ -MMD -MT $@ -MP -MF $(CLANGOUTDIR)/clang.pch.d
 endif
 -include $(CLANGOUTDIR)/clang.pch.d
@@ -343,7 +345,7 @@ $(CLANGOUTDIR)/sharedvisitor/clang.pch: $(CLANGINDIR)/sharedvisitor/precompiled_
         | $(CLANGOUTDIR)/sharedvisitor
 	$(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),PCH,1)
 	$(QUIET)$(CLANGDIR)/bin/clang -x c++-header $(LO_CLANG_ANALYZER_PCH_CXXFLAGS) \
-        $(COMPILER_PLUGINS_TOOLING_ARGS) -c $< -o $@ -MMD -MT $@ -MP \
+        $(LO_CLANG_PCH_FLAGS) $(COMPILER_PLUGINS_TOOLING_ARGS) -c $< -o $@ -MMD -MT $@ -MP \
         -MF $(CLANGOUTDIR)/sharedvisitor/clang.pch.d
 
 -include $(CLANGOUTDIR)/sharedvisitor/clang.pch.d
commit 7e902cc05e627c894a84015746b58f97d1c902ea
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 25 08:48:03 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:24 2019 +0100

    Replace TODO with OASIS proposal for semi-transparent shape text
    
    Change-Id: Iec55f19f2e657c3d306a0168b0be9ebd9eef6fe1
    Reviewed-on: https://gerrit.libreoffice.org/83643
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
index 330364b77827..5da3958ef15e 100644
--- a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
+++ b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
@@ -2029,7 +2029,7 @@ xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.
         <rng:ref name="string"/>
       </rng:attribute>
     </rng:optional>
-    <!-- TODO no proposal -->
+    <!-- https://issues.oasis-open.org/browse/OFFICE-4049 -->
     <rng:optional>
       <rng:attribute name="loext:opacity">
         <rng:ref name="zeroToHundredPercent"/>
commit f81fe37586c527bdfa4ca8c4e3e2b79d750c7e34
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 25 08:27:16 2019 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Nov 26 12:57:24 2019 +0100

    sw: prefix members of SwFieldDialog, SwLanguageIterator, SwSelectionList ...
    
    ... and SwXFieldmark
    
    Change-Id: I06654f5473ded6ba683c9755e500b7c44c3a7d7c
    Reviewed-on: https://gerrit.libreoffice.org/83642
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/sw/inc/txatritr.hxx b/sw/inc/txatritr.hxx
index 625b9cba2e1a..504a8e2b7fdd 100644
--- a/sw/inc/txatritr.hxx
+++ b/sw/inc/txatritr.hxx
@@ -48,14 +48,14 @@ public:
 
 class SwLanguageIterator
 {
-    SwScriptIterator    aSIter;
+    SwScriptIterator    m_aScriptIter;
     std::deque<const SwTextAttr*>
-                        aStack;
-    const SwTextNode&   rTextNd;
-    const SfxPoolItem*  pParaItem;
-    const SfxPoolItem*  pCurItem;
-    size_t              nAttrPos;
-    sal_Int32           nChgPos;
+                        m_aStack;
+    const SwTextNode&   m_rTextNode;
+    const SfxPoolItem*  m_pParaItem;
+    const SfxPoolItem*  m_pCurrentItem;
+    size_t              m_nAttrPos;
+    sal_Int32           m_nChgPos;
 
     void AddToStack( const SwTextAttr& rAttr );
     void SearchNextChg();
@@ -64,9 +64,9 @@ public:
     SwLanguageIterator( const SwTextNode& rTextNd, sal_Int32 nStart );
 
     bool               Next();
-    sal_Int32          GetChgPos() const        { return nChgPos; }
+    sal_Int32          GetChgPos() const        { return m_nChgPos; }
     LanguageType       GetLanguage() const
-        { return static_cast<const SvxLanguageItem&>(*pCurItem).GetValue(); }
+        { return static_cast<const SvxLanguageItem&>(*m_pCurrentItem).GetValue(); }
 };
 
 #endif
diff --git a/sw/source/core/crsr/DropDownFormFieldButton.cxx b/sw/source/core/crsr/DropDownFormFieldButton.cxx
index 916d6ab1a8b7..249bd22100ed 100644
--- a/sw/source/core/crsr/DropDownFormFieldButton.cxx
+++ b/sw/source/core/crsr/DropDownFormFieldButton.cxx
@@ -27,8 +27,8 @@ namespace
 class SwFieldDialog : public FloatingWindow
 {
 private:
-    VclPtr<ListBox> aListBox;
-    sw::mark::IFieldmark* pFieldmark;
+    VclPtr<ListBox> m_aListBox;
+    sw::mark::IFieldmark* m_pFieldmark;
 
     DECL_LINK(MyListBoxHandler, ListBox&, void);
 
@@ -41,8 +41,8 @@ public:
 
 SwFieldDialog::SwFieldDialog(SwEditWin* parent, sw::mark::IFieldmark* fieldBM, long nMinListWidth)
     : FloatingWindow(parent, WB_BORDER | WB_SYSTEMWINDOW)
-    , aListBox(VclPtr<ListBox>::Create(this))
-    , pFieldmark(fieldBM)
+    , m_aListBox(VclPtr<ListBox>::Create(this))
+    , m_pFieldmark(fieldBM)
 {
     if (fieldBM != nullptr)
     {
@@ -56,12 +56,12 @@ SwFieldDialog::SwFieldDialog(SwEditWin* parent, sw::mark::IFieldmark* fieldBM, l
         {
             pListEntries->second >>= vListEntries;
             for (OUString const& i : std::as_const(vListEntries))
-                aListBox->InsertEntry(i);
+                m_aListBox->InsertEntry(i);
         }
 
         if (!vListEntries.hasElements())
         {
-            aListBox->InsertEntry(SwResId(STR_DROP_DOWN_EMPTY_LIST));
+            m_aListBox->InsertEntry(SwResId(STR_DROP_DOWN_EMPTY_LIST));
         }
 
         // Select the current one
@@ -72,17 +72,17 @@ SwFieldDialog::SwFieldDialog(SwEditWin* parent, sw::mark::IFieldmark* fieldBM, l
         {
             sal_Int32 nSelection = -1;
             pResult->second >>= nSelection;
-            aListBox->SelectEntryPos(nSelection);
+            m_aListBox->SelectEntryPos(nSelection);
         }
     }
 
-    Size lbSize(aListBox->GetOptimalSize());
+    Size lbSize(m_aListBox->GetOptimalSize());
     lbSize.AdjustWidth(50);
     lbSize.AdjustHeight(20);
     lbSize.setWidth(std::max(lbSize.Width(), nMinListWidth));
-    aListBox->SetSizePixel(lbSize);
-    aListBox->SetSelectHdl(LINK(this, SwFieldDialog, MyListBoxHandler));
-    aListBox->Show();
+    m_aListBox->SetSizePixel(lbSize);
+    m_aListBox->SetSelectHdl(LINK(this, SwFieldDialog, MyListBoxHandler));
+    m_aListBox->Show();
 
     SetSizePixel(lbSize);
 }
@@ -91,7 +91,7 @@ SwFieldDialog::~SwFieldDialog() { disposeOnce(); }
 
 void SwFieldDialog::dispose()
 {
-    aListBox.disposeAndClear();
+    m_aListBox.disposeAndClear();
     FloatingWindow::dispose();
 }
 
@@ -110,8 +110,8 @@ IMPL_LINK(SwFieldDialog, MyListBoxHandler, ListBox&, rBox, void)
         if (nSelection >= 0)
         {

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list