Kaydet (Commit) 1f1e349b authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Miklos Vajna

Resolves: tdf#118382 crash on paste of rtf

into an existing document since....

commit deaa16bd
Author: Serge Krot <Serge.Krot@cib.de>
Date:   Mon Jan 29 12:17:06 2018 +0100

    tdf#72942 Do not overwrite styles from the inserted doc

    During inserting of the text from the external document
    we should not change original default styles in
    currently opened document.

because missing styles aren't created, so there's exceptons
thrown on their use.

I see that the m_bIsNewDoc flag is already checked for since...

commit 5ebe826c
Author: Miklos Vajna <vmiklos@collabora.co.uk>
Date:   Fri Oct 4 11:02:59 2013 +0200

    fdo#69384 fix impress -> writer copy&paste

    Regression from 2ade0712 (fdo#62044 RTF
    import: don't overwrite existing styles when pasting, 2013-06-04),
    during paste, if existing style was found, then the intention was to
    skip that style, but instead we tried to create one.

in the body of the following loop, which should mean that existing
styles are left alone and only missing styles created if we remove
this hunk of the tdf#72942 commit

Change-Id: Ia4aedb5e309c991490656061aa20d11ff24f4f9e
Reviewed-on: https://gerrit.libreoffice.org/59519
Tested-by: Jenkins
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
üst b1d1edff
......@@ -8,10 +8,10 @@
{\s4\fi0\li0\ri0\sb0\sa0\sl200\slmult0\cf0\f3\fs36\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs36\fs36\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext4 Object without fill;}
{\s5\fi0\li0\ri0\sb0\sa0\sl200\slmult0\cf0\f3\fs36\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs36\fs36\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext5 Object with no fill and no line;}
{\s6\fi0\li0\ri0\sb0\sa0\sl200\slmult0\cf0\f3\fs36\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs36\fs36\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext6 Text;}
{\s7\fi0\li0\ri0\sb0\sa0\sl200\slmult0\cf0\f3\fs32\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs36\fs36\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext7 Text body;}
{\s7\fi0\li0\ri0\sb0\sa0\sl200\slmult0\cf0\f3\fs132\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs136\fs136\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext7 Text Body;}
{\s8\fi0\li0\ri0\sb0\sa0\sl200\slmult0\ql\cf0\f3\fs36\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs36\fs36\b0\b0\i0\i0\accnone\olnone\sbasedon1\snext8 Text body justified;}}
{\*\EditEnginePoolDefaults\ltrpar\fi0\li0\ri0\fi0\li0\ri0\sb0\sa0\sl0\slmult0\ql\cf0\f0\fs48\b0\ulnone\strike0\i0\outl0\shad0\kerning0\expndtw0\f1\f2\fs48\fs48\b0\b0\i0\i0\accnone\olnone}
\deftab709
{
\s27\fi0\li0\ri0\qc\cf0\f3\fs64\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs64\fs64\b0\b0\i0\i0\accnone\olnone {\f3\fs64\b0\i0 sss}\par\pard\plain
\s7\fi0\li0\ri0\qc\cf0\f3\fs64\b0\ulnone\strike0\i0\outl0\shad0\kerning1\f4\f2\fs64\fs64\b0\b0\i0\i0\accnone\olnone {\f3\fs64\b0\i0 sss}\par\pard\plain
}}
......@@ -655,8 +655,12 @@ DECLARE_RTFEXPORT_TEST(testFdo63428, "hello.rtf")
DECLARE_RTFEXPORT_TEST(testFdo69384, "fdo69384-paste.rtf")
{
// Check if the style is loaded
// Ensure non-default style is loaded
getStyles("ParagraphStyles")->getByName("Text body justified");
// Ensure default styles were modified, vs testFdo69384Inserted where it is not
uno::Reference<beans::XPropertySet> xPropertySet(
getStyles("ParagraphStyles")->getByName("Text Body"), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(68.f, getProperty<float>(xPropertySet, "CharHeight"));
}
DECLARE_RTFEXPORT_TEST(testFdo69384Inserted, "hello.rtf")
......@@ -666,8 +670,11 @@ DECLARE_RTFEXPORT_TEST(testFdo69384Inserted, "hello.rtf")
uno::Reference<text::XTextRange> xEnd = xText->getEnd();
paste("rtfexport/data/fdo69384-paste.rtf", xEnd);
// During insert of the RTF document we do not insert new styles
CPPUNIT_ASSERT(!getStyles("ParagraphStyles")->hasByName("Text body justified"));
// During insert of the RTF document we do not change pre-existing styles
// vs testFdo69384 where it is
uno::Reference<beans::XPropertySet> xPropertySet(
getStyles("ParagraphStyles")->getByName("Text Body"), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(12.f, getProperty<float>(xPropertySet, "CharHeight"));
}
DECLARE_RTFEXPORT_TEST(testFdo61193, "hello.rtf")
......
......@@ -911,13 +911,6 @@ uno::Sequence< OUString > PropValVector::getNames()
void StyleSheetTable::ApplyStyleSheets( const FontTablePtr& rFontTable )
{
if (!m_pImpl->m_bIsNewDoc)
{
// tdf#72942: do not import styles from document being inserted,
// while they corrupts original styles in master document
return;
}
try
{
uno::Reference< style::XStyleFamiliesSupplier > xStylesSupplier( m_pImpl->m_xTextDocument, uno::UNO_QUERY_THROW );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment