include/sfx2/shell.hxx | 2 +- include/sfx2/viewsh.hxx | 4 ++++ sc/source/ui/inc/tabvwsh.hxx | 3 ++- sfx2/source/view/viewfrm.cxx | 12 ++++++++++-- svx/source/form/fmview.cxx | 3 --- sw/source/uibase/app/docsh.cxx | 1 + sw/source/uibase/inc/view.hxx | 4 ++-- 7 files changed, 20 insertions(+), 9 deletions(-)
New commits: commit 15cea073e7ed4970e60967fe036fc492e2052203 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Wed Aug 27 18:34:02 2014 +0200 fdo#44081 don't remove 'edit' pop-up menu entry from form in design mode Change-Id: I9700d0d729a8f2d1255fcd03a07e05799e21f8d0 Reviewed-on: https://gerrit.libreoffice.org/11152 Reviewed-by: Bosdonnat Cedric <cedric.bosdon...@free.fr> Tested-by: Bosdonnat Cedric <cedric.bosdon...@free.fr> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/include/sfx2/shell.hxx b/include/sfx2/shell.hxx index b79fd2d..9359324 100644 --- a/include/sfx2/shell.hxx +++ b/include/sfx2/shell.hxx @@ -160,7 +160,7 @@ protected: */ SfxShell( SfxViewShell *pViewSh ); - SAL_DLLPRIVATE void SetViewShell_Impl( SfxViewShell* pView ); + void SetViewShell_Impl( SfxViewShell* pView ); SAL_DLLPRIVATE void Invalidate_Impl( SfxBindings& rBindings, sal_uInt16 nId ); SAL_DLLPRIVATE SfxShellObject* GetShellObj_Impl() const; SAL_DLLPRIVATE void SetShellObj_Impl( SfxShellObject* pObj ); diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index 5cde831..0ed5838 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -59,6 +59,7 @@ class SfxFrameItem; class Dialog; class Menu; class NotifyEvent; +class FmFormShell; #define SFX_PRINTER_PRINTER 1 // without JOB SETUP => Temporary #define SFX_PRINTER_JOBSETUP 2 @@ -207,6 +208,9 @@ public: void RemoveSubShell( SfxShell *pShell=NULL ); SfxShell* GetSubShell( sal_uInt16 ); + virtual FmFormShell* GetFormShell() { return 0; }; + virtual const FmFormShell* GetFormShell() const { return 0; }; + // Focus, KeyInput, Cursor void GotFocus() const; inline void LostFocus() const; diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index b20b829..d1be501 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -366,7 +366,8 @@ public: inline void SetScSbxObject( SbxObject* pOb ) { pScSbxObject = pOb; } - FmFormShell* GetFormShell() const { return pFormShell; } + virtual const FmFormShell* GetFormShell() const SAL_OVERRIDE { return pFormShell; } + virtual FmFormShell* GetFormShell() SAL_OVERRIDE { return pFormShell; } void InsertURL( const OUString& rName, const OUString& rURL, const OUString& rTarget, sal_uInt16 nMode ); diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index c01974d..5434fa6 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -21,6 +21,7 @@ #include <stdio.h> +#include <svx/fmshell.hxx> #include <sfx2/infobar.hxx> #include <sfx2/viewfrm.hxx> #include <com/sun/star/document/MacroExecMode.hpp> @@ -866,8 +867,15 @@ void SfxViewFrame::StateReload_Impl( SfxItemSet& rSet ) { case SID_EDITDOC: { - if ( !pSh || !pSh->HasName() || !( pSh->Get_Impl()->nLoadedFlags & SFX_LOADED_MAINDOCUMENT ) - || pSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED ) + SfxViewShell *pVSh; + FmFormShell *pFSh; + if ( !pSh || + !pSh->HasName() || + !( pSh->Get_Impl()->nLoadedFlags & SFX_LOADED_MAINDOCUMENT ) || + ( pSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED && + ( !(pVSh = pSh->GetViewShell()) || + !(pFSh = pVSh->GetFormShell()) || + !pFSh->IsDesignMode()))) rSet.DisableItem( SID_EDITDOC ); else { diff --git a/svx/source/form/fmview.cxx b/svx/source/form/fmview.cxx index 343c624..b4e8a96 100644 --- a/svx/source/form/fmview.cxx +++ b/svx/source/form/fmview.cxx @@ -130,9 +130,6 @@ void FmFormView::Init() } } - if( pObjShell && pObjShell->IsReadOnly() ) - bInitDesignMode = false; - // dieses wird in der Shell vorgenommen // bDesignMode = !bInitDesignMode; // erzwingt, dass SetDesignMode ausgefuehrt wird SetDesignMode( bInitDesignMode ); diff --git a/sw/source/uibase/app/docsh.cxx b/sw/source/uibase/app/docsh.cxx index e3491cb..3da9550 100644 --- a/sw/source/uibase/app/docsh.cxx +++ b/sw/source/uibase/app/docsh.cxx @@ -1084,6 +1084,7 @@ SfxStyleSheetBasePool* SwDocShell::GetStyleSheetPool() void SwDocShell::SetView(SwView* pVw) { + SetViewShell_Impl(pVw); if ( 0 != (mpView = pVw) ) mpWrtShell = &mpView->GetWrtShell(); else diff --git a/sw/source/uibase/inc/view.hxx b/sw/source/uibase/inc/view.hxx index fd09bf4..6e7db31 100644 --- a/sw/source/uibase/inc/view.hxx +++ b/sw/source/uibase/inc/view.hxx @@ -588,8 +588,8 @@ public: SfxShell *GetCurShell() { return m_pShell; } SwDocShell *GetDocShell(); inline const SwDocShell *GetDocShell() const; - inline FmFormShell *GetFormShell() { return m_pFormShell; } - inline const FmFormShell *GetFormShell() const { return m_pFormShell; } + inline virtual FmFormShell *GetFormShell() SAL_OVERRIDE { return m_pFormShell; } + inline virtual const FmFormShell *GetFormShell() const SAL_OVERRIDE { return m_pFormShell; } // so that in the SubShells' DTors m_pShell can be reset if applicable void ResetSubShell() { m_pShell = 0; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits