summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2015-07-21 10:58:39 +0300
committerMaxim Monastirsky <momonasmon@gmail.com>2015-07-21 17:36:09 +0300
commit74cc3fbc17235f5c0010c363342a9a9adaf85c4e (patch)
tree102212f766aa8a0abd5691b15e37e48462360ae7
parent3c7a7b538e8ca8b310ae9778ae9ace5ae937a4f1 (diff)
tdf#36796 Status updates for custom shapes buttons
We're dealing here with 2 bugs: 1. Single shape buttons (like rectangle, ellipse etc.) don't get the pressed state when active. The cause is that all commands of the same kind (Basic Shapes, Symbol Shapes etc.) are handled as one internally, allowing only one type of status updates. It used to transport the current active shape, but it was changed to a boolean value in the fix for i#41753, and since then used for the pressed state of the group buttons. 2. The pressed state of a group button shows always, even when a user activates a shape from a place other than the drop-down of that button. But in this case the image of the group button doesn't update with the current shape, thus confusing the user on what is currently active. The cause here is that we use (since i#41753) the XSubToolbarController interface to update the last selected function (instead of the old-style status based update), and ToolBarManager notifies a controller about a new selection only if it was made from a particular toolbar that the controller claimed to use in the getSubToolbarName method. Since 7352a7c17875e5adcc4226c45f4a03e11c44ff49 there is a similar regression for other group buttons in sd (like lines, 3D Objects and other), with the same cause. This is also fixed now. Change-Id: Ida074a001ff78bf5bd5bcb8151516daa6e27cbce
-rw-r--r--framework/source/uielement/subtoolbarcontroller.cxx53
-rw-r--r--sc/source/ui/view/tabvwsh2.cxx2
-rw-r--r--sd/sdi/sdraw.sdi22
-rw-r--r--sd/source/ui/func/fuconcs.cxx5
-rw-r--r--sd/source/ui/inc/DrawViewShell.hxx1
-rw-r--r--sd/source/ui/inc/fuconcs.hxx1
-rw-r--r--sd/source/ui/table/tablefunction.cxx1
-rw-r--r--sd/source/ui/view/drviews2.cxx17
-rw-r--r--sd/source/ui/view/drviews7.cxx47
-rw-r--r--sd/source/ui/view/drviewsc.cxx155
-rw-r--r--sd/source/ui/view/drviewse.cxx9
-rw-r--r--sfx2/sdi/sfx.sdi2
-rw-r--r--svx/sdi/svx.sdi12
-rw-r--r--sw/source/uibase/uiview/viewstat.cxx2
14 files changed, 76 insertions, 253 deletions
diff --git a/framework/source/uielement/subtoolbarcontroller.cxx b/framework/source/uielement/subtoolbarcontroller.cxx
index 63a0984cafd0..3a06a104ec2e 100644
--- a/framework/source/uielement/subtoolbarcontroller.cxx
+++ b/framework/source/uielement/subtoolbarcontroller.cxx
@@ -102,6 +102,8 @@ SubToolBarController::SubToolBarController( const css::uno::Sequence< css::uno::
break;
}
}
+ if ( !m_aLastCommand.isEmpty() )
+ addStatusListener( m_aLastCommand );
}
SubToolBarController::~SubToolBarController()
@@ -131,32 +133,41 @@ void SubToolBarController::statusChanged( const css::frame::FeatureStateEvent& E
sal_uInt16 nId = 0;
if ( getToolboxId( nId, &pToolBox ) )
{
- pToolBox->EnableItem( nId, Event.IsEnabled );
ToolBoxItemBits nItemBits = pToolBox->GetItemBits( nId );
nItemBits &= ~ToolBoxItemBits::CHECKABLE;
TriState eTri = TRISTATE_FALSE;
- bool bValue;
- css::frame::status::ItemStatus aItemState;
- css::frame::status::Visibility aItemVisibility;
-
- if ( Event.State >>= bValue )
- {
- // Boolean, treat it as checked/unchecked
- pToolBox->SetItemBits( nId, nItemBits );
- pToolBox->CheckItem( nId, bValue );
- if ( bValue )
- eTri = TRISTATE_TRUE;
- nItemBits |= ToolBoxItemBits::CHECKABLE;
- }
- else if ( Event.State >>= aItemState )
+ if ( Event.FeatureURL.Complete == m_aCommandURL )
{
- eTri = TRISTATE_INDET;
- nItemBits |= ToolBoxItemBits::CHECKABLE;
+ pToolBox->EnableItem( nId, Event.IsEnabled );
+
+ OUString aStrValue;
+ css::frame::status::Visibility aItemVisibility;
+ if ( Event.State >>= aStrValue )
+ {
+ // Enum command, such as the current custom shape,
+ // toggle checked state.
+ if ( m_aLastCommand == OUString( m_aCommandURL + "." + aStrValue ) )
+ {
+ eTri = TRISTATE_TRUE;
+ nItemBits |= ToolBoxItemBits::CHECKABLE;
+ }
+ }
+ else if ( Event.State >>= aItemVisibility )
+ {
+ pToolBox->ShowItem( nId, aItemVisibility.bVisible );
+ }
}
- else if ( Event.State >>= aItemVisibility )
+ else
{
- pToolBox->ShowItem( nId, aItemVisibility.bVisible );
+ bool bValue;
+ if ( Event.State >>= bValue )
+ {
+ // Boolean, treat it as checked/unchecked
+ if ( bValue )
+ eTri = TRISTATE_TRUE;
+ nItemBits |= ToolBoxItemBits::CHECKABLE;
+ }
}
pToolBox->SetItemState( nId, eTri );
@@ -261,9 +272,11 @@ OUString SubToolBarController::getSubToolbarName()
void SubToolBarController::functionSelected( const OUString& rCommand )
throw ( css::uno::RuntimeException, std::exception )
{
- if ( !m_aLastCommand.isEmpty() )
+ if ( !m_aLastCommand.isEmpty() && m_aLastCommand != rCommand )
{
+ removeStatusListener( m_aLastCommand );
m_aLastCommand = rCommand;
+ addStatusListener( m_aLastCommand );
updateImage();
}
}
diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx
index 6bf6439cbbeb..6e229523d346 100644
--- a/sc/source/ui/view/tabvwsh2.cxx
+++ b/sc/source/ui/view/tabvwsh2.cxx
@@ -440,7 +440,7 @@ void ScTabViewShell::GetDrawState(SfxItemSet &rSet)
case SID_DRAWTBX_CS_FLOWCHART:
case SID_DRAWTBX_CS_CALLOUT:
case SID_DRAWTBX_CS_STAR:
- rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == nWhich ) );
+ rSet.Put( SfxStringItem( nWhich, nDrawSfxId == nWhich ? sDrawCustom : OUString() ) );
break;
}
nWhich = aIter.NextWhich();
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
index 4a024352d829..d91e21bec36f 100644
--- a/sd/sdi/sdraw.sdi
+++ b/sd/sdi/sdraw.sdi
@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-SfxBoolItem AdvancedMode SID_OBJECT_CHOOSE_MODE
+SfxVoidItem AdvancedMode SID_OBJECT_CHOOSE_MODE
[
/* flags: */
@@ -196,7 +196,7 @@ SfxUInt16Item AnimatorState SID_ANIMATOR_STATE
GroupId = GID_OPTIONS;
]
-SfxBoolItem ArrowsToolbox SID_DRAWTBX_ARROWS
+SfxVoidItem ArrowsToolbox SID_DRAWTBX_ARROWS
[
/* flags: */
@@ -250,7 +250,7 @@ SfxVoidItem BeforeObject SID_BEFORE_OBJ
()
[
/* flags: */
- AutoUpdate = FALSE,
+ AutoUpdate = TRUE,
Cachable = Cachable,
FastCall = FALSE,
HasCoreId = FALSE,
@@ -274,7 +274,7 @@ SfxVoidItem BehindObject SID_BEHIND_OBJ
()
[
/* flags: */
- AutoUpdate = FALSE,
+ AutoUpdate = TRUE,
Cachable = Cachable,
FastCall = FALSE,
HasCoreId = FALSE,
@@ -1292,7 +1292,7 @@ SfxBoolItem ConnectorLinesCircleStart SID_CONNECTOR_LINES_CIRCLE_START
GroupId = GID_CONNECTOR;
]
-SfxBoolItem ConnectorToolbox SID_DRAWTBX_CONNECTORS
+SfxVoidItem ConnectorToolbox SID_DRAWTBX_CONNECTORS
[
/* flags: */
@@ -2157,7 +2157,7 @@ SfxBoolItem CustomAnimationSchemes SID_CUSTOM_ANIMATION_SCHEMES_PANEL
GroupId = GID_OPTIONS;
]
-SfxBoolItem EllipseToolbox SID_DRAWTBX_ELLIPSES
+SfxVoidItem EllipseToolbox SID_DRAWTBX_ELLIPSES
[
/* flags: */
@@ -3889,7 +3889,7 @@ SfxVoidItem LineTo SID_LINETO
GroupId = GID_DRAWING;
]
-SfxBoolItem LineToolbox SID_DRAWTBX_LINES
+SfxVoidItem LineToolbox SID_DRAWTBX_LINES
[
/* flags: */
@@ -4516,7 +4516,7 @@ SfxBoolItem NotesMode SID_NOTESMODE
GroupId = GID_VIEW;
]
-SfxBoolItem ObjectPosition SID_POSITION
+SfxVoidItem ObjectPosition SID_POSITION
[
/* flags: */
@@ -4542,7 +4542,7 @@ SfxBoolItem ObjectPosition SID_POSITION
GroupId = GID_MODIFY;
]
-SfxBoolItem Objects3DToolbox SID_DRAWTBX_3D_OBJECTS
+SfxVoidItem Objects3DToolbox SID_DRAWTBX_3D_OBJECTS
[
/* flags: */
@@ -5195,7 +5195,7 @@ SfxBoolItem QuickEdit SID_QUICKEDIT
GroupId = GID_OPTIONS;
]
-SfxBoolItem RectangleToolbox SID_DRAWTBX_RECTANGLES
+SfxVoidItem RectangleToolbox SID_DRAWTBX_RECTANGLES
[
/* flags: */
@@ -5994,7 +5994,7 @@ SfxBoolItem TextAutoFitToSize SID_OUTLINE_TEXT_AUTOFIT
GroupId = GID_FORMAT;
]
-SfxBoolItem TextToolbox SID_DRAWTBX_TEXT
+SfxVoidItem TextToolbox SID_DRAWTBX_TEXT
[
/* flags: */
diff --git a/sd/source/ui/func/fuconcs.cxx b/sd/source/ui/func/fuconcs.cxx
index af30ec286d9b..53a31f8cbad7 100644
--- a/sd/source/ui/func/fuconcs.cxx
+++ b/sd/source/ui/func/fuconcs.cxx
@@ -258,6 +258,11 @@ void FuConstructCustomShape::SetAttributes( SdrObject* pObj )
}
}
+OUString FuConstructCustomShape::GetShapeType() const
+{
+ return aCustomShape;
+}
+
SdrObject* FuConstructCustomShape::CreateDefaultObject(const sal_uInt16, const Rectangle& rRectangle)
{
SdrObject* pObj = SdrObjFactory::MakeNewObject(
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
index b2d2d10e8235..b3eefc112328 100644
--- a/sd/source/ui/inc/DrawViewShell.hxx
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -420,7 +420,6 @@ protected:
void SetupPage( Size &rSize, long nLeft, long nRight, long nUpper, long nLower,
bool bSize, bool bMargin, bool bScaleAll );
- static sal_uInt16 GetIdBySubId( sal_uInt16 nSId );
void GetMenuStateSel(SfxItemSet& rSet);
private:
diff --git a/sd/source/ui/inc/fuconcs.hxx b/sd/source/ui/inc/fuconcs.hxx
index 63c6b71a28f8..5e253a2813ac 100644
--- a/sd/source/ui/inc/fuconcs.hxx
+++ b/sd/source/ui/inc/fuconcs.hxx
@@ -46,6 +46,7 @@ public:
virtual void Activate() SAL_OVERRIDE;
void SetAttributes( SdrObject* pObj );
+ OUString GetShapeType() const;
virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle) SAL_OVERRIDE;
diff --git a/sd/source/ui/table/tablefunction.cxx b/sd/source/ui/table/tablefunction.cxx
index 291cff7798f5..15731f7661d1 100644
--- a/sd/source/ui/table/tablefunction.cxx
+++ b/sd/source/ui/table/tablefunction.cxx
@@ -190,7 +190,6 @@ void DrawViewShell::FuTable(SfxRequest& rReq)
else
mpView->InsertObjectAtView(pObj, *pPV, SdrInsertFlags::SETDEFLAYER);
- Invalidate(SID_DRAWTBX_INSERT);
rReq.Ignore();
SfxViewShell* pViewShell = GetViewShell();
OSL_ASSERT (pViewShell!=NULL);
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 7108b3571d12..9999d012a361 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -1111,7 +1111,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
SetCurrentFunction( FuInsertGraphic::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
rReq.Ignore ();
- Invalidate(SID_DRAWTBX_INSERT);
}
break;
@@ -1121,8 +1120,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
Cancel();
rReq.Ignore ();
-
- Invalidate(SID_DRAWTBX_INSERT);
}
break;
@@ -1142,8 +1139,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
SetOldFunction( FuSelection::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
rReq.Ignore ();
-
- Invalidate(SID_DRAWTBX_INSERT);
}
break;
#if HAVE_FEATURE_GLTF
@@ -1153,8 +1148,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
Cancel();
rReq.Ignore ();
-
- Invalidate(SID_DRAWTBX_INSERT);
}
break;
#endif
@@ -1187,8 +1180,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
Broadcast (ViewShellHint(ViewShellHint::HINT_COMPLEX_MODEL_CHANGE_END));
Cancel();
rReq.Done ();
-
- Invalidate(SID_DRAWTBX_INSERT);
}
break;
@@ -1205,8 +1196,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
case SID_BEHIND_OBJ:
{
SetCurrentFunction( FuDisplayOrder::Create(this, GetActiveWindow(), mpDrawView, GetDoc(), rReq) );
- Invalidate( SID_POSITION );
- rReq.Ignore ();
+ rReq.Done();
// finishes itself, no Cancel() needed!
}
break;
@@ -1214,7 +1204,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
case SID_REVERSE_ORDER: // BASIC
{
mpDrawView->ReverseOrderOfMarked();
- Invalidate( SID_POSITION );
Cancel();
rReq.Done ();
}
@@ -2421,7 +2410,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
mpDrawView->PutMarkedToTop();
Cancel();
- Invalidate( SID_POSITION );
rReq.Done ();
}
break;
@@ -2430,7 +2418,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
mpDrawView->MovMarkedToTop();
Cancel();
- Invalidate( SID_POSITION );
rReq.Done ();
}
break;
@@ -2439,7 +2426,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
mpDrawView->MovMarkedToBtm();
Cancel();
- Invalidate( SID_POSITION );
rReq.Done ();
}
break;
@@ -2448,7 +2434,6 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
{
mpDrawView->PutMarkedToBtm();
Cancel();
- Invalidate( SID_POSITION );
rReq.Done ();
}
break;
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index ca5023b8ea39..b773cff8484b 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -82,6 +82,7 @@
#include "Window.hxx"
#include "fuediglu.hxx"
#include "fubullet.hxx"
+#include "fuconcs.hxx"
#include "fuformatpaintbrush.hxx"
#include <config_features.h>
@@ -278,11 +279,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
if(HasCurrentFunction())
{
sal_uInt16 nSId = GetCurrentFunction()->GetSlotID();
- sal_uInt16 nMainId = GetIdBySubId( nSId );
-
rSet.Put( SfxBoolItem( nSId, true ) );
- if ( nMainId != 0 )
- rSet.Put( SfxBoolItem( nMainId, true ) );
}
SdrPageView* pPageView = mpDrawView->GetSdrPageView();
@@ -1047,7 +1044,6 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
nCurrentSId = SID_ATTR_CHAR;
rSet.Put( SfxBoolItem( nCurrentSId, true ) );
- rSet.Put( SfxBoolItem( SID_DRAWTBX_TEXT, true ) );
}
if ( GetDocSh()->IsReadOnly() )
@@ -1334,20 +1330,8 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
if( xSlideshow.is() && xSlideshow->isRunning() )
{
- rSet.ClearItem(SID_ZOOM_TOOLBOX);
- rSet.ClearItem(SID_OBJECT_CHOOSE_MODE);
- rSet.ClearItem(SID_DRAWTBX_TEXT);
- rSet.ClearItem(SID_DRAWTBX_RECTANGLES);
- rSet.ClearItem(SID_DRAWTBX_ELLIPSES);
- rSet.ClearItem(SID_DRAWTBX_LINES);
- rSet.ClearItem(SID_DRAWTBX_ARROWS);
- rSet.ClearItem(SID_DRAWTBX_3D_OBJECTS);
- rSet.ClearItem(SID_DRAWTBX_CONNECTORS);
- rSet.ClearItem(SID_OBJECT_CHOOSE_MODE );
- rSet.ClearItem(SID_DRAWTBX_INSERT);
rSet.ClearItem(SID_INSERTFILE);
rSet.ClearItem(SID_OBJECT_ROTATE);
- rSet.ClearItem(SID_POSITION);
rSet.ClearItem(SID_FM_CONFIG);
rSet.ClearItem(SID_ANIMATION_EFFECTS);
rSet.ClearItem(SID_ANIMATION_OBJECTS);
@@ -1538,22 +1522,23 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
//highlight selected custom shape
{
- sal_uInt16 nCurrentSId = 0;
if(HasCurrentFunction())
- nCurrentSId = GetCurrentFunction()->GetSlotID();
+ {
+ rtl::Reference< FuPoor > xFunc( GetCurrentFunction() );
+ FuConstructCustomShape* pShapeFunc = dynamic_cast< FuConstructCustomShape* >( xFunc.get() );
+
+ static const sal_uInt16 nCSTbArray[] = { SID_DRAWTBX_CS_BASIC, SID_DRAWTBX_CS_SYMBOL,
+ SID_DRAWTBX_CS_ARROW, SID_DRAWTBX_CS_FLOWCHART,
+ SID_DRAWTBX_CS_CALLOUT, SID_DRAWTBX_CS_STAR };
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_BASIC ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_BASIC, SID_DRAWTBX_CS_BASIC == nCurrentSId ));
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_SYMBOL ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_SYMBOL, SID_DRAWTBX_CS_SYMBOL == nCurrentSId ));
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_ARROW ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_ARROW, SID_DRAWTBX_CS_ARROW == nCurrentSId ));
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_FLOWCHART ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_FLOWCHART, SID_DRAWTBX_CS_FLOWCHART == nCurrentSId ));
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_CALLOUT ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_CALLOUT,SID_DRAWTBX_CS_CALLOUT == nCurrentSId ));
- if ( SfxItemState::DEFAULT == rSet.GetItemState( SID_DRAWTBX_CS_STAR ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_STAR, SID_DRAWTBX_CS_STAR == nCurrentSId ));
+ const sal_uInt16 nCurrentSId = GetCurrentFunction()->GetSlotID();
+ for ( size_t i = 0; i < SAL_N_ELEMENTS( nCSTbArray ); ++i )
+ {
+ rSet.ClearItem( nCSTbArray[i] ); // Why is this necessary?
+ rSet.Put( SfxStringItem( nCSTbArray[i], nCurrentSId == nCSTbArray[i] && pShapeFunc
+ ? pShapeFunc->GetShapeType() : OUString() ) );
+ }
+ }
}
if ( bDisableEditHyperlink || GetDocSh()->IsReadOnly() )
diff --git a/sd/source/ui/view/drviewsc.cxx b/sd/source/ui/view/drviewsc.cxx
index 78afdcf83cf9..61957356d273 100644
--- a/sd/source/ui/view/drviewsc.cxx
+++ b/sd/source/ui/view/drviewsc.cxx
@@ -51,161 +51,6 @@
#include "sdabstdlg.hxx"
namespace sd {
-/**
- * Returns the ID of the group button, if it should be toggled.
- */
-sal_uInt16 DrawViewShell::GetIdBySubId( sal_uInt16 nSId )
-{
- sal_uInt16 nMappedSId = 0;
- switch( nSId )
- {
- case SID_OBJECT_ROTATE:
- case SID_OBJECT_MIRROR:
- case SID_OBJECT_TRANSPARENCE:
- case SID_OBJECT_GRADIENT:
- case SID_OBJECT_SHEAR:
- case SID_OBJECT_CROOK_ROTATE:
- case SID_OBJECT_CROOK_SLANT:
- case SID_OBJECT_CROOK_STRETCH:
- case SID_CONVERT_TO_3D_LATHE:
- {
- nMappedSId = SID_OBJECT_CHOOSE_MODE;
- }
- break;
-
- case SID_BEFORE_OBJ:
- case SID_BEHIND_OBJ:
- {
- nMappedSId = SID_POSITION;
- }
- break;
-
- case SID_ZOOM_PANNING:
- case SID_ZOOM_MODE:
- {
- nMappedSId = SID_ZOOM_TOOLBOX;
- }
- break;
-
- case SID_ATTR_CHAR:
- case SID_TEXT_FITTOSIZE:
- case SID_DRAW_CAPTION:
- case SID_DRAW_FONTWORK:
- case SID_DRAW_FONTWORK_VERTICAL:
- {
- nMappedSId = SID_DRAWTBX_TEXT;
- }
- break;
-
- case SID_DRAW_RECT:
- case SID_DRAW_SQUARE:
- case SID_DRAW_RECT_ROUND:
- case SID_DRAW_SQUARE_ROUND:
- case SID_DRAW_RECT_NOFILL:
- case SID_DRAW_SQUARE_NOFILL:
- case SID_DRAW_RECT_ROUND_NOFILL:
- case SID_DRAW_SQUARE_ROUND_NOFILL:
- {
- nMappedSId = SID_DRAWTBX_RECTANGLES;
- }
- break;
-
- case SID_DRAW_ELLIPSE:
- case SID_DRAW_CIRCLE:
- case SID_DRAW_PIE:
- case SID_DRAW_CIRCLEPIE:
- case SID_DRAW_ELLIPSECUT:
- case SID_DRAW_CIRCLECUT:
- case SID_DRAW_ARC:
- case SID_DRAW_CIRCLEARC:
- case SID_DRAW_ELLIPSE_NOFILL:
- case SID_DRAW_CIRCLE_NOFILL:
- case SID_DRAW_PIE_NOFILL:
- case SID_DRAW_CIRCLEPIE_NOFILL:
- case SID_DRAW_ELLIPSECUT_NOFILL:
- case SID_DRAW_CIRCLECUT_NOFILL:
- {
- nMappedSId = SID_DRAWTBX_ELLIPSES;
- }
- break;
-
- case SID_DRAW_BEZIER_NOFILL:
- case SID_DRAW_POLYGON_NOFILL:
- case SID_DRAW_XPOLYGON_NOFILL:
- case SID_DRAW_FREELINE_NOFILL:
- case SID_DRAW_BEZIER_FILL:
- case SID_DRAW_POLYGON:
- case SID_DRAW_XPOLYGON:
- case SID_DRAW_FREELINE:
- {
- nMappedSId = SID_DRAWTBX_LINES;
- }
- break;
-
- case SID_DRAW_LINE:
- case SID_DRAW_XLINE:
- case SID_DRAW_MEASURELINE:
- case SID_LINE_ARROW_START:
- case SID_LINE_ARROW_END:
- case SID_LINE_ARROWS:
- case SID_LINE_ARROW_CIRCLE:
- case SID_LINE_CIRCLE_ARROW:
- case SID_LINE_ARROW_SQUARE:
- case SID_LINE_SQUARE_ARROW:
- {
- nMappedSId = SID_DRAWTBX_ARROWS;
- }
- break;
-
- case SID_3D_CUBE:
- case SID_3D_TORUS:
- case SID_3D_SPHERE:
- case SID_3D_SHELL:
- case SID_3D_HALF_SPHERE:
- case SID_3D_CYLINDER:
- case SID_3D_CONE:
- case SID_3D_PYRAMID:
- {
- nMappedSId = SID_DRAWTBX_3D_OBJECTS;
- }
- break;
-
- case SID_TOOL_CONNECTOR:
- case SID_CONNECTOR_ARROW_START:
- case SID_CONNECTOR_ARROW_END:
- case SID_CONNECTOR_ARROWS:
- case SID_CONNECTOR_CIRCLE_START:
- case SID_CONNECTOR_CIRCLE_END:
- case SID_CONNECTOR_CIRCLES:
- case SID_CONNECTOR_LINE:
- case SID_CONNECTOR_LINE_ARROW_START:
- case SID_CONNECTOR_LINE_ARROW_END:
- case SID_CONNECTOR_LINE_ARROWS:
- case SID_CONNECTOR_LINE_CIRCLE_START:
- case SID_CONNECTOR_LINE_CIRCLE_END:
- case SID_CONNECTOR_LINE_CIRCLES:
- case SID_CONNECTOR_CURVE:
- case SID_CONNECTOR_CURVE_ARROW_START:
- case SID_CONNECTOR_CURVE_ARROW_END:
- case SID_CONNECTOR_CURVE_ARROWS:
- case SID_CONNECTOR_CURVE_CIRCLE_START:
- case SID_CONNECTOR_CURVE_CIRCLE_END:
- case SID_CONNECTOR_CURVE_CIRCLES:
- case SID_CONNECTOR_LINES:
- case SID_CONNECTOR_LINES_ARROW_START:
- case SID_CONNECTOR_LINES_ARROW_END:
- case SID_CONNECTOR_LINES_ARROWS:
- case SID_CONNECTOR_LINES_CIRCLE_START:
- case SID_CONNECTOR_LINES_CIRCLE_END:
- case SID_CONNECTOR_LINES_CIRCLES:
- {
- nMappedSId = SID_DRAWTBX_CONNECTORS;
- }
- }
- return nMappedSId;
-}
-
-
void DrawViewShell::UpdateIMapDlg( SdrObject* pObj )
{
if( ( pObj->ISA( SdrGrafObj ) || pObj->ISA( SdrOle2Obj ) ) && !mpDrawView->IsTextEdit() &&
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 70cd2f6e8fc1..0eb9f29177c4 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -1133,7 +1133,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
rReq.Done ();
}
break;
@@ -1148,7 +1147,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
rReq.Done ();
}
break;
@@ -1163,7 +1161,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
rReq.Done ();
}
break;
@@ -1177,7 +1174,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
mpZoomList->InsertZoomRect(aVisAreaWin);
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
rReq.Done ();
}
break;
@@ -1194,7 +1190,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
}
rReq.Done ();
}
@@ -1225,7 +1220,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
rReq.Done ();
}
break;
@@ -1258,7 +1252,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
Invalidate( SID_ZOOM_IN );
Invalidate( SID_ZOOM_OUT );
Invalidate( SID_ZOOM_PANNING );
- Invalidate( SID_ZOOM_TOOLBOX );
}
rReq.Done ();
}
@@ -1277,7 +1270,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
SetZoomRect(mpZoomList->GetPreviousZoomRect());
}
rReq.Done ();
- Invalidate( SID_ZOOM_TOOLBOX );
}
break;
@@ -1294,7 +1286,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
SetZoomRect(mpZoomList->GetNextZoomRect());
}
rReq.Done ();
- Invalidate( SID_ZOOM_TOOLBOX );
}
break;
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index 04f61b7d58a2..e207e8b45b53 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -6668,7 +6668,7 @@ SfxVoidItem ZoomPrevious SID_ZOOM_PREV
]
-SfxBoolItem ZoomToolBox SID_ZOOM_TOOLBOX
+SfxVoidItem ZoomToolBox SID_ZOOM_TOOLBOX
[
/* flags: */
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index fe52a8c12291..91a7662cddb8 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -14174,7 +14174,7 @@ SfxBoolItem BasicShapes SID_DRAWTBX_CS_BASIC
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
@@ -14202,7 +14202,7 @@ SfxBoolItem SymbolShapes SID_DRAWTBX_CS_SYMBOL
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
@@ -14230,7 +14230,7 @@ SfxBoolItem ArrowShapes SID_DRAWTBX_CS_ARROW
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
@@ -14258,7 +14258,7 @@ SfxBoolItem FlowChartShapes SID_DRAWTBX_CS_FLOWCHART
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
@@ -14286,7 +14286,7 @@ SfxBoolItem CalloutShapes SID_DRAWTBX_CS_CALLOUT
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
@@ -14314,7 +14314,7 @@ SfxBoolItem StarShapes SID_DRAWTBX_CS_STAR
Synchron;
/* status: */
- SlotType = SfxBoolItem
+ SlotType = SfxStringItem
/* config: */
AccelConfig = TRUE,
diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx
index 43b0c0fd4a2d..be077fd82f48 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -520,7 +520,7 @@ void SwView::GetDrawState(SfxItemSet &rSet)
if ( bWeb )
rSet.DisableItem( nWhich );
else
- rSet.Put( SfxBoolItem( nWhich, m_nDrawSfxId == nWhich ) );
+ rSet.Put( SfxStringItem( nWhich, m_nDrawSfxId == nWhich ? m_sDrawCustom : OUString() ) );
}
break;