rhbz#1343752 fix view status in menu

... after commit 229fc164dc1773484b74eca016863cf68860e81b .

Change-Id: Ibfbbb86c81527f008b8e1cbe9d8ca3174a944931
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index e5c92f4..340948a 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -1221,13 +1221,13 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet)
        SfxWhichIter aSetIterator (rSet);
        sal_uInt16 nItemId (aSetIterator.FirstWhich());

        FrameView *pFrameView;
        while (nItemId > 0)
        {
            bool bState (false);
            Reference<XResourceId> xResourceId;
            try
            {
                // Check if the right view is active
                switch (nItemId)
                {
                    case SID_LEFT_PANE_IMPRESS:
@@ -1242,22 +1242,13 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet)
                        bState = xConfiguration->hasResource(xResourceId);
                        break;

                    case SID_DRAWINGMODE:
                    case SID_NORMAL_MULTI_PANE_GUI:
                        if (ViewShell* pViewShell = mrBase.GetMainViewShell().get())
                        {
                            pFrameView = pViewShell->GetFrameView();
                            bState = pFrameView->GetViewShEditMode() == EM_PAGE
                                && pFrameView->GetPageKind() == PK_STANDARD;
                        }
                        break;

                    case SID_SLIDE_MASTER_MODE:
                        if (ViewShell* pViewShell = mrBase.GetMainViewShell().get())
                        {
                            pFrameView = pViewShell->GetFrameView();
                            bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE
                                && pFrameView->GetPageKind() == PK_STANDARD;
                        }
                        xResourceId = ResourceId::createWithAnchorURL(
                            xContext, FrameworkHelper::msImpressViewURL,
                            FrameworkHelper::msCenterPaneURL);
                        bState = xConfiguration->hasResource(xResourceId);
                        break;

                    case SID_SLIDE_SORTER_MULTI_PANE_GUI:
@@ -1278,30 +1269,18 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet)
                        break;

                    case SID_HANDOUT_MASTER_MODE:
                        if (ViewShell* pViewShell = mrBase.GetMainViewShell().get())
                        {
                            pFrameView = pViewShell->GetFrameView();
                            bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE
                                && pFrameView->GetPageKind() == PK_HANDOUT;
                        }
                        xResourceId = ResourceId::createWithAnchorURL(
                            xContext, FrameworkHelper::msHandoutViewURL,
                            FrameworkHelper::msCenterPaneURL);
                        bState = xConfiguration->hasResource(xResourceId);
                        break;

                    case SID_NOTES_MODE:
                        if (ViewShell* pViewShell = mrBase.GetMainViewShell().get())
                        {
                            pFrameView = pViewShell->GetFrameView();
                            bState = pFrameView->GetViewShEditMode() == EM_PAGE
                                && pFrameView->GetPageKind() == PK_NOTES;
                        }
                        break;

                    case SID_NOTES_MASTER_MODE:
                        if (ViewShell* pViewShell = mrBase.GetMainViewShell().get())
                        {
                            pFrameView = pViewShell->GetFrameView();
                            bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE
                                && pFrameView->GetPageKind() == PK_NOTES;
                        }
                        xResourceId = ResourceId::createWithAnchorURL(
                            xContext, FrameworkHelper::msNotesViewURL,
                            FrameworkHelper::msCenterPaneURL);
                        bState = xConfiguration->hasResource(xResourceId);
                        break;

                    case SID_TOGGLE_TABBAR_VISIBILITY:
@@ -1318,32 +1297,27 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet)
            {
            }

            // Take the master page mode into account.
            switch (nItemId)
            // Check if edit mode fits too
            if (bState)
            {
                case SID_NORMAL_MULTI_PANE_GUI:
                case SID_NOTES_MODE:
                ViewShell* const pCenterViewShell = FrameworkHelper::Instance(mrBase)->GetViewShell(
                    FrameworkHelper::msCenterPaneURL).get();
                DrawViewShell* const pShell = dynamic_cast<DrawViewShell*>(pCenterViewShell);
                if (pShell)
                {
                    // Determine the master page mode.
                    ViewShell* pCenterViewShell = FrameworkHelper::Instance(mrBase)->GetViewShell(
                        FrameworkHelper::msCenterPaneURL).get();
                    bool bMasterPageMode (false);
                    if (DrawViewShell* pShell = dynamic_cast<DrawViewShell*>(pCenterViewShell))
                    switch (nItemId)
                    {
                        if (pShell->GetEditMode() == EM_MASTERPAGE)
                        {
                            bMasterPageMode = true;
                        }
                        case SID_DRAWINGMODE:
                        case SID_NORMAL_MULTI_PANE_GUI:
                        case SID_NOTES_MODE:
                            bState = pShell->GetEditMode() == EM_PAGE;
                            break;
                        case SID_SLIDE_MASTER_MODE:
                        case SID_NOTES_MASTER_MODE:
                            bState = pShell->GetEditMode() == EM_MASTERPAGE;
                            break;
                    }

                    bState &= !bMasterPageMode;
                    break;
                }

                case SID_HANDOUT_MASTER_MODE:
                    // There is only the master page mode for the handout
                    // view so ignore the master page flag.
                    break;
            }

            // And finally set the state.