diff --git a/android/source/src/main/play/listings/en-US/graphics/icon.png b/android/source/src/main/play/listings/en-US/graphics/icon.png
deleted file mode 120000
index f3e316efb456..000000000000
--- a/android/source/src/main/play/listings/en-US/graphics/icon.png
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../../ic_launcher-web.png
\ No newline at end of file
diff --git a/android/source/src/main/play/listings/en-US/graphics/icon/icon.png b/android/source/src/main/play/listings/en-US/graphics/icon/icon.png
new file mode 120000
index 000000000000..f78b23fa9ae5
--- /dev/null
+++ b/android/source/src/main/play/listings/en-US/graphics/icon/icon.png
@@ -0,0 +1 @@
+../../../../../../../ic_launcher-web.png
\ No newline at end of file
diff --git a/avmedia/source/gtk/gtkplayer.cxx b/avmedia/source/gtk/gtkplayer.cxx
index 4dca3e202a24..617991fecce2 100644
--- a/avmedia/source/gtk/gtkplayer.cxx
+++ b/avmedia/source/gtk/gtkplayer.cxx
@@ -343,11 +343,7 @@ uno::Reference<::media::XPlayerWindow>
return nullptr;
m_pVideo = gtk_picture_new_for_paintable(GDK_PAINTABLE(m_pStream));
-#if GTK_CHECK_VERSION(4, 7, 2)
gtk_picture_set_content_fit(GTK_PICTURE(m_pVideo), GTK_CONTENT_FIT_FILL);
-#else
- gtk_picture_set_keep_aspect_ratio(GTK_PICTURE(m_pVideo), false);
-#endif
gtk_widget_set_can_target(m_pVideo, false);
gtk_widget_set_vexpand(m_pVideo, true);
gtk_widget_set_hexpand(m_pVideo, true);
diff --git a/basctl/uiconfig/basicide/ui/deletelangdialog.ui b/basctl/uiconfig/basicide/ui/deletelangdialog.ui
index c403c0270e55..4bc232a8f60a 100644
--- a/basctl/uiconfig/basicide/ui/deletelangdialog.ui
+++ b/basctl/uiconfig/basicide/ui/deletelangdialog.ui
@@ -32,4 +32,4 @@
-
\ No newline at end of file
+
diff --git a/basctl/uiconfig/basicide/ui/dialogpage.ui b/basctl/uiconfig/basicide/ui/dialogpage.ui
index d4e66ea56396..5957ae76b587 100644
--- a/basctl/uiconfig/basicide/ui/dialogpage.ui
+++ b/basctl/uiconfig/basicide/ui/dialogpage.ui
@@ -271,4 +271,4 @@
-
\ No newline at end of file
+
diff --git a/basctl/uiconfig/basicide/ui/sortmenu.ui b/basctl/uiconfig/basicide/ui/sortmenu.ui
index dc0d23ca7413..bd40fcb8f123 100644
--- a/basctl/uiconfig/basicide/ui/sortmenu.ui
+++ b/basctl/uiconfig/basicide/ui/sortmenu.ui
@@ -39,4 +39,4 @@
-
\ No newline at end of file
+
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index 419b2bb31a84..463d11b95fbf 100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -1697,8 +1697,9 @@ bool checkUnoObjectType(SbUnoObject& rUnoObj, const OUString& rClass)
OUString aInterfaceName = xClass->getName();
if ( aInterfaceName == "com.sun.star.bridge.oleautomation.XAutomationObject" )
{
- // there is a hack in the extensions/source/ole/oleobj.cxx to return the typename of the automation object, lets check if it
- // matches
+ // there is a hack in the extensions/source/ole/oleobj.cxx
+ // to return the typename of the automation object, let's
+ // check if it matches
Reference< XInvocation > xInv( aToInspectObj, UNO_QUERY );
if ( xInv.is() )
{
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index f3551bc1b425..95d751bb0202 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -1744,7 +1744,7 @@ bool SbModule::HasExeCode()
{
// And empty Image always has the Global Chain set up
static const unsigned char pEmptyImage[] = { 0x45, 0x0 , 0x0, 0x0, 0x0 };
- // lets be stricter for the moment than VBA
+ // let's be stricter for the moment than VBA
if (!IsCompiled())
{
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 90b40cb8adc8..b692c66de698 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -1641,7 +1641,7 @@ static bool checkUnoStructCopy( bool bVBA, SbxVariableRef const & refVal, SbxVar
// There are some circumstances when calling GetObject
// will trigger an error, we need to squash those here.
// Alternatively it is possible that the same scenario
- // could overwrite and existing error. Lets prevent that
+ // could overwrite and existing error. Let's prevent that
SbxObjectRef xVarObj = static_cast(refVar->GetObject());
if ( eOldErr != ERRCODE_NONE )
SbxBase::SetError( eOldErr );
@@ -3698,7 +3698,7 @@ SbxVariable* SbiRuntime::FindElement( SbxObject* pObj, sal_uInt32 nOp1, sal_uInt
}
// consider index-access for UnoObjects
// definitely we want this for VBA where properties are often
- // collections ( which need index access ), but lets only do
+ // collections ( which need index access ), but let's only do
// this if we actually have params following
else if( bVBAEnabled && dynamic_cast( pElem) != nullptr && pElem->GetParameters() )
{
diff --git a/bin/convwatch.py b/bin/convwatch.py
index 93082186f319..25920b7343c8 100644
--- a/bin/convwatch.py
+++ b/bin/convwatch.py
@@ -355,7 +355,7 @@ def runLoadPrintFileTests(opts, dirs, suffix, reference):
def mkImages(file, resolution):
argv = [ "gs", "-r" + resolution, "-sOutputFile=" + file + ".%04d.jpeg",
"-dNOPROMPT", "-dNOPAUSE", "-dBATCH", "-sDEVICE=jpeg", file ]
- ret = subprocess.check_call(argv)
+ subprocess.check_call(argv)
def mkAllImages(dirs, suffix, resolution, reference, failed):
if reference:
diff --git a/bin/find-german-comments b/bin/find-german-comments
index 251f4f77f270..de1ed9481fca 100755
--- a/bin/find-german-comments
+++ b/bin/find-german-comments
@@ -61,7 +61,6 @@ class Parser:
"""
Extracts the source code comments.
"""
- linenum = 0
if self.args.verbose:
print("processing file '%s'...\n" % filename)
sock = open(filename)
@@ -95,7 +94,6 @@ class Parser:
elif "/*" in i and "*/" not in i and not in_comment:
# start of a real multiline comment
in_comment = True
- linenum = count
s = re.sub(r".*/\*+", "", i.strip(self.strip))
if len(s):
buf.append(s.strip(self.strip))
@@ -156,7 +154,7 @@ class Parser:
if len(path) >= START:
return 1
diff = START - len(path)
- if diff % 4 is not 0:
+ if (diff % 4) != 0:
padding = 1
else:
padding = 0
@@ -216,7 +214,7 @@ class Parser:
done = False
while not done:
nextElem = os.path.split(lastElem)[0]
- if nextElem is not '':
+ if nextElem != '':
lastElem = nextElem
else:
done = True
@@ -378,10 +376,10 @@ class Parser:
if not baseDir in directory_allowlist:
sys.stderr.write("\n - Error: Missing path %s -\n\n" % baseDir)
sys.exit(1)
- elif directory_allowlist[baseDir] is 0:
+ elif directory_allowlist[baseDir] == 0:
self.check_file(path.strip())
num_checked = num_checked + 1
- elif directory_allowlist[baseDir] is 1:
+ elif directory_allowlist[baseDir] == 1:
sys.stderr.write("Skipping excluded directory %s\n" % baseDir)
directory_allowlist[baseDir] = 2
elif not globalscan:
diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide
index ef1e27dd6748..b3f8b9fbd371 100755
--- a/bin/gbuild-to-ide
+++ b/bin/gbuild-to-ide
@@ -866,6 +866,12 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
def __init__(self, gbuildparser, ide):
IdeIntegrationGenerator.__init__(self, gbuildparser, ide)
self.toolset = os.environ['VCTOOLSET']
+ if os.environ['CPUNAME'] == 'X86_64':
+ self.platform = 'x64'
+ elif os.environ['CPUNAME'] == 'AARCH64':
+ self.platform = 'ARM'
+ else: # 'INTEL'
+ self.platform = 'Win32'
self.solution_directory = self.gbuildparser.builddir
self.configurations = {
'Build': {
@@ -995,7 +1001,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
f.write('EndProject\n')
# end Folders to group tests/libraries/executables
f.write('Global\n')
- platform = 'Win32'
+ platform = self.platform
f.write('\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n')
for cfg in self.configurations:
f.write('\t\t%(cfg)s|%(platform)s = %(cfg)s|%(platform)s\n' % {'cfg': cfg, 'platform': platform})
@@ -1071,7 +1077,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
ET.register_namespace('', self.ns)
proj_node = ET.Element('{%s}Project' % self.ns, DefaultTargets='Build', ToolsVersion='4.0')
proj_confs_node = ET.SubElement(proj_node, '{%s}ItemGroup' % self.ns, Label='ProjectConfigurations')
- platform = 'Win32'
+ platform = self.platform
for configuration in self.configurations:
proj_conf_node = ET.SubElement(proj_confs_node,
'{%s}ProjectConfiguration' % self.ns,
diff --git a/bin/refcount_leak.py b/bin/refcount_leak.py
index de98d065a2ac..d0b8cd502f7c 100755
--- a/bin/refcount_leak.py
+++ b/bin/refcount_leak.py
@@ -95,7 +95,7 @@ def getFunction(frame):
start = frame.index(" in ") + len(" in ")
try:
end = frame.index(" at ", start)
- except ValueError as e:
+ except ValueError:
# argh... stack frames may be split across multiple lines if
# a parameter has a fancy pretty printer
return frame[start:]
diff --git a/bin/update_pch_bisect b/bin/update_pch_bisect
index 271cbc88ff1b..71072303efdc 100755
--- a/bin/update_pch_bisect
+++ b/bin/update_pch_bisect
@@ -54,8 +54,7 @@ def run(command):
def update_pch(filename, lines, marks):
with open(filename, 'w') as f:
- for i in xrange(len(marks)):
- mark = marks[i]
+ for i, mark in enumerate(marks):
if mark <= TEST_ON:
f.write(lines[i])
else:
@@ -132,8 +131,7 @@ def get_marks(lines):
marks = []
min = -1
max = -1
- for i in xrange(len(lines)):
- line = lines[i]
+ for i, line in enumerate(lines):
if line.startswith('#include'):
marks.append(TEST_ON)
min = i if min < 0 else min
@@ -205,8 +203,8 @@ def main():
# Simplify further, as sometimes we can have
# false positives due to the benign nature
# of includes that are not absolutely required.
- for i in xrange(len(marks)):
- if marks[i] == GOOD:
+ for i, mark in enumerate(marks):
+ if mark == GOOD:
marks[i] = TEST_OFF
update_pch(filename, lines, marks)
if not run(command):
@@ -214,14 +212,14 @@ def main():
marks[i] = GOOD
else:
marks[i] = BAD
- elif marks[i] == TEST_OFF:
+ elif mark == TEST_OFF:
marks[i] = TEST_ON
update_pch(filename, lines, marks)
log('')
- for i in xrange(len(marks)):
- if marks[i] == (BAD if FIND_CONFLICTS else GOOD):
+ for i, mark in enumerate(marks):
+ if mark == (BAD if FIND_CONFLICTS else GOOD):
print("'{}',".format(get_filename(lines[i].strip('\n'))))
return 0
@@ -258,8 +256,7 @@ class TestBisectConflict(unittest.TestCase):
def _update_func(self, lines, marks):
self.lines = []
- for i in xrange(len(marks)):
- mark = marks[i]
+ for i, mark in enumerate(marks):
if mark <= TEST_ON:
self.lines.append(lines[i])
else:
@@ -282,7 +279,7 @@ class TestBisectConflict(unittest.TestCase):
def test_conflict(self):
lines = self.TEST.split('\n')
- for pos in xrange(len(lines) + 1):
+ for pos in range(len(lines) + 1):
lines = self.TEST.split('\n')
lines.insert(pos, self.BAD_LINE)
(marks, min, max) = get_marks(lines)
@@ -290,11 +287,11 @@ class TestBisectConflict(unittest.TestCase):
marks = bisect(lines, marks, min, max,
lambda l, m: self._update_func(l, m),
lambda: self._test_func())
- for i in xrange(len(marks)):
+ for i, mark in enumerate(marks):
if i == pos:
- self.assertEqual(BAD, marks[i])
+ self.assertEqual(BAD, mark)
else:
- self.assertNotEqual(BAD, marks[i])
+ self.assertNotEqual(BAD, mark)
class TestBisectRequired(unittest.TestCase):
TEST = """#include
@@ -310,8 +307,7 @@ class TestBisectRequired(unittest.TestCase):
def _update_func(self, lines, marks):
self.lines = []
- for i in xrange(len(marks)):
- mark = marks[i]
+ for i, mark in enumerate(marks):
if mark <= TEST_ON:
self.lines.append(lines[i])
else:
@@ -335,7 +331,7 @@ class TestBisectRequired(unittest.TestCase):
def test_required(self):
lines = self.TEST.split('\n')
- for pos in xrange(len(lines) + 1):
+ for pos in range(len(lines) + 1):
lines = self.TEST.split('\n')
lines.insert(pos, self.REQ_LINE)
(marks, min, max) = get_marks(lines)
@@ -343,11 +339,11 @@ class TestBisectRequired(unittest.TestCase):
marks = bisect(lines, marks, min, max,
lambda l, m: self._update_func(l, m),
lambda: self._test_func())
- for i in xrange(len(marks)):
+ for i, mark in enumerate(marks):
if i == pos:
- self.assertEqual(GOOD, marks[i])
+ self.assertEqual(GOOD, mark)
else:
- self.assertNotEqual(GOOD, marks[i])
+ self.assertNotEqual(GOOD, mark)
unittest.main()
diff --git a/chart2/uiconfig/ui/3dviewdialog.ui b/chart2/uiconfig/ui/3dviewdialog.ui
index 2f09169344a6..4f414bb7f996 100644
--- a/chart2/uiconfig/ui/3dviewdialog.ui
+++ b/chart2/uiconfig/ui/3dviewdialog.ui
@@ -95,4 +95,4 @@
help
-
\ No newline at end of file
+
diff --git a/chart2/uiconfig/ui/chardialog.ui b/chart2/uiconfig/ui/chardialog.ui
index 44492c12e44f..171c171e2dc3 100644
--- a/chart2/uiconfig/ui/chardialog.ui
+++ b/chart2/uiconfig/ui/chardialog.ui
@@ -175,4 +175,4 @@
help
-
\ No newline at end of file
+
diff --git a/cli_ure/source/uno_bridge/cli_proxy.cxx b/cli_ure/source/uno_bridge/cli_proxy.cxx
index 35d9a02cbd44..e37a33a1069b 100644
--- a/cli_ure/source/uno_bridge/cli_proxy.cxx
+++ b/cli_ure/source/uno_bridge/cli_proxy.cxx
@@ -711,7 +711,7 @@ void CliProxy::makeMethodInfos()
{
sr::InterfaceMapping mapInherited = objType->GetInterfaceMap(
arInheritedIfaces[nArLength - 1]);
- int numMethods = mapInherited.TargetMethods->Length;
+ numMethods = mapInherited.TargetMethods->Length;
m_arInterfaceMethodCount[nArLength - 1] = numMethods;
for (int i = 0; i < numMethods; i++, index++)
{
@@ -1029,11 +1029,11 @@ void SAL_CALL cli_proxy_dispatch(
OSL_ENSURE(usOid.equals( proxy->m_usOid ),
"### different oids!");
#endif
- uno_Interface* pUnoI = bridge->map_cli2uno(
+ uno_Interface* pUnoI2 = bridge->map_cli2uno(
proxy->m_cliI, demanded_td.get() );
uno_any_construct(
- (uno_Any *)uno_ret, &pUnoI, demanded_td.get(), 0 );
- (*pUnoI->release)( pUnoI );
+ (uno_Any *)uno_ret, &pUnoI2, demanded_td.get(), 0 );
+ (*pUnoI2->release)( pUnoI2 );
}
else // object does not support demanded interface
{
diff --git a/cli_ure/source/uno_bridge/cli_uno.cxx b/cli_ure/source/uno_bridge/cli_uno.cxx
index 6af17e065505..bb396eb6df0f 100644
--- a/cli_ure/source/uno_bridge/cli_uno.cxx
+++ b/cli_ure/source/uno_bridge/cli_uno.cxx
@@ -106,10 +106,10 @@ System::Object^ Bridge::call_uno(uno_Interface * pUnoI,
// cleanup uno in args
for (sal_Int32 n = 0; n < nPos; ++n)
{
- typelib_MethodParameter const & param = pParams[n];
- if (param.bIn)
+ typelib_MethodParameter const & param2 = pParams[n];
+ if (param2.bIn)
{
- uno_type_destructData(uno_args[n], param.pTypeRef, 0);
+ uno_type_destructData(uno_args[n], param2.pTypeRef, 0);
}
}
throw;
@@ -253,9 +253,9 @@ void Bridge::call_cli(
// cleanup uno pure out
for ( sal_Int32 n = 0; n < nPos; ++n )
{
- typelib_MethodParameter const & param = params[ n ];
- if (! param.bIn)
- uno_type_destructData( uno_args[ n ], param.pTypeRef, 0 );
+ typelib_MethodParameter const & param2 = params[ n ];
+ if (! param2.bIn)
+ uno_type_destructData( uno_args[ n ], param2.pTypeRef, 0 );
}
throw;
}
diff --git a/codemaker/source/netmaker/netproduce.hxx b/codemaker/source/netmaker/netproduce.hxx
index c7c47c4b390c..4b90fff427f3 100644
--- a/codemaker/source/netmaker/netproduce.hxx
+++ b/codemaker/source/netmaker/netproduce.hxx
@@ -23,6 +23,8 @@ class NetProducer
public:
NetProducer()
: m_manager(new TypeManager())
+ , m_verbose(false)
+ , m_dryRun(false)
{
}
diff --git a/compilerplugins/clang/cstylecast.cxx b/compilerplugins/clang/cstylecast.cxx
index a516144a6141..f548b1fd8123 100644
--- a/compilerplugins/clang/cstylecast.cxx
+++ b/compilerplugins/clang/cstylecast.cxx
@@ -139,7 +139,7 @@ bool isLiteralLike(Expr const * expr) {
}
bool canBeUsedForFunctionalCast(TypeSourceInfo const * info) {
- // Must be or , lets approximate that here:
+ // Must be or , let's approximate that here:
assert(info != nullptr);
auto const type = info->getType();
if (type.hasLocalQualifiers()) {
diff --git a/compilerplugins/clang/dbgunhandledexception.cxx b/compilerplugins/clang/dbgunhandledexception.cxx
index e6c1f157cc9d..699297b5a248 100644
--- a/compilerplugins/clang/dbgunhandledexception.cxx
+++ b/compilerplugins/clang/dbgunhandledexception.cxx
@@ -16,6 +16,7 @@
#include
#include
#include
+#include
namespace loplugin
{
diff --git a/compilerplugins/clang/elidestringvar.cxx b/compilerplugins/clang/elidestringvar.cxx
index c14eaf027b0f..097120463ea0 100644
--- a/compilerplugins/clang/elidestringvar.cxx
+++ b/compilerplugins/clang/elidestringvar.cxx
@@ -12,6 +12,7 @@
#include
#include
#include
+#include
#include "check.hxx"
#include "compat.hxx"
diff --git a/compilerplugins/clang/refcounting.cxx b/compilerplugins/clang/refcounting.cxx
index 801173ce6488..2bee2f80cf65 100644
--- a/compilerplugins/clang/refcounting.cxx
+++ b/compilerplugins/clang/refcounting.cxx
@@ -336,6 +336,8 @@ bool containsSalhelperReferenceObjectSubclass(const clang::Type* pType0) {
auto const dc = loplugin::DeclCheck(pTemplate);
if (dc.Class("Reference").Namespace("rtl").GlobalNamespace()
|| (dc.Class("OStoreHandle").AnonymousNamespace().Namespace("store")
+ .GlobalNamespace())
+ || (dc.Class("DeleteRtlReferenceOnDeinit").Namespace("vcl")
.GlobalNamespace()))
{
return false;
diff --git a/compilerplugins/clang/store/checkunusedparams.cxx b/compilerplugins/clang/store/checkunusedparams.cxx
index 2f45049632d3..33916b4810bb 100644
--- a/compilerplugins/clang/store/checkunusedparams.cxx
+++ b/compilerplugins/clang/store/checkunusedparams.cxx
@@ -147,7 +147,7 @@ void CheckUnusedParams::checkForFunctionDecl(Expr const * expr, bool bCheckOnly)
static int noFieldsInRecord(RecordType const * recordType) {
auto recordDecl = recordType->getDecl();
- // if it's complicated, lets just assume it has fields
+ // if it's complicated, let's just assume it has fields
if (isa(recordDecl))
return 1;
return std::distance(recordDecl->field_begin(), recordDecl->field_end());
diff --git a/compilerplugins/clang/unsignedcompare.cxx b/compilerplugins/clang/unsignedcompare.cxx
index 5b55edea2843..9b1ed684a90f 100644
--- a/compilerplugins/clang/unsignedcompare.cxx
+++ b/compilerplugins/clang/unsignedcompare.cxx
@@ -122,7 +122,7 @@ public:
// actually meant to e.g. clamp from a large signed type to a small unsigned type. The
// assumption is that this will only be likely the case for BO_EQ (==) and BO_NE (!=)
// comparisons, so filter these out here (not sure what case BO_Cmp (<=>) will turn out to
- // be, so lets keep it here at least for now):
+ // be, so let's keep it here at least for now):
switch (expr->getOpcode())
{
case BO_Cmp:
diff --git a/configure.ac b/configure.ac
index 50f26eba6611..38dd927c6c47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12125,7 +12125,7 @@ if test "$test_gtk4" = yes -a "x$enable_gtk4" = "xyes"; then
add_warning 'Non-system cairo combined with gtk4 is assumed to cause trouble; proceed at your own risk.'
fi
: ${with_system_cairo:=yes}
- PKG_CHECK_MODULES(GTK4, gtk4 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo atk)
+ PKG_CHECK_MODULES(GTK4, gtk4 >= 4.10 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo atk)
GTK4_CFLAGS=$(printf '%s' "$GTK4_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
GTK4_CFLAGS="$GTK4_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
FilterLibs "${GTK4_LIBS}"
@@ -13312,7 +13312,7 @@ AC_SUBST(SYSTEM_RHINO)
AC_SUBST(RHINO_JAR)
# This is only used in Qt5/Qt6/KF5/KF6 checks to determine if /usr/lib64
-# paths should be added to library search path. So lets put all 64-bit
+# paths should be added to library search path. So let's put all 64-bit
# platforms there.
supports_multilib=
case "$host_cpu" in
diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx
index ca4521b05e7d..89d3d30779e6 100644
--- a/connectivity/source/parse/sqlnode.cxx
+++ b/connectivity/source/parse/sqlnode.cxx
@@ -387,7 +387,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(OUStringBuffer& rString, const
return;
}
- // Lets see how many nodes this subtree has
+ // Let's see how many nodes this subtree has
sal_uInt32 nCount = count();
bool bHandled = false;
diff --git a/cppu/source/threadpool/threadpool.cxx b/cppu/source/threadpool/threadpool.cxx
index 5a6127dabcf7..7084978a93d0 100644
--- a/cppu/source/threadpool/threadpool.cxx
+++ b/cppu/source/threadpool/threadpool.cxx
@@ -106,7 +106,7 @@ namespace cppu_threadpool
}
/******************
- * This methods lets the thread wait a certain amount of time. If within this timespan
+ * This method lets the thread wait a certain amount of time. If within this timespan
* a new request comes in, this thread is reused. This is done only to improve performance,
* it is not required for threadpool functionality.
******************/
diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
index 61bee50455b3..3f57676a13ec 100644
--- a/cui/source/dialogs/AdditionsDialog.cxx
+++ b/cui/source/dialogs/AdditionsDialog.cxx
@@ -71,11 +71,12 @@ using namespace ::com::sun::star::beans;
namespace
{
// Gets the content of the given URL and returns as a standard string
-std::string ucbGet(const OUString& rURL)
+std::string ucbGet(const OUString& rURL, const css::uno::Reference& xParentWin)
{
try
{
- auto const s = utl::UcbStreamHelper::CreateStream(rURL, StreamMode::STD_READ);
+ auto const s
+ = utl::UcbStreamHelper::CreateStream(rURL, StreamMode::STD_READ, xParentWin, false);
if (!s)
{
SAL_WARN("cui.dialogs", "CreateStream <" << rURL << "> failed");
@@ -404,7 +405,10 @@ void SearchAndParseThread::execute()
if (m_bIsFirstLoading)
{
- std::string sResponse = !m_bUITest ? ucbGet(m_pAdditionsDialog->m_sURL) : "";
+ const auto pDialog = m_pAdditionsDialog->getDialog();
+ std::string sResponse = !m_bUITest ? ucbGet(m_pAdditionsDialog->m_sURL,
+ pDialog ? pDialog->GetXWindow() : nullptr)
+ : "";
parseResponse(sResponse, m_pAdditionsDialog->m_aAllExtensionsVector);
std::sort(m_pAdditionsDialog->m_aAllExtensionsVector.begin(),
m_pAdditionsDialog->m_aAllExtensionsVector.end(),
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 87e803f677b4..393f9f79d872 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -1145,7 +1145,9 @@ IMPL_LINK(OfaAutocorrReplacePage, ModifyHdl, weld::Entry&, rEdt, void)
else
{
aTestStr = pCharClass->lowercase( aTestStr );
- if( aTestStr.startsWith(aWordStr) && !bTmpSelEntry )
+ if( !bTmpSelEntry && ( aTestStr.startsWith(aWordStr)
+ // find also with ".*" and between :colons:
+ || aTestStr.replaceAll(".*","").replaceAll(":", "").startsWith(aWordStr) ) )
{
m_xReplaceTLB->scroll_to_row(rIter);
bTmpSelEntry = true;
diff --git a/cui/uiconfig/ui/asiantypography.ui b/cui/uiconfig/ui/asiantypography.ui
index 3e926f1d647e..317301518115 100644
--- a/cui/uiconfig/ui/asiantypography.ui
+++ b/cui/uiconfig/ui/asiantypography.ui
@@ -77,4 +77,4 @@
-
\ No newline at end of file
+
diff --git a/cui/uiconfig/ui/borderareatransparencydialog.ui b/cui/uiconfig/ui/borderareatransparencydialog.ui
index 62f746348451..03d493c8631c 100644
--- a/cui/uiconfig/ui/borderareatransparencydialog.ui
+++ b/cui/uiconfig/ui/borderareatransparencydialog.ui
@@ -177,4 +177,4 @@
reset
-
\ No newline at end of file
+
diff --git a/cui/uiconfig/ui/borderbackgrounddialog.ui b/cui/uiconfig/ui/borderbackgrounddialog.ui
index fb9a2e46cccb..ec761999f19b 100644
--- a/cui/uiconfig/ui/borderbackgrounddialog.ui
+++ b/cui/uiconfig/ui/borderbackgrounddialog.ui
@@ -1,34 +1,31 @@
-
+
- False
- 6
+ False
+ 6
Border / Background
False
True
- dialog
-
-
-
+ dialog
- False
+ False
vertical
12
- False
- end
+ False
+ end
_OK
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -41,8 +38,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -55,8 +52,8 @@
_Help
True
- True
- True
+ True
+ True
True
@@ -70,8 +67,8 @@
_Reset
True
- True
- True
+ True
+ True
True
@@ -84,23 +81,23 @@
False
True
- end
+ end
0
True
- True
+ True
True
True
True
- True
+ True
True
- False
+ False
@@ -109,18 +106,18 @@
True
- False
+ False
Borders
- False
+ False
True
- False
+ False
@@ -132,12 +129,12 @@
True
- False
+ False
Background
1
- False
+ False
diff --git a/cui/uiconfig/ui/eventassigndialog.ui b/cui/uiconfig/ui/eventassigndialog.ui
index 2ce22196d113..b2f79cc0dc10 100644
--- a/cui/uiconfig/ui/eventassigndialog.ui
+++ b/cui/uiconfig/ui/eventassigndialog.ui
@@ -1,30 +1,30 @@
-
+
- False
- 6
+ False
+ 6
Assign Macro
False
- normal
+ normal
- False
+ False
vertical
12
- False
- end
+ False
+ end
_OK
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -37,8 +37,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -51,8 +51,8 @@
_Help
True
- True
- True
+ True
+ True
True
@@ -66,7 +66,7 @@
False
True
- end
+ end
0
diff --git a/cui/uiconfig/ui/querydeletedictionarydialog.ui b/cui/uiconfig/ui/querydeletedictionarydialog.ui
index 38185b2eb7d6..aaba7043233c 100644
--- a/cui/uiconfig/ui/querydeletedictionarydialog.ui
+++ b/cui/uiconfig/ui/querydeletedictionarydialog.ui
@@ -1,31 +1,31 @@
-
+
- False
+ False
Delete Dictionary?
False
True
- dialog
- True
- warning
+ dialog
+ True
+ warning
yes-no
Do you really want to delete the dictionary?
- This action cannot be undone.
+ This action cannot be undone.
- False
+ False
vertical
12
- False
+ False
False
True
- end
+ end
0
diff --git a/cui/uiconfig/ui/querydeletelineenddialog.ui b/cui/uiconfig/ui/querydeletelineenddialog.ui
index 6917fc62422a..7150df60c0b0 100644
--- a/cui/uiconfig/ui/querydeletelineenddialog.ui
+++ b/cui/uiconfig/ui/querydeletelineenddialog.ui
@@ -1,31 +1,31 @@
-
+
- False
+ False
Delete Arrow Style?
False
True
- dialog
- True
- question
+ dialog
+ True
+ question
yes-no
Do you really want to delete the arrow style?
- This action cannot be undone.
+ This action cannot be undone.
- False
+ False
vertical
12
- False
+ False
False
True
- end
+ end
0
diff --git a/dbaccess/source/core/inc/ModelImpl.hxx b/dbaccess/source/core/inc/ModelImpl.hxx
index b59371125cbc..2ddd1889dc2f 100644
--- a/dbaccess/source/core/inc/ModelImpl.hxx
+++ b/dbaccess/source/core/inc/ModelImpl.hxx
@@ -431,7 +431,7 @@ public:
css::uno::Reference< css::script::XStorageBasedLibraryContainer >
getLibraryContainer( bool _bScript );
- /** lets our library containers store themself into the given root storage
+ /** lets our library containers store themselves into the given root storage
*/
void storeLibraryContainersTo( const css::uno::Reference< css::embed::XStorage >& _rxToRootStorage );
diff --git a/dbaccess/uiconfig/ui/admindialog.ui b/dbaccess/uiconfig/ui/admindialog.ui
index 73ea4ef05248..ecbb0525f5a2 100644
--- a/dbaccess/uiconfig/ui/admindialog.ui
+++ b/dbaccess/uiconfig/ui/admindialog.ui
@@ -132,4 +132,4 @@
help
-
\ No newline at end of file
+
diff --git a/dbaccess/uiconfig/ui/autocharsetpage.ui b/dbaccess/uiconfig/ui/autocharsetpage.ui
index 85a00baff32b..c52a83366590 100644
--- a/dbaccess/uiconfig/ui/autocharsetpage.ui
+++ b/dbaccess/uiconfig/ui/autocharsetpage.ui
@@ -1,37 +1,37 @@
-
+
True
- False
+ False
True
True
- 6
+ 6
vertical
12
True
- False
+ False
True
- 0
- none
+ 0
+ none
True
- False
- True
- 12
+ False
12
6
+ True
+ 12
True
- False
+ False
_Character set:
- True
- charset
+ True
+ charset
False
@@ -42,7 +42,7 @@
True
- True
+ True
True
@@ -56,7 +56,7 @@
-
\ No newline at end of file
+
diff --git a/dbaccess/uiconfig/ui/designsavemodifieddialog.ui b/dbaccess/uiconfig/ui/designsavemodifieddialog.ui
index 57e781bb643d..446e31cc1a17 100644
--- a/dbaccess/uiconfig/ui/designsavemodifieddialog.ui
+++ b/dbaccess/uiconfig/ui/designsavemodifieddialog.ui
@@ -1,30 +1,30 @@
-
+
- False
+ False
False
True
- dialog
- True
- question
+ dialog
+ True
+ question
Do you want to save the changes?
- The relation design has been changed.
+ The relation design has been changed.
- False
+ False
vertical
12
- False
+ False
_No
True
- True
- True
+ True
+ True
True
@@ -37,10 +37,10 @@
_Yes
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -53,8 +53,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -67,7 +67,7 @@
False
True
- end
+ end
0
diff --git a/dbaccess/uiconfig/ui/generalpagedialog.ui b/dbaccess/uiconfig/ui/generalpagedialog.ui
index 04fd637bfbcd..8e785fad89aa 100644
--- a/dbaccess/uiconfig/ui/generalpagedialog.ui
+++ b/dbaccess/uiconfig/ui/generalpagedialog.ui
@@ -83,4 +83,4 @@ The new settings you make will overwrite your existing settings.
-
\ No newline at end of file
+
diff --git a/dbaccess/uiconfig/ui/savemodifieddialog.ui b/dbaccess/uiconfig/ui/savemodifieddialog.ui
index b90b4dd9a2d9..6152b8eb6f47 100644
--- a/dbaccess/uiconfig/ui/savemodifieddialog.ui
+++ b/dbaccess/uiconfig/ui/savemodifieddialog.ui
@@ -1,30 +1,30 @@
-
+
- False
+ False
False
True
- dialog
- True
- question
+ dialog
+ True
+ question
Do you want to save the changes?
- The current record has been changed.
+ The current record has been changed.
- False
+ False
vertical
12
- False
+ False
_No
True
- True
- True
+ True
+ True
True
@@ -37,10 +37,10 @@
_Yes
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -53,8 +53,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -67,7 +67,7 @@
False
True
- end
+ end
0
diff --git a/dbaccess/uiconfig/ui/tabledesignsavemodifieddialog.ui b/dbaccess/uiconfig/ui/tabledesignsavemodifieddialog.ui
index ea0fdd5b01d5..240189bea5ba 100644
--- a/dbaccess/uiconfig/ui/tabledesignsavemodifieddialog.ui
+++ b/dbaccess/uiconfig/ui/tabledesignsavemodifieddialog.ui
@@ -1,30 +1,30 @@
-
+
- False
+ False
False
True
- dialog
- True
- question
+ dialog
+ True
+ question
Do you want to save the changes?
- The table has been changed.
+ The table has been changed.
- False
+ False
vertical
12
- False
+ False
_No
True
- True
- True
+ True
+ True
True
@@ -37,10 +37,10 @@
_Yes
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -53,8 +53,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -67,7 +67,7 @@
False
True
- end
+ end
0
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index d30bd0e582f3..2a52f9843f75 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -454,7 +454,7 @@ void Desktop::Init()
// We need to have service factory before going further, but see fdo#37195.
// Doing this will mmap common.rdb, making it not overwritable on windows,
- // so this can't happen before the synchronization above. Lets rework this
+ // so this can't happen before the synchronization above. Let's rework this
// so that the above is called *from* CreateApplicationServiceManager or
// something to enforce this gotcha
try
diff --git a/desktop/uiconfig/ui/installforalldialog.ui b/desktop/uiconfig/ui/installforalldialog.ui
index d2f645220f13..7247a971080a 100644
--- a/desktop/uiconfig/ui/installforalldialog.ui
+++ b/desktop/uiconfig/ui/installforalldialog.ui
@@ -1,31 +1,31 @@
-
+
- False
+ False
False
True
- dialog
- True
- question
+ dialog
+ True
+ question
For whom do you want to install the extension?
- Make sure that no further users are working with the same %PRODUCTNAME, when installing an extension for all users in a multi user environment.
+ Make sure that no further users are working with the same %PRODUCTNAME, when installing an extension for all users in a multi user environment.
- False
+ False
vertical
24
- False
+ False
_For all users
True
- True
- True
- True
+ True
+ True
+ True
False
@@ -37,11 +37,11 @@
_Only for me
True
- True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
+ True
False
@@ -53,8 +53,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -67,7 +67,7 @@
False
True
- end
+ end
0
diff --git a/dictionaries b/dictionaries
index a2bf59878dd7..fc2dc383a40e 160000
--- a/dictionaries
+++ b/dictionaries
@@ -1 +1 @@
-Subproject commit a2bf59878dd76685803ec260e15d875746ad6e25
+Subproject commit fc2dc383a40e56c0118866c9110954bebc6ea41d
diff --git a/download.lst b/download.lst
index c54b7cd5488a..5109548968b7 100644
--- a/download.lst
+++ b/download.lst
@@ -427,9 +427,9 @@ XMLSEC_TARBALL := xmlsec1-1.3.4.tar.gz
# three static lines
# so that git cherry-pick
# will not run into conflicts
-LIBXML_SHA256SUM := 43ad877b018bc63deb2468d71f95219c2fac196876ef36d1bee51d226173ec93
-LIBXML_VERSION_MICRO := 8
-LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
+LIBXML_SHA256SUM := 25239263dc37f5f55a5393eff27b35f0b7d9ea4b2a7653310598ea8299e3b741
+LIBXML_VERSION_MICRO := 1
+LIBXML_TARBALL := libxml2-2.13.$(LIBXML_VERSION_MICRO).tar.xz
# three static lines
# so that git cherry-pick
# will not run into conflicts
@@ -541,8 +541,8 @@ LIBPNG_TARBALL := libpng-1.6.43.tar.xz
# three static lines
# so that git cherry-pick
# will not run into conflicts
-LIBTIFF_SHA256SUM := e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2
-LIBTIFF_TARBALL := tiff-4.6.0.tar.xz
+LIBTIFF_SHA256SUM := d6da35c9986a4ec845eb96258b3693f8df515f7eb4c1e597ceb03e22788f305b
+LIBTIFF_TARBALL := tiff-4.6.0t.tar.xz
# three static lines
# so that git cherry-pick
# will not run into conflicts
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index 394b18ca7162..f09131b04c30 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -1091,8 +1091,7 @@ void VclPixelProcessor2D::processPatternFillPrimitive2D(
mpOutputDevice->IntersectClipRegion(vcl::Region(aMask));
Wallpaper aWallpaper(aTileImage);
aWallpaper.SetColor(COL_TRANSPARENT);
- Point aPaperPt(aMaskRect.getX() % aTileImage.GetSizePixel().Width(),
- aMaskRect.getY() % aTileImage.GetSizePixel().Height());
+ Point aPaperPt(aMaskRect.getX() % nTileWidth, aMaskRect.getY() % nTileHeight);
tools::Rectangle aPaperRect(aPaperPt, aTileImage.GetSizePixel());
aWallpaper.SetRect(aPaperRect);
mpOutputDevice->DrawWallpaper(aMaskRect, aWallpaper);
@@ -1121,8 +1120,7 @@ void VclPixelProcessor2D::processPatternFillPrimitive2D(
{
Wallpaper aWallpaper(aTileImage);
aWallpaper.SetColor(COL_TRANSPARENT);
- Point aPaperPt(aMaskRect.getX() % aTileImage.GetSizePixel().Width(),
- aMaskRect.getY() % aTileImage.GetSizePixel().Height());
+ Point aPaperPt(aMaskRect.getX() % nTileWidth, aMaskRect.getY() % nTileHeight);
tools::Rectangle aPaperRect(aPaperPt, aTileImage.GetSizePixel());
aWallpaper.SetRect(aPaperRect);
mpOutputDevice->DrawWallpaper(aMaskRect, aWallpaper);
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 45825a2a477b..7c21e4ea1f1c 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -701,8 +701,31 @@ bool VclProcessor2D::RenderFillGraphicPrimitive2DImpl(
// check if offset is used
const sal_Int32 nOffsetX(basegfx::fround(rFillGraphicAttribute.getOffsetX() * nBWidth));
+ const sal_Int32 nOffsetY(basegfx::fround(rFillGraphicAttribute.getOffsetY() * nBHeight));
- if (nOffsetX)
+ if (nOffsetX == 0 && nOffsetY == 0)
+ {
+ if (!bPreScaled)
+ aBitmapEx.Scale(aNeededBitmapSizePixel);
+
+ // if the tile is a single pixel big, just flood fill with that pixel color
+ if (aNeededBitmapSizePixel.getWidth() == 1 && aNeededBitmapSizePixel.getHeight() == 1)
+ {
+ Color col = aBitmapEx.GetPixelColor(0, 0);
+ mpOutputDevice->SetLineColor(col);
+ mpOutputDevice->SetFillColor(col);
+ mpOutputDevice->DrawRect(aVisiblePixel);
+ }
+ else
+ {
+ // TODO vcl does not have an optimised path here, it should be passing some kind of fill/tile
+ // operation down to the cairo/skia layers
+ Wallpaper aWallpaper(aBitmapEx);
+ aWallpaper.SetColor(COL_TRANSPARENT);
+ mpOutputDevice->DrawWallpaper(aVisiblePixel, aWallpaper);
+ }
+ }
+ else if (nOffsetX)
{
// offset in X, so iterate over Y first and draw lines
for (sal_Int32 nYPos(nBTop); nYPos < nOTop + nOHeight; nYPos += nBHeight, nPosY++)
@@ -727,11 +750,8 @@ bool VclProcessor2D::RenderFillGraphicPrimitive2DImpl(
}
}
}
- else
+ else // nOffsetY is used
{
- // check if offset is used
- const sal_Int32 nOffsetY(basegfx::fround(rFillGraphicAttribute.getOffsetY() * nBHeight));
-
// possible offset in Y, so iterate over X first and draw columns
for (sal_Int32 nXPos(nBLeft); nXPos < nOLeft + nOWidth; nXPos += nBWidth, nPosX++)
{
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index fbf28b41c4dd..d0a49d86ac67 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -3684,30 +3684,34 @@ sal_Int32 ImpEditEngine::GetLineNumberAtIndex( sal_Int32 nPara, sal_Int32 nIndex
{
if (!IsFormatted())
FormatDoc();
- sal_Int32 nLineNo = -1;
const ContentNode* pNode = GetEditDoc().GetObject( nPara );
OSL_ENSURE( pNode, "GetLineNumberAtIndex: invalid paragraph index" );
- if (pNode)
+ if (!pNode)
+ return -1;
+ // we explicitly allow for the index to point at the character right behind the text
+ const bool bValidIndex = /*0 <= nIndex &&*/ nIndex <= pNode->Len();
+ OSL_ENSURE( bValidIndex, "GetLineNumberAtIndex: invalid index" );
+ const ParaPortion* pPPortion = maParaPortionList.SafeGetObject(nPara);
+ if (!pPPortion)
{
- // we explicitly allow for the index to point at the character right behind the text
- const bool bValidIndex = /*0 <= nIndex &&*/ nIndex <= pNode->Len();
- OSL_ENSURE( bValidIndex, "GetLineNumberAtIndex: invalid index" );
- const ParaPortion* pPPortion = maParaPortionList.SafeGetObject(nPara);
- const EditLineList& rLineList = pPPortion->GetLines();
- const sal_Int32 nLineCount = rLineList.Count();
- if (nIndex == pNode->Len())
- nLineNo = nLineCount > 0 ? nLineCount - 1 : 0;
- else if (bValidIndex) // nIndex < pNode->Len()
+ SAL_WARN( "editeng", "ImpEditEngine::GetLineNumberAtIndex missing ParaPortion");
+ return -1;
+ }
+ const EditLineList& rLineList = pPPortion->GetLines();
+ const sal_Int32 nLineCount = rLineList.Count();
+ sal_Int32 nLineNo = -1;
+ if (nIndex == pNode->Len())
+ nLineNo = nLineCount > 0 ? nLineCount - 1 : 0;
+ else if (bValidIndex) // nIndex < pNode->Len()
+ {
+ sal_Int32 nStart = -1, nEnd = -1;
+ for (sal_Int32 i = 0; i < nLineCount && nLineNo == -1; ++i)
{
- sal_Int32 nStart = -1, nEnd = -1;
- for (sal_Int32 i = 0; i < nLineCount && nLineNo == -1; ++i)
- {
- const EditLine& rLine = rLineList[i];
- nStart = rLine.GetStart();
- nEnd = rLine.GetEnd();
- if (nStart >= 0 && nStart <= nIndex && nEnd >= 0 && nIndex < nEnd)
- nLineNo = i;
- }
+ const EditLine& rLine = rLineList[i];
+ nStart = rLine.GetStart();
+ nEnd = rLine.GetEnd();
+ if (nStart >= 0 && nStart <= nIndex && nEnd >= 0 && nIndex < nEnd)
+ nLineNo = i;
}
}
return nLineNo;
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 7c1ccc19cfa8..66ecfb814774 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -646,7 +646,7 @@ void ImpEditEngine::CheckPageOverflow()
if (nParaCount == 1)
{
const ParaPortion* pPPortion = GetParaPortions().SafeGetObject(0);
- bOnlyOneEmptyPara = pPPortion->GetLines().Count() == 1
+ bOnlyOneEmptyPara = pPPortion && pPPortion->GetLines().Count() == 1
&& pPPortion->GetLines()[0].GetLen() == 0;
}
@@ -3246,7 +3246,7 @@ void ImpEditEngine::RecalcFormatterFontMetrics( FormatterFontMetric& rCurMetrics
// Fonts without leading cause problems
if ( ( nIntLeading == 0 ) && (mpRefDev->GetOutDevType() == OUTDEV_PRINTER))
{
- // Lets see what Leading one gets on the screen
+ // Let's see what Leading one gets on the screen
VclPtr pVDev = GetVirtualDevice(mpRefDev->GetMapMode(), mpRefDev->GetDrawMode());
rFont.SetPhysFont(*pVDev);
aMetric = pVDev->GetFontMetric();
diff --git a/editeng/source/items/paraitem.cxx b/editeng/source/items/paraitem.cxx
index 07a927947bdd..a63f73c25335 100644
--- a/editeng/source/items/paraitem.cxx
+++ b/editeng/source/items/paraitem.cxx
@@ -802,6 +802,7 @@ SvxTabStop::SvxTabStop()
eAdjustment = SvxTabAdjust::Left;
m_cDecimal = cDfltDecimalChar;
cFill = cDfltFillChar;
+ fillDecimal();
}
@@ -812,9 +813,10 @@ SvxTabStop::SvxTabStop( const sal_Int32 nPos, const SvxTabAdjust eAdjst,
eAdjustment = eAdjst;
m_cDecimal = cDec;
cFill = cFil;
+ fillDecimal();
}
-void SvxTabStop::fillDecimal() const
+void SvxTabStop::fillDecimal()
{
if ( cDfltDecimalChar == m_cDecimal )
m_cDecimal = SvtSysLocale().GetLocaleData().getNumDecimalSep()[0];
diff --git a/editeng/source/items/svxfont.cxx b/editeng/source/items/svxfont.cxx
index 2df18feb449f..3bd2c8086c07 100644
--- a/editeng/source/items/svxfont.cxx
+++ b/editeng/source/items/svxfont.cxx
@@ -670,6 +670,12 @@ SvxFont& SvxFont::operator=( const SvxFont& rFont )
return *this;
}
+bool SvxFont::SvxFontSubsetEquals(const SvxFont& rFont) const
+{
+ return nEsc == rFont.GetEscapement() && nPropr == rFont.GetPropr()
+ && eCaseMap == rFont.GetCaseMap();
+}
+
namespace {
class SvxDoGetCapitalSize : public SvxDoCapitals
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index f187637866e5..638948e747de 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -159,61 +159,24 @@ bool SvxFontListItem::GetPresentation
// class SvxFontItem -----------------------------------------------------
-typedef std::unordered_map SvxFontItemMap;
-
namespace
{
- class SvxFontItemInstanceManager : public ItemInstanceManager
+ class SvxFontItemInstanceManager : public TypeSpecificItemInstanceManager
{
- SvxFontItemMap maRegistered;
-
- public:
- SvxFontItemInstanceManager()
- : ItemInstanceManager(typeid(SvxFontItem).hash_code())
+ protected:
+ virtual size_t hashCode(const SfxPoolItem& rItem) const override
{
+ const SvxFontItem& rFontItem(static_cast(rItem));
+ std::size_t seed(0);
+ o3tl::hash_combine(seed, rItem.Which());
+ o3tl::hash_combine(seed, rFontItem.GetFamilyName().hashCode());
+ o3tl::hash_combine(seed, rFontItem.GetStyleName().hashCode());
+ o3tl::hash_combine(seed, rFontItem.GetFamily());
+ o3tl::hash_combine(seed, rFontItem.GetPitch());
+ o3tl::hash_combine(seed, rFontItem.GetCharSet());
+ return seed;
}
-
- private:
- static size_t hashCode(const SfxPoolItem&);
-
- // standard interface, accessed exclusively
- // by implCreateItemEntry/implCleanupItemEntry
- virtual const SfxPoolItem* find(const SfxPoolItem&) const override;
- virtual void add(const SfxPoolItem&) override;
- virtual void remove(const SfxPoolItem&) override;
};
-
- size_t SvxFontItemInstanceManager::hashCode(const SfxPoolItem& rItem)
- {
- const SvxFontItem& rFontItem(static_cast(rItem));
- std::size_t seed(0);
- o3tl::hash_combine(seed, rItem.Which());
- o3tl::hash_combine(seed, rFontItem.GetFamilyName().hashCode());
- o3tl::hash_combine(seed, rFontItem.GetStyleName().hashCode());
- o3tl::hash_combine(seed, rFontItem.GetFamily());
- o3tl::hash_combine(seed, rFontItem.GetPitch());
- o3tl::hash_combine(seed, rFontItem.GetCharSet());
- return seed;
- }
-
- const SfxPoolItem* SvxFontItemInstanceManager::find(const SfxPoolItem& rItem) const
- {
- SvxFontItemMap::const_iterator aHit(maRegistered.find(hashCode(rItem)));
- if (aHit != maRegistered.end())
- return aHit->second;
- return nullptr;
- }
-
- void SvxFontItemInstanceManager::add(const SfxPoolItem& rItem)
- {
- maRegistered.insert({hashCode(rItem), &rItem});
- }
-
- void SvxFontItemInstanceManager::remove(const SfxPoolItem& rItem)
- {
- maRegistered.erase(hashCode(rItem));
- }
-
}
ItemInstanceManager* SvxFontItem::getItemInstanceManager() const
@@ -446,56 +409,20 @@ void SvxFontItem::dumpAsXml(xmlTextWriterPtr pWriter) const
// class SvxPostureItem --------------------------------------------------
-typedef std::unordered_map SvxPostureItemMap;
-
namespace
{
- class SvxPostureItemInstanceManager : public ItemInstanceManager
+ class SvxPostureItemInstanceManager : public TypeSpecificItemInstanceManager
{
- SvxPostureItemMap maRegistered;
-
- public:
- SvxPostureItemInstanceManager()
- : ItemInstanceManager(typeid(SvxPostureItem).hash_code())
+ protected:
+ virtual size_t hashCode(const SfxPoolItem& rItem) const override
{
+ auto const & rPostureItem = static_cast(rItem);
+ std::size_t seed(0);
+ o3tl::hash_combine(seed, rPostureItem.Which());
+ o3tl::hash_combine(seed, rPostureItem. GetEnumValue());
+ return seed;
}
-
- private:
- static size_t hashCode(const SfxPoolItem&);
-
- // standard interface, accessed exclusively
- // by implCreateItemEntry/implCleanupItemEntry
- virtual const SfxPoolItem* find(const SfxPoolItem&) const override;
- virtual void add(const SfxPoolItem&) override;
- virtual void remove(const SfxPoolItem&) override;
};
-
- size_t SvxPostureItemInstanceManager::hashCode(const SfxPoolItem& rItem)
- {
- auto const & rPostureItem = static_cast(rItem);
- std::size_t seed(0);
- o3tl::hash_combine(seed, rPostureItem.Which());
- o3tl::hash_combine(seed, rPostureItem. GetEnumValue());
- return seed;
- }
-
- const SfxPoolItem* SvxPostureItemInstanceManager::find(const SfxPoolItem& rItem) const
- {
- auto aHit(maRegistered.find(hashCode(rItem)));
- if (aHit != maRegistered.end())
- return aHit->second;
- return nullptr;
- }
-
- void SvxPostureItemInstanceManager::add(const SfxPoolItem& rItem)
- {
- maRegistered.insert({hashCode(rItem), &rItem});
- }
-
- void SvxPostureItemInstanceManager::remove(const SfxPoolItem& rItem)
- {
- maRegistered.erase(hashCode(rItem));
- }
}
ItemInstanceManager* SvxPostureItem::getItemInstanceManager() const
@@ -750,58 +677,22 @@ void SvxWeightItem::dumpAsXml(xmlTextWriterPtr pWriter) const
// class SvxFontHeightItem -----------------------------------------------
-typedef std::unordered_map SvxFontHeightItemMap;
-
namespace
{
- class SvxFontHeightItemInstanceManager : public ItemInstanceManager
+ class SvxFontHeightItemInstanceManager : public TypeSpecificItemInstanceManager
{
- SvxFontHeightItemMap maRegistered;
-
- public:
- SvxFontHeightItemInstanceManager()
- : ItemInstanceManager(typeid(SvxFontHeightItem).hash_code())
+ protected:
+ virtual size_t hashCode(const SfxPoolItem& rItem) const override
{
+ auto const & rFontHeightItem = static_cast(rItem);
+ std::size_t seed(0);
+ o3tl::hash_combine(seed, rFontHeightItem.Which());
+ o3tl::hash_combine(seed, rFontHeightItem.GetHeight());
+ o3tl::hash_combine(seed, rFontHeightItem.GetProp());
+ o3tl::hash_combine(seed, rFontHeightItem.GetPropUnit());
+ return seed;
}
-
- private:
- static size_t hashCode(const SfxPoolItem&);
-
- // standard interface, accessed exclusively
- // by implCreateItemEntry/implCleanupItemEntry
- virtual const SfxPoolItem* find(const SfxPoolItem&) const override;
- virtual void add(const SfxPoolItem&) override;
- virtual void remove(const SfxPoolItem&) override;
};
-
- size_t SvxFontHeightItemInstanceManager::hashCode(const SfxPoolItem& rItem)
- {
- auto const & rFontHeightItem = static_cast(rItem);
- std::size_t seed(0);
- o3tl::hash_combine(seed, rFontHeightItem.Which());
- o3tl::hash_combine(seed, rFontHeightItem.GetHeight());
- o3tl::hash_combine(seed, rFontHeightItem.GetProp());
- o3tl::hash_combine(seed, rFontHeightItem.GetPropUnit());
- return seed;
- }
-
- const SfxPoolItem* SvxFontHeightItemInstanceManager::find(const SfxPoolItem& rItem) const
- {
- auto aHit(maRegistered.find(hashCode(rItem)));
- if (aHit != maRegistered.end())
- return aHit->second;
- return nullptr;
- }
-
- void SvxFontHeightItemInstanceManager::add(const SfxPoolItem& rItem)
- {
- maRegistered.insert({hashCode(rItem), &rItem});
- }
-
- void SvxFontHeightItemInstanceManager::remove(const SfxPoolItem& rItem)
- {
- maRegistered.erase(hashCode(rItem));
- }
}
ItemInstanceManager* SvxFontHeightItem::getItemInstanceManager() const
@@ -948,7 +839,7 @@ static sal_uInt32 lcl_GetRealHeight_Impl(sal_uInt32 nHeight, sal_uInt16 nProp, M
short nTemp = static_cast(nProp);
nDiff = nTemp * 20;
if(!bCoreInTwip)
- nDiff = static_cast(convertTwipToMm100(static_cast(nDiff)));
+ nDiff = static_cast(convertTwipToMm100(nDiff));
break;
}
case MapUnit::Map100thMM:
@@ -1106,9 +997,8 @@ bool SvxFontHeightItem::HasMetrics() const
void SvxFontHeightItem::SetHeight( sal_uInt32 nNewHeight, const sal_uInt16 nNewProp,
MapUnit eUnit )
{
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
-
ASSERT_CHANGE_REFCOUNTED_ITEM;
+
if( MapUnit::MapRelative != eUnit )
nHeight = nNewHeight + ::ItemToControl( short(nNewProp), eUnit,
FieldUnit::TWIP );
@@ -1124,9 +1014,8 @@ void SvxFontHeightItem::SetHeight( sal_uInt32 nNewHeight, const sal_uInt16 nNewP
void SvxFontHeightItem::SetHeight( sal_uInt32 nNewHeight, sal_uInt16 nNewProp,
MapUnit eMetric, MapUnit eCoreMetric )
{
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
-
ASSERT_CHANGE_REFCOUNTED_ITEM;
+
if( MapUnit::MapRelative != eMetric )
nHeight = nNewHeight +
::ControlToItem( ::ItemToControl(static_cast(nNewProp), eMetric,
@@ -3078,56 +2967,20 @@ void GetDefaultFonts( SvxFontItem& rLatin, SvxFontItem& rAsian, SvxFontItem& rCo
// class SvxRsidItem -----------------------------------------------------
-typedef std::unordered_map SvxRsidItemMap;
-
namespace
{
- class SvxRsidItemInstanceManager : public ItemInstanceManager
+ class SvxRsidItemInstanceManager : public TypeSpecificItemInstanceManager
{
- SvxRsidItemMap maRegistered;
-
- public:
- SvxRsidItemInstanceManager()
- : ItemInstanceManager(typeid(SvxRsidItem).hash_code())
+ protected:
+ virtual size_t hashCode(const SfxPoolItem& rItem) const override
{
+ auto const & rRsidItem = static_cast(rItem);
+ std::size_t seed(0);
+ o3tl::hash_combine(seed, rRsidItem.Which());
+ o3tl::hash_combine(seed, rRsidItem.GetValue());
+ return seed;
}
-
- private:
- static size_t hashCode(const SfxPoolItem&);
-
- // standard interface, accessed exclusively
- // by implCreateItemEntry/implCleanupItemEntry
- virtual const SfxPoolItem* find(const SfxPoolItem&) const override;
- virtual void add(const SfxPoolItem&) override;
- virtual void remove(const SfxPoolItem&) override;
};
-
- size_t SvxRsidItemInstanceManager::hashCode(const SfxPoolItem& rItem)
- {
- auto const & rRsidItem = static_cast(rItem);
- std::size_t seed(0);
- o3tl::hash_combine(seed, rRsidItem.Which());
- o3tl::hash_combine(seed, rRsidItem.GetValue());
- return seed;
- }
-
- const SfxPoolItem* SvxRsidItemInstanceManager::find(const SfxPoolItem& rItem) const
- {
- auto aHit(maRegistered.find(hashCode(rItem)));
- if (aHit != maRegistered.end())
- return aHit->second;
- return nullptr;
- }
-
- void SvxRsidItemInstanceManager::add(const SfxPoolItem& rItem)
- {
- maRegistered.insert({hashCode(rItem), &rItem});
- }
-
- void SvxRsidItemInstanceManager::remove(const SfxPoolItem& rItem)
- {
- maRegistered.erase(hashCode(rItem));
- }
}
ItemInstanceManager* SvxRsidItem::getItemInstanceManager() const
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index 6730a2c82d16..677919211c88 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -2060,7 +2060,6 @@ SvxAutoCorrect::SearchWordsInList(
rLang = aLanguageTag;
return pRet;
}
- return std::nullopt;
}
// If it still could not be found here, then keep on searching
diff --git a/extensions/source/ole/oleobjw.hxx b/extensions/source/ole/oleobjw.hxx
index d1a1d0ed81fc..4455aced456b 100644
--- a/extensions/source/ole/oleobjw.hxx
+++ b/extensions/source/ole/oleobjw.hxx
@@ -210,7 +210,7 @@ protected:
// the IDispatch* are wrapped by objects of this class. Assuming that the functions
// implemented by the IDispatch object returns another UNO interface then
// it has to be wrapped to this type. But this is only possible if an object of this
- // wrapper class knows what type it is represting. The member m_TypeDescription holds this
+ // wrapper class knows what type it is representing. The member m_TypeDescription holds this
// information.
// m_TypeDescription is only useful when an object wraps an IDispatch object that implements
// a UNO interface. The value is set during a call to XInitialization::initialize.
diff --git a/extensions/uiconfig/spropctrlr/ui/browserline.ui b/extensions/uiconfig/spropctrlr/ui/browserline.ui
index 096bce45563e..31df14938c4b 100644
--- a/extensions/uiconfig/spropctrlr/ui/browserline.ui
+++ b/extensions/uiconfig/spropctrlr/ui/browserline.ui
@@ -48,4 +48,4 @@
-
\ No newline at end of file
+
diff --git a/extensions/uiconfig/spropctrlr/ui/browserpage.ui b/extensions/uiconfig/spropctrlr/ui/browserpage.ui
index 171c837276c4..f61d4d219824 100644
--- a/extensions/uiconfig/spropctrlr/ui/browserpage.ui
+++ b/extensions/uiconfig/spropctrlr/ui/browserpage.ui
@@ -1,40 +1,40 @@
-
+
-
+
True
- False
+ False
True
True
- 6
+ 6
True
- True
+ True
True
True
- never
+ never
True
- False
+ False
True
- False
+ False
True
True
vertical
True
- False
+ False
start
True
True
- 6
+ 6
vertical
6
True
@@ -54,30 +54,30 @@
- 0
- 0
+ 0
+ 0
True
- False
- 0
- none
+ False
+ 0
+ none
True
- True
- False
- False
+ True
12
6
+ False
+ False
True
- False
+ False
Help
@@ -86,8 +86,8 @@
- 0
- 1
+ 0
+ 1
diff --git a/external/libcmis/exceptions.patch.1 b/external/libcmis/exceptions.patch.1
index 29a66f229c4c..3b4090aa54f7 100644
--- a/external/libcmis/exceptions.patch.1
+++ b/external/libcmis/exceptions.patch.1
@@ -1,12 +1,11 @@
--- libcmis/src/libcmis/http-session.cxx.orig 2024-06-21 12:22:36.083125022 +0200
+++ libcmis/src/libcmis/http-session.cxx 2024-06-21 13:08:37.403016695 +0200
-@@ -653,7 +653,8 @@
+@@ -653,7 +653,7 @@
m_authProvided = authProvider->authenticationQuery( m_username, m_password );
if ( !m_authProvided )
{
- throw CurlException( "User cancelled authentication request" );
-+ // report this as 401 so it becomes permissionDenied
-+ throw CurlException("User cancelled authentication request", CURLE_OK, "", 401);
++ throw CurlException("User cancelled authentication request", CURLE_OK);
}
}
}
@@ -62,7 +61,7 @@
void HttpSession::initProtocols( )
{
-@@ -981,11 +972,43 @@
+@@ -981,11 +972,45 @@
break;
default:
msg = what();
@@ -106,6 +105,8 @@
+ default:
+ if ( !isCancelled( ) )
+ msg += ": " + m_url;
++ else if (msg == "User cancelled authentication request")
++ type = "permissionDenied";
+ break;
+ }
}
diff --git a/external/libxml2/ExternalPackage_libxml2.mk b/external/libxml2/ExternalPackage_libxml2.mk
index 799044575f9a..17190c77fd18 100644
--- a/external/libxml2/ExternalPackage_libxml2.mk
+++ b/external/libxml2/ExternalPackage_libxml2.mk
@@ -21,7 +21,7 @@ else # COM=MSC
$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
endif
else # OS!=WNT
-$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.12.$(LIBXML_VERSION_MICRO)))
+$(eval $(call gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.13.$(LIBXML_VERSION_MICRO)))
endif
endif # DISABLE_DYNLOADING
diff --git a/external/libxml2/libxml2-XMLCALL-redefine.patch.0 b/external/libxml2/libxml2-XMLCALL-redefine.patch.0
index d9ca23be7ce4..57d23d885943 100644
--- a/external/libxml2/libxml2-XMLCALL-redefine.patch.0
+++ b/external/libxml2/libxml2-XMLCALL-redefine.patch.0
@@ -1,11 +1,11 @@
--- include/libxml/xmlexports.h 2023-05-24 12:48:46.179570708 +0100
+++ include/libxml/xmlexports.h 2023-05-24 12:48:56.563577488 +0100
-@@ -38,8 +38,6 @@
+@@ -31,8 +31,6 @@
+ #define XMLPUBVAR XMLPUBLIC extern
- /** DOC_DISABLE */
/* Compatibility */
-#define XMLCALL
-#define XMLCDECL
- #if !defined(LIBXML_DLL_IMPORT)
- #define LIBXML_DLL_IMPORT XMLPUBVAR
+ #ifndef LIBXML_DLL_IMPORT
+ #define LIBXML_DLL_IMPORT XMLPUBVAR
#endif
diff --git a/external/libxml2/libxml2-icu-sym.patch.0 b/external/libxml2/libxml2-icu-sym.patch.0
index 07676228da19..d89a1c4c544b 100644
--- a/external/libxml2/libxml2-icu-sym.patch.0
+++ b/external/libxml2/libxml2-icu-sym.patch.0
@@ -3,14 +3,14 @@ Find bundled ICU in workdir and use debug .libs when needed
diff -up win32/Makefile.msvc.dt win32/Makefile.msvc
--- win32/Makefile.msvc.dt 2014-07-18 19:00:23.372103963 +0200
+++ win32/Makefile.msvc 2014-07-18 19:01:39.347982929 +0200
-@@ -46,6 +46,7 @@ CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT"
+@@ -42,6 +42,7 @@
CC = cl.exe
CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 $(CRUNTIME)
CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
+CFLAGS = $(CFLAGS) /I$(WORKDIR)/UnpackedTarball/icu/source/i18n /I$(WORKDIR)/UnpackedTarball/icu/source/common
- !if "$(WITH_THREADS)" != "no"
- CFLAGS = $(CFLAGS) /D "_REENTRANT"
- !endif
+ !if "$(WITH_THREADS)" == "ctls"
+ CFLAGS = $(CFLAGS) /D "XML_THREAD_LOCAL=__declspec(thread)"
+ !else if "$(WITH_THREADS)" == "posix"
@@ -62,7 +63,9 @@
# The linker and its options.
LD = link.exe
diff --git a/external/libxml2/libxml2-icu.patch.0 b/external/libxml2/libxml2-icu.patch.0
index 84197763f878..85ce8b3aba2b 100644
--- a/external/libxml2/libxml2-icu.patch.0
+++ b/external/libxml2/libxml2-icu.patch.0
@@ -3,14 +3,14 @@ Find bundled ICU in workdir and use debug .libs when needed
diff -up win32/Makefile.msvc.dt win32/Makefile.msvc
--- win32/Makefile.msvc.dt 2014-07-18 19:00:23.372103963 +0200
+++ win32/Makefile.msvc 2014-07-18 19:01:39.347982929 +0200
-@@ -45,6 +45,7 @@ CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT"
+@@ -42,6 +42,7 @@
CC = cl.exe
CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 $(CRUNTIME)
CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
+CFLAGS = $(CFLAGS) /I$(WORKDIR)/UnpackedTarball/icu/source/i18n /I$(WORKDIR)/UnpackedTarball/icu/source/common
- !if "$(WITH_THREADS)" != "no"
- CFLAGS = $(CFLAGS) /D "_REENTRANT"
- !endif
+ !if "$(WITH_THREADS)" == "ctls"
+ CFLAGS = $(CFLAGS) /D "XML_THREAD_LOCAL=__declspec(thread)"
+ !else if "$(WITH_THREADS)" == "posix"
@@ -67,6 +68,7 @@ CFLAGS = $(CFLAGS) $(SOLARINC)
# The linker and its options.
LD = link.exe
diff --git a/external/redland/ExternalProject_raptor.mk b/external/redland/ExternalProject_raptor.mk
index 8ac05880766b..5bfab78deba8 100644
--- a/external/redland/ExternalProject_raptor.mk
+++ b/external/redland/ExternalProject_raptor.mk
@@ -30,7 +30,7 @@ $(call gb_ExternalProject_get_state_target,raptor,build):
CPPFLAGS="$(if $(SYSBASE),-I$(SYSBASE)/usr/include) $(gb_EMSCRIPTEN_CPPFLAGS)" \
$(gb_RUN_CONFIGURE) ./configure --disable-gtk-doc \
--enable-parsers="rdfxml ntriples turtle trig guess rss-tag-soup" \
- --with-www=xml \
+ --without-www \
--without-xslt-config \
$(gb_CONFIGURE_PLATFORMS) \
$(if $(CROSS_COMPILING),$(if $(filter INTEL ARM,$(CPUNAME)),ac_cv_c_bigendian=no)) \
diff --git a/extras/CustomTarget_templates.mk b/extras/CustomTarget_templates.mk
index b17ce37df9eb..9754985f1a59 100644
--- a/extras/CustomTarget_templates.mk
+++ b/extras/CustomTarget_templates.mk
@@ -9,40 +9,17 @@
$(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates))
-# # for OTT templates: mimetype, styles.xml, META-INF/manifest.xml and
-# Thumbnails/thumbnail.png files are automatically added for each template
-# # for OTG templates: mimetype, content.xml, styles.xml, META-INF/manifest.xml and
-# Thumbnails/thumbnail.png files are automatically added for each template
-# list of meta.xml files (one per template) + other files (content.xml, manifest.rdf, settings.xml, pictures...)
-extras_TEMPLATES_XMLFILES := \
- officorr/Modern_business_letter_sans_serif/meta.xml \
- officorr/Modern_business_letter_serif/meta.xml \
- offimisc/Businesscard-with-logo/meta.xml \
- personal/CV/meta.xml \
- personal/Resume1page/meta.xml \
- styles/Default/meta.xml \
- styles/Modern/meta.xml \
- styles/Simple/meta.xml \
- officorr/Modern_business_letter_sans_serif/content.xml \
- officorr/Modern_business_letter_serif/content.xml \
- offimisc/Businesscard-with-logo/content.xml \
- personal/CV/content.xml \
- personal/Resume1page/content.xml \
- officorr/Modern_business_letter_sans_serif/manifest.rdf \
- officorr/Modern_business_letter_serif/manifest.rdf \
- offimisc/Businesscard-with-logo/manifest.rdf \
- personal/CV/manifest.rdf \
- personal/Resume1page/manifest.rdf \
- offimisc/Businesscard-with-logo/settings.xml \
- offimisc/Businesscard-with-logo/Pictures/10000201000001F4000000A0108F3F06.png \
- draw/bpmn/meta.xml \
- l10n/zh_CN_ott_normal/meta.xml \
- l10n/zh_CN_ott_normal/content.xml \
- l10n/ja_ott_normal/meta.xml \
- l10n/ja_ott_normal/content.xml \
+include $(SRCDIR)/extras/template_files.mk
-# param: style-base (e.g. Modern)
-extras_TEMPLATES_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extras_TEMPLATES_XMLFILES)))
+define run_zip_template_recipe =
+$(call gb_Output_announce,$(subst $(gb_CustomTarget_workdir)/extras/source/,,$@),$(true),ZIP,2)
+$(call gb_Trace_StartRange,$(subst $(gb_CustomTarget_workdir)/extras/source/,,$@),ZIP)
+cd $(dir $<) && \
+$(call gb_Helper_wsl_path,\
+$(WSL) zip -q0X --filesync --must-match $@ mimetype && \
+$(WSL) zip -qrX --must-match $@ $(subst $(dir $<),,$^))
+$(call gb_Trace_EndRange,$(subst $(gb_CustomTarget_workdir)/extras/source/,,$@),ZIP)
+endef
.SECONDEXPANSION:
# secondexpansion since the patterns not just cover a filename portion, but also include a
@@ -64,48 +41,22 @@ $(gb_CustomTarget_workdir)/extras/source/templates/%.xml : $(SRCDIR)/extras/sour
$(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ $(SRCDIR)/extras/util/compact.xsl $<
$(call gb_Trace_EndRange,templates/$*.xml,XSL)
-# zip files to OTT
+$(gb_CustomTarget_workdir)/extras/source/templates/%.odt \
+$(gb_CustomTarget_workdir)/extras/source/templates/%.otg \
+$(gb_CustomTarget_workdir)/extras/source/templates/%.oth \
+$(gb_CustomTarget_workdir)/extras/source/templates/%.otp \
+$(gb_CustomTarget_workdir)/extras/source/templates/%.ots \
$(gb_CustomTarget_workdir)/extras/source/templates/%.ott : \
$$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- mimetype $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- styles.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- META-INF/manifest.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- Thumbnails/thumbnail.png $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/$*.ott,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/$*.ott,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ styles.xml META-INF/manifest.xml Thumbnails/thumbnail.png && \
- $(WSL) zip -qrX --must-match $@ $(call extras_TEMPLATES_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/$*.ott,ZIP)
+ mimetype META-INF/manifest.xml content.xml meta.xml styles.xml \
+ $$(call extra_files_TEMPLATES_RELATIVE,$$*))
+ $(run_zip_template_recipe)
-# zip files to OTG
-$(gb_CustomTarget_workdir)/extras/source/templates/%.otg : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- mimetype $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- content.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- styles.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- META-INF/manifest.xml $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/$$*/,\
- Thumbnails/thumbnail.png $$(call extras_TEMPLATES_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/$*.otg,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/$*.otg,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml styles.xml META-INF/manifest.xml Thumbnails/thumbnail.png && \
- $(WSL) zip -qrX --must-match $@ $(call extras_TEMPLATES_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/$*.otg,ZIP)
+# special case for styles/Default,Modern,Simple - no content.xml for those
+$(gb_CustomTarget_workdir)/extras/source/templates/styles/%.ott : \
+ $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/styles/$$*/,\
+ mimetype META-INF/manifest.xml meta.xml styles.xml \
+ $$(call extra_files_TEMPLATES_RELATIVE,styles/$$*))
+ $(run_zip_template_recipe)
# vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplpresnt.mk b/extras/CustomTarget_tplpresnt.mk
deleted file mode 100644
index 6be2550b0098..000000000000
--- a/extras/CustomTarget_tplpresnt.mk
+++ /dev/null
@@ -1,143 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# 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/.
-#
-
-$(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/presnt))
-
-# # for OTP templates: mimetype, content.xml, styles.xml, META-INF/manifest.xml and
-# Thumbnails/thumbnail.png files are automatically added for each template
-# list of meta.xml files (one per template) + other files (content.xml, manifest.rdf, settings.xml, pictures...)
-extras_PRESENTATIONS_XMLFILES := \
- Beehive/meta.xml \
- Blue_Curve/meta.xml \
- Blueprint_Plans/meta.xml \
- Candy/meta.xml \
- DNA/meta.xml \
- Focus/meta.xml \
- Forestbird/meta.xml \
- Grey_Elegant/meta.xml \
- Growing_Liberty/meta.xml \
- Freshes/meta.xml \
- Inspiration/meta.xml \
- Lights/meta.xml \
- Metropolis/meta.xml \
- Midnightblue/meta.xml \
- Nature_Illustration/meta.xml \
- Pencil/meta.xml \
- Piano/meta.xml \
- Portfolio/meta.xml \
- Progress/meta.xml \
- Sunset/meta.xml \
- Vintage/meta.xml \
- Vivid/meta.xml \
- Yellow_Idea/meta.xml \
- Freshes/Object_1/content.xml \
- Freshes/Object_2/content.xml \
- Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png \
- Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png \
- Blueprint_Plans/Pictures/10000000000004220000031A5C2E04AB7C51FB60.png \
- Blueprint_Plans/Pictures/1000020100000500000002D03918081590A75FCF.png \
- Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png \
- Candy/Pictures/10000000000004A800000500DD5BB9FFED422172.png \
- Candy/Pictures/10000000000005000000050014DEA376B6E67205.png \
- Candy/Pictures/1000000000000780000004383B6CE268A9802A07.png \
- Candy/Pictures/10000000000007800000043870026B1FACED0D1B.png \
- Freshes/Pictures/10000000000001980000067FB46981E5FBCD5A53.jpg \
- Freshes/Pictures/10000000000002C5000003C02FC12A07C25F42DF.jpg \
- Freshes/Pictures/10000000000002D50000067FACCA26111F046EB5.jpg \
- Freshes/Pictures/100000000000030F0000036F55A62FC34FCAB38E.jpg \
- Freshes/Pictures/100000000000049100000359E7B1AC100BA62FBB.jpg \
- Freshes/Pictures/10000000000006D7000003A637B7BBC50EDF4D24.jpg \
- Freshes/Pictures/1000000000000B8B0000067F7C4C059ECC323C6F.jpg \
- Grey_Elegant/Pictures/1000000000000007000000075D9D31963C8C0E25.jpg \
- Grey_Elegant/Pictures/1000000000000007000000076677E5BE1EDAF335.jpg \
- Grey_Elegant/Pictures/10000000000001920000019230489F7A89351262.jpg \
- Grey_Elegant/Pictures/10000109000002950000029599843C084F54196C.svg \
- Grey_Elegant/Pictures/100001E0000002950000029531405702AAD800D0.svg \
- Grey_Elegant/Pictures/10000201000000190000001945D72F17575B71B4.png \
- Grey_Elegant/Pictures/1000020100000019000000194F0EE08BB7018624.png \
- Grey_Elegant/Pictures/10000201000000190000001967D610D5BD5B9486.png \
- Grey_Elegant/Pictures/100002010000001900000019B19ADF33FD67D860.png \
- Grey_Elegant/Pictures/100002010000001900000019CA03B954885E470D.png \
- Grey_Elegant/Pictures/10000201000003300000026455AC9786240DB2F8.png \
- Grey_Elegant/Pictures/100002510000029500000295D9236A158400ED63.svg \
- Grey_Elegant/Pictures/100002800000029500000295458C6106AED5C839.svg \
- Grey_Elegant/Pictures/100002CA0000029500000295A190AE1D987B676B.svg \
- Grey_Elegant/Pictures/1000DC810000A57800007C20AABC768B7E7ACB30.svg \
- Growing_Liberty/Pictures/10000000000007800000043801760C0AF0E62E0B.jpg \
- Growing_Liberty/Pictures/10000000000007800000043827B5F54D1F4F498F.jpg \
- Growing_Liberty/Pictures/100002010000016A0000029374C9F2B8F26392AD.png \
- Growing_Liberty/Pictures/10000201000001F000000351DA39462E363D7ED3.png \
- Growing_Liberty/Pictures/10000201000001F10000029333ED1BC48076B5C4.png \
- Growing_Liberty/Pictures/10000201000001F3000003548E51808DE171DA02.png \
- Growing_Liberty/Pictures/10000C1C0000034200004A6A2C92F38BC117DD3C.svg \
- Growing_Liberty/Pictures/10000C340000844B000003422549B923A55839CC.svg \
- Growing_Liberty/Pictures/10000C8F0000034200004A6ABD021DA9BD39254C.svg \
- Growing_Liberty/Pictures/10000CA90000844B000003426738F0E80CCFF9F3.svg \
- Metropolis/Pictures/10000201000003AF000002126A94207C4902B60B.png \
- Metropolis/Pictures/100021B200008D2E00004F60B312A649B9EEC188.svg \
- Nature_Illustration/Pictures/10000000000004210000031931EA92AB7FB2FD6C.jpg \
- Nature_Illustration/Pictures/100000000000042100000319892187DC121460D8.jpg \
- Pencil/Pictures/1000020100000088000000870A26C51C993940C3.png \
- Pencil/Pictures/100002010000037D0000001C2F14EFE8274AD9FC.png \
- Pencil/Pictures/1000020100000402000000A2F7F509AE74DE6C69.png \
- Piano/Pictures/100000000000035400000120266623530F1969D0.png \
- Piano/Pictures/100002010000033A0000006EDD62437E1CC42053.png \
- Vintage/Pictures/10000000000000580000001F99D2A38C014B254B.png \
- Vintage/Pictures/10000201000004B000000337490AE22881331C9B.png \
- Vintage/Pictures/10000201000004B00000033776CA70A4BFE2196B.png \
- Vintage/Pictures/10000201000004B0000003379D1127938561C230.png \
- Vintage/Pictures/10000201000004B000000337D99A2303560BD59C.png \
-
-# param: style-base (e.g. Modern)
-extras_PRESNT_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extras_PRESENTATIONS_XMLFILES)))
-
-.SECONDEXPANSION:
-# secondexpansion since the patterns not just cover a filename portion, but also include a
-# directory portion withdifferent number of elements
-# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
-$(gb_CustomTarget_workdir)/extras/source/templates/presnt/% : $(SRCDIR)/extras/source/templates/presnt/% \
- | $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*).dir
- $(call gb_Output_announce,templates/presnt/$*,$(true),CPY,1)
- $(call gb_Trace_StartRange,templates/presnt/$*,CPY)
- cp $< $@
- $(call gb_Trace_EndRange,templates/presnt/$*,CPY)
-
-# test and copy xml files
-$(gb_CustomTarget_workdir)/extras/source/templates/presnt/%.xml : $(SRCDIR)/extras/source/templates/presnt/%.xml \
- | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
- $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*.xml).dir
- $(call gb_Output_announce,templates/presnt/$*.xml,$(true),XSL,1)
- $(call gb_Trace_StartRange,templates/presnt/$*.xml,XSL)
- $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ $(SRCDIR)/extras/util/compact.xsl $<
- $(call gb_Trace_EndRange,templates/presnt/$*.xml,XSL)
-
-# zip files to OTP
-$(gb_CustomTarget_workdir)/extras/source/templates/presnt/%.otp : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*/,\
- mimetype $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*/,\
- content.xml $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*/,\
- styles.xml $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*/,\
- META-INF/manifest.xml $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/presnt/$$*/,\
- Thumbnails/thumbnail.png $$(call extras_PRESNT_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/presnt/$*.otp,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/presnt/$*.otp,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml styles.xml META-INF/manifest.xml Thumbnails/thumbnail.png && \
- $(WSL) zip -qrX --must-match $@ $(call extras_PRESNT_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/presnt/$*.otp,ZIP)
-
-# vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplwizard.mk b/extras/CustomTarget_tplwizard.mk
deleted file mode 100644
index 3e54d0b5e99c..000000000000
--- a/extras/CustomTarget_tplwizard.mk
+++ /dev/null
@@ -1,241 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# 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/.
-#
-
-$(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/wizard))
-
-# mimetype, content.xml, settings.xml, styles.xml and META-INF/manifest.xml
-# files are automatically added for each template
-# list of meta.xml files (one per template) + other files (manifest.rdf, pictures...)
-extras_WIZARD_XMLFILES := \
- agenda/10grey/meta.xml \
- agenda/1simple/meta.xml \
- agenda/2elegant/meta.xml \
- agenda/3modern/meta.xml \
- agenda/4classic/meta.xml \
- agenda/5blue/meta.xml \
- agenda/6orange/meta.xml \
- agenda/7red/meta.xml \
- agenda/8green/meta.xml \
- agenda/9colorful/meta.xml \
- agenda/aw-10grey/meta.xml \
- agenda/aw-1simple/meta.xml \
- agenda/aw-2elegant/meta.xml \
- agenda/aw-3modern/meta.xml \
- agenda/aw-4classic/meta.xml \
- agenda/aw-5blue/meta.xml \
- agenda/aw-6orange/meta.xml \
- agenda/aw-7red/meta.xml \
- agenda/aw-8green/meta.xml \
- agenda/aw-9colorful/meta.xml \
- agenda/10grey/manifest.rdf \
- agenda/1simple/manifest.rdf \
- agenda/2elegant/manifest.rdf \
- agenda/3modern/manifest.rdf \
- agenda/4classic/manifest.rdf \
- agenda/5blue/manifest.rdf \
- agenda/6orange/manifest.rdf \
- agenda/7red/manifest.rdf \
- agenda/8green/manifest.rdf \
- agenda/9colorful/manifest.rdf \
- agenda/aw-10grey/manifest.rdf \
- agenda/aw-1simple/manifest.rdf \
- agenda/aw-2elegant/manifest.rdf \
- agenda/aw-3modern/manifest.rdf \
- agenda/aw-4classic/manifest.rdf \
- agenda/aw-5blue/manifest.rdf \
- agenda/aw-6orange/manifest.rdf \
- agenda/aw-7red/manifest.rdf \
- agenda/aw-8green/manifest.rdf \
- agenda/aw-9colorful/manifest.rdf \
- agenda/2elegant/Pictures/1000000000000280000000052876A81A.gif \
- agenda/2elegant/Pictures/100002000000008F0000000A83659D51.gif \
- agenda/aw-2elegant/Pictures/1000000000000280000000052876A81A.gif \
- agenda/aw-2elegant/Pictures/100002000000008F0000000A83659D51.gif \
- fax/bus-classic_f/meta.xml \
- fax/bus-classic-pri_f/meta.xml \
- fax/bus-modern_f/meta.xml \
- fax/bus-modern-pri_f/meta.xml \
- fax/pri-bottle_f/meta.xml \
- fax/pri-fax_f/meta.xml \
- fax/pri-lines_f/meta.xml \
- fax/pri-marine_f/meta.xml \
- fax/bus-classic_f/manifest.rdf \
- fax/bus-classic-pri_f/manifest.rdf \
- fax/bus-modern_f/manifest.rdf \
- fax/bus-modern-pri_f/manifest.rdf \
- fax/bus-classic_f/Pictures/200000520000271100001F73A977C564.wmf \
- fax/bus-modern_f/Pictures/2000004E0000271100001F73772F7F48.wmf \
- fax/pri-bottle_f/Pictures/200002EB000022DA000024E1F891208C.wmf \
- fax/pri-fax_f/Pictures/2000032600002711000026A54A905481.wmf \
- fax/pri-marine_f/Pictures/2000004B0000227F0000227886F3FC0F.wmf \
- letter/bus-elegant_l/meta.xml \
- letter/bus-modern_l/meta.xml \
- letter/bus-office_l/meta.xml \
- letter/off-elegant_l/meta.xml \
- letter/off-modern_l/meta.xml \
- letter/off-office_l/meta.xml \
- letter/pri-bottle_l/meta.xml \
- letter/pri-mail_l/meta.xml \
- letter/pri-marine_l/meta.xml \
- letter/pri-redline_l/meta.xml \
- letter/bus-elegant_l/manifest.rdf \
- letter/bus-modern_l/manifest.rdf \
- letter/bus-office_l/manifest.rdf \
- letter/off-elegant_l/manifest.rdf \
- letter/off-modern_l/manifest.rdf \
- letter/off-office_l/manifest.rdf \
- letter/bus-elegant_l/Pictures/10000000000001B8000000824B7EA208.png \
- letter/bus-modern_l/Pictures/10000000000001B8000000824B7EA208.png \
- letter/bus-office_l/Pictures/10000000000001B8000000824B7EA208.png \
- letter/off-elegant_l/Pictures/2000000D00000434000006FD6841386B.svm \
- letter/off-modern_l/Pictures/10000000000000110000001142D1547F.png \
- letter/pri-bottle_l/Pictures/200002EB000022DA000024E1F891208C.wmf \
- letter/pri-mail_l/Pictures/200000430000271100001205CAE80946.wmf \
- letter/pri-marine_l/Pictures/2000004B0000227F0000227886F3FC0F.wmf \
- report/cnt-01/meta.xml \
- report/cnt-011/meta.xml \
- report/cnt-012/meta.xml \
- report/cnt-02/meta.xml \
- report/cnt-021/meta.xml \
- report/cnt-022/meta.xml \
- report/cnt-03/meta.xml \
- report/cnt-031/meta.xml \
- report/cnt-032/meta.xml \
- report/cnt-04/meta.xml \
- report/cnt-041/meta.xml \
- report/cnt-042/meta.xml \
- report/cnt-05/meta.xml \
- report/cnt-051/meta.xml \
- report/cnt-052/meta.xml \
- report/cnt-06/meta.xml \
- report/cnt-061/meta.xml \
- report/cnt-062/meta.xml \
- report/cnt-default/meta.xml \
- report/stl-01/meta.xml \
- report/stl-02/meta.xml \
- report/stl-03/meta.xml \
- report/stl-04/meta.xml \
- report/stl-05/meta.xml \
- report/stl-06/meta.xml \
- report/stl-07/meta.xml \
- report/stl-08/meta.xml \
- report/stl-09/meta.xml \
- report/stl-default/meta.xml \
- report/stl-01/manifest.rdf \
- report/stl-02/manifest.rdf \
- report/stl-03/manifest.rdf \
- report/stl-04/manifest.rdf \
- report/stl-05/manifest.rdf \
- report/stl-06/manifest.rdf \
- report/stl-07/manifest.rdf \
- report/stl-08/manifest.rdf \
- report/stl-09/manifest.rdf \
- report/stl-default/manifest.rdf \
- report/stl-01/Pictures/100002000000001400000014E87B6AC5.gif \
- report/stl-01/Pictures/2000018100001CB100002711BFED37A8.wmf \
- report/stl-02/Pictures/2000009E0000380100002657BA019D86.wmf \
- report/stl-03/Pictures/2000024900002711000021F4DCB2DF4A.wmf \
- report/stl-04/Pictures/10000000000000400000004077CDC8F9.png \
- report/stl-04/Pictures/10000000000001C6000000E44DCA6C94.jpg \
- report/stl-05/Pictures/2000036D000027110000145EB7E93049.wmf \
- report/stl-06/Pictures/100000000000005A000000268DE98CCE.gif \
- report/stl-06/Pictures/100000000000021B000001E8BE936AB6.gif \
- report/stl-08/Pictures/100000000000005E0000005E97FB9EF6.jpg \
- report/stl-09/Pictures/10000000000000050000004D32652675.jpg \
- report/stl-09/Pictures/100002000000001400000014E87B6AC5.gif \
- report/stl-09/Pictures/2000025100001D92000017719EB70CFB.wmf \
- styles/black_white/meta.xml \
- styles/blackberry/meta.xml \
- styles/default/meta.xml \
- styles/diner/meta.xml \
- styles/fall/meta.xml \
- styles/glacier/meta.xml \
- styles/green_grapes/meta.xml \
- styles/jeans/meta.xml \
- styles/marine/meta.xml \
- styles/millennium/meta.xml \
- styles/nature/meta.xml \
- styles/neon/meta.xml \
- styles/night/meta.xml \
- styles/nostalgic/meta.xml \
- styles/pastell/meta.xml \
- styles/pool/meta.xml \
- styles/pumpkin/meta.xml \
- styles/xos/meta.xml \
-
-# param: style-base (e.g. agenda/10grey)
-extras_WIZARD_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extras_WIZARD_XMLFILES)))
-
-.SECONDEXPANSION:
-# secondexpansion since the patterns not just cover a filename portion, but also include a
-# directory portion with different number of elements
-# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/% : $(SRCDIR)/extras/source/templates/wizard/% \
- | $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*).dir
- $(call gb_Output_announce,templates/wizard/$*,$(true),CPY,1)
- $(call gb_Trace_StartRange,templates/wizard/$*,CPY)
- cp $< $@
- $(call gb_Trace_EndRange,templates/wizard/$*,CPY)
-
-# test and copy xml files
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.xml : $(SRCDIR)/extras/source/templates/wizard/%.xml \
- | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
- $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*.xml).dir
- $(call gb_Output_announce,templates/wizard/$*.xml,$(true),XSL,1)
- $(call gb_Trace_StartRange,templates/wizard/$*.xml,XSL)
- $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ $(SRCDIR)/extras/util/compact.xsl $<
- $(call gb_Trace_EndRange,templates/wizard/$*.xml,XSL)
-
-# zip files to OTT
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.ott : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- mimetype $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- content.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- settings.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- styles.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- META-INF/manifest.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/wizard/$*.ott,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/wizard/$*.ott,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml settings.xml styles.xml META-INF/manifest.xml && \
- $(WSL) zip -qrX --must-match $@ $(call extras_WIZARD_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/wizard/$*.ott,ZIP)
-
-# zip files to OTS
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.ots : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- mimetype $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- content.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- settings.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- styles.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- META-INF/manifest.xml $$(call extras_WIZARD_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/wizard/$*.ots,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/wizard/$*.ots,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml settings.xml styles.xml META-INF/manifest.xml && \
- $(WSL) zip -qrX --must-match $@ $(call extras_WIZARD_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/wizard/$*.ots,ZIP)
-
-# vim: set noet sw=4 ts=4:
diff --git a/extras/CustomTarget_tplwizdesktop.mk b/extras/CustomTarget_tplwizdesktop.mk
deleted file mode 100644
index cb51cf5400ca..000000000000
--- a/extras/CustomTarget_tplwizdesktop.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# 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/.
-#
-
-$(eval $(call gb_CustomTarget_CustomTarget,extras/source/templates/wizard))
-
-# mimetype, content.xml, meta.xml, styles.xml and META-INF/manifest.xml
-# files are automatically added for each template
-# list of meta.xml files (one per template) + other files (manifest.rdf, pictures...)
-extras_WIZDESKTOP_XMLFILES := \
- desktop/html/meta.xml \
- desktop/idxexample/meta.xml \
- desktop/idxexample/Pictures/2000008600001923000012C24E0D0895.wmf \
-
-# param: style-base (e.g. agenda/10grey)
-extras_WIZDESKTOP_XMLFILES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extras_WIZDESKTOP_XMLFILES)))
-
-.SECONDEXPANSION:
-# secondexpansion since the patterns not just cover a filename portion, but also include a
-# directory portion with different number of elements
-# copy regular files (mimetype, *.jpg, *.png, *.rdf, *.svg, *.svm, …)
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/% : $(SRCDIR)/extras/source/templates/wizard/% \
- | $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*).dir
- $(call gb_Output_announce,templates/wizard/$*,$(true),CPY,1)
- $(call gb_Trace_StartRange,templates/wizard/$*,CPY)
- cp $< $@
- $(call gb_Trace_EndRange,templates/wizard/$*,CPY)
-
-# test and copy xml files
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.xml : $(SRCDIR)/extras/source/templates/wizard/%.xml \
- | $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
- $$(dir $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*.xml).dir
- $(call gb_Output_announce,templates/wizard/$*.xml,$(true),XSL,1)
- $(call gb_Trace_StartRange,templates/wizard/$*.xml,XSL)
- $(call gb_ExternalExecutable_get_command,xsltproc) --nonet -o $@ $(SRCDIR)/extras/util/compact.xsl $<
- $(call gb_Trace_EndRange,templates/wizard/$*.xml,XSL)
-
-# zip files to OTH
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.oth : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- mimetype $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- content.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- styles.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- settings.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- META-INF/manifest.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/wizard/$*.oth,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/wizard/$*.oth,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml settings.xml styles.xml META-INF/manifest.xml && \
- $(WSL) zip -qrX --must-match $@ $(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/wizard/$*.oth,ZIP)
-
-# zip files to ODT
-$(gb_CustomTarget_workdir)/extras/source/templates/wizard/%.odt : \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- mimetype $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- content.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- settings.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- styles.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) ) \
- $$(addprefix $(gb_CustomTarget_workdir)/extras/source/templates/wizard/$$*/,\
- META-INF/manifest.xml $$(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$$*) )
- $(call gb_Output_announce,templates/wizard/$*.odt,$(true),ZIP,2)
- $(call gb_Trace_StartRange,templates/wizard/$*.odt,ZIP)
- $(call gb_Helper_abbreviate_dirs,\
- cd $(dir $<) && \
- $(call gb_Helper_wsl_path,\
- $(WSL) zip -q0X --filesync --must-match $@ mimetype && \
- $(WSL) zip -qrX --must-match $@ content.xml settings.xml styles.xml META-INF/manifest.xml && \
- $(WSL) zip -qrX --must-match $@ $(call extras_WIZDESKTOP_XMLFILES_RELATIVE,$*)) \
- )
- $(call gb_Trace_EndRange,templates/wizard/$*.odt,ZIP)
-
-# vim: set noet sw=4 ts=4:
diff --git a/extras/Module_extras.mk b/extras/Module_extras.mk
index 38632ca5b2a3..0c04202e8a20 100644
--- a/extras/Module_extras.mk
+++ b/extras/Module_extras.mk
@@ -15,9 +15,6 @@ $(eval $(call gb_Module_add_targets,extras,\
CustomTarget_glade \
CustomTarget_gallsystem \
CustomTarget_templates \
- CustomTarget_tplpresnt \
- CustomTarget_tplwizard \
- CustomTarget_tplwizdesktop \
Package_autocorr \
Package_autotextuser \
Package_cfgsrvnolang \
diff --git a/extras/README.md b/extras/README.md
index 4c5fbdd2da2b..11a4ee3ef160 100644
--- a/extras/README.md
+++ b/extras/README.md
@@ -35,8 +35,8 @@ Contains templates, clipart galleries, palettes, symbol font, autocorrections, a
+ choose a template category ``
+ unzip `Foo.ot?` (? = p, t, s or g) in `extras/source/templates//Foo` (no space allowed in any file names)
+ add `/Foo.ot? /` in `Package_templates.mk` (or `Package_tplpresnt.mk` if it's a presentation)
- + in `CustomTarget_templates.mk` (or `CustomTarget_tplpresnt.mk` if it's a presentation):
- + add `/Foo/meta.xml /` and all files which are not automatically added in `extras_TEMPLATES_XMLFILES` (or `extras_PRESENTATIONS_XMLFILES` for presentation)
+ + in `template_files.mk`:
+ + add e.g. `/Foo/settings.xml` (and all other files which are not automatically added) to `extra_files_COMMON` (or `extra_files_PRESENTATIONS` in case of a presentation template)
+ for translation of template name
+ define a new STR_TEMPLATE_NAMExx in include/sfx2/strings.hrc
+ define a new STR_TEMPLATE_NAMExx_DEF in sfx2/inc/strings.hxx
diff --git a/extras/source/autocorr/lang/el/DocumentList.xml b/extras/source/autocorr/lang/el/DocumentList.xml
index 1cc23c2b3132..3668f00dd9d0 100644
--- a/extras/source/autocorr/lang/el/DocumentList.xml
+++ b/extras/source/autocorr/lang/el/DocumentList.xml
@@ -1,5 +1,7 @@
+
+
diff --git a/extras/source/autocorr/lang/nl-BE/DocumentList.xml b/extras/source/autocorr/lang/nl-BE/DocumentList.xml
index aad43a2ac536..76521b3fc5b1 100644
--- a/extras/source/autocorr/lang/nl-BE/DocumentList.xml
+++ b/extras/source/autocorr/lang/nl-BE/DocumentList.xml
@@ -10,6 +10,10 @@
+
+
+
+
diff --git a/extras/source/autocorr/lang/nl/DocumentList.xml b/extras/source/autocorr/lang/nl/DocumentList.xml
index b96d88166d7b..cea1f26bccca 100644
--- a/extras/source/autocorr/lang/nl/DocumentList.xml
+++ b/extras/source/autocorr/lang/nl/DocumentList.xml
@@ -10,6 +10,10 @@
+
+
+
+
diff --git a/extras/template_files.mk b/extras/template_files.mk
new file mode 100644
index 000000000000..57e006f6e774
--- /dev/null
+++ b/extras/template_files.mk
@@ -0,0 +1,307 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# 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/.
+#
+
+# this file lists the contents/parts that make up the individual templates that are created during
+# the build.
+#
+# The Package_*.mk files list the files that should be built and delivered to the installation tree,
+# and CustomTarget_templates.mk has the actual recipes to assemble and package the template files.
+#
+# The split used here follows the split from the Package_*mk files, but that split is arbitrary/
+# artificial, they are ultimately combined into a single variable.
+# A split only matters on the Package level, but even there only the wizard/desktop files are
+# "special" (they are always created/packaged, while the rests is optional/behind a WITH_TEMPLATES
+# conditional)
+
+# Specify filenames relative to SRC_ROOT/extras/source/templates
+# mimetype, META-INF/manifest.xml, content.xml, meta.xml and styles.xml are always assumed to be
+# present and can be omitted
+
+extra_files_COMMON := \
+ draw/bpmn/Thumbnails/thumbnail.png \
+ l10n/ja_ott_normal/manifest.rdf \
+ l10n/ja_ott_normal/settings.xml \
+ l10n/ja_ott_normal/Thumbnails/thumbnail.png \
+ l10n/zh_CN_ott_normal/Thumbnails/thumbnail.png \
+ officorr/Modern_business_letter_sans_serif/manifest.rdf \
+ officorr/Modern_business_letter_sans_serif/Thumbnails/thumbnail.png \
+ officorr/Modern_business_letter_serif/manifest.rdf \
+ officorr/Modern_business_letter_serif/Thumbnails/thumbnail.png \
+ offimisc/Businesscard-with-logo/manifest.rdf \
+ offimisc/Businesscard-with-logo/Pictures/10000201000001F4000000A0108F3F06.png \
+ offimisc/Businesscard-with-logo/settings.xml \
+ offimisc/Businesscard-with-logo/Thumbnails/thumbnail.png \
+ personal/CV/manifest.rdf \
+ personal/CV/Thumbnails/thumbnail.png \
+ personal/Resume1page/manifest.rdf \
+ personal/Resume1page/Thumbnails/thumbnail.png \
+ styles/Default/Thumbnails/thumbnail.png \
+ styles/Modern/Thumbnails/thumbnail.png \
+ styles/Simple/Thumbnails/thumbnail.png \
+
+
+extra_files_PRESENTATIONS := \
+ presnt/Beehive/Thumbnails/thumbnail.png \
+ presnt/Blue_Curve/Thumbnails/thumbnail.png \
+ presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png \
+ presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png \
+ presnt/Blueprint_Plans/Pictures/10000000000004220000031A5C2E04AB7C51FB60.png \
+ presnt/Blueprint_Plans/Pictures/1000020100000500000002D03918081590A75FCF.png \
+ presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png \
+ presnt/Blueprint_Plans/Thumbnails/thumbnail.png \
+ presnt/Candy/Pictures/10000000000004A800000500DD5BB9FFED422172.png \
+ presnt/Candy/Pictures/10000000000005000000050014DEA376B6E67205.png \
+ presnt/Candy/Pictures/1000000000000780000004383B6CE268A9802A07.png \
+ presnt/Candy/Pictures/10000000000007800000043870026B1FACED0D1B.png \
+ presnt/Candy/Thumbnails/thumbnail.png \
+ presnt/DNA/Thumbnails/thumbnail.png \
+ presnt/Focus/Thumbnails/thumbnail.png \
+ presnt/Forestbird/Thumbnails/thumbnail.png \
+ presnt/Freshes/Object_1/content.xml \
+ presnt/Freshes/Object_2/content.xml \
+ presnt/Freshes/Pictures/10000000000001980000067FB46981E5FBCD5A53.jpg \
+ presnt/Freshes/Pictures/10000000000002C5000003C02FC12A07C25F42DF.jpg \
+ presnt/Freshes/Pictures/10000000000002D50000067FACCA26111F046EB5.jpg \
+ presnt/Freshes/Pictures/100000000000030F0000036F55A62FC34FCAB38E.jpg \
+ presnt/Freshes/Pictures/100000000000049100000359E7B1AC100BA62FBB.jpg \
+ presnt/Freshes/Pictures/10000000000006D7000003A637B7BBC50EDF4D24.jpg \
+ presnt/Freshes/Pictures/1000000000000B8B0000067F7C4C059ECC323C6F.jpg \
+ presnt/Freshes/Thumbnails/thumbnail.png \
+ presnt/Grey_Elegant/Pictures/1000000000000007000000075D9D31963C8C0E25.jpg \
+ presnt/Grey_Elegant/Pictures/1000000000000007000000076677E5BE1EDAF335.jpg \
+ presnt/Grey_Elegant/Pictures/10000000000001920000019230489F7A89351262.jpg \
+ presnt/Grey_Elegant/Pictures/10000109000002950000029599843C084F54196C.svg \
+ presnt/Grey_Elegant/Pictures/100001E0000002950000029531405702AAD800D0.svg \
+ presnt/Grey_Elegant/Pictures/10000201000000190000001945D72F17575B71B4.png \
+ presnt/Grey_Elegant/Pictures/1000020100000019000000194F0EE08BB7018624.png \
+ presnt/Grey_Elegant/Pictures/10000201000000190000001967D610D5BD5B9486.png \
+ presnt/Grey_Elegant/Pictures/100002010000001900000019B19ADF33FD67D860.png \
+ presnt/Grey_Elegant/Pictures/100002010000001900000019CA03B954885E470D.png \
+ presnt/Grey_Elegant/Pictures/10000201000003300000026455AC9786240DB2F8.png \
+ presnt/Grey_Elegant/Pictures/100002510000029500000295D9236A158400ED63.svg \
+ presnt/Grey_Elegant/Pictures/100002800000029500000295458C6106AED5C839.svg \
+ presnt/Grey_Elegant/Pictures/100002CA0000029500000295A190AE1D987B676B.svg \
+ presnt/Grey_Elegant/Pictures/1000DC810000A57800007C20AABC768B7E7ACB30.svg \
+ presnt/Grey_Elegant/Thumbnails/thumbnail.png \
+ presnt/Growing_Liberty/Pictures/10000000000007800000043801760C0AF0E62E0B.jpg \
+ presnt/Growing_Liberty/Pictures/10000000000007800000043827B5F54D1F4F498F.jpg \
+ presnt/Growing_Liberty/Pictures/100002010000016A0000029374C9F2B8F26392AD.png \
+ presnt/Growing_Liberty/Pictures/10000201000001F000000351DA39462E363D7ED3.png \
+ presnt/Growing_Liberty/Pictures/10000201000001F10000029333ED1BC48076B5C4.png \
+ presnt/Growing_Liberty/Pictures/10000201000001F3000003548E51808DE171DA02.png \
+ presnt/Growing_Liberty/Pictures/10000C1C0000034200004A6A2C92F38BC117DD3C.svg \
+ presnt/Growing_Liberty/Pictures/10000C340000844B000003422549B923A55839CC.svg \
+ presnt/Growing_Liberty/Pictures/10000C8F0000034200004A6ABD021DA9BD39254C.svg \
+ presnt/Growing_Liberty/Pictures/10000CA90000844B000003426738F0E80CCFF9F3.svg \
+ presnt/Growing_Liberty/Thumbnails/thumbnail.png \
+ presnt/Inspiration/Thumbnails/thumbnail.png \
+ presnt/Lights/Thumbnails/thumbnail.png \
+ presnt/Metropolis/Pictures/10000201000003AF000002126A94207C4902B60B.png \
+ presnt/Metropolis/Pictures/100021B200008D2E00004F60B312A649B9EEC188.svg \
+ presnt/Metropolis/Thumbnails/thumbnail.png \
+ presnt/Midnightblue/Thumbnails/thumbnail.png \
+ presnt/Nature_Illustration/Pictures/10000000000004210000031931EA92AB7FB2FD6C.jpg \
+ presnt/Nature_Illustration/Pictures/100000000000042100000319892187DC121460D8.jpg \
+ presnt/Nature_Illustration/Thumbnails/thumbnail.png \
+ presnt/Pencil/Pictures/1000020100000088000000870A26C51C993940C3.png \
+ presnt/Pencil/Pictures/100002010000037D0000001C2F14EFE8274AD9FC.png \
+ presnt/Pencil/Pictures/1000020100000402000000A2F7F509AE74DE6C69.png \
+ presnt/Pencil/Thumbnails/thumbnail.png \
+ presnt/Piano/Pictures/100000000000035400000120266623530F1969D0.png \
+ presnt/Piano/Pictures/100002010000033A0000006EDD62437E1CC42053.png \
+ presnt/Piano/Thumbnails/thumbnail.png \
+ presnt/Portfolio/Thumbnails/thumbnail.png \
+ presnt/Progress/Thumbnails/thumbnail.png \
+ presnt/Sunset/Thumbnails/thumbnail.png \
+ presnt/Vintage/Pictures/10000000000000580000001F99D2A38C014B254B.png \
+ presnt/Vintage/Pictures/10000201000004B000000337490AE22881331C9B.png \
+ presnt/Vintage/Pictures/10000201000004B00000033776CA70A4BFE2196B.png \
+ presnt/Vintage/Pictures/10000201000004B0000003379D1127938561C230.png \
+ presnt/Vintage/Pictures/10000201000004B000000337D99A2303560BD59C.png \
+ presnt/Vintage/Thumbnails/thumbnail.png \
+ presnt/Vivid/Thumbnails/thumbnail.png \
+ presnt/Yellow_Idea/Thumbnails/thumbnail.png \
+
+
+extra_files_WIZARD := \
+ wizard/agenda/10grey/manifest.rdf \
+ wizard/agenda/10grey/settings.xml \
+ wizard/agenda/1simple/manifest.rdf \
+ wizard/agenda/1simple/settings.xml \
+ wizard/agenda/2elegant/manifest.rdf \
+ wizard/agenda/2elegant/Pictures/1000000000000280000000052876A81A.gif \
+ wizard/agenda/2elegant/Pictures/100002000000008F0000000A83659D51.gif \
+ wizard/agenda/2elegant/settings.xml \
+ wizard/agenda/3modern/manifest.rdf \
+ wizard/agenda/3modern/settings.xml \
+ wizard/agenda/4classic/manifest.rdf \
+ wizard/agenda/4classic/settings.xml \
+ wizard/agenda/5blue/manifest.rdf \
+ wizard/agenda/5blue/settings.xml \
+ wizard/agenda/6orange/manifest.rdf \
+ wizard/agenda/6orange/settings.xml \
+ wizard/agenda/7red/manifest.rdf \
+ wizard/agenda/7red/settings.xml \
+ wizard/agenda/8green/manifest.rdf \
+ wizard/agenda/8green/settings.xml \
+ wizard/agenda/9colorful/manifest.rdf \
+ wizard/agenda/9colorful/settings.xml \
+ wizard/agenda/aw-10grey/manifest.rdf \
+ wizard/agenda/aw-10grey/settings.xml \
+ wizard/agenda/aw-1simple/manifest.rdf \
+ wizard/agenda/aw-1simple/settings.xml \
+ wizard/agenda/aw-2elegant/manifest.rdf \
+ wizard/agenda/aw-2elegant/Pictures/1000000000000280000000052876A81A.gif \
+ wizard/agenda/aw-2elegant/Pictures/100002000000008F0000000A83659D51.gif \
+ wizard/agenda/aw-2elegant/settings.xml \
+ wizard/agenda/aw-3modern/manifest.rdf \
+ wizard/agenda/aw-3modern/settings.xml \
+ wizard/agenda/aw-4classic/manifest.rdf \
+ wizard/agenda/aw-4classic/settings.xml \
+ wizard/agenda/aw-5blue/manifest.rdf \
+ wizard/agenda/aw-5blue/settings.xml \
+ wizard/agenda/aw-6orange/manifest.rdf \
+ wizard/agenda/aw-6orange/settings.xml \
+ wizard/agenda/aw-7red/manifest.rdf \
+ wizard/agenda/aw-7red/settings.xml \
+ wizard/agenda/aw-8green/manifest.rdf \
+ wizard/agenda/aw-8green/settings.xml \
+ wizard/agenda/aw-9colorful/manifest.rdf \
+ wizard/agenda/aw-9colorful/settings.xml \
+ wizard/desktop/html/settings.xml \
+ wizard/desktop/idxexample/settings.xml \
+ wizard/fax/bus-classic_f/manifest.rdf \
+ wizard/fax/bus-classic_f/Pictures/200000520000271100001F73A977C564.wmf \
+ wizard/fax/bus-classic_f/settings.xml \
+ wizard/fax/bus-classic-pri_f/manifest.rdf \
+ wizard/fax/bus-classic-pri_f/settings.xml \
+ wizard/fax/bus-modern_f/manifest.rdf \
+ wizard/fax/bus-modern_f/Pictures/2000004E0000271100001F73772F7F48.wmf \
+ wizard/fax/bus-modern_f/settings.xml \
+ wizard/fax/bus-modern-pri_f/manifest.rdf \
+ wizard/fax/bus-modern-pri_f/settings.xml \
+ wizard/fax/pri-bottle_f/Pictures/200002EB000022DA000024E1F891208C.wmf \
+ wizard/fax/pri-bottle_f/settings.xml \
+ wizard/fax/pri-fax_f/Pictures/2000032600002711000026A54A905481.wmf \
+ wizard/fax/pri-fax_f/settings.xml \
+ wizard/fax/pri-lines_f/settings.xml \
+ wizard/fax/pri-marine_f/Pictures/2000004B0000227F0000227886F3FC0F.wmf \
+ wizard/fax/pri-marine_f/settings.xml \
+ wizard/letter/bus-elegant_l/manifest.rdf \
+ wizard/letter/bus-elegant_l/Pictures/10000000000001B8000000824B7EA208.png \
+ wizard/letter/bus-elegant_l/settings.xml \
+ wizard/letter/bus-modern_l/manifest.rdf \
+ wizard/letter/bus-modern_l/Pictures/10000000000001B8000000824B7EA208.png \
+ wizard/letter/bus-modern_l/settings.xml \
+ wizard/letter/bus-office_l/manifest.rdf \
+ wizard/letter/bus-office_l/Pictures/10000000000001B8000000824B7EA208.png \
+ wizard/letter/bus-office_l/settings.xml \
+ wizard/letter/off-elegant_l/manifest.rdf \
+ wizard/letter/off-elegant_l/Pictures/2000000D00000434000006FD6841386B.svm \
+ wizard/letter/off-elegant_l/settings.xml \
+ wizard/letter/off-modern_l/manifest.rdf \
+ wizard/letter/off-modern_l/Pictures/10000000000000110000001142D1547F.png \
+ wizard/letter/off-modern_l/settings.xml \
+ wizard/letter/off-office_l/manifest.rdf \
+ wizard/letter/off-office_l/settings.xml \
+ wizard/letter/pri-bottle_l/Pictures/200002EB000022DA000024E1F891208C.wmf \
+ wizard/letter/pri-bottle_l/settings.xml \
+ wizard/letter/pri-mail_l/Pictures/200000430000271100001205CAE80946.wmf \
+ wizard/letter/pri-mail_l/settings.xml \
+ wizard/letter/pri-marine_l/Pictures/2000004B0000227F0000227886F3FC0F.wmf \
+ wizard/letter/pri-marine_l/settings.xml \
+ wizard/letter/pri-redline_l/settings.xml \
+ wizard/report/cnt-01/settings.xml \
+ wizard/report/cnt-011/settings.xml \
+ wizard/report/cnt-012/settings.xml \
+ wizard/report/cnt-02/settings.xml \
+ wizard/report/cnt-021/settings.xml \
+ wizard/report/cnt-022/settings.xml \
+ wizard/report/cnt-03/settings.xml \
+ wizard/report/cnt-031/settings.xml \
+ wizard/report/cnt-032/settings.xml \
+ wizard/report/cnt-04/settings.xml \
+ wizard/report/cnt-041/settings.xml \
+ wizard/report/cnt-042/settings.xml \
+ wizard/report/cnt-05/settings.xml \
+ wizard/report/cnt-051/settings.xml \
+ wizard/report/cnt-052/settings.xml \
+ wizard/report/cnt-06/settings.xml \
+ wizard/report/cnt-061/settings.xml \
+ wizard/report/cnt-062/settings.xml \
+ wizard/report/cnt-default/settings.xml \
+ wizard/report/stl-01/manifest.rdf \
+ wizard/report/stl-01/Pictures/100002000000001400000014E87B6AC5.gif \
+ wizard/report/stl-01/Pictures/2000018100001CB100002711BFED37A8.wmf \
+ wizard/report/stl-01/settings.xml \
+ wizard/report/stl-02/manifest.rdf \
+ wizard/report/stl-02/Pictures/2000009E0000380100002657BA019D86.wmf \
+ wizard/report/stl-02/settings.xml \
+ wizard/report/stl-03/manifest.rdf \
+ wizard/report/stl-03/Pictures/2000024900002711000021F4DCB2DF4A.wmf \
+ wizard/report/stl-03/settings.xml \
+ wizard/report/stl-04/manifest.rdf \
+ wizard/report/stl-04/Pictures/10000000000000400000004077CDC8F9.png \
+ wizard/report/stl-04/Pictures/10000000000001C6000000E44DCA6C94.jpg \
+ wizard/report/stl-04/settings.xml \
+ wizard/report/stl-05/manifest.rdf \
+ wizard/report/stl-05/Pictures/2000036D000027110000145EB7E93049.wmf \
+ wizard/report/stl-05/settings.xml \
+ wizard/report/stl-06/manifest.rdf \
+ wizard/report/stl-06/Pictures/100000000000005A000000268DE98CCE.gif \
+ wizard/report/stl-06/Pictures/100000000000021B000001E8BE936AB6.gif \
+ wizard/report/stl-06/settings.xml \
+ wizard/report/stl-07/manifest.rdf \
+ wizard/report/stl-07/settings.xml \
+ wizard/report/stl-08/manifest.rdf \
+ wizard/report/stl-08/Pictures/100000000000005E0000005E97FB9EF6.jpg \
+ wizard/report/stl-08/settings.xml \
+ wizard/report/stl-09/manifest.rdf \
+ wizard/report/stl-09/Pictures/10000000000000050000004D32652675.jpg \
+ wizard/report/stl-09/Pictures/100002000000001400000014E87B6AC5.gif \
+ wizard/report/stl-09/Pictures/2000025100001D92000017719EB70CFB.wmf \
+ wizard/report/stl-09/settings.xml \
+ wizard/report/stl-default/manifest.rdf \
+ wizard/report/stl-default/settings.xml \
+ wizard/styles/black_white/settings.xml \
+ wizard/styles/blackberry/settings.xml \
+ wizard/styles/default/settings.xml \
+ wizard/styles/diner/settings.xml \
+ wizard/styles/fall/settings.xml \
+ wizard/styles/glacier/settings.xml \
+ wizard/styles/green_grapes/settings.xml \
+ wizard/styles/jeans/settings.xml \
+ wizard/styles/marine/settings.xml \
+ wizard/styles/millennium/settings.xml \
+ wizard/styles/nature/settings.xml \
+ wizard/styles/neon/settings.xml \
+ wizard/styles/night/settings.xml \
+ wizard/styles/nostalgic/settings.xml \
+ wizard/styles/pastell/settings.xml \
+ wizard/styles/pool/settings.xml \
+ wizard/styles/pumpkin/settings.xml \
+ wizard/styles/xos/settings.xml \
+
+
+extra_files_WIZDESKTOP := \
+ wizard/desktop/html/settings.xml \
+ wizard/desktop/idxexample/Pictures/2000008600001923000012C24E0D0895.wmf \
+ wizard/desktop/idxexample/settings.xml \
+
+
+extra_files_TEMPLATES := \
+ $(extra_files_COMMON) \
+ $(extra_files_PRESENTATIONS) \
+ $(extra_files_WIZARD) \
+ $(extra_files_WIZDESKTOP) \
+
+
+extra_files_TEMPLATES_RELATIVE = $(subst $(1)/,,$(filter $(1)/%,$(extra_files_TEMPLATES)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/filter/source/graphicfilter/icgm/cgm.cxx b/filter/source/graphicfilter/icgm/cgm.cxx
index d1baf965da78..eeeb763ede49 100644
--- a/filter/source/graphicfilter/icgm/cgm.cxx
+++ b/filter/source/graphicfilter/icgm/cgm.cxx
@@ -227,7 +227,7 @@ double CGM::ImplGetFloat( RealPrecision eRealPrecision, sal_uInt32 nRealSize )
else
{
sal_Int32* pLong = static_cast(pPtr);
- nRetValue = static_cast(abs( pLong[ nSwitch ] ));
+ nRetValue = fabs(static_cast(pLong[nSwitch]));
nRetValue *= 65536;
nVal = static_cast( pLong[ nSwitch ^ 1 ] );
nVal >>= 16;
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 4089fcfba91d..28819f802134 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -3894,7 +3894,7 @@ rtl::Reference SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItem
if ( !bGrfRead )
{
/*
- Still no luck, lets look at the end of this record for a FBSE pool,
+ Still no luck, let's look at the end of this record for a FBSE pool,
this fallback is a specific case for how word does it sometimes
*/
bool bOk = rObjData.rSpHd.SeekToEndOfRecord( rSt );
diff --git a/filter/source/msfilter/mstoolbar.cxx b/filter/source/msfilter/mstoolbar.cxx
index 8b7396da2465..9db38c4bd030 100644
--- a/filter/source/msfilter/mstoolbar.cxx
+++ b/filter/source/msfilter/mstoolbar.cxx
@@ -279,7 +279,7 @@ void TBCData::ImportToolBarControl( CustomToolBarImportHelper& helper, std::vect
TBCBSpecific* pSpecificInfo = dynamic_cast< TBCBSpecific* >( controlSpecificInfo.get() );
if ( pSpecificInfo )
{
- // if we have an icon then lets set it for the command
+ // if we have an icon then let's set it for the command
OUString sCommand;
for (auto const& property : props)
{
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index d5bff6dccf78..a6e793a3a855 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -595,7 +595,7 @@ bool XMLFilterSettingsDialog::insertOrEdit( filter_info_impl* pNewInfo, const fi
if( !bOk )
{
- // we failed to add the type, so lets remove the filter
+ // we failed to add the type, so let's remove the filter
try
{
mxFilterContainer->removeByName( pFilterEntry->maFilterName );
@@ -622,7 +622,7 @@ bool XMLFilterSettingsDialog::insertOrEdit( filter_info_impl* pNewInfo, const fi
if( !bOk )
{
- // we failed to add the filter, so lets remove the type
+ // we failed to add the filter, so let's remove the type
try
{
mxTypeDetection->removeByName( pFilterEntry->maType );
diff --git a/filter/uiconfig/ui/pdflinkspage.ui b/filter/uiconfig/ui/pdflinkspage.ui
index 7e9ce16b77bf..f1229cc9681e 100644
--- a/filter/uiconfig/ui/pdflinkspage.ui
+++ b/filter/uiconfig/ui/pdflinkspage.ui
@@ -1,5 +1,5 @@
-
+
@@ -30,9 +30,9 @@
True
True
False
+ Enable the checkbox to export bookmarks in your document as named destinations in the PDF document.
True
True
- Enable the checkbox to export bookmarks in your document as named destinations in the PDF document.
Enable the checkbox to export bookmarks in your document as named destinations in the PDF document. The destinations correspond to the location of your bookmarks. Use these destinations to create URL links that point to these locations in the PDF document.
diff --git a/filter/uiconfig/ui/pdfoptionsdialog.ui b/filter/uiconfig/ui/pdfoptionsdialog.ui
index e47f774afbf5..63444c040824 100644
--- a/filter/uiconfig/ui/pdfoptionsdialog.ui
+++ b/filter/uiconfig/ui/pdfoptionsdialog.ui
@@ -1,33 +1,30 @@
-
+
- False
- 6
+ False
+ 6
PDF Options
False
True
- 0
- 0
- dialog
-
-
-
+ 0
+ 0
+ dialog
- False
+ False
vertical
12
- False
- end
+ False
+ end
_Reset
- True
- True
+ True
+ True
True
@@ -40,11 +37,11 @@
E_xport
True
- True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
+ True
False
@@ -56,8 +53,8 @@
_Cancel
True
- True
- True
+ True
+ True
True
@@ -70,8 +67,8 @@
_Help
True
- True
- True
+ True
+ True
True
@@ -85,47 +82,23 @@
False
True
- end
+ end
0
True
- True
+ True
True
True
True
- True
+ True
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -134,42 +107,18 @@
True
- False
+ False
General
- False
+ False
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -181,43 +130,19 @@
True
- False
+ False
Initial View
1
- False
+ False
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -229,43 +154,19 @@
True
- False
+ False
User Interface
2
- False
+ False
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -277,43 +178,19 @@
True
- False
+ False
Links
3
- False
+ False
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -325,43 +202,19 @@
True
- False
+ False
Security
4
- False
+ False
True
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ False
@@ -373,12 +226,12 @@
True
- False
+ False
Digital Signatures
5
- False
+ False
diff --git a/filter/uiconfig/ui/pdfsecuritypage.ui b/filter/uiconfig/ui/pdfsecuritypage.ui
index 324513f1a78f..12a297ad7814 100644
--- a/filter/uiconfig/ui/pdfsecuritypage.ui
+++ b/filter/uiconfig/ui/pdfsecuritypage.ui
@@ -1,36 +1,36 @@
-
+
True
- False
+ False
True
True
- 6
+ 6
12
True
- False
- 0
- none
+ False
+ 0
+ none
True
- False
- vertical
- 12
+ False
12
6
+ vertical
+ 12
Set _Passwords…
True
- True
- True
+ True
+ True
start
- True
+ True
Click to open a dialog where you enter the passwords.
@@ -44,32 +44,32 @@
-
+
- False
- True
+ False
+ True
True
- False
+ False
Open password set
0
- 0
- 0
+ 0
+ 0
True
- False
+ False
PDF document will be encrypted
0
- 0
- 1
+ 0
+ 1
@@ -80,32 +80,32 @@
-
+
True
- False
+ False
True
- False
+ False
No open password set
0
- 0
- 0
+ 0
+ 0
True
- False
+ False
PDF document will not be encrypted
0
- 0
- 1
+ 0
+ 1
@@ -118,19 +118,19 @@
- False
- True
+ False
+ True
True
- False
+ False
PDF document will not be encrypted due to PDF/A export.
True
0
- 0
- 0
+ 0
+ 0
@@ -141,32 +141,32 @@
-
+
- False
- True
+ False
+ True
True
- False
+ False
Permission password set
0
- 0
- 0
+ 0
+ 0
True
- False
+ False
PDF document will be restricted
0
- 0
- 1
+ 0
+ 1
@@ -177,32 +177,32 @@
-
+
True
- False
+ False
True
- False
+ False
No permission password set
0
- 0
- 0
+ 0
+ 0
True
- False
+ False
PDF document will be unrestricted
0
- 0
- 1
+ 0
+ 1
@@ -215,19 +215,19 @@
- False
- True
+ False
+ True
True
- False
+ False
PDF document will not be restricted due to PDF/A export.
True
0
- 0
- 0
+ 0
+ 0
@@ -239,8 +239,8 @@
- False
- True
+ False
+ True
Set Passwords
0
@@ -255,7 +255,7 @@
True
- False
+ False
File Encryption and Permission
@@ -272,31 +272,31 @@
True
- False
+ False
vertical
12
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
+ False
12
6
+ 6
_Not permitted
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
printhigh
@@ -305,18 +305,18 @@
- 0
- 0
+ 0
+ 0
_Low resolution (150 dpi)
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
printhigh
@@ -325,19 +325,19 @@
- 0
- 1
+ 0
+ 1
_High resolution
True
- True
- False
- True
+ True
+ False
+ True
True
- True
+ True
The document can be printed in high resolution.
@@ -345,8 +345,8 @@
- 0
- 2
+ 0
+ 2
@@ -354,7 +354,7 @@
True
- False
+ False
Printing
@@ -371,25 +371,25 @@
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
+ False
12
6
+ 6
No_t permitted
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
changeany
@@ -398,18 +398,18 @@
- 0
- 0
+ 0
+ 0
_Inserting, deleting, and rotating pages
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
changeany
@@ -418,18 +418,18 @@
- 0
- 1
+ 0
+ 1
_Filling in form fields
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
changeany
@@ -438,18 +438,18 @@
- 0
- 2
+ 0
+ 2
- 0
- 3
+ 0
+ 3
_Any except extracting pages
True
- True
- False
- True
+ True
+ False
+ True
True
- True
+ True
All changes are permitted, except extracting pages.
@@ -478,8 +478,8 @@
- 0
- 4
+ 0
+ 4
@@ -487,7 +487,7 @@
True
- False
+ False
Changes
@@ -504,26 +504,26 @@
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
+ False
12
6
+ 6
Ena_ble copying of content
True
- True
- False
- True
+ True
+ False
+ True
True
- True
+ True
Select to enable copying of content to the clipboard.
@@ -531,19 +531,19 @@
- 0
- 0
+ 0
+ 0
Enable text access for acce_ssibility tools
True
- True
- False
- True
+ True
+ False
+ True
True
- True
+ True
Select to enable text access for accessibility tools.
@@ -551,8 +551,8 @@
- 0
- 1
+ 0
+ 1
@@ -560,7 +560,7 @@
True
- False
+ False
Content
diff --git a/filter/uiconfig/ui/pdfuserinterfacepage.ui b/filter/uiconfig/ui/pdfuserinterfacepage.ui
index 8a26abc85ac4..15e0e4507d9d 100644
--- a/filter/uiconfig/ui/pdfuserinterfacepage.ui
+++ b/filter/uiconfig/ui/pdfuserinterfacepage.ui
@@ -1,51 +1,51 @@
-
+
1
10
1
- 1
- 10
+ 1
+ 10
True
- False
+ False
True
True
- 6
+ 6
vertical
6
-
+
True
- False
- 12
- 12
+ False
+ 12
+ 12
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
+ False
12
6
+ 6
_Center window on screen
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to generate a PDF file that is shown in a reader window centered on screen.
@@ -53,18 +53,18 @@
- 0
- 1
+ 0
+ 1
_Resize window to initial page
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to generate a PDF file that is shown in a window displaying the whole initial page.
@@ -72,18 +72,18 @@
- 0
- 0
+ 0
+ 0
_Open in full screen mode
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to generate a PDF file that is shown in a full screen reader window in front of all other windows.
@@ -91,18 +91,18 @@
- 0
- 2
+ 0
+ 2
_Display document title
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to generate a PDF file that is shown with the document title in the reader's title bar.
@@ -110,8 +110,8 @@
- 0
- 3
+ 0
+ 3
@@ -119,7 +119,7 @@
True
- False
+ False
Window Options
@@ -128,32 +128,32 @@
- 0
- 0
+ 0
+ 0
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
+ False
12
6
+ 6
Hide _toolbar
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to hide the reader's toolbar when the document is active.
@@ -161,18 +161,18 @@
- 0
- 1
+ 0
+ 1
- 0
- 0
+ 0
+ 0
Hide _window controls
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to hide the reader's controls when the document is active.
@@ -199,8 +199,8 @@
- 0
- 2
+ 0
+ 2
@@ -208,7 +208,7 @@
True
- False
+ False
User Interface Options
@@ -217,31 +217,31 @@
- 1
- 0
+ 1
+ 0
True
- False
- 0
- none
+ False
+ 0
+ none
True
- False
+ False
12
6
_Use transition effects
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Select to export Impress slide transition effects to respective PDF effects.
@@ -249,8 +249,8 @@
- 0
- 0
+ 0
+ 0
@@ -258,7 +258,7 @@
True
- False
+ False
Transitions
@@ -267,34 +267,34 @@
- 0
- 1
+ 0
+ 1
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
- 12
+ False
12
6
+ 6
+ 12
Show _All
True
- True
- False
- True
+ True
+ False
+ True
True
- True
+ True
Select to show all bookmark levels when the reader opens the PDF file.
@@ -302,18 +302,18 @@
- 0
- 0
+ 0
+ 0
_Visible levels:
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
allbookmarks
@@ -325,19 +325,19 @@
- 0
- 1
+ 0
+ 1
True
- True
+ True
+ True
adjustment1
- True
Select to show bookmark levels down to the selected level when the reader opens the PDF file.
@@ -345,8 +345,8 @@
- 1
- 1
+ 1
+ 1
@@ -357,7 +357,7 @@
True
- False
+ False
Collapse Outlines
@@ -366,8 +366,8 @@
- 1
- 1
+ 1
+ 1
diff --git a/filter/uiconfig/ui/testxmlfilter.ui b/filter/uiconfig/ui/testxmlfilter.ui
index b9a5b7188266..a1ccf4c88862 100644
--- a/filter/uiconfig/ui/testxmlfilter.ui
+++ b/filter/uiconfig/ui/testxmlfilter.ui
@@ -1,33 +1,33 @@
-
+
- False
- 6
+ False
+ 6
Test XML Filter: %s
False
True
- 0
- 0
- dialog
+ 0
+ 0
+ dialog
- False
+ False
vertical
12
- False
- end
+ False
+ end
_Close
True
- True
- True
- True
- True
+ True
+ True
+ True
+ True
True
@@ -40,8 +40,8 @@
_Help
True
- True
- True
+ True
+ True
True
@@ -55,63 +55,63 @@
False
True
- end
+ end
0
True
- False
+ False
vertical
12
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
- 12
+ False
12
6
+ 6
+ 12
True
- False
+ False
True
XSLT for export
0
- 0
- 0
+ 0
+ 0
True
- False
+ False
True
Transform document
0
- 0
- 1
+ 0
+ 1
Browse...
True
- True
- True
+ True
+ True
Locate the file that you want to apply the XML export filter to. The XML code of the transformed file is opened in your default XML editor after transformation.
@@ -119,16 +119,16 @@
- 1
- 1
+ 1
+ 1
Current Document
True
- True
- True
+ True
+ True
The front-most open file that matches the XML filter criteria will be used to test the filter. The current XML export filter transforms the file and the resulting XML code is displayed in the XML Filter output window.
@@ -136,14 +136,14 @@
- 1
- 2
+ 1
+ 2
True
- False
+ False
0
@@ -152,15 +152,15 @@
- 1
- 0
+ 1
+ 0
True
- False
- 52
+ False
+ 52
1
@@ -169,8 +169,8 @@
- 0
- 3
+ 0
+ 3
2
@@ -182,7 +182,7 @@
True
- False
+ False
Export
@@ -199,37 +199,37 @@
True
- False
- 0
- none
+ False
+ 0
+ none
-
+
True
- False
- 6
- 12
+ False
12
6
+ 6
+ 12
True
- False
+ False
True
XSLT for import
0
- 0
- 0
+ 0
+ 0
Browse...
True
- True
- True
+ True
+ True
Opens a file selection dialog. The selected file is opened using the current XML import filter.
@@ -237,16 +237,16 @@
- 1
- 3
+ 1
+ 3
Recent File
True
- True
- True
+ True
+ True
Re-opens the document that was last opened with this dialog.
@@ -254,27 +254,27 @@
- 1
- 4
+ 1
+ 4
True
- False
+ False
True
Template for import
0
- 0
- 1
+ 0
+ 1
True
- False
+ False
0
@@ -283,18 +283,18 @@
- 1
- 0
+ 1
+ 0
Display source
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
Opens the XML source of the selected document in your default XML editor after importing.
@@ -302,27 +302,27 @@
- 1
- 2
+ 1
+ 2
True
- False
+ False
True
Transform file
0
- 0
- 2
+ 0
+ 2
True
- False
+ False
0
@@ -331,15 +331,15 @@
- 1
- 1
+ 1
+ 1
True
- False
- 52
+ False
+ 52
1
@@ -348,8 +348,8 @@
- 0
- 5
+ 0
+ 5
2
@@ -364,7 +364,7 @@
True
- False
+ False
Import
@@ -391,9 +391,6 @@
close
help
-
-
-
Tests the XSLT stylesheets used by the selected XML filter.
diff --git a/filter/uiconfig/ui/xmlfiltersettings.ui b/filter/uiconfig/ui/xmlfiltersettings.ui
index 0a769078ee6d..42341d55cf9a 100644
--- a/filter/uiconfig/ui/xmlfiltersettings.ui
+++ b/filter/uiconfig/ui/xmlfiltersettings.ui
@@ -291,4 +291,4 @@
-
\ No newline at end of file
+
diff --git a/filter/uiconfig/ui/xmlfiltertabpagetransformation.ui b/filter/uiconfig/ui/xmlfiltertabpagetransformation.ui
index 7f5bbbc0930c..f816f90e7d93 100644
--- a/filter/uiconfig/ui/xmlfiltertabpagetransformation.ui
+++ b/filter/uiconfig/ui/xmlfiltertabpagetransformation.ui
@@ -1,43 +1,43 @@
-
+
True
- False
- 6
+ False
+ 6
vertical
12
-
+
True
- False
+ False
True
True
- 6
- 12
+ 6
+ 12
True
- False
+ False
_DocType:
- True
- doc
+ True
+ doc
1
- 0
- 0
+ 0
+ 0
True
- True
+ True
True
- True
- 32
+ True
+ 32
True
@@ -46,31 +46,31 @@
- 1
- 0
+ 1
+ 0
True
- False
+ False
_XSLT for export:
- True
- xsltexport
+ True
+ xsltexport
1
- 0
- 1
+ 0
+ 1
Brows_e...
True
- True
- True
- True
+ True
+ True
+ True
Opens a file selection dialog.
@@ -78,31 +78,31 @@
- 2
- 1
+ 2
+ 1
True
- False
+ False
XSLT _for import:
- True
- xsltimport
+ True
+ xsltimport
1
- 0
- 2
+ 0
+ 2
B_rowse...
True
- True
- True
- True
+ True
+ True
+ True
Opens a file selection dialog.
@@ -110,30 +110,30 @@
- 2
- 2
+ 2
+ 2
True
- False
+ False
Template for _import:
- True
- tempimport
+ True
+ tempimport
1
- 0
- 3
+ 0
+ 3
Browse...
True
- True
- True
+ True
+ True
Opens a file selection dialog.
@@ -141,20 +141,20 @@
- 2
- 3
+ 2
+ 3
True
- False
+ False
True
- True
+ True
+ True
True
- True
@@ -164,20 +164,20 @@
- 1
- 1
+ 1
+ 1
True
- False
+ False
True
- True
+ True
+ True
True
- True
@@ -187,20 +187,20 @@
- 1
- 2
+ 1
+ 2
True
- False
+ False
True
- True
+ True
+ True
True
- True
@@ -210,8 +210,8 @@
- 1
- 3
+ 1
+ 3
@@ -228,10 +228,10 @@
The filter needs XSLT 2.0 processor
True
- True
- False
- True
- True
+ True
+ False
+ True
+ True
False
diff --git a/forms/source/component/imgprod.cxx b/forms/source/component/imgprod.cxx
index bec815b91343..47f9f13e3425 100644
--- a/forms/source/component/imgprod.cxx
+++ b/forms/source/component/imgprod.cxx
@@ -125,7 +125,7 @@ void ImageProducer::setImage( css::uno::Reference< css::io::XInputStream > const
void ImageProducer::NewDataAvailable()
{
- if( ( GraphicType::NONE == moGraphic->GetType() ) || moGraphic->GetReaderContext() )
+ if (GraphicType::NONE == moGraphic->GetType())
startProduction();
}
@@ -138,11 +138,11 @@ void ImageProducer::startProduction()
bool bNotifyEmptyGraphics = false;
// valid stream or filled graphic? => update consumers
- if( mpStm || ( moGraphic->GetType() != GraphicType::NONE ) )
+ if (mpStm || moGraphic->GetType() != GraphicType::NONE)
{
// if we already have a graphic, we don't have to import again;
// graphic is cleared if a new Stream is set
- if( ( moGraphic->GetType() == GraphicType::NONE ) || moGraphic->GetReaderContext() )
+ if (moGraphic->GetType() == GraphicType::NONE)
{
if ( ImplImportGraphic( *moGraphic ) )
maDoneHdl.Call( &*moGraphic );
diff --git a/fpicker/uiconfig/ui/breadcrumb.ui b/fpicker/uiconfig/ui/breadcrumb.ui
index c3c6af46eb1a..4d6198f54645 100644
--- a/fpicker/uiconfig/ui/breadcrumb.ui
+++ b/fpicker/uiconfig/ui/breadcrumb.ui
@@ -30,4 +30,4 @@
-
\ No newline at end of file
+
diff --git a/helpcontent2 b/helpcontent2
index 47eaabaeb6b9..5e39c70b9355 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 47eaabaeb6b90551dccb72ad5ba9f241ad7608cf
+Subproject commit 5e39c70b93559a266ba9f68344fe8c4c3f2feacf
diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index e790c17e1155..7e9f47ad22f1 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -992,6 +992,66 @@ void TestBreakIterator::testWordBoundaries()
CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aBounds.startPos);
CPPUNIT_ASSERT_EQUAL(sal_Int32(11), aBounds.endPos);
}
+
+ // tdf#161737: narrow no-break space at the end of words resulted spelling mistakes
+ {
+ aLocale.Language = "en";
+ aLocale.Country = "US";
+
+ OUString aTest(u"L’espace fine insécable\u202F!"_ustr);
+ aBounds
+ = m_xBreak->getWordBoundary(aTest, 14, aLocale, i18n::WordType::DICTIONARY_WORD, false);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(14), aBounds.startPos);
+ // This was 24 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(23), aBounds.endPos);
+ }
+
+ // tdf#161737: narrow no-break space between digits resulted spelling mistakes
+ // as a quick fix, limit NBSP as word-part character only for editing, and not for spell checking
+ // TODO: remove NBSP by the linguistic module or by the spell checking dictionaries to allow
+ // to check numbers with thousand separators and with correct suffix
+ {
+ aLocale.Language = "en";
+ aLocale.Country = "US";
+
+ OUString aTest(u"1\u202F000\u202F000"_ustr);
+ aBounds
+ = m_xBreak->getWordBoundary(aTest, 2, aLocale, i18n::WordType::DICTIONARY_WORD, false);
+ // This was 0 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aBounds.startPos);
+ // This was 8 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aBounds.endPos);
+ }
+
+ // tdf#161737: narrow no-break space at the end of words resulted spelling mistakes
+ {
+ aLocale.Language = "hu";
+ aLocale.Country = "HU";
+
+ OUString aTest(u"L’espace fine insécable\u202F!"_ustr);
+ aBounds
+ = m_xBreak->getWordBoundary(aTest, 14, aLocale, i18n::WordType::DICTIONARY_WORD, false);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(14), aBounds.startPos);
+ // This was 24 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(23), aBounds.endPos);
+ }
+
+ // tdf#161737: narrow no-break space between digits resulted spelling mistakes
+ // as a quick fix, limit NBSP as word-part character only for editing, and not for spell checking
+ // TODO: remove NBSP by the linguistic module or by the spell checking dictionaries to allow
+ // to check numbers with thousand separators and with correct suffix
+ {
+ aLocale.Language = "hu";
+ aLocale.Country = "HU";
+
+ OUString aTest(u"1\u202F000\u202F000"_ustr);
+ aBounds
+ = m_xBreak->getWordBoundary(aTest, 2, aLocale, i18n::WordType::DICTIONARY_WORD, false);
+ // This was 0 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aBounds.startPos);
+ // This was 8 (word + NNBSP)
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aBounds.endPos);
+ }
}
void TestBreakIterator::testSentenceBoundaries()
diff --git a/i18npool/qa/cppunit/test_textsearch.cxx b/i18npool/qa/cppunit/test_textsearch.cxx
index 269380a90910..38cc099b7c95 100644
--- a/i18npool/qa/cppunit/test_textsearch.cxx
+++ b/i18npool/qa/cppunit/test_textsearch.cxx
@@ -38,6 +38,7 @@ public:
void testSearches();
void testWildcardSearch();
void testApostropheSearch();
+ void testQuotationMarkSearch();
void testTdf138410();
CPPUNIT_TEST_SUITE(TestTextSearch);
@@ -45,6 +46,7 @@ public:
CPPUNIT_TEST(testSearches);
CPPUNIT_TEST(testWildcardSearch);
CPPUNIT_TEST(testApostropheSearch);
+ CPPUNIT_TEST(testQuotationMarkSearch);
CPPUNIT_TEST(testTdf138410);
CPPUNIT_TEST_SUITE_END();
private:
@@ -404,6 +406,92 @@ void TestTextSearch::testApostropheSearch()
CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
}
+void TestTextSearch::testQuotationMarkSearch()
+{
+ // A) find typographic quotation marks also by using ASCII ones
+ OUString str( u"“x”, „y‟, ‘z’, ‚a‛"_ustr );
+ sal_Int32 startPos = 0, endPos = str.getLength();
+
+ // set options
+ util::SearchOptions aOptions;
+ aOptions.algorithmType = util::SearchAlgorithms_ABSOLUTE;
+ aOptions.searchFlag = util::SearchFlags::ALL_IGNORE_CASE;
+ aOptions.searchString = "\"x\"";
+ aOptions.transliterateFlags = static_cast(TransliterationFlags::IGNORE_CASE
+ | TransliterationFlags::IGNORE_WIDTH);
+ m_xSearch->setOptions( aOptions );
+
+ util::SearchResult aRes;
+
+ // search forward
+ aRes = m_xSearch->searchForward( str, startPos, endPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(0), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(3), aRes.endOffset[0] );
+
+ // search backwards
+ aRes = m_xSearch->searchBackward( str, endPos, startPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(3), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(0), aRes.endOffset[0] );
+
+ // B)
+ aOptions.searchString = "\"y\"";
+ m_xSearch->setOptions( aOptions );
+
+ // search forward
+ aRes = m_xSearch->searchForward( str, startPos, endPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(5), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(8), aRes.endOffset[0] );
+
+ // search backwards
+ aRes = m_xSearch->searchBackward( str, endPos, startPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(8), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(5), aRes.endOffset[0] );
+
+ // C)
+ aOptions.searchString = "'z'";
+ m_xSearch->setOptions( aOptions );
+
+ // search forward
+ aRes = m_xSearch->searchForward( str, startPos, endPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(10), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(13), aRes.endOffset[0] );
+
+ // search backwards
+ aRes = m_xSearch->searchBackward( str, endPos, startPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(13), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(10), aRes.endOffset[0] );
+
+ // D)
+ aOptions.searchString = "'a'";
+ m_xSearch->setOptions( aOptions );
+
+ // search forward
+ aRes = m_xSearch->searchForward( str, startPos, endPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(15), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(18), aRes.endOffset[0] );
+
+ // search backwards
+ aRes = m_xSearch->searchBackward( str, endPos, startPos );
+ // This was 0.
+ CPPUNIT_ASSERT( aRes.subRegExpressions > 0 );
+ CPPUNIT_ASSERT_EQUAL( static_cast(18), aRes.startOffset[0] );
+ CPPUNIT_ASSERT_EQUAL( static_cast(15), aRes.endOffset[0] );
+}
+
void TestTextSearch::testTdf138410()
{
OUString str(u"\u0643\u064f\u062a\u064f\u0628 \u0643\u062a\u0628"_ustr);
diff --git a/i18npool/source/breakiterator/data/dict_word.txt b/i18npool/source/breakiterator/data/dict_word.txt
index f804b0eec214..deeec7dd659e 100644
--- a/i18npool/source/breakiterator/data/dict_word.txt
+++ b/i18npool/source/breakiterator/data/dict_word.txt
@@ -54,7 +54,7 @@ $Double_Quote = [\p{Word_Break = Double_Quote}];
$MidNumLet = [\p{Word_Break = MidNumLet}];
$MidNum = [\p{Word_Break = MidNum}];
$Numeric = [\p{Word_Break = Numeric}];
-$ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
+$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name = NARROW NO-BREAK SPACE:]];
$WSegSpace = [\p{Word_Break = WSegSpace}];
$Extended_Pict = [\p{Extended_Pictographic}];
diff --git a/i18npool/source/breakiterator/data/dict_word_hu.txt b/i18npool/source/breakiterator/data/dict_word_hu.txt
index 88648e6e5716..4ba426c8c7db 100644
--- a/i18npool/source/breakiterator/data/dict_word_hu.txt
+++ b/i18npool/source/breakiterator/data/dict_word_hu.txt
@@ -53,7 +53,7 @@ $Double_Quote = [\p{Word_Break = Double_Quote}];
$MidNumLet = [\p{Word_Break = MidNumLet}];
$MidNum = [\p{Word_Break = MidNum}];
$Numeric = [\p{Word_Break = Numeric}];
-$ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
+$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name = NARROW NO-BREAK SPACE:]];
$WSegSpace = [\p{Word_Break = WSegSpace}];
$Extended_Pict = [\p{Extended_Pictographic}];
diff --git a/i18npool/source/breakiterator/data/edit_word.txt b/i18npool/source/breakiterator/data/edit_word.txt
index 14fc221aa96e..1e3bcd15b20d 100644
--- a/i18npool/source/breakiterator/data/edit_word.txt
+++ b/i18npool/source/breakiterator/data/edit_word.txt
@@ -65,7 +65,7 @@ $Extended_Pict = [\p{Extended_Pictographic}];
$MidNumLet = [\p{Word_Break = MidNumLet}-[:name= FULL STOP:]];
# $ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
-$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]];
+$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]-[:name = NARROW NO-BREAK SPACE:]];
### END CUSTOMIZATION
@@ -164,16 +164,18 @@ $Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
$Katakana $ExFm* $Katakana {400};
# rule 13a/b
+# allow to select numbers with narrow no-break spaces as thousand separators
+$ExtendNumLetNNBSP = [\p{Word_Break = ExtendNumLet}];
$ALetterPlus $ExFm* $ExtendNumLet {200}; # (13a)
$Hebrew_Letter $ExFm* $ExtendNumLet {200}; # (13a)
-$Numeric $ExFm* $ExtendNumLet {100}; # (13a)
+$Numeric $ExFm* $ExtendNumLetNNBSP {100}; # (13a)
$Katakana $ExFm* $ExtendNumLet {400}; # (13a)
$ExtendNumLet $ExFm* $ExtendNumLet {200}; # (13a)
$ExtendNumLet $ExFm* $ALetterPlus {200}; # (13b)
$ExtendNumLet $ExFm* $Hebrew_Letter {200}; # (13b)
-$ExtendNumLet $ExFm* $Numeric {100}; # (13b)
+$ExtendNumLetNNBSP $ExFm* $Numeric {100}; # (13b)
$ExtendNumLet $ExFm* $Katakana {400}; # (13b)
# rules 15 - 17
diff --git a/i18npool/source/breakiterator/data/edit_word_hu.txt b/i18npool/source/breakiterator/data/edit_word_hu.txt
index 389ad2bacc13..a5e44d2732d9 100644
--- a/i18npool/source/breakiterator/data/edit_word_hu.txt
+++ b/i18npool/source/breakiterator/data/edit_word_hu.txt
@@ -81,7 +81,7 @@ $MidLetter = [\p{Word_Break = MidLetter} $Symbols_hu];
$MidNumLet = [\p{Word_Break = MidNumLet}-[:name= FULL STOP:]];
# $ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
-$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]];
+$ExtendNumLet = [\p{Word_Break = ExtendNumLet}-[:name= LOW LINE:]-[:name = NARROW NO-BREAK SPACE:]];
### END CUSTOMIZATION
@@ -180,16 +180,18 @@ $Numeric $ExFm* ($MidNum | $MidNumLet | $Single_Quote) $ExFm* $Numeric;
$Katakana $ExFm* $Katakana {400};
# rule 13a/b
+# allow to select numbers with narrow no-break spaces as thousand separators
+$ExtendNumLetNNBSP = [\p{Word_Break = ExtendNumLet}];
$ALetterPlus $ExFm* $ExtendNumLet {200}; # (13a)
$Hebrew_Letter $ExFm* $ExtendNumLet {200}; # (13a)
-$Numeric $ExFm* $ExtendNumLet {100}; # (13a)
+$Numeric $ExFm* $ExtendNumLetNNBSP {100}; # (13a)
$Katakana $ExFm* $ExtendNumLet {400}; # (13a)
$ExtendNumLet $ExFm* $ExtendNumLet {200}; # (13a)
$ExtendNumLet $ExFm* $ALetterPlus {200}; # (13b)
$ExtendNumLet $ExFm* $Hebrew_Letter {200}; # (13b)
-$ExtendNumLet $ExFm* $Numeric {100}; # (13b)
+$ExtendNumLetNNBSP $ExFm* $Numeric {100}; # (13b)
$ExtendNumLet $ExFm* $Katakana {400}; # (13b)
# rules 15 - 17
diff --git a/i18npool/source/characterclassification/cclass_unicode_parser.cxx b/i18npool/source/characterclassification/cclass_unicode_parser.cxx
index 9ed95e2f907a..6e27415bdf15 100644
--- a/i18npool/source/characterclassification/cclass_unicode_parser.cxx
+++ b/i18npool/source/characterclassification/cclass_unicode_parser.cxx
@@ -651,7 +651,7 @@ ParserFlags cclass_Unicode::getFlagsExtended(sal_uInt32 const c, const cclass_Un
return ((nTypes & KParseTokens::IGNORE_LEADING_WS) ?
ParserFlags::CHAR_DONTCARE : (bStart ? ParserFlags::CHAR_WORD : (ParserFlags::CHAR_DONTCARE | ParserFlags::WORD_SEP | ParserFlags::VALUE_SEP) ));
case U_OTHER_PUNCTUATION:
- // fdo#61754 Lets see (if we not at the start) if this is midletter
+ // fdo#61754 Let's see (if we not at the start) if this is midletter
// punctuation and allow it in a word if it is similarly to
// U_NON_SPACING_MARK, for example U+00B7 MIDDLE DOT.
// tdf#123575 for U+30FB KATAKANA MIDDLE DOT property is not
diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx
index 816e162c1e6e..dbb49f494781 100644
--- a/i18npool/source/search/textsearch.cxx
+++ b/i18npool/source/search/textsearch.cxx
@@ -93,6 +93,30 @@ bool isSimpleRegexTrans( TransliterationFlags n )
{
return bool(maskSimpleRegexTrans(n));
}
+
+bool isReplacePunctuation( OUString &rStr )
+{
+ return rStr.indexOf(u'\u2018') > -1 ||
+ rStr.indexOf(u'\u2019') > -1 ||
+ rStr.indexOf(u'\u201A') > -1 ||
+ rStr.indexOf(u'\u201B') > -1 ||
+ rStr.indexOf(u'\u201C') > -1 ||
+ rStr.indexOf(u'\u201D') > -1 ||
+ rStr.indexOf(u'\u201E') > -1 ||
+ rStr.indexOf(u'\u201F') > -1;
+}
+
+OUString replacePunctuation( OUString &rStr )
+{
+ return rStr.replace(u'\u2018', '\'')
+ .replace(u'\u2019', '\'')
+ .replace(u'\u201A', '\'')
+ .replace(u'\u201B', '\'')
+ .replace(u'\u201C', '"')
+ .replace(u'\u201D', '"')
+ .replace(u'\u201E', '"')
+ .replace(u'\u201F', '"');
+}
};
TextSearch::TextSearch(const Reference < XComponentContext > & rxContext)
@@ -139,10 +163,10 @@ void TextSearch::setOptions2( const SearchOptions2& rOptions )
// match is not case-altered, leave case-(in)sensitive to regex engine.
transliterateFlags &= ~TransliterationFlags::IGNORE_CASE;
}
- else if ( aSrchPara.searchString.indexOf('\'') > - 1 )
+ else if ( aSrchPara.searchString.indexOf('\'') > - 1 || aSrchPara.searchString.indexOf('"') > - 1 )
{
bSearchApostrophe = true;
- bReplaceApostrophe = aSrchPara.searchString.indexOf(u'\u2019') > -1;
+ bReplaceApostrophe = isReplacePunctuation(aSrchPara.searchString);
}
// Create Transliteration class
@@ -215,7 +239,7 @@ void TextSearch::setOptions2( const SearchOptions2& rOptions )
}
if ( bReplaceApostrophe )
- sSrchStr = sSrchStr.replace(u'\u2019', '\'');
+ sSrchStr = replacePunctuation(sSrchStr);
// Take the new SearchOptions2::AlgorithmType2 field and ignore
// SearchOptions::algorithmType
@@ -308,7 +332,7 @@ SearchResult TextSearch::searchForward( const OUString& searchStr, sal_Int32 sta
// in non-regex mode, allow searching typographical apostrophe with the ASCII one
// to avoid regression after using automatic conversion to U+2019 during typing in Writer
- bool bReplaceApostrophe = bSearchApostrophe && in_str.indexOf(u'\u2019') > -1;
+ bool bReplaceApostrophe = bSearchApostrophe && isReplacePunctuation(in_str);
bUsePrimarySrchStr = true;
@@ -340,7 +364,7 @@ SearchResult TextSearch::searchForward( const OUString& searchStr, sal_Int32 sta
in_str = xTranslit->transliterate(searchStr, nInStartPos, nInEndPos - nInStartPos, offset);
if ( bReplaceApostrophe )
- in_str = in_str.replace(u'\u2019', '\'');
+ in_str = replacePunctuation(in_str);
// JP 20.6.2001: also the start and end positions must be corrected!
sal_Int32 newStartPos =
@@ -447,7 +471,7 @@ SearchResult TextSearch::searchBackward( const OUString& searchStr, sal_Int32 st
// in non-regex mode, allow searching typographical apostrophe with the ASCII one
// to avoid regression after using automatic conversion to U+2019 during typing in Writer
- bool bReplaceApostrophe = bSearchApostrophe && in_str.indexOf(u'\u2019') > -1;
+ bool bReplaceApostrophe = bSearchApostrophe && isReplacePunctuation(in_str);
bUsePrimarySrchStr = true;
@@ -458,7 +482,7 @@ SearchResult TextSearch::searchBackward( const OUString& searchStr, sal_Int32 st
in_str = xTranslit->transliterate( searchStr, endPos, startPos - endPos, offset );
if ( bReplaceApostrophe )
- in_str = in_str.replace(u'\u2019', '\'');
+ in_str = replacePunctuation(in_str);
// JP 20.6.2001: also the start and end positions must be corrected!
sal_Int32 const newStartPos = (startPos < searchStr.getLength())
@@ -508,7 +532,7 @@ SearchResult TextSearch::searchBackward( const OUString& searchStr, sal_Int32 st
else
{
if ( bReplaceApostrophe )
- in_str = in_str.replace(u'\u2019', '\'');
+ in_str = replacePunctuation(in_str);
sres = (this->*fnBackward)( in_str, startPos, endPos );
}
diff --git a/icon-themes/breeze/links.txt b/icon-themes/breeze/links.txt
index 23ba813b7107..03d969ae0e0d 100644
--- a/icon-themes/breeze/links.txt
+++ b/icon-themes/breeze/links.txt
@@ -30,6 +30,7 @@ chart2/res/selectrange.png formula/res/refinp1.png
# cmd
# ==============================================
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
# Add
cmd/32/adddatefield.png cmd/32/datefield.png
diff --git a/icon-themes/colibre/links.txt b/icon-themes/colibre/links.txt
index ede4f262cddb..f7fa0cc05107 100644
--- a/icon-themes/colibre/links.txt
+++ b/icon-themes/colibre/links.txt
@@ -47,6 +47,7 @@ cmd/sc_insertmenulegend.png cmd/sc_legend.png
# cmd
# ==============================================
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
# Add
cmd/32/adddatefield.png cmd/32/datefield.png
diff --git a/icon-themes/colibre/res/donate.png b/icon-themes/colibre/res/donate.png
new file mode 100644
index 000000000000..6c93e5eeb788
Binary files /dev/null and b/icon-themes/colibre/res/donate.png differ
diff --git a/icon-themes/elementary/links.txt b/icon-themes/elementary/links.txt
index 0c320f04ccbe..cc35e834f5e9 100644
--- a/icon-themes/elementary/links.txt
+++ b/icon-themes/elementary/links.txt
@@ -52,6 +52,7 @@ cmd/sc_toggleaxisdescr.png cmd/sc_helplinesvisible.png
# cmd
# ==============================================
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
# Add
cmd/32/adddatefield.png cmd/32/datefield.png
diff --git a/icon-themes/karasa_jaga/links.txt b/icon-themes/karasa_jaga/links.txt
index d71263a1f279..f360ac6c3ad7 100644
--- a/icon-themes/karasa_jaga/links.txt
+++ b/icon-themes/karasa_jaga/links.txt
@@ -1283,6 +1283,7 @@ cmd/sc_editregion.png cmd/sc_insertsection.png
cmd/sc_editselectmenu.png cmd/sc_selecttables.png
cmd/sc_ellipse.png cmd/sc_basicshapes.ellipse.png
cmd/sc_ellipsetoolbox.png cmd/sc_basicshapes.ellipse.png
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
cmd/sc_exitsearch.png cmd/sc_closepreview.png
cmd/sc_exportasgraphic.png cmd/sc_graphic.png
cmd/sc_exportasmenu.png cmd/sc_exportto.png
diff --git a/icon-themes/sifr/links.txt b/icon-themes/sifr/links.txt
index 5733722da4cb..ae5e9021ca37 100644
--- a/icon-themes/sifr/links.txt
+++ b/icon-themes/sifr/links.txt
@@ -57,6 +57,7 @@ cmd/sc_insertmenulegend.png cmd/sc_legend.png
# cmd
# ==============================================
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
# Add
cmd/32/adddatefield.png cmd/32/datefield.png
diff --git a/icon-themes/sukapura/links.txt b/icon-themes/sukapura/links.txt
index 9552ccb3dbf5..5bcf699978bd 100644
--- a/icon-themes/sukapura/links.txt
+++ b/icon-themes/sukapura/links.txt
@@ -60,6 +60,7 @@ cmd/sc_insertmenulegend.png cmd/sc_legend.png
# cmd
# ==============================================
+cmd/sc_endnotedialog.png cmd/sc_footnotedialog.png
# Add
cmd/32/adddatefield.png cmd/32/datefield.png
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index dff64a584fdc..516622722bb9 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -1067,12 +1067,7 @@ typedef enum
*
* Here all aproperties are same as described in svxruler.
*/
- LOK_CALLBACK_VERTICAL_RULER_UPDATE = 73,
-
- /**
- * Status of the document has changed notification
- */
- LOK_CALLBACK_STATUS_UPDATE = 74,
+ LOK_CALLBACK_VERTICAL_RULER_UPDATE = 73
}
LibreOfficeKitCallbackType;
@@ -1250,8 +1245,6 @@ static inline const char* lokCallbackTypeToString(int nType)
return "LOK_CALLBACK_TOOLTIP";
case LOK_CALLBACK_SHAPE_INNER_TEXT:
return "LOK_CALLBACK_SHAPE_INNER_TEXT";
- case LOK_CALLBACK_STATUS_UPDATE:
- return "LOK_CALLBACK_STATUS_UPDATE";
}
assert(!"Unknown LibreOfficeKitCallbackType type.");
diff --git a/include/LibreOfficeKit/LibreOfficeKitInit.h b/include/LibreOfficeKit/LibreOfficeKitInit.h
index 10085d3c1c35..eafee08083a4 100644
--- a/include/LibreOfficeKit/LibreOfficeKitInit.h
+++ b/include/LibreOfficeKit/LibreOfficeKitInit.h
@@ -158,6 +158,7 @@ extern "C"
size_sEnvPath = strlen(sEnvPath);
buffer_size = size_sEnvPath + 2*strlen(pPath) + strlen(UNOPATH) + 4;
sNewPath = (char *) malloc(buffer_size);
+ assert(sNewPath);
sNewPath[0] = L'\0';
strcat_s(sNewPath, buffer_size, pPath); // program to PATH
strcat_s(sNewPath, buffer_size, ";");
diff --git a/include/editeng/borderline.hxx b/include/editeng/borderline.hxx
index 86c6be8161be..05b76a05070d 100644
--- a/include/editeng/borderline.hxx
+++ b/include/editeng/borderline.hxx
@@ -254,21 +254,6 @@ public:
static Color threeDDarkColor( Color aMain );
static BorderWidthImpl getWidthImpl( SvxBorderLineStyle nStyle );
-
- std::size_t getHash() const
- {
- std::size_t seed = 0;
- o3tl::hash_combine(seed, m_nWidth);
- o3tl::hash_combine(seed, m_nMult);
- o3tl::hash_combine(seed, m_nDiv);
- o3tl::hash_combine(seed, m_aWidthImpl.getHash());
- o3tl::hash_combine(seed, m_aColor.operator::sal_uInt32());
- o3tl::hash_combine(seed, m_aComplexColor.getHash());
- o3tl::hash_combine(seed, m_nStyle);
- o3tl::hash_combine(seed, m_bMirrorWidths);
- o3tl::hash_combine(seed, m_bUseLeftTop);
- return seed;
- }
};
EDITENG_DLLPUBLIC bool operator!=( const SvxBorderLine& rLeft, const SvxBorderLine& rRight );
diff --git a/include/editeng/sizeitem.hxx b/include/editeng/sizeitem.hxx
index 2247c76d9e79..4e20699f1cef 100644
--- a/include/editeng/sizeitem.hxx
+++ b/include/editeng/sizeitem.hxx
@@ -56,12 +56,15 @@ public:
virtual bool HasMetrics() const override;
const Size& GetSize() const { return m_aSize; }
- void SetSize(const Size& rSize) { m_aSize = rSize; }
+ void SetSize(const Size& rSize)
+ { ASSERT_CHANGE_REFCOUNTED_ITEM; m_aSize = rSize; }
tools::Long GetWidth() const { return m_aSize.getWidth(); }
tools::Long GetHeight() const { return m_aSize.getHeight(); }
- void SetWidth(tools::Long n) { m_aSize.setWidth(n); }
- void SetHeight(tools::Long n) { m_aSize.setHeight(n); }
+ void SetWidth(tools::Long n)
+ { ASSERT_CHANGE_REFCOUNTED_ITEM; m_aSize.setWidth(n); }
+ void SetHeight(tools::Long n)
+ { ASSERT_CHANGE_REFCOUNTED_ITEM; m_aSize.setHeight(n); }
};
#endif
diff --git a/include/editeng/svxfont.hxx b/include/editeng/svxfont.hxx
index 126b56f8f65f..9061ffe398d2 100644
--- a/include/editeng/svxfont.hxx
+++ b/include/editeng/svxfont.hxx
@@ -113,6 +113,9 @@ public:
SvxFont& operator=( const SvxFont& rFont );
SvxFont& operator=( const Font& rFont );
+
+ // returns true if the SvxFont's own properties are equal (the SvxFont portion of an operator==)
+ bool SvxFontSubsetEquals(const SvxFont& rFont) const;
};
#endif // INCLUDED_EDITENG_SVXFONT_HXX
diff --git a/include/editeng/tstpitem.hxx b/include/editeng/tstpitem.hxx
index 037e76636641..f0f99ce9cc86 100644
--- a/include/editeng/tstpitem.hxx
+++ b/include/editeng/tstpitem.hxx
@@ -37,11 +37,10 @@ class EDITENG_DLLPUBLIC SvxTabStop
private:
sal_Int32 nTabPos;
SvxTabAdjust eAdjustment;
- mutable sal_Unicode
- m_cDecimal;
+ sal_Unicode m_cDecimal;
sal_Unicode cFill;
- void fillDecimal() const;
+ void fillDecimal();
public:
SvxTabStop();
@@ -56,8 +55,8 @@ public:
SvxTabAdjust& GetAdjustment() { return eAdjustment; }
SvxTabAdjust GetAdjustment() const { return eAdjustment; }
- sal_Unicode& GetDecimal() { fillDecimal(); return m_cDecimal; }
- sal_Unicode GetDecimal() const { fillDecimal(); return m_cDecimal; }
+ sal_Unicode& GetDecimal() { return m_cDecimal; }
+ sal_Unicode GetDecimal() const { return m_cDecimal; }
sal_Unicode& GetFill() { return cFill; }
sal_Unicode GetFill() const { return cFill; }
diff --git a/include/sal/config.h b/include/sal/config.h
index 5d6bd3459287..f666fed23897 100644
--- a/include/sal/config.h
+++ b/include/sal/config.h
@@ -108,7 +108,7 @@
#if __has_warning("-Wpotentially-evaluated-expression")
#pragma GCC diagnostic ignored "-Wpotentially-evaluated-expression"
#endif
-// Before fixing occurrences of this warning, lets see whether C++20 will still change to obsolete
+// Before fixing occurrences of this warning, let's see whether C++20 will still change to obsolete
// the warning (see
// "[c++20]
// Add rewriting from comparison operators to <=> / =="):
diff --git a/include/sax/tools/converter.hxx b/include/sax/tools/converter.hxx
index bb97acc595ac..e6568faffbd6 100644
--- a/include/sax/tools/converter.hxx
+++ b/include/sax/tools/converter.hxx
@@ -210,6 +210,14 @@ public:
static bool convert10thDegAngle(sal_Int16& rAngle, std::string_view rString,
bool isWrongOOo10thDegAngle);
+ /** convert SVG angle to number, in 1/nFactor of degrees, range [0..nFactor*360[ */
+ static bool convertAngle(double& rAngle, std::u16string_view rString,
+ const sal_uInt16& nFactor = 1);
+
+ /** convert SVG angle to number, in 1/nFactor of degrees, range [0..nFactor*360[ */
+ static bool convertAngle(double& rAngle, std::string_view rString,
+ const sal_uInt16& nFactor = 1);
+
/** convert double to XMLSchema-2 "duration" string; negative durations allowed */
static void convertDuration(OUStringBuffer& rBuffer,
const double fTime);
diff --git a/include/sfx2/AccessibilityIssue.hxx b/include/sfx2/AccessibilityIssue.hxx
index d6dd7eb3f4bf..1533159c42f8 100644
--- a/include/sfx2/AccessibilityIssue.hxx
+++ b/include/sfx2/AccessibilityIssue.hxx
@@ -37,6 +37,7 @@ enum class AccessibilityIssueID
TABLE_FORMATTING,
HYPERLINK_IS_TEXT,
HYPERLINK_SHORT,
+ HYPERLINK_NO_NAME,
FAKE_FOOTNOTE,
FAKE_CAPTION,
MANUAL_NUMBERING
diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index 617d4b2363a6..2c20b3d8b81a 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -587,6 +587,7 @@ class SvxZoomItem;
#define SID_GALLERY_BG_BRUSH (SID_SVX_START + 279)
#define SID_SEARCH_OPTIONS TypedWhichId(SID_SVX_START + 281)
#define SID_SEARCH_ITEM TypedWhichId(SID_SVX_START + 291)
+#define SID_SEARCH_USE_ATTR_ITEM_LIST TypedWhichId(SID_SFX_START + 292)
#define SID_SIDEBAR TypedWhichId(SID_SVX_START + 336)
#define SID_NOTEBOOKBAR TypedWhichId(SID_SVX_START + 338)
#define SID_MENUBAR TypedWhichId(SID_SVX_START + 339)
diff --git a/include/sfx2/shell.hxx b/include/sfx2/shell.hxx
index 420c8d578b95..566241c6db7e 100644
--- a/include/sfx2/shell.hxx
+++ b/include/sfx2/shell.hxx
@@ -455,7 +455,7 @@ public:
defined with an earlier call to SetContextName().
When then broadcast the 'default' context.
*/
- void BroadcastContextForActivation (const bool bIsActivated);
+ virtual void BroadcastContextForActivation (const bool bIsActivated);
/** Enabled or disable the context broadcaster. Returns the old state.
*/
diff --git a/include/svl/cintitem.hxx b/include/svl/cintitem.hxx
index 0b3da790d1ed..d9c0f273f260 100644
--- a/include/svl/cintitem.hxx
+++ b/include/svl/cintitem.hxx
@@ -51,15 +51,9 @@ public:
sal_uInt8 GetValue() const { return m_nValue; }
- inline void SetValue(sal_uInt8 nTheValue);
+ void SetValue(sal_uInt8 nTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; m_nValue = nTheValue; }
};
-inline void CntByteItem::SetValue(sal_uInt8 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntByteItem::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
class SVL_DLLPUBLIC CntUInt16Item: public SfxPoolItem
{
sal_uInt16 m_nValue;
@@ -88,14 +82,9 @@ public:
sal_uInt16 GetValue() const { return m_nValue; }
- inline void SetValue(sal_uInt16 nTheValue);
+ void SetValue(sal_uInt16 nTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; m_nValue = nTheValue; }
};
-inline void CntUInt16Item::SetValue(sal_uInt16 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntUInt16Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
class SVL_DLLPUBLIC CntInt32Item: public SfxPoolItem
{
@@ -125,14 +114,9 @@ public:
sal_Int32 GetValue() const { return m_nValue; }
- inline void SetValue(sal_Int32 nTheValue);
+ void SetValue(sal_Int32 nTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; m_nValue = nTheValue; }
};
-inline void CntInt32Item::SetValue(sal_Int32 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntInt32Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
class SVL_DLLPUBLIC CntUInt32Item: public SfxPoolItem
{
@@ -162,15 +146,9 @@ public:
sal_uInt32 GetValue() const { return m_nValue; }
- inline void SetValue(sal_uInt32 nTheValue);
+ void SetValue(sal_uInt32 nTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; m_nValue = nTheValue; }
};
-inline void CntUInt32Item::SetValue(sal_uInt32 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntUInt32Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
#endif // INCLUDED_SVL_CINTITEM_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svl/custritm.hxx b/include/svl/custritm.hxx
index 0251df2ca182..118fd0963f15 100644
--- a/include/svl/custritm.hxx
+++ b/include/svl/custritm.hxx
@@ -55,15 +55,9 @@ public:
const OUString & GetValue() const { return m_aValue; }
- inline void SetValue(const OUString & rTheValue);
+ void SetValue(const OUString & rTheValue) { ASSERT_CHANGE_REFCOUNTED_ITEM; m_aValue = rTheValue; }
};
-inline void CntUnencodedStringItem::SetValue(const OUString & rTheValue)
-{
- assert(GetRefCount() == 0 && "cannot modify name of pooled item");
- m_aValue = rTheValue;
-}
-
#endif // INCLUDED_SVL_CUSTRITM_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svl/eitem.hxx b/include/svl/eitem.hxx
index 8e95bed00881..f6fb22bfeb7d 100644
--- a/include/svl/eitem.hxx
+++ b/include/svl/eitem.hxx
@@ -22,7 +22,7 @@
#include
#include
-
+#include
template
class SAL_DLLPUBLIC_RTTI SfxEnumItem : public SfxEnumItemInterface
@@ -43,7 +43,7 @@ public:
void SetValue(EnumT nTheValue)
{
- assert(GetRefCount() == 0 && "SfxEnumItem::SetValue(): Pooled item");
+ ASSERT_CHANGE_REFCOUNTED_ITEM;
m_nValue = nTheValue;
}
diff --git a/include/svl/flagitem.hxx b/include/svl/flagitem.hxx
index 76226cb1aa80..ac32bab18ca9 100644
--- a/include/svl/flagitem.hxx
+++ b/include/svl/flagitem.hxx
@@ -44,12 +44,9 @@ public:
MapUnit ePresMetric,
OUString & rText,
const IntlWrapper& ) const override;
- sal_uInt16 GetValue() const { return nVal; }
- void SetValue( sal_uInt16 nNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- nVal = nNewVal;
- }
- bool GetFlag( sal_uInt8 nFlag ) const { return (nVal & ( 1<
#include
#include
+#include
class IntlWrapper;
@@ -502,6 +503,8 @@ public:
bool isDynamicDefault() const { return m_bDynamicDefault; }
bool isSetItem() const { return m_bIsSetItem; }
bool isShareable() const { return m_bShareable; }
+ bool isPooled() const { return GetRefCount() > 0; }
+
// version that allows nullptrs
static bool areSame(const SfxPoolItem* pItem1, const SfxPoolItem* pItem2);
@@ -638,7 +641,7 @@ private:
// that specific Item (see other derivations)
class SVL_DLLPUBLIC DefaultItemInstanceManager : public ItemInstanceManager
{
- std::unordered_set maRegistered;
+ std::unordered_map> maRegistered;
public:
DefaultItemInstanceManager(const std::size_t aClassHash)
@@ -652,6 +655,45 @@ private:
virtual void remove(const SfxPoolItem&) override;
};
+/**
+ Utility template to reduce boilerplate code when creating item instance managers
+ for specific PoolItem subclasses.
+*/
+template
+class TypeSpecificItemInstanceManager : public ItemInstanceManager
+{
+public:
+ TypeSpecificItemInstanceManager()
+ : ItemInstanceManager(typeid(T).hash_code())
+ {
+ }
+
+ // standard interface, accessed exclusively
+ // by implCreateItemEntry/implCleanupItemEntry
+ virtual const SfxPoolItem* find(const SfxPoolItem& rItem) const override final
+ {
+ auto aHit(maRegistered.find(hashCode(rItem)));
+ if (aHit != maRegistered.end())
+ return aHit->second;
+ return nullptr;
+ }
+ virtual void add(const SfxPoolItem& rItem) override final
+ {
+ maRegistered.insert({hashCode(rItem), &rItem});
+ }
+ virtual void remove(const SfxPoolItem& rItem) override final
+ {
+ maRegistered.erase(hashCode(rItem));
+ }
+
+protected:
+ virtual size_t hashCode(const SfxPoolItem&) const = 0;
+
+private:
+ std::unordered_map maRegistered;
+};
+
+
inline bool IsStaticDefaultItem(const SfxPoolItem *pItem )
{
return pItem && pItem->isStaticDefault();
@@ -667,11 +709,6 @@ inline bool IsDefaultItem( const SfxPoolItem *pItem )
return pItem && (pItem->isStaticDefault() || pItem->isDynamicDefault());
}
-inline bool IsPooledItem( const SfxPoolItem *pItem )
-{
- return pItem && pItem->GetRefCount() > 0;
-}
-
SVL_DLLPUBLIC extern SfxPoolItem const * const INVALID_POOL_ITEM;
SVL_DLLPUBLIC extern SfxPoolItem const * const DISABLED_POOL_ITEM;
diff --git a/include/svl/ptitem.hxx b/include/svl/ptitem.hxx
index 2ceb39410695..90db98bbc869 100644
--- a/include/svl/ptitem.hxx
+++ b/include/svl/ptitem.hxx
@@ -46,10 +46,7 @@ public:
virtual SfxPointItem* Clone( SfxItemPool *pPool = nullptr ) const override;
const Point& GetValue() const { return aVal; }
- void SetValue( const Point& rNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- aVal = rNewVal;
- }
+ void SetValue( const Point& rNewVal ) { ASSERT_CHANGE_REFCOUNTED_ITEM; aVal = rNewVal; }
virtual bool QueryValue( css::uno::Any& rVal,
sal_uInt8 nMemberId = 0 ) const override;
diff --git a/include/svtools/borderline.hxx b/include/svtools/borderline.hxx
index 90ecee6512f5..f5b2b56093fa 100644
--- a/include/svtools/borderline.hxx
+++ b/include/svtools/borderline.hxx
@@ -74,15 +74,6 @@ public:
bool IsEmpty( ) const { return (0 == m_nRate1) && (0 == m_nRate2); }
bool IsDouble( ) const { return (0 != m_nRate1) && (0 != m_nRate2); }
- std::size_t getHash() const
- {
- std::size_t seed = 0;
- o3tl::hash_combine(seed, m_nFlags);
- o3tl::hash_combine(seed, m_nRate1);
- o3tl::hash_combine(seed, m_nRate2);
- o3tl::hash_combine(seed, m_nRateGap);
- return seed;
- }
};
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 8c61f7714e09..c9c1c899998b 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -1570,7 +1570,7 @@
#define RID_SUBSETSTR_THAANA NC_("RID_SUBSETMAP", "Thaana")
#define RID_SUBSETSTR_ETHIOPIC NC_("RID_SUBSETMAP", "Ethiopic")
#define RID_SUBSETSTR_CHEROKEE NC_("RID_SUBSETMAP", "Cherokee")
-#define RID_SUBSETSTR_CANADIAN_ABORIGINAL NC_("RID_SUBSETMAP", "Unified Canadian Aboriginal Syllables")
+#define RID_SUBSETSTR_CANADIAN_ABORIGINAL NC_("RID_SUBSETMAP", "Unified Canadian Aboriginal Syllabics")
#define RID_SUBSETSTR_MONGOLIAN NC_("RID_SUBSETMAP", "Mongolian")
#define RID_SUBSETSTR_MISC_MATH_SYMS_A NC_("RID_SUBSETMAP", "Miscellaneous Mathematical Symbols-A")
#define RID_SUBSETSTR_SUPPL_ARROWS_A NC_("RID_SUBSETMAP", "Supplemental Arrows-A")
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index 81ec0927db4c..f029d928aa8a 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -42,11 +42,7 @@
#include
#include
-
-#ifdef DBG_UTIL
-// SdrObjectLifetimeWatchDog
#include
-#endif
class OutputDevice;
class SdrOutliner;
@@ -153,8 +149,9 @@ struct SdrModelImpl;
class SVXCORE_DLLPUBLIC SdrModel : public SfxBroadcaster, public tools::WeakBase
{
-#ifdef DBG_UTIL
- // SdrObjectLifetimeWatchDog:
+ // We need to keep track of all the SdrObjects linked to this SdrModel so that we can
+ // shut them down cleanly, otherwise we end up with use-after-free issues.
+ //
// Use maAllIncarnatedObjects to keep track of all SdrObjects incarnated using this SdrModel
// (what is now possible after the paradigm change that a SdrObject stays at a single SdrModel
// for it's whole lifetime).
@@ -174,7 +171,6 @@ class SVXCORE_DLLPUBLIC SdrModel : public SfxBroadcaster, public tools::WeakBase
friend void impAddIncarnatedSdrObjectToSdrModel(SdrObject& rSdrObject, SdrModel& rSdrModel);
friend void impRemoveIncarnatedSdrObjectToSdrModel(SdrObject& rSdrObject, SdrModel& rSdrModel);
std::unordered_set< SdrObject* > maAllIncarnatedObjects;
-#endif
protected:
std::vector> maMasterPages;
std::vector> maPages;
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 8dd17bdc00f5..f1bee52e87ec 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -409,7 +409,7 @@ public:
void BroadcastObjectChange() const;
- const SfxBroadcaster* GetBroadcaster() const;
+ SfxBroadcaster* GetBroadcaster() const;
// set modified-flag in the model
virtual void SetChanged();
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 743afaced0e3..95504986d1e1 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -188,10 +188,10 @@ public:
class SVXCORE_DLLPUBLIC SdrUndoMoveObj final : public SdrUndoObj
{
- Size aDistance; // Distance by which we move
+ Size m_aDistance; // Distance by which we move
public:
- SdrUndoMoveObj(SdrObject& rNewObj, const Size& rDist): SdrUndoObj(rNewObj),aDistance(rDist) {}
+ SdrUndoMoveObj(SdrObject& rNewObj, const Size& rDist): SdrUndoObj(rNewObj),m_aDistance(rDist) {}
virtual ~SdrUndoMoveObj() override;
virtual void Undo() override;
diff --git a/include/svx/unoshape.hxx b/include/svx/unoshape.hxx
index a72c3beae1b5..4ae84a2bc74e 100644
--- a/include/svx/unoshape.hxx
+++ b/include/svx/unoshape.hxx
@@ -226,7 +226,7 @@ public:
void setMaster( SvxShapeMaster* pMaster );
// SfxListener
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) noexcept override;
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) noexcept override final;
// XAggregation
virtual css::uno::Any SAL_CALL queryAggregation( const css::uno::Type& aType ) override;
diff --git a/include/systools/curlinit.hxx b/include/systools/curlinit.hxx
index 7c6f8d07deaf..7fe72370c858 100644
--- a/include/systools/curlinit.hxx
+++ b/include/systools/curlinit.hxx
@@ -14,7 +14,7 @@
#include
// curl is built with --with-secure-transport on macOS and iOS so doesn't need these
-// certs. Windows doesn't need them either, but lets assume everything else does
+// certs. Windows doesn't need them either, but let's assume everything else does
#if !defined(SYSTEM_OPENSSL) && !defined(_WIN32) && !defined(MACOSX) && !defined(IOS)
#include
diff --git a/include/tools/UnitConversion.hxx b/include/tools/UnitConversion.hxx
index 43237e0514c5..b7756343252c 100644
--- a/include/tools/UnitConversion.hxx
+++ b/include/tools/UnitConversion.hxx
@@ -12,77 +12,7 @@
#include
#include
-#include
#include
-#include
-
-constexpr o3tl::Length FieldToO3tlLength(FieldUnit eU, o3tl::Length ePixelValue = o3tl::Length::px)
-{
- switch (eU)
- {
- case FieldUnit::MM:
- return o3tl::Length::mm;
- case FieldUnit::CM:
- return o3tl::Length::cm;
- case FieldUnit::M:
- return o3tl::Length::m;
- case FieldUnit::KM:
- return o3tl::Length::km;
- case FieldUnit::TWIP:
- return o3tl::Length::twip;
- case FieldUnit::POINT:
- return o3tl::Length::pt;
- case FieldUnit::PICA:
- return o3tl::Length::pc;
- case FieldUnit::INCH:
- return o3tl::Length::in;
- case FieldUnit::FOOT:
- return o3tl::Length::ft;
- case FieldUnit::MILE:
- return o3tl::Length::mi;
- case FieldUnit::CHAR:
- return o3tl::Length::ch;
- case FieldUnit::LINE:
- return o3tl::Length::line;
- case FieldUnit::MM_100TH:
- return o3tl::Length::mm100;
- case FieldUnit::PIXEL:
- return ePixelValue;
- default:
- return o3tl::Length::invalid;
- }
-}
-
-constexpr o3tl::Length MapToO3tlLength(MapUnit eU, o3tl::Length ePixelValue = o3tl::Length::px)
-{
- switch (eU)
- {
- case MapUnit::Map100thMM:
- return o3tl::Length::mm100;
- case MapUnit::Map10thMM:
- return o3tl::Length::mm10;
- case MapUnit::MapMM:
- return o3tl::Length::mm;
- case MapUnit::MapCM:
- return o3tl::Length::cm;
- case MapUnit::Map1000thInch:
- return o3tl::Length::in1000;
- case MapUnit::Map100thInch:
- return o3tl::Length::in100;
- case MapUnit::Map10thInch:
- return o3tl::Length::in10;
- case MapUnit::MapInch:
- return o3tl::Length::in;
- case MapUnit::MapPoint:
- return o3tl::Length::pt;
- case MapUnit::MapTwip:
- return o3tl::Length::twip;
- case MapUnit::MapPixel:
- return ePixelValue;
- default:
- return o3tl::Length::invalid;
- }
-}
inline Fraction conversionFract(o3tl::Length from, o3tl::Length to)
{
@@ -92,7 +22,8 @@ inline Fraction conversionFract(o3tl::Length from, o3tl::Length to)
template constexpr auto convertTwipToMm100(N n)
{
- return o3tl::convert(n, o3tl::Length::twip, o3tl::Length::mm100);
+ using namespace o3tl; // Allow ADL find overloads e.g. in
+ return convert(n, o3tl::Length::twip, o3tl::Length::mm100);
}
constexpr sal_Int64 sanitiseMm100ToTwip(sal_Int64 n)
diff --git a/include/tools/fldunit.hxx b/include/tools/fldunit.hxx
index a2838c32ff25..72ab9ad92d87 100644
--- a/include/tools/fldunit.hxx
+++ b/include/tools/fldunit.hxx
@@ -19,6 +19,9 @@
#ifndef INCLUDED_TOOLS_FLDUNIT_HXX
#define INCLUDED_TOOLS_FLDUNIT_HXX
+#include
+
+#include
#include
// Corresponds to offapi/com/sun/star/awt/FieldUnit.idl
@@ -46,6 +49,43 @@ enum class FieldUnit : sal_uInt16
MILLISECOND,
};
+constexpr o3tl::Length FieldToO3tlLength(FieldUnit eU, o3tl::Length ePixelValue = o3tl::Length::px)
+{
+ switch (eU)
+ {
+ case FieldUnit::MM:
+ return o3tl::Length::mm;
+ case FieldUnit::CM:
+ return o3tl::Length::cm;
+ case FieldUnit::M:
+ return o3tl::Length::m;
+ case FieldUnit::KM:
+ return o3tl::Length::km;
+ case FieldUnit::TWIP:
+ return o3tl::Length::twip;
+ case FieldUnit::POINT:
+ return o3tl::Length::pt;
+ case FieldUnit::PICA:
+ return o3tl::Length::pc;
+ case FieldUnit::INCH:
+ return o3tl::Length::in;
+ case FieldUnit::FOOT:
+ return o3tl::Length::ft;
+ case FieldUnit::MILE:
+ return o3tl::Length::mi;
+ case FieldUnit::CHAR:
+ return o3tl::Length::ch;
+ case FieldUnit::LINE:
+ return o3tl::Length::line;
+ case FieldUnit::MM_100TH:
+ return o3tl::Length::mm100;
+ case FieldUnit::PIXEL:
+ return ePixelValue;
+ default:
+ return o3tl::Length::invalid;
+ }
+}
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/tools/mapunit.hxx b/include/tools/mapunit.hxx
index 881a90713cd0..a79950f0d264 100644
--- a/include/tools/mapunit.hxx
+++ b/include/tools/mapunit.hxx
@@ -18,6 +18,9 @@
*/
#pragma once
+#include
+
+#include
#include
enum class MapUnit : sal_uInt8
@@ -32,4 +35,35 @@ enum class MapUnit : sal_uInt8
LASTENUMDUMMY // used as an error return
};
+constexpr o3tl::Length MapToO3tlLength(MapUnit eU, o3tl::Length ePixelValue = o3tl::Length::px)
+{
+ switch (eU)
+ {
+ case MapUnit::Map100thMM:
+ return o3tl::Length::mm100;
+ case MapUnit::Map10thMM:
+ return o3tl::Length::mm10;
+ case MapUnit::MapMM:
+ return o3tl::Length::mm;
+ case MapUnit::MapCM:
+ return o3tl::Length::cm;
+ case MapUnit::Map1000thInch:
+ return o3tl::Length::in1000;
+ case MapUnit::Map100thInch:
+ return o3tl::Length::in100;
+ case MapUnit::Map10thInch:
+ return o3tl::Length::in10;
+ case MapUnit::MapInch:
+ return o3tl::Length::in;
+ case MapUnit::MapPoint:
+ return o3tl::Length::pt;
+ case MapUnit::MapTwip:
+ return o3tl::Length::twip;
+ case MapUnit::MapPixel:
+ return ePixelValue;
+ default:
+ return o3tl::Length::invalid;
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/tools/solar.h b/include/tools/solar.h
index ae7c5288c4cc..94015e259c0c 100644
--- a/include/tools/solar.h
+++ b/include/tools/solar.h
@@ -23,6 +23,8 @@
#include
#include
+#include
+
/** Intermediate type to solve type clash with Windows headers.
Should be removed as soon as all code parts have been reviewed
and the correct type is known. Most of the times ULONG is meant
@@ -42,8 +44,6 @@ typedef sal_uInt8 SVBT16[2];
typedef sal_uInt8 SVBT32[4];
typedef sal_uInt8 SVBT64[8];
-#ifdef __cplusplus
-
inline sal_uInt16 SVBT16ToUInt16( const SVBT16 p ) { return static_cast
(static_cast(p[0])
+ (static_cast(p[1]) << 8)); }
@@ -53,32 +53,16 @@ inline sal_uInt32 SVBT32ToUInt32 ( const SVBT32 p ) { return static_cast(p[1]) << 8)
+ (static_cast(p[2]) << 16)
+ (static_cast(p[3]) << 24)); }
-#if defined OSL_LITENDIAN
inline double SVBT64ToDouble( const SVBT64 p )
{
double n;
- reinterpret_cast(&n)[0] = p[0];
- reinterpret_cast(&n)[1] = p[1];
- reinterpret_cast(&n)[2] = p[2];
- reinterpret_cast(&n)[3] = p[3];
- reinterpret_cast(&n)[4] = p[4];
- reinterpret_cast(&n)[5] = p[5];
- reinterpret_cast(&n)[6] = p[6];
- reinterpret_cast(&n)[7] = p[7];
+#if defined OSL_LITENDIAN
+ std::copy(p, p + 8, reinterpret_cast(&n));
+#else
+ std::reverse_copy(p, p + 8, reinterpret_cast(&n));
+#endif
return n;
}
-#else
-inline double SVBT64ToDouble( const SVBT64 p ) { double n;
- reinterpret_cast(&n)[0] = p[7];
- reinterpret_cast(&n)[1] = p[6];
- reinterpret_cast(&n)[2] = p[5];
- reinterpret_cast(&n)[3] = p[4];
- reinterpret_cast(&n)[4] = p[3];
- reinterpret_cast(&n)[5] = p[2];
- reinterpret_cast(&n)[6] = p[1];
- reinterpret_cast(&n)[7] = p[0];
- return n; }
-#endif
inline void ShortToSVBT16( sal_uInt16 n, SVBT16 p )
{
@@ -93,26 +77,14 @@ inline void UInt32ToSVBT32 ( sal_uInt32 n, SVBT32 p )
p[3] = static_cast(n >> 24);
}
inline void Int32ToSVBT32 ( sal_Int32 n, SVBT32 p ) { UInt32ToSVBT32(sal_uInt32(n), p); }
+inline void DoubleToSVBT64( double n, SVBT64 p )
+{
#if defined OSL_LITENDIAN
-inline void DoubleToSVBT64( double n, SVBT64 p ) { p[0] = reinterpret_cast(&n)[0];
- p[1] = reinterpret_cast(&n)[1];
- p[2] = reinterpret_cast(&n)[2];
- p[3] = reinterpret_cast(&n)[3];
- p[4] = reinterpret_cast(&n)[4];
- p[5] = reinterpret_cast(&n)[5];
- p[6] = reinterpret_cast(&n)[6];
- p[7] = reinterpret_cast(&n)[7]; }
+ std::copy(reinterpret_cast(&n), reinterpret_cast(&n) + 8, p);
#else
-inline void DoubleToSVBT64( double n, SVBT64 p ) { p[0] = reinterpret_cast(&n)[7];
- p[1] = reinterpret_cast(&n)[6];
- p[2] = reinterpret_cast(&n)[5];
- p[3] = reinterpret_cast(&n)[4];
- p[4] = reinterpret_cast(&n)[3];
- p[5] = reinterpret_cast(&n)[2];
- p[6] = reinterpret_cast(&n)[1];
- p[7] = reinterpret_cast(&n)[0]; }
-#endif
+ std::reverse_copy(reinterpret_cast(&n), reinterpret_cast(&n) + 8, p);
#endif
+}
#endif
diff --git a/include/unotools/ucbstreamhelper.hxx b/include/unotools/ucbstreamhelper.hxx
index 69bae538b316..3c8868c03911 100644
--- a/include/unotools/ucbstreamhelper.hxx
+++ b/include/unotools/ucbstreamhelper.hxx
@@ -39,9 +39,14 @@ namespace utl
class UNOTOOLS_DLLPUBLIC UcbStreamHelper
{
public:
- static std::unique_ptr CreateStream(const OUString& rFileName, StreamMode eOpenMode, css::uno::Reference xParentWin = nullptr);
- static std::unique_ptr CreateStream(const OUString& rFileName, StreamMode eOpenMode,
- bool bFileExists, css::uno::Reference xParentWin = nullptr);
+ static std::unique_ptr
+ CreateStream(const OUString& rFileName, StreamMode eOpenMode,
+ css::uno::Reference xParentWin = nullptr,
+ bool bUseSimpleFileAccessInteraction = true);
+ static std::unique_ptr
+ CreateStream(const OUString& rFileName, StreamMode eOpenMode, bool bFileExists,
+ css::uno::Reference xParentWin = nullptr,
+ bool bUseSimpleFileAccessInteraction = true);
static std::unique_ptr CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream );
static std::unique_ptr CreateStream( const css::uno::Reference < css::io::XStream >& xStream );
static std::unique_ptr CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream, bool bCloseStream );
diff --git a/include/vcl/filter/PDFiumLibrary.hxx b/include/vcl/filter/PDFiumLibrary.hxx
index a5d757414429..6d2a65a8fa38 100644
--- a/include/vcl/filter/PDFiumLibrary.hxx
+++ b/include/vcl/filter/PDFiumLibrary.hxx
@@ -117,6 +117,7 @@ public:
PDFAnnotAActionType eEvent)
= 0;
virtual OUString getFormFieldValue(PDFiumDocument* pDoc) = 0;
+ virtual int getOptionCount(PDFiumDocument* pDoc) = 0;
};
class PDFiumTextPage;
diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx
index 74261bb84e6f..9d1499ea98c1 100644
--- a/include/vcl/graph.hxx
+++ b/include/vcl/graph.hxx
@@ -47,7 +47,6 @@ class GDIMetaFile;
class SvStream;
class ImpGraphic;
class OutputDevice;
-class GraphicReader;
class SAL_WARN_UNUSED VCL_DLLPUBLIC GraphicConversionParameters
{
@@ -174,8 +173,6 @@ public:
SAL_DLLPRIVATE OString getUniqueID() const;
- std::shared_ptr& GetReaderContext();
- SAL_DLLPRIVATE void SetReaderContext( const std::shared_ptr &pReader );
SAL_DLLPRIVATE void SetDummyContext(bool value);
SAL_DLLPRIVATE bool IsDummyContext() const;
diff --git a/include/vcl/lazydelete.hxx b/include/vcl/lazydelete.hxx
index 4a524d99fa4d..9488030a3369 100644
--- a/include/vcl/lazydelete.hxx
+++ b/include/vcl/lazydelete.hxx
@@ -22,6 +22,7 @@
#include
#include
+#include
#include
@@ -131,6 +132,33 @@ namespace vcl
}
}
};
+
+ /** Similar to DeleteOnDeinit, the DeleteRtlReferenceOnDeinit
+ template class makes sure that a static rtl::Reference managed object is disposed
+ and released at the right time.
+
+ Use like
+ static DeleteUnoReferenceOnDeinit xStaticFactory (new Foo);
+ rtl::Reference xFactory (xStaticFactory.get());
+ if (xFactory.is())
+ \
+ */
+ template
+ class DeleteRtlReferenceOnDeinit final : public vcl::DeleteOnDeinitBase
+ {
+ rtl::Reference m_xI;
+ virtual void doCleanup() override { set(nullptr); }
+ public:
+ DeleteRtlReferenceOnDeinit(rtl::Reference _xI ) : m_xI(std::move( _xI )) {
+ addDeinitContainer( this ); }
+
+ rtl::Reference get() { return m_xI; }
+
+ void set (const rtl::Reference& r_xNew )
+ {
+ m_xI = r_xNew;
+ }
+ };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/syswin.hxx b/include/vcl/syswin.hxx
index dc3f3d9fd393..f8a70d2be2a4 100644
--- a/include/vcl/syswin.hxx
+++ b/include/vcl/syswin.hxx
@@ -96,21 +96,21 @@ class VCL_DLLPUBLIC SystemWindow
class ImplData;
private:
- VclPtr mpMenuBar;
- Size maMinOutSize;
- bool mbDockBtn;
- bool mbHideBtn;
- bool mbSysChild;
- bool mbIsCalculatingInitialLayoutSize;
- bool mbInitialLayoutSizeCalculated;
- bool mbPaintComplete;
- MenuBarMode mnMenuBarMode;
- sal_uInt16 mnIcon;
std::unique_ptr mpImplData;
- Idle maLayoutIdle;
+ VclPtr mpMenuBar;
OUString maNotebookBarUIFile;
+ Size maMinOutSize;
+ MenuBarMode mnMenuBarMode = MenuBarMode::Normal;
+ sal_uInt16 mnIcon = 0;
+ bool mbDockBtn : 1 = false;
+ bool mbHideBtn : 1 = false;
+ bool mbSysChild : 1 = false;
+ bool mbIsCalculatingInitialLayoutSize : 1 = false;
+ bool mbInitialLayoutSizeCalculated : 1 = false;
+ bool mbPaintComplete : 1 = false;
+ bool mbIsDeferredInit : 1 = false;
+ Idle maLayoutIdle;
protected:
- bool mbIsDeferredInit;
VclPtr mpDialogParent;
public:
using Window::ImplIsInTaskPaneList;
@@ -144,6 +144,8 @@ protected:
SAL_DLLPRIVATE void DoInitialLayout();
+ virtual void ImplDeferredInit(vcl::Window* pParent, WinBits nBits);
+
public:
virtual ~SystemWindow() override;
virtual void dispose() override;
@@ -239,7 +241,7 @@ public:
SAL_DLLPRIVATE bool hasPendingLayout() const { return maLayoutIdle.IsActive(); }
- virtual void doDeferredInit(WinBits nBits);
+ void doDeferredInit(WinBits nBits);
// Screenshot interface
VclPtr createScreenshot();
diff --git a/include/vcl/toolkit/dialog.hxx b/include/vcl/toolkit/dialog.hxx
index 5e11d2f783b5..7b61ed4c68c7 100644
--- a/include/vcl/toolkit/dialog.hxx
+++ b/include/vcl/toolkit/dialog.hxx
@@ -79,13 +79,13 @@ private:
protected:
void ImplInitDialog( vcl::Window* pParent, WinBits nStyle, InitFlag eFlag = InitFlag::Default );
+ virtual void ImplDeferredInit(vcl::Window* pParent, WinBits nBits) override;
/// Find and set the LOK notifier according to the pParent.
void ImplLOKNotifier(vcl::Window* pParent);
public:
SAL_DLLPRIVATE bool IsInClose() const { return mbInClose; }
- virtual void doDeferredInit(WinBits nBits) override;
SAL_DLLPRIVATE void disposeOwnedButtons();
SAL_DLLPRIVATE static vcl::Window* GetDefDialogParent();
diff --git a/include/vcl/toolkit/floatwin.hxx b/include/vcl/toolkit/floatwin.hxx
index f266b745375e..d2dcca050599 100644
--- a/include/vcl/toolkit/floatwin.hxx
+++ b/include/vcl/toolkit/floatwin.hxx
@@ -83,6 +83,7 @@ private:
protected:
SAL_DLLPRIVATE void ImplInitFloating( vcl::Window* pParent, WinBits nStyle );
+ virtual void ImplDeferredInit(vcl::Window* pParent, WinBits nBits) override;
SAL_DLLPRIVATE void ImplInitSettings();
virtual void ApplySettings(vcl::RenderContext& rRenderContext) override;
@@ -102,7 +103,6 @@ public:
SAL_DLLPRIVATE void ImplEndPopupMode( FloatWinPopupEndFlags nFlags, const VclPtr& xFocusId );
SAL_DLLPRIVATE AbsoluteScreenPixelRectangle ImplGetItemEdgeClipRect();
SAL_DLLPRIVATE bool ImplIsInPrivatePopupMode() const { return mbInPopupMode; }
- virtual void doDeferredInit(WinBits nBits) override;
void PixelInvalidate(const tools::Rectangle* pRectangle) override;
public:
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 3eddb009c242..5dddaa2d0e37 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1502,7 +1502,6 @@ callback (gpointer pData)
case LOK_CALLBACK_CORE_LOG:
case LOK_CALLBACK_TOOLTIP:
case LOK_CALLBACK_SHAPE_INNER_TEXT:
- case LOK_CALLBACK_STATUS_UPDATE:
{
// TODO: Implement me
break;
diff --git a/libreofficekit/source/gtk/tilebuffer.hxx b/libreofficekit/source/gtk/tilebuffer.hxx
index 239482e34625..e1bd2ce49c93 100644
--- a/libreofficekit/source/gtk/tilebuffer.hxx
+++ b/libreofficekit/source/gtk/tilebuffer.hxx
@@ -18,7 +18,7 @@
#define LOK_TILEBUFFER_ERROR (LOKTileBufferErrorQuark())
-// Lets use a square of side 256 pixels for each tile.
+// Let's use a square of side 256 pixels for each tile.
const int nTileSizePixels = 256;
/**
diff --git a/lingucomponent/Library_LanguageTool.mk b/lingucomponent/Library_LanguageTool.mk
index 91907fe2b52f..aa09327cdec3 100644
--- a/lingucomponent/Library_LanguageTool.mk
+++ b/lingucomponent/Library_LanguageTool.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_Library_use_libraries,LanguageTool,\
comphelper \
cppu \
cppuhelper \
+ fwk \
i18nlangtag \
svt \
lng \
diff --git a/lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx b/lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx
index e50e96e4fb05..e565b3f269fe 100644
--- a/lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx
+++ b/lingucomponent/source/spellcheck/languagetool/languagetoolimp.cxx
@@ -47,8 +47,13 @@
#include
#include
#include
+#include
+#include
+#include
#include
+#include
#include
+#include
#include
#include
#include
@@ -121,7 +126,7 @@ enum class HTTP_METHOD
std::string makeHttpRequest_impl(std::u16string_view aURL, HTTP_METHOD method,
const OString& aPostData, curl_slist* pHttpHeader,
- tools::Long& nStatusCode)
+ tools::Long& nStatusCode, CURLcode& eCURLCode)
{
struct curl_cleanup_t
{
@@ -160,11 +165,12 @@ std::string makeHttpRequest_impl(std::u16string_view aURL, HTTP_METHOD method,
(void)curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDS, aPostData.getStr());
}
- CURLcode cc = curl_easy_perform(curl.get());
- if (cc != CURLE_OK)
+ eCURLCode = curl_easy_perform(curl.get());
+ if (eCURLCode != CURLE_OK)
{
SAL_WARN("languagetool",
- "CURL request returned with error: " << static_cast(cc));
+ "CURL request returned with error: " << static_cast(eCURLCode) << " "
+ << curl_easy_strerror(eCURLCode));
}
curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &nStatusCode);
@@ -172,7 +178,7 @@ std::string makeHttpRequest_impl(std::u16string_view aURL, HTTP_METHOD method,
}
std::string makeDudenHttpRequest(std::u16string_view aURL, const OString& aPostData,
- tools::Long& nStatusCode)
+ tools::Long& nStatusCode, CURLcode& eCURLCode)
{
struct curl_slist* pList = nullptr;
OString sAccessToken
@@ -186,11 +192,12 @@ std::string makeDudenHttpRequest(std::u16string_view aURL, const OString& aPostD
pList = curl_slist_append(pList, sAccessToken.getStr());
}
- return makeHttpRequest_impl(aURL, HTTP_METHOD::HTTP_POST, aPostData, pList, nStatusCode);
+ return makeHttpRequest_impl(aURL, HTTP_METHOD::HTTP_POST, aPostData, pList, nStatusCode,
+ eCURLCode);
}
std::string makeHttpRequest(std::u16string_view aURL, HTTP_METHOD method, const OString& aPostData,
- tools::Long& nStatusCode)
+ tools::Long& nStatusCode, CURLcode& eCURLCode)
{
OString realPostData(aPostData);
if (method == HTTP_METHOD::HTTP_POST)
@@ -202,7 +209,7 @@ std::string makeHttpRequest(std::u16string_view aURL, HTTP_METHOD method, const
realPostData += "&username=" + encodeTextForLT(username) + "&apiKey=" + apiKey;
}
- return makeHttpRequest_impl(aURL, method, realPostData, nullptr, nStatusCode);
+ return makeHttpRequest_impl(aURL, method, realPostData, nullptr, nStatusCode, eCURLCode);
}
template
@@ -301,10 +308,41 @@ OUString getCheckerURL()
return *oURL + "/check";
return {};
}
+
+void lclShowCURLErrorInteraction(const css::uno::Reference& xContext,
+ CURLcode eCURLCode, const OUString& rServer)
+{
+ if (!xContext.is())
+ return;
+
+ css::uno::Reference xInteractionHandler
+ = task::InteractionHandler::createWithParent(xContext, nullptr);
+ if (!xInteractionHandler.is())
+ return;
+
+ css::uno::Any aInteraction;
+
+ rtl::Reference pApprove
+ = new comphelper::OInteractionApprove();
+ css::uno::Sequence> aContinuations{
+ pApprove
+ };
+
+ ucb::InteractiveNetworkConnectException aException(
+ { "(" + OUString::number(eCURLCode) + ") "
+ + OStringToOUString(curl_easy_strerror(eCURLCode), RTL_TEXTENCODING_UTF8) },
+ {}, task::InteractionClassification_ERROR, rServer);
+
+ aInteraction <<= aException;
+ xInteractionHandler->handle(
+ framework::InteractionRequest::CreateRequest(aInteraction, aContinuations));
+}
}
-LanguageToolGrammarChecker::LanguageToolGrammarChecker()
+LanguageToolGrammarChecker::LanguageToolGrammarChecker(
+ const css::uno::Reference& xContext)
: mCachedResults(10)
+ , mxContext(xContext)
{
}
@@ -452,10 +490,22 @@ ProofreadingResult SAL_CALL LanguageToolGrammarChecker::doProofreading(
tools::Long http_code = 0;
std::string response_body;
+ CURLcode eCURLCode = CURLE_OK;
if (bDudenProtocol)
- response_body = makeDudenHttpRequest(checkerURL, postData, http_code);
+ response_body = makeDudenHttpRequest(checkerURL, postData, http_code, eCURLCode);
else
- response_body = makeHttpRequest(checkerURL, HTTP_METHOD::HTTP_POST, postData, http_code);
+ response_body
+ = makeHttpRequest(checkerURL, HTTP_METHOD::HTTP_POST, postData, http_code, eCURLCode);
+
+ if (eCURLCode != CURLE_OK)
+ {
+ // show the cURL error only once for a given checkerURL
+ if (maLastErrorCheckerURL != checkerURL)
+ {
+ maLastErrorCheckerURL = checkerURL;
+ lclShowCURLErrorInteraction(mxContext, eCURLCode, checkerURL);
+ }
+ }
if (http_code != 200)
{
@@ -512,9 +562,9 @@ void SAL_CALL LanguageToolGrammarChecker::initialize(const uno::Sequence const&)
+ css::uno::XComponentContext* pContext, css::uno::Sequence const&)
{
- return cppu::acquire(new LanguageToolGrammarChecker());
+ return cppu::acquire(new LanguageToolGrammarChecker(pContext));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/lingucomponent/source/spellcheck/languagetool/languagetoolimp.hxx b/lingucomponent/source/spellcheck/languagetool/languagetoolimp.hxx
index 93d2c84c612d..487d6d154e4b 100644
--- a/lingucomponent/source/spellcheck/languagetool/languagetoolimp.hxx
+++ b/lingucomponent/source/spellcheck/languagetool/languagetoolimp.hxx
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -37,11 +38,13 @@ class LanguageToolGrammarChecker
css::uno::Sequence m_aSuppLocales;
o3tl::lru_map>
mCachedResults;
+ css::uno::Reference mxContext;
+ OUString maLastErrorCheckerURL;
LanguageToolGrammarChecker(const LanguageToolGrammarChecker&) = delete;
LanguageToolGrammarChecker& operator=(const LanguageToolGrammarChecker&) = delete;
public:
- LanguageToolGrammarChecker();
+ LanguageToolGrammarChecker(const css::uno::Reference& xContext);
virtual ~LanguageToolGrammarChecker() override;
// XSupportedLocales
diff --git a/lotuswordpro/source/filter/lwpobjstrm.cxx b/lotuswordpro/source/filter/lwpobjstrm.cxx
index 728e3a71f8f3..06e579c3843d 100644
--- a/lotuswordpro/source/filter/lwpobjstrm.cxx
+++ b/lotuswordpro/source/filter/lwpobjstrm.cxx
@@ -222,7 +222,7 @@ sal_Int16 LwpObjectStream::QuickReadInt16()
SVBT16 aValue = { 0 };
QuickRead(aValue, sizeof(aValue));
- return static_cast(SVBT16ToUInt16(aValue));
+ return SVBT16ToInt16(aValue);
}
/**
* @descr Quick read sal_uInt8
diff --git a/net_ure/DotnetLibrary_net_basetypes.mk b/net_ure/DotnetLibrary_net_basetypes.mk
index b8500fd7aa26..b6a847838344 100644
--- a/net_ure/DotnetLibrary_net_basetypes.mk
+++ b/net_ure/DotnetLibrary_net_basetypes.mk
@@ -9,12 +9,13 @@
$(eval $(call gb_DotnetLibrary_CsLibrary,net_basetypes))
$(eval $(call gb_DotnetLibrary_add_sources,net_basetypes,\
- net_ure/source/basetypes/Any.cs \
- net_ure/source/basetypes/BoundAttribute.cs \
- net_ure/source/basetypes/Exception.cs \
- net_ure/source/basetypes/IQueryInterface.cs \
- net_ure/source/basetypes/RaisesAttribute.cs \
- net_ure/source/basetypes/UnoGeneratedAttribute.cs \
+ $(SRCDIR)/net_ure/source/basetypes, \
+ Any.cs \
+ BoundAttribute.cs \
+ Exception.cs \
+ IQueryInterface.cs \
+ RaisesAttribute.cs \
+ UnoGeneratedAttribute.cs \
))
$(eval $(call gb_DotnetLibrary_add_properties,net_basetypes,\
diff --git a/net_ure/DotnetLibrary_net_oootypes.mk b/net_ure/DotnetLibrary_net_oootypes.mk
index f799f5056764..b21f1bb92945 100644
--- a/net_ure/DotnetLibrary_net_oootypes.mk
+++ b/net_ure/DotnetLibrary_net_oootypes.mk
@@ -12,7 +12,8 @@ $(call gb_DotnetLibrary_get_target,net_oootypes) : \
$(call gb_CustomTarget_get_target,net_oootypes)
$(eval $(call gb_DotnetLibrary_add_generated_sources,net_oootypes,\
- $(gb_CustomTarget_workdir)/net_ure/net_oootypes/**/*.cs \
+ $(gb_CustomTarget_workdir)/net_ure/net_oootypes, \
+ **/*.cs \
))
$(eval $(call gb_DotnetLibrary_link_cs_library,net_oootypes,net_uretypes))
diff --git a/net_ure/DotnetLibrary_net_uretypes.mk b/net_ure/DotnetLibrary_net_uretypes.mk
index a5e6968887c2..747e4574ecb9 100644
--- a/net_ure/DotnetLibrary_net_uretypes.mk
+++ b/net_ure/DotnetLibrary_net_uretypes.mk
@@ -12,7 +12,8 @@ $(call gb_DotnetLibrary_get_target,net_uretypes) : \
$(call gb_CustomTarget_get_target,net_uretypes)
$(eval $(call gb_DotnetLibrary_add_generated_sources,net_uretypes,\
- $(gb_CustomTarget_workdir)/net_ure/net_uretypes/**/*.cs \
+ $(gb_CustomTarget_workdir)/net_ure/net_uretypes, \
+ **/*.cs \
))
$(eval $(call gb_DotnetLibrary_link_cs_library,net_uretypes,net_basetypes))
diff --git a/net_ure/Module_net_ure.mk b/net_ure/Module_net_ure.mk
index 6693a5ad58ee..982a030e8aae 100644
--- a/net_ure/Module_net_ure.mk
+++ b/net_ure/Module_net_ure.mk
@@ -8,7 +8,7 @@
$(eval $(call gb_Module_Module,net_ure))
-ifeq ($(ENABLE_DOTNET),TRUE)
+ifeq ($(ENABLE_DOTNET)_$(filter ODK,$(BUILD_TYPE)),TRUE_ODK)
$(eval $(call gb_Module_add_targets,net_ure,\
CustomTarget_net_uretypes \
CustomTarget_net_oootypes \
diff --git a/offapi/com/sun/star/awt/XKeyHandler.idl b/offapi/com/sun/star/awt/XKeyHandler.idl
index d6455914f640..38b57696e800 100644
--- a/offapi/com/sun/star/awt/XKeyHandler.idl
+++ b/offapi/com/sun/star/awt/XKeyHandler.idl
@@ -20,15 +20,27 @@
module com { module sun { module star { module awt {
-/** This key handler is similar to
- ::com::sun::star::awt::XKeyListener but allows the
- consumption of key events. If a key event is consumed by one
- handler both the following handlers, with respect to the list of key
- handlers of the broadcaster, and a following handling by the
- broadcaster will not take place.
-
- @since OOo 1.1.2
-*/
+/** makes it possible to receive keyboard events.
+ *
+ * This key handler is similar to com::sun::star::awt::XKeyListener.
+ * But this handler is easier to use and more flexible for many
+ * purposes.
+ *
+ * This handler is usually added via
+ * com::sun::star::awt::XUserInputInterception to the controller from
+ * com::sun::star::frame::XModel. While
+ * com::sun::star::awt::XKeyListener needs to be added to exactly the
+ * correct widget.
+ *
+ * Also this handler is more flexible then
+ * com::sun::star::awt::XKeyListener, because it optionally allows the
+ * consumption of key events. If a key event is consumed by one handler
+ * both the following handlers, with respect to the list of
+ * key handlers of the broadcaster, and a following handling by the
+ * broadcaster will not take place.
+ *
+ * @since OOo 1.1.2
+ */
published interface XKeyHandler : ::com::sun::star::lang::XEventListener
{
/** This function is called by the broadcaster, an
diff --git a/offapi/com/sun/star/awt/XKeyListener.idl b/offapi/com/sun/star/awt/XKeyListener.idl
index bb9375b22fa5..373cc0c43bca 100644
--- a/offapi/com/sun/star/awt/XKeyListener.idl
+++ b/offapi/com/sun/star/awt/XKeyListener.idl
@@ -24,8 +24,12 @@
/** makes it possible to receive keyboard events.
*
- * @see com::sun::star::awt::XKeyHandler This interface allows you receive (and consume) key events,
- * even on windows which are not at the top.
+ * @see com::sun::star::awt::XKeyHandler That interface is better suited for many purposes. In
+ * opposite to this listener, the com::sun::star::awt::XKeyHandler doesn't need to be added on
+ * exactly the correct widget. Optionally com::sun::star::awt::XKeyHandler can also consume events.
+ *
+ * @see com::sun::star::awt::XVclContainer The function getWindows might be helpful to find the
+ * correct widget to add the this listener to.
*/
published interface XKeyListener: com::sun::star::lang::XEventListener
{
diff --git a/offapi/com/sun/star/awt/XMouseClickHandler.idl b/offapi/com/sun/star/awt/XMouseClickHandler.idl
index fc63485f91e6..1f070a58850a 100644
--- a/offapi/com/sun/star/awt/XMouseClickHandler.idl
+++ b/offapi/com/sun/star/awt/XMouseClickHandler.idl
@@ -24,6 +24,15 @@ module com { module sun { module star { module awt {
/** makes it possible to receive events from the mouse in a certain window.
+ This handler is usually added via
+ com::sun::star::awt::XUserInputInterception to the controller from
+ com::sun::star::frame::XModel. While
+ com::sun::star::awt::XMouseListener needs to be added to exactly the
+ correct widget.
+
+ Also this handler is more flexible, because it optionally allows the
+ consumption of key events.
+
@since OOo 1.1.2
*/
published interface XMouseClickHandler: ::com::sun::star::lang::XEventListener
diff --git a/offapi/com/sun/star/awt/XMouseListener.idl b/offapi/com/sun/star/awt/XMouseListener.idl
index a3f003daa0cc..48dd94b16d3f 100644
--- a/offapi/com/sun/star/awt/XMouseListener.idl
+++ b/offapi/com/sun/star/awt/XMouseListener.idl
@@ -30,6 +30,11 @@
* com::sun::star::awt::XMouseClickHandler
* com::sun::star::awt::XMouseMotionHandler
*
+ * These interfaces are better suited for many purposes. In opposite to this listener they don't
+ * need to be added on exactly the correct widget. Optionally they can also consume events.
+ *
+ * @see com::sun::star::awt::XVclContainer The function getWindows might be helpful to find the
+ * correct widget to add this listener to.
*/
published interface XMouseListener: com::sun::star::lang::XEventListener
{
diff --git a/offapi/com/sun/star/awt/XMouseMotionHandler.idl b/offapi/com/sun/star/awt/XMouseMotionHandler.idl
index 48cb21178c90..cba0dd0e7d5a 100644
--- a/offapi/com/sun/star/awt/XMouseMotionHandler.idl
+++ b/offapi/com/sun/star/awt/XMouseMotionHandler.idl
@@ -23,6 +23,9 @@
/** makes it possible to receive mouse motion events on a window.
+ *
+ * @see ::com::sun::star::awt::XMouseMotionListener This handler is more
+ * flexible, because it optionally allows the consumption of key events.
*/
published interface XMouseMotionHandler: com::sun::star::lang::XEventListener
{
diff --git a/offapi/com/sun/star/awt/XMouseMotionListener.idl b/offapi/com/sun/star/awt/XMouseMotionListener.idl
index b3073ba7a923..7f02f9c37f98 100644
--- a/offapi/com/sun/star/awt/XMouseMotionListener.idl
+++ b/offapi/com/sun/star/awt/XMouseMotionListener.idl
@@ -23,6 +23,12 @@
/** makes it possible to receive mouse motion events on a window.
+ *
+ * @see com::sun::star::awt::XMouseListener
+ * @see com::sun::star::awt::XMouseMotionHandler This can optionally consume events.
+ *
+ * @see com::sun::star::awt::XVclContainer The function getWindows might be helpful to find the
+ * correct widget to add this listener to.
*/
published interface XMouseMotionListener: com::sun::star::lang::XEventListener
{
diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
index de1eae2ce767..7c8bc8f15f35 100644
--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
@@ -457,6 +457,9 @@
true
+
+ true
+
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 7880deebb46c..71f3b3ab17a4 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -2451,6 +2451,17 @@ bit 3 (0x8): #define UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON 8
1
+
+
+ Close All Documents
+
+
+ Close All Documents
+
+
+ 1
+
+
~Print...
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index c0fdc8887338..9ae5f1021926 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -1550,6 +1550,17 @@
1
+
+
+ ~Footnote/Endnote Settings...
+
+
+ .uno:FootnoteDialog
+
+
+ 1
+
+
~Footnote/Endnote Settings...
diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
index 7303d1bacd00..b9f74d9724fa 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
@@ -763,6 +763,13 @@
true
+
+
+ Disable to always select all
+ Select range before all
+
+ true
+
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 15b3a481195c..c2e0e97159d1 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5367,6 +5367,12 @@
false
+
+
+ Determines whether to show a donation button in the start center or extension.
+
+ true
+
Determines whether OpenCL can be used, when available, to speed up
diff --git a/oovbaapi/ooo/vba/word/XTable.idl b/oovbaapi/ooo/vba/word/XTable.idl
index 683e859e4040..42b05950785c 100644
--- a/oovbaapi/ooo/vba/word/XTable.idl
+++ b/oovbaapi/ooo/vba/word/XTable.idl
@@ -55,10 +55,10 @@ interface XTable
any Rows([in] any aIndex );
any Columns([in] any aIndex );
- [attribute] double BottomPadding;
- [attribute] double LeftPadding;
- [attribute] double RightPadding;
- [attribute] double TopPadding;
+ [attribute] float BottomPadding;
+ [attribute] float LeftPadding;
+ [attribute] float RightPadding;
+ [attribute] float TopPadding;
};
}; }; };
diff --git a/oox/qa/unit/data/testTdf157019_objPlaceholderCustomShape.pptx b/oox/qa/unit/data/testTdf157019_objPlaceholderCustomShape.pptx
new file mode 100644
index 000000000000..125494d5f376
Binary files /dev/null and b/oox/qa/unit/data/testTdf157019_objPlaceholderCustomShape.pptx differ
diff --git a/oox/qa/unit/data/toplevel-line-hori-offset.docx b/oox/qa/unit/data/toplevel-line-hori-offset.docx
new file mode 100644
index 000000000000..9f6ba561d4fe
Binary files /dev/null and b/oox/qa/unit/data/toplevel-line-hori-offset.docx differ
diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx
index 923758ee28a7..f2f06509cdf3 100644
--- a/oox/qa/unit/drawingml.cxx
+++ b/oox/qa/unit/drawingml.cxx
@@ -29,6 +29,8 @@
#include
#include
#include
+#include
+#include
#include
#include
@@ -462,6 +464,23 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testTdf132557_footerCustomShapes)
CPPUNIT_ASSERT_EQUAL(u"com.sun.star.drawing.CustomShape"_ustr, xShapeSlideNum->getShapeType());
}
+CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testTdf132557_objPlaceholderCustomShape)
+{
+ // slide with object placeholder with custom shape
+ loadFromFile(u"testTdf157019_objPlaceholderCustomShape.pptx");
+
+ uno::Reference xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+ uno::UNO_QUERY);
+
+ // Test if we were able to import the outliner shape with CustomShape service.
+ // Without the fix in place, this test would have failed with
+ // Expected: shape type: "com.sun.star.drawing.CustomShape"
+ // Actual : shape type: "com.sun.star.presentation.OutlinerShape"
+ uno::Reference xObjShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(u"com.sun.star.drawing.CustomShape"_ustr, xObjShape->getShapeType());
+}
+
CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testThemeColorTint_Table)
{
// Given a document with a table style, using theme color with tinting in the A2 cell:
@@ -698,6 +717,55 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testTdf125085WordArtFontText)
CPPUNIT_ASSERT_EQUAL(u"he"_ustr, aLocal.Language);
}
+CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testToplevelLineHorOffsetDOCX)
+{
+ // Given a toplevel line shape from DOCX:
+ loadFromFile(u"toplevel-line-hori-offset.docx");
+
+ // When checking the transform and the points of the shape:
+ uno::Reference xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+ uno::UNO_QUERY);
+ uno::Reference xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ drawing::HomogenMatrix3 aTransformation;
+ xShape->getPropertyValue(u"Transformation"_ustr) >>= aTransformation;
+ basegfx::B2DHomMatrix aMatrix;
+ aMatrix.set(0, 0, aTransformation.Line1.Column1);
+ aMatrix.set(0, 1, aTransformation.Line1.Column2);
+ aMatrix.set(0, 2, aTransformation.Line1.Column3);
+ aMatrix.set(1, 0, aTransformation.Line2.Column1);
+ aMatrix.set(1, 1, aTransformation.Line2.Column2);
+ aMatrix.set(1, 2, aTransformation.Line2.Column3);
+ drawing::PointSequenceSequence aPolyPoly;
+ xShape->getPropertyValue(u"Geometry"_ustr) >>= aPolyPoly;
+
+ // Then make sure we get a vertical line, not a horizontal one:
+ basegfx::B2DTuple aScale;
+ basegfx::B2DTuple aTranslate;
+ double fRotate = 0;
+ double fShearX = 0;
+ aMatrix.decompose(aScale, aTranslate, fRotate, fShearX);
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 1
+ // - Actual : 4094.76362560479
+ // i.e. this was a horizontal line, not a vertical one.
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1, aScale.getX(), 0.01);
+ // 1473682 EMUs in mm100 is 4093.56.
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(4094, aScale.getY(), 0.01);
+ // 343535 EMUs in mm100 is 954.27.
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(954, aTranslate.getX(), 2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0, aTranslate.getY(), 0.01);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0, fRotate, 0);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0, fShearX, 0);
+ CPPUNIT_ASSERT_EQUAL(static_cast(1), aPolyPoly.getLength());
+ drawing::PointSequence aPoly = aPolyPoly[0];
+ CPPUNIT_ASSERT_EQUAL(static_cast(2), aPoly.getLength());
+ CPPUNIT_ASSERT_EQUAL(static_cast(0), aPoly[0].X);
+ CPPUNIT_ASSERT_EQUAL(static_cast