framework/source/uielement/subtoolbarcontroller.cxx | 53 ++++-- sc/source/ui/inc/tabvwsh.hxx | 3 sc/source/ui/view/tabvwsh2.cxx | 6 sd/sdi/sdraw.sdi | 22 +- sd/source/ui/func/fuconcs.cxx | 5 sd/source/ui/inc/DrawViewShell.hxx | 1 sd/source/ui/inc/fuconcs.hxx | 1 sd/source/ui/table/tablefunction.cxx | 1 sd/source/ui/view/drviews2.cxx | 17 -- sd/source/ui/view/drviews7.cxx | 47 ++---- sd/source/ui/view/drviewsc.cxx | 155 -------------------- sd/source/ui/view/drviewse.cxx | 9 - sfx2/sdi/sfx.sdi | 2 svx/sdi/svx.sdi | 12 - sw/inc/view.hxx | 5 sw/source/uibase/uiview/viewdraw.cxx | 1 sw/source/uibase/uiview/viewstat.cxx | 5 17 files changed, 76 insertions(+), 269 deletions(-)
New commits: commit 74cc3fbc17235f5c0010c363342a9a9adaf85c4e Author: Maxim Monastirsky <[email protected]> Date: Tue Jul 21 10:58:39 2015 +0300 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 diff --git a/framework/source/uielement/subtoolbarcontroller.cxx b/framework/source/uielement/subtoolbarcontroller.cxx index 63a0984..3a06a10 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 6bf6439..6e22952 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 4a02435..d91e21b 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 af30ec2..53a31f8 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 b2d2d10..b3eefc1 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 63c6b71..5e253a2 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 291cff7..15731f7 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 7108b35..9999d01 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 ca5023b..b773cff 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 78afdcf..6195735 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 70cd2f6..0eb9f29 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 04f61b7..e207e8b 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 fe52a8c..91a7662 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 43b0c0f..be077fd 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; commit 3c7a7b538e8ca8b310ae9778ae9ace5ae937a4f1 Author: Maxim Monastirsky <[email protected]> Date: Mon Jul 20 20:34:31 2015 +0300 Simplify Change-Id: I6fff5af5d623bff6f8adedf6f3d42d849ea4d24b diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index 3a2536d..ce3c4a5 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -168,9 +168,6 @@ private: SfxBroadcaster* pAccessibilityBroadcaster; - static const int MASTERENUMCOMMANDS = 6; - OUString aCurrShapeEnumCommand[ MASTERENUMCOMMANDS ]; - // ugly hack for Add button in ScNameDlg boost::ptr_map<OUString, ScRangeName> maRangeMap; bool mbInSwitch; diff --git a/sc/source/ui/view/tabvwsh2.cxx b/sc/source/ui/view/tabvwsh2.cxx index fefe124..6bf6439 100644 --- a/sc/source/ui/view/tabvwsh2.cxx +++ b/sc/source/ui/view/tabvwsh2.cxx @@ -310,7 +310,6 @@ void ScTabViewShell::ExecDraw(SfxRequest& rReq) SFX_REQUEST_ARG( rReq, pEnumCommand, SfxStringItem, nNewId, false ); if ( pEnumCommand ) { - aCurrShapeEnumCommand[ nNewId - SID_DRAWTBX_CS_BASIC ] = pEnumCommand->GetValue(); SfxBindings& rBind = GetViewFrame()->GetBindings(); rBind.Invalidate( nNewId ); rBind.Update( nNewId ); @@ -441,10 +440,7 @@ void ScTabViewShell::GetDrawState(SfxItemSet &rSet) case SID_DRAWTBX_CS_FLOWCHART: case SID_DRAWTBX_CS_CALLOUT: case SID_DRAWTBX_CS_STAR: - { - bool bCurrentActive = (nDrawSfxId == nWhich) && (aCurrShapeEnumCommand[ nWhich - SID_DRAWTBX_CS_BASIC ] == sDrawCustom); - rSet.Put( SfxBoolItem( nWhich, bCurrentActive ) ); - } + rSet.Put( SfxBoolItem( nWhich, nDrawSfxId == nWhich ) ); break; } nWhich = aIter.NextWhich(); diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index cd7114f..1c09a8b 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -218,11 +218,6 @@ class SW_DLLPUBLIC SwView: public SfxViewShell int m_nSelectionType; VclPtr<FloatingWindow> m_pFieldPopup; - - static const int m_nMASTERENUMCOMMANDS = 6; - - OUString m_aCurrShapeEnumCommand[ m_nMASTERENUMCOMMANDS ]; - sal_uInt16 m_nPageCnt; // current draw mode diff --git a/sw/source/uibase/uiview/viewdraw.cxx b/sw/source/uibase/uiview/viewdraw.cxx index b81cf88..d342512 100644 --- a/sw/source/uibase/uiview/viewdraw.cxx +++ b/sw/source/uibase/uiview/viewdraw.cxx @@ -320,7 +320,6 @@ void SwView::ExecDraw(SfxRequest& rReq) if ( pStringItem ) { m_sDrawCustom = pStringItem->GetValue(); - m_aCurrShapeEnumCommand[ nSlotId - SID_DRAWTBX_CS_BASIC ] = m_sDrawCustom; SfxBindings& rBind = GetViewFrame()->GetBindings(); rBind.Invalidate( nSlotId ); rBind.Update( nSlotId ); diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx index a7d2c16..43b0c0f 100644 --- a/sw/source/uibase/uiview/viewstat.cxx +++ b/sw/source/uibase/uiview/viewstat.cxx @@ -520,10 +520,7 @@ void SwView::GetDrawState(SfxItemSet &rSet) if ( bWeb ) rSet.DisableItem( nWhich ); else - { - bool bCurrentActive = (m_nDrawSfxId == nWhich) && (m_aCurrShapeEnumCommand[ nWhich - SID_DRAWTBX_CS_BASIC ] == m_sDrawCustom); - rSet.Put( SfxBoolItem( nWhich, bCurrentActive ) ); - } + rSet.Put( SfxBoolItem( nWhich, m_nDrawSfxId == nWhich ) ); } break; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
