User: rt Date: 05/03/30 03:56:51 Modified: /dba/dbaccess/source/filter/xml/ dbloader2.cxx
Log: INTEGRATION: CWS dba28 (1.9.8); FILE MERGED 2005/03/23 14:50:00 fs 1.9.8.2: #i45314# care for SalvagedFile argument when loading 2005/03/21 14:35:30 fs 1.9.8.1: copying the changes from CWS dba26 herein, since they're needed to fix i45314 File Changes: Directory: /dba/dbaccess/source/filter/xml/ =========================================== File [changed]: dbloader2.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/xml/dbloader2.cxx?r1=1.10&r2=1.11 Delta lines: +21 -29 --------------------- --- dbloader2.cxx 23 Mar 2005 09:48:21 -0000 1.10 +++ dbloader2.cxx 30 Mar 2005 11:56:48 -0000 1.11 @@ -320,10 +320,6 @@ class DBContentLoader : public ::cppu::WeakImplHelper2< XFrameLoader, XServiceInfo> { private: - ::rtl::OUString m_aURL; - Sequence< PropertyValue> m_aArgs; - Reference< XLoadEventListener > m_xListener; - Reference< XFrame > m_xFrame; Reference< XMultiServiceFactory > m_xServiceFactory; Reference< XFrameLoader > m_xMySelf; ::rtl::OUString m_sCurrentURL; @@ -407,14 +403,14 @@ } // ----------------------------------------------------------------------- -void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const ::rtl::OUString& rURL, +void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const ::rtl::OUString& _rURL, const Sequence< PropertyValue >& rArgs, const Reference< XLoadEventListener > & rListener) throw(::com::sun::star::uno::RuntimeException) { // first check if preview is true, if so return with out creating a controller. Preview is not supported ::comphelper::SequenceAsHashMap lDescriptor(rArgs); - sal_Bool bPreview = lDescriptor.getUnpackedValueOrDefault(INFO_PREVIEW , sal_False ); + sal_Bool bPreview = lDescriptor.getUnpackedValueOrDefault(INFO_PREVIEW, sal_False ); if ( bPreview ) { if (rListener.is()) @@ -423,10 +419,9 @@ } Reference< XModel > xModel = lDescriptor.getUnpackedValueOrDefault(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Model")), Reference< XModel >()); - m_xFrame = rFrame; - m_xListener = rListener; - m_aURL = rURL; - m_aArgs = rArgs; + ::rtl::OUString sSalvagedURL = lDescriptor.getUnpackedValueOrDefault( + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "SalvagedFile" ) ), _rURL ); + Sequence< PropertyValue > aLoadArgs( rArgs ); sal_Bool bCreateNew = sal_False; sal_Bool bInteractive = sal_False; @@ -440,12 +435,12 @@ Reference< XSingleServiceFactory > xDatabaseContext(m_xServiceFactory->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY); if ( xDatabaseContext.is() ) { - bCreateNew = rURL.match(SvtModuleOptions().GetFactoryEmptyDocumentURL(SvtModuleOptions::E_DATABASE)); + bCreateNew = _rURL.match(SvtModuleOptions().GetFactoryEmptyDocumentURL(SvtModuleOptions::E_DATABASE)); Sequence<Any> aCreationArgs; if ( !bCreateNew ) { aCreationArgs.realloc(1); - aCreationArgs[0] <<= NamedValue(INFO_POOLURL,makeAny(rURL)); + aCreationArgs[0] <<= NamedValue( INFO_POOLURL, makeAny( sSalvagedURL ) ); } else { @@ -460,7 +455,7 @@ if ( xTransformer.is() ) { URL aURL; - aURL.Complete = m_aURL; + aURL.Complete = _rURL; xTransformer->parseStrict( aURL ); bInteractive = aURL.Arguments.equalsAscii( "Interactive" ); } @@ -481,14 +476,11 @@ { try { - // ich benutze nicht maURL, sondern rURL, denn zwischen dem Constructor und diesem Load hier kann sich die ::com::sun::star::util::URL des Objektes - // schon geaendert haben (zum Beispiel durch Umbenennen) + aLoadArgs.realloc(aLoadArgs.getLength()+1); + aLoadArgs[aLoadArgs.getLength()-1].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")); + aLoadArgs[aLoadArgs.getLength()-1].Value <<= _rURL; - m_aArgs.realloc(m_aArgs.getLength()+1); - m_aArgs[m_aArgs.getLength()-1].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")); - m_aArgs[m_aArgs.getLength()-1].Value <<= rURL; - - xModel->attachResource(rURL,m_aArgs); + xModel->attachResource( _rURL, aLoadArgs ); } catch(Exception&) { @@ -500,7 +492,7 @@ if ( bInteractive ) { - Sequence< Any > aArgs(2); + Sequence< Any > aWizardArgs(2); Reference< ::com::sun::star::awt::XWindow> xWindow; // get the top most window if ( rFrame.is() ) @@ -515,18 +507,18 @@ xWindow = xFrame->getContainerWindow(); } // the parent window - aArgs[0] <<= PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParentWindow")), + aWizardArgs[0] <<= PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParentWindow")), 0, makeAny(xWindow), PropertyState_DIRECT_VALUE); - aArgs[1] <<= PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("InitialSelection")), + aWizardArgs[1] <<= PropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("InitialSelection")), 0, makeAny(xModel), PropertyState_DIRECT_VALUE); // create the dialog Reference< XExecutableDialog > xAdminDialog( - m_xServiceFactory->createInstanceWithArguments(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.DatabaseWizardDialog")),aArgs), UNO_QUERY); + m_xServiceFactory->createInstanceWithArguments(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.DatabaseWizardDialog")),aWizardArgs), UNO_QUERY); // execute it if ( bSuccess = xAdminDialog.is() && RET_OK == xAdminDialog->execute() ) @@ -555,23 +547,23 @@ { Reference<XInitialization > xIni(xController,UNO_QUERY); PropertyValue aProp(::rtl::OUString::createFromAscii("Frame"),0,makeAny(rFrame),PropertyState_DIRECT_VALUE); - Sequence< Any > aArgs(m_aArgs.getLength() + 2); + Sequence< Any > aInitArgs( aLoadArgs.getLength() + 2 ); - Any* pArgIter = aArgs.getArray(); - Any* pEnd = pArgIter + aArgs.getLength(); + Any* pArgIter = aInitArgs.getArray(); + Any* pEnd = pArgIter + aInitArgs.getLength(); *pArgIter++ <<= aProp; aProp.Name = URL_INTERACTIVE; aProp.Value <<= bInteractive; *pArgIter++ <<= aProp; - const PropertyValue* pIter = m_aArgs.getConstArray(); + const PropertyValue* pIter = aLoadArgs.getConstArray(); for(++pArgIter;pArgIter != pEnd;++pArgIter,++pIter) { *pArgIter <<= *pIter; } - xIni->initialize(aArgs); + xIni->initialize(aInitArgs); } catch(Exception&) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
