summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-11-18 17:55:13 +0100
committerMiklos Vajna <vmiklos@collabora.com>2020-11-19 01:37:50 +0100
commit693f12ad57912c2356a197d9a794e6108ce79ef2 (patch)
tree458c5bdb26728a85e9d864896b049afb559ca330 /sfx2
parent69b12a6eb3616d15035310eeb0c3dbc7aefcb5c1 (diff)
sw replacement image creation: fix this when an ODT's settings.xml is invalid
This builds on top of commit c123bfff501229f398a1b679fc7434b82d53685c (Bin overly eager early return that stops replacement image creation, 2020-08-20), and handles a similar case, when SwView::ReadUserDataSequence() is not called at all. The result is the same: no shell is selected on the command dispatcher stack, so .uno:UpdateAll is ignored and the replacement images are not created. Change-Id: If8b74424b0ad88e63129fd8f7efd09f85e300895 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106068 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/view/sfxbasecontroller.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx
index cecf046bfbe9..23b1aad5c3d0 100644
--- a/sfx2/source/view/sfxbasecontroller.cxx
+++ b/sfx2/source/view/sfxbasecontroller.cxx
@@ -1334,12 +1334,18 @@ void SfxBaseController::ConnectSfxFrame_Impl( const ConnectSfxFrame i_eConnect )
break;
}
}
- if ( nViewDataIndex < nCount )
+ if (nViewDataIndex < nCount || !xViewData.is())
{
Sequence< PropertyValue > aViewData;
- OSL_VERIFY( xViewData->getByIndex( nViewDataIndex ) >>= aViewData );
- if ( aViewData.hasElements() )
+ if (xViewData.is())
+ {
+ OSL_VERIFY(xViewData->getByIndex(nViewDataIndex) >>= aViewData);
+ }
+ if (aViewData.hasElements() || !xViewData.is())
+ {
+ // Tolerate empty xViewData, ReadUserDataSequence() has side effects.
m_pData->m_pViewShell->ReadUserDataSequence( aViewData );
+ }
}
}
catch (const Exception&)