core.git: include/comphelper
include/comphelper/interfacecontainer3.hxx |7 --- 1 file changed, 4 insertions(+), 3 deletions(-) New commits: commit 28616cf0989dab2ca2a1710c64f6fb1c1d78c584 Author: Caolán McNamara AuthorDate: Sat Dec 23 20:43:27 2023 + Commit: Caolán McNamara CommitDate: Sun Dec 24 00:50:18 2023 +0100 OInterfaceIteratorHelper3 always copies maData contents in ctor while I think the idea is that the copy on write should only be done by OInterfaceContainerHelper3, i.e. that ownership really transfers to OInterfaceIteratorHelper3 and OInterfaceContainerHelper3 makes a new one if that turns out to be necessary Change-Id: I6e97e3b303f133edbbb35ac23f39cf5348ad49fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161257 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/include/comphelper/interfacecontainer3.hxx b/include/comphelper/interfacecontainer3.hxx index 4b3d44bab69d..02f96658dcd2 100644 --- a/include/comphelper/interfacecontainer3.hxx +++ b/include/comphelper/interfacecontainer3.hxx @@ -63,7 +63,8 @@ public: OInterfaceIteratorHelper3(OInterfaceContainerHelper3& rCont_) : rCont(rCont_) , maData(rCont.maData) -, nRemain(maData->size()) +// const_cast so we don't trigger make_unique via o3tl::cow_wrapper::operator-> +, nRemain(std::as_const(maData)->size()) { } @@ -96,12 +97,12 @@ template const css::uno::Reference& OInterfaceIteratorHelper3::next() { nRemain--; -return (*maData)[nRemain]; +return (*std::as_const(maData))[nRemain]; } template void OInterfaceIteratorHelper3::remove() { -rCont.removeInterface((*maData)[nRemain]); +rCont.removeInterface((*std::as_const(maData))[nRemain]); } /**
core.git: external/zxcvbn-c
external/zxcvbn-c/ExternalProject_zxcvbn-c.mk |2 ++ external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk |2 ++ 2 files changed, 4 insertions(+) New commits: commit cfd333f13f85eaf6eaf564e791b55a2092841376 Author: Thorsten Behrens AuthorDate: Sat Dec 23 22:37:26 2023 +0100 Commit: Thorsten Behrens CommitDate: Sun Dec 24 00:29:50 2023 +0100 zxcvbn-c: disable warnings Change-Id: I348dc5f92f41fc3e8c1aee8743d5e1cf86fa3bbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161259 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk index 51b60a9c2ecb..bd652464ca15 100644 --- a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk +++ b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk @@ -9,6 +9,8 @@ $(eval $(call gb_ExternalProject_ExternalProject,zxcvbn-c)) +$(eval $(call gb_Library_set_warnings_disabled,zxcvbn-c)) + $(eval $(call gb_ExternalProject_register_targets,zxcvbn-c,\ generate-dictionary-nodes \ )) diff --git a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk index 9748ef850c55..ac670ad6ed5b 100644 --- a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk +++ b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk @@ -11,6 +11,8 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,zxcvbn-c)) $(eval $(call gb_StaticLibrary_use_unpacked,zxcvbn-c,zxcvbn-c)) +$(eval $(call gb_StaticLibrary_set_warnings_disabled,zxcvbn-c)) + # zxcvbn-c static library depends on generation of dictionary nodes resulting in dict-src.h $(eval $(call gb_StaticLibrary_use_external_project,zxcvbn-c,zxcvbn-c,full))
core.git: xmlsecurity/source
xmlsecurity/source/xmlsec/nss/ciphercontext.cxx | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) New commits: commit 4a532e651b9fd4c9b24b017d2e1d099ee76ceed8 Author: Thorsten Behrens AuthorDate: Fri Dec 22 22:44:15 2023 +0100 Commit: Thorsten Behrens CommitDate: Sun Dec 24 00:29:34 2023 +0100 xmlsecurity: fix AES-GCM code differently With PCH, the earlier workaround with NSS_PKCS11_2_0_COMPAT breaks - so lets fix this with conditionals, its only two places. Follow-up commit to 9276d5338ef04209b007bbc705e4c023cf181456 Change-Id: I7d3292304d83d784ee9dce5cdc62b4a028ff333a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161204 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/xmlsecurity/source/xmlsec/nss/ciphercontext.cxx b/xmlsecurity/source/xmlsec/nss/ciphercontext.cxx index b053db901ccd..c3bbfdb0f2ef 100644 --- a/xmlsecurity/source/xmlsec/nss/ciphercontext.cxx +++ b/xmlsecurity/source/xmlsec/nss/ciphercontext.cxx @@ -24,12 +24,6 @@ #include #include -#if defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wunused-macros" -#endif -// see TODO below -#define NSS_PKCS11_2_0_COMPAT 1 - #include "ciphercontext.hxx" #include // for NSS_VMINOR #include @@ -63,12 +57,14 @@ uno::Reference< xml::crypto::XCipherContext > OCipherContext::Create( CK_MECHANI if (nNSSCipherID == CKM_AES_GCM) { -// TODO: when runtime requirements are raised to NSS 3.52, replace this -// according to https://fedoraproject.org/wiki/Changes/NssGCMParams +// TODO: when runtime requirements are raised to NSS 3.52, +// cleanup according to +// https://fedoraproject.org/wiki/Changes/NssGCMParams #if NSS_VMINOR >= 52 -static_assert(sizeof(CK_GCM_PARAMS) == sizeof(CK_NSS_GCM_PARAMS)); +xResult->m_pSecParam = SECITEM_AllocItem(nullptr, nullptr, sizeof(CK_NSS_GCM_PARAMS)); +#else +xResult->m_pSecParam = SECITEM_AllocItem(nullptr, nullptr, sizeof(CK_GCM_PARAMS)); #endif -xResult->m_pSecParam = SECITEM_AllocItem(nullptr, nullptr, sizeof(/*CK_NSS_GCM_PARAMS*/CK_GCM_PARAMS)); if (!xResult->m_pSecParam) { SAL_WARN("xmlsecurity.nss", "SECITEM_AllocItem failed"); @@ -76,7 +72,11 @@ uno::Reference< xml::crypto::XCipherContext > OCipherContext::Create( CK_MECHANI } assert(aInitializationVector.getLength() == nAESGCMIVSize); xResult->m_AESGCMIV = aInitializationVector; -auto *const pParams = reinterpret_cast(xResult->m_pSecParam->data); +#if NSS_VMINOR >= 52 +auto *const pParams = reinterpret_cast(xResult->m_pSecParam->data); +#else +auto *const pParams = reinterpret_cast(xResult->m_pSecParam->data); +#endif pParams->pIv = const_cast(reinterpret_cast(xResult->m_AESGCMIV.getConstArray())); pParams->ulIvLen = sal::static_int_cast(xResult->m_AESGCMIV.getLength()); pParams->pAAD = nullptr;
core.git: bin/get-bugzilla-attachments-by-mimetype
bin/get-bugzilla-attachments-by-mimetype |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit dbe05a624ca53db83bedbc049791cc215ee6d46b Author: Thorsten Behrens AuthorDate: Sun Dec 24 00:04:10 2023 +0100 Commit: Thorsten Behrens CommitDate: Sun Dec 24 00:20:21 2023 +0100 get-bz-attachments: switch to python3 Nothing left to do, just switch the interpreter. Change-Id: I6a0ff0a019a66f6baf39794c853655f273676ea2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161261 Tested-by: Thorsten Behrens Reviewed-by: Thorsten Behrens diff --git a/bin/get-bugzilla-attachments-by-mimetype b/bin/get-bugzilla-attachments-by-mimetype index 924a522ebff7..c9942189be58 100755 --- a/bin/get-bugzilla-attachments-by-mimetype +++ b/bin/get-bugzilla-attachments-by-mimetype @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # This file is part of the LibreOffice project.
core.git: bin/get-bugzilla-attachments-by-mimetype
bin/get-bugzilla-attachments-by-mimetype |8 1 file changed, 8 insertions(+) New commits: commit 750f53a73fe6b817edc76329488d4b508d57c19b Author: Thorsten Behrens AuthorDate: Tue Dec 19 19:54:55 2023 +0100 Commit: Thorsten Behrens CommitDate: Sun Dec 24 00:19:56 2023 +0100 get-bz-attachments: set speaking thread names for job queue Change-Id: I38d637b8dd0f19330329565bf2e63c3c8463536c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161004 Tested-by: Thorsten Behrens Reviewed-by: Thorsten Behrens diff --git a/bin/get-bugzilla-attachments-by-mimetype b/bin/get-bugzilla-attachments-by-mimetype index 9df55914360e..924a522ebff7 100755 --- a/bin/get-bugzilla-attachments-by-mimetype +++ b/bin/get-bugzilla-attachments-by-mimetype @@ -422,6 +422,14 @@ class manage_threads(threading.Thread): # Use job parameters to call our query # Then let the queue know we are done with this job (uri, mimetype, prefix, extension) = jobs.get(True, 6) +try: +# set thread name for easier debugging, if process +# ctl package is available +import prctl +prctl.set_name(prefix[:3] + ': ' + mimetype[-10:]) +except ImportError: +pass + try: get_through_rss_query(uri, mimetype, prefix, extension) finally:
core.git: bin/get-bugzilla-attachments-by-mimetype
bin/get-bugzilla-attachments-by-mimetype | 278 +-- 1 file changed, 161 insertions(+), 117 deletions(-) New commits: commit 17f79d80484c5d5b492efd46e2e52481a17e0095 Author: Thorsten Behrens AuthorDate: Tue Dec 19 19:42:00 2023 +0100 Commit: Thorsten Behrens CommitDate: Sun Dec 24 00:19:27 2023 +0100 get-bz-attachments: some flake8 cleanup - fix the most obvious stylistic problems - add some brief doc strings - remove one instance of dead code, left over from this change: commit bd2eee0bd4ae83ff453522b7cf09b69f1b8b5e1b Date: Wed Jun 3 23:41:32 2015 +0200 get-bugzilla-attachments: avoid FDO-TDF duplicates... Change-Id: I88672ae99bc42e9af09ea6033f87240463b2c038 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161003 Tested-by: Thorsten Behrens Reviewed-by: Thorsten Behrens diff --git a/bin/get-bugzilla-attachments-by-mimetype b/bin/get-bugzilla-attachments-by-mimetype index c9a0d41cf5cc..9df55914360e 100755 --- a/bin/get-bugzilla-attachments-by-mimetype +++ b/bin/get-bugzilla-attachments-by-mimetype @@ -23,53 +23,61 @@ # it is already downloaded by a previous run, and up-to-date. from __future__ import print_function -import feedparser + import base64 import datetime import glob +import os +import os.path import re -import os, os.path import stat import sys import threading try: import queue -except: +except Exception: import Queue as queue try: from urllib.request import urlopen -except: +except Exception: from urllib import urlopen try: import xmlrpc.client as xmlrpclib -except: +except Exception: import xmlrpclib from xml.dom import minidom from xml.sax.saxutils import escape + from attachment_mimetypes import mimetypes +import feedparser + + def urlopen_retry(url): +"""Open url, retry 3 times.""" maxretries = 3 for i in range(maxretries + 1): try: return urlopen(url) except IOError as e: -print("caught IOError: " + str(e)) +print('caught IOError: ' + str(e)) if maxretries == i: raise -print("retrying...") +print('retrying...') + def get_from_bug_url_via_xml(url, mimetype, prefix, suffix): -id = url.rsplit('=', 2)[1] -print("id is " + prefix + id + " " + suffix) -print("parsing " + id) -sock = urlopen_retry(url+"&ctype=xml") +"""Parse bug xml, download attachments with matching suffix.""" +bugid = url.rsplit('=', 2)[1] +print('id is ' + prefix + bugid + ' ' + suffix) +print('parsing ' + bugid) +sock = urlopen_retry(url+'&ctype=xml') dom = minidom.parse(sock) sock.close() -attachmentid=0 +attachmentid = 0 for attachment in dom.getElementsByTagName('attachment'): attachmentid += 1 -print(" mimetype is", end=' ') +print(' mimetype is', end=' ') for node in attachment.childNodes: if node.nodeName == 'type': # check if attachment is deleted @@ -87,53 +95,58 @@ def get_from_bug_url_via_xml(url, mimetype, prefix, suffix): print('deleted attachment, skipping') continue -download = suffix + '/' +prefix + id + '-' + str(attachmentid) + '.' + suffix +download = (suffix + '/' + prefix + bugid + '-' + +str(attachmentid) + '.' + suffix) if os.path.isfile(download): -print("assuming " + download + " is up to date") +print('assuming ' + download + ' is up to date') continue # prevent re-downloading FDO attachments from TDF -if prefix == "tdf" and int(id) < 88776: -fdodownload = download.replace("tdf", "fdo") +if prefix == 'tdf' and int(bugid) < 88776: +fdodownload = download.replace('tdf', 'fdo') if os.path.isfile(fdodownload): -print("assuming FDO " + fdodownload + " is up to date") +print('assuming FDO ' + fdodownload + ' is up to date') continue print('downloading as ' + download) -tmpfile = download + ".tmp" +tmpfile = download + '.tmp' f = open(tmpfile, 'wb') f.write(base64.b64decode(node.firstChild.nodeValue)) f.close() os.rename(tmpfile, download) break + def get_novell_bug_via_xml(url, mimetype, prefix, suffix): -id = url.rsplit('=', 2)[1] -print("id is " + prefix + id + " " + suffix) -print("parsing " + id) -sock = urlopen_retry(url+"&ctype=xml") +"""Parse bug xml, download attachments with matching suffix.""" +bugid = url.rsplit('=', 2)[1] +print('id is ' + prefix + bugid + ' '
core.git: include/oox svx/source
include/oox/helper/refmap.hxx | 12 ++-- svx/source/form/formcontroller.cxx |7 +++ 2 files changed, 9 insertions(+), 10 deletions(-) New commits: commit 3c6942a8c64ab35cae7c14b3f64059da4d6ca19b Author: Caolán McNamara AuthorDate: Sat Dec 23 18:55:09 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 20:54:05 2023 +0100 cid#1545525 COPY_INSTEAD_OF_MOVE and cid#1545519 COPY_INSTEAD_OF_MOVE cid#1545516 COPY_INSTEAD_OF_MOVE cid#1545501 COPY_INSTEAD_OF_MOVE Change-Id: Icc6efaf8c8fe06c7acd629ef77eac6b228b98f4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161255 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/include/oox/helper/refmap.hxx b/include/oox/helper/refmap.hxx index db7cbffe2e02..4e5efe6c233c 100644 --- a/include/oox/helper/refmap.hxx +++ b/include/oox/helper/refmap.hxx @@ -48,17 +48,17 @@ public: public: /** Returns true, if the object associated to the passed key exists. Returns false, if the key exists but points to an empty reference. */ -boolhas( key_type nKey ) const +boolhas(const key_type& rKey) const { -const mapped_type* pxRef = getRef( nKey ); +const mapped_type* pxRef = getRef(rKey); return pxRef && pxRef->get(); } /** Returns a reference to the object associated to the passed key, or an empty reference on error. */ -mapped_type get( key_type nKey ) const +mapped_type get(const key_type& rKey) const { -if( const mapped_type* pxRef = getRef( nKey ) ) return *pxRef; +if( const mapped_type* pxRef = getRef(rKey) ) return *pxRef; return mapped_type(); } @@ -129,9 +129,9 @@ private: void operator()( const value_type& rValue ) { if( rValue.second.get() ) maFunctor( rValue.first, *rValue.second ); } }; -const mapped_type* getRef( key_type nKey ) const +const mapped_type* getRef(const key_type& rKey) const { -typename container_type::const_iterator aIt = this->find( nKey ); +typename container_type::const_iterator aIt = this->find(rKey); return (aIt == this->end()) ? nullptr : &aIt->second; } }; diff --git a/svx/source/form/formcontroller.cxx b/svx/source/form/formcontroller.cxx index 4198c5c367ae..0fb1bd64c942 100644 --- a/svx/source/form/formcontroller.cxx +++ b/svx/source/form/formcontroller.cxx @@ -3081,10 +3081,9 @@ void FormController::setFilter(::std::vector& rFieldInfos) if (aRow.find(rFieldInfo.xText) != aRow.end()) { OString aVal = m_pParser->getContext().getIntlKeywordAscii(IParseContext::InternationalKeyCode::And); -OUString aCompText = aRow[rFieldInfo.xText] + " " + -OStringToOUString(aVal, RTL_TEXTENCODING_ASCII_US) + " " + -::comphelper::getString(rRefValue.Value); -aRow[rFieldInfo.xText] = aCompText; +aRow[rFieldInfo.xText] = aRow[rFieldInfo.xText] + " " + + OStringToOUString(aVal, RTL_TEXTENCODING_ASCII_US) + " " + + ::comphelper::getString(rRefValue.Value); } else {
core.git: configure.ac external/argon2
configure.ac |1 external/argon2/0002-Add-WinARM64-vcxproj-config.patch | 185 + external/argon2/UnpackedTarball_argon2.mk |1 3 files changed, 187 insertions(+) New commits: commit 401e9408d14dc2b9d07183a04c223831a59f71a3 Author: Thorsten Behrens AuthorDate: Sat Dec 23 01:08:09 2023 +0100 Commit: Thorsten Behrens CommitDate: Sat Dec 23 20:10:57 2023 +0100 tdf#105844 argon2: add vcxproj files for WinARM64 builds Also add argon2 to crossbuild tools side. Change-Id: I8704b2d8362a051c2d634b9db7416cdc2cf9add4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161206 Tested-by: Jenkins Reviewed-by: Xisco Fauli Reviewed-by: Thorsten Behrens diff --git a/configure.ac b/configure.ac index 788342733d1c..1c2a9c86cf5e 100644 --- a/configure.ac +++ b/configure.ac @@ -5883,6 +5883,7 @@ if test "$cross_compiling" = "yes"; then # filter permitted build targets PERMITTED_BUILD_TARGETS=" +ARGON2 AVMEDIA BOOST BZIP2 diff --git a/external/argon2/0002-Add-WinARM64-vcxproj-config.patch b/external/argon2/0002-Add-WinARM64-vcxproj-config.patch new file mode 100644 index ..063296dd107c --- /dev/null +++ b/external/argon2/0002-Add-WinARM64-vcxproj-config.patch @@ -0,0 +1,185 @@ +diff -ur argon2.org/vs2015/Argon2OptDll/Argon2OptDll.vcxproj argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj +--- argon2.org/vs2015/Argon2OptDll/Argon2OptDll.vcxproj2023-12-23 01:00:49.231059537 +0100 argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj2023-12-23 01:02:40.375527010 +0100 +@@ -13,6 +13,10 @@ + ReleaseStatic + x64 + ++ ++ Release ++ AMR64 ++ + + Release + Win32 +@@ -50,6 +54,12 @@ + true + MultiByte + ++ ++DynamicLibrary ++false ++true ++MultiByte ++ + + DynamicLibrary + false +@@ -84,6 +94,9 @@ + + + ++ ++ ++ + + + +@@ -107,6 +120,11 @@ + $(SolutionDir)vs2015uild\$(ProjectName)\ + $(SolutionDir)include;$(IncludePath) + ++ ++$(SolutionDir)vs2015uild\ ++$(SolutionDir)vs2015uild\$(ProjectName)\ ++$(SolutionDir)include;$(IncludePath) ++ + + $(SolutionDir)vs2015uild\ + $(SolutionDir)vs2015uild\$(ProjectName)\ +@@ -158,6 +176,21 @@ + true + + ++ ++ ++ Level3 ++ MaxSpeed ++ true ++ false ++ true ++ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) ++ ++ ++ true ++ true ++ true ++ ++ + + + Level3 +@@ -209,7 +242,6 @@ + + + +- + + +@@ -221,7 +253,7 @@ + + +- ++ + + + +Only in argon2/vs2015/Argon2OptDll: Argon2OptDll.vcxproj~ +diff -ur argon2.org/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj +--- argon2.org/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj 2023-12-23 01:00:49.231059537 +0100 argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj 2023-12-23 01:02:12.518576081 +0100 +@@ -17,6 +17,10 @@ + Release + Win32 + ++ ++ Release ++ ARM64 ++ + + Debug + x64 +@@ -51,6 +55,12 @@ + true + MultiByte + ++ ++Application ++false ++true ++MultiByte ++ + + Application + false +@@ -85,6 +95,9 @@ + + + ++ ++ ++ + + + +@@ -108,6 +121,11 @@ + $(SolutionDir)vs2015uild\ + $(SolutionDir)vs2015uild\$(ProjectName)\ + ++ ++$(SolutionDir)include;$(IncludePath) ++$(SolutionDir)vs2015uild\ ++$(SolutionDir)vs2015uild\$(ProjectName)\ ++ + + $(SolutionDir)include;$(IncludePath) + $(SolutionDir)vs2015uild\ +@@ -162,6 +180,21 @@ + true + + ++ ++ ++ Level3 ++ MaxSpeed ++ true ++ false ++ true ++ _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) ++ ++ ++ true ++ true ++ true ++ ++ + + + Level3 +@@ -214,7 +247,7 @@ + + +- ++ + + + +@@ -222,7 +255,6 @@ + + + +- + + +@@ -232,4 +264,4 @@ + + + +- +\ No newline at end of file ++ +Only in argon2/vs2015/Argon2OptTestCI: Argon2OptTestCI.vcxproj~ diff --git a/external/argon2/UnpackedTarball_argon2.mk b/external/argon2/UnpackedTarball_argon2.mk index 0b35c2f58caf..3addfad639d5 100644 --- a/external/argon2/UnpackedTarball_argon2.mk +++ b/external/argon2/UnpackedTarball_argon2.mk @@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,argon2,1)) $(eval $(call gb_UnpackedTarball_add_patches,argon2,\ external/argon2/0001-Fix-possible-compiler-error-due-to-undefined-_MSC_VE.patch \ + external/argon2/0002-Add-WinARM64-vcxproj-config.patch \ )) # vim: set noet sw=4 ts=4:
core.git: sd/source
sd/source/ui/dlg/LayerTabBar.cxx | 95 ++- sd/source/ui/inc/LayerTabBar.hxx |9 +++ 2 files changed, 103 insertions(+), 1 deletion(-) New commits: commit d6a94c51130f62b17b29060fab6befe576e8c078 Author: Jim Raykowski AuthorDate: Sun Nov 12 17:52:09 2023 -0900 Commit: Jim Raykowski CommitDate: Sat Dec 23 20:10:25 2023 +0100 tdf#157244 Enhancement to identify objects in a layer Show an invert overlay on objects of a layer after a 1/2 second delay when the mouse pointer is on a layer tab. Change-Id: Ifcb2d82d73b8745ad9aecddd18b22193525ed756 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159358 Tested-by: Jenkins Reviewed-by: Jim Raykowski diff --git a/sd/source/ui/dlg/LayerTabBar.cxx b/sd/source/ui/dlg/LayerTabBar.cxx index 96b96068f331..ece1e0884bcf 100644 --- a/sd/source/ui/dlg/LayerTabBar.cxx +++ b/sd/source/ui/dlg/LayerTabBar.cxx @@ -39,6 +39,12 @@ #include #include +#include +#include +#include +#include +#include + namespace sd { /** @@ -47,12 +53,17 @@ namespace sd { LayerTabBar::LayerTabBar(DrawViewShell* pViewSh, vcl::Window* pParent) : TabBar( pParent, WinBits( WB_BORDER | WB_3DLOOK | WB_SCROLL ) ), DropTargetHelper( this ), -pDrViewSh(pViewSh) +pDrViewSh(pViewSh), +m_aBringLayerObjectsToAttentionDelayTimer("LayerTabBar m_aBringLayerObjectsToAttentionDelayTimer") { EnableEditMode(); SetSizePixel(Size(0, 0)); SetMaxPageWidth( 150 ); SetHelpId( HID_SD_TABBAR_LAYERS ); + +m_aBringLayerObjectsToAttentionDelayTimer.SetInvokeHandler( +LINK(this, LayerTabBar, BringLayerObjectsToAttentionDelayTimerHdl)); +m_aBringLayerObjectsToAttentionDelayTimer.SetTimeout(500); } LayerTabBar::~LayerTabBar() @@ -137,6 +148,87 @@ void LayerTabBar::Select() pDispatcher->Execute(SID_SWITCHLAYER, SfxCallMode::SYNCHRON); } +void LayerTabBar::MouseMove(const MouseEvent &rMEvt) +{ +sal_uInt16 nPageId = 0; +if (!rMEvt.IsLeaveWindow()) +nPageId = GetPageId(rMEvt.GetPosPixel()); +BringLayerObjectsToAttention(nPageId); +return; +} + +void LayerTabBar::BringLayerObjectsToAttention(const sal_uInt16 nPageId) +{ +if (nPageId == m_nBringLayerObjectsToAttentionLastPageId) +return; + +m_aBringLayerObjectsToAttentionDelayTimer.Stop(); + +m_nBringLayerObjectsToAttentionLastPageId = nPageId; + +std::vector aRanges; + +if (nPageId != 0) +{ +OUString aLayerName(GetLayerName(nPageId)); +if (pDrViewSh->GetView()->GetSdrPageView()->IsLayerVisible(aLayerName)) +{ +SdrLayerAdmin& rLayerAdmin = pDrViewSh->GetDoc()->GetLayerAdmin(); +SdrObjListIter aIter(pDrViewSh->GetActualPage(), SdrIterMode::DeepWithGroups); +while (aIter.IsMore()) +{ +SdrObject* pObj = aIter.Next(); +assert(pObj != nullptr); +if (pObj && (aLayerName == rLayerAdmin.GetLayerPerID(pObj->GetLayer())->GetName())) +{ +::tools::Rectangle aRect(pObj->GetLogicRect()); +if (!aRect.IsEmpty()) +aRanges.emplace_back(aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom()); +// skip over objects in groups +if (pObj->IsGroupObject()) +{ +SdrObjListIter aSubListIter(pObj->GetSubList(), SdrIterMode::DeepWithGroups); +while (aSubListIter.IsMore()) +{ +aIter.Next(); +aSubListIter.Next(); +} +} +} +} +} +} + +if (m_xOverlayObject && m_xOverlayObject->getOverlayManager()) +m_xOverlayObject->getOverlayManager()->remove(*m_xOverlayObject); +if (aRanges.empty()) +m_xOverlayObject.reset(); +else +{ +m_xOverlayObject.reset(new sdr::overlay::OverlaySelection( + sdr::overlay::OverlayType::Invert, + Color(), std::move(aRanges), true/*unused for Invert type*/)); +m_aBringLayerObjectsToAttentionDelayTimer.Start(); +} +} + +IMPL_LINK_NOARG(LayerTabBar, BringLayerObjectsToAttentionDelayTimerHdl, Timer *, void) +{ +m_aBringLayerObjectsToAttentionDelayTimer.Stop(); +if (m_xOverlayObject) +{ +if (SdrView* pView = pDrViewSh->GetDrawView()) +{ +if (SdrPaintWindow* pPaintWindow = pView->GetPaintWindow(0)) +{ +const rtl::Reference& xOverlayManager = +pPaintWindow->GetOverlayManager(); +xOverlayManager->add(*m_xOverlayObject); +} +} +} +} + void LayerTabBar::MouseButtonDown(const MouseEvent& rMEvt) { bool bSetPageID=false; @@ -302,6 +394,7 @@ void
core.git: basctl/source drawinglayer/source framework/source lingucomponent/source sc/source sd/source sfx2/source slideshow/source svx/source sw/source toolkit/source vcl/inc vcl/jsdialog vcl/workben
basctl/source/basicide/basides1.cxx|6 +- basctl/source/basicide/localizationmgr.cxx |3 - drawinglayer/source/primitive2d/mediaprimitive2d.cxx |5 +- framework/source/uiconfiguration/uiconfigurationmanager.cxx|4 - framework/source/uielement/spinfieldtoolbarcontroller.cxx |9 ++- lingucomponent/source/thesaurus/libnth/nthesimp.cxx|3 - sc/source/filter/xcl97/XclImpChangeTrack.cxx |3 - sc/source/ui/docshell/docsh4.cxx |7 +- sc/source/ui/drawfunc/drawsh.cxx | 12 ++--- sd/source/console/PresenterScrollBar.cxx |4 - sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx|2 sd/source/ui/view/drviews3.cxx |2 sfx2/source/appl/workwin.cxx |3 - slideshow/source/engine/animationnodes/animationaudionode.cxx |6 +- slideshow/source/engine/animationnodes/basenode.cxx|4 - slideshow/source/engine/animationnodes/sequentialtimecontainer.cxx |2 svx/source/sdr/primitive2d/sdrdecompositiontools.cxx |3 - svx/source/svdraw/svdotextdecomposition.cxx|3 - sw/source/uibase/shells/tabsh.cxx | 11 ++-- toolkit/source/awt/vclxprinter.cxx |6 -- vcl/inc/jsdialog/jsdialogbuilder.hxx |4 - vcl/jsdialog/jsdialogbuilder.cxx |4 - vcl/workben/vcldemo.cxx| 24 +- writerfilter/source/dmapper/DomainMapper.cxx |2 writerfilter/source/dmapper/DomainMapper.hxx |2 writerfilter/source/dmapper/FontTable.cxx |2 writerfilter/source/dmapper/FontTable.hxx |2 writerfilter/source/dmapper/GraphicImport.cxx |2 writerfilter/source/dmapper/GraphicImport.hxx |2 writerfilter/source/dmapper/LoggedResources.hxx|2 writerfilter/source/dmapper/NumberingManager.cxx |2 writerfilter/source/dmapper/NumberingManager.hxx |2 writerfilter/source/dmapper/SettingsTable.cxx |2 writerfilter/source/dmapper/SettingsTable.hxx |2 writerfilter/source/dmapper/StyleSheetTable.cxx|2 writerfilter/source/dmapper/StyleSheetTable.hxx|2 xmloff/source/table/XMLTableImport.cxx |3 - 37 files changed, 77 insertions(+), 82 deletions(-) New commits: commit 9a6298aedb663513c039efccc516dec3188dd8fa Author: Caolán McNamara AuthorDate: Sat Dec 23 14:13:05 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 19:52:50 2023 +0100 cid#1546006 COPY_INSTEAD_OF_MOVE and cid#1545999 COPY_INSTEAD_OF_MOVE cid#1545995 COPY_INSTEAD_OF_MOVE cid#1545994 COPY_INSTEAD_OF_MOVE cid#1545989 COPY_INSTEAD_OF_MOVE cid#1545982 COPY_INSTEAD_OF_MOVE cid#1545977 COPY_INSTEAD_OF_MOVE cid#1545970 COPY_INSTEAD_OF_MOVE cid#1545856 COPY_INSTEAD_OF_MOVE cid#1545845 COPY_INSTEAD_OF_MOVE cid#1545838 COPY_INSTEAD_OF_MOVE cid#1545776 COPY_INSTEAD_OF_MOVE cid#1545774 COPY_INSTEAD_OF_MOVE cid#1545744 COPY_INSTEAD_OF_MOVE cid#1545719 COPY_INSTEAD_OF_MOVE cid#1545716 COPY_INSTEAD_OF_MOVE cid#1545687 COPY_INSTEAD_OF_MOVE cid#1545648 COPY_INSTEAD_OF_MOVE cid#1545643 COPY_INSTEAD_OF_MOVE cid#1545641 COPY_INSTEAD_OF_MOVE cid#1545604 COPY_INSTEAD_OF_MOVE cid#1545531 COPY_INSTEAD_OF_MOVE cid#1545530 COPY_INSTEAD_OF_MOVE cid#1545524 COPY_INSTEAD_OF_MOVE cid#1545516 COPY_INSTEAD_OF_MOVE cid#1545501 COPY_INSTEAD_OF_MOVE cid#1545486 COPY_INSTEAD_OF_MOVE Change-Id: Idcf3e27bb9e81b6a77d5ef75c9376eb1d6aff8c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161245 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx index 806ce96a88a2..4f2918dcc6d9 100644 --- a/basctl/source/basicide/basides1.cxx +++ b/basctl/source/basicide/basides1.cxx @@ -791,11 +791,11 @@ void Shell::ExecuteGlobal( SfxRequest& rReq ) case SID_BASICIDE_MANAGE_LANG: { -auto pRequest = std::make_shared(rReq); +auto xRequest = std::make_shared(rReq); rReq.Ignore(); // the 'old' request is not relevant any more auto xDlg = std::make_shared(pCurWin ? pCurWin->GetFrameWeld() : nullptr, m_pCurLocalizationMgr); -weld::DialogController::runAsync(xDlg, [pRe
core.git: comphelper/source
comphelper/source/misc/configuration.cxx |4 1 file changed, 4 insertions(+) New commits: commit f82b8bf05a76ad9cc3fe950f4180c90bce56d79b Author: Caolán McNamara AuthorDate: Sat Dec 23 15:58:51 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 19:48:34 2023 +0100 ofz#65295 Abrt Change-Id: I074a43191c4af304a2702012d0b810aad801d0d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161249 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/comphelper/source/misc/configuration.cxx b/comphelper/source/misc/configuration.cxx index 6e500f619232..1ef359c7a9b6 100644 --- a/comphelper/source/misc/configuration.cxx +++ b/comphelper/source/misc/configuration.cxx @@ -183,6 +183,9 @@ css::uno::Any comphelper::detail::ConfigurationWrapper::getPropertyValue(OUStrin std::scoped_lock aGuard(maMutex); if (mbDisposed) throw css::lang::DisposedException(); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) +return css::uno::Any(); +#else // Cache the configuration access, since some of the keys are used in hot code. auto it = maPropertyCache.find(path); if( it != maPropertyCache.end()) @@ -198,6 +201,7 @@ css::uno::Any comphelper::detail::ConfigurationWrapper::getPropertyValue(OUStrin css::uno::Any property = access->getByName(childName); maPropertyCache.emplace(path, property); return property; +#endif } void comphelper::detail::ConfigurationWrapper::setPropertyValue(
core.git: drawinglayer/source
drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx | 18 +++ 1 file changed, 18 insertions(+) New commits: commit 3e582d9e3fbed8cb94284ac1ab6105cf74eccfe0 Author: Patrick Luby AuthorDate: Sat Dec 23 09:35:06 2023 -0500 Commit: Patrick Luby CommitDate: Sat Dec 23 19:32:24 2023 +0100 Related: tdf#158807 mutex must be locked when disposing a VirtualDevice If the following .ppt document is opened in a debug build and the document is left open for a minute or two without changing any content, this destructor will be called on a non-main thread with the mutex unlocked: https://bugs.documentfoundation.org/attachment.cgi?id=46801 This hits an assert in VirtualDevice::ReleaseGraphics() so explicitly lock the mutex and explicitly dispose and clear the VirtualDevice instances variables. Change-Id: I5d371a4e99fca4aae2b6edc8b53eca10cb143aef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161243 Tested-by: Jenkins Reviewed-by: Patrick Luby diff --git a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx index 7562459e0b70..cdda7d660e7e 100644 --- a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx @@ -358,6 +358,7 @@ namespace drawinglayer::primitive2d AnimatedGraphicPrimitive2D( const Graphic& rGraphic, basegfx::B2DHomMatrix aTransform); +virtual ~AnimatedGraphicPrimitive2D(); /// data read access const basegfx::B2DHomMatrix& getTransform() const { return maTransform; } @@ -421,6 +422,23 @@ namespace drawinglayer::primitive2d } } +AnimatedGraphicPrimitive2D::~AnimatedGraphicPrimitive2D() +{ +// Related: tdf#158807 mutex must be locked when disposing a VirtualDevice +// If the following .ppt document is opened in a debug build +// and the document is left open for a minute or two without +// changing any content, this destructor will be called on a +// non-main thread with the mutex unlocked: +// https://bugs.documentfoundation.org/attachment.cgi?id=46801 +// This hits an assert in VirtualDevice::ReleaseGraphics() so +// explicitly lock the mutex and explicitly dispose and clear +// the VirtualDevice instances variables. +const SolarMutexGuard aSolarGuard; + +maVirtualDevice.disposeAndClear(); +maVirtualDeviceMask.disposeAndClear(); +} + bool AnimatedGraphicPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const { // do not use 'GroupPrimitive2D::operator==' here, that would compare
libvisio.git: src/test
src/test/importtest.cpp |1 + 1 file changed, 1 insertion(+) New commits: commit e7d32634cfeceea700f24af3176090f4501d534e Author: Jan Tojnar AuthorDate: Sun Dec 10 15:42:24 2023 +0100 Commit: Ilmari Lauhakangas CommitDate: Sat Dec 23 17:43:39 2023 +0100 tests: Fix build with libxml 2.12 libxml 2.12.0 reorganized the headers, which removed `xmlParseMemory` function from the scope. Change-Id: Ibd747fe7f83eb7c3a8b8cf57ac4a06e365986d46 Reviewed-on: https://gerrit.libreoffice.org/c/libvisio/+/160542 Tested-by: Ilmari Lauhakangas Reviewed-by: Ilmari Lauhakangas diff --git a/src/test/importtest.cpp b/src/test/importtest.cpp index 9a01473..4a26b4a 100644 --- a/src/test/importtest.cpp +++ b/src/test/importtest.cpp @@ -14,6 +14,7 @@ #include +#include #include #include "xmldrawinggenerator.h"
core.git: vcl/source
vcl/source/window/dlgctrl.cxx | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) New commits: commit ea1421747985bd09ad40565da8536e857b5c2e9a Author: Samuel Mehrbrodt AuthorDate: Fri Dec 22 09:25:53 2023 +0100 Commit: Samuel Mehrbrodt CommitDate: Sat Dec 23 17:37:02 2023 +0100 tdf#157649 Allow omitting Alt key when focus is in dialog action area Adapt to usual Windows experience: Allow triggering the Ok, Cancel, etc buttons in the dialog action area without pressing the Alt key - when the focus is in that area (and the accelerator is unique in that dialog). Change-Id: I85b544867cf5507a15240b2972a26a1c248c4f82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161146 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx index adf416b21769..90cdf353f8c0 100644 --- a/vcl/source/window/dlgctrl.cxx +++ b/vcl/source/window/dlgctrl.cxx @@ -941,7 +941,7 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput ) } } } -else if (aKeyCode.IsMod2()) // tdf#151385 +else { sal_Unicode c = rKEvt.GetCharCode(); if ( c ) @@ -952,8 +952,13 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput ) GetFocusFlags nGetFocusFlags = GetFocusFlags::Mnemonic; if ( pSWindow == ::ImplFindAccelWindow( this, i, c, nFormStart, nFormEnd ) ) nGetFocusFlags |= GetFocusFlags::UniqueMnemonic; -pSWindow->ImplControlFocus( nGetFocusFlags ); -return true; +// tdf#157649 Allow omitting the Alt key when focus is in the dialog action area: +bool bIsButtonBox = dynamic_cast(pSWindow->GetParent()) != nullptr; +if ((bIsButtonBox && pSWindow->GetParent()->HasChildPathFocus(true)) || aKeyCode.IsMod2()) +{ +pSWindow->ImplControlFocus( nGetFocusFlags ); +return true; +} } } }
dev-tools.git: help3/xhpeditor
help3/xhpeditor/links.txt.xsl | 71 +++--- 1 file changed, 46 insertions(+), 25 deletions(-) New commits: commit cec75a82cb8b42c2c41734e286b7ee7ccb4cff57 Author: Olivier Hallot AuthorDate: Sat Dec 23 12:31:39 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Dec 23 16:54:21 2023 +0100 Update icon replacement table from recent builds Change-Id: I0ee978a36947eca46d1ddf8434554883098e15fc Reviewed-on: https://gerrit.libreoffice.org/c/dev-tools/+/161247 Tested-by: Olivier Hallot Reviewed-by: Olivier Hallot diff --git a/help3/xhpeditor/links.txt.xsl b/help3/xhpeditor/links.txt.xsl index 434b5bb8..d3aed42a 100644 --- a/help3/xhpeditor/links.txt.xsl +++ b/help3/xhpeditor/links.txt.xsl @@ -94,12 +94,7 @@ cmd/32/insertframe.svg cmd/32/timefield.svg cmd/32/newdoc.svg -cmd/32/outlinebullet.svg -cmd/32/numberformatstandard.svg -cmd/32/paragraphdialog.svg -cmd/32/insertdraw.svg -cmd/32/trackchanges.svg -cmd/32/showtrackedchanges.svg +cmd/32/insertpagenumberfield.svg cmd/lc_fontdialog.svg cmd/lc_addfield.svg cmd/lc_avmediaplayer.svg @@ -138,12 +133,7 @@ cmd/lc_insertframe.svg cmd/lc_timefield.svg cmd/lc_newdoc.svg -cmd/lc_outlinebullet.svg -cmd/lc_numberformatstandard.svg -cmd/lc_paragraphdialog.svg -cmd/lc_insertdraw.svg -cmd/lc_trackchanges.svg -cmd/lc_showtrackedchanges.svg +cmd/lc_insertpagenumberfield.svg cmd/sc_fontdialog.svg cmd/sc_addfield.svg cmd/sc_avmediaplayer.svg @@ -182,12 +172,7 @@ cmd/sc_insertframe.svg cmd/sc_timefield.svg cmd/sc_newdoc.svg -cmd/sc_outlinebullet.svg -cmd/sc_numberformatstandard.svg -cmd/sc_paragraphdialog.svg -cmd/sc_insertdraw.svg -cmd/sc_trackchanges.svg -cmd/sc_showtrackedchanges.svg +cmd/sc_insertpagenumberfield.svg cmd/32/trackchanges.svg cmd/sc_trackchanges.svg cmd/lc_trackchanges.svg @@ -348,6 +333,8 @@ cmd/32/ar/defaultnumbering.svg cmd/32/ar/deleterecord.svg cmd/32/ar/insertneutralparagraph.svg +cmd/32/ar/jumpdownthislevel.svg +cmd/32/ar/jumpupthislevel.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/newrecord.svg @@ -381,6 +368,8 @@ cmd/32/ar/defaultnumbering.svg cmd/32/ar/deleterecord.svg cmd/32/ar/insertneutralparagraph.svg +cmd/32/ar/jumpdownthislevel.svg +cmd/32/ar/jumpupthislevel.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/newrecord.svg @@ -468,6 +457,8 @@ cmd/32/ar/defaultnumbering.svg cmd/32/ar/deleterecord.svg cmd/32/ar/insertneutralparagraph.svg +cmd/32/ar/jumpdownthislevel.svg +cmd/32/ar/jumpupthislevel.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/linenumberingdialog.svg cmd/32/ar/newrecord.svg @@ -515,6 +506,8 @@ cmd/ar/lc_defaultnumbering.svg cmd/ar/lc_deleterecord.svg cmd/ar/lc_insertneutralparagraph.svg +cmd/ar/lc_jumpdownthislevel.svg +cmd/ar/lc_jumpupthislevel.svg cmd/ar/lc_linenumberingdialog.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/lc_newrecord.svg @@ -540,6 +533,8 @@ cmd/ar/sc_defaultnumbering.svg cmd/ar/sc_deleterecord.svg cmd/ar/sc_insertneutralparagraph.svg +cmd/ar/sc_jumpdownthislevel.svg +cmd/ar/sc_jumpupthislevel.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_newrecord.svg @@ -581,6 +576,8 @@ cmd/ar/lc_defaultnumbering.svg cmd/ar/lc_deleterecord.svg cmd/ar/lc_insertneutralparagraph.svg +cmd/ar/lc_jumpdownthislevel.svg +cmd/ar/lc_jumpupthislevel.svg cmd/ar/lc_linenumberingdialog.svg cmd/ar/lc_linenumberingdialog.svg cmd/ar/lc_newrecord.svg @@ -606,6 +603,8 @@ cmd/ar/sc_defaultnumbering.svg cmd/ar/sc_deleterecord.svg cmd/ar/sc_insertneutralparagraph.svg +cmd/ar/sc_jumpdownthislevel.svg +cmd/ar/sc_jumpupthislevel.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_newrecord.svg @@ -755,6 +754,8 @@ cmd/ar/lc_defaultnumbering.svg cmd/ar/lc_deleterecord.svg cmd/ar/lc_insertneutralparagraph.svg +cmd/ar/lc_jumpdownthislevel.svg +cmd/ar/lc_jumpupthislevel.svg cmd/ar/lc_linenumberingdialog.svg cmd/ar/lc_linenumberingdialog.svg cmd/ar/lc_newrecord.svg @@ -780,6 +781,8 @@ cmd/ar/sc_defaultnumbering.svg cmd/ar/sc_deleterecord.svg cmd/ar/sc_insertneutralparagraph.svg +cmd/ar/lc_jumpdownthislevel.svg +cmd/ar/lc_jumpupthislevel.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_linenumberingdialog.svg cmd/ar/sc_newrecord.svg @@ -1180,19 +1183,19 @@ cmd/lc_open.svg cmd/sc_open.svg cmd/32/ellipse.svg -cmd/32/basicshapes.diamond.svg +cmd/32/graphic.svg cmd/32/rect.svg cmd/32/ellipse.svg cmd/32/freeline_unfilled.svg cmd/32/rect.svg cmd/lc_ellipse.svg -cmd/lc_basicshapes.diamond.svg +cmd/lc_graphic.svg cmd/lc_rect.svg cmd/lc_ellipse.svg cmd/lc_freeline_unfilled.svg cmd/lc_rect.svg cmd/sc_ellipse.svg -cmd/sc_basicshapes.diamond.svg +cmd/sc_graphic.svg cmd/sc_rect.svg cmd/sc_ellipse.svg cmd/sc_freeline_unfilled.svg @@ -1930,6 +1933,7 @@ cmd/sc_showsinglepage.svg cmd/lc_diaeffect.svg cmd/sc_colorsettings.svg +cmd/lc_insertmath.svg cmd/lc_dbviewfunctions.svg cmd/lc_galle
dev-tools.git: help3/xhpeditor
help3/xhpeditor/DisplayArea.css | 65 ++-- 1 file changed, 36 insertions(+), 29 deletions(-) New commits: commit 13f010b2187a779473655bf563fa121b7f6ad68d Author: Olivier Hallot AuthorDate: Sat Dec 23 12:29:30 2023 -0300 Commit: Olivier Hallot CommitDate: Sat Dec 23 16:54:03 2023 +0100 Help editor: Housekeeping on CSS Bring some classes and settings from recent CSS in help/default.css Change-Id: I9287c1570e4e76c9eb5bc19f248d6db3a7cb6a45 Reviewed-on: https://gerrit.libreoffice.org/c/dev-tools/+/161246 Tested-by: Olivier Hallot Reviewed-by: Olivier Hallot diff --git a/help3/xhpeditor/DisplayArea.css b/help3/xhpeditor/DisplayArea.css index 6b4df043..c6351c0f 100644 --- a/help3/xhpeditor/DisplayArea.css +++ b/help3/xhpeditor/DisplayArea.css @@ -9,6 +9,14 @@ /* Imported from default css for DisplayArea */ + +:root { + --font_mono: Menlo, "Cascadia Mono", "Cascadia Code", Consolas, "DejaVu Sans Mono", monospace; + --font_body: Ubuntu, Cantarell, "Segoe UI Variable", "Segoe UI", "Noto Sans", "DejaVu Sans", "Lucida Grande", sans-serif, FreeSerif, NanumGothic, "Noto Sans Tibetan", Taprom; + --background-color: #f7f8f7; + --module-color: #18A303; +} + #DisplayArea { background-color: white; overflow: auto; @@ -26,14 +34,14 @@ .listitemintable, .paragraph, .tablecontent { -font-family: -apple-system, system-ui, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", "DejaVu Sans", "Lucida Grande", "Helvetica Neue", Helvetica, Arial, sans-serif, FreeSerif, NanumGothic, "Noto Sans Tibetan", Taprom; +font-family: var(--font_body); } .input { background-color: rgba(0,0,0,0.04); transition-property: background-color; transition-duration: 150ms; border-bottom: 1px dashed rgba(0,0,0,0.1); -font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace; +font-family: var(--font_mono); } #DisplayArea ::selection { @@ -60,12 +68,16 @@ border-radius: 2px; display: inline; padding: 1px 3px; -font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace; +font-family: var(--font_mono); +word-wrap: anywhere; +} +.literal { +white-space: normal; } .smathcode { border-radius: 2px; padding: 1px 3px; -font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace; +font-family: var(--font_mono); } .acronym { @@ -82,7 +94,7 @@ } .keycode { /*font-weight: bold;*/ -font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace; +font-family: var(--font_mono); } .widget{ padding: 1px 10px; @@ -100,33 +112,27 @@ .warning { display:flex; align-items: center; -border-radius: 0 4px 4px 0; -box-shadow: 0 2px 2px -2px rgba(0,0,0,0.2); +border-radius: 2px; +box-shadow: 0 2px 5px -3px rgb(0 0 0 / 10%); padding: 0.2em; margin-top: 15px; } .note { -border-left: 4px solid #FFDE09; -background-color: #FFF4D0; +border-left: 2px solid #309048; +background-color: #d9f1dd; } .tip { -border-left: 4px solid #38618C; -background-color: #DAE2EA; +border-left: 2px solid #0063b1; +background-color: #cde5f7; } .warning { -border-left: 4px solid #FF5964; -background-color: #FFE0E2; -} -.noteicon { -padding:0.3em; -transition: transform .2s; /* Animation */ -} -.noteicon:hover { -transform: scale(2.0); /* (200% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +border-left: 2px solid #ed8733; +background-color: #f6f1d2; } -.notetext { +.noteicon, .notetext { padding:0.3em; } + #DisplayArea h1, #DisplayArea h2, #DisplayArea h3, @@ -207,19 +213,13 @@ border-bottom: 1px solid #E8E8E8; } /* Special case of icon table*/ -icontable { +.icontable { display:flex; align-items:center; } .iconcell { padding:0.3em; } -.imageicon { -transition: transform .2s; /* Animation */ -} -.imageicon:hover{ -transform: scale(2.0); /* (200% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} #DisplayArea table { box-shadow: rgba(0,0,0,0.1) 0px 1px 3px 0px; @@ -235,16 +235,23 @@ icontable { border-right: 0; padding: 0.3em; } + .tablehead, .tableheadintable { font-weight: bold; margin-top: 0px; } + .tableheadcell { -background: #148603; +background: var(--module-color); color: white; vertical-align:top; } + +.table_font_small { +font-size: 0.98rem; +} + #DisplayArea footer { border-top: 2px solid #148603; padding: 15px 10px 0 10px;
dev-tools.git: help3/xhpeditor
help3/xhpeditor/index.php | 42 -- help3/xhpeditor/logo.png|binary help3/xhpeditor/views/empty_preview.php | 11 +++ help3/xhpeditor/xhp2html.js |2 help3/xhpeditor/xhpeditor.css | 93 +++- 5 files changed, 117 insertions(+), 31 deletions(-) New commits: commit 0a2990a97b20220cd8c2f7dc2ba227488fc65349 Author: Juan José González AuthorDate: Fri Dec 22 07:17:30 2023 -0700 Commit: Olivier Hallot CommitDate: Sat Dec 23 16:41:28 2023 +0100 Add header, menu bar and toolbar takes the whole width of the window empty preview message. A couple of screenshots https://s3.us-west-1.amazonaws.com/juanjosegzl.com/images/xhpeditorempty+message.png https://s3.us-west-1.amazonaws.com/juanjosegzl.com/images/xhpeditorrender.png Change-Id: If0790ac728cf4f5ea8725a4c691d75b6a36fc607 Reviewed-on: https://gerrit.libreoffice.org/c/dev-tools/+/161208 Reviewed-by: Olivier Hallot Tested-by: Olivier Hallot diff --git a/help3/xhpeditor/index.php b/help3/xhpeditor/index.php index 710f8adb..1af632e5 100644 --- a/help3/xhpeditor/index.php +++ b/help3/xhpeditor/index.php @@ -9,7 +9,11 @@ xpath("//filename"); +} ?> @@ -52,32 +56,38 @@ $xhp = $_POST["xhpdoc"]; - -LibreOffice Documentation XHP Editor - - - + + + + LibreOffice Documentation XHP Editor + + + + + + + xpath("//filename"); if (isset($_POST["render_page"])) { -echo 'Rendered page: '.$xhp_filename[0]; -echo 'System: '; +echo ''; +echo 'System: '; $opSys = array("MAC", "WIN", "UNIX"); foreach ($opSys as $value) { - echo ''.$value.' '; + echo ''.$value.' '; } -echo ' Module: '; +echo 'Module: '; $appModule = array("WRITER", "CALC", "IMPRESS", "DRAW", "BASE", "MATH", "CHART"); foreach ($appModule as $value){ -echo ''.$value.' '; +echo ''.$value.' '; } -echo ''; +echo ''; $xml = new DOMDocument(); $xml->loadXML($xhp); $xsl = new DOMDocument; @@ -87,7 +97,7 @@ $xhp = $_POST["xhpdoc"]; $proc->setParameter("","productname",$CONFIG["productname"]); $proc->setParameter("","iconpath",$CONFIG["icon_path"]); $proc->importStyleSheet($xsl); -echo $proc->transformToXml($xml); +echo @$proc->transformToXml($xml); echo ""; }elseif (isset($_POST["check_xhp"])) { libxml_use_internal_errors(true); @@ -153,7 +163,7 @@ $xhp = $_POST["xhpdoc"]; echo ""; } else { echo ''; -echo 'Viewing Area'; + include 'views/empty_preview.php'; echo ""; }; ?> diff --git a/help3/xhpeditor/logo.png b/help3/xhpeditor/logo.png new file mode 100644 index ..ad22bf16 Binary files /dev/null and b/help3/xhpeditor/logo.png differ diff --git a/help3/xhpeditor/views/empty_preview.php b/help3/xhpeditor/views/empty_preview.php new file mode 100644 index ..6bb4afbf --- /dev/null +++ b/help3/xhpeditor/views/empty_preview.php @@ -0,0 +1,11 @@ + + + + Create or open a file + + + Start working on a new file. Or + Open an existing file. + + + diff --git a/help3/xhpeditor/xhp2html.js b/help3/xhpeditor/xhp2html.js index 930b451b..4ce2886f 100644 --- a/help3/xhpeditor/xhp2html.js +++ b/help3/xhpeditor/xhp2html.js @@ -37,7 +37,7 @@ var editor = CodeMirror.fromTextArea(document.getElementById("xhpeditor"), { hintOptions: {schemaInfo: this.xhptags} }); -const height = window.innerHeight - document.getElementById('editorpageheader').offsetHeight - 16; +const height = window.innerHeight - document.getElementById('editorpageheader').offsetHeight; editor.setSize(null, height); function readSingleFile(e) { diff --git a/help3/xhpeditor/xhpeditor.css b/help3/xhpeditor/xhpeditor.css index 7d9bdce4..c4b91e49 100644 --- a/help3/xhpeditor/xhpeditor.css +++ b/help3/xhpeditor/xhpeditor.css @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* -*- Mode: css; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * @@ -19,6 +19,25 @@ ol, ul { /* css for the main editor web page */ +*, ::after, ::before { +box-sizing: border-box; +} + +#editorpageheader img { +height: 50px; +} + +#editorpageheader h1 { +font-size: 1em; +} + +#editorpageheader header { +display: flex; +align-items: center; +justify-content: space-between; +padding: 0 1em; +} + .form_area{ border:1px solid grey; height:
Jan Tojnar (license statement)
All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license.
core.git: svx/source sw/source
svx/source/form/datanavi.cxx|2 +- sw/source/uibase/shells/grfshex.cxx |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) New commits: commit 25d4fae8d3f69dc4d03c1a04233e6ed670742ed5 Author: Caolán McNamara AuthorDate: Sat Dec 23 14:00:26 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 16:03:30 2023 +0100 cid#1546064 COPY_INSTEAD_OF_MOVE and cid#1546034 COPY_INSTEAD_OF_MOVE Change-Id: If533400b570f20d80f1c41431ceba81579e0e25d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161242 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx index 0178a82c5947..9116c0eb075f 100644 --- a/svx/source/form/datanavi.cxx +++ b/svx/source/form/datanavi.cxx @@ -306,7 +306,7 @@ namespace svxform // tdf#154535 create the OXFormsDescriptor on-demand so we don't cause an unwanted // Binding to be created unless we are forced to. -auto fnCreateFormsDescriptor = [this, szName, xNode, xPropSet](){ +auto fnCreateFormsDescriptor = [this, szName=std::move(szName), xNode=std::move(xNode), xPropSet=std::move(xPropSet)](){ OXFormsDescriptor desc; desc.szName = szName; if (xNode) { diff --git a/sw/source/uibase/shells/grfshex.cxx b/sw/source/uibase/shells/grfshex.cxx index 45d40764525b..a9af8799b009 100644 --- a/sw/source/uibase/shells/grfshex.cxx +++ b/sw/source/uibase/shells/grfshex.cxx @@ -80,7 +80,7 @@ bool SwTextShell::InsertMediaDlg( SfxRequest const & rReq ) css::uno::Reference xDispatchProvider(GetView().GetViewFrame().GetFrame().GetFrameInterface(), css::uno::UNO_QUERY); rtl::Reference xPlayerListener(new avmedia::PlayerListener( -[xDispatchProvider, aURL, bLink](const css::uno::Reference& rPlayer){ +[xDispatchProvider=std::move(xDispatchProvider), aURL, bLink](const css::uno::Reference& rPlayer){ css::awt::Size aSize = rPlayer->getPreferredPlayerWindowSize(); avmedia::MediaWindow::dispatchInsertAVMedia(xDispatchProvider, aSize, aURL, bLink); }));
core.git: svl/source
svl/source/items/itemset.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit b803b3a7a1eda1b9862112f399c0a8b988c1f930 Author: Caolán McNamara AuthorDate: Sat Dec 23 13:52:09 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 15:51:39 2023 +0100 cid#1559884 Uninitialized scalar variable etc, since: commit e9e3576ada06d53de12efed041fb309fe5388e01 Date: Thu Dec 21 22:49:27 2023 +0100 svl: fix build with --enable-debug Change-Id: I1c3c82f0f1674cb46fa6a36d5f9f5cc4435ebef1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161241 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx index 4a1c6351c7f3..4cadfa6b596e 100644 --- a/svl/source/items/itemset.cxx +++ b/svl/source/items/itemset.cxx @@ -61,7 +61,7 @@ static bool g_bItemClassicMode(getenv("ITEM_CLASSIC_MODE")); SfxPoolItemHolder::SfxPoolItemHolder() : m_pPool(nullptr) , m_pItem(nullptr) -#ifdef DBG_UTIL +#ifndef NDEBUG , m_bDeleted(false) #endif {
core.git: svx/source
svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx |2 -- 1 file changed, 2 deletions(-) New commits: commit 1582bde861ad8e556fcf06657e7228980ff284e9 Author: Armin Le Grand (allotropia) AuthorDate: Fri Dec 22 17:20:21 2023 +0100 Commit: Armin Le Grand CommitDate: Sat Dec 23 15:49:08 2023 +0100 Add flush mechanism to buffered Primitives III There seem to be problems with re-creation of SdrCustomShapePrimitive2D primitive presentation due to SdrText not being held as uno::Reference everywhere. For now, try if excluding SdrCustomShapePrimitive2D from being flushed helps - may give hints already... Change-Id: I58373f7dcd81dd24fbf7a0687bb782326ad290fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161190 Tested-by: Jenkins Reviewed-by: Armin Le Grand diff --git a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx index b58274106211..19717e2eb121 100644 --- a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx @@ -102,8 +102,6 @@ namespace drawinglayer::primitive2d mb3DShape(b3DShape), maTransform(std::move(aTransform)) { -// activate callback to flush buffered decomposition content -setCallbackSeconds(10); } bool SdrCustomShapePrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
Declan Fodor license statement
All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license. Looking forward to contributing, Declan Fodor
core.git: 2 commits - comphelper/source tools/source
comphelper/source/streaming/seqinputstreamserv.cxx |3 +-- tools/source/generic/bigint.cxx|9 + 2 files changed, 6 insertions(+), 6 deletions(-) New commits: commit cee019927fe3beaf20653e1a98beb85147d14aad Author: Caolán McNamara AuthorDate: Fri Dec 22 21:45:02 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 14:40:16 2023 +0100 cid#1545209 COPY_INSTEAD_OF_MOVE Change-Id: Idd82be5f2354787735f4e47e8cfe9e9a7371a973 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161203 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/comphelper/source/streaming/seqinputstreamserv.cxx b/comphelper/source/streaming/seqinputstreamserv.cxx index 5d10029a5024..22fe8f8f0ea1 100644 --- a/comphelper/source/streaming/seqinputstreamserv.cxx +++ b/comphelper/source/streaming/seqinputstreamserv.cxx @@ -196,9 +196,8 @@ void SAL_CALL SequenceInputStreamService::initialize( const uno::Sequence< css:: uno::Reference< io::XInputStream > xInputStream( static_cast< ::cppu::OWeakObject* >( new ::comphelper::SequenceInputStream( aSeq ) ), uno::UNO_QUERY_THROW ); -uno::Reference< io::XSeekable > xSeekable( xInputStream, uno::UNO_QUERY_THROW ); +m_xSeekable.set(xInputStream, uno::UNO_QUERY_THROW); m_xInputStream = xInputStream; -m_xSeekable = xSeekable; m_bInitialized = true; } commit 8013fcadd975d5e72e86afd96de41feaca42a23a Author: Caolán McNamara AuthorDate: Fri Dec 22 21:42:05 2023 + Commit: Caolán McNamara CommitDate: Sat Dec 23 14:40:09 2023 +0100 cid#1471704 Assignment of overlapping memory overlapping_assignment: Assigning (*this).nNum[0] to (*this).nVal, which have overlapping memory locations and different types. Change-Id: I70d7236af27bf5399ad5eb5553befd2eb33e37db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161202 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/tools/source/generic/bigint.cxx b/tools/source/generic/bigint.cxx index 240494dfc15d..80b86af6013c 100644 --- a/tools/source/generic/bigint.cxx +++ b/tools/source/generic/bigint.cxx @@ -76,14 +76,15 @@ void BigInt::Normalize() { constexpr sal_uInt32 maxForPosInt32 = std::numeric_limits::max(); constexpr sal_uInt32 maxForNegInt32 = -sal_Int64(std::numeric_limits::min()); -if (bIsNeg && nNum[0] <= maxForNegInt32) +sal_uInt32 nNum0 = nNum[0]; +if (bIsNeg && nNum0 <= maxForNegInt32) { -nVal = -sal_Int64(nNum[0]); +nVal = -sal_Int64(nNum0); nLen = 0; } -else if (!bIsNeg && nNum[0] <= maxForPosInt32) +else if (!bIsNeg && nNum0 <= maxForPosInt32) { -nVal = nNum[0]; +nVal = nNum0; nLen = 0; } }
core.git: extras/CustomTarget_autocorr.mk extras/Package_autocorr.mk extras/source
extras/CustomTarget_autocorr.mk |3 extras/Package_autocorr.mk |1 extras/source/autocorr/lang/th/DocumentList.xml | 853 +++ extras/source/autocorr/lang/th/META-INF/manifest.xml |6 4 files changed, 863 insertions(+) New commits: commit 4c91770dde40d248af736436716994dc367a54a2 Author: Theppitak Karoonboonyanan AuthorDate: Thu Nov 30 22:32:17 2023 +0700 Commit: Ilmari Lauhakangas CommitDate: Sat Dec 23 12:59:24 2023 +0100 Add Thai AutoCorrect data As part of tdf#158454 Change-Id: Ia81eeb76e8d1fc09d7d19c3c979e30737e5c69d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160159 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas Reviewed-by: Ilmari Lauhakangas diff --git a/extras/CustomTarget_autocorr.mk b/extras/CustomTarget_autocorr.mk index f97c8f1d2d71..bfc6177105e9 100644 --- a/extras/CustomTarget_autocorr.mk +++ b/extras/CustomTarget_autocorr.mk @@ -55,6 +55,7 @@ extras_AUTOCORR_LANGS := \ sr-ME:sr-ME \ sr-RS:sr-RS \ sv:sv-SE \ + th:th-TH \ tr:tr-TR \ vi:vi-VN \ vro:vro-EE \ @@ -223,6 +224,8 @@ extras_AUTOCORR_XMLFILES := \ sv/META-INF/manifest.xml \ sv/SentenceExceptList.xml \ sv/WordExceptList.xml \ + th/DocumentList.xml \ + th/META-INF/manifest.xml \ tr/DocumentList.xml \ tr/META-INF/manifest.xml \ tr/SentenceExceptList.xml \ diff --git a/extras/Package_autocorr.mk b/extras/Package_autocorr.mk index cc14860637ee..b9a50b3ed230 100644 --- a/extras/Package_autocorr.mk +++ b/extras/Package_autocorr.mk @@ -53,6 +53,7 @@ $(eval $(call gb_Package_add_files,extras_autocorr,$(LIBO_SHARE_FOLDER)/autocorr acor_sr-ME.dat \ acor_sr-RS.dat \ acor_sv-SE.dat \ + acor_th-TH.dat \ acor_tr-TR.dat \ acor_vi-VN.dat \ acor_vro-EE.dat \ diff --git a/extras/source/autocorr/lang/th/DocumentList.xml b/extras/source/autocorr/lang/th/DocumentList.xml new file mode 100644 index ..6282f1c409bd --- /dev/null +++ b/extras/source/autocorr/lang/th/DocumentList.xml @@ -0,0 +1,853 @@ + +http://openoffice.org/2001/block-list";> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
core.git: Branch 'libreoffice-7-6' - cui/source include/svx svx/source
cui/source/dialogs/colorpicker.cxx |7 --- include/svx/PaletteManager.hxx |2 +- svx/source/tbxctrls/PaletteManager.cxx | 11 ++- 3 files changed, 11 insertions(+), 9 deletions(-) New commits: commit 15be0847190fee716689938e70fcb4ade208d97f Author: Noel Grandin AuthorDate: Wed Dec 20 11:21:27 2023 +0200 Commit: Noel Grandin CommitDate: Sat Dec 23 12:34:22 2023 +0100 tdf#156820 Fix crash in custom color picker which requires (*) keeping ColorPicker alive during the runAsync in ColorPicker::startExecuteModal (*) keeping the PaletteManager alive during the ExecuteAsync in PaletteManager::PopupCOlorPicker Noting that MattK debugged the cause of this. Change-Id: I07efe8e6514f8882b1347c79c6150578c234bb9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161054 Tested-by: Noel Grandin Reviewed-by: Noel Grandin (cherry picked from commit 78ccae0d42d168f845ddbd7cb694d80dfb04f84d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161161 Tested-by: Jenkins Reviewed-by: Xisco Fauli (cherry picked from commit 97a81fffc1c2ab77749c462b61b3eed860b09d77) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161164 diff --git a/cui/source/dialogs/colorpicker.cxx b/cui/source/dialogs/colorpicker.cxx index 24dda1936a2a..688a64f190ec 100644 --- a/cui/source/dialogs/colorpicker.cxx +++ b/cui/source/dialogs/colorpicker.cxx @@ -1345,12 +1345,13 @@ void SAL_CALL ColorPicker::setDialogTitle( const OUString& ) void SAL_CALL ColorPicker::startExecuteModal( const css::uno::Reference< css::ui::dialogs::XDialogClosedListener >& xListener ) { std::shared_ptr xDlg = std::make_shared(Application::GetFrameWeld(mxParent), mnColor, mnMode); -weld::DialogController::runAsync(xDlg, [this, xDlg, xListener] (sal_Int32 nResult) { +rtl::Reference xThis(this); +weld::DialogController::runAsync(xDlg, [xThis, xDlg, xListener] (sal_Int32 nResult) { if (nResult) -mnColor = xDlg->GetColor(); +xThis->mnColor = xDlg->GetColor(); sal_Int16 nRet = static_cast(nResult); -css::ui::dialogs::DialogClosedEvent aEvent( *this, nRet ); +css::ui::dialogs::DialogClosedEvent aEvent( *xThis, nRet ); xListener->dialogClosed( aEvent ); }); } diff --git a/include/svx/PaletteManager.hxx b/include/svx/PaletteManager.hxx index f2711b2e022a..81f30ea7de76 100644 --- a/include/svx/PaletteManager.hxx +++ b/include/svx/PaletteManager.hxx @@ -33,7 +33,7 @@ namespace svx { class ToolboxButtonColorUpdaterBase; } namespace weld { class Window; } namespace model { class ColorSet; } -class SVXCORE_DLLPUBLIC PaletteManager +class SVXCORE_DLLPUBLIC PaletteManager : public std::enable_shared_from_this { const sal_uInt16mnMaxRecentColors; diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx index 1a48c403feb2..cc53c3ab74c8 100644 --- a/svx/source/tbxctrls/PaletteManager.cxx +++ b/svx/source/tbxctrls/PaletteManager.cxx @@ -405,15 +405,16 @@ void PaletteManager::PopupColorPicker(weld::Window* pParent, const OUString& aCo m_pColorDlg = std::make_unique(); m_pColorDlg->SetColor(rInitialColor); m_pColorDlg->SetMode(svtools::ColorPickerMode::Modify); -m_pColorDlg->ExecuteAsync(pParent, [this, aCommandCopy] (sal_Int32 nResult) { +std::shared_ptr xSelf(shared_from_this()); +m_pColorDlg->ExecuteAsync(pParent, [xSelf, aCommandCopy] (sal_Int32 nResult) { if (nResult == RET_OK) { -Color aLastColor = m_pColorDlg->GetColor(); +Color aLastColor = xSelf->m_pColorDlg->GetColor(); OUString sColorName = "#" + aLastColor.AsRGBHexString().toAsciiUpperCase(); NamedColor aNamedColor(aLastColor, sColorName); -SetSplitButtonColor(aNamedColor); -AddRecentColor(aLastColor, sColorName); -maColorSelectFunction(aCommandCopy, aNamedColor); +xSelf->SetSplitButtonColor(aNamedColor); +xSelf->AddRecentColor(aLastColor, sColorName); +xSelf->maColorSelectFunction(aCommandCopy, aNamedColor); } }); }
core.git: dbaccess/source
dbaccess/source/ui/control/RelationControl.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 22c3eeafc391f867632b3f88e2298d5747706484 Author: Julien Nabet AuthorDate: Fri Dec 22 21:47:40 2023 +0100 Commit: Julien Nabet CommitDate: Sat Dec 23 12:10:01 2023 +0100 Fix b26611017a75867efe97b4cf53df96cbd025cc5e Following Caolán's comment here: https://gerrit.libreoffice.org/c/core/+/161185 Thank you Caolán for the review! Change-Id: I8ac949fccc8a11cf483f679d4c0d2dc16e8c680c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161193 Tested-by: Jenkins Reviewed-by: Julien Nabet diff --git a/dbaccess/source/ui/control/RelationControl.cxx b/dbaccess/source/ui/control/RelationControl.cxx index 279e3a916ef3..ad625b8126a4 100644 --- a/dbaccess/source/ui/control/RelationControl.cxx +++ b/dbaccess/source/ui/control/RelationControl.cxx @@ -223,7 +223,7 @@ namespace dbaui OConnectionLineDataVec& rLines = m_pConnData->GetConnLineDataList(); if ( rLines.size() <= o3tl::make_unsigned(nRow) ) { -rLines.emplace_back(); +rLines.emplace_back(new OConnectionLineData()); nRow = rLines.size() - 1; // add new past-rLines row m_ops.emplace_back(INSERT, make_pair(nRow+1, nRow+2));
core.git: Branch 'libreoffice-24-2' - external/onlineupdate scp2/source
external/onlineupdate/install_updateservice.cxx | 128 external/onlineupdate/install_updateservice.def |1 scp2/source/ooo/windowscustomaction_ooo.scp | 17 ++- 3 files changed, 101 insertions(+), 45 deletions(-) New commits: commit b66c2c243b4877475341011d851196a201610321 Author: Stephan Bergmann AuthorDate: Fri Dec 22 17:17:46 2023 +0100 Commit: Stephan Bergmann CommitDate: Sat Dec 23 11:32:16 2023 +0100 Fix Windows MSI custom action for --enable-online-update-mar The install/uninstall actions need to be type 3137 to run privileged, which means that they must be placed within certain limits (e.g., not at "end") and that they cannot access INSTALLLOCATION (so need an additional un-privileged prepare action to forward that value). Plus, the call to CreateProcessW was passing arguments in a completely wrong way. And then some clean-up. Change-Id: I5b5f338da08931e48653f282cc9fa7b00955fea6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161191 Tested-by: Jenkins Reviewed-by: Stephan Bergmann (cherry picked from commit a97ed6a69482220e44c407d19d4a1287d659e067) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161210 diff --git a/external/onlineupdate/install_updateservice.cxx b/external/onlineupdate/install_updateservice.cxx index 4604e55462d6..c1d547156098 100644 --- a/external/onlineupdate/install_updateservice.cxx +++ b/external/onlineupdate/install_updateservice.cxx @@ -9,6 +9,7 @@ #include +#include #include #include #include @@ -51,18 +52,17 @@ extern "C" wchar_t* wcsncpy(wchar_t* strDest, wchar_t const* strSource, std::siz namespace { -bool getInstallLocation(MSIHANDLE handle, std::wstring* installLocation) +bool getProperty(MSIHANDLE handle, wchar_t const* name, std::wstring* value) { DWORD n = 0; -if (MsiGetPropertyW(handle, L"INSTALLLOCATION", const_cast(L""), &n) -!= ERROR_MORE_DATA +if (MsiGetPropertyW(handle, name, const_cast(L""), &n) != ERROR_MORE_DATA || n == std::numeric_limits::max()) { return false; } ++n; auto buf = std::make_unique(n); -if (MsiGetPropertyW(handle, L"INSTALLLOCATION", buf.get(), &n) != ERROR_SUCCESS) +if (MsiGetPropertyW(handle, name, buf.get(), &n) != ERROR_SUCCESS) { return false; } @@ -70,7 +70,7 @@ bool getInstallLocation(MSIHANDLE handle, std::wstring* installLocation) { --n; } -installLocation->assign(buf.get(), n); +value->assign(buf.get(), n); return true; } @@ -78,14 +78,20 @@ typedef std::unique_ptr CloseHandleGuard; CloseHandleGuard guard(HANDLE handle) { return CloseHandleGuard(handle, CloseHandle); } -bool runExecutable(std::wstring const& installLocation, wchar_t const* commandLine) +bool runExecutable(std::wstring const& installLocation, wchar_t const* argument) { +std::wstring cmdline(L"\""); +cmdline += installLocation; +cmdline += L"\program\update_service.exe\" "; +cmdline += argument; +auto const n = cmdline.size() + 1; +auto const buf = std::make_unique(n); +std::copy_n(cmdline.data(), n, buf.get()); STARTUPINFOW si{}; si.cb = sizeof(si); PROCESS_INFORMATION pi{}; -if (!CreateProcessW((installLocation + L"\program\update_service.exe").c_str(), -const_cast(commandLine), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, -nullptr, nullptr, &si, &pi)) +if (!CreateProcessW(nullptr, buf.get(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, +nullptr, &si, &pi)) { return false; } @@ -106,74 +112,114 @@ bool runExecutable(std::wstring const& installLocation, wchar_t const* commandLi } return true; } -} -extern "C" __declspec(dllexport) UINT __stdcall InstallUpdateservice(MSIHANDLE handle) +bool writeRegistry(std::wstring const& installLocation) { -std::wstring loc; -if (!getInstallLocation(handle, &loc)) +WCHAR path[MAX_PATH + 1]; +if (!CalculateRegistryPathFromFilePath(installLocation.c_str(), path)) { return false; } -if (!runExecutable(loc, L"install")) -{ -return ERROR_INVALID_FUNCTION; -} -WCHAR maintenanceServiceKey[MAX_PATH + 1]; -if (!CalculateRegistryPathFromFilePath(loc.c_str(), maintenanceServiceKey)) -{ -return ERROR_INVALID_FUNCTION; -} HKEY key; -if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, (std::wstring(maintenanceServiceKey) + L"\0").c_str(), -0, nullptr, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, nullptr, -&key, nullptr) +if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, (std::wstring(path) + L"\0").c_str(), 0, nullptr, +REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, nullptr, &key, +nullptr) != ERRO
core.git: Branch 'libreoffice-24-2' - officecfg/registry
officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 7b21b1f58a13af7f6bc4f053e0758a0331621618 Author: Stéphane Guillou AuthorDate: Wed Aug 30 00:58:26 2023 +0200 Commit: Ilmari Lauhakangas CommitDate: Sat Dec 23 11:07:51 2023 +0100 tdf#156719: use unique accelerator for Insert > Signature Line Change-Id: Iebd03e3a526aef8db75a2323ec0faba8a3b24383 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156276 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas Reviewed-by: Ilmari Lauhakangas (cherry picked from commit 761449adb54e965c94d31c36e945112736b232c5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161211 diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 98332bbb434e..f4b6b8c3d7e5 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -7302,7 +7302,7 @@ bit 3 (0x8): #define UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON 8 - Signatu~re Line... + Signat~ure Line... 1
core.git: cui/source
cui/source/dialogs/QrCodeGenDialog.cxx |9 - 1 file changed, 4 insertions(+), 5 deletions(-) New commits: commit 14c4c077182f0338a21ae7dedf8620e339d2 Author: Thorsten Behrens AuthorDate: Fri Dec 22 15:22:19 2023 +0100 Commit: Thorsten Behrens CommitDate: Sat Dec 23 09:52:54 2023 +0100 ZXing: no need for deprecated utf-8 conversions anymore With ZXing 2.0, the library directly supports utf8 std::string parameters: https://github.com/zxing-cpp/zxing-cpp/releases/tag/v2.0.0 Fixes the warning: cui/source/dialogs/QrCodeGenDialog.cxx:161:72: warning: 'FromUtf8' is deprecated [-Wdeprecated-declarations] 161 | ZXing::BitMatrix bitmatrix = writer.encode(ZXing::TextUtfEncoding::FromUtf8(QRText), 0, 0); | ^ /usr/include/ZXing/TextUtfEncoding.h:17:3: note: 'FromUtf8' has been explicitly marked deprecated here 17 | [[deprecated]] std::wstring FromUtf8(std::string_view utf8); | ^ Change-Id: Ic0a65d4455dabea1a7a4e23f558e4158a0c3f39f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161182 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx index 8a25e3b364e7..c727f4cdbd02 100644 --- a/cui/source/dialogs/QrCodeGenDialog.cxx +++ b/cui/source/dialogs/QrCodeGenDialog.cxx @@ -19,6 +19,7 @@ #include #if ENABLE_ZXING +#include #include #ifdef __GNUC__ @@ -38,9 +39,7 @@ #include #endif -#if __has_include() -#include -#else +#if ZXING_VERSION_MAJOR < 2 #include #endif @@ -153,8 +152,8 @@ OString GenerateQRCode(std::u16string_view aQRText, tools::Long aQRECC, int aQRB ZXing::BarcodeFormat format = ZXing::BarcodeFormatFromString(GetBarCodeType(aQRType)); auto writer = ZXing::MultiFormatWriter(format).setMargin(aQRBorder).setEccLevel(bqrEcc); writer.setEncoding(ZXing::CharacterSet::UTF8); -#if __has_include() -ZXing::BitMatrix bitmatrix = writer.encode(ZXing::FromUtf8(QRText), 0, 0); +#if ZXING_VERSION_MAJOR >= 2 +ZXing::BitMatrix bitmatrix = writer.encode(QRText, 0, 0); #else ZXing::BitMatrix bitmatrix = writer.encode(ZXing::TextUtfEncoding::FromUtf8(QRText), 0, 0); #endif
core.git: download.lst external/zxing
download.lst|4 - external/zxing/0001-add-ZXVersion-h.patch | 21 + external/zxing/0001-android-Fix-build-with-NDK-26.patch | 64 external/zxing/README |4 - external/zxing/StaticLibrary_zxing.mk |6 - external/zxing/UnpackedTarball_zxing.mk |4 - 6 files changed, 29 insertions(+), 74 deletions(-) New commits: commit 0ecedeea71d926f0aa3b2f121e6e896311e6250e Author: Taichi Haradaguchi <20001...@ymail.ne.jp> AuthorDate: Sat Dec 9 14:54:20 2023 +0900 Commit: Thorsten Behrens CommitDate: Sat Dec 23 09:52:25 2023 +0100 zxing-cpp: upgrade to release 2.2.1 * remove 0001-android-Fix-build-with-NDK-26.patch, which was merged upstream. * remove DecodeHints from static lib, which according to upstream is not needed: https://github.com/zxing-cpp/zxing-cpp/issues/685#issuecomment-1853375179 * add a version header for client code generate/update via: * mkdir build && cd build && cmake .. * mv core/ZXVersion.h ../core/src/ Release Notes: https://github.com/zxing-cpp/zxing-cpp/releases/tag/v2.2.1 Change-Id: Ic4811d4724970c984dd9ed3d59b5204c18aafc6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160528 Tested-by: Jenkins Reviewed-by: Thorsten Behrens diff --git a/download.lst b/download.lst index 6191a35ab4bd..d381fca12ef6 100644 --- a/download.lst +++ b/download.lst @@ -655,8 +655,8 @@ ZXCVBN_C_TARBALL := zxcvbn-c-2.5.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts -ZXING_SHA256SUM := 6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe -ZXING_TARBALL := zxing-cpp-2.1.0.tar.gz +ZXING_SHA256SUM := 02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635 +ZXING_TARBALL := zxing-cpp-2.2.1.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/zxing/0001-add-ZXVersion-h.patch b/external/zxing/0001-add-ZXVersion-h.patch new file mode 100644 index ..88b779e2cfd7 --- /dev/null +++ b/external/zxing/0001-add-ZXVersion-h.patch @@ -0,0 +1,21 @@ +--- /dev/null 2023-12-10 14:00:18.140142051 +0100 a/core/src/ZXVersion.h 2023-12-22 21:38:22.466302568 +0100 +@@ -0,0 +1,18 @@ ++/* ++* Copyright 2019 Nu-book Inc. ++* Copyright 2023 Axel Waggershauser ++*/ ++// SPDX-License-Identifier: Apache-2.0 ++ ++#pragma once ++ ++// Version numbering ++#define ZXING_VERSION_MAJOR 2 ++#define ZXING_VERSION_MINOR 2 ++#define ZXING_VERSION_PATCH 1 ++ ++namespace ZXing { ++ ++constexpr const char* ZXING_VERSION_STR = "2.2.1"; ++ ++} diff --git a/external/zxing/0001-android-Fix-build-with-NDK-26.patch b/external/zxing/0001-android-Fix-build-with-NDK-26.patch deleted file mode 100644 index ad1269b4165c.. --- a/external/zxing/0001-android-Fix-build-with-NDK-26.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 295b193b0105e68bb24747aefbff2653df892b4c Mon Sep 17 00:00:00 2001 -From: Michael Weghorn -Date: Mon, 27 Nov 2023 14:28:34 +0100 -Subject: [PATCH] android: Fix build with NDK 26 - -While the workarounds added in - -commit df0b9213017a136bf7253ea1d4aba5677c52d45c -Author: axxel -Date: Thu Dec 15 20:43:48 2022 +0100 - -android: work around limitations of c++-20 support in NDK - -may be necessary for NDK 25, they are no longer for NDK 26, -and even break the build with NDK 26: - -C/C++: .../zxing-cpp/core/src/Generator.h:103:7: error: reference to 'default_sentinel_t' is ambiguous -C/C++: std::default_sentinel_t end() { return {}; } -C/C++: ^ -C/C++: .../Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__iterator/default_sentinel.h:23:8: note: candidate found by name lookup is 'std::__ndk1::default_sentinel_t' -C/C++: struct default_sentinel_t { }; -C/C++:^ -C/C++: .../zxing-cpp/core/src/Generator.h:15:9: note: candidate found by name lookup is 'std::default_sentinel_t' -C/C++: struct default_sentinel_t {}; -C/C++:^ -C/C++: 2 errors generated. - -Restrict the workaround to NDK version < 26 to fix this. - -Fixes: #673 - core/src/Generator.h | 8 ++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/core/src/Generator.h b/core/src/Generator.h -index 7a1fd179..a5083e9d 100644 a/core/src/Generator.h -+++ b/core/src/Generator.h -@@ -5,8 +5,12 @@ - - #pragma once - --#ifdef __cpp_impl_coroutine - #ifdef __ANDROID__ -+#include -+#endif -+ -+#ifdef __cpp_impl_coroutine -+#if defined __ANDROID__ && __NDK_MAJOR__ < 26 - // NDK 25.1.8937393 can compile this code with c++20 but needs a few tweaks: - #include - namespace std { -@@ -25,7 +29,7 @@ namespace std { - // this code is based on https://en.cppreference.com/w/cpp/coroutine/coroutine_handle#Example - // bu
core.git: sw/qa
sw/qa/python/check_xnamedgraph.py | 17 - 1 file changed, 17 deletions(-) New commits: commit 40a9dd85d10c642eed98cd50fbdd89f93b99ed8e Author: U-DESKTOP-CETSUCA\sigma AuthorDate: Mon Nov 6 03:23:30 2023 -0500 Commit: Ilmari Lauhakangas CommitDate: Sat Dec 23 09:13:50 2023 +0100 sw: uitest: remove redundant function Change-Id: I772771b7d455bae8be1dffed29fbc3605ea3e3fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158981 Tested-by: Ilmari Lauhakangas Reviewed-by: Ilmari Lauhakangas diff --git a/sw/qa/python/check_xnamedgraph.py b/sw/qa/python/check_xnamedgraph.py index 84c774bddfa3..3ef7fdedbba0 100644 --- a/sw/qa/python/check_xnamedgraph.py +++ b/sw/qa/python/check_xnamedgraph.py @@ -58,23 +58,6 @@ class XNamedGraph(unittest.TestCase): xDMA.close(True) -def test_Statements_RemoveByObject(self): -# take any first graph -xDMA = self._uno.openTemplateFromTDOC("XNamedGraph.ott") -xGraph = self.getAnyGraph(xDMA) - -DATE_URI_STR = "http://www.example.com/Metadata#Version"; -OBJECT_STR = "foo" - -# remove by object -self.assertFalse(self.hasStatement(xDMA, xGraph, DATE_URI_STR)) -self.addStatement(xDMA, xGraph, DATE_URI_STR, OBJECT_STR) -self.assertTrue(self.hasStatement(xDMA, xGraph, DATE_URI_STR)) -self.removeStatement(xDMA, xGraph, None, OBJECT_STR) -self.assertFalse(self.hasStatement(xDMA, xGraph, DATE_URI_STR)) - -xDMA.close(True) - def test_Statements_RemoveByObject(self): # take any first graph xDMA = self._uno.openTemplateFromTDOC("XNamedGraph.ott")
core.git: basic/qa basic/source
basic/qa/basic_coverage/da-DK/test_ccur_da_DK_locale.bas | 27 basic/qa/basic_coverage/test_ccur_method.bas | 69 +- basic/qa/basic_coverage/zh-CN/test_ccur_zh_CN_locale.bas | 27 basic/source/sbx/sbxcurr.cxx | 100 ++- 4 files changed, 162 insertions(+), 61 deletions(-) New commits: commit 9cc8457abcae57c7f9de6e0fbca1fbc2a0cc9892 Author: Jonathan Clark AuthorDate: Fri Dec 15 23:09:19 2023 -0700 Commit: Andreas Heinisch CommitDate: Sat Dec 23 09:12:24 2023 +0100 tdf#128122 Updated BASIC CCur to reuse SvNumberFormatter Previously, BASIC CCur used a custom, single-purpose currency string parser which did not properly accommodate the user's locale setting. This change replaces the custom parser with SvNumberFormatter, which does correctly respect system locale. Change-Id: I179915eb080e876e5e550dd350fdb86d7fa2bf4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160848 Tested-by: Jenkins Reviewed-by: Andreas Heinisch diff --git a/basic/qa/basic_coverage/da-DK/test_ccur_da_DK_locale.bas b/basic/qa/basic_coverage/da-DK/test_ccur_da_DK_locale.bas new file mode 100644 index ..52b8d3b6f1aa --- /dev/null +++ b/basic/qa/basic_coverage/da-DK/test_ccur_da_DK_locale.bas @@ -0,0 +1,27 @@ +' +' This file is part of the LibreOffice project. +' +' This Source Code Form is subject to the terms of the Mozilla Public +' License, v. 2.0. If a copy of the MPL was not distributed with this +' file, You can obtain one at http://mozilla.org/MPL/2.0/. +' + +Option Explicit + +Function doUnitTest as String +TestUtil.TestInit +verify_testCCurDaDKLocale +doUnitTest = TestUtil.GetResult() +End Function + +Sub verify_testCCurDaDKLocale +On Error GoTo errorHandler + +' tdf#141050 - characteristic test for CCur() with the da_DK locale +TestUtil.AssertEqual(CCur("75,50"), 75.5, "CCur(75,50)") +TestUtil.AssertEqual(CCur("75,50 kr."), 75.5, "CCur(75,50 kr.)") + +Exit Sub +errorHandler: +TestUtil.ReportErrorHandler("verify_testCCurDaDKLocale", Err, Error$, Erl) +End Sub diff --git a/basic/qa/basic_coverage/test_ccur_method.bas b/basic/qa/basic_coverage/test_ccur_method.bas index cd700cad3c8e..c42dcb938590 100644 --- a/basic/qa/basic_coverage/test_ccur_method.bas +++ b/basic/qa/basic_coverage/test_ccur_method.bas @@ -9,16 +9,73 @@ Option Explicit Function doUnitTest as String +TestUtil.TestInit +verify_testCCur +doUnitTest = TestUtil.GetResult() +End Function -doUnitTest = "FAIL" +Sub verify_testCCur +On Error GoTo errorHandler ' CCUR -if (CCur("100") <> 100) Then Exit Function +TestUtil.AssertEqual(CCur("100"), 100, "CCur(100)") + ' tdf#141050 - passing a number with + sign -if (CCur("+100") <> 100) Then Exit Function +TestUtil.AssertEqual(CCur("+100"), 100, "CCur(100)") ' tdf#141050 - passing a number with - sign -if (CCur("-100") <> -100) Then Exit Function +TestUtil.AssertEqual(CCur("-100"), -100, "CCur(-100)") -doUnitTest = "OK" +' tdf#128122 - verify en_US locale currency format behavior +TestUtil.AssertEqual(CCur("$100"), 100, "CCur($100)") +TestUtil.AssertEqual(CCur("$1.50"), 1.5, "CCur($1.50)") -End Function +verify_testCCurUnderflow +verify_testCCurOverflow +verify_testCCurInvalidFormat + +Exit Sub +errorHandler: +TestUtil.ReportErrorHandler("verify_testCCur", Err, Error$, Erl) +End Sub + +sub verify_testCCurUnderflow +On Error GoTo underflowHandler + +' tdf$128122 - test underflow condition +CCur("-9223372036854775809") +TestUtil.Assert(False, "verify_testCCur", "underflow error not raised") + +Exit Sub +underflowHandler: +If(Err <> 6) Then +TestUtil.Assert(False, "verify_testCCur", "underflow error incorrect type") +Endif +End Sub + +sub verify_testCCurOverflow +On Error GoTo overflowHandler + +' tdf$128122 - test overflow condition +CCur("9223372036854775808") +TestUtil.Assert(False, "verify_testCCur", "overflow error not raised") + +Exit Sub +overflowHandler: +If(Err <> 6) Then +TestUtil.Assert(False, "verify_testCCur", "overflow error incorrect type") +Endif +End Sub + +sub verify_testCCurInvalidFormat +On Error GoTo invalidFormatHandler + +' tdf$128122 - test invalid format in en_US locale +CCur("75,50 kr") +TestUtil.Assert(False, "verify_testCCur", "invalid format error not raised") + +Exit Sub +invalidFormatHandler: +If(Err <> 13) Then +TestUtil.Assert(False, "verify_testCCur", "invalid format error incorrect type") +Endif +End Sub diff --git a/basic/qa/basic_coverage/zh-CN/test_ccur_zh_CN_locale.bas b/basic/qa/basic_coverage/zh-CN/test_ccur_zh_CN_locale.bas new file mode 100644 index ..38a084e36c7f --- /dev/null +++ b/basic/qa/basic_coverage/zh-CN/test_ccur_zh_CN_locale.bas @@ -0,0 +1,27 @@ +' +' This file is