Make the `pWindow` param for `ImplFindDlgCtrlWindow`
a const pointer, which removes the need to
`const_cast` when calling the function in
Window::getLegacyNonLayoutAccessibleRelationMemberOf.
Change-Id: I2225f5c4be33060c1e3fddd5e83760e68856585d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177245
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
ViewShellBase is the SfxViewShell and is the analogue of the equivalent
writer/calc SfxViewShell's, while a DrawViewShell is one of multiple
sd::ViewShells that can exist inside that SfxViewShell
Issue:
* When creating new shell instances, background color is fetched from application configuration.
* When multiple users are active on an Impress document, if one switches to notes view, a new shell is created.
* Background color for the new shell is fetched from app colors.
* If another user has switched to dark mode, the user which just switched to notes view, will see dark mode for their background.
Moving the SdViewOptions options down the ViewShellBase means that
multiple sd::ViewShells hosted within that ViewShellBase share the same
view settings.
Change-Id: Id875260dda89311ab8029ead08b47f80fd14604f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177253
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
+ 'Records:' to 'Compare by:'
+ if row is selected in 'Compare:', 'Header:' checkbox should be labeled as
'Data contains column headers' and vice versa for column
Change-Id: Ic9dfbab9a5636312c40b6945af3abdcd9b190310
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177230
Tested-by: Jenkins
Reviewed-by: Sahil Gautam <sahil.gautam.extern@allotropia.de>
Dispatching .uno:Line in LOK mode inserts a line shape with defaults at
the center of the current slide, but dispatching .uno:Bezier_Unfilled
starts an interactive mode where the preview is not exposed in LOK, so
looks weird.
.uno:Line works because DrawViewShell::FuPermanent() actives the "create
directly" flag for SID_DRAW_LINE.
Fix the problem by doing the same for SID_DRAW_BEZIER_NOFILL in the next
block: we get a curve shape with reasonable defaults with this.
If an interactive curve drawing mode is wanted for LOK in the future,
then that would be handled outside LOK anyway, with taking the already
drawn curve's properties at UNO command dispatch time.
Change-Id: I03feded76578575ecfbd4a0d79c7ca1a31e37093
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177250
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
the more complex label-for/labelled-by only need to get used
when when using something non-standard as a "label"
Change-Id: Ibbe13b868622646e20357703e31cfc26e31fac7a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177238
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
we need to keep the order correct, especially
when we have stacked shapes which are animated
and some are non-animated.
in case:
non-anim
anim
non-anim
anim
don't allow to join non-animated layers into one
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic5d94478b691a80fd62853946ebedec075963f44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173116
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177236
Tested-by: Jenkins
be sure we don't overwrite the real "visibility"
value when other property is read
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ied2285e8183665b5b48d10d74e1cc052cf8edcbe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173110
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177235
we still take color from the JSON
Change-Id: I6b83cc8aaaa3e9127d85ec06589bac7ed4472f71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173083
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177227
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
...alongside each other are identical.
Started when a call inbetween was removed in
e50f6c0239.
and
V1053 Calling the 'EnableRTL' virtual function in the constructor
...may lead to unexpected result at runtime.
and
V1051 Consider checking for misprints. It's possible that the
...'nTopPos' should be checked here.
V1028 Possible overflow. Consider casting operands of the...
'nStartCol + 1' operator to the 'sal_Int64' type, not the result.
Change-Id: Ided25ab6dc9e9d4a1c72a1b809de586c7b890ce0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177218
Tested-by: Jenkins
Reviewed-by: Aron Budea <aron.budea@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The idea of IPDFEncryptor is to be the interface to encrypt the
stream/string in the same way, irregardless which PDF encryption
version/revision we are using.
Change-Id: Ie7835384f1be5a44c53985b01c8187323400aa0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176890
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
it has to match convertTarget result from unomodel.cxx
which is used on export of animations
Change-Id: I61df0b82681628722516c17c110acd90ce25b881
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172875
Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177223
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
second identical branch was added in
d519cbe892
and
V530 The return value of function 'GetTitle' is required...
to be utilized
the unnecessary GetTitle() call that was duplicated in
d519cbe892 was there since
9ae5a91f79 (initial import)
Change-Id: Ied25faf177184cc1b1ca4a512285232bf966c1e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177209
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Reviewed-by: Aron Budea <aron.budea@collabora.com>
instead of using margin property in .ui where size_request
doesn't take such margins into account, while pref_size does.
Change-Id: I7c557fd63c438515814ad32b9627895c27c13b81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177213
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Call weld::Expander::signal_expanded when the
QtExpander expanded state changes, e.g. when
its button gets clicked.
In order to do that, introduce a signal in
QtExpander and connect to that in
QtInstanceExpander.
With this in place, a breakpoint in
weld::Expander::signal_expanded now gets
hit as expected when (un)expanding the
expander in the "Set Password" dialog triggered in Writer
using "File" -> "Save As", check "Save with password"
checkbox and press "Save" when using the qt6 VCL
plugin with SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
This implements what was mentioned as still
missing in earlier commit
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 01:20:31 2024 +0100
tdf#130857 qt weld: Add QtInstanceExpander
as
> Signal handling still needs to be implemented
> (calling `weld::Expander::signal_expanded` when
> the expanded state is toggled).
Change-Id: I9cd1b2cc99018f84ba930d55399953266119bed0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177199
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Declare support for the "Set Password" dialog that can
be triggered in Writer using "File" -> "Save As", check
"Save with password" checkbox and press "Save" to trigger
the dialog.
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
This makes use of QtInstanceExpander added in
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 01:20:31 2024 +0100
tdf#130857 qt weld: Add QtInstanceExpander
Currently, I see a small rendering issue when
opening that dialog and expanding the expander:
The "Enter password to allow editing" and
"Confirm password" label text is a bit cropped.
It's shown fine when manually enlarging the dialog a bit,
however.
Change-Id: I37775fa3a39d621696d2a6aaa49bd11d6cfb9350
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177198
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Add a new QtInstanceExpander class that is the
weld::Expander implementation using a native
Qt widget. It uses the custom QtExpander widget
added in
Change-Id: Id2366834cb542eba613ea087e70f3a812d20fa89
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 00:07:44 2024 +0100
tdf#130857 qt weld: Implement "GtkExpander" equivalent
Extend QtExpander to provide what's needed
to implement the QtInstanceExpander methods.
Let QtInstanceBuilder::weld_expander return an
instance of the new class.
Signal handling still needs to be implemented
(calling `weld::Expander::signal_expanded` when
the expanded state is toggled).
QtInstanceExpander is e.g. needed by the "Set Password"
dialog. ("File" -> "Save As", check "Save with password"
checkbox and press "Save" to trigger the dialog.)
Change-Id: I7e3a332c0417b1897ae57d7d4c29609245fb5e19
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177197
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Now that "GtkExpander" support has been implemented,
declare support for the "Safe Mode" dialog that can
be triggered via "Help" -> "Restart in Safe Mode"
and confirming with "Restart".
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
Change-Id: I67ef04356a5147c24442cd3ec84e4bbc644b3a71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Switch the order in which the children of the grid in the
.ui file are defined so that the order matches the visual appearance,
which makes sure that tab focus order with the Qt-based VCL plugins is
correct as well in that dialog when using native Qt widgets after
support for that dialog was added in
Change-Id: If30736e70172c6b25feee0072c952274754aa81e
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sun Nov 24 00:22:26 2024 +0100
tdf#130857 qt weld: Support "Document in Use" dialog
See
commit 02692566ad
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Oct 24 17:43:35 2024 +0200
tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in order
for more background.
Change-Id: Ie18c7b91911fea612167510e9bb098d63e1e9227
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177195
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Declare support for the dialog shown when trying to
open a file that's already opened by another user
(or more exactly, for which a lock file suggesting
that it's opened by another user or LO instance
exists).
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.
This is the first supported dialog making use of "GtkNotebook"/
QtInstanceNotebook, i.e. of what was implemented in previous commit
Sample steps to see that dialog:
* start Writer, save document as /tmp/test.odt
* kill LibreOffice
* open the lock file ( /tmp/.~lock.test.odt# ) in a text
editor and change the user name to a dummy one, save.
* start LO with qt6 VCL plugin and try to open the document
Change-Id: If30736e70172c6b25feee0072c952274754aa81e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177194
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Implement support for "GtkExpander" objects in .ui
files. As Qt doesn't seem to have any equivalent, add
a new QtExpander class that subclasses QWidget and
has a button that can be used to toggle visibility
of the widget that is the GtkExpander's [1] content child.
For a visual appearance similar to GtkExpander,
set an icon for the button ("go-down" and "go-next"
from the icon theme, which are arrows like the ones
shown on a GtkExpander, at least with the Breeze
icon theme).
In QtBuilder, implement handling for "GtkExpander"
objects:
* Create an instance of the new QtExpander
class.
* Identify the content child, which can be distinguished
from the label child by the fact that the latter
has a "label" child type set, see also previous
commit
Change-Id: I3e308a6642d72b55d0ccc597dac716b236c22d61
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sat Nov 23 20:54:47 2024 +0100
tdf#130857 Pass child type to WidgetBuilder::insertObject
* Erase the "visible" property for the content child,
as otherwise the content widget would be initially
visible even if the expander is set to not be
expanded. (QtExpander takes care of this, so
ignore the property set in the .ui file.)
* For the label child in GtkExpander, simply take
over its text to QtExpander's button, then mark
the label for deletion, as it's not needed
otherwise.
Support for the "Document in Use" dialog that
has a GtkExpander and thuse makes use of this
will be declared in a separate commit.
[1] https://docs.gtk.org/gtk3/class.Expander.html
Change-Id: Id2366834cb542eba613ea087e70f3a812d20fa89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177193
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
weld::Window::set_centered_on_parent only ever gets
called for weld::Dialog instances, so move it to the
weld::Dialog subclass.
For the Qt implementation, no longer trigger an assert because
of the method being unimplemented (doing nothing), as QDialog
opens centered on its parent toplevel by default.
Quoting from the QDialog doc [1]:
> Note that QDialog (and any other widget that has type Qt::Dialog) uses
> the parent widget slightly differently from other classes in Qt. A
> dialog is always a top-level widget, but if it has a parent, its default
> location is centered on top of the parent's top-level widget (if it is
> not top-level itself).
(API for moving a QWidget to a different position like
QWidget::move [2] exists, but would only work on X11/XWayland,
not Wayland.)
[1] https://doc.qt.io/qt-6/qdialog.html#details
[2] https://doc.qt.io/qt-6/qwidget.html#pos-prop
Change-Id: I14d41f91e5297c6e58cb4edb2ee98f19814d45cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177192
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
In WidgetBuilder::handleChild, pass the child type
not only to WidgetBuilder::tweakInsertedChild, but
also to WidgetBuilder::handleObject (add a new param
for that) and from there down into the virtual
WidgetBuilder::insertObject, so it can be evaluated
by subclasses when creating new widgets.
While it is not used yet, an upcoming commit will
make use of it in QtBuilder, in order to distinguish
between the two "GtkExpander" children: the label and
the actual content child.
As described in the "GtkExpander as GtkBuildable" doc [1]:
> The GtkExpander implementation of the GtkBuildable interface supports
> placing a child in the label position by specifying “label” as the
> “type” attribute of a <child> element. A normal content child can be
> specified without specifying a <child> type attribute.
[1] https://docs.gtk.org/gtk3/class.Expander.html
Change-Id: I3e308a6642d72b55d0ccc597dac716b236c22d61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177191
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
mimetype must not be zipped, just stored.
mimetype was correctly stored with the first zip command,
but mimetype was also present in the files list on the second zip command.
This patch remove mimetype from the files list of the second zip command.
Change-Id: Ie66f06103bbad2700eee4986df878b9ebd4c0a09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175930
Tested-by: Jenkins
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
So the setting fetched at ctor time for UserInstallation (and
BRAND_BASE_DIR) may no longer be true, so expanding variables based
on those earlier seen values results in unwanted paths.
add XInitialization to SubstitutePathVariables (like done for
PathSettings) to allow reiniting these explicitly once.
Change-Id: Ia930ea71cb09adc91d6d47ee047c44b24222e8a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175961
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 410f6b50eb44276b1d2095c844244ef4d0ddefaa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177109
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
On macOS, flushing with Skia/Metal is noticeably slower than
with Skia/Raster. So lower the flush timer priority to
TaskPriority::POST_PAINT so that the flush timer runs less
frequently but each pass copies a more up-to-date offscreen
surface.
Unfortunately, lowering the priority causes tdf#163734 to reoccur.
When a dockable window is dragged by its titlebar, a rectangle
may be drawn in its parent window. However, the Skia flush
timer doesn't run until after the mouse button has been
released (probably due to lowering of the Skia flush timer's
priority to fix tdf#163734). So run the parent frame's Skia
flush timer immediately to display the rectangle.
Change-Id: I289eab85a087cb76a751dc6b777342b8dee49e1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177190
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
Tested-by: Jenkins
... which is also used in queryAlternativeSpelling
Change-Id: I7f0bbbc6e598d56156efe1446f422f9674ed6f25
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177187
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This reverts commit 16a5ae7c90.
It seems to break public API.
Change-Id: I0ef2c6e975b4cf20b9894ddf33f36444e2230ca4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177168
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
And drop EPosition, which duplicates EPaM, except for its default
ctor (used in a single place).
Change-Id: I48bb6dafcba84465d61579df0ec71b815945532a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177075
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins