summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-06-03 09:18:46 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2016-06-03 13:24:05 +0000
commit1fe53fce9a0776d935fabbdf86b2c03d23da0e72 (patch)
treeb1d1911ca306b25939fb37c00bd2d99898332834
parentResolves: tdf#55566 opening two docs with open document macro events can crash (diff)
downloadcore-1fe53fce9a0776d935fabbdf86b2c03d23da0e72.tar.gz
core-1fe53fce9a0776d935fabbdf86b2c03d23da0e72.zip
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 <ci@libreoffice.org> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx45
1 files 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: