diff options
-rw-r--r-- | include/sfx2/shell.hxx | 4 | ||||
-rw-r--r-- | include/sfx2/viewsh.hxx | 3 | ||||
-rw-r--r-- | include/svx/fmshell.hxx | 4 | ||||
-rw-r--r-- | sc/source/ui/inc/tabvwsh.hxx | 5 | ||||
-rw-r--r-- | sfx2/source/view/viewfrm.cxx | 11 | ||||
-rw-r--r-- | svx/source/form/fmview.cxx | 3 | ||||
-rw-r--r-- | sw/source/core/uibase/app/docsh.cxx | 1 | ||||
-rw-r--r-- | sw/source/core/uibase/inc/view.hxx | 6 |
8 files changed, 24 insertions, 13 deletions
diff --git a/include/sfx2/shell.hxx b/include/sfx2/shell.hxx index 7047e4dccf46..451f120f0ec7 100644 --- a/include/sfx2/shell.hxx +++ b/include/sfx2/shell.hxx @@ -160,7 +160,7 @@ protected: SfxShell(); 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 ); @@ -202,6 +202,8 @@ public: virtual void Invalidate(sal_uInt16 nId = 0); + virtual bool IsDesignMode() const { return false; }; + bool IsActive() const; virtual void Activate(bool bMDI); virtual void Deactivate(bool bMDI); diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index 7c43c93c0c95..49099f149323 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -207,6 +207,9 @@ public: void RemoveSubShell( SfxShell *pShell=NULL ); SfxShell* GetSubShell( sal_uInt16 ); + virtual SfxShell* GetFormShell() { return 0; }; + virtual const SfxShell* GetFormShell() const { return 0; }; + // Focus, KeyInput, Cursor void GotFocus() const; inline void LostFocus() const; diff --git a/include/svx/fmshell.hxx b/include/svx/fmshell.hxx index b733b253d06c..40228fcd9efd 100644 --- a/include/svx/fmshell.hxx +++ b/include/svx/fmshell.hxx @@ -166,8 +166,8 @@ public: const OutputDevice& i_rDevice ) const; - bool IsDesignMode() const { return m_bDesignMode; } - void SetDesignMode( bool _bDesignMode ); + virtual bool IsDesignMode() const { return m_bDesignMode; } + void SetDesignMode( bool _bDesignMode ); protected: void GetFormState(SfxItemSet &rSet, sal_uInt16 nWhich); diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index 9eeb6f825dfe..33c5b7ae6873 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -20,6 +20,7 @@ #ifndef INCLUDED_SC_SOURCE_UI_INC_TABVWSH_HXX #define INCLUDED_SC_SOURCE_UI_INC_TABVWSH_HXX +#include <svx/fmshell.hxx> #include <svtools/htmlcfg.hxx> #include <sfx2/viewsh.hxx> #include <sfx2/viewfac.hxx> @@ -33,7 +34,6 @@ #include <boost/ptr_container/ptr_map.hpp> -class FmFormShell; class SbxObject; class SdrOle2Obj; class SfxBindings; @@ -376,7 +376,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 33e7d4c6d10a..9cb15a0f1444 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -859,8 +859,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 ) + const SfxViewShell *pVSh; + const SfxShell *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 702fd00ef0c1..c25657768961 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/core/uibase/app/docsh.cxx b/sw/source/core/uibase/app/docsh.cxx index 6272f021af8f..ab5621da9ed1 100644 --- a/sw/source/core/uibase/app/docsh.cxx +++ b/sw/source/core/uibase/app/docsh.cxx @@ -1076,6 +1076,7 @@ SfxStyleSheetBasePool* SwDocShell::GetStyleSheetPool() void SwDocShell::SetView(SwView* pVw) { + SetViewShell_Impl(pVw); if ( 0 != (pView = pVw) ) pWrtShell = &pView->GetWrtShell(); else diff --git a/sw/source/core/uibase/inc/view.hxx b/sw/source/core/uibase/inc/view.hxx index 74e18fc16394..73c9810cda3a 100644 --- a/sw/source/core/uibase/inc/view.hxx +++ b/sw/source/core/uibase/inc/view.hxx @@ -29,6 +29,7 @@ #include <editeng/svxenum.hxx> #include <sfx2/zoomitem.hxx> #include <svx/svxids.hrc> +#include <svx/fmshell.hxx> #include <editeng/editstat.hxx> #include "swdllapi.h" #include <swtypes.hxx> @@ -63,7 +64,6 @@ class SwEditWin; class SwWrtShell; class SwView_Impl; struct SwSearchOptions; -class FmFormShell; class CommandEvent; class InsCaptionOpt; class SvGlobalName; @@ -593,8 +593,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; } |