[Libreoffice-commits] core.git: 2 commits - dbaccess/source officecfg/registry postprocess/CustomTarget_registry.mk
Miklos Vajna
vmiklos at collabora.co.uk
Wed Apr 29 06:16:25 PDT 2015
dbaccess/source/core/dataaccess/databasedocument.cxx | 10 ++++++++++
dbaccess/source/core/dataaccess/databasedocument.hxx | 2 ++
officecfg/registry/data/org/openoffice/Office/Embedding.xcu | 12 ++++++++++++
postprocess/CustomTarget_registry.mk | 1 +
4 files changed, 25 insertions(+)
New commits:
commit df44a6f767a1c4ad18e6b5b6638d6699d852ddb7
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Apr 29 14:44:57 2015 +0200
officecfg, postprocess: allow embedding of Base documents
Don't advertise them on the UI, though.
With this, Insert -> Object -> OLE Object -> Create from file can insert
a Base document into a Writer document model.
Change-Id: I18fdf98af8fb4f8b6ef0c3a910aaefba9e516dfd
diff --git a/officecfg/registry/data/org/openoffice/Office/Embedding.xcu b/officecfg/registry/data/org/openoffice/Office/Embedding.xcu
index e39af5d..2352f41 100644
--- a/officecfg/registry/data/org/openoffice/Office/Embedding.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Embedding.xcu
@@ -255,6 +255,18 @@
<value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value>
</prop>
</node>
+ <node oor:name="F203786B-A78D-4E89-9D3D-94A108989E7F" oor:op="replace" install:module="base">
+ <prop oor:name="ObjectFactory">
+ <value>com.sun.star.embed.OOoEmbeddedObjectFactory</value>
+ </prop>
+ <prop oor:name="ObjectDocumentServiceName">
+ <value>com.sun.star.sdb.OfficeDatabaseDocument</value>
+ </prop>
+ <prop oor:name="ObjectMiscStatus"/>
+ <prop oor:name="ObjectVerbs">
+ <value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value>
+ </prop>
+ </node>
<node oor:name="D7896D52-B7AF-4820-9DFE-D404D015960F" oor:op="replace" install:module="reportbuilder">
<prop oor:name="ObjectFactory">
<value>com.sun.star.embed.OOoEmbeddedObjectFactory</value>
diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk
index e12640f..6168c59 100644
--- a/postprocess/CustomTarget_registry.mk
+++ b/postprocess/CustomTarget_registry.mk
@@ -41,6 +41,7 @@ postprocess_FILES_base := \
$(call gb_XcuFilterOthersTarget_get_target,fcfg_database_others.xcu) \
$(call gb_XcuFilterTypesTarget_get_target,fcfg_database_types.xcu) \
$(postprocess_MOD)/org/openoffice/Office/Common-base.xcu \
+ $(postprocess_MOD)/org/openoffice/Office/Embedding-base.xcu \
$(postprocess_MOD)/org/openoffice/Setup-base.xcu
postprocess_DEPS_calc := main
commit fa2304aef2ea65cbbb15e3694a61c05999032d20
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Apr 29 14:44:16 2015 +0200
dbaccess: attachResource() and load() calls are swapped in case of embedding
Change-Id: I34600202f0f5c988222f7d4f305ba90df09cd614
diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx
index 5062648..5eab51c 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.cxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.cxx
@@ -173,6 +173,7 @@ ODatabaseDocument::ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>&
,m_bClosing( false )
,m_bAllowDocumentScripting( false )
,m_bHasBeenRecovered( false )
+ ,m_bEmbedded(false)
{
OSL_TRACE( "DD: ctor: %p: %p", this, m_pImpl.get() );
@@ -593,6 +594,9 @@ void SAL_CALL ODatabaseDocument::load( const Sequence< PropertyValue >& _Argumen
// note that we do *not* call impl_setInitialized() here: The initialization is only complete
// when the XModel::attachResource has been called, not sooner.
+ // however, in case of embedding, XModel::attachResource is already called.
+ if (m_bEmbedded)
+ impl_setInitialized();
impl_setModified_nothrow( false, aGuard );
// <- SYNCHRONIZED
@@ -756,6 +760,12 @@ void SAL_CALL ODatabaseDocument::recoverFromFile( const OUString& i_SourceLocati
// XModel
sal_Bool SAL_CALL ODatabaseDocument::attachResource( const OUString& _rURL, const Sequence< PropertyValue >& _rArguments ) throw (RuntimeException, std::exception)
{
+ if (_rURL.isEmpty() && _rArguments.getLength() == 1 && _rArguments[0].Name == "SetEmbedded")
+ {
+ m_bEmbedded = true;
+ return true;
+ }
+
DocumentGuard aGuard( *this, DocumentGuard::MethodUsedDuringInit );
bool bRet = false;
try
diff --git a/dbaccess/source/core/dataaccess/databasedocument.hxx b/dbaccess/source/core/dataaccess/databasedocument.hxx
index 5b2b3e8..693ad29 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.hxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.hxx
@@ -200,6 +200,8 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
bool m_bClosing;
bool m_bAllowDocumentScripting;
bool m_bHasBeenRecovered;
+ /// If XModel::attachResource() was called to inform us that the document is embedded into an other one.
+ bool m_bEmbedded;
enum StoreType { SAVE, SAVE_AS };
/** stores the document to the given URL, rebases it to the respective new storage, if necessary, resets
More information about the Libreoffice-commits
mailing list