[Libreoffice-commits] .: sc/inc sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Fri Jan 6 10:35:43 PST 2012


 sc/inc/globstr.hrc                       |    3 ++-
 sc/source/ui/docshell/externalrefmgr.cxx |   11 +++++++++++
 sc/source/ui/src/globstr.src             |    4 ++++
 3 files changed, 17 insertions(+), 1 deletion(-)

New commits:
commit 4ff62bf42a67ecc388413148c969d37087d9c999
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jan 6 19:32:19 2012 +0100

    add warning message if you close unsaved referenced document

diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index a545a0e..48f4015 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -600,8 +600,9 @@
 #define STR_ERR_NAME_INVALID        464
 
 #define STR_UNSAVED_EXT_REF         465
+#define STR_CLOSE_WITH_UNSAVED_REFS 466
 
-#define STR_COUNT                   466
+#define STR_COUNT                   467
 
 
 #endif
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 4ad9a91..83881a5 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -44,6 +44,7 @@
 #include "viewdata.hxx"
 #include "tabvwsh.hxx"
 #include "sc.hrc"
+#include "globstr.hrc"
 
 #include "sfx2/app.hxx"
 #include "sfx2/docfilt.hxx"
@@ -61,6 +62,7 @@
 #include "tools/urlobj.hxx"
 #include "unotools/ucbhelper.hxx"
 #include "unotools/localfilehelper.hxx"
+#include "vcl/msgbox.hxx"
 
 #include <memory>
 #include <algorithm>
@@ -2704,6 +2706,15 @@ void ScExternalRefManager::Notify( SfxBroadcaster&, const SfxHint& rHint )
         sal_uLong nEventId = ((SfxEventHint&)rHint).GetEventId();
         switch ( nEventId )
         {
+            case SFX_EVENT_PREPARECLOSEDOC:
+                {
+                    SfxObjectShell* pObjShell = static_cast<const SfxEventHint&>( rHint ).GetObjShell();
+                    ScDocShell* pDocShell = static_cast< ScDocShell* >( pObjShell );
+                    WarningBox aBox(  pDocShell->GetActiveDialogParent(), WinBits( WB_OK ),
+                                        ScGlobal::GetRscString( STR_CLOSE_WITH_UNSAVED_REFS ) );
+                    aBox.Execute();
+                }
+                break;
             case SFX_EVENT_SAVEDOCDONE:
             case SFX_EVENT_SAVEASDOCDONE:
                 {
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index 8d6425d..a5a1e6a 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -1855,5 +1855,9 @@ Resource RID_GLOBSTR
     {
         Text [ en-US ] = "This Document contains external references to unsaved documents.\n\nDo you want to continue?";
     };
+    String STR_CLOSE_WITH_UNSAVED_REFS
+    {
+        Text [ en-US ] = "This Document is referenced by another document and not yet saved. Closing it without saving will result in data loss.";
+    };
 };
 


More information about the Libreoffice-commits mailing list