From 1fe53fce9a0776d935fabbdf86b2c03d23da0e72 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 3 Jun 2016 09:18:46 +0100 Subject: Resolves: tdf#100199 crash: switch to Display Mode - Master Modes - Notes via toolbar (cherry picked from commit 9cf0ac710a6ace0a833fa193c7e18c4a7405bc42) (cherry picked from commit 05560f10b4652f97949f44b9377c2e2355c21602) Change-Id: I0ad3cce6d96cede8033a05e35c934c3163d214e3 Reviewed-on: https://gerrit.libreoffice.org/25855 Tested-by: Jenkins Reviewed-by: Katarina Behrens --- sd/source/ui/view/ViewShellBase.cxx | 45 ++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx index 90e88207e954..887db266bb2c 100644 --- a/sd/source/ui/view/ViewShellBase.cxx +++ b/sd/source/ui/view/ViewShellBase.cxx @@ -1255,15 +1255,21 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) break; case SID_NORMAL_MULTI_PANE_GUI: - pFrameView = mrBase.GetMainViewShell()->GetFrameView(); - bState = pFrameView->GetViewShEditMode() == EM_PAGE - && pFrameView->GetPageKind() == PK_STANDARD; + if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) + { + pFrameView = pViewShell->GetFrameView(); + bState = pFrameView->GetViewShEditMode() == EM_PAGE + && pFrameView->GetPageKind() == PK_STANDARD; + } break; case SID_SLIDE_MASTER_MODE: - pFrameView = mrBase.GetMainViewShell()->GetFrameView(); - bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE - && pFrameView->GetPageKind() == PK_STANDARD; + if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) + { + pFrameView = pViewShell->GetFrameView(); + bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE + && pFrameView->GetPageKind() == PK_STANDARD; + } break; case SID_SLIDE_SORTER_MULTI_PANE_GUI: @@ -1284,21 +1290,30 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) break; case SID_HANDOUT_MASTER_MODE: - pFrameView = mrBase.GetMainViewShell()->GetFrameView(); - bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE - && pFrameView->GetPageKind() == PK_HANDOUT; + if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) + { + pFrameView = pViewShell->GetFrameView(); + bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE + && pFrameView->GetPageKind() == PK_HANDOUT; + } break; case SID_NOTES_MODE: - pFrameView = mrBase.GetMainViewShell()->GetFrameView(); - bState = pFrameView->GetViewShEditMode() == EM_PAGE - && pFrameView->GetPageKind() == PK_NOTES; + if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) + { + pFrameView = pViewShell->GetFrameView(); + bState = pFrameView->GetViewShEditMode() == EM_PAGE + && pFrameView->GetPageKind() == PK_NOTES; + } break; case SID_NOTES_MASTER_MODE: - pFrameView = mrBase.GetMainViewShell()->GetFrameView(); - bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE - && pFrameView->GetPageKind() == PK_NOTES; + if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) + { + pFrameView = pViewShell->GetFrameView(); + bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE + && pFrameView->GetPageKind() == PK_NOTES; + } break; case SID_TOGGLE_TABBAR_VISIBILITY: -- cgit