You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
6.8 KiB
151 lines
6.8 KiB
From c4c7fe98b0f05329edf7930ff92b44892d4724e6 Mon Sep 17 00:00:00 2001
|
|
From: David Tardon <dtardon@redhat.com>
|
|
Date: Wed, 15 Jun 2016 16:52:26 +0200
|
|
Subject: [PATCH 1/2] rhbz#1343752 fix view status in menu
|
|
|
|
... after commit 229fc164dc1773484b74eca016863cf68860e81b .
|
|
|
|
Change-Id: Ibfbbb86c81527f008b8e1cbe9d8ca3174a944931
|
|
---
|
|
sd/source/ui/view/ViewShellBase.cxx | 86 +++++++++++++------------------------
|
|
1 file changed, 30 insertions(+), 56 deletions(-)
|
|
|
|
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.
|
|
--
|
|
2.7.4
|
|
|