- if set on import - reuse
- if not set - guess to be sure we show default styles
when document was built from scratch
- do not force non-used automatical styles to be always visible
- styles like "Heading" are automatically added when we
use some ODT file
- on DOCX side there is no matching style and we assumed
it is a custom style and should be "favourite"
Change-Id: Ifc2b704b8051f93d46a783ef90ecd18e8fcf273d
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1345
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 9cb18a05167ff6a079a649956cca969df4564927)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206359
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
- setings.xml has property called stylePaneFormatFilter
- it can be used to setup default filter for visible styles
- for example we can show all of them or only the ones stored
in current document
- preserve more attributes of the mentioned property on export
- ordering is important stylePaneFormatFilter should appear
before other nodes to pass validation
- do not shortcut hex values 0000 -> 0
Change-Id: I0bd3f4b64172d9a022f69f4c73e17b017a0f5182
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/601
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit d3795dcdfbe9d4fa6a68eb7969e5c802d78dcd7e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204878
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
- disable name reassignment ued for uitests in LOK
- it is not supported and fails on asertion
- EditFieldDialog had wrong order of items (buttons on top)
Change-Id: I111918b808901cfa7b4020c7c352d969ce76d032
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196356
(cherry picked from commit 3532b81f367cdbe9ed73cca1cee3c2c2381f8dae)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196527
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
- similar as in commit cee5c21e0c8c64c78e5d04ff4e300edfaac30404
Writer: iterate styles to show also favourite in the notebookbar
- make sidebar list similar
- use deterministic alogithm without number of default styles
depending on how much used styles are in the document
- do not sort entries to show in natural order
(we can try to introduce priority inside iterator)
- show all favourite, user defined and used styles
- helps to use defined template and follow style guidelines
as we see customstyles which are not yet used too
- both sidebar and notebookbar users see the same list
Change-Id: Iae81aeaf99a8f60f5ed14eb63960ee38f76bcaa1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196226
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196276
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Followup for commit 8e59e9b4fa916e702bb54b963e2cfd75cce1c0e9
notebookbar: move slide transition pane
Fixes case:
- open 2 views of Impress LOK
- close one view
Result: assertion
7 0x000073fd447f1769 in std::operator==<sd::tools::EventMultiplexer>(std::shared_ptr<sd::tools::EventMultiplexer> const&, decltype(nullptr)) (__a=...)
at /usr/bin/../lib/gcc/x86_64-redhat-linux/14/../../../../include/c++/14/bits/shared_ptr.h:561
8 0x000073fd447ee1ca in sd::ViewShellBase::GetEventMultiplexer (this=0x346a41b0)
at /media/dev/libreoffice/sd/source/ui/view/ViewShellBase.cxx:940
9 0x000073fd442c202e in sd::SlideTransitionPane::removeListener (this=0x3526f8f0)
at /media/dev/libreoffice/sd/source/ui/animations/SlideTransitionPane.cxx:930
10 0x000073fd442c1d1b in sd::SlideTransitionPane::~SlideTransitionPane (this=0x3526f8f0)
at /media/dev/libreoffice/sd/source/ui/animations/SlideTransitionPane.cxx:455
Change-Id: I67b3eb8fa9508470d854790ae3c740b0909e1654
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189034
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196223
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
- the GrabBag values don't change after import much
- better to parse qFormat once and setup favourite value
we can cache and return quickly when requested
- it is more efficient than checking grab bag every time we do
iteration over styles
Change-Id: I7b54831a84cd6528a40cf853f0d4f5061f05af82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194442
(cherry picked from commit 9fc06b81e954d91a63f80a54953d636139426ee2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194803
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
- qFormat - specifies if style should be shown in more prominent places
in the UI even if unused
- we show it in that case not only in all styles in sidebar, but also
in the notebookbar style previews
- this is Writer specific, implemented on sw/ style iterator and SwFormat
level
- XStyles is interface common for all modules but in fact we do per module
implementations it seems and there is no sense to propagate that value
everywhere
- currently we have also qFormat export so just reuse grab bag value
Change-Id: Iee8f35a3e575c3c1caf6c67f8b489d7d64932cf5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193398
(cherry picked from commit cee5c21e0c8c64c78e5d04ff4e300edfaac30404)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194550
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Followup for commit 5a60035508
tdf#169531 QuickFindPanel: Make result label shorter and easier to scan
It unifies the singular form in case of only one entry.
Change-Id: I6e629b12838c32497d17397243518e91fdbb4a60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194505
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Tested-by: Jenkins
- enabled font effects panel
- enabled text columns panel
- ignored: placeholders, sheet tabs mirrored, etc.
found in the CI logs:
warn:vcl:2974280:2968053:vcl/source/window/builder.cxx:206: UI file not enabled for JSDialogs: svx/ui/sidebartexteffect.ui
warn:vcl:2974280:2968053:vcl/source/window/builder.cxx:206: UI file not enabled for JSDialogs: svx/ui/sidebartextcolumnspanel.ui
warn:vcl:2974280:2968053:vcl/source/window/builder.cxx:206: UI file not enabled for JSDialogs: svt/ui/tabbuttonsmirrored.ui
warn:vcl:2971224:2968053:vcl/source/window/builder.cxx:206: UI file not enabled for JSDialogs: sfx/ui/extrabutton.ui
warn:vcl:2971260:2968053:vcl/source/window/builder.cxx:226: UI file not enabled for JSDialogs: modules/simpress/ui/tabviewbar.ui
Change-Id: I4bc312a2cf8e521f0cca380245dbb55847e9d4b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190312
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194014
Tested-by: Jenkins
The menu wasn't available in the LOK case due to missing JSDialog
enablement and doesn't seems to be useful.
It caused problems:
- open calc
- open navigator
- right-click any entry
result: non-async dialog is opened in the core but not visible
cannot type anything
Change-Id: Iebf0e5f6ad06ef676931f4b9b18a168b6b9ec58a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187342
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
if we have frame which is dynamically enabled or disabled
- we update state of all widgets inside.
we need to send update not simple action for jsdialog now
as client will only update the witget with mentioned id
not full structure below
this also uses more detailed type for Position and Size tab in Impress
frames to not use generic Widget wrapper and target with this bigger
update
Change-Id: I973cb959e8f6add40df53ea6e523424ce8bca1ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185791
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit e7fb2df1f8ff80753c9f336a9cf81ca56695b1a8)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185874
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
This is followup for commit df8941ee5b
tdf#163805: set fill style to solid on fill color selection
When we have shape in Impress/Draw with solid fill color and we
then use .uno:FillColor with "-1" (transparent) color, we should
reset Ffill style to NONE. That makes shape transparent.
Previous commit was doing something opposite: add SOLID style
when color is used.
Change-Id: I72bc8a81bc75941f337ed68125536f771c3e7d89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184961
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185808
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
- checkboxes exported XLSX -> XLSX become invisible in both LO and MSO
- the file inspection shows we used 0 as a value for all the anchor
properties (from and to) in both sheet1.xml and drawing1.xml
- we used maAreaFrom/To which are calculated if XBindableValue
and SC_SERVICENAME_VALBIND are supported in the control model
in the XclExpTbxControlObj
- we can fetch these values directly when saving checkbox form XShape
- it can be noticed we lack other properties too - for background color,
to do later as this already makes it usable
Change-Id: Icb833b6943df7d73aad7414f8a115351ea4c7d05
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185714
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Panel was shared id in the past (we needed to be able to trigger
refresh for initial mobile-wizard where no welding was done).
So we needed the same id to catch any instance and do a full update
of a sidebar.
Now we have welding so we can use single widget as target
and avoid sending full JSON on context change. Show/Hide
panel functionality should be used now and thanks to that
save some bandwidth.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib564b608cb4de04185fb89832ad00bea9bcc10bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184717
(cherry picked from commit 846d0465b4d7171b096bf19436bd53848d9f8bb9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184748
Tested-by: Jenkins
Name FN_PARAM1 in calc so it is clear what it does.
It is used as DontTerminateEdit indicator used eg. in
LOK case when we do saving in the background. In Impress
when we edit textbox and close presentation - sometimes it
is not saved because we didn't press Enter to commit the change
inside. In LOK case we want to save the content to not allow
data loss in unexpected connection close.
Change-Id: Ibcdcd4a0d52eb36e0b1004971dcb73f58c35459e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183652
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit ff47a1657d3fb9ac89824566f5b7b8899a72587b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183826
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
In the past we used UI testing not welding for user interaction
and updates so it was needed to send full update after every change.
Use shortcut to avoid unnecessary operations.
Change-Id: Ib3715e2287d6cc8b70db495b93cf09dd9aa20b14
(cherry picked from commit 6fd6fc9d351527059d7a7ded3155f772c5e0982a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183188
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
All used fields are mandatory so fetching them using ::at
Change-Id: I15c9b96c2aae42d49c726ea4e0448befab852a09
(cherry picked from commit 658bea27f47e66aba625f1e3c2613781daaec14d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183124
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
It is done in lok client, do not introduce
additional state in core part.
Also config modification is costly so good to avoid.
There was rule to always open ElementsDeck in Formula context.
Move it to a dedicated map with overrides.
We need to not skip context updates when enters OLE second time.
Introduced in commit 81055959e0
lok: Avoid redundant call to UpdateConfigurations
But it has negative performance impact - causing to switch decks
on every key press when 2 users are typing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie20181db013a2b7ea1cbb8245b301e55260b8c0d
(cherry picked from commit f0e226a0057cbbb8904bd8046febf31f7c65d936)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183123
Tested-by: Jenkins
This reverts commit 90a63a2325e45b435762570ac9aecd50fcb5b676.
lok: use .uno:SidebarDeck.StyleListDeck as shortcut
it caused regresison in Writer where we should still open the
Style Edit dialog. Only Calc should open style list.
Change-Id: Ia8844330e8f91ef56864ae78b18d5ce57a146c58
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
(cherry picked from commit 0f57885a3cf63af68bf07b14c5296e14ef0ad4c4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182807
Tested-by: Jenkins
- no functional change
- move executor to separate functions
- make factory just for decision making which function to use
- we need to use some functions for many types
Change-Id: I5b54e90a6feb86bcda97d37c4cfff36a371efb5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180540
(cherry picked from commit 7d23b904222ebe82b72dc919bf1aada2d55b35cc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182514
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
Do not break the loop early if not found a widget.
We need to go up sometimes. Fixes regression from
commit 13af671fda1317175a93fd747e5455ce897ed167
jsdialog: share code for widget registry
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5516c0708452e95b2b6067e3a1fb99582b47dcf7
(cherry picked from commit 90f836f5ef250c586fe9d58637ae15dee305edb7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182537
Tested-by: Jenkins
EditStyle command was causing the sidebar to close in lok
case and it was not possible to open it again.
Let's use dedicated command for opening the sidebar deck
with styles navigator.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idf6bbfa8676127ef72699c68ed6a778881c07030
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182442
(cherry picked from commit 90a63a2325e45b435762570ac9aecd50fcb5b676)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182509
Tested-by: Jenkins
- single click activation
- no additional ok button in the dropdown
- no label
It's not common that dropdown has to be confirmed using button
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib5ad5509f99466710cd898bf0baedeac8fdb49ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182512
Tested-by: Jenkins
If we first select lat row, then try to select some top row
in LOK -> we will not get correct result for popup menu
as the coordinates will be negative and we will also fail
on assertion. We need to scroll row to be visible first
Change-Id: Ib8a76eff093817fe7e3a777aa8cecf1246fae25f
(cherry picked from commit 62b81789a7c16925c4b15692e40b1da6badb73d1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180509
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
This reverts commit ddb454bb80622a2fd625bc09af8a66b025b0739f.
lok: sw: fix PageDown position when cursor is not visible
It caused sending of incorrect cursor position during tile rendering
in LOK case - LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR while
`SwCursorShell::VisPortChgd` <- which is used eg. in the PaintTile to
make interesting part visible:
```
libswlo.so!SwCursorShell::VisPortChgd(SwCursorShell * this, const SwRect & rRect) (sw/source/core/crsr/crsrsh.cxx:1800)
libswlo.so!SwViewShell::PaintTile(SwViewShell * this, VirtualDevice & rDevice, int contextWidth, int contextHeight, int tilePosX, int tilePosY, tools::Long tileWidth, tools::Long tileHeight) (sw/source/core/view/viewsh.cxx:2034)
```
There are 2 problems:
1. It generates and sends it just-now, not using the optimized delayed version `SfxLokHelper::notifyUpdatePerViewId`
2. Even more important: rendering tiles shouldn't cause cursor movement/invalidation
Change-Id: I2315cf7dd5575586276b86ca5285d6c5b15ff73a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177520
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179613
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
- we need to setup correct notifier
- enable context menu in the style sidebar in Writer
- handle menu actions
- base of vcl::Window and PopupMenu is VclReferenceBase
- prepare template function sendMessage to handle both
Change-Id: I54c8dc468856c0f98495bdaf4ddd504c2f56562f
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178319
Tested-by: Jenkins
builder file is already very long, let's split that
no functional change, just moved code to new file
Change-Id: I12dcb8cbc8a17091282b557f459f07510a016af9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178302
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
- we mostly do the same thing for initial values
- enum already have "subtypes"
- let's do it in one switch
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0f9280168569067fde1758e3577d564f5e63172c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178290
Tested-by: Jenkins
- weld::Menu doesn't have base with weld::Widget
- use separate container, only one menu per WindowId
- first only send menu and cancel, when user activates
option we will send another request and execute entry
as menu can be blocking
- there is connect_activated way of async setup too
Change-Id: Iea03f82a91ecc19af67b91f85364675c119056ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177722
(cherry picked from commit efeb511607dacce991866bcf328c96a01ab594f9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177852
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
we need to be aware of hidden slides to make correct
decision when doing "start from current slide" based
on the slide number
Change-Id: Ib4944c699fa2589026e4d8ae57766c83e0439d49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177775
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
this is temporary fix for caching the old values in
the text fields like page number. to be removed, we
need separate layers with awareness of fields
Change-Id: I74d8186441912ad110bff4bc6f46faff79a20cd8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177664
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
When we save - we block UI. In the lok we disable that for
some cases like in commit e005690e9c648ce516c1ed60da6341c7215bf2c9
lok: avoid sending jsdialog messages during background save.
But we also use save file to generate previews of shapes what happens
on eg. resize in Online. Then we trigger disable and enable cycle
for frames - and we end with FontNameBox enabled!
That was causing the JSDialog combobox still being locked - because
frame unlock was using direct VCL API, not weld:: one in the
InterimItemWindow. Let's fix that with proper StateChanged handling.
So now it is functional. But still I think there is some error in the
logic - as after save we should beg the "before save" state of control
not "always enabled". But it's different problem.
Change-Id: Ia8e5c8c864156271b5f68d482234e83eb57b0deb
(cherry picked from commit cbe229ec219e56ce1bb5dd9598f9052a98504249)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177489
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reverts "PVS: V547 Expression 'bNoDictionaryAvailable' is always false"
This reverts commit 816b51c7a9.
It removed the message completely from the code while, we should
fix it rather by using correct condition.
It was somehow too aggresively limited in commit f200dd5cb84681558700c49de0969907f78f8db1
tdf#86731 Don't show 'start from beginning' when dictionary is missing
Change-Id: I5f4b859047216399a09c7aefb8a47244c4833df5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177271
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>