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

--- Comment #14 from Andre <[email protected]> ---
Thanks for the explanation.  Some details where new to me.

I agree with you that using the UNO way to handle and dispatch
commands is the best way to go.  But while the UNO command concept is
not too bad, its implementation is lacking in some areas.  The biggest
problem is that today most commands are dispatched as slot calls.  I
always thought that the framework would internally convert them into
commands and then handle them like any other command dispatch.  This
is done to some degree (a slot <id> is converted into a "slot:<id>"
command) but apparently a detail like the disabling of commands is not
applied.

I made an experiment with dispatching a disabled command and still got
an XDispatch object.  Your explanation confirms my belief that I
should have gotten an empty Reference.  But my experiment was not very
thorough, I should repeat it.

Then there is the matter of finding the right handler for a
slot/command.  Sfx with its shells allows more fine control than UNO
with its chain of dispatchers.

And there are toolbars and toolboxes.  Toolbars apply what I
called magic before: check for each item if it is disabled.
A toolbox, the base class of the toolbar, does not do this.  Disabling
commands looks like feature that was well meant but poorly
implemented.


The solution to the problem of disabled commands is dictated by
pragmatism.  The Symphony implementation obviously is not very
good.  But there is not enough time to refactor every panel.
Because I forgot to change the owner of this issue to me I saw
your last comment a bit late and have created a "solution"
similar to the svt::ToolboxController.  I have to check if I can
switch to that without spending too much time on it.  And due to
time constraints I can at the moment only convert the text
property panel.  I am not happy with this, but bringing all panels into a state
that we are all happy with would take weeks or months.

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

Reply via email to