[Libreoffice-commits] core.git: dictionaries
dictionaries |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 5a1f41a0d3aab15c113651f2edc9d4137ae99063 Author: Christian Lohmaier AuthorDate: Sun Oct 16 01:56:22 2022 +0200 Commit: Gerrit Code Review CommitDate: Sun Oct 16 01:56:22 2022 +0200 Update git submodules * Update dictionaries from branch 'master' to e808afadc2ead6b98b40026f6eec15ae669de37c - pot file generation only looks for strings with en-US language so change lang="en" to lang="en-US" to extract the string Change-Id: I94defd0696be5df576b59030472c43261a359080 Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/141366 Reviewed-by: Adolfo Jayme Barrientos Tested-by: Adolfo Jayme Barrientos diff --git a/dictionaries b/dictionaries index 0416c229fe3a..e808afadc2ea 16 --- a/dictionaries +++ b/dictionaries @@ -1 +1 @@ -Subproject commit 0416c229fe3a2a6bc9d661a077e77264cd9d6929 +Subproject commit e808afadc2ead6b98b40026f6eec15ae669de37c
[Libreoffice-commits] dictionaries.git: fa_IR/description.xml
fa_IR/description.xml |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit e808afadc2ead6b98b40026f6eec15ae669de37c Author: Christian Lohmaier AuthorDate: Fri Oct 14 13:37:42 2022 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sun Oct 16 01:56:20 2022 +0200 pot file generation only looks for strings with en-US language so change lang="en" to lang="en-US" to extract the string Change-Id: I94defd0696be5df576b59030472c43261a359080 Reviewed-on: https://gerrit.libreoffice.org/c/dictionaries/+/141366 Reviewed-by: Adolfo Jayme Barrientos Tested-by: Adolfo Jayme Barrientos diff --git a/fa_IR/description.xml b/fa_IR/description.xml index 3d04cca..4b7919e 100644 --- a/fa_IR/description.xml +++ b/fa_IR/description.xml @@ -7,7 +7,7 @@ -Lilak, Persian Spell Checking Dictionary +Lilak, Persian Spell Checking Dictionary لیلک، غلط یاب فارسی
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - sw/source
sw/source/core/txtnode/fntcache.cxx | 41 +--- 1 file changed, 11 insertions(+), 30 deletions(-) New commits: commit b37764993f7e524dbe2cf79ca921d0b01e6fba97 Author: Khaled Hosny AuthorDate: Sun Sep 25 11:37:05 2022 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sun Oct 16 01:53:03 2022 +0200 tdf#150726: Pass full string to DrawTextArray() when drawing bullet When drawing bullets for spaces, we were passing a substring to DrawTextArray() and even taking care of adding an extra character to both sides to help with Arabic layout. This, however, does not work when part of the text is in different color because the portion will cover only that substring and we wouldn’t be passing enough context. Copying the substring is unnecessary, though, and we can pass the full string like we do in the non-bullet case. The bullet array (where we replace spaces with bullets), can continue to be a substring as we are only drawing the bullets in this case. This probably also means we can re-use the glyph cache when switching between bullet and non-bullet mode. Change-Id: I256ae7b6d592b8c6670d66619e428f943714be57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140568 Tested-by: Jenkins Reviewed-by: خالد حسني (cherry picked from commit 092e37a284ea8b8bc1e8dabbbeb001c98012a996) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141398 Reviewed-by: Adolfo Jayme Barrientos diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx index 12613bfd3b7f..f787c55ec654 100644 --- a/sw/source/core/txtnode/fntcache.cxx +++ b/sw/source/core/txtnode/fntcache.cxx @@ -1182,9 +1182,6 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) // set text render mode to suit use of resolution independent text layout rInf.GetOut().SetTextRenderModeForResolutionIndependentLayout(true); -const OUString* pStr = &rInf.GetText(); - -OUString aStr; OUString aBulletOverlay; bool bBullet = rInf.GetBullet(); if( m_bSymbol ) @@ -1278,19 +1275,10 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) if( bBullet ) { -// !!! HACK !!! -// The Arabic layout engine requires some context of the string -// which should be painted. +// Copy the substring that will be painted, and replace spaces with +// bullets, and everything else with space. sal_Int32 nCopyStart = sal_Int32(rInf.GetIdx()); -if ( nCopyStart ) ---nCopyStart; - sal_Int32 nCopyLen = sal_Int32(rInf.GetLen()); -if ( nCopyStart + nCopyLen < rInf.GetText().getLength() ) -++nCopyLen; - -aStr = rInf.GetText().copy( nCopyStart, nCopyLen ); -pStr = &aStr; aBulletOverlay = rInf.GetText().copy( nCopyStart, nCopyLen ); @@ -1341,8 +1329,8 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(), aKernArray, sal_Int32(rInf.GetIdx()), 1 ); if( bBullet ) -rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, aKernArray, - rInf.GetIdx() ? 1 : 0, 1 ); +rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(), aKernArray, + sal_Int32(rInf.GetIdx()), 1 ); } else { @@ -1455,17 +1443,11 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf ) if ( bSwitchH2V ) rInf.GetFrame()->SwitchHorizontalToVertical( aTextOriginPos ); -// If we paint bullets instead of spaces, we use a copy of -// the paragraph string. For the layout engine, the copy -// of the string has to be an environment of the range which -// is painted -sal_Int32 nTmpIdx = bBullet -? (rInf.GetIdx() ? 1 : 0) -: sal_Int32(rInf.GetIdx()); +sal_Int32 nIdx = sal_Int32(rInf.GetIdx()); const SalLayoutGlyphs* pGlyphs = SalLayoutGlyphsCache::self()->GetLayoutGlyphs(&rInf.GetOut(), - *pStr, nTmpIdx, nLen); -rInf.GetOut().DrawTextArray( aTextOriginPos, *pStr, aKernArray, - nTmpIdx , nLen, SalLayoutFlags::NONE, pGlyphs ); + rInf.GetText(), nIdx, nLen); +rInf.GetOut().DrawTextArray( aTextOriginPos, rInf.GetText(), aKernArray, + nIdx, nLen, SalLayoutFlags::NONE, pGlyphs ); if (bBullet) { rInf.GetOut().Push(); @@ -1485,8 +1467,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf
Omkar Acharekar license statement
All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license.
Re: Comparion of LogicalFontInstance::ImplGetGlyphBoundRect() between platforms
On Sun, Oct 16, 2022 at 2:07 AM Caolán McNamara wrote: > On Sat, 2022-10-15 at 22:13 +1100, Chris Sherlock wrote: > > So an update… after I shifted to using Liberation Sans as the font > > face and added gb_CppunitTest_use_more_fonts the only platform that > > varies is MacOS. > > > > Test name: VclLogicalFontInstanceTest::testglyphboundrect > > equality assertion failed > > - Expected: 7x9@(0,-8) > > - Actual : 7x10@(0,-8) > > And what if you use a larger font size. say font size 110 instead of > 11, maybe its a hinting related thing. > Just tried, looks like it is out by 1. Test name: VclLogicalFontInstanceTest::testglyphboundrect equality assertion failed - Expected: 51x82@(7,-80) - Actual : 51x83@(7,-80)
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - vcl/source
vcl/source/fontsubset/cff.cxx | 192 +- 1 file changed, 171 insertions(+), 21 deletions(-) New commits: commit 45318605384fac327a8b487e0132c4559d25a29c Author: Khaled Hosny AuthorDate: Sat Oct 15 17:16:36 2022 +0200 Commit: Caolán McNamara CommitDate: Sat Oct 15 22:39:31 2022 +0200 tdf#123234: Fix subsetting CFF deprecated endchar Type 2 “endchar” operator can take 4 extra arguments and act like Type 1 “seac” operator. Although this is documented as deprecated, the fonts in the bug report use it. Detect the presence of the extra arguments and output a “seac” operator for them. Change-Id: Ic24ec8fda586c82612f0cc13f2f31585d40ad9c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139908 Tested-by: Jenkins Reviewed-by: خالد حسني (cherry picked from commit 03ff7ee47c6b4e0dbf38a040825aaca53ce2ed28) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141396 Reviewed-by: Caolán McNamara diff --git a/vcl/source/fontsubset/cff.cxx b/vcl/source/fontsubset/cff.cxx index d417c7fe1a42..ef756e2fa57f 100644 --- a/vcl/source/fontsubset/cff.cxx +++ b/vcl/source/fontsubset/cff.cxx @@ -162,6 +162,55 @@ static const char* pDictEscs[] = { "nFDArray", "nFDSelect","sFontName" }; +static const char* pStandardEncoding[] = { +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", "space", "exclam", "quotedbl", +"numbersign", "dollar", "percent", "ampersand", +"quoteright", "parenleft", "parenright", "asterisk", "plus", +"comma", "hyphen", "period", "slash", "zero", "one", "two", +"three", "four", "five", "six", "seven", "eight", "nine", +"colon", "semicolon", "less", "equal", "greater", +"question", "at", "A", "B", "C", "D", "E", "F", "G", "H", +"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", +"U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", +"bracketright", "asciicircum", "underscore", "quoteleft", +"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", +"y", "z", "braceleft", "bar", "braceright", "asciitilde", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", "exclamdown", +"cent", "sterling", "fraction", "yen", "florin", "section", +"currency", "quotesingle", "quotedblleft", "guillemotleft", +"guilsinglleft", "guilsinglright", "fi", "fl", ".notdef", +"endash", "dagger", "daggerdbl", "periodcentered", +".notdef", "paragraph", "bullet", "quotesinglbase", +"quotedblbase", "quotedblright", "guillemotright", +"ellipsis", "perthousand", ".notdef", "questiondown", +".notdef", "grave", "acute", "circumflex", "tilde", +"macron", "breve", "dotaccent", "dieresis", ".notdef", +"ring", "cedilla", ".notdef", "hungarumlaut", "ogonek", +"caron", "emdash", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", "AE", ".notdef", +"ordfeminine", ".notdef", ".notdef", ".notdef", ".notdef", +"Lslash", "Oslash", "OE", "ordmasculine", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", "ae", ".notdef", +".notdef", ".notdef", "dotlessi", ".notdef", ".notdef", +"lslash", "oslash", "oe", "germandbls", ".notdef", +".notdef", ".notdef", ".notdef" +}; + namespace { namespace TYPE1OP @@ -261,6 +310,17 @@ struct CffLocal boolmbForceBold; }; +const int MAX_T1OPS_SIZE = 81920; // TODO: use dynamic value + +struct CharString +{ +int nLen; +U8 aOps[MAX_T1OPS_SIZE]; +int nCffGlyphId; +ValType aCharWidth; +}; + + class CffSubsetterContext : private CffGlobal { @@ -277,6 +337,8 @@ public: sal_Int32* pGlyphWidths, int nGlyphCount, FontSubsetInfo& ); private: +voidconvertCharStrings(const sal_GlyphId* pGlyphIds, int nGlyphCount, +std::vector& rCharStrings); int convert2Type1Ops( CffLocal*, const U8* pType2Ops, int nType2Len, U8* pType1Ops); voidconvertOneTypeOp(); voidconvertOneTypeEsc(); @@ -306,6 +368,7 @@ private: int getFDSelect( int nGlyphIndex) const; int getGl
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - vcl/source
vcl/source/fontsubset/cff.cxx | 31 ++- 1 file changed, 30 insertions(+), 1 deletion(-) New commits: commit 81fe821cc30a6746636350d78b4fdd88839dc21c Author: Khaled Hosny AuthorDate: Tue Sep 13 12:34:35 2022 +0200 Commit: Caolán McNamara CommitDate: Sat Oct 15 22:39:03 2022 +0200 tdf#126242: Handle fractional values when subsetting CFF Instead of truncating the values, write the fraction using “div” operator. Change-Id: Ideff4ed3c9922a3ddd6c8aa0ec2733722ae722f6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139854 Tested-by: Jenkins Reviewed-by: خالد حسني (cherry picked from commit a387f39de8e59d7542b74962242504b798af1362) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141397 Reviewed-by: Caolán McNamara diff --git a/vcl/source/fontsubset/cff.cxx b/vcl/source/fontsubset/cff.cxx index fdc210e040a7..d417c7fe1a42 100644 --- a/vcl/source/fontsubset/cff.cxx +++ b/vcl/source/fontsubset/cff.cxx @@ -582,7 +582,30 @@ void CffSubsetterContext::writeType1Val( ValType aVal) { U8* pOut = mpWritePtr; -int nInt = static_cast(aVal); +// tdf#126242 +// Type2 has 16.16 fixed numbers, but Type1 does not. To represent values +// with fractions we multiply it by a factor then use “div” operator to +// divide it back and keep the fractions. +// Code Adapted from: +// https://github.com/fontforge/fontforge/blob/f152f12e567ea5bd737a2907c318ae26cfaabd08/fontforge/splinesave.c#L378 +int nDiv = 0; +aVal = rint(aVal * 1024) / 1024; +if (aVal != floor(aVal)) +{ +if (aVal == rint(aVal * 64) / 64) +nDiv = 64; +else +nDiv = 1024; +aVal *= nDiv; +} + +int nInt = static_cast(rint(aVal)); +if (nDiv && floor(nInt) / nDiv == floor(nInt / nDiv)) +{ +nInt = rint(nInt / nDiv); +nDiv = 0; +} + if( (nInt >= -107) && (nInt <= +107)) { *(pOut++) = static_cast(nInt + 139);// -107..+107 } else if( (nInt >= -1131) && (nInt <= +1131)) { @@ -602,6 +625,12 @@ void CffSubsetterContext::writeType1Val( ValType aVal) } mpWritePtr = pOut; + +if (nDiv) +{ +writeType1Val(nDiv); +writeTypeEsc(TYPE1OP::DIV); +} } inline void CffSubsetterContext::writeTypeOp( int nTypeOp)
[Libreoffice-commits] core.git: cui/source cui/uiconfig officecfg/registry vcl/source
cui/source/options/optaccessibility.cxx|7 + cui/source/options/optaccessibility.hxx|1 cui/uiconfig/ui/optaccessibilitypage.ui| 54 - officecfg/registry/schema/org/openoffice/Office/Common.xcs | 25 ++ vcl/source/window/settings.cxx | 19 +++- 5 files changed, 98 insertions(+), 8 deletions(-) New commits: commit 5bf38da0910f590159e8fa4fe359f98c7bd395a4 Author: Caolán McNamara AuthorDate: Sat Oct 15 20:10:04 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 22:38:13 2022 +0200 tdf#151522 add Accessibility::HighContrast 0 Automatic, do what the system says 1 Disable 2 Enable Forcing Disable/Enable won't have (much of) an effect on the widgetry, but will affect how document content is rendered where typically content color is mapped to fore/back ground color. Change-Id: I71a2dcf8bc334080414a01691f942a5b7de7b84a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139753 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/cui/source/options/optaccessibility.cxx b/cui/source/options/optaccessibility.cxx index 1f85254dae22..d0a3694a3c73 100644 --- a/cui/source/options/optaccessibility.cxx +++ b/cui/source/options/optaccessibility.cxx @@ -29,6 +29,7 @@ SvxAccessibilityOptionsTabPage::SvxAccessibilityOptionsTabPage(weld::Container* , m_xTextSelectionInReadonly(m_xBuilder->weld_check_button("textselinreadonly")) , m_xAnimatedGraphics(m_xBuilder->weld_check_button("animatedgraphics")) , m_xAnimatedTexts(m_xBuilder->weld_check_button("animatedtext")) +, m_xHighContrast(m_xBuilder->weld_combo_box("highcontrast")) , m_xAutomaticFontColor(m_xBuilder->weld_check_button("autofontcolor")) , m_xPagePreviews(m_xBuilder->weld_check_button("systempagepreviewcolor")) { @@ -60,6 +61,8 @@ bool SvxAccessibilityOptionsTabPage::FillItemSet( SfxItemSet* ) officecfg::Office::Common::Accessibility::IsAutomaticFontColor::set(m_xAutomaticFontColor->get_active(), batch); if ( !officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() ) officecfg::Office::Common::Accessibility::IsSelectionInReadonly::set(m_xTextSelectionInReadonly->get_active(), batch); +if ( !officecfg::Office::Common::Accessibility::HighContrast::isReadOnly() ) + officecfg::Office::Common::Accessibility::HighContrast::set(m_xHighContrast->get_active(), batch); batch->commit(); AllSettings aAllSettings = Application::GetSettings(); @@ -96,6 +99,10 @@ void SvxAccessibilityOptionsTabPage::Reset( const SfxItemSet* ) if( officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() ) m_xTextSelectionInReadonly->set_sensitive(false); +m_xHighContrast->set_active( officecfg::Office::Common::Accessibility::HighContrast::get() ); +if( officecfg::Office::Common::Accessibility::HighContrast::isReadOnly() ) +m_xHighContrast->set_sensitive(false); + AllSettings aAllSettings = Application::GetSettings(); const MiscSettings& aMiscSettings = aAllSettings.GetMiscSettings(); m_xAccessibilityTool->set_active(aMiscSettings.GetEnableATToolSupport()); diff --git a/cui/source/options/optaccessibility.hxx b/cui/source/options/optaccessibility.hxx index c53c17be1158..504e18327c7f 100644 --- a/cui/source/options/optaccessibility.hxx +++ b/cui/source/options/optaccessibility.hxx @@ -26,6 +26,7 @@ class SvxAccessibilityOptionsTabPage : public SfxTabPage std::unique_ptr m_xTextSelectionInReadonly; std::unique_ptr m_xAnimatedGraphics; std::unique_ptr m_xAnimatedTexts; +std::unique_ptr m_xHighContrast; std::unique_ptr m_xAutomaticFontColor; std::unique_ptr m_xPagePreviews; diff --git a/cui/uiconfig/ui/optaccessibilitypage.ui b/cui/uiconfig/ui/optaccessibilitypage.ui index 2643000fd246..07d89dcac65e 100644 --- a/cui/uiconfig/ui/optaccessibilitypage.ui +++ b/cui/uiconfig/ui/optaccessibilitypage.ui @@ -135,6 +135,56 @@ 6 vertical 6 + + + +True +False +True +6 + + +True +False +High Contrast: +True +highcontrast +0 + + +0 +0 + + + + +True +False +start +0 + + Automatic + Disable + Enable + + + +Controls if high contr
[Libreoffice-commits] core.git: cui/source cui/uiconfig officecfg/registry svtools/source vcl/source vcl/win
cui/source/options/optaccessibility.cxx|7 --- cui/source/options/optaccessibility.hxx|1 cui/uiconfig/ui/optaccessibilitypage.ui| 24 -- officecfg/registry/data/org/openoffice/Setup.xcu |1 officecfg/registry/schema/org/openoffice/Office/Common.xcs | 10 svtools/source/config/colorcfg.cxx | 18 +--- vcl/source/window/settings.cxx | 29 - vcl/win/window/salframe.cxx|5 -- 8 files changed, 6 insertions(+), 89 deletions(-) New commits: commit 75fd3093ea748e35beca1f903e7828ad82f2372f Author: Caolán McNamara AuthorDate: Fri Oct 14 20:17:05 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 21:09:34 2022 +0200 tdf#151522 drop Accessibility::AutoDetectSystemHC which doesn't preclude having a different option to force it on/off against the system HighContrast mode setting. Change-Id: Iab9f7f501ac5fd7bb865d07b30b6fad9f1f6809c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141386 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/cui/source/options/optaccessibility.cxx b/cui/source/options/optaccessibility.cxx index a394ff955a4a..1f85254dae22 100644 --- a/cui/source/options/optaccessibility.cxx +++ b/cui/source/options/optaccessibility.cxx @@ -29,7 +29,6 @@ SvxAccessibilityOptionsTabPage::SvxAccessibilityOptionsTabPage(weld::Container* , m_xTextSelectionInReadonly(m_xBuilder->weld_check_button("textselinreadonly")) , m_xAnimatedGraphics(m_xBuilder->weld_check_button("animatedgraphics")) , m_xAnimatedTexts(m_xBuilder->weld_check_button("animatedtext")) -, m_xAutoDetectHC(m_xBuilder->weld_check_button("autodetecthc")) , m_xAutomaticFontColor(m_xBuilder->weld_check_button("autofontcolor")) , m_xPagePreviews(m_xBuilder->weld_check_button("systempagepreviewcolor")) { @@ -61,8 +60,6 @@ bool SvxAccessibilityOptionsTabPage::FillItemSet( SfxItemSet* ) officecfg::Office::Common::Accessibility::IsAutomaticFontColor::set(m_xAutomaticFontColor->get_active(), batch); if ( !officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() ) officecfg::Office::Common::Accessibility::IsSelectionInReadonly::set(m_xTextSelectionInReadonly->get_active(), batch); -if ( !officecfg::Office::Common::Accessibility::AutoDetectSystemHC::isReadOnly() ) - officecfg::Office::Common::Accessibility::AutoDetectSystemHC::set(m_xAutoDetectHC->get_active(), batch); batch->commit(); AllSettings aAllSettings = Application::GetSettings(); @@ -99,10 +96,6 @@ void SvxAccessibilityOptionsTabPage::Reset( const SfxItemSet* ) if( officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() ) m_xTextSelectionInReadonly->set_sensitive(false); -m_xAutoDetectHC->set_active( officecfg::Office::Common::Accessibility::AutoDetectSystemHC::get() ); -if( officecfg::Office::Common::Accessibility::AutoDetectSystemHC::isReadOnly() ) -m_xAutoDetectHC->set_sensitive(false); - AllSettings aAllSettings = Application::GetSettings(); const MiscSettings& aMiscSettings = aAllSettings.GetMiscSettings(); m_xAccessibilityTool->set_active(aMiscSettings.GetEnableATToolSupport()); diff --git a/cui/source/options/optaccessibility.hxx b/cui/source/options/optaccessibility.hxx index 35d5fdefde03..c53c17be1158 100644 --- a/cui/source/options/optaccessibility.hxx +++ b/cui/source/options/optaccessibility.hxx @@ -26,7 +26,6 @@ class SvxAccessibilityOptionsTabPage : public SfxTabPage std::unique_ptr m_xTextSelectionInReadonly; std::unique_ptr m_xAnimatedGraphics; std::unique_ptr m_xAnimatedTexts; -std::unique_ptr m_xAutoDetectHC; std::unique_ptr m_xAutomaticFontColor; std::unique_ptr m_xPagePreviews; diff --git a/cui/uiconfig/ui/optaccessibilitypage.ui b/cui/uiconfig/ui/optaccessibilitypage.ui index 43be59802974..2643000fd246 100644 --- a/cui/uiconfig/ui/optaccessibilitypage.ui +++ b/cui/uiconfig/ui/optaccessibilitypage.ui @@ -135,26 +135,6 @@ 6 vertical 6 - - -Automatically _detect high contrast mode of operating system -True -True -False -True -True - - -Switches the office suite into high contrast mode when the system background color is very dark. - - - - -False -True -0 - - Use automatic font _color for screen display @@ -172,7 +152,7 @@ False True -1
[Libreoffice-commits] core.git: vcl/workben
vcl/workben/htmlfuzzer.options |2 +- vcl/workben/scrtffuzzer.options |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) New commits: commit 94e3cce5a9d8136d7c36d1ed596b995aaf47c297 Author: Caolán McNamara AuthorDate: Sat Oct 15 16:56:44 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 20:28:13 2022 +0200 ofz: bump sc-rtf and html max lengths Change-Id: Idd605931d7637d2fc4d1ca878c4ddc6eca9af87b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141419 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/vcl/workben/htmlfuzzer.options b/vcl/workben/htmlfuzzer.options index 9ab77d3b579f..d57cbc0ed9e4 100644 --- a/vcl/workben/htmlfuzzer.options +++ b/vcl/workben/htmlfuzzer.options @@ -1,3 +1,3 @@ [libfuzzer] -max_len = 12288 +max_len = 16384 dict = html_tags.dict diff --git a/vcl/workben/scrtffuzzer.options b/vcl/workben/scrtffuzzer.options index 9e9bf3455ee5..58889a21064b 100644 --- a/vcl/workben/scrtffuzzer.options +++ b/vcl/workben/scrtffuzzer.options @@ -1,2 +1,2 @@ [libfuzzer] -max_len = 16384 +max_len = 20480
[Libreoffice-commits] core.git: vcl/source
vcl/source/fontsubset/cff.cxx | 187 +- 1 file changed, 167 insertions(+), 20 deletions(-) New commits: commit 03ff7ee47c6b4e0dbf38a040825aaca53ce2ed28 Author: Khaled Hosny AuthorDate: Sat Oct 15 17:16:36 2022 +0200 Commit: خالد حسني CommitDate: Sat Oct 15 19:08:33 2022 +0200 tdf#123234: Fix subsetting CFF deprecated endchar Type 2 “endchar” operator can take 4 extra arguments and act like Type 1 “seac” operator. Although this is documented as deprecated, the fonts in the bug report use it. Detect the presence of the extra arguments and output a “seac” operator for them. Change-Id: Ic24ec8fda586c82612f0cc13f2f31585d40ad9c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139908 Tested-by: Jenkins Reviewed-by: خالد حسني diff --git a/vcl/source/fontsubset/cff.cxx b/vcl/source/fontsubset/cff.cxx index 8d8700308bed..bd63eafc21fe 100644 --- a/vcl/source/fontsubset/cff.cxx +++ b/vcl/source/fontsubset/cff.cxx @@ -163,6 +163,55 @@ static const char* pDictEscs[] = { "nFDArray", "nFDSelect","sFontName" }; +static const char* pStandardEncoding[] = { +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", "space", "exclam", "quotedbl", +"numbersign", "dollar", "percent", "ampersand", +"quoteright", "parenleft", "parenright", "asterisk", "plus", +"comma", "hyphen", "period", "slash", "zero", "one", "two", +"three", "four", "five", "six", "seven", "eight", "nine", +"colon", "semicolon", "less", "equal", "greater", +"question", "at", "A", "B", "C", "D", "E", "F", "G", "H", +"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", +"U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", +"bracketright", "asciicircum", "underscore", "quoteleft", +"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", +"y", "z", "braceleft", "bar", "braceright", "asciitilde", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", "exclamdown", +"cent", "sterling", "fraction", "yen", "florin", "section", +"currency", "quotesingle", "quotedblleft", "guillemotleft", +"guilsinglleft", "guilsinglright", "fi", "fl", ".notdef", +"endash", "dagger", "daggerdbl", "periodcentered", +".notdef", "paragraph", "bullet", "quotesinglbase", +"quotedblbase", "quotedblright", "guillemotright", +"ellipsis", "perthousand", ".notdef", "questiondown", +".notdef", "grave", "acute", "circumflex", "tilde", +"macron", "breve", "dotaccent", "dieresis", ".notdef", +"ring", "cedilla", ".notdef", "hungarumlaut", "ogonek", +"caron", "emdash", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", ".notdef", +".notdef", ".notdef", ".notdef", "AE", ".notdef", +"ordfeminine", ".notdef", ".notdef", ".notdef", ".notdef", +"Lslash", "Oslash", "OE", "ordmasculine", ".notdef", +".notdef", ".notdef", ".notdef", ".notdef", "ae", ".notdef", +".notdef", ".notdef", "dotlessi", ".notdef", ".notdef", +"lslash", "oslash", "oe", "germandbls", ".notdef", +".notdef", ".notdef", ".notdef" +}; + namespace { namespace TYPE1OP @@ -262,6 +311,16 @@ struct CffLocal boolmbForceBold; }; +const int MAX_T1OPS_SIZE = 81920; // TODO: use dynamic value + +struct CharString +{ +int nLen; +U8 aOps[MAX_T1OPS_SIZE]; +int nCffGlyphId; +}; + + class CffSubsetterContext : private CffGlobal { @@ -278,6 +337,8 @@ public: int nGlyphCount, FontSubsetInfo& ); private: +voidconvertCharStrings(const sal_GlyphId* pGlyphIds, int nGlyphCount, +std::vector& rCharStrings); int convert2Type1Ops( CffLocal*, const U8* pType2Ops, int nType2Len, U8* pType1Ops); voidconvertOneTypeOp(); voidconvertOneTypeEsc(); @@ -307,6 +368,7 @@ private: int getFDSelect( int nGlyphIndex) const; int getGlyphSID( int nGlyphIndex) const; const char* getGlyphName( int nGlyphIndex); +boolgetBaseAccent(ValType aBase, ValType aAccent, int* nBase, int* nAccent); voidread2push(); voidwriteType1Val(
[Libreoffice-commits] core.git: extras/CustomTarget_tplpresnt.mk Makefile.in
Makefile.in |2 +- extras/CustomTarget_tplpresnt.mk |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) New commits: commit 5e4af7b91c5c8fd9af705b6333990a9848dfb263 Author: Andrea Gelmini AuthorDate: Sat Oct 15 09:42:52 2022 +0200 Commit: Julien Nabet CommitDate: Sat Oct 15 17:47:57 2022 +0200 Fix typos Change-Id: Ifd133889ffdc372831ce753deaca847b46705a53 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141415 Tested-by: Jenkins Reviewed-by: Julien Nabet diff --git a/Makefile.in b/Makefile.in index c65ea071c072..3cfbb6a90bb2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -500,7 +500,7 @@ $(eval $(call gb_Top_GbuildToIdeIntegration,$(ide # this target is provided primarily for consistency with the other ide-integrations vscode-ide-integration: $(BUILDDIR)/vs-code.code-workspace vim-ide-integration -# ToDo: there probably is a way to have it at least create the compile-commnands.json file +# ToDo: there probably is a way to have it at least create the compile-commands.json file # for the vim/vs-code integration without building the registry stuff gbuildtojson: Rdb diff --git a/extras/CustomTarget_tplpresnt.mk b/extras/CustomTarget_tplpresnt.mk index aae85581bd50..887aa1aafaac 100644 --- a/extras/CustomTarget_tplpresnt.mk +++ b/extras/CustomTarget_tplpresnt.mk @@ -10,7 +10,7 @@ $(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 automaticaly added for each template +# 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 \
[Libreoffice-commits] core.git: sfx2/source
sfx2/source/appl/appserv.cxx |3 +++ 1 file changed, 3 insertions(+) New commits: commit dd27b60cb60b7cbe03646a9f2951cedabf4212d6 Author: Caolán McNamara AuthorDate: Sat Oct 15 16:09:41 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 17:17:48 2022 +0200 ofz#52422 Build-Failure Change-Id: I24aae3d273190cc936996c9d81d2c07d9e436193 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141418 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index e3aefbe4b18a..4727f9413684 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -408,10 +408,13 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) aSet.Put( SfxStringItem( SID_CONFIG, pStringItem->GetValue() ) ); } + +#if HAVE_FEATURE_SCRIPTING // Preselect a macro: if (auto const item = rReq.GetArg(SID_MACROINFO)) { aSet.Put(*item); } +#endif Reference xFrame(GetRequestFrame(rReq)); ScopedVclPtr pDlg(pFact->CreateCustomizeTabDialog(rReq.GetFrameWeld(),
Re: Comparion of LogicalFontInstance::ImplGetGlyphBoundRect() between platforms
On Sat, 2022-10-15 at 22:13 +1100, Chris Sherlock wrote: > So an update… after I shifted to using Liberation Sans as the font > face and added gb_CppunitTest_use_more_fonts the only platform that > varies is MacOS. > > Test name: VclLogicalFontInstanceTest::testglyphboundrect > equality assertion failed > - Expected: 7x9@(0,-8) > - Actual : 7x10@(0,-8) And what if you use a larger font size. say font size 110 instead of 11, maybe its a hinting related thing.
[Libreoffice-commits] core.git: cui/uiconfig
cui/uiconfig/ui/optaccessibilitypage.ui | 94 1 file changed, 47 insertions(+), 47 deletions(-) New commits: commit d779ad8cb0ed4a3a1d996bc9979e2cc49a69cae1 Author: Caolán McNamara AuthorDate: Fri Oct 14 20:17:41 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 13:58:17 2022 +0200 resave with latest glade Change-Id: Ie69261feb7fed7f8fda7ac8cb6ee3b8613a1302f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141385 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/cui/uiconfig/ui/optaccessibilitypage.ui b/cui/uiconfig/ui/optaccessibilitypage.ui index 3f1dbeaf00a9..43be59802974 100644 --- a/cui/uiconfig/ui/optaccessibilitypage.ui +++ b/cui/uiconfig/ui/optaccessibilitypage.ui @@ -1,35 +1,35 @@ - + True -False -6 +False +6 vertical 12 True -False -0 -none +False +0 +none True -False -vertical -6 +False 12 6 +vertical +6 Support _assistive technology tools (program restart required) True -True -False -True -True +True +False +True +True Allows you to use assistive tools, such as external screen readers, Braille devices or speech recognition input devices. The Java Runtime Environment must be installed on your computer before you can enable assistive support. @@ -46,10 +46,10 @@ Use te_xt selection cursor in read-only text documents True -True -False -True -True +True +False +True +True Displays cursor in read-only documents. @@ -66,10 +66,10 @@ Allow animated _images True -True -False -True -True +True +False +True +True Previews animated graphics, such as GIF images. @@ -86,10 +86,10 @@ Allow animated _text True -True -False -True -True +True +False +True +True Previews animated text, such as blinking and scrolling. @@ -107,7 +107,7 @@ True -False +False Miscellaneous Options @@ -124,25 +124,25 @@ True -False -0 -none +False +0 +none True -False -vertical -6 +False 12 6 +vertical +6 Automatically _detect high contrast mode of operating system True -True -False -True -True +True +False +True +True Switches the office suite into high contrast mode when the system background color is very dark. @@ -159,10 +159,10 @@ Use automatic font _color for screen display True -True -False -True -True +True +False +True +True Displays fonts in the office suite using the system color settings. This option only affects the screen display. @@ -179,10 +179,10 @@ _Use system colors for page previews True -True -False -True -True +True +False +True +True Applies the high contrast settings of the operating system to page previews. @@ -200,7 +200,7 @@ True -False +False Options for High Contrast Appearance @@ -224,7 +224,7
[Libreoffice-commits] core.git: sw/source
sw/source/filter/ww8/docxattributeoutput.cxx | 26 +++--- 1 file changed, 15 insertions(+), 11 deletions(-) New commits: commit 77fc0c157de024fbf33db90952a92bf9bb73a9ac Author: Caolán McNamara AuthorDate: Fri Oct 14 15:19:52 2022 +0100 Commit: Caolán McNamara CommitDate: Sat Oct 15 13:57:30 2022 +0200 cid#1515941 Dereference null return value Change-Id: I61695d1689cfcef9c04d38b6ef07912840f250bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141378 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index f2489186e9c5..f6c8ff6902b9 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -2465,20 +2465,24 @@ void DocxAttributeOutput::WriteContentControlStart() const OUString& rPrefixMapping = m_pContentControl->GetDataBindingPrefixMappings(); const OUString& rXpath = m_pContentControl->GetDataBindingXpath(); -if (SwTextNode* pTextNode = !rXpath.isEmpty() ? m_pContentControl->GetTextNode() : nullptr) +if (!rXpath.isEmpty()) { // This content control has a data binding, update the data source. SwTextContentControl* pTextAttr = m_pContentControl->GetTextAttr(); -SwPosition aPoint(*pTextNode, pTextAttr->GetStart()); -SwPosition aMark(*pTextNode, *pTextAttr->GetEnd()); -SwPaM aPam(aMark, aPoint); -OUString aSnippet = aPam.GetText(); -static sal_Unicode const aForbidden[] = { -CH_TXTATR_BREAKWORD, -0 -}; -aSnippet = comphelper::string::removeAny(aSnippet, aForbidden); -m_rExport.AddSdtData(rPrefixMapping, rXpath, aSnippet); +SwTextNode* pTextNode = m_pContentControl->GetTextNode(); +if (pTextNode && pTextAttr) +{ +SwPosition aPoint(*pTextNode, pTextAttr->GetStart()); +SwPosition aMark(*pTextNode, *pTextAttr->GetEnd()); +SwPaM aPam(aMark, aPoint); +OUString aSnippet = aPam.GetText(); +static sal_Unicode const aForbidden[] = { +CH_TXTATR_BREAKWORD, +0 +}; +aSnippet = comphelper::string::removeAny(aSnippet, aForbidden); +m_rExport.AddSdtData(rPrefixMapping, rXpath, aSnippet); +} } m_pContentControl = nullptr;
Re: Comparion of LogicalFontInstance::ImplGetGlyphBoundRect() between platforms
> On 15 Oct 2022, at 8:12 pm, Chris Sherlock wrote: > > > I've done some testing of LogicalFontInstance::GetGlyphBoundRect(). Each > platform seems to give different values! > > The commit in gerrit is: https://gerrit.libreoffice.org/c/core/+/141234 So an update… after I shifted to using Liberation Sans as the font face and added gb_CppunitTest_use_more_fonts the only platform that varies is MacOS. Test name: VclLogicalFontInstanceTest::testglyphboundrect equality assertion failed - Expected: 7x9@(0,-8) - Actual : 7x10@(0,-8)
[Libreoffice-commits] core.git: vcl/qa
vcl/qa/cppunit/text.cxx | 71 1 file changed, 71 insertions(+) New commits: commit 5c2e1c894e6d0ef846d3643ef96c56ab548ef0d0 Author: Chris Sherlock AuthorDate: Sun Oct 2 18:33:12 2022 +1100 Commit: Noel Grandin CommitDate: Sat Oct 15 12:55:43 2022 +0200 vcl: test generating ellipses Change-Id: Ic985bd9bbee4319243c01fff6dffa46e860581a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140905 Tested-by: Jenkins Reviewed-by: Noel Grandin diff --git a/vcl/qa/cppunit/text.cxx b/vcl/qa/cppunit/text.cxx index 8ec7597e6a65..a450c99ee3df 100644 --- a/vcl/qa/cppunit/text.cxx +++ b/vcl/qa/cppunit/text.cxx @@ -62,6 +62,9 @@ public: void testImplLayoutArgsBiDiRtl(); void testImplLayoutArgsRightAlign(); void testImplLayoutArgs_PrepareFallback_precalculatedglyphs(); +void testGetStringWithCenterEllpsis(); +void testGetStringWithEndEllpsis(); +void testGetStringWithNewsEllpsis(); void testGetTextBreak(); CPPUNIT_TEST_SUITE(VclTextTest); @@ -75,6 +78,9 @@ public: CPPUNIT_TEST(testImplLayoutArgsBiDiRtl); CPPUNIT_TEST(testImplLayoutArgsRightAlign); CPPUNIT_TEST(testImplLayoutArgs_PrepareFallback_precalculatedglyphs); +CPPUNIT_TEST(testGetStringWithCenterEllpsis); +CPPUNIT_TEST(testGetStringWithEndEllpsis); +CPPUNIT_TEST(testGetStringWithNewsEllpsis); CPPUNIT_TEST(testGetTextBreak); CPPUNIT_TEST_SUITE_END(); }; @@ -576,6 +582,71 @@ void VclTextTest::testImplLayoutArgs_PrepareFallback_precalculatedglyphs() CPPUNIT_ASSERT(!bRTL); } +void VclTextTest::testGetStringWithCenterEllpsis() +{ +ScopedVclPtr device = VclPtr::Create(DeviceFormat::DEFAULT); +device->SetOutputSizePixel(Size(1000, 1000)); +device->SetFont(vcl::Font("DejaVu Sans", "Book", Size(0, 11))); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a b c d ...v w x y z"), +device->GetEllipsisString(u"a b c d e f g h i j k l m n o p q r s t u v w x y z", 100, + DrawTextFlags::CenterEllipsis)); +} + +void VclTextTest::testGetStringWithEndEllpsis() +{ +ScopedVclPtr device = VclPtr::Create(DeviceFormat::DEFAULT); +device->SetOutputSizePixel(Size(1000, 1000)); +device->SetFont(vcl::Font("DejaVu Sans", "Book", Size(0, 11))); + +CPPUNIT_ASSERT_EQUAL(OUString(u"a"), device->GetEllipsisString(u"abcde. f g h i j ...", 10, + DrawTextFlags::EndEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a b c d e f g h i j ..."), +device->GetEllipsisString(u"a b c d e f g h i j k l m n o p q r s t u v w x y z", 100, + DrawTextFlags::EndEllipsis)); + +CPPUNIT_ASSERT_EQUAL(OUString(u"a"), device->GetEllipsisString(u"abcde. f g h i j ...", 1, + DrawTextFlags::EndEllipsis + | DrawTextFlags::Clip)); +} + +void VclTextTest::testGetStringWithNewsEllpsis() +{ +ScopedVclPtr device = VclPtr::Create(DeviceFormat::DEFAULT); +device->SetOutputSizePixel(Size(1000, 1000)); +device->SetFont(vcl::Font("DejaVu Sans", "Book", Size(0, 11))); + +CPPUNIT_ASSERT_EQUAL(OUString(u"a"), device->GetEllipsisString(u"abcde. f g h i j ...", 10, + DrawTextFlags::NewsEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a b x y z"), +device->GetEllipsisString(u"a b c d. e f g. h i j k l m n o p q r s t u v w. x y z", 100, + DrawTextFlags::NewsEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a b x y z"), +device->GetEllipsisString(u"a b c d. e f g h i j k l m n o p q r s t u v w. x y z", 100, + DrawTextFlags::NewsEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a b c d e f g h i j ..."), +device->GetEllipsisString(u"a b c d e f g h i j k l m n o p q r s t u v w. x y z", 100, + DrawTextFlags::NewsEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"a. x y z"), +device->GetEllipsisString(u"a. b c d e f g h i j k l m n o p q r s t u v w. x y z", 100, + DrawTextFlags::NewsEllipsis)); + +CPPUNIT_ASSERT_EQUAL( +OUString(u"ab. cde..."), +device->GetEllipsisString(u"ab. cde. x y z", 50, DrawTextFlags::NewsEllipsis)); +} + void VclTextTest::testGetTextBreak() { ScopedVclPtr device = VclPtr::Create(DeviceFormat::DEFAULT);
[Libreoffice-commits] core.git: cui/inc
cui/inc/tipoftheday.hrc |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 781cf132167d81ff694c7cf82bac30de19711974 Author: Rafael Lima AuthorDate: Sat Oct 15 00:06:31 2022 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sat Oct 15 12:48:06 2022 +0200 tdf#151526 Improve TOTD about text in curves Change-Id: Ib035608c0ee0cea413c5f8dc71b2e10fdc29e763 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141394 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos diff --git a/cui/inc/tipoftheday.hrc b/cui/inc/tipoftheday.hrc index 94160925617f..5baafec6578d 100644 --- a/cui/inc/tipoftheday.hrc +++ b/cui/inc/tipoftheday.hrc @@ -145,7 +145,7 @@ const std::tuple TIPOFTHEDAY_STRINGARRAY[] = { NC_("RID_CUI_TIPOFTHEDAY", "Want to open hyperlinks without pressing the %MOD1 key? Uncheck “%MOD1+click required to open hyperlinks” in Tools ▸ Options ▸ %PRODUCTNAME ▸ Security ▸ Options ▸ Security Options."), "cui/ui/securityoptionsdialog/ctrlclick", ""}, { NC_("RID_CUI_TIPOFTHEDAY", "You would like to view the calculation of individual elements of a formula, select the respective elements and press F9."), "", "tipoftheday_c.png"}, { NC_("RID_CUI_TIPOFTHEDAY", "You can protect cells with Format ▸ Cells ▸ Protection. To prevent insert, delete, rename, move/copy of sheets use Tools ▸ Protect Sheet."), "https://help.libreoffice.org/%PRODUCTVERSION/%LANGUAGENAME/text/scalc/guide/cell_protect.html";, "tipoftheday_c.png"}, //local help missing - { NC_("RID_CUI_TIPOFTHEDAY", "Write along a curve? Draw the line, double click, type the text, Format ▸ Text Box and Shape ▸ Fontwork."), "", "tipoftheday_w.png"}, + { NC_("RID_CUI_TIPOFTHEDAY", "Write along a curve? Draw the curve, double click, type the text, Format ▸ Text Box and Shape ▸ Fontwork. Select one of the alignment options: Rotate, Upright, Slant Horizontal or Slant Vertical."), "", "tipoftheday_w.png"}, { NC_("RID_CUI_TIPOFTHEDAY", "Want to display only the highest values in a spreadsheet? Select menu Data ▸ AutoFilter, click the drop-down arrow, and choose “Top10”."), "", "tipoftheday_c.png"}, { NC_("RID_CUI_TIPOFTHEDAY", "To remove the page number from your table of contents go to Insert ▸ Table of Contents and Index (or right-click and Edit Index to edit a previously inserted index). In the Entries tab delete the page number (#) from Structure line."), "", "tipoftheday_w.png"}, { NC_("RID_CUI_TIPOFTHEDAY", "With the Navigator you can select & move up/down headings and the text below the heading, in the Navigator and in the document."), "", "tipoftheday_w.png"},
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - svx/source
svx/source/tbxctrls/layctrl.cxx |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) New commits: commit 39dded7348229de57211ef30c5d2715bf42c9056 Author: Rafael Lima AuthorDate: Mon Oct 10 20:42:37 2022 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sat Oct 15 12:44:12 2022 +0200 tdf#136921 Fix color of Insert - Section control in dark mode Change-Id: I907d39048cfd963d91643bdff7de3d10310217d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141176 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos (cherry picked from commit cf9a83b495576f9c12cd36f65b11d3d1b8f1d142) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141395 diff --git a/svx/source/tbxctrls/layctrl.cxx b/svx/source/tbxctrls/layctrl.cxx index 813df4089bb6..79dd794fd6e8 100644 --- a/svx/source/tbxctrls/layctrl.cxx +++ b/svx/source/tbxctrls/layctrl.cxx @@ -461,8 +461,7 @@ ColumnsWidget::ColumnsWidget(SvxColumnsToolBoxControl* pControl, weld::SpinButto mrSpinButton.connect_activate(LINK(this, ColumnsWidget, ActivateHdl)); const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings(); -svtools::ColorConfig aColorConfig; -aLineColor = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor; +aLineColor = rStyles.GetLabelTextColor(); aHighlightLineColor = rStyles.GetHighlightTextColor(); aFillColor = rStyles.GetWindowColor(); aHighlightFillColor = rStyles.GetHighlightColor();
Comparion of LogicalFontInstance::ImplGetGlyphBoundRect() between platforms
I've done some testing of LogicalFontInstance::GetGlyphBoundRect(). Each platform seems to give different values! The commit in gerrit is: https://gerrit.libreoffice.org/c/core/+/141234 (many thanks to Hossein for some suggestions in a different gerrit patch about some things around unit tests I didn't know - see comments at https://gerrit.libreoffice.org/c/core/+/141103/) Ultimately, the differences boil down to the pure function LogicalFontInstance::ImplGetGlyphBoundRect(), which each platform must implement to get the glyph's bounding rect. To try to understand the differences, I've looked at each platform's implementation with some notes, if this is at all helpful. Any comments would be appreciated! I'd love to standardize this function :-) Chris --- Comparion of LogicalFontInstance::ImplGetGlyphBoundRect() between platforms WIN32 - ImplGetGlyphBoundRect() is implemented in WinFontInstance, derived by from LogicalFontInstance Located in vcl/win/gdi/salfont.cxx Process: Step 1: select the font --- 1. Get the HDC of the current graphics 2. Get the current GDI font's HFONT 3. Get the the HFONT of the font referenced by the WinFontInstance 4. If the current GDI HFONT is not the WinFontInstance's HFONT then explicitly select the WinFontInstance's HFONT 5. Setup a guard to restore the original font after ImplGetGlyphBoundRect() finishes Step 2: Setup transformation matrix --- MAT2 is a 3x3 transformation matrix If using horizontal text, setup an identity matrix (means that nothing happens when applying the matrix) If using vertical writing then matrix appropriately rotates the glyph Step 3: Setup to get the glyph's bounding rect -- 1. Set the flag for GetGlyphOutlineW to use GGO_METRICS and GGO_GLYPH_INDEX - GGO_METRICS indicates to retrieve the GLYPHMETRICS structure - GGO_GLYPH_INDEX indicates that we use the TrueType glyph index instead of the character code 2. Zero initialize the GLYPHMETRICS fields 3. Call on GetGlyphOutlineW using the transformation matrix to populate the glyph metrics Step 4: Get the bounding rect of the glyph -- The next bit takes the glyph metrics from the previous step. 1. Populate the glyph rectangle with the origin being the x- and y- coords of the upper left corner of the smallest rectangle that completely encloses the glyph, and the width and height of the glyph's "black box", which is the smallest rectangle that encloses the glyph 2. Scale the bounding rectangle, adding a point to the right and bottom coords of the rectangle SUMMARY: Basically, we call on Win32's GetGlyphOutlineW() to get the GLYPHMETRICS. It is important to quote Microsoft on this structure: The GLYPHMETRICS structure specifies the width of the character cell and the location of a glyph within the character cell. The origin of the character cell is located at the left side of the cell at the baseline of the font. The location of the glyph origin is relative to the character cell origin. The height of a character cell, the baseline, and other metrics global to the font are given by the OUTLINETEXTMETRIC structure. https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-getglyphoutlinew MAC --- ImplGetGlyphBoundRect() is implemented in CoreTextStyle, derived from LogicalFontInstance Located in vcl/quartz/ctfont.cxx Process: Step 1: Get the glyph rectangle --- 1. Set the CGGlyph variable nCGGlyph the glyph index 2. Get the font by looking up the mpStyleDict dictionary for the kCTFontAttributeName, which gives the font of the text to which this attribute applies Note: Currently does not handle vertical text 3. Get the glyph rectangle in a CGRect by calling on CTFontGetBoundingRectsForGlyphs() 4. Apply any font rotation for horizontal text Step 2: Return the tools::Rectangle bounding rect - 1. std::floor() the origin x, y (i.e. the top left) 2. std::ceil() the bottom right of the rectangle i.e. to get this, aCGRect.origin.x + aCGRect.size.width aCGRect.origin.y + aCGRect.size.height 3. so the rectangle gets the positive x origin and a negative y origin (???) and for the bottom left a positive x and a negative y (???) SUMMARY: Use CTFontGetBoundRectsForGlyphs() to get the bounding rect of the glyph. Note that the Core Text documentation says the following: The bounding rectangles of the individual glyphs are returned through the boundingRects parameter. These are the design metrics from the font transformed in font space. https://developer.apple.com/documentation/coretext/1509419-ctfontgetboundingrectsforglyphs UNIX Note there are two variants: Qt and Freetype Q
[Libreoffice-commits] core.git: include/sfx2 sw/inc sw/qa sw/source
include/sfx2/AccessibilityIssue.hxx|1 sw/inc/AccessibilityCheckStrings.hrc |1 sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx | 11 +++ sw/qa/core/accessibilitycheck/data/BackgroundImageTest.odt |binary sw/source/core/access/AccessibilityCheck.cxx | 42 + 5 files changed, 55 insertions(+) New commits: commit f9eb59a59723275f7057419d2c05393ac2781972 Author: offtkp AuthorDate: Tue Oct 11 19:02:39 2022 +0300 Commit: Tomaž Vajngerl CommitDate: Sat Oct 15 10:34:28 2022 +0200 a11y: Add check for background image Add accessibility check and relevant test for a document with a background image Change-Id: I7b97cff27af66c2614bfc535d369b17ec048e8d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141230 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl diff --git a/include/sfx2/AccessibilityIssue.hxx b/include/sfx2/AccessibilityIssue.hxx index 4cc9a72e7c19..085863cbd405 100644 --- a/include/sfx2/AccessibilityIssue.hxx +++ b/include/sfx2/AccessibilityIssue.hxx @@ -22,6 +22,7 @@ enum class AccessibilityIssueID UNSPECIFIED, // TODO: remove - temporary DOCUMENT_TITLE, DOCUMENT_LANGUAGE, +DOCUMENT_BACKGROUND, STYLE_LANGUAGE, NO_ALT_OLE, NO_ALT_GRAPHIC, diff --git a/sw/inc/AccessibilityCheckStrings.hrc b/sw/inc/AccessibilityCheckStrings.hrc index 2c098e50edc8..858de1a47d93 100644 --- a/sw/inc/AccessibilityCheckStrings.hrc +++ b/sw/inc/AccessibilityCheckStrings.hrc @@ -21,6 +21,7 @@ #define STR_TEXT_BLINKING NC_("STR_TEXT_BLINKING", "Blinking text.") #define STR_AVOID_FOOTNOTES NC_("STR_AVOID_FOOTNOTES", "Avoid footnotes.") #define STR_AVOID_ENDNOTES NC_("STR_AVOID_ENDNOTES", "Avoid endnotes.") +#define STR_AVOID_BACKGROUND_IMAGES NC_("STR_AVOID_BACKGROUND_IMAGES", "Avoid background images.") #define STR_HEADINGS_NOT_IN_ORDER NC_("STR_HEADINGS_NOT_IN_ORDER", "Headings not in order.") #define STR_TEXT_FORMATTING_CONVEYS_MEANING NC_("STR_TEXT_FORMATTING_CONVEYS_MEANING", "The text formatting conveys additional meaning.") #define STR_NON_INTERACTIVE_FORMS NC_("STR_NON_INTERACTIVE_FORMS", "An input form is not interactive.") diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx index d7ad7674c13b..2c36d2b5d4e7 100644 --- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx +++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx @@ -59,6 +59,17 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheckParagraphIssues) CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TEXT_FORMATTING, aIssues[0]->m_eIssueID); } +CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheckBackgroundImage) +{ +SwDoc* pDoc = createSwDoc(DATA_DIRECTORY, "BackgroundImageTest.odt"); +CPPUNIT_ASSERT(pDoc); +sw::AccessibilityCheck aCheck(pDoc); +aCheck.check(); +auto& aIssues = aCheck.getIssueCollection().getIssues(); +CPPUNIT_ASSERT_EQUAL(size_t(1), aIssues.size()); +CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DOCUMENT_BACKGROUND, aIssues[0]->m_eIssueID); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/core/accessibilitycheck/data/BackgroundImageTest.odt b/sw/qa/core/accessibilitycheck/data/BackgroundImageTest.odt new file mode 100644 index ..eff6f178394b Binary files /dev/null and b/sw/qa/core/accessibilitycheck/data/BackgroundImageTest.odt differ diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index f6c6ec7b43d5..de0a5bf63472 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -898,6 +899,46 @@ public: } }; +class BackgroundImageCheck : public DocumentCheck +{ +public: +BackgroundImageCheck(sfx::AccessibilityIssueCollection& rIssueCollection) +: DocumentCheck(rIssueCollection) +{ +} +void check(SwDoc* pDoc) override +{ +uno::Reference xDoc = pDoc->GetDocShell()->GetBaseModel(); +uno::Reference xStyleFamiliesSupplier(xDoc, uno::UNO_QUERY); +if (!xStyleFamiliesSupplier.is()) +return; +uno::Reference xStyleFamilies += xStyleFamiliesSupplier->getStyleFamilies(); +uno::Reference xStyleFamily(xStyleFamilies->getByName("PageStyles"), +uno::UNO_QUERY); +if (!xStyleFamily.is()) +return; +const uno::Sequence& xStyleFamilyNames = xStyleFamily->getElementNames(); +for (const OUString& rStyleFamilyName : xStyleFamilyNames) +{ +uno::Reference xPropertySet( +xStyleFamily->getByN
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - officecfg/registry
officecfg/registry/data/org/openoffice/Office/Accelerators.xcu | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) New commits: commit 954bee89d4943656f10c3574b33578861bf539e7 Author: Aron Budea AuthorDate: Tue Oct 11 15:59:54 2022 +0200 Commit: Andras Timar CommitDate: Sat Oct 15 10:20:07 2022 +0200 tdf#150682 Change shortcut of inserting Math objects to Alt+Shift+E Ctrl+Alt combinations don't work on Windows if they're also doubling as AltGr modifiers, eg. in French keyboard layout, Ctrl+Alt+'=' (which is the same as AltGr+'=' ) is '}'. Avoid this by switching to different modifiers. In addition '=' can require a modifier to enter, eg. in German layout (Shift+0), so use an ASCII character, 'E' instead. Ctrl+Shift+E is listed as a problematic combination in Accelerators.xcu, settled on Alt+Shift+E in the end. Also partially revert d156e891db34e88991a6c18fd3cff6feddfc61c8, which did not work. Change-Id: Ie3625f2c55171187fbbe2c4f79821eba8c25f40a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141227 Tested-by: Jenkins Reviewed-by: Aron Budea (cherry picked from commit 77fb3ffdb6a8077cd3931985de923fbd1396d424) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141362 Reviewed-by: Andras Timar diff --git a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu index 0497cb3e18a8..bec16cb66756 100644 --- a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu +++ b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu @@ -808,7 +808,7 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing .uno:FillDown - + I10N SHORTCUTS - NO TRANSLATE .uno:InsertObjectStarMath @@ -1737,7 +1737,7 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing .uno:SelectAll - + I10N SHORTCUTS - NO TRANSLATE .uno:InsertMath @@ -2957,12 +2957,6 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing .uno:PreviousAnnotation - - -I10N SHORTCUTS - NO TRANSLATE -.uno:InsertMath - - I10N SHORTCUTS - NO TRANSLATE @@ -3082,6 +3076,12 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing .uno:SelectAll + + +I10N SHORTCUTS - NO TRANSLATE +.uno:InsertMath + + I10N SHORTCUTS - NO TRANSLATE @@ -6221,7 +6221,7 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing .uno:SelectAll - + I10N SHORTCUTS - NO TRANSLATE .uno:InsertObjectStarMath
[Libreoffice-commits] core.git: svx/source
svx/source/tbxctrls/layctrl.cxx |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) New commits: commit cf9a83b495576f9c12cd36f65b11d3d1b8f1d142 Author: Rafael Lima AuthorDate: Mon Oct 10 20:42:37 2022 +0200 Commit: Adolfo Jayme Barrientos CommitDate: Sat Oct 15 10:10:34 2022 +0200 tdf#136921 Fix color of Insert - Section control in dark mode Change-Id: I907d39048cfd963d91643bdff7de3d10310217d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141176 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos diff --git a/svx/source/tbxctrls/layctrl.cxx b/svx/source/tbxctrls/layctrl.cxx index f5f5b1566903..0ec276a5a9f1 100644 --- a/svx/source/tbxctrls/layctrl.cxx +++ b/svx/source/tbxctrls/layctrl.cxx @@ -462,8 +462,7 @@ ColumnsWidget::ColumnsWidget(SvxColumnsToolBoxControl* pControl, weld::SpinButto mrSpinButton.connect_activate(LINK(this, ColumnsWidget, ActivateHdl)); const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings(); -svtools::ColorConfig aColorConfig; -aLineColor = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor; +aLineColor = rStyles.GetLabelTextColor(); aHighlightLineColor = rStyles.GetHighlightTextColor(); aFillColor = rStyles.GetWindowColor(); aHighlightFillColor = rStyles.GetHighlightColor();