User: vg Date: 05/03/10 08:52:40 Modified: /dba/dbaccess/source/ui/misc/ singledoccontroller.cxx
Log: INTEGRATION: CWS dba24 (1.13.70); FILE MERGED 2005/02/18 12:42:27 oj 1.13.70.3: #i42460# changes for the separation of datasource and database document(model) 2005/02/03 13:52:14 oj 1.13.70.2: #i41913# release view if exception occured while loading 2005/02/03 08:10:54 fs 1.13.70.1: #i40468# invalidate supported features only File Changes: Directory: /dba/dbaccess/source/ui/misc/ ======================================== File [changed]: singledoccontroller.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/singledoccontroller.cxx?r1=1.13&r2=1.14 Delta lines: +20 -6 -------------------- --- singledoccontroller.cxx 9 Sep 2004 09:47:19 -0000 1.13 +++ singledoccontroller.cxx 10 Mar 2005 16:52:37 -0000 1.14 @@ -77,6 +77,12 @@ #ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_ #include <com/sun/star/sdbc/XDataSource.hpp> #endif +#ifndef _COM_SUN_STAR_SDB_XDOCUMENTDATASOURCE_HPP_ +#include <com/sun/star/sdb/XDocumentDataSource.hpp> +#endif +#ifndef _COM_SUN_STAR_SDB_XOFFICEDATABASEDOCUMENT_HPP_ +#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp> +#endif #ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_ #include <com/sun/star/container/XChild.hpp> #endif @@ -115,6 +121,7 @@ using namespace ::com::sun::star::lang; using namespace ::com::sun::star::container; using namespace ::com::sun::star::sdbc; + using namespace ::com::sun::star::sdb; using namespace ::com::sun::star::frame; //==================================================================== @@ -308,7 +315,7 @@ sal_Bool bReConnect = sal_True; if ( _bUI ) { - QueryBox aQuery( getView(), ModuleRes(TABLE_QUERY_CONNECTION_LOST) ); + QueryBox aQuery( getView(), ModuleRes(QUERY_CONNECTION_LOST) ); bReConnect = ( RET_YES == aQuery.Execute() ); } @@ -358,9 +365,13 @@ m_aUndoManager.Clear(); disconnect(); - Reference<XModel> xModel(m_xDataSource,UNO_QUERY); + Reference<XDocumentDataSource> xDocumentDataSource(m_xDataSource,UNO_QUERY); + if ( xDocumentDataSource.is() ) + { + Reference<XModel> xModel(xDocumentDataSource->getDatabaseDocument(),UNO_QUERY); if ( xModel.is() ) xModel->disconnectController( this ); + } Reference < XFrame > xFrame; attachFrame( xFrame ); @@ -541,6 +552,8 @@ { m_bModified = _bModified; InvalidateFeature(ID_BROWSER_SAVEDOC); + + if ( isFeatureSupported( ID_BROWSER_SAVEASDOC ) ) InvalidateFeature(ID_BROWSER_SAVEASDOC); } // ----------------------------------------------------------------------------- @@ -552,7 +565,8 @@ sal_Bool SAL_CALL OSingleDocumentController::attachModel(const Reference< XModel > & xModel) throw( RuntimeException ) { ::osl::MutexGuard aGuard(m_aMutex); - m_xDataSource.set(xModel,UNO_QUERY); + Reference<XOfficeDatabaseDocument> xOfficeDoc(xModel,UNO_QUERY); + m_xDataSource.set(xOfficeDoc.is() ? xOfficeDoc->getDataSource() : Reference<XDataSource>(),UNO_QUERY); return m_xDataSource.is(); } // ----------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
