diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-01-15 15:21:15 +0100 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-01-15 15:21:15 +0100 |
commit | d0e9f1f751ecd16597d6a06276a40dfb4ae00fb8 (patch) | |
tree | 67acb33cb958124d37545354dd3c78074e6da9b0 /embeddedobj/source/inc | |
parent | autorecovery: save open/modified (Writer-based) reports and forms, when doing... (diff) | |
download | core-d0e9f1f751ecd16597d6a06276a40dfb4ae00fb8.tar.gz core-d0e9f1f751ecd16597d6a06276a40dfb4ae00fb8.zip |
autorecovery: save/recover forms and reports
Still some lose ends. Most notably, the current code contains cases for other sub component types,
but has no real implementation - attempting to save/recover those other types will yield multiple
assertions only. Also, recovery of SRB-reports has not been tested, yet, chances are good there's
some work ahead here.
Other known open issues:
- recovering sub components immediately shows them, instead of initially hiding them, and showing
only when the main document window is shown
- the implementation currently is no real session save, which would require saving information about
*unmodified* open sub components (though not their actual content), and restoring them upon
recovery.
- doing an implicit "connect" at the controller of the to-be-recovered database document is a requirement
to actually load the sub components, but might yield problems in case this requires interaction
(e.g. a login). Need to investigate
- the "recovery" storage is not removed from the database document storage after un/successful recovery
- cancelling the recovery of a "modified" database document always suggests to store this doc somewhere
Diffstat (limited to 'embeddedobj/source/inc')
-rw-r--r-- | embeddedobj/source/inc/commonembobj.hxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/embeddedobj/source/inc/commonembobj.hxx b/embeddedobj/source/inc/commonembobj.hxx index 68c00500ff58..69cdb3d4c7a3 100644 --- a/embeddedobj/source/inc/commonembobj.hxx +++ b/embeddedobj/source/inc/commonembobj.hxx @@ -35,6 +35,7 @@ #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/container/XChild.hpp> +#include <com/sun/star/document/XStorageBasedDocument.hpp> #include <com/sun/star/embed/XEmbeddedObject.hpp> #include <com/sun/star/embed/XVisualObject.hpp> #include <com/sun/star/embed/XEmbedPersist.hpp> @@ -150,6 +151,7 @@ protected: ::rtl::OUString m_aEntryName; ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage; ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xObjectStorage; + ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xObjectLoadStorage; // link related stuff ::rtl::OUString m_aLinkURL; @@ -200,8 +202,7 @@ private: ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateStatesSequence_Impl( sal_Int32 nNewState ); ::rtl::OUString GetFilterName( sal_Int32 nVersion ); - ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadDocumentFromStorage_Impl( - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); + ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadDocumentFromStorage_Impl(); ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadLink_Impl(); @@ -213,6 +214,10 @@ private: const ::rtl::OUString& aHierarchName, sal_Bool bAttachToStorage ); + void SwitchDocToStorage_Impl( + const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageBasedDocument >& xDoc, + const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ); + ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateDocFromMediaDescr_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMedDescr ); |