summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorAndre Fischer <af@apache.org>2013-06-05 15:40:56 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-09-20 16:35:29 +0100
commit50cbbc7f3afdd077e98f416f97390fe93428e8cf (patch)
treef1f0bdfa883202bd8fe382f8f99afda454c3e30e /sd
parentd023339c2f85555212bdb9804854dcc2c403b50e (diff)
Resolves: #i122470# Fixed programmatic triggered switching of sidebar decks
(cherry picked from commit 7b26aba94e5544937f1e37e34915bcb276bc3c27) Conflicts: sd/sdi/sdraw.sdi sd/source/ui/framework/tools/FrameworkHelper.cxx sd/source/ui/inc/framework/FrameworkHelper.hxx sd/source/ui/view/ViewShellBase.cxx sd/source/ui/view/drviews6.cxx sfx2/Package_inc.mk sfx2/inc/sfx2/sidebar/Sidebar.hxx Change-Id: Ic6b518e734fe59a7b713e85e934487347b847c5a
Diffstat (limited to 'sd')
-rw-r--r--sd/inc/app.hrc2
-rw-r--r--sd/sdi/ViewShellBase.sdi5
-rw-r--r--sd/sdi/sdraw.sdi25
-rw-r--r--sd/source/ui/app/sdmod1.cxx15
-rw-r--r--sd/source/ui/framework/tools/FrameworkHelper.cxx48
-rw-r--r--sd/source/ui/inc/framework/FrameworkHelper.hxx19
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlotManager.cxx11
-rw-r--r--sd/source/ui/table/tablefunction.cxx10
-rw-r--r--sd/source/ui/view/GraphicViewShellBase.cxx1
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx42
-rw-r--r--sd/source/ui/view/ViewShellImplementation.cxx25
-rw-r--r--sd/source/ui/view/drviews2.cxx22
-rw-r--r--sd/source/ui/view/drviews6.cxx1
13 files changed, 31 insertions, 195 deletions
diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
index d421a9bd653e..f82d11e38fdf 100644
--- a/sd/inc/app.hrc
+++ b/sd/inc/app.hrc
@@ -437,7 +437,7 @@
#define SID_TP_USE_FOR_NEW_PRESENTATIONS (SID_SD_START+427)
#define SID_TP_SHOW_LARGE_PREVIEW (SID_SD_START+428)
#define SID_TP_SHOW_SMALL_PREVIEW (SID_SD_START+429)
-#define SID_SHOW_TOOL_PANEL (SID_SD_START+430)
+// SID_SD_START+430 is unused
#define SID_INSERT_MASTER_PAGE (SID_SD_START+431)
#define SID_DELETE_MASTER_PAGE (SID_SD_START+432)
#define SID_RENAME_MASTER_PAGE (SID_SD_START+433)
diff --git a/sd/sdi/ViewShellBase.sdi b/sd/sdi/ViewShellBase.sdi
index 79275aab69dc..98da5f536d0d 100644
--- a/sd/sdi/ViewShellBase.sdi
+++ b/sd/sdi/ViewShellBase.sdi
@@ -77,11 +77,6 @@ interface ViewShellBaseView
ExecMethod = Execute;
StateMethod = GetState;
]
- SID_SHOW_TOOL_PANEL
- [
- ExecMethod = Execute;
- StateMethod = GetState;
- ]
SID_WIN_FULLSCREEN
[
ExecMethod = Execute;
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
index 60c22fffeb8d..4fee33c88f4e 100644
--- a/sd/sdi/sdraw.sdi
+++ b/sd/sdi/sdraw.sdi
@@ -7228,31 +7228,6 @@ SfxBoolItem SlideSorterMultiPaneGUI SID_SLIDE_SORTER_MULTI_PANE_GUI
GroupId = GID_MODIFY;
]
-SfxVoidItem TaskPaneShowPanel SID_SHOW_TOOL_PANEL (
- SfxBoolItem IsPanelVisible ID_VAL_ISVISIBLE,
- SfxUInt32Item PanelId ID_VAL_PANEL_INDEX)
-[
- /* flags: */
- AutoUpdate = TRUE,
- Cachable = Cachable,
- FastCall = FALSE,
- HasCoreId = FALSE,
- HasDialog = FALSE,
- ReadOnlyDoc = FALSE,
- Toggle = FALSE,
- Container = TRUE,
- RecordAbsolute = FALSE,
- RecordPerSet;
- Synchron;
-
- /* config: */
- AccelConfig = FALSE,
- MenuConfig = FALSE,
- StatusBarConfig = FALSE,
- ToolBoxConfig = FALSE,
- GroupId = GID_VIEW;
-]
-//--------------------------------------------------------------------------
SfxVoidItem PhotoAlbumDialog SID_PHOTOALBUM
()
[
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index 361124f3c590..ef5915997be5 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -538,7 +538,6 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
if ( pFrmItem )
xTargetFrame = pFrmItem->GetFrame();
- bool bMakeLayoutVisible = false;
SfxViewFrame* pViewFrame = NULL;
SdOptions* pOpt = GetSdOptions(DOCUMENT_TYPE_IMPRESS);
@@ -562,7 +561,6 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
{
//create an empty document
pFrame = CreateEmptyDocument( DOCUMENT_TYPE_IMPRESS, xTargetFrame );
- bMakeLayoutVisible = true;
}
}
else
@@ -714,25 +712,12 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
// clear UNDO stack after autopilot
pDocShell->ClearUndoBuffer();
-
- bMakeLayoutVisible = true;
}
}
pOpt->SetStartWithTemplate(bStartWithTemplate);
}
}
}
-
- if (bMakeLayoutVisible && pViewFrame!=NULL)
- {
- // Make the layout menu visible in the tool pane.
- ::sd::ViewShellBase* pBase = ::sd::ViewShellBase::GetViewShellBase(pViewFrame);
- if (pBase != NULL)
- {
- FrameworkHelper::Instance(*pBase)->RequestSidebarPanel(
- FrameworkHelper::msLayoutTaskPanelURL);
- }
- }
}
return pFrame;
diff --git a/sd/source/ui/framework/tools/FrameworkHelper.cxx b/sd/source/ui/framework/tools/FrameworkHelper.cxx
index 2b22a0f12ddd..f46f2aadf68a 100644
--- a/sd/source/ui/framework/tools/FrameworkHelper.cxx
+++ b/sd/source/ui/framework/tools/FrameworkHelper.cxx
@@ -599,54 +599,6 @@ Reference<XResourceId> FrameworkHelper::RequestView (
-Reference<XResourceId> FrameworkHelper::RequestSidebarPanel (
- const OUString& rsTaskPanelURL,
- const bool bEnsureTaskPaneIsVisible)
-{
- try
- {
- if (mxConfigurationController.is())
- {
- // Check the existence of the task pane.
- if ( ! bEnsureTaskPaneIsVisible)
- {
- Reference<XConfiguration> xConfiguration (
- mxConfigurationController->getCurrentConfiguration());
- if (xConfiguration.is())
- if ( ! xConfiguration->hasResource(
- CreateResourceId(msSidebarViewURL, msSidebarPaneURL)))
- {
- // Task pane is not active. Do not force it.
- return NULL;
- }
- }
-
- // Create the resource id from URLs for the sidebar pane
- // and view and the requested panel.
- mxConfigurationController->requestResourceActivation(
- CreateResourceId(msSidebarPaneURL),
- ResourceActivationMode_ADD);
- mxConfigurationController->requestResourceActivation(
- CreateResourceId(msSidebarViewURL, msSidebarPaneURL),
- ResourceActivationMode_REPLACE);
- Reference<XResourceId> xPanelId (CreateResourceId(rsTaskPanelURL, msSidebarViewURL, msSidebarPaneURL));
- mxConfigurationController->requestResourceActivation(
- xPanelId,
- ResourceActivationMode_REPLACE);
-
- return xPanelId;
- }
- }
- catch (lang::DisposedException&)
- {
- Dispose();
- }
- catch (RuntimeException&)
- {}
-
- return NULL;
-}
-
ViewShell::ShellType FrameworkHelper::GetViewId (const OUString& rsViewURL)
{
if (mpViewURLMap->empty())
diff --git a/sd/source/ui/inc/framework/FrameworkHelper.hxx b/sd/source/ui/inc/framework/FrameworkHelper.hxx
index 98f45ce3b606..33e88c94c616 100644
--- a/sd/source/ui/inc/framework/FrameworkHelper.hxx
+++ b/sd/source/ui/inc/framework/FrameworkHelper.hxx
@@ -221,25 +221,6 @@ public:
const OUString& rsResourceURL,
const OUString& rsAnchorURL);
- /** Request the activation of the specified panel in the
- sidebar.
- @param rsSidebarPanelURL
- The panel that is to be activated.
- @param bEnsurePaneIsVisible
- When this is <TRUE/> then the sidebar pane is activated when not
- yet active.
- When this flag is <FALSE/> then the requested panel
- is activated only when the task pane is already active. When it
- is not active then this call is silently ignored.
- @return
- The resource id of the requested sidebar panel is returned. With that
- the caller can, for example, call RunOnResourceActivation() to
- do some initialization after the requested view becomes active.
- */
- cssu::Reference<cssdf::XResourceId> RequestSidebarPanel (
- const OUString& rsSidebarPanelURL,
- const bool bEnsureTaskPaneIsVisible = true);
-
/** Process a slot call that requests a view shell change.
*/
void HandleModeChangeSlot (
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index 87b4acbe9770..79c409ce4657 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -74,6 +74,7 @@
#include <sfx2/viewfrm.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
+#include <sfx2/sidebar/Sidebar.hxx>
#include <svx/svxids.hrc>
#include <sfx2/zoomitem.hxx>
#include <svx/svxdlg.hxx>
@@ -187,12 +188,10 @@ void SlotManager::FuTemporary (SfxRequest& rRequest)
case SID_SLIDE_TRANSITIONS_PANEL:
{
- // Make the slide transition panel visible (expand it)
- // in the tool pane.
- if (mrSlideSorter.GetViewShellBase() != NULL)
- framework::FrameworkHelper::Instance(*mrSlideSorter.GetViewShellBase())
- ->RequestSidebarPanel(
- sd::framework::FrameworkHelper::msSlideTransitionTaskPanelURL);
+ // Make the slide transition panel visible in the sidebar.
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SlideTransitionPanel")),
+ pShell->GetViewFrame()->GetFrame().GetFrameInterface());
rRequest.Ignore ();
break;
}
diff --git a/sd/source/ui/table/tablefunction.cxx b/sd/source/ui/table/tablefunction.cxx
index 634bb79a0701..7944ed96b8ef 100644
--- a/sd/source/ui/table/tablefunction.cxx
+++ b/sd/source/ui/table/tablefunction.cxx
@@ -49,6 +49,7 @@
#include <sfx2/dispatch.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/request.hxx>
+#include <sfx2/sidebar/Sidebar.hxx>
#include <svl/style.hxx>
#include "framework/FrameworkHelper.hxx"
@@ -195,10 +196,11 @@ void DrawViewShell::FuTable(SfxRequest& rReq)
}
else
{
- // Make the slide transition panel visible (expand it) in the
- // tool pane.
- framework::FrameworkHelper::Instance(GetViewShellBase())->RequestSidebarPanel(
- framework::FrameworkHelper::msTableDesignPanelURL);
+ // Make the table design panel visible (expand it) in the
+ // sidebar.
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ImpressTableDesignPanel")),
+ GetViewFrame()->GetFrame().GetFrameInterface());
}
Cancel();
diff --git a/sd/source/ui/view/GraphicViewShellBase.cxx b/sd/source/ui/view/GraphicViewShellBase.cxx
index 39c5ba2610ce..06e99bd0453a 100644
--- a/sd/source/ui/view/GraphicViewShellBase.cxx
+++ b/sd/source/ui/view/GraphicViewShellBase.cxx
@@ -89,7 +89,6 @@ void GraphicViewShellBase::Execute (SfxRequest& rRequest)
case SID_OUTLINEMODE:
case SID_NOTESMODE:
case SID_HANDOUTMODE:
- case SID_SHOW_TOOL_PANEL:
// Prevent some Impress-only slots from being executed.
rRequest.Cancel();
break;
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index d683d4e3bb36..13f50b18afe0 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -182,7 +182,6 @@ public:
void GetSlotState (SfxItemSet& rSet);
void ProcessRestoreEditingViewSlot (void);
- void ProcessTaskPaneSlot (SfxRequest& rRequest);
private:
ViewShellBase& mrBase;
@@ -704,10 +703,6 @@ void ViewShellBase::Execute (SfxRequest& rRequest)
// The full screen mode is not supported. Ignore the request.
break;
- case SID_SHOW_TOOL_PANEL:
- mpImpl->ProcessTaskPaneSlot(rRequest);
- break;
-
case SID_RESTORE_EDITING_VIEW:
mpImpl->ProcessRestoreEditingViewSlot();
break;
@@ -1472,43 +1467,6 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet)
-
-void ViewShellBase::Implementation::ProcessTaskPaneSlot (SfxRequest& rRequest)
-{
- // Set the visibility state of the toolpanel and one of its top
- // level panels.
- sidebar::PanelId nPanelId (sidebar::PID_UNKNOWN);
- bool bPanelIdGiven = false;
-
- // Extract the given arguments.
- const SfxItemSet* pArgs = rRequest.GetArgs();
- if (pArgs)
- {
- if (pArgs->Count() == 2)
- {
- SFX_REQUEST_ARG (rRequest, pPanelId, SfxUInt32Item,
- ID_VAL_PANEL_INDEX, sal_False);
- if (pPanelId != NULL)
- {
- nPanelId = static_cast<sidebar::PanelId>(pPanelId->GetValue());
- bPanelIdGiven = true;
- }
- }
- }
-
- // Ignore the request for some combinations of panels and view
- // shell types.
- if (bPanelIdGiven
- && ! (nPanelId==sidebar::PID_LAYOUT
- && mrBase.GetMainViewShell()!=0
- && mrBase.GetMainViewShell()->GetShellType()==ViewShell::ST_OUTLINE))
- {
- framework::FrameworkHelper::Instance(mrBase)->RequestSidebarPanel(
- framework::FrameworkHelper::msLayoutTaskPanelURL);
- }
-}
-
-
} // end of namespace sd
diff --git a/sd/source/ui/view/ViewShellImplementation.cxx b/sd/source/ui/view/ViewShellImplementation.cxx
index 574e3cd4362a..24f7e2b0a036 100644
--- a/sd/source/ui/view/ViewShellImplementation.cxx
+++ b/sd/source/ui/view/ViewShellImplementation.cxx
@@ -46,6 +46,7 @@
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/request.hxx>
+#include <sfx2/sidebar/Sidebar.hxx>
#include <svl/aeitem.hxx>
#include <svx/imapdlg.hxx>
#include <vcl/msgbox.hxx>
@@ -125,27 +126,9 @@ void ViewShell::Implementation::ProcessModifyPageSlot (
{
// Make the layout menu visible in the tool pane.
- SfxBoolItem aMakeToolPaneVisible (ID_VAL_ISVISIBLE, sal_True);
- SfxUInt32Item aPanelId (ID_VAL_PANEL_INDEX, sidebar::PID_LAYOUT);
- SfxViewFrame* pFrame = mrViewShell.GetViewFrame();
- if (pFrame!=NULL && pFrame->GetDispatcher()!=NULL)
- {
- pFrame->GetDispatcher()->Execute (
- SID_SHOW_TOOL_PANEL,
- SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
- &aMakeToolPaneVisible,
- &aPanelId,
- NULL);
- }
- else
- {
- DBG_ASSERT(pFrame!=NULL && pFrame->GetDispatcher()!=NULL,
- "ViewShell::Implementation::ProcessModifyPageSlot(): can not get dispatcher");
- }
-
- // We have activated a non-modal control in the task pane.
- // Because it does not return anything we can not do anything
- // more right now and have to exit here.
+ sfx2::sidebar::Sidebar::ShowPanel(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ImpressLayoutsPanel")),
+ mrViewShell.GetViewFrame()->GetFrame().GetFrameInterface());
break;
}
else if (pArgs->Count() == 4)
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index d1d96b32dbeb..969a17b55245 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -165,6 +165,12 @@
#include "stlpool.hxx"
#include "undolayer.hxx"
#include "unmodpg.hxx"
+#include <sfx2/sidebar/Sidebar.hxx>
+
+namespace {
+ const char CustomAnimationPanelId[] = "CustomAnimationPanel";
+ const char SlideTransitionPanelId[] = "SlideTransitionPanel";
+}
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -2689,10 +2695,10 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
case SID_CUSTOM_ANIMATION_PANEL:
{
- // Make the slide transition panel visible (expand it) in the
- // tool pane.
- framework::FrameworkHelper::Instance(GetViewShellBase())->RequestSidebarPanel(
- framework::FrameworkHelper::msCustomAnimationTaskPanelURL);
+ // Make the slide transition panel visible in the sidebar.
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ CustomAnimationPanelId,
+ GetViewFrame()->GetFrame().GetFrameInterface());
Cancel();
rReq.Done ();
@@ -2701,10 +2707,10 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
case SID_SLIDE_TRANSITIONS_PANEL:
{
- // Make the slide transition panel visible (expand it) in the
- // tool pane.
- framework::FrameworkHelper::Instance(GetViewShellBase())->RequestSidebarPanel(
- framework::FrameworkHelper::msSlideTransitionTaskPanelURL);
+ // Make the slide transition panel visible in the sidebar.
+ ::sfx2::sidebar::Sidebar::ShowPanel(
+ SlideTransitionPanelId,
+ GetViewFrame()->GetFrame().GetFrameInterface());
Cancel();
rReq.Done ();
diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx
index 97f0017542b5..6aa6238d3350 100644
--- a/sd/source/ui/view/drviews6.cxx
+++ b/sd/source/ui/view/drviews6.cxx
@@ -54,6 +54,7 @@
#include "sdabstdlg.hxx"
#include "framework/FrameworkHelper.hxx"
#include <svx/svdoashp.hxx>
+#include <sfx2/sidebar/Sidebar.hxx>
namespace sd {