From a68e0e334df02c1ca47601575523b23c6db13470 Mon Sep 17 00:00:00 2001
From: Cédric Bosdonnat <cedric.bosdonnat@free.fr>
Date: Fri, 13 Dec 2013 10:36:32 +0100
Subject: Fixed the update to working copy and back after (cancel) checkout:
 fdo#64533

After Checkout, simply set medium name and update the medium: at least
we are sure it works in more situations than the other function we used.

After cancel checkout, call SID_RELOAD to actually revert any local
change.

Change-Id: I3dc296a74726770c4f47d9653c382108f7baccad
---
 sfx2/source/doc/objserv.cxx      |  5 +++++
 sfx2/source/doc/sfxbasemodel.cxx | 12 +++---------
 2 files changed, 8 insertions(+), 9 deletions(-)

(limited to 'sfx2')

diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index a6f445ae9792..fb292278b131 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -897,6 +897,11 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
             if (  QueryBox( NULL, SfxResId( RID_QUERY_CANCELCHECKOUT ) ).Execute( ) == RET_YES )
             {
                 CancelCheckOut( );
+
+                // Reload the document as we may still have local changes
+                SfxViewFrame *pFrame = GetFrame();
+                if ( pFrame )
+                    pFrame->GetDispatcher()->Execute(SID_RELOAD);
             }
             break;
         }
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 14ca59fbfded..0392c5496d4a 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -2519,7 +2519,8 @@ void SAL_CALL SfxBaseModel::checkOut(  ) throw ( RuntimeException )
             OUString sURL;
             aResult >>= sURL;
 
-            m_pData->m_pObjectShell->GetMedium( )->SwitchDocumentToFile( sURL );
+            m_pData->m_pObjectShell->GetMedium( )->SetName( sURL );
+            m_pData->m_pObjectShell->GetMedium( )->GetMedium_Impl( );
             m_pData->m_xDocumentProperties->setTitle( getTitle( ) );
             Sequence< beans::PropertyValue > aSequence ;
             TransformItems( SID_OPENDOC, *pMedium->GetItemSet(), aSequence );
@@ -2550,14 +2551,7 @@ void SAL_CALL SfxBaseModel::cancelCheckOut(  ) throw ( RuntimeException )
             OUString sURL;
             aResult >>= sURL;
 
-            m_pData->m_pObjectShell->GetMedium( )->SwitchDocumentToFile( sURL );
-            m_pData->m_xDocumentProperties->setTitle( getTitle( ) );
-            Sequence< beans::PropertyValue > aSequence ;
-            TransformItems( SID_OPENDOC, *pMedium->GetItemSet(), aSequence );
-            attachResource( sURL, aSequence );
-
-            // Reload the CMIS properties
-            loadCmisProperties( );
+            m_pData->m_pObjectShell->GetMedium( )->SetName( sURL );
         }
         catch ( const Exception & e )
         {
-- 
cgit