Project: help 50b850013374e0f711b5cded92739934d758bf1f
tdf#114709, tdf#112758, tdf#112757
Lots of changes and tweaks.
Header and footer now span 100% width even on desktop.
Font sizes were increased and content area made narrower.
We now have two separate language menus so the menu is
always visible on mobile.
Google search moved out of the accordion panel.
Accordion panel colours made darker.
On desktop, expanded accordion panels overlap content.
Change-Id: I976a67b1ca0cb2d21f0569da8d1fefd2b589d7d3
Reviewed-on: https://gerrit.libreoffice.org/47139
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Olivier Hallot <olivier.hallot@libreoffice.org>
the attempt is made, but the shape isn't there, so m_bShapeSent
wasn't set, so it will get called again and the markstacks are popped
to many times. Lets set it when the effort is made.
Change-Id: I58dfe11316112cca6ff69ea518ed0b4908f25d6c
Reviewed-on: https://gerrit.libreoffice.org/47106
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
This is necessary to avoid having extra threads
while forking. After forking, the second stage
of pre-init is started and so we start the stopped
rtl threads.
The comment for rtl_alloc_preInit_phase_t has
more details.
Change-Id: I1a3f7be74d4b04d0b2fc4a72b02124c2faa3c047
Reviewed-on: https://gerrit.libreoffice.org/47060
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
We need to check read only mode similar to SidebarController::CreatePanels()
method. Otherwise SfxUnoPanels::getByName() creates an invalid panel.
Change-Id: Ib7801b81c95f3f505a06c00f749ba4ed5809bfe0
Reviewed-on: https://gerrit.libreoffice.org/47116
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
...after 6a312a4a3d "Prepare external/firebird for
sanitizers". Doing `make check screenshot` on Linux with Clang
-fsanitize=undefined -fsanitize=local-bounds -fsanitize=nullability works now.
Patches that might be unwanted in non-UBSan builds are added to sanitizer.patch
while unproblematic ones are added to always-included ubsan.patch.
CppunitTest_dbaccess_firebird_test, e.g., shows that
comphelper::AsyncEventNotifierAutoJoin::onTerminated called base-class
osl::Thread::onTerminated (which does nothing, anyway) of an already destroyed
object, so just drop that.
Change-Id: If50f442ee6dbe590db843c38681d1c1cade8fa6a
Reviewed-on: https://gerrit.libreoffice.org/47122
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
ImplFontCache::Invalidate deletes unused entries (with zero ref
count), and keeps other entries, but clears everything (including
still used fonts) from its instance list. In the same time, those
fonts' mpFontCache pointers kept pointing to this cache object.
External clients released font instance by calling its cache's
Release method; this itself allows for broken invariants that
cache's mnRef0Count is equal to number of unused font instances
in its list. Also, those fonts never got released, leaking because
ImplFontCache only ever deletes objects in its list.
What is worse, sometimes font caches get deleted after invalidation
(see OutputDevice::ImplClearFontData). As the instance list of the
cache is empty at the point of delete, the cache destructor doesn't
delete those fonts that were orphaned at the moment of invalidation
(those fonts are still used by some client objects, so deleting
them is clearly wrong). But since the font instances still have
cache pointer referring the already deleted cache, releasing the
instances (by calling deleted cache's Release member function)
must lead do some weird results.
This patch moves the Acquire/Release to LogicalFontInstance, which
now checks if its cache pointer is valid, and if it is, the cache
is used to do the work (as before); otherwise, the font handles
its lifetime itself, and deletes itself when its reference counter
is zero. The cache invalidation clears the cache pointer of the
still-used instances.
Change-Id: I29811272dda814cbc81f14668d63e385ce772332
Reviewed-on: https://gerrit.libreoffice.org/47111
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Create a more effective implementation of XClob::length() and
XClob::getSubString() methods, where string is read segment-by-segment
instead of reading the whole underlying blob. That way it is possible to
handle big texts which would not fit into memory.
Also allow reading Clob data from a resultset with getString() and
writing it in a prepared statement with setString().
Implement XPreparedStatement::setClob(). Also implement a private
version of setClob() for creating a clob from OUString:
Allow the creation of a clob column with GUI by adding a new type in
ODataBaseMetaData::getTypeInfo().
Change-Id: Ibcbbdd80e8eed5e2a3fe55b0fa196401f1bcbcdf
Reviewed-on: https://gerrit.libreoffice.org/47093
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Tested-by: Tamás Bunth <btomi96@gmail.com>
There is no explicit binary type in Firebird. It can be accomplished
using the CHAR type with a special character set, which tells the
database that it is binary data and there is no collation. (called
OCTETS).
Because of that, we also need the character set to decide the exact
column type.
And also refactor some parts of the driver:
- Create class to determine internal type from firebird type, subtype,
scale and character set.
- Use internal type (DataType::XXX) in XDatabaseMetaData::getTypeInfo()
indirectly. (We want to return a Firebird type for each internal type,
not in the opposite direction.
Change-Id: Ica56a84d89253e11936e7012086fe1d9f61a65f0
Reviewed-on: https://gerrit.libreoffice.org/47091
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Just in case we are called by code not checking our DatabaseMetadata
to learn we don't support multiple resultsets.
Change-Id: I6d8c5f4ef04bcd9ec8b66a83881607281e125b7b
Reviewed-on: https://gerrit.libreoffice.org/47117
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
the previous test didn't make any sense:
* if xMeta.is(), then the test evaluated to false
* if !xMeta.is(), then it called supportsMultipleResultSets
(or supportsBatchUpdates, respectively) on a NULL pointer,
which guaranteed a segfault / assert.
Change-Id: I6d6b93350557936b924a286732ae6d4f5ab2ce56
Reviewed-on: https://gerrit.libreoffice.org/47118
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>