[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - basctl/inc basctl/source include/sfx2

Jan Holesovsky kendy at collabora.com
Thu May 22 22:38:37 PDT 2014


 basctl/inc/basidesh.hrc             |    1 +
 basctl/source/basicide/basidesh.cxx |    9 +++++++++
 basctl/source/basicide/basidesh.src |    4 ++++
 include/sfx2/viewfrm.hxx            |    2 +-
 4 files changed, 15 insertions(+), 1 deletion(-)

New commits:
commit 6c9492030651fed341d8259b373127e3405cd083
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Thu May 22 17:29:56 2014 +0200

    bnc#467278: Introduce a warning that changes to VBA macros cannot be saved.
    
    As an InfoBar, so hopefully not annoying...
    
    Conflicts:
    	basctl/source/basicide/basidesh.cxx
    
    Change-Id: I5d4e79273edc03829fdab2d6d5a291576c954e4b

diff --git a/basctl/inc/basidesh.hrc b/basctl/inc/basidesh.hrc
index 623cb0e..a40f788 100644
--- a/basctl/inc/basidesh.hrc
+++ b/basctl/inc/basidesh.hrc
@@ -68,6 +68,7 @@
 #define RID_STR_OPEN                    ( RID_BASICIDE_START + 20 )
 #define RID_STR_SAVE                    ( RID_BASICIDE_START + 21 )
 #define RID_STR_RUNTIMEERROR            ( RID_BASICIDE_START + 22 )
+#define RID_STR_CANNOTSAVEVBA           ( RID_BASICIDE_START + 23 )
 #define RID_STR_STDDIALOGNAME           ( RID_BASICIDE_START + 24 )
 
 #define RID_STR_STDMODULENAME           ( RID_BASICIDE_START + 27 )
diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx
index 674775b..f95e6f4 100644
--- a/basctl/source/basicide/basidesh.cxx
+++ b/basctl/source/basicide/basidesh.cxx
@@ -35,6 +35,7 @@
 #include <sfx2/app.hxx>
 #include <sfx2/dinfdlg.hxx>
 #include <sfx2/dispatch.hxx>
+#include <sfx2/infobar.hxx>
 #include <sfx2/minfitem.hxx>
 #include <sfx2/objface.hxx>
 #include <svl/aeitem.hxx>
@@ -137,6 +138,7 @@ SFX_IMPL_INTERFACE( basctl_Shell, SfxViewShell, IDEResId( RID_STR_IDENAME ) )
 {
     SFX_CHILDWINDOW_REGISTRATION( SID_SEARCH_DLG );
     SFX_FEATURED_CHILDWINDOW_REGISTRATION(SID_SHOW_PROPERTYBROWSER, BASICIDE_UI_FEATURE_SHOW_BROWSER);
+    SFX_CHILDWINDOW_REGISTRATION(SfxInfoBarContainerChild::GetChildWindowId());
     SFX_POPUPMENU_REGISTRATION( IDEResId( RID_POPUP_DLGED ) );
 }
 
@@ -250,7 +252,14 @@ Shell::~Shell()
 void Shell::onDocumentCreated( const ScriptDocument& /*_rDocument*/ )
 {
     if (pCurWin)
+    {
         pCurWin->OnNewDocument();
+
+        // for VBA documents, show a warning that we can save them only in ODF
+        if (pCurWin->GetDocument().isInVBAMode())
+            GetViewFrame()->AppendInfoBar("vba_save", IDE_RESSTR(RID_STR_CANNOTSAVEVBA));
+    }
+
     UpdateWindows();
 }
 
diff --git a/basctl/source/basicide/basidesh.src b/basctl/source/basicide/basidesh.src
index 6876130..5e019fd 100644
--- a/basctl/source/basicide/basidesh.src
+++ b/basctl/source/basicide/basidesh.src
@@ -216,6 +216,10 @@ String RID_STR_CANNOTCLOSE
 {
     Text [ en-US ] = "The window cannot be closed while BASIC is running." ;
 };
+String RID_STR_CANNOTSAVEVBA
+{
+    Text [ en-US ] = "You are editing a VBA macro. Changes can be saved only in OpenDocument Format." ;
+};
 String RID_STR_REPLACESTDLIB
 {
     Text [ en-US ] = "The default library cannot be replaced." ;
diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx
index cf316b7..8541397 100644
--- a/include/sfx2/viewfrm.hxx
+++ b/include/sfx2/viewfrm.hxx
@@ -190,7 +190,7 @@ public:
         The buttons will be added from Right to Left at the right of the info bar. The parent, size
         and position of each button will be changed: only the width will remain unchanged.
       */
-    void                    AppendInfoBar( const OUString& sId, const OUString& sMessage, std::vector< PushButton* > aButtons );
+    void                    AppendInfoBar( const OUString& sId, const OUString& sMessage, std::vector< PushButton* > aButtons = std::vector< PushButton* >() );
     void                    RemoveInfoBar( const OUString& sId );
 
     SAL_DLLPRIVATE void SetDowning_Impl();


More information about the Libreoffice-commits mailing list