https://issues.apache.org/ooo/show_bug.cgi?id=121791

Ariel Constenla-Haile <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #8 from Ariel Constenla-Haile <[email protected]> ---
(In reply to comment #7)
> ALG: It's strange; in the executors of the LinePropertyPanel (e.g.
> ChangeStartHdl) the 'group' slot SID_ATTR_LINEEND_STYLE is triggered to
> execute the change, but that slot gets *not* triggered when one of the
> 'group' members changes, so no call to LinePropertyPanel::NotifyItemUpdate
> is done with the slot id SID_ATTR_LINEEND_STYLE. This may be an error in the
> sfx implementation (it *should* trigger a 'group' slot when members get
> changed, shouldn't it?). To get this working, I will now try to add
> SID_ATTR_LINE_START/SID_ATTR_LINE_END slots directly to the svx slot
> definitions and to all application slot definitions (also strage that this
> has to be done in every application).

Note that in the current implementation these are the slot arguments.
http://opengrok.adfinis-sygroup.org/source/xref/aoo-trunk/main/svx/sdi/svx.sdi#7177

SfxBoolItem LineEndStyle SID_ATTR_LINEEND_STYLE
((XLineStartItem LineStart SID_ATTR_LINE_START,XLineEndItem LineEnd
SID_ATTR_LINE_END,SfxUInt32Item StartWidth
SID_ATTR_LINE_STARTWIDTH,SfxUInt32Item EndWidth SID_ATTR_LINE_ENDWIDTH)

Translated to the new UNO command implementation, you have only the
.uno:LineEndStyle command, and SID_ATTR_LINE_START and SID_ATTR_LINE_END are
arguments when you dispatch this command, you put them in the arguments
sequence, where the name is "LineStart" and "LineEnd", respective.

This also means that there are no status updates for these, because they are
simply arguments of the command .uno:LineEndStyle.

All this is explained in
http://wiki.openoffice.org/wiki/Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2

This means you will have to define new slots/UNO Commands if you want to get
status updates for these, and dispatch them. The definition can be done
globally in svx, but in the interface definition of each sfx2 based module you
have to define the methods in the interface of the respective shell responsible
for getting the state and executing/dispatching the command/slot.

You can get the example of SID_ATTR_LINEEND_STYLE, that is defined globally in
svx; in the modules you have the definition of the methods in the shell
interface.

There is a sort of slot "group" with the feature of master-slave slots, but
this is a different thing. You can see this relation for example in

master command:
".uno:ArrowShapes"

slave commands:
".uno:ArrowShapes.chevron"
".uno:ArrowShapes.circular-arrow"
".uno:ArrowShapes.corner-right-arrow"
...

Only the master command has a slot definition; when the application requests a
state update from one of the slaves or tries to dispatch it, this is handled by
the master (see code in sfx2/source/control/bindings.cxx and
SfxOfficeDispatch::IsMasterUnoCommand in sfx2/source/control/unoctitm.cxx)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to