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
Move the a11y classes used for implementing Basic IDE a11y
from vcl to basctl. Move them into a namespace
"accessibility" to avoid a name clash with the Paragraph
class declared in include/editeng/outliner.hxx.
In TextWindowPeer::CreateAccessibleContext, call the
Document ctor directly and drop the now unused
AccessibleFactory::createAccessibleTextWindowContext.
Change-Id: I396507e5fca17b4e7a1b65b28797569bc31d6a04
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184838
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Drop the helper method basctl::createTextWindowPeer
that calls the TextWindowPeer ctor, and instead
call the ctor directly from
EditorWindow::GetComponentInterface.
In order for the class to be known there, move it
to the anonymous namespace in the same source file.
This is an intermediate step towards
getting rid of TextWindowPeer altogether.
Change-Id: I58111af8fadb45c6471af942b300665f3df189c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184837
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
(make from 5 existing only one)
Much of what makes up this patch is adapted from existing code that is
used to organize and select macros and to assign macros to shortcut
keys. Comments in the patch say where code is borrowed from.
Known issues:
+ Scripting framework library rename for BeanShell, Java, and JavaScript
always returns fail when there are no macro entries in the library even
though it actually succeeds. The same thing happens using
SvxScriptOrgDialog::renameEntry.
+ Deleting Basic macros from the Macro Manager dialog is not implemented
yet.
Change-Id: If4da04549f8b39675910cbbd1f94dd9a6b73c31a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176254
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This patch implements a color scheme selector for the Basic IDE. With this new feature the user can either:
1) Choose to stick with "Application Colors", meaning that the colors defined in "Tools - Options - Application Colors" are applied.
2) Use one of the available color schemes in the dialog
To access the color scheme dialog, go to View - Color Scheme.
A color schema was defined in the "BasicIDE.xcs" file and six color schemes were defined in "BasicIDE.xcu" to be shipped with LibreOffice.
This way, it is possible to install more color schemes via extensions;
Change-Id: I5d382d19f982d02ba3c0fda5d1596aed2c38f13c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155928
Tested-by: Jenkins
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
... resulting in a stripped-down, Writer-only build to decrease
the resulting WASM bytecode size.
It removes the following code from the build:
* All other major modules: Base, Calc, Chart, Draw, Impress and
Math and related writerperfect filters
* The premultiply tables
* The (auto-)recovery functionality
* All accessibility (but not the accessibility document checker)
* The LanguageGuess component
* EPUB support
* The start center / BackingWindow
* The TipOfTheDay functionality
* The splash screen communication
Currently crashs with anything different then soffice --writer.
Closing the document also still crashes.
FYI: many of these features are now behind ENABLE_WASM_STRIP_*
defines, but they normally don't work on their own, globally!
That's because we started with stripping the main components.
Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
...instead of by listing the content somewhat redundantly in the Rdb_*.mk
files, to avoid duplication of logic for components that are only built
conditionally (and thus should only be included conditionally in the
corresponding Rdb). To achieve that, add an "rdb" parameter to
gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros
that internally call gb_ComponentTarget_ComponentTarget), which is used to make
the appropriate gb_Rdb_add_component call internally from within
gb_ComponentTarget_ComponentTarget. (As a special case,
gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that
has already been done by the corresponding gb_Library_set_componentfile call, so
allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to
support that special case.)
Most Rdb_*.mk files are thus mostly empty now. One exception is
i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as
needed during the build in CustomTarget_i18npool/localedata.
1c9a40299d "gbuild: create services.rdb from built
components" had already tried to do something similar (in addition to other
things) under a new --enable-services-rdb-from-build option. However, that
approach had four drawbacks that this approach here addresses (and which thus
partly reverts 1c9a40299d):
1 Rdb_services shall not contain the component files of all libraries that are
built. While that commit filtered out the component files that go into
Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files
that go into others like Rdb_postgresql-sdbc
(connectivity/Rdb_postgresql-sdbc.mk).
2 The code added by that commit to Makefile.gbuild codified the knowledge that
there is an Rdb_services, which is brittle.
3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge
(for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle.
4 Introducing an --enable-services-rdb-from-build option needlessly provided
two different ways how the content of Rdb_services is assembled.
The changes done here would leave --enable-services-rdb-from-build as a
misnomer, as it no longer controls how Rdb_services is assembled. I thus
renamed it to --enable-customtarget-components, as that is apparently what it
still does now.
Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Moved import logic to a local function, and during the import of a *.bas
file, check if it starts with BOM in order to detect the correct
charset. If there is no BOM, use the default charset of the system, since
after the change in 178adcd845, all the
newly created *.bas files have a BOM and are written using the utf-8
charset.
Change-Id: Iefdecb5762d896ce3e52fd6d212de42cf417ddac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116186
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
As part of documenting source code for easier code reading by newbies,
because of the word "Box" in IDE is used not only for drop-down lists,
but also for other interface elements with limited boundaries
Change-Id: Ie9e1949cc9ac474bffe8201d12b9ce7dc2276076
Reviewed-on: https://gerrit.libreoffice.org/64713
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
I had to fix some source files because of macro redefinitions and such stuff.
Small modules like basic have a great win, too:
make basic.clean && time make basic:
with w/o
pch pch
accessibility 23s 1m59s
basctl 30s 1m42s
basic 56s 1m35s
comphelper 23s 51s
editeng 48s 2m04s
forms 40s 1m40s
unotools 19s 38s
sd 3m37s 4m33s
Change-Id: Id24cdcddbe2ff64820b42266325c25af1355558f
Reviewed-on: https://gerrit.libreoffice.org/9293
Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org>
Reviewed-by: Thomas Arnhold <thomas@arnhold.org>
Created a new tab in Tools/Options/Basic IDE options instead of the ModalDialog.
The original dialog under Basic IDE/View/IDE Options was removed.
Tab page is disabled when experimetal flag is off, entry node in the treebox is visible.
Change-Id: Iaad1ea5fadc3f05ca81f2240dceb513f25be35b9
Menu enrty was renamed to IDE Options under View.
SID_BASICIDE_CODECOMPLETE was renamed to SID_BASICIDE_IDEOPTIONS.
CodeCompleteDlg was rename to BasicIDEOptionDlg.
Ui file was renamed to basicideoptionsdialog.ui.
Checkbox for extended types is now independent from code complete one.
Change-Id: Id862df0ee56cdf2aa81e19a34099fe679ad5d311
Created a ModalDialog named CodeCompleteOptionsDlg to edit options for code completition/suggestion.
Unimplemented features in it are disabled.
The dialog window uses Glade .ui file.
Change-Id: I1b59f386a9575aa25b38c5a1d7d1f020498a69ab
Moved portions from module i18npool, all of former i18nisolang1 library
that now is i18nlangtag. Included are languagetag, isolang and mslangid.
This i18nlangtag code is now even used by module comphelper, so
disentangling i18npool and making this an own module was needed to not
create circular module dependencies.
Change-Id: Ib887c3d6dde667403fd22d382310ba5f1a9b0015
- do not use gb_UnpackedTarball_copy_header_files for boost
- adapt the optimization in concat-deps.c for new path
- use boost_headers in all LinkTargets that require it
- add explicit include paths to mysqlc, mysqlcppconn, libvisio, liborcus
Change-Id: I0c43e73ed43cc9d2e6bce8faf55e992d655a0bb9
Always link in gb_STDLIBS, except when the library explicitly opts out
with gb_LinkTarget_disable_standard_system_libs.
Change-Id: I489a99114fbfa46d0421a27cf6c7b899dc268a4a
add a new gb_LinkTarget_use_system_win32_libs to abstract different
linker options on MSVC and GCC.
Change-Id: Ic9bf2545f59bf7871e6fc06b290c486ddfbec03d
Naming convention for gbuild methods:
- "add" is used for stuff that is logically a part of the target
(i.e. not registered at the Module, but defined in the target's makefile)
- "use" is used for stuff that is logically a different target
(i.e. it is registered at the Module, has it's own makefile, may be
in a different module than the target)