Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.
Change-Id: Ifbd413fc8dcfe5e453a0fef8a04f3c396af4c836
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195781
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.
This also prepares for moving weld::TreeView
to its own header in an upcoming commit.
Change-Id: I7f525d435d40ab0e1b5d8cff316ec7b3c3728e70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195780
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This is in preparation of moving code out of weld.hxx
to separate headers/source files, in order to make it
easier to keep an overview and to avoid having to
recompile ~all UI code when anything changes.
Also move weldutils.cxx to a new vcl/source/weld
directory.
Change-Id: Ia75b42f21e560dd248307282a522f186a64cd742
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195777
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the weld::TreeView-specific logic for signalling
CommandEvent of type ContextMenu and reuse the existing
logic implemented in the weld::Widget base class instead,
which was moved there in previous commit
Change-Id: I9367bdbb8be7994057667fab539aaf135751e063
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Dec 10 23:08:21 2025 +0100
tdf#130857 weld: Move CommandEvent handling to weld::Widget base
Make weld::Widget::connect_command virtual to override
it in GtkInstanceTreeView, as was previously the case
for the now dropped weld::TreeView::connect_popup_menu.
The existing handlers previously connected using
weld::TreeView::connect_popup_menu already check whether the type
of the event is CommandEventId::ContextMenu, so no change in behavior
is expected.
In a quick test, the sample scenario of the template dialog as
described in
commit 5d28767654
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Dec 9 20:13:07 2025 +0100
tdf#130857 qt weld: Forward TreeView context menu event
still worked as expected with gtk3 and gen as well as with
an experimental branch for qt6 where support for using native
Qt widgets for that dialog is declared.
Change-Id: I13baf51eda2c9f0adc9c167ab50e920d23ada07e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195415
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Replace by operator[], begin() and end(), which don't have overhead
since commit 2484de6728 (Remove non-
const Sequence::begin()/end() in internal code, 2021-10-15)
and commit fb3c04bd19 (Drop non-const
Sequence::operator[] in internal code, 2021-11-05).
Change-Id: I221470b3439bb0dc6e7705b0d99deb3cd2063484
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195176
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Introduce a new UNO command, ".uno:ExtensionManager",
which is used to open the "Extensions" dialog from the
menu, notebookbar and using the keyboard shortcut
(Ctrl+Alt+E) instead of specifying the service name
"service:com.sun.star.deployment.ui.PackageManagerDialog"
in their configuration directly.
In a first step, handle the new UNO command in
SfxApplication::MiscExec_Impl by creating an
instance of the service by its name and executing the dialog
using the css::task::XJobExecutor interface without any
additional changes.
This matches what the previous way of triggering
the dialog would have done, i.e. no user-observable
behavior is intended yet.
This prepares for further changes in upcoming
commits, in particular passing a parent for
the dialog.
As documented in icon-themes/README.md, make sure to
have icons with the expected names, which is e.g.
used in the "Tabbed Compact" UI variant of the Notebookbar.
(Link to the already existing icons.)
Change-Id: I4b381b5f0b7cddd9f0aa9abd9b88c1c4364ab824
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193580
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This .ui file gets used in the window that can be triggered
using "Tools" -> "Macros" -> "Edit Macros" from Writer.
Change-Id: Idbbcbdcc73f70b20047fa9bb741873a49ba02d9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193728
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
After recent commit 851fb75779
recheck these directories in include/ again
to test drive the new --headersfwd mode of bin/find-unneeded-includes
Change-Id: I0ede437c4f9958cd98210ed1760a5b98ea8bd1ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192377
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
... in line with previous commit
Change-Id: Ib2b0d83b1a40b121660ffe04baf3eeb0bebe0da1
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Nov 5 17:44:57 2025 +0100
gtk3: Require GTK >= 3.24
that makes it a requirement in code.
Change-Id: Ib2b9e6da2a834b0d9ddddd6b8a64142b8b5de153
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193478
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
and
cid#1667145 Variable copied when it could be moved
cid#1667144 Variable copied when it could be moved
cid#1667143 Variable copied when it could be moved
cid#1667142 Variable copied when it could be moved
cid#1667141 Variable copied when it could be moved
cid#1667140 Variable copied when it could be moved
Change-Id: I5e4acc28071623a8676d83521f445c3c127de6ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192650
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
Avoids the console noise and the overhead associated with needless
image loading attempts.
There are some menu items added from code, that are not handled by
the patch: e.g., .uno:ToolbarLock.
Change-Id: If94cad97207e46125083c56882c284e0993f43f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192638
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This patch brings the Object Browser's information panels to life,
activating the main details pane and the bottom status bar.
When a user selects an item, the details pane now displays a rich,
formatted view of its properties, such as its full signature or a summary
of its contents. The status bar provides helpful context, like member
counts, and displays the total time taken for the initial data load.
(GSoC 2025 - Object Browser: Rich Information Display)
Change-Id: Iadbc2f3dfeb8eba357558d8a98e7ef663a3e2683
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192079
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
This patch brings the Object Browser's right-hand members pane to life.
The right pane now supports on-demand expansion for nested UNO types.
Double-clicking items now performs a context-aware action: opening
the relevant Doxygen API page for UNO types or navigating to the
source code for BASIC macros.
(GSoC 2025 - Object Browser: Right-Pane UI Enhancement)
Change-Id: Ibcc2a0479746f3724372c9bd89853626506d42f3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192050
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
This patch brings the Object Browser's user interface to life. It
connects the left navigation pane to the right members pane.
When a user expands a node on the left, its children are now loaded on
demand to keep the UI responsive. When a user selects an item, such as a
module or an interface, its members are now fetched and displayed in the
right-hand pane.
(GSoC 2025 - Object Browser: Member View and UI Logic)
Change-Id: I199ebcac20590d1a1ca83ef3ee7759ff34504252
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191923
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
This patch brings the Object Browser's scope mechanism to life. It
connects the UI's "Scope" dropdown to the data provider, allowing the
view to be filtered between "All Libraries" and "Current Document".
The browser now also automatically updates its view to reflect the
currently active document when in "Current Document" mode.
(GSoC 2025 - Object Browser: Scope Activation and Dynamic UI)
Change-Id: Icd3679330c9b05eaa0cb351d81fd4d2415f91d71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191886
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
This patch introduces the core data-fetching logic for the new Object
Browser. It implements the logic to scan all available UNO APIs and to
preload BASIC libraries.
For this foundational patch, the data initialization is performed
synchronously. A subsequent patch will refactor this into a non-blocking,
asynchronous operation to keep the UI fully responsive.
(GSoC 2025 - Object Browser: Data Provider Implementation)
Change-Id: I46446fc498820d9776d77ba25c4fa3fd4ca89a8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191405
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
The *32 methods were initially introduced in a series of "Basic Modules > 64K"
commits (2003), in addition to the pre-existing [GS]etSource methods. Then, in
commits d41b8ac9e5 (callcatcher: shave off a few
more, 2015-02-02) and 919375354c (GetSource32
and GetSource are identical, 2019-12-09), the original methods were dropped.
Now the '32' suffix to the methods makes no sense.
Change-Id: I9dc172ce973b1b49511518f184d174ea68227cdf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192086
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This patch integrates the user interface for the new Object Browser.
It introduces the UI definition file and the C++ logic to create,
display, and manage the window's lifecycle within the IDE.
(GSoC 2025 - Object Browser: UI Shell Integration)
Change-Id: I9a2d7c319a7590e44eafe3d575eb3b0aeffb7e86
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191206
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
This commit introduces the core data structures and minimal C++ class
definitions for the new BASIC IDE Object Browser. It establishes the
necessary foundation for the feature, allowing the code to build cleanly.
The actual logic for the UI, data fetching, and other features
will be implemented in subsequent, focused patches.
(GSoC 2025 - Object Browser: Core Data Structures)
Change-Id: Ibd9bb6be0adf579d156662bf33565de497187a55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189934
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
and
cid#1662041 Variable copied when it could be moved
cid#1662040 Variable copied when it could be moved
cid#1662038 Variable copied when it could be moved
cid#1660211 Variable copied when it could be moved
cid#1660147 Variable copied when it could be moved
cid#1660117 Variable copied when it could be moved
cid#1660071 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1659985 Variable copied when it could be moved
Change-Id: I34627585e593f9de6bfa195ee0617848d9ed6135
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189157
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
This is a similar change to previous commit
Change-Id: I86754be7c0ce068ceb6216fd0463657b05f4ca41
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Aug 7 16:15:12 2025 +0200
tdf#130857 svx: Don't use GtkBox as GtkFrame label child
, but for a different dialog.
See the commit message of the above-mentioned commit for more
background.
The dialog adjusted in this commit can be triggered from Writer
using "Tools" -> "Macros" -> "Organize Macros" -> "Basic".
Change-Id: Ibe1f3ea10d27c6032906ca716859f1d961239304
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189113
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The dialog can be triggered from Writer using
"Tools" -> "Macros" -> "Organize Macros" -> "Basic".
Change-Id: Ia78826713fa21f7daee067782cf62672bb8af946
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189112
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
and
cid#1660184 Variable copied when it could be moved
cid#1660183 Variable copied when it could be moved
cid#1660182 Variable copied when it could be moved
cid#1660181 Variable copied when it could be moved
cid#1660177 Variable copied when it could be moved
cid#1660176 Variable copied when it could be moved
Change-Id: Id5c90c0a0d4a0a86ef0f4b513b45c2db3a97b207
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188975
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
and
cid#1555637 Variable copied when it could be moved
cid#1555640 Variable copied when it could be moved
cid#1555863 Variable copied when it could be moved
cid#1556471 Variable copied when it could be moved
cid#1556634 Variable copied when it could be moved
cid#1556731 Variable copied when it could be moved
cid#1556751 Variable copied when it could be moved
cid#1556807 Variable copied when it could be moved
cid#1557366 Variable copied when it could be moved
cid#1558026 Variable copied when it could be moved
Change-Id: I187cb364877d35acd843d8391e5b376437ec96f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188935
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
and
cid#1660246 Variable copied when it could be moved
cid#1660243 Variable copied when it could be moved
cid#1660240 Variable copied when it could be moved
cid#1660237 Variable copied when it could be moved
cid#1660235 Variable copied when it could be moved
cid#1660234 Variable copied when it could be moved
cid#1660230 Variable copied when it could be moved
cid#1660228 Variable copied when it could be moved
cid#1660225 Variable copied when it could be moved
cid#1660223 Variable copied when it could be moved
Change-Id: I3cd87174e8e88a9c55101a73399117c3f2b80644
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188926
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
and
cid#1660344 Variable copied when it could be moved
cid#1660343 Variable copied when it could be moved
cid#1660341 Variable copied when it could be moved
cid#1660339 Variable copied when it could be moved
cid#1660337 Variable copied when it could be moved
cid#1660335 Variable copied when it could be moved
cid#1660334 Variable copied when it could be moved
Change-Id: I3758a4228d5e848750b4ef37296b4d38b5d3e31c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188850
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Only buttons are used as default widgets for dialogs,
and that's also the only thing that Qt supports conceptually,
see [1] and previous commit
Change-Id: If5042dce9b10c9c4f3450a1aa1299bec81c16771
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Sat Jul 26 00:36:10 2025 +0200
tdf#130857 weld: Move methods to set default widget to Dialog
Therefore, also adjust the weld API accordingly by switching the
params from weld::Widget to weld::Button and renaming the
methods accordingly.
[1] https://doc.qt.io/qt-6/qdialog.html#default-button
Change-Id: I6a2b162e1711fd49df852360510bf25f33f6c874
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188380
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
By now, the accessible is known to always be an OAccessible,
so return that more specific type instead of a Reference to
the abstract XAccessible interface.
Change-Id: Ie8f5318fb35d2fdeb59ac97452e2e27971c6b5a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188180
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
... on scroll. No idea why did it only show up with Vulkan; but for these
windows, the immediate paint is the correct thing to do.
The behavior of Paint wrt. SyncYOffset was changed: on invalidation, now
it doesn't return from Paint, to avoid flicker (the background of windows
is already erased; keeping it white until next paint can be noticed).
Change-Id: I5d306122f4465ca4556cd5b8c69d5f047ce9b53f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187131
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>