ooo-build r11630 - in trunk: . patches/src680



Author: jholesovsky
Date: Tue Feb 19 16:26:07 2008
New Revision: 11630
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11630&view=rev

Log:
2008-02-18  Jan Holesovsky  <kendy suse cz>

        * patches/src680/gnome-vfs-reload.diff,
          patches/src680/apply: Keep the file accessed through smb:// (and
          webdav) read/write after reload.


Added:
   trunk/patches/src680/gnome-vfs-reload.diff
Modified:
   trunk/ChangeLog
   trunk/patches/src680/apply

Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply	(original)
+++ trunk/patches/src680/apply	Tue Feb 19 16:26:07 2008
@@ -559,6 +559,9 @@
 # Move gnome-vfs out of the startup sequence, load it only when needed
 gnome-vfs-late-init.diff, i#84137, jholesov
 
+# Keep the file read/write after reload
+gnome-vfs-reload.diff, n#264140, jholesov
+
 [ GnomeVFS >= ooh680-m4 ]
 # WebDAV locking
 # It is in this section because it needs part of the gvfs-related patches

Added: trunk/patches/src680/gnome-vfs-reload.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/gnome-vfs-reload.diff	Tue Feb 19 16:26:07 2008
@@ -0,0 +1,97 @@
+diff --git sfx2/inc/sfx2/docfile.hxx sfx2/inc/sfx2/docfile.hxx
+index 5fb9d77..ef02e0c 100644
+--- sfx2/inc/sfx2/docfile.hxx
++++ sfx2/inc/sfx2/docfile.hxx
+@@ -292,13 +292,14 @@ public:
+ 	void				SetCharset( ::rtl::OUString );
+     ::rtl::OUString     GetBaseURL( bool bForSaving=false );
+ 
++    sal_Bool            SupportsActiveStreaming( const rtl::OUString &rName ) const;
++
+ #if _SOLAR__PRIVATE
+ //REMOVE		// the storage will be truncated, if it is still not open then the stream will be truncated
+ //REMOVE	    ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > GetOutputStorage_Impl();
+ 	SAL_DLLPRIVATE ::rtl::OUString GetOutputStorageURL_Impl();
+     SAL_DLLPRIVATE BOOL HasStorage_Impl() const;
+ 
+-	SAL_DLLPRIVATE sal_Bool SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const;
+ 	SAL_DLLPRIVATE sal_Bool BasedOnOriginalFile_Impl();
+ 	SAL_DLLPRIVATE void StorageBackup_Impl();
+ 	SAL_DLLPRIVATE ::rtl::OUString GetBackup_Impl();
+diff --git sfx2/source/doc/docfile.cxx sfx2/source/doc/docfile.cxx
+index 667ee0f..39c7206 100644
+--- sfx2/source/doc/docfile.cxx
++++ sfx2/source/doc/docfile.cxx
+@@ -744,7 +744,7 @@ const String& SfxMedium::GetPhysicalName( sal_Bool bForceCreateTempIfRemote ) co
+ {
+     if ( !aName.Len() && aLogicName.Len() )
+     {
+-        if ( bForceCreateTempIfRemote || !SupportsActiveStreaming_Impl( aLogicName ) )
++        if ( bForceCreateTempIfRemote || !SupportsActiveStreaming( aLogicName ) )
+             (( SfxMedium*)this)->CreateFileStream();
+     }
+ 
+@@ -912,7 +912,7 @@ sal_Bool SfxMedium::TryStorage()
+ }
+ 
+ //------------------------------------------------------------------
+-sal_Bool SfxMedium::SupportsActiveStreaming_Impl( const rtl::OUString &rName ) const
++sal_Bool SfxMedium::SupportsActiveStreaming( const rtl::OUString &rName ) const
+ {
+     if ( ::utl::LocalFileHelper::IsLocalFile( rName ) )
+         return sal_True;
+@@ -936,7 +936,7 @@ sal_Bool SfxMedium::BasedOnOriginalFile_Impl()
+ {
+ 	return ( !pImp->pTempFile && !( aLogicName.Len() && pImp->m_bSalvageMode )
+ 	  && GetURLObject().GetMainURL( INetURLObject::NO_DECODE ).getLength()
+- 	  && SupportsActiveStreaming_Impl( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
++ 	  && SupportsActiveStreaming( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) )
+ 	  && ::utl::UCBContentHelper::IsDocument( GetURLObject().GetMainURL( INetURLObject::NO_DECODE ) ) );
+ }
+ 
+@@ -1002,7 +1002,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetOutputStorage()
+ 
+     // medium based on OutputStream: must work with TempFile
+     if( aLogicName.CompareToAscii( "private:stream", 14 ) == COMPARE_EQUAL
+-            || !SupportsActiveStreaming_Impl( aLogicName ) )
++            || !SupportsActiveStreaming( aLogicName ) )
+         CreateTempFileNoCopy();
+ 	// if Medium already contains a stream - TODO/LATER: store stream/outputstream in ImplData, not in Medium
+ 	else if ( GetItemSet()->GetItemState( SID_STREAM ) < SFX_ITEM_SET )
+@@ -1145,7 +1145,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage()
+ 
+             try
+             {
+-                if ( IsReadOnly() && SupportsActiveStreaming_Impl( aLogicName ) )
++                if ( IsReadOnly() && SupportsActiveStreaming( aLogicName ) )
+                 {
+                     //TODO/LATER: performance problem if not controlled by special Mode in SfxMedium
+                     //(should be done only for permanently open storages)
+@@ -1962,7 +1962,7 @@ void SfxMedium::Transfer_Impl()
+ 			xComEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler,
+ 													  Reference< ::com::sun::star::ucb::XProgressHandler >() );
+ 
+-		if ( SupportsActiveStreaming_Impl( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
++		if ( SupportsActiveStreaming( aDest.GetMainURL( INetURLObject::NO_DECODE ) ) || !aDest.removeSegment() )
+ 		{
+ 			TransactedTransferForFS_Impl( aSource, aDest, xComEnv );
+ 		}
+diff --git sfx2/source/view/.viewfrm.cxx.swp sfx2/source/view/.viewfrm.cxx.swp
+index 1b98d72..f57c4b7 100644
+Binary files sfx2/source/view/.viewfrm.cxx.swp and sfx2/source/view/.viewfrm.cxx.swp differ
+diff --git sfx2/source/view/viewfrm.cxx sfx2/source/view/viewfrm.cxx
+index 70db0f8..d72f71f 100644
+--- sfx2/source/view/viewfrm.cxx
++++ sfx2/source/view/viewfrm.cxx
+@@ -692,6 +692,11 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq )
+ 
+                 sal_Bool bHandsOff = pMedium->GetURLObject().GetProtocol() == INET_PROT_FILE;
+ 
++                // we must do the same for the contents that support active
++                // streaming
++                if ( !bHandsOff && pMedium && pMedium->SupportsActiveStreaming( aURL ) )
++                    bHandsOff = sal_True;
++
+                 // bestehende SfxMDIFrames f"ur dieses Doc leeren
+                 // eigenes Format oder R/O jetzt editierbar "offnen?
+                 SfxViewNotificatedFrameList_Impl aFrames;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]