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]

Reply via email to