Give a uno api that allow - show/hide the sidebar - get Decks collection - get a Deck, show/hide/enable, move it in the sidebar, change its title ... - get Panels collection for a Deck - get a Panel, move it inside the deck, expand/collapse, change title, get XWindow ... this api may be enhanced if necessary change the sidebar paradigm from global to per document
a first proposal is on gerrit https://gerrit.libreoffice.org/#/c/15856 (see commit comment for first example) heavy review needed focusing on - correctness of c++ use - validity of the api approach
Set it on New - Thanks a lot for your work Laurent :) Sophie
added patch in keywords
add unit test patch https://gerrit.libreoffice.org/#/c/16180/
Laurent Godard committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=a64999511ae654131d997eec9a3d78478cfc1c75 new uno sidebar api tdf#91806 It will be available in 5.1.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Laurent Godard committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=187445b2d2885ced92be37ffb11cd2a9bb11f8d6 Uno api sidebar unit test tdf#91806 It will be available in 5.1.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Hi Laurent, From your description, it seems the API will allow a developer to manipulate various parts of the sidebar, but will it allow a developer to rearrange controls (buttons, textboxes, etc) within a panel? (In reply to Laurent Godard from comment #0) > change the sidebar paradigm from global to per document Can you clarify what this means.
Hi for some example of the API, maybe have a look at (pyuno) unit test http://opengrok.libreoffice.org/xref/core/sfx2/qa/python/check_sidebar.py XPanel:getDialog() should give you access to the XWindow dialog that contains UI elements maybe have a look at http://opengrok.libreoffice.org/xref/core/offapi/com/sun/star/ui/XPanel.idl#81 regarding global versus per document changes initially, the sidebar redraw itself at each deck changes (load, draw panels and forget their expand/collapse state) one other problem is that having 2 documents, with a sidebar, opened on the same deck, changing something in panel states in one document occurs also in the other. moreover, with "shared decks" this also comes accross context (eg. property panel for writer and calc) the main problem remains that destroying panels at each deck changes looses users configuration so, now, for each document (controller), the sidebar -> deck collection --> panel collection is defined. deck changes only hides the panels and do not destroy all previous state. It allows then to go back and forth among all decks and have the correct panels states (expand collapse and order) /me hopes it is clearer i'm totally opened to improvement suggestion
Hi Laurent, Thanks for the explanation about the sidebar per document, as that is very useful for users who use the sidebar and work with multiple documents. About the XWindow and XPanel part, unfortunately i dont have the necessary developer skills to know what is capable there.
I guess we can close this bug as we now have a Sidebar API. If there are further enhancement suggestions to the API, please file new bugs for that.
Seems to be the cause for regressions: Bug 113173 Bug 99537