connectivity/source/drivers/firebird/Connection.cxx | 54 ++-------- connectivity/source/drivers/firebird/Connection.hxx | 18 ++- dbaccess/source/core/dataaccess/datasource.cxx | 7 + sw/qa/extras/ooxmlexport/data/multi-column-line-separator-SAVED.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 7 + 5 files changed, 38 insertions(+), 48 deletions(-)
New commits: commit 0fe680b266f272fb82edc357fd036be85d4124cd Author: YogeshBharate <yogesh.bhar...@synerzip.com> Date: Fri Oct 18 17:45:36 2013 +0530 Added unit test for multicolumn section separator line Unit test case to verify the multicolumn separator value. Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport.cxx Change-Id: Ifd5b060a4981dda20df2f2ee5cbb2879f9ba0cdb Reviewed-on: https://gerrit.libreoffice.org/6318 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/extras/ooxmlexport/data/multi-column-line-separator-SAVED.docx b/sw/qa/extras/ooxmlexport/data/multi-column-line-separator-SAVED.docx new file mode 100644 index 0000000..9645883 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/multi-column-line-separator-SAVED.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 5c44dc8..69c3b58 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -1532,6 +1532,13 @@ DECLARE_OOXML_TEST(testCharHighlight, "char_highlight.docx") } } +DECLARE_OOXML_TEST(testMultiColumnLineSeparator, "multi-column-line-separator-SAVED.docx") +{ + // Check for the Column Separator value.It should be FALSE as the document doesnt contains separator line. + xmlDocPtr pXmlDoc = parseExport(); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:pPr/w:sectPr/w:cols","sep","false"); +} + DECLARE_OOXML_TEST(testCustomXmlGrabBag, "customxml.docx") { // The problem was that item[n].xml and itemProps[n].xml and .rels files for item[n].xml commit a3eece5a885395888e3b8e779e1fa46f9538d7af Author: Andrzej J.R. Hunt <andr...@ahunt.org> Date: Sun Nov 10 08:34:27 2013 +0000 Pass Document directly to Driver for embedded databases. Change-Id: I346a8ef07c5d695b3aa879f5c25cc4af97e25b99 Reviewed-on: https://gerrit.libreoffice.org/6627 Reviewed-by: Lionel Elie Mamane <lio...@mamane.lu> Tested-by: Lionel Elie Mamane <lio...@mamane.lu> diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx index 728e54f..d00478a 100644 --- a/connectivity/source/drivers/firebird/Connection.cxx +++ b/connectivity/source/drivers/firebird/Connection.cxx @@ -124,6 +124,7 @@ void Connection::construct(const ::rtl::OUString& url, const Sequence< PropertyV if (url.equals("sdbc:embedded:firebird")) { m_bIsEmbedded = true; + const PropertyValue* pIter = info.getConstArray(); const PropertyValue* pEnd = pIter + info.getLength(); @@ -137,6 +138,10 @@ void Connection::construct(const ::rtl::OUString& url, const Sequence< PropertyV { pIter->Value >>= aStorageURL; } + else if ( pIter->Name == "Document" ) + { + pIter->Value >>= m_xParentDocument; + } } if ( !m_xEmbeddedStorage.is() ) @@ -284,52 +289,19 @@ void Connection::construct(const ::rtl::OUString& url, const Sequence< PropertyV // it in the .odb. rebuildIndexes(); - attachAsDocumentListener(aStorageURL); + // We need to attach as a document listener in order to be able to store + // the temporary db back into the .odb when saving + uno::Reference<XDocumentEventBroadcaster> xBroadcaster(m_xParentDocument, UNO_QUERY); + + if (xBroadcaster.is()) + xBroadcaster->addDocumentEventListener(this); + else + assert(false); } osl_atomic_decrement( &m_refCount ); } -void Connection::attachAsDocumentListener(const OUString& rStorageURL) -{ - // We can't directly access the Document that is using this connection - // (since a Connection can in fact be used independently of a DB document) - // hence we need to iterate through all Frames to find our Document. - uno::Reference< frame::XDesktop2 > xFramesSupplier = - frame::Desktop::create(::comphelper::getProcessComponentContext()); - uno::Reference< frame::XFrames > xFrames(xFramesSupplier->getFrames(), - uno::UNO_QUERY); - if (!xFrames.is()) - return; - - uno::Sequence< uno::Reference<frame::XFrame> > xFrameList = - xFrames->queryFrames( frame::FrameSearchFlag::ALL ); - - for (sal_Int32 i = 0; i < xFrameList.getLength(); i++) - { - uno::Reference< frame::XFrame > xf = xFrameList[i]; - uno::Reference< XController > xc; - if (xf.is()) - xc = xf->getController(); - - uno::Reference< XModel > xm; - if (xc.is()) - xm = xc->getModel(); - - if (xm.is() && xm->getURL() == rStorageURL) - { - uno::Reference<XDocumentEventBroadcaster> xBroadcaster( xm, UNO_QUERY); - if (xBroadcaster.is()) - { - xBroadcaster->addDocumentEventListener(this); - return; - } - //TODO: remove in the disposing? - } - } - assert(false); // If we have an embedded DB we must have a document -} - //----- XServiceInfo --------------------------------------------------------- IMPLEMENT_SERVICE_INFO(Connection, "com.sun.star.sdbc.drivers.firebird.Connection", "com.sun.star.sdbc.Connection") diff --git a/connectivity/source/drivers/firebird/Connection.hxx b/connectivity/source/drivers/firebird/Connection.hxx index 6c8dba4..40ebee7 100644 --- a/connectivity/source/drivers/firebird/Connection.hxx +++ b/connectivity/source/drivers/firebird/Connection.hxx @@ -45,6 +45,7 @@ #include <com/sun/star/sdbc/XConnection.hpp> #include <com/sun/star/sdbc/XWarningsSupplier.hpp> #include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#include <com/sun/star/util/XModifiable.hpp> namespace connectivity { @@ -96,6 +97,17 @@ namespace connectivity /* EMBEDDED MODE DATA */ /** Denotes that we have a .fdb stored within a .odb file. */ sal_Bool m_bIsEmbedded; + + /** + * Handle for the parent DatabaseDocument. We need to notify this + * whenever any data is written to our temporary database so that + * the user is able to save this back to the .odb file. + * + * Note that this is ONLY set in embedded mode. + */ + ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifiable > + m_xParentDocument; + /** * Handle for the folder within the .odb where we store our .fdb * (Only used if m_bIsEmbedded is true). @@ -131,12 +143,6 @@ namespace connectivity OWeakRefArray m_aStatements; /** - * If we are embedded in a .odb we need to listen to Document events - * in order to save the .fdb back into the .odb. - */ - void attachAsDocumentListener(const ::rtl::OUString& rStorageURL); - - /** * Firebird stores binary collations for indexes on Character based * columns, these can be binary-incompatible between different icu * version, hence we need to rebuild the indexes when switching icu diff --git a/dbaccess/source/core/dataaccess/datasource.cxx b/dbaccess/source/core/dataaccess/datasource.cxx index 94cd6da..83bb45e 100644 --- a/dbaccess/source/core/dataaccess/datasource.cxx +++ b/dbaccess/source/core/dataaccess/datasource.cxx @@ -703,12 +703,17 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString if ( m_pImpl->isEmbeddedDatabase() ) { sal_Int32 nCount = aDriverInfo.getLength(); - aDriverInfo.realloc(nCount + 2 ); + aDriverInfo.realloc(nCount + 3 ); + aDriverInfo[nCount].Name = "URL"; aDriverInfo[nCount++].Value <<= m_pImpl->getURL(); + aDriverInfo[nCount].Name = "Storage"; Reference< css::document::XDocumentSubStorageSupplier> xDocSup( m_pImpl->getDocumentSubStorageSupplier() ); aDriverInfo[nCount++].Value <<= xDocSup->getDocumentSubStorage("database",ElementModes::READWRITE); + + aDriverInfo[nCount].Name = "Document"; + aDriverInfo[nCount++].Value <<= getDatabaseDocument(); } if (nAdditionalArgs) xReturn = xManager->getConnectionWithInfo(m_pImpl->m_sConnectURL, ::comphelper::concatSequences(aUserPwd,aDriverInfo));
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits