[Libreoffice-commits] core.git: configure.ac
configure.ac |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 4132bd5477c25a505f7bfbee1e7dcf6602c927d3 Author: Jan Holesovsky AuthorDate: Mon Jan 23 17:56:31 2023 +0100 Commit: Jan Holesovsky CommitDate: Tue Jan 24 11:28:53 2023 + No need for openssl in the cross build's instdir_for_build So disable it from the configure & make sure it is not brought in by the non-iOS check. Change-Id: I9bbf1c593d1d48197951002e04e7f925d35ecba9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146034 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/configure.ac b/configure.ac index 8bad8873443d..921853e2f8b3 100644 --- a/configure.ac +++ b/configure.ac @@ -5734,6 +5734,7 @@ if test "$cross_compiling" = "yes"; then --disable-nss \ --disable-online-update \ --disable-opencl \ +--disable-openssl \ --disable-pdfimport \ --disable-postgresql-sdbc \ --disable-skia \ @@ -5741,9 +5742,9 @@ if test "$cross_compiling" = "yes"; then --enable-dynamic-loading \ --enable-icecream="$enable_icecream" \ --without-doxygen \ +--without-tls \ --without-webdav \ --without-x \ ---with-tls=openssl \ " # single quotes added for better readability in case of spaces echo "Running CONF-FOR-BUILD/configure" \ @@ -5798,7 +5799,6 @@ if test "$cross_compiling" = "yes"; then LIBXSLT MDDS NATIVE -OPENSSL ORCUS PYTHON SCRIPTING @@ -10632,7 +10632,7 @@ if test "$enable_fuzzers" != "yes" -a "$enable_nss" = "yes"; then libo_CHECK_SYSTEM_MODULE([nss],[NSS],[nss >= 3.9.3 nspr >= 4.8],,system-if-linux) AC_DEFINE(HAVE_FEATURE_NSS) ENABLE_NSS=TRUE -elif test $_os != iOS ; then +elif test $_os != iOS -a "$enable_openssl" != "no"; then with_tls=openssl fi AC_SUBST(ENABLE_NSS)
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-22.05' - oox/source sw/qa
oox/source/drawingml/fillproperties.cxx |6 +- sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport18.cxx| 15 +++ 3 files changed, 20 insertions(+), 1 deletion(-) New commits: commit dc62b698f7a57b244dc80e0b607922505af233e9 Author: Jan Holesovsky AuthorDate: Thu Nov 24 11:22:49 2022 +0100 Commit: Miklos Vajna CommitDate: Fri Nov 25 10:50:58 2022 +0100 tdf#152199: Don't crop twice We have a "GraphicCrop" property that is supposed to roundtrip the cropping in OOXML, but there is no core feature backing it (ie. the image is not shown cropped when this is imported and set). Instead, to show the image "cropped", we crop the image physically on import (throw away pixels that are 'outside' of the cropped area). But - the "GraphicCrop" is then saved on export, together with the image already physically cropped, which leads to garbled DOCX on re-import. Given that the core feature to show image cropped when the "GraphicCrop" is set, let's avoid setting it when we physically crop the image. Change-Id: Ia1090ea9c6d22e60c77d52bf65281f6588d07d4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143214 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 3fb6b4ca372e..80ba3ba7664d 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -818,7 +818,6 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, aGraphCrop.Right = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Width ) * aFillRect.X2 ) / 10 ); if ( aFillRect.Y2 ) aGraphCrop.Bottom = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Height ) * aFillRect.Y2 ) / 10 ); -rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); bool bHasCropValues = aGraphCrop.Left != 0 || aGraphCrop.Right !=0 || aGraphCrop.Top != 0 || aGraphCrop.Bottom != 0; // Negative GraphicCrop values means "crop" here. @@ -826,12 +825,17 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, if(bIsCustomShape && bHasCropValues && bNeedCrop) { +// Physically crop the image +// In this case, don't set the PROP_GraphicCrop because that +// would lead to applying the crop twice after roundtrip xGraphic = lclCropGraphic(xGraphic, CropQuotientsFromFillRect(aFillRect)); if (rPropMap.supportsProperty(ShapeProperty::FillBitmapName)) rPropMap.setProperty(ShapeProperty::FillBitmapName, xGraphic); else rPropMap.setProperty(ShapeProperty::FillBitmap, xGraphic); } +else +rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); } } } diff --git a/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx new file mode 100644 index ..6db60d0e8c60 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index bc48cc158975..2d5cca60eb27 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -77,6 +78,20 @@ CPPUNIT_TEST_FIXTURE(Test, testSdtDuplicatedId) assertXPath(pXmlDoc, "//w:sdt", 2); } +CPPUNIT_TEST_FIXTURE(Test, testImageCropping) +{ +loadAndReload("crop-roundtrip.docx"); + +// the image has no cropping after roundtrip, because it has been physically cropped +// NB: this test should be fixed when the core feature to show image cropped when it +// has the "GraphicCrop" is set is implemented +auto aGraphicCropStruct = getProperty(getShape(1), "GraphicCrop"); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Left); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Right); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Top); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Bottom); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
[Libreoffice-commits] core.git: Branch 'libreoffice-7-4' - oox/source sw/qa
oox/source/drawingml/fillproperties.cxx |6 +- sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport18.cxx| 15 +++ 3 files changed, 20 insertions(+), 1 deletion(-) New commits: commit 96accaabebc2685a55323f939c432ce8e8c60f34 Author: Jan Holesovsky AuthorDate: Thu Nov 24 11:22:49 2022 +0100 Commit: Xisco Fauli CommitDate: Fri Nov 25 10:48:11 2022 +0100 tdf#152199: Don't crop twice We have a "GraphicCrop" property that is supposed to roundtrip the cropping in OOXML, but there is no core feature backing it (ie. the image is not shown cropped when this is imported and set). Instead, to show the image "cropped", we crop the image physically on import (throw away pixels that are 'outside' of the cropped area). But - the "GraphicCrop" is then saved on export, together with the image already physically cropped, which leads to garbled DOCX on re-import. Given that the core feature to show image cropped when the "GraphicCrop" is set, let's avoid setting it when we physically crop the image. Change-Id: Ia1090ea9c6d22e60c77d52bf65281f6588d07d4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143216 Tested-by: Jenkins Reviewed-by: Jan Holesovsky Signed-off-by: Xisco Fauli Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143251 diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 3b540ba1de29..144c67fa5caf 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -853,7 +853,6 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, aGraphCrop.Right = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Width ) * aFillRect.X2 ) / 10 ); if ( aFillRect.Y2 ) aGraphCrop.Bottom = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Height ) * aFillRect.Y2 ) / 10 ); -rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); bool bHasCropValues = aGraphCrop.Left != 0 || aGraphCrop.Right !=0 || aGraphCrop.Top != 0 || aGraphCrop.Bottom != 0; // Negative GraphicCrop values means "crop" here. @@ -861,12 +860,17 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, if(bIsCustomShape && bHasCropValues && bNeedCrop) { +// Physically crop the image +// In this case, don't set the PROP_GraphicCrop because that +// would lead to applying the crop twice after roundtrip xGraphic = lclCropGraphic(xGraphic, CropQuotientsFromFillRect(aFillRect)); if (rPropMap.supportsProperty(ShapeProperty::FillBitmapName)) rPropMap.setProperty(ShapeProperty::FillBitmapName, xGraphic); else rPropMap.setProperty(ShapeProperty::FillBitmap, xGraphic); } +else +rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); } } } diff --git a/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx new file mode 100644 index ..6db60d0e8c60 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index e1e515f99e57..dc9429c20cbe 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -101,6 +102,20 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf150966_regularInset) assertXPathAttrs(pXmlDoc, "//wps:bodyPr", { { "tIns", "179640" }, { "bIns", "36" } }); } +CPPUNIT_TEST_FIXTURE(Test, testImageCropping) +{ +loadAndReload("crop-roundtrip.docx"); + +// the image has no cropping after roundtrip, because it has been physically cropped +// NB: this test should be fixed when the core feature to show image cropped when it +// has the "GraphicCrop" is set is implemented +auto aGraphicCropStruct = getProperty(getShape(1), "GraphicCrop"); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Left); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Right); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Top); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Bottom); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /*
[Libreoffice-commits] core.git: oox/source sw/qa
oox/source/drawingml/fillproperties.cxx |6 +- sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport18.cxx| 15 +++ 3 files changed, 20 insertions(+), 1 deletion(-) New commits: commit ab080ab1ab3100d9702a745287566b78b8d59e54 Author: Jan Holesovsky AuthorDate: Thu Nov 24 11:22:49 2022 +0100 Commit: Jan Holesovsky CommitDate: Thu Nov 24 21:58:46 2022 +0100 tdf#152199: Don't crop twice We have a "GraphicCrop" property that is supposed to roundtrip the cropping in OOXML, but there is no core feature backing it (ie. the image is not shown cropped when this is imported and set). Instead, to show the image "cropped", we crop the image physically on import (throw away pixels that are 'outside' of the cropped area). But - the "GraphicCrop" is then saved on export, together with the image already physically cropped, which leads to garbled DOCX on re-import. Given that the core feature to show image cropped when the "GraphicCrop" is set, let's avoid setting it when we physically crop the image. Change-Id: Ia1090ea9c6d22e60c77d52bf65281f6588d07d4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143216 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 75da3836b6f5..329d5d3bb4b1 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -853,7 +853,6 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, aGraphCrop.Right = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Width ) * aFillRect.X2 ) / 10 ); if ( aFillRect.Y2 ) aGraphCrop.Bottom = static_cast< sal_Int32 >( ( static_cast< double >( aOriginalSize.Height ) * aFillRect.Y2 ) / 10 ); -rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); bool bHasCropValues = aGraphCrop.Left != 0 || aGraphCrop.Right !=0 || aGraphCrop.Top != 0 || aGraphCrop.Bottom != 0; // Negative GraphicCrop values means "crop" here. @@ -861,12 +860,17 @@ void FillProperties::pushToPropMap( ShapePropertyMap& rPropMap, if(bIsCustomShape && bHasCropValues && bNeedCrop) { +// Physically crop the image +// In this case, don't set the PROP_GraphicCrop because that +// would lead to applying the crop twice after roundtrip xGraphic = lclCropGraphic(xGraphic, CropQuotientsFromFillRect(aFillRect)); if (rPropMap.supportsProperty(ShapeProperty::FillBitmapName)) rPropMap.setProperty(ShapeProperty::FillBitmapName, xGraphic); else rPropMap.setProperty(ShapeProperty::FillBitmap, xGraphic); } +else +rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop); } } } diff --git a/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx new file mode 100644 index ..6db60d0e8c60 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/crop-roundtrip.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index 71d28b313d2a..04c775fa8fcb 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -172,6 +173,20 @@ CPPUNIT_TEST_FIXTURE(Test, testSdtDuplicatedId) assertXPath(pXmlDoc, "//w:sdt", 2); } +CPPUNIT_TEST_FIXTURE(Test, testImageCropping) +{ +loadAndReload("crop-roundtrip.docx"); + +// the image has no cropping after roundtrip, because it has been physically cropped +// NB: this test should be fixed when the core feature to show image cropped when it +// has the "GraphicCrop" is set is implemented +auto aGraphicCropStruct = getProperty(getShape(1), "GraphicCrop"); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Left); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Right); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Top); +CPPUNIT_ASSERT_EQUAL(sal_Int32(0), aGraphicCropStruct.Bottom); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
[Libreoffice-commits] core.git: configure.ac
configure.ac |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit e50cffea75456551382445c28fdd4cabd9c2e81b Author: Jan Holesovsky AuthorDate: Wed Nov 9 12:23:25 2022 +0100 Commit: Jan Holesovsky CommitDate: Wed Nov 9 13:17:52 2022 +0100 Clarify the cairo warning in ./configure To know what to expect. Change-Id: Ia660a1ebdbb76c04aa96934cabc16e1cbfc4cfd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142478 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/configure.ac b/configure.ac index 0fa69d60a292..08c2ac634b71 100644 --- a/configure.ac +++ b/configure.ac @@ -11774,7 +11774,7 @@ GTK3_LIBS="" ENABLE_GTKTILEDVIEWER="" if test "$test_gtk3" = yes -a "x$enable_gtk3" = "xyes" -o "x$enable_gtk3_kde5" = "xyes"; then if test "$with_system_cairo" = no; then -add_warning 'Non-system cairo combined with gtk3 is assumed to cause trouble; proceed at your own risk.' +add_warning 'Non-system cairo combined with gtk3 is known to cause trouble (eg. broken image in the splashscreen). Use --with-system-cairo unless you know what you are doing.' fi : ${with_system_cairo:=yes} PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.20 gtk+-unix-print-3.0 gmodule-no-export-2.0 glib-2.0 >= 2.38 atk >= 2.28.1 cairo)
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-22.05' - sc/source
sc/source/ui/view/gridwin.cxx | 61 +- 1 file changed, 2 insertions(+), 59 deletions(-) New commits: commit 657ddc1a8631418f39f587e448954ec47996cf75 Author: Jan Holesovsky AuthorDate: Mon Oct 24 16:27:17 2022 +0200 Commit: Gülşah Köse CommitDate: Tue Nov 8 16:04:45 2022 +0100 sc lok: Double-click should behave more like on desktop When editing was introduced in Calc LibreOfficeKit, there were lots of limitations. Particularly the thinking was that it would be good if a double-click into any text (even if spanning over more cells) actually started editing that text. These days, the LOK behaves much more consistently, so it is better to behave as the LibreOffice on desktop (or other tools, like gdocs) do: If the cell: * Is empty -> single click places the cell cursor -> double click places the cell cursor & shows the text caret * Is empty, but covered by text bleeding from other cell -> same as if it was empty * Isn't empty -> single click places the cell cursor -> double click places the cell cursor & places the text caret inside the text where the user clicked + this is actually different in gdocs - there the caret is placed at the end of the text; in LO it is where the user has double-clicked Change-Id: Ib5884f887c98f803b06d8bed5057ec435be480ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141772 Tested-by: Jenkins CollaboraOffice Reviewed-by: Gülşah Köse diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 32573c92b8a2..93522adc4bdb 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1809,49 +1809,6 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta if ( !nButtonDown || !bDouble ) // single (first) click is always valid nButtonDown = rMEvt.GetButtons(); // set nButtonDown first, so StopMarking works -// special handling of empty cells with tiled rendering -if (bIsTiledRendering) -{ -Point aPos(rMEvt.GetPosPixel()); -SCCOL nPosX, nNonEmptyX(0); -SCROW nPosY; -SCTAB nTab = mrViewData.GetTabNo(); -mrViewData.GetPosFromPixel(aPos.X(), aPos.Y(), eWhich, nPosX, nPosY); - -ScRefCellValue aCell(rDoc, ScAddress(nPosX, nPosY, nTab)); -bool bIsEmpty = aCell.isEmpty(); -bool bIsCoveredByText = bIsEmpty && IsCellCoveredByText(nPosX, nPosY, nTab, nNonEmptyX); - -if (bIsCoveredByText) -{ -// if there's any text flowing to this cell, activate the -// editengine, so that the text actually gets the events -if (bDouble) -{ -ScViewFunc* pView = mrViewData.GetView(); - -pView->SetCursor(nNonEmptyX, nPosY); -SC_MOD()->SetInputMode(SC_INPUT_TABLE); - -bEditMode = mrViewData.HasEditView(eWhich); -assert(bEditMode); - -// synthesize the 1st click -EditView* pEditView = mrViewData.GetEditView(eWhich); -MouseEvent aEditEvt(rMEvt.GetPosPixel(), 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, 0); -pEditView->MouseButtonDown(aEditEvt); -pEditView->MouseButtonUp(aEditEvt); -} -} -else if (bIsEmpty && bEditMode && bDouble) -{ -// double-click in an empty cell: the entire cell is selected -SetCellSelectionPixel(LOK_SETTEXTSELECTION_START, aPos.X(), aPos.Y()); -SetCellSelectionPixel(LOK_SETTEXTSELECTION_END, aPos.X(), aPos.Y()); -return; -} -} - if ( ( bEditMode && mrViewData.GetActivePart() == eWhich ) || !bFormulaMode ) GrabFocus(); @@ -2382,14 +2339,11 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) mrViewData.GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY ); ScDPObject* pDPObj = rDoc.GetDPAtCursor( nPosX, nPosY, nTab ); -bool bInDataPilotTable = (pDPObj != nullptr); - // double click (only left button) -// in the tiled rendering case, single click works this way too bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive(); bool bDouble = ( rMEvt.GetClicks() == 2 && rMEvt.IsLeft() ); -if ((bDouble || (bIsTiledRendering && !bInDataPilotTable)) +if ( bDouble && !bRefMode && (nMouseStatus == SC_GM_DBLDOWN || (bIsTiledRendering && nMouseStatus != SC_GM_URLDOWN)) && !pScMod->IsRefDialogOpen()) @@ -2449,19 +2403,8 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) bEditAllowed = false; } -// We don't want to activate the edit view for a single click in tiled rendering -
[Libreoffice-commits] core.git: sc/source
sc/source/ui/view/gridwin.cxx | 61 +- 1 file changed, 2 insertions(+), 59 deletions(-) New commits: commit 142d3e15916afd1c38bcccf0d23cac292ea357fc Author: Jan Holesovsky AuthorDate: Mon Oct 24 16:27:17 2022 +0200 Commit: Jan Holesovsky CommitDate: Thu Nov 3 21:52:40 2022 +0100 sc lok: Double-click should behave more like on desktop When editing was introduced in Calc LibreOfficeKit, there were lots of limitations. Particularly the thinking was that it would be good if a double-click into any text (even if spanning over more cells) actually started editing that text. These days, the LOK behaves much more consistently, so it is better to behave as the LibreOffice on desktop (or other tools, like gdocs) do: If the cell: * Is empty -> single click places the cell cursor -> double click places the cell cursor & shows the text caret * Is empty, but covered by text bleeding from other cell -> same as if it was empty * Isn't empty -> single click places the cell cursor -> double click places the cell cursor & places the text caret inside the text where the user clicked + this is actually different in gdocs - there the caret is placed at the end of the text; in LO it is where the user has double-clicked Change-Id: Ib5884f887c98f803b06d8bed5057ec435be480ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142196 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 69a1daf6f9ce..1ae16dd962aa 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1833,49 +1833,6 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta if ( !nButtonDown || !bDouble ) // single (first) click is always valid nButtonDown = rMEvt.GetButtons(); // set nButtonDown first, so StopMarking works -// special handling of empty cells with tiled rendering -if (bIsTiledRendering) -{ -Point aPos(rMEvt.GetPosPixel()); -SCCOL nPosX, nNonEmptyX(0); -SCROW nPosY; -SCTAB nTab = mrViewData.GetTabNo(); -mrViewData.GetPosFromPixel(aPos.X(), aPos.Y(), eWhich, nPosX, nPosY); - -ScRefCellValue aCell(rDoc, ScAddress(nPosX, nPosY, nTab)); -bool bIsEmpty = aCell.isEmpty(); -bool bIsCoveredByText = bIsEmpty && IsCellCoveredByText(nPosX, nPosY, nTab, nNonEmptyX); - -if (bIsCoveredByText) -{ -// if there's any text flowing to this cell, activate the -// editengine, so that the text actually gets the events -if (bDouble) -{ -ScViewFunc* pView = mrViewData.GetView(); - -pView->SetCursor(nNonEmptyX, nPosY); -SC_MOD()->SetInputMode(SC_INPUT_TABLE); - -bEditMode = mrViewData.HasEditView(eWhich); -assert(bEditMode); - -// synthesize the 1st click -EditView* pEditView = mrViewData.GetEditView(eWhich); -MouseEvent aEditEvt(rMEvt.GetPosPixel(), 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, 0); -pEditView->MouseButtonDown(aEditEvt); -pEditView->MouseButtonUp(aEditEvt); -} -} -else if (bIsEmpty && bEditMode && bDouble) -{ -// double-click in an empty cell: the entire cell is selected -SetCellSelectionPixel(LOK_SETTEXTSELECTION_START, aPos.X(), aPos.Y()); -SetCellSelectionPixel(LOK_SETTEXTSELECTION_END, aPos.X(), aPos.Y()); -return; -} -} - if ( ( bEditMode && mrViewData.GetActivePart() == eWhich ) || !bFormulaMode ) GrabFocus(); @@ -2406,14 +2363,11 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) mrViewData.GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nPosX, nPosY ); ScDPObject* pDPObj = rDoc.GetDPAtCursor( nPosX, nPosY, nTab ); -bool bInDataPilotTable = (pDPObj != nullptr); - // double click (only left button) -// in the tiled rendering case, single click works this way too bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive(); bool bDouble = ( rMEvt.GetClicks() == 2 && rMEvt.IsLeft() ); -if ((bDouble || (bIsTiledRendering && !bInDataPilotTable)) +if ( bDouble && !bRefMode && (nMouseStatus == SC_GM_DBLDOWN || (bIsTiledRendering && nMouseStatus != SC_GM_URLDOWN)) && !pScMod->IsRefDialogOpen()) @@ -2473,19 +2427,8 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt ) bEditAllowed = false; } -// We don't want to activate the edit view for a single click in tiled rendering -// (bu
[Libreoffice-commits] core.git: include/vcl
include/vcl/mtfxmldump.hxx | 17 + 1 file changed, 17 insertions(+) New commits: commit 9067b827f013caafc61ef3d0d63305572a320ee2 Author: Jan Holesovsky AuthorDate: Thu Jan 6 11:55:57 2022 +0100 Commit: Miklos Vajna CommitDate: Thu Jan 6 16:52:59 2022 +0100 Add a comment how to use MetafileXmlDump in the tests Change-Id: I5088874be3fbf2ac114f5e5d0cd9571a3caf48dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128040 Reviewed-by: Miklos Vajna Tested-by: Jenkins diff --git a/include/vcl/mtfxmldump.hxx b/include/vcl/mtfxmldump.hxx index edfcaff55e4d..3425bccb710f 100644 --- a/include/vcl/mtfxmldump.hxx +++ b/include/vcl/mtfxmldump.hxx @@ -24,6 +24,23 @@ class SvStream; enum class MetaActionType; +/** + * Class that is used for testing of the decomposition into shapes. Used like + * this: + * + * std::shared_ptr xMetaFile = xDocShRef->GetPreviewMetaFile(); + * MetafileXmlDump dumper; + * xmlDocUniquePtr pXmlDoc = XmlTestTools::dumpAndParse(dumper, *xMetaFile); + * CPPUNIT_ASSERT(pXmlDoc); + * + * assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/textarray[1]", "x", "2093"); + * + * To see the dump to be able to create the assertXPath() call, use: + * + * xMetaFile->dumpAsXml(); + * + * and check the output in /tmp/metafile.xml + */ class VCL_DLLPUBLIC MetafileXmlDump final { o3tl::enumarray maFilter;
[Libreoffice-commits] core.git: Branch 'libreoffice-7-2' - filter/source
filter/source/config/fragments/types/writer_T602_Document.xcu |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit da66ff3d83e5e975383615081eeffd3fa2f668f9 Author: Jan Holesovsky AuthorDate: Thu Oct 7 15:12:18 2021 +0200 Commit: Xisco Fauli CommitDate: Thu Oct 14 20:48:19 2021 +0200 T602 is an obsolete format, don't assume .txt files are T602 Without this, when the user tries to open a 0-bytes .txt file, they are asked for a Save As operation after they hit the Save button. When we remove the 'txt' from the T602 detection, it rather asks if the user wants to use ODT or Plain text (and lose formatting). Change-Id: Ic48fa61064a9ed78c64d56bc8864f0e12528e072 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123216 Tested-by: Jenkins Reviewed-by: Jan Holesovsky (cherry picked from commit d602c433a08c6df28198ceb61b95f5c6d85d1a87) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123525 Reviewed-by: Xisco Fauli diff --git a/filter/source/config/fragments/types/writer_T602_Document.xcu b/filter/source/config/fragments/types/writer_T602_Document.xcu index c34f823da4ca..e9b3df39cf33 100644 --- a/filter/source/config/fragments/types/writer_T602_Document.xcu +++ b/filter/source/config/fragments/types/writer_T602_Document.xcu @@ -18,7 +18,7 @@ com.sun.star.comp.Writer.T602ImportFilter -602 txt +602 application/x-t602 true T602Document
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - filter/source
filter/source/config/fragments/types/writer_T602_Document.xcu |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 4feba9d025f1f97ea80854bc340ee0867eef8fff Author: Jan Holesovsky AuthorDate: Thu Oct 7 15:12:18 2021 +0200 Commit: Miklos Vajna CommitDate: Thu Oct 14 15:00:09 2021 +0200 T602 is an obsolete format, don't assume .txt files are T602 Without this, when the user tries to open a 0-bytes .txt file, they are asked for a Save As operation after they hit the Save button. When we remove the 'txt' from the T602 detection, it rather asks if the user wants to use ODT or Plain text (and lose formatting). Change-Id: Ic48fa61064a9ed78c64d56bc8864f0e12528e072 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123216 Tested-by: Jenkins Reviewed-by: Jan Holesovsky (cherry picked from commit d602c433a08c6df28198ceb61b95f5c6d85d1a87) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123401 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/filter/source/config/fragments/types/writer_T602_Document.xcu b/filter/source/config/fragments/types/writer_T602_Document.xcu index c34f823da4ca..e9b3df39cf33 100644 --- a/filter/source/config/fragments/types/writer_T602_Document.xcu +++ b/filter/source/config/fragments/types/writer_T602_Document.xcu @@ -18,7 +18,7 @@ com.sun.star.comp.Writer.T602ImportFilter -602 txt +602 application/x-t602 true T602Document
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-2021' - filter/source
filter/source/config/fragments/types/writer_T602_Document.xcu |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit bc714f2401d0f912c6cc38abc0bc21f36202b1c6 Author: Jan Holesovsky AuthorDate: Thu Oct 7 15:12:18 2021 +0200 Commit: Miklos Vajna CommitDate: Thu Oct 14 14:59:52 2021 +0200 T602 is an obsolete format, don't assume .txt files are T602 Without this, when the user tries to open a 0-bytes .txt file, they are asked for a Save As operation after they hit the Save button. When we remove the 'txt' from the T602 detection, it rather asks if the user wants to use ODT or Plain text (and lose formatting). Change-Id: Ic48fa61064a9ed78c64d56bc8864f0e12528e072 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123216 Tested-by: Jenkins Reviewed-by: Jan Holesovsky (cherry picked from commit d602c433a08c6df28198ceb61b95f5c6d85d1a87) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123402 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/filter/source/config/fragments/types/writer_T602_Document.xcu b/filter/source/config/fragments/types/writer_T602_Document.xcu index c34f823da4ca..e9b3df39cf33 100644 --- a/filter/source/config/fragments/types/writer_T602_Document.xcu +++ b/filter/source/config/fragments/types/writer_T602_Document.xcu @@ -18,7 +18,7 @@ com.sun.star.comp.Writer.T602ImportFilter -602 txt +602 application/x-t602 true T602Document
[Libreoffice-commits] core.git: external/libcmis
external/libcmis/UnpackedTarball_libcmis.mk |1 + external/libcmis/libcmis-boost-string.patch | 11 +++ 2 files changed, 12 insertions(+) New commits: commit c6564fb00a59224b223f4bbd8e58612ab3e40b0f Author: Jan Holesovsky AuthorDate: Thu Sep 2 14:54:22 2021 +0200 Commit: Jan Holesovsky CommitDate: Mon Sep 6 18:41:46 2021 +0200 Fix build with system boost Change-Id: I86ffabd30535b594a40d786f7c4602a5a54a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121513 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/external/libcmis/UnpackedTarball_libcmis.mk b/external/libcmis/UnpackedTarball_libcmis.mk index 8398853e4511..f48201d319d0 100644 --- a/external/libcmis/UnpackedTarball_libcmis.mk +++ b/external/libcmis/UnpackedTarball_libcmis.mk @@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libcmis, \ external/libcmis/libcmis_onedrive.patch \ external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 \ external/libcmis/libcmis_gdrive.patch.1 \ + external/libcmis/libcmis-boost-string.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libcmis/libcmis-boost-string.patch b/external/libcmis/libcmis-boost-string.patch new file mode 100644 index ..247d38a19759 --- /dev/null +++ b/external/libcmis/libcmis-boost-string.patch @@ -0,0 +1,11 @@ +--- a/src/libcmis/oauth2-handler.cxx b/src/libcmis/oauth2-handler.cxx +@@ -26,6 +26,8 @@ + * instead of those above. + */ + ++#include ++ + #include "oauth2-handler.hxx" + + #include
[Libreoffice-commits] core.git: Branch 'feature/themesupport2' - 504 commits - accessibility/inc accessibility/source avmedia/source basctl/source basegfx/CppunitTest_basegfx.mk basegfx/source basegfx
Rebased ref, commits from common ancestor: commit 6546856703cf1cec4493e8c357fa89fa7f53f8ca Author: Jan Holesovsky AuthorDate: Fri Apr 2 00:21:34 2021 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jul 1 09:53:47 2021 +0900 Unit test (with the content disabled so far) for the theming. Change-Id: Ie9e003df38e1bc766fb5323936138d3e0e664321 diff --git a/sw/qa/extras/ooxmlexport/data/themeOrange.docx b/sw/qa/extras/ooxmlexport/data/themeOrange.docx new file mode 100644 index ..e350c2676d41 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/themeOrange.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx index bafe3b511730..f29b156d171e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx @@ -587,6 +587,12 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(Test_ShadowDirection, "tdf142361ShadowDirect "rotWithShape", "0"); } +DECLARE_OOXMLEXPORT_TEST(testThemeOrange, "themeOrange.docx") +{ +// Assert that the theme color of the 1st paragraph is "accent1" +//CPPUNIT_ASSERT_EQUAL(getProperty(getParagraph(1), "CharColorTheme"), static_cast(4)); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit f02d56dca274961ad9ecc6b1eaeb2acc4dea25b3 Author: Tomaž Vajngerl AuthorDate: Wed Sep 23 13:38:38 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jul 1 09:53:30 2021 +0900 adjust the conversion from theme color type to the color set index Change-Id: I8c54c8935de8acc3e2b302e10327aa2488f9ac85 diff --git a/writerfilter/source/dmapper/TDefTableHandler.cxx b/writerfilter/source/dmapper/TDefTableHandler.cxx index 42ab0d61bd83..4bc8faf7e3d5 100644 --- a/writerfilter/source/dmapper/TDefTableHandler.cxx +++ b/writerfilter/source/dmapper/TDefTableHandler.cxx @@ -298,15 +298,15 @@ sal_Int16 TDefTableHandler::getThemeColorTypeIndex(sal_Int32 nType) case NS_ooxml::LN_Value_St_ThemeColor_followedHyperlink: return 11; case NS_ooxml::LN_Value_St_ThemeColor_none: -return 12; +return -1; case NS_ooxml::LN_Value_St_ThemeColor_background1: -return 13; +return 0; case NS_ooxml::LN_Value_St_ThemeColor_text1: -return 14; +return 1; case NS_ooxml::LN_Value_St_ThemeColor_background2: -return 15; +return 2; case NS_ooxml::LN_Value_St_ThemeColor_text2: -return 16; +return 3; default: break; } commit d480eea0e754d0849ff59b391bd37abf043d47cc Author: Tomaž Vajngerl AuthorDate: Wed Sep 23 13:37:43 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jul 1 09:53:29 2021 +0900 convert tint value from ooxml to the value we support Change-Id: I5a79ca434be16f9dccc5aa6118a7efbf4544f0b1 diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index a28e3dae2838..8ba4881c4e13 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -999,7 +999,7 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) case NS_ooxml::LN_CT_Color_themeTint: if (m_pImpl->GetTopContext()) { - m_pImpl->GetTopContext()->Insert(PROP_CHAR_COLOR_TINT_OR_SHADE, uno::makeAny(sal_Int16(nIntValue * 1 / 256))); + m_pImpl->GetTopContext()->Insert(PROP_CHAR_COLOR_TINT_OR_SHADE, uno::makeAny(sal_Int16((256 - nIntValue) * 1 / 256))); } m_pImpl->appendGrabBag(m_pImpl->m_aSubInteropGrabBag, "themeTint", OUString::number(nIntValue, 16)); break; commit 4e553ab0e53feb30e17048da065921ad9cb78054 Author: Tomaž Vajngerl AuthorDate: Wed Sep 23 13:35:56 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jul 1 09:53:29 2021 +0900 check that the color index is valid Change-Id: Id5c7c83f50e1611af12f3b25e6c9a335a8353ba0 diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx index 9117f20a7013..ce42983879ce 100644 --- a/sw/source/uibase/sidebar/ThemePanel.cxx +++ b/sw/source/uibase/sidebar/ThemePanel.cxx @@ -232,9 +232,9 @@ void changeFont(SwFormat* pFormat, SwDocStyleSheet const * pStyle, FontSet const void changeColor(SwTextFormatColl* pCollection, svx::ColorSet const& rColorSet, StyleRedefinition* /*pRedefinition*/) { SvxColorItem aColorItem(pCollection->GetColor()); -if (aColorItem.GetThemeIndex() >= 0) +sal_Int16 nIndex = aColorItem.GetThemeIndex(); +if (nIndex >= 0 && nIndex < 12) { -sal_Int16 nIndex = aColorItem.GetThemeIndex(); Color aColor = Color(rColorSet.getColor(nIndex)); aColor.ApplyTintOrShade(aColorItem.GetTintOrShade()); aColorItem.SetVal
[Libreoffice-commits] core.git: Branch 'feature/themesupport2' - 9 commits - editeng/source include/editeng offapi/com svx/sdi svx/source sw/qa sw/source writerfilter/source
Rebased ref, commits from common ancestor: commit 18da302474cc58314649a3bc6700651ed2d44c15 Author: Jan Holesovsky AuthorDate: Fri Apr 2 00:21:34 2021 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jun 17 13:15:19 2021 +0900 Unit test (with the content disabled so far) for the theming. Change-Id: Ie9e003df38e1bc766fb5323936138d3e0e664321 diff --git a/sw/qa/extras/ooxmlexport/data/themeOrange.docx b/sw/qa/extras/ooxmlexport/data/themeOrange.docx new file mode 100644 index ..e350c2676d41 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/themeOrange.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx index b550e62ef6a2..7af07caa58d8 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx @@ -518,6 +518,12 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(Test_ShadowDirection, "tdf142361ShadowDirect "rotWithShape", "0"); } +DECLARE_OOXMLEXPORT_TEST(testThemeOrange, "themeOrange.docx") +{ +// Assert that the theme color of the 1st paragraph is "accent1" +//CPPUNIT_ASSERT_EQUAL(getProperty(getParagraph(1), "CharColorTheme"), static_cast(4)); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit afcbc832cae0cd825e5c69748f8a7df2516bb689 Author: Tomaž Vajngerl AuthorDate: Thu Sep 24 12:32:14 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jun 17 13:15:19 2021 +0900 Improve preview of theme color sets - add color set name Change-Id: I1f7b3668ba9dfbab1da283741e99754de2d6be47 diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx index 09a7665950c9..d41db8ffd659 100644 --- a/sw/source/uibase/sidebar/ThemePanel.cxx +++ b/sw/source/uibase/sidebar/ThemePanel.cxx @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -371,17 +372,39 @@ BitmapEx GenerateColorPreview(const svx::ColorSet& rColorSet) { ScopedVclPtrInstance pVirtualDev(*Application::GetDefaultDevice()); float fScaleFactor = pVirtualDev->GetDPIScaleFactor(); -tools::Long BORDER = 2 * fScaleFactor; -tools::Long SIZE = 12 * fScaleFactor; +long BORDER = 3 * fScaleFactor; +long SIZE = 14 * fScaleFactor; +long LABEL_HEIGHT = 16 * fScaleFactor; +long LABEL_TEXT_HEIGHT = 14 * fScaleFactor; -Size aSize(BORDER * 7 + SIZE * 6, BORDER * 3 + SIZE * 2); +Size aSize(BORDER * 7 + SIZE * 6 + BORDER * 2, BORDER * 3 + SIZE * 2 + LABEL_HEIGHT); pVirtualDev->SetOutputSizePixel(aSize); + pVirtualDev->SetBackground(Wallpaper(Application::GetSettings().GetStyleSettings().GetFaceColor())); +pVirtualDev->Erase(); tools::Long x = BORDER; -tools::Long y1 = BORDER; +tools::Long y1 = BORDER + LABEL_HEIGHT; tools::Long y2 = y1 + SIZE + BORDER; pVirtualDev->SetLineColor(COL_LIGHTGRAY); +pVirtualDev->SetFillColor(COL_LIGHTGRAY); +tools::Rectangle aNameRect(Point(0, 0), Size(aSize.Width(), LABEL_HEIGHT)); +pVirtualDev->DrawRect(aNameRect); + +vcl::Font aFont; +OUString aName = rColorSet.getName(); +aFont.SetFontHeight(LABEL_TEXT_HEIGHT); +pVirtualDev->SetFont(aFont); + +Size aTextSize(pVirtualDev->GetTextWidth(aName), pVirtualDev->GetTextHeight()); + +Point aPoint((aNameRect.GetWidth() / 2.0) - (aTextSize.Width() / 2.0), + (aNameRect.GetHeight() / 2.0) - (aTextSize.Height() / 2.0)); + +pVirtualDev->DrawText(aPoint, aName); + +pVirtualDev->SetLineColor(COL_LIGHTGRAY); +pVirtualDev->SetFillColor(); for (sal_uInt32 i = 0; i < 12; i += 2) { @@ -392,6 +415,8 @@ BitmapEx GenerateColorPreview(const svx::ColorSet& rColorSet) pVirtualDev->DrawRect(tools::Rectangle(x, y2, x + SIZE, y2 + SIZE)); x += SIZE + BORDER; +if (i == 2 || i == 8) +x += BORDER; } return pVirtualDev->GetBitmapEx(Point(), aSize); @@ -419,6 +444,7 @@ ThemePanel::ThemePanel(weld::Widget* pParent) { mxValueSetColors->SetColCount(2); mxValueSetColors->SetLineCount(3); + mxValueSetColors->SetColor(Application::GetSettings().GetStyleSettings().GetFaceColor()); mxApplyButton->connect_clicked(LINK(this, ThemePanel, ClickHdl)); mxListBoxFonts->connect_row_activated(LINK(this, ThemePanel, DoubleClickHdl)); commit bc94559bc118da7957799f36cf721cc2e7335eb7 Author: Tomaž Vajngerl AuthorDate: Thu Sep 24 12:30:10 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Thu Jun 17 13:15:19 2021 +0900 StylePresets: set bacground color for ValueSet Change-Id: Ifbaab139235dbe2fdcebf278bce2c91c2b744aa6 diff --git a/sw/source/uibase/sidebar/StylePresetsPanel.cxx b/sw/source/uibase/sidebar/StylePresetsPanel.cxx index 79b1b93ed34c..981f26b3e839 100644 --- a/sw/source/uibase/sidebar/StylePresetsPanel.cxx +++ b/sw/source/uibase/sidebar/StylePresetsPanel.cxx @@ -13,8 +13,9 @@ #i
[Libreoffice-commits] core.git: Branch 'feature/themesupport2' - 2834 commits - accessibility/inc accessibility/README.md accessibility/source android/.gitignore android/README.md android/source anima
Rebased ref, commits from common ancestor: commit 42fafd1cb63a63714d6f088201b06c7d5c10e0e1 Author: Jan Holesovsky AuthorDate: Fri Apr 2 00:21:34 2021 +0200 Commit: Tomaž Vajngerl CommitDate: Wed Jun 16 23:05:18 2021 +0900 Unit test (with the content disabled so far) for the theming. Change-Id: Ie9e003df38e1bc766fb5323936138d3e0e664321 diff --git a/sw/qa/extras/ooxmlexport/data/themeOrange.docx b/sw/qa/extras/ooxmlexport/data/themeOrange.docx new file mode 100644 index ..e350c2676d41 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/themeOrange.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx index b550e62ef6a2..7af07caa58d8 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport16.cxx @@ -518,6 +518,12 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(Test_ShadowDirection, "tdf142361ShadowDirect "rotWithShape", "0"); } +DECLARE_OOXMLEXPORT_TEST(testThemeOrange, "themeOrange.docx") +{ +// Assert that the theme color of the 1st paragraph is "accent1" +//CPPUNIT_ASSERT_EQUAL(getProperty(getParagraph(1), "CharColorTheme"), static_cast(4)); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 421e722049c937e24d8b4740e14de4e172845c16 Author: Tomaž Vajngerl AuthorDate: Thu Sep 24 12:32:14 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Wed Jun 16 23:05:17 2021 +0900 Improve preview of theme color sets - add color set name Change-Id: I1f7b3668ba9dfbab1da283741e99754de2d6be47 diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx index 09a7665950c9..d41db8ffd659 100644 --- a/sw/source/uibase/sidebar/ThemePanel.cxx +++ b/sw/source/uibase/sidebar/ThemePanel.cxx @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -371,17 +372,39 @@ BitmapEx GenerateColorPreview(const svx::ColorSet& rColorSet) { ScopedVclPtrInstance pVirtualDev(*Application::GetDefaultDevice()); float fScaleFactor = pVirtualDev->GetDPIScaleFactor(); -tools::Long BORDER = 2 * fScaleFactor; -tools::Long SIZE = 12 * fScaleFactor; +long BORDER = 3 * fScaleFactor; +long SIZE = 14 * fScaleFactor; +long LABEL_HEIGHT = 16 * fScaleFactor; +long LABEL_TEXT_HEIGHT = 14 * fScaleFactor; -Size aSize(BORDER * 7 + SIZE * 6, BORDER * 3 + SIZE * 2); +Size aSize(BORDER * 7 + SIZE * 6 + BORDER * 2, BORDER * 3 + SIZE * 2 + LABEL_HEIGHT); pVirtualDev->SetOutputSizePixel(aSize); + pVirtualDev->SetBackground(Wallpaper(Application::GetSettings().GetStyleSettings().GetFaceColor())); +pVirtualDev->Erase(); tools::Long x = BORDER; -tools::Long y1 = BORDER; +tools::Long y1 = BORDER + LABEL_HEIGHT; tools::Long y2 = y1 + SIZE + BORDER; pVirtualDev->SetLineColor(COL_LIGHTGRAY); +pVirtualDev->SetFillColor(COL_LIGHTGRAY); +tools::Rectangle aNameRect(Point(0, 0), Size(aSize.Width(), LABEL_HEIGHT)); +pVirtualDev->DrawRect(aNameRect); + +vcl::Font aFont; +OUString aName = rColorSet.getName(); +aFont.SetFontHeight(LABEL_TEXT_HEIGHT); +pVirtualDev->SetFont(aFont); + +Size aTextSize(pVirtualDev->GetTextWidth(aName), pVirtualDev->GetTextHeight()); + +Point aPoint((aNameRect.GetWidth() / 2.0) - (aTextSize.Width() / 2.0), + (aNameRect.GetHeight() / 2.0) - (aTextSize.Height() / 2.0)); + +pVirtualDev->DrawText(aPoint, aName); + +pVirtualDev->SetLineColor(COL_LIGHTGRAY); +pVirtualDev->SetFillColor(); for (sal_uInt32 i = 0; i < 12; i += 2) { @@ -392,6 +415,8 @@ BitmapEx GenerateColorPreview(const svx::ColorSet& rColorSet) pVirtualDev->DrawRect(tools::Rectangle(x, y2, x + SIZE, y2 + SIZE)); x += SIZE + BORDER; +if (i == 2 || i == 8) +x += BORDER; } return pVirtualDev->GetBitmapEx(Point(), aSize); @@ -419,6 +444,7 @@ ThemePanel::ThemePanel(weld::Widget* pParent) { mxValueSetColors->SetColCount(2); mxValueSetColors->SetLineCount(3); + mxValueSetColors->SetColor(Application::GetSettings().GetStyleSettings().GetFaceColor()); mxApplyButton->connect_clicked(LINK(this, ThemePanel, ClickHdl)); mxListBoxFonts->connect_row_activated(LINK(this, ThemePanel, DoubleClickHdl)); commit 8d02d87a4d04b46607844c427db414b769355381 Author: Tomaž Vajngerl AuthorDate: Thu Sep 24 12:30:10 2015 +0200 Commit: Tomaž Vajngerl CommitDate: Wed Jun 16 23:05:16 2021 +0900 StylePresets: set bacground color for ValueSet Change-Id: Ifbaab139235dbe2fdcebf278bce2c91c2b744aa6 diff --git a/sw/source/uibase/sidebar/StylePresetsPanel.cxx b/sw/source/uibase/sidebar/StylePresetsPanel.cxx index 79b1b93ed34c..981f26b3e839 100644 --- a/sw/source/uibase/sidebar/StylePresetsPanel.cxx +++ b/sw/source/uibase/sidebar/StylePresetsPanel.cxx @@ -13,8 +13,9 @@ #i
[Libreoffice-commits] core.git: sc/source
sc/source/ui/app/inputhdl.cxx |5 +++-- sc/source/ui/unoobj/docuno.cxx |5 + 2 files changed, 8 insertions(+), 2 deletions(-) New commits: commit 0dc9da5df470b9c345e78dbe9553d81b9e4a7435 Author: Jan Holesovsky AuthorDate: Wed Mar 24 15:39:05 2021 +0100 Commit: Jan Holesovsky CommitDate: Thu Apr 29 17:53:57 2021 +0200 lok: Disable the "AutoInput" again. This partially reverts "lok: sc - suppress LOK editengine events for the calc input bar." The feature itself is very problematic in Online: 1) causes unwanted jumps to other cells, 2) causes the selection blinking in the cell when typing, and 3) it is very annoying in the form that in which it is implemented in LibreOffice anyway, compared to other office suites. Let's disable it, and enable again when we address the above issues. This (partially) reverts commit 91319ad56887f932b2da334db560d5d0a79a0280. Change-Id: I2234455c29069f74d13896474f3499035935931b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113047 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky (cherry picked from commit 65990058f041c3f1d280a69d411eb4ceacf5a721) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113112 Tested-by: Jenkins diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index 3abf07641963..bca87cd88aaa 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -801,7 +801,6 @@ ScInputHandler::ScInputHandler() if (comphelper::LibreOfficeKit::isActive()) { ScInputHandler::bOptLoaded = true;// Evaluate App options -ScInputHandler::bAutoComplete = true; // Is set in KeyInput } } @@ -2707,7 +2706,9 @@ void ScInputHandler::UpdateFormulaMode() if (pInputWin) pInputWin->SetFormulaMode(true); -if ( bAutoComplete ) +// in LOK, we always need to perform the GetFormulaData() call so +// that the formula insertion works +if (bAutoComplete || comphelper::LibreOfficeKit::isActive()) GetFormulaData(); UpdateParenthesis(); diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index 371cb395e139..1729c2ca1cdb 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1179,6 +1179,11 @@ void ScModelObj::initializeForTiledRendering(const css::uno::SequenceGetAppOptions() ); +aAppOptions.SetAutoComplete(false); +SC_MOD()->SetAppOptions(aAppOptions); + for (const beans::PropertyValue& rValue : rArguments) { if (rValue.Name == ".uno:SpellOnline" && rValue.Value.has()) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/co-2021' - sw/source
sw/source/core/doc/docredln.cxx | 16 1 file changed, 12 insertions(+), 4 deletions(-) New commits: commit dc401a7b0ae419a8f8bb433850046281c61bca74 Author: Jan Holesovsky AuthorDate: Tue Nov 24 15:34:55 2020 +0100 Commit: Andras Timar CommitDate: Thu Apr 8 00:04:02 2021 +0200 lok: Don't even iterate through the redlines when they are disabled. It is not necessary, when we are not issuing any output anyway. Change-Id: Id952549befb1bef04a2dd9237d286922939eaae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106509 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna (cherry picked from commit 8f44a939ad09d0365607ae8960e2abfe77e3fe72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106517 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index a41348027471..354aa058d9ed 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -341,14 +341,22 @@ void lcl_LOKInvalidateStartEndFrames(SwShellCursor& rCursor) FRM_CNTNT, &rCursor.GetEndPos()); } +bool lcl_LOKRedlineNotificationEnabled() +{ +static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; +if (comphelper::LibreOfficeKit::isActive() && !bDisableRedlineComments) +return true; + +return false; +} + } // anonymous namespace /// Emits LOK notification about one addition / removal of a redline item. void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRedline* pRedline) { // Disable since usability is very low beyond some small number of changes. -static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; -if (!comphelper::LibreOfficeKit::isActive() || bDisableRedlineComments) +if (!lcl_LOKRedlineNotificationEnabled()) return; boost::property_tree::ptree aRedline; @@ -1038,7 +1046,7 @@ SwRangeRedline::~SwRangeRedline() void MaybeNotifyRedlineModification(SwRangeRedline& rRedline, SwDoc& rDoc) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; const SwRedlineTable& rRedTable = rDoc.getIDocumentRedlineAccess().GetRedlineTable(); @@ -1054,7 +1062,7 @@ void MaybeNotifyRedlineModification(SwRangeRedline& rRedline, SwDoc& rDoc) void SwRangeRedline::MaybeNotifyRedlinePositionModification(tools::Long nTop) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; if(!m_oLOKLastNodeTop || *m_oLOKLastNodeTop != nTop) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Changes to 'feature/themesupport2'
New branch 'feature/themesupport2' available with the following commits: commit fafb9498ee7a83c77b45e161f4b1372a2d25cb0f Author: Jan Holesovsky Date: Fri Apr 2 00:21:34 2021 +0200 Unit test (with the content disabled so far) for the theming. Change-Id: Ie9e003df38e1bc766fb5323936138d3e0e664321 commit ea7755fcc195d48959c2ab1341031cd63fd8157d Author: Tomaž Vajngerl Date: Thu Sep 24 12:32:14 2015 +0200 Improve preview of theme color sets - add color set name Change-Id: I1f7b3668ba9dfbab1da283741e99754de2d6be47 commit 5b562d0f69153aa3e8b4657985b607ea7b3f1d6e Author: Tomaž Vajngerl Date: Thu Sep 24 12:30:10 2015 +0200 StylePresets: set bacground color for ValueSet Change-Id: Ifbaab139235dbe2fdcebf278bce2c91c2b744aa6 commit 90a50a8098b958f5439ce67c823240427c348142 Author: Tomaž Vajngerl Date: Wed Sep 23 13:38:38 2015 +0200 adjust the conversion from theme color type to the color set index Change-Id: I8c54c8935de8acc3e2b302e10327aa2488f9ac85 commit 8d9ded86502cb72a9990ee340d47674825ac7bc7 Author: Tomaž Vajngerl Date: Wed Sep 23 13:37:43 2015 +0200 convert tint value from ooxml to the value we support Change-Id: I5a79ca434be16f9dccc5aa6118a7efbf4544f0b1 commit f26ebb15e0a5d582363de86c36614811d75b406c Author: Tomaž Vajngerl Date: Wed Sep 23 13:35:56 2015 +0200 check that the color index is valid Change-Id: Id5c7c83f50e1611af12f3b25e6c9a335a8353ba0 commit 6a2bd264bc5b9560788a9c10b81a80ab4ac20ef9 Author: Tomaž Vajngerl Date: Wed Sep 23 13:33:59 2015 +0200 swap text and background colors in colorsets Change-Id: I1e1da85d6c58e3ed5ab4c44c2ab0ae7c3b080251 commit ecd52b7ae86890afed422f498bd272466069533d Author: Tomaž Vajngerl Date: Sun Sep 20 19:27:09 2015 +0200 Support reading back theme color from an ooxml document ooxml supports theme colors and tint/shade value that additionally changed the theme color. Read back which theme color + tint/shade value was applied in the resulting color and add this attributes as properties to be used by writer. In sidebar theme panel the changing the theme colors now doesn't takes this into account and changes the colors correctly. Change-Id: I6703e86b1fc6b2ba07f3023ec48e619aec961ff1 commit 91f29d5b2585dbe51e2bc44a32a52bdbe5378477 Author: Tomaž Vajngerl Date: Sun Sep 20 19:20:59 2015 +0200 Theme color and tint/shade attribute for SvxColorItem To support theme colors the SvxColorItem must be extended with an optional attribute theme index to define the index to which theme color current color belongs and an optional tint/shade attribute define how much the color ha been additionally tinted or shaded. Change-Id: I87b7788ead25f956eeec835ba80df5e913790697 ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - sc/source
sc/source/ui/app/inputhdl.cxx |5 +++-- sc/source/ui/unoobj/docuno.cxx |5 + 2 files changed, 8 insertions(+), 2 deletions(-) New commits: commit 65990058f041c3f1d280a69d411eb4ceacf5a721 Author: Jan Holesovsky AuthorDate: Wed Mar 24 15:39:05 2021 +0100 Commit: Jan Holesovsky CommitDate: Thu Mar 25 15:51:48 2021 +0100 lok: Disable the "AutoInput" again. This partially reverts "lok: sc - suppress LOK editengine events for the calc input bar." The feature itself is very problematic in Online: 1) causes unwanted jumps to other cells, 2) causes the selection blinking in the cell when typing, and 3) it is very annoying in the form that in which it is implemented in LibreOffice anyway, compared to other office suites. Let's disable it, and enable again when we address the above issues. This (partially) reverts commit 91319ad56887f932b2da334db560d5d0a79a0280. Change-Id: I2234455c29069f74d13896474f3499035935931b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113047 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index 7e0bb9272970..954af2a304cd 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -806,7 +806,6 @@ ScInputHandler::ScInputHandler() if (comphelper::LibreOfficeKit::isActive()) { ScInputHandler::bOptLoaded = true;// Evaluate App options -ScInputHandler::bAutoComplete = true; // Is set in KeyInput } } @@ -2680,7 +2679,9 @@ void ScInputHandler::UpdateFormulaMode() if (pInputWin) pInputWin->SetFormulaMode(true); -if ( bAutoComplete ) +// in LOK, we always need to perform the GetFormulaData() call so +// that the formula insertion works +if (bAutoComplete || comphelper::LibreOfficeKit::isActive()) GetFormulaData(); UpdateParenthesis(); diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index 0e74d7dd5cda..9d2539a25bcd 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1177,6 +1177,11 @@ void ScModelObj::initializeForTiledRendering(const css::uno::SequenceGetAppOptions() ); +aAppOptions.SetAutoComplete(false); +SC_MOD()->SetAppOptions(aAppOptions); + for (const beans::PropertyValue& rValue : rArguments) { if (rValue.Name == ".uno:SpellOnline" && rValue.Value.has()) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - sw/source
sw/source/core/doc/docredln.cxx | 16 1 file changed, 12 insertions(+), 4 deletions(-) New commits: commit 8e996d7aa41d29b46964c656f4f959316e5ad265 Author: Jan Holesovsky AuthorDate: Tue Nov 24 15:34:55 2020 +0100 Commit: Miklos Vajna CommitDate: Thu Nov 26 13:50:32 2020 +0100 lok: Don't even iterate through the redlines when they are disabled. It is not necessary, when we are not issuing any output anyway. Change-Id: Id952549befb1bef04a2dd9237d286922939eaae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106509 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna (cherry picked from commit 8f44a939ad09d0365607ae8960e2abfe77e3fe72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106516 diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index a3fabfaf514d..174437ea4156 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -355,14 +355,22 @@ void lcl_LOKInvalidateStartEndFrames(SwShellCursor& rCursor) FRM_CNTNT, &rCursor.GetEndPos()); } +bool lcl_LOKRedlineNotificationEnabled() +{ +static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; +if (comphelper::LibreOfficeKit::isActive() && !bDisableRedlineComments) +return true; + +return false; +} + } // anonymous namespace /// Emits LOK notification about one addition / removal of a redline item. void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRedline* pRedline) { // Disable since usability is very low beyond some small number of changes. -static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; -if (!comphelper::LibreOfficeKit::isActive() || bDisableRedlineComments) +if (!lcl_LOKRedlineNotificationEnabled()) return; boost::property_tree::ptree aRedline; @@ -1091,7 +1099,7 @@ SwRangeRedline::~SwRangeRedline() void MaybeNotifyRedlineModification(SwRangeRedline* pRedline, SwDoc* pDoc) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; const SwRedlineTable& rRedTable = pDoc->getIDocumentRedlineAccess().GetRedlineTable(); @@ -1107,7 +1115,7 @@ void MaybeNotifyRedlineModification(SwRangeRedline* pRedline, SwDoc* pDoc) void SwRangeRedline::MaybeNotifyRedlinePositionModification(long nTop) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; if(!m_oLOKLastNodeTop || *m_oLOKLastNodeTop != nTop) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: sw/source
sw/source/core/doc/docredln.cxx | 16 1 file changed, 12 insertions(+), 4 deletions(-) New commits: commit 56e7c74b2994ead8b1f376b65549ad8a623018cd Author: Jan Holesovsky AuthorDate: Tue Nov 24 15:34:55 2020 +0100 Commit: Jan Holesovsky CommitDate: Wed Nov 25 11:02:35 2020 +0100 lok: Don't even iterate through the redlines when they are disabled. It is not necessary, when we are not issuing any output anyway. Change-Id: Id952549befb1bef04a2dd9237d286922939eaae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106509 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna (cherry picked from commit 8f44a939ad09d0365607ae8960e2abfe77e3fe72) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106517 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index ab57f1bb6b50..8a0f8d4b3597 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -341,14 +341,22 @@ void lcl_LOKInvalidateStartEndFrames(SwShellCursor& rCursor) FRM_CNTNT, &rCursor.GetEndPos()); } +bool lcl_LOKRedlineNotificationEnabled() +{ +static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; +if (comphelper::LibreOfficeKit::isActive() && !bDisableRedlineComments) +return true; + +return false; +} + } // anonymous namespace /// Emits LOK notification about one addition / removal of a redline item. void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRedline* pRedline) { // Disable since usability is very low beyond some small number of changes. -static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; -if (!comphelper::LibreOfficeKit::isActive() || bDisableRedlineComments) +if (!lcl_LOKRedlineNotificationEnabled()) return; boost::property_tree::ptree aRedline; @@ -1044,7 +1052,7 @@ SwRangeRedline::~SwRangeRedline() void MaybeNotifyRedlineModification(SwRangeRedline& rRedline, SwDoc& rDoc) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; const SwRedlineTable& rRedTable = rDoc.getIDocumentRedlineAccess().GetRedlineTable(); @@ -1060,7 +1068,7 @@ void MaybeNotifyRedlineModification(SwRangeRedline& rRedline, SwDoc& rDoc) void SwRangeRedline::MaybeNotifyRedlinePositionModification(tools::Long nTop) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; if(!m_oLOKLastNodeTop || *m_oLOKLastNodeTop != nTop) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - sw/source
sw/source/core/doc/docredln.cxx | 16 1 file changed, 12 insertions(+), 4 deletions(-) New commits: commit 8f44a939ad09d0365607ae8960e2abfe77e3fe72 Author: Jan Holesovsky AuthorDate: Tue Nov 24 15:34:55 2020 +0100 Commit: Miklos Vajna CommitDate: Tue Nov 24 16:40:01 2020 +0100 lok: Don't even iterate through the redlines when they are disabled. It is not necessary, when we are not issuing any output anyway. Change-Id: Id952549befb1bef04a2dd9237d286922939eaae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106509 Tested-by: Jenkins CollaboraOffice Reviewed-by: Miklos Vajna diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index b3a1e6d6337b..3987957d920a 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -339,14 +339,22 @@ void lcl_LOKInvalidateStartEndFrames(SwShellCursor& rCursor) FRM_CNTNT, &rCursor.GetEndPos()); } +bool lcl_LOKRedlineNotificationEnabled() +{ +static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; +if (comphelper::LibreOfficeKit::isActive() && !bDisableRedlineComments) +return true; + +return false; +} + } // anonymous namespace /// Emits LOK notification about one addition / removal of a redline item. void SwRedlineTable::LOKRedlineNotification(RedlineNotification nType, SwRangeRedline* pRedline) { // Disable since usability is very low beyond some small number of changes. -static bool bDisableRedlineComments = getenv("DISABLE_REDLINE") != nullptr; -if (!comphelper::LibreOfficeKit::isActive() || bDisableRedlineComments) +if (!lcl_LOKRedlineNotificationEnabled()) return; boost::property_tree::ptree aRedline; @@ -1031,7 +1039,7 @@ SwRangeRedline::~SwRangeRedline() void MaybeNotifyRedlineModification(SwRangeRedline* pRedline, SwDoc* pDoc) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; const SwRedlineTable& rRedTable = pDoc->getIDocumentRedlineAccess().GetRedlineTable(); @@ -1047,7 +1055,7 @@ void MaybeNotifyRedlineModification(SwRangeRedline* pRedline, SwDoc* pDoc) void SwRangeRedline::MaybeNotifyRedlinePositionModification(long nTop) { -if (!comphelper::LibreOfficeKit::isActive()) +if (!lcl_LOKRedlineNotificationEnabled()) return; if(!m_oLOKLastNodeTop || *m_oLOKLastNodeTop != nTop) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - chart2/source desktop/source
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 20 +--- desktop/source/lib/init.cxx | 10 +++- 2 files changed, 21 insertions(+), 9 deletions(-) New commits: commit c5bd74c0ace401812be416a295c71a6604f8240d Author: Jan Holesovsky AuthorDate: Fri Oct 16 14:34:43 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Nov 18 19:52:08 2020 +0100 lok: Make the chart (sub)title work even from the mobile-wizard. Change-Id: Ic6346a403639e283ade47429f581f91e7a468f63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104436 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105617 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 68175acd46d2..a4771b76ee0c 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -427,19 +427,23 @@ void ChartElementsPanel::updateData() bool hasTitle = isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE); mpCBTitle->Check(hasTitle); -if (!mpEditTitle->HasFocus()) -{ - mpEditTitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel))); + +OUString title = mpEditTitle->GetText(); +OUString newTitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel)); +if (title != newTitle) +mpEditTitle->SetText(newTitle); +if (mpEditTitle->IsEnabled() != hasTitle) mpEditTitle->Enable(hasTitle); -} bool hasSubtitle = isTitleVisisble(mxModel, TitleHelper::SUB_TITLE); mpCBSubtitle->Check(hasSubtitle); -if (!mpEditSubtitle->HasFocus()) -{ - mpEditSubtitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel))); + +OUString subtitle = mpEditSubtitle->GetText(); +OUString newSubtitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel)); +if (subtitle != newSubtitle) +mpEditSubtitle->SetText(newSubtitle); +if (mpEditSubtitle->IsEnabled() != hasSubtitle) mpEditSubtitle->Enable(hasSubtitle); -} mpCBXAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::X_AXIS_TITLE)); mpCBYAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Y_AXIS_TITLE)); diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index f527656333b6..b37c85ffbc63 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3724,6 +3724,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long { static const OUString sClickAction("CLICK"); static const OUString sSelectAction("SELECT"); +static const OUString sSetAction("SET"); static const OUString sClearAction("CLEAR"); static const OUString sTypeAction("TYPE"); static const OUString sUpAction("UP"); @@ -3749,6 +3750,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long if (!bIsWeldedDialog) { +OUString sControlType = aMap["type"]; OUString sAction((aMap.find("cmd") != aMap.end())? aMap["cmd"]: ""); WindowUIObject aUIObject(pWindow); std::unique_ptr pUIWindow(aUIObject.get_visible_child(aMap["id"])); @@ -3774,9 +3776,15 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long { aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sClearAction, aMap); +pUIWindow->execute(sClearAction, aMap); // FIXME - change the "CLEAR"&"TYPE" to "SET" and test thoroughly; the "TYPE" really types a character by character pUIWindow->execute(sTypeAction, aMap); } +else if (sControlType == "edit" && sAction == "change") // FIXME - shouldn't "edit" issue "set" instead of "change"? +{ +aMap["TEXT"] = aMap["data"]; + +pUIWindow->execute(sSetAction, aMap); +} else if (sAction == "value") { aMap["VALUE"] = aMap["data"]; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - desktop/source
desktop/source/lib/init.cxx | 50 ++-- 1 file changed, 21 insertions(+), 29 deletions(-) New commits: commit cd475b517abcace4ed79bfd129e4487d60513b30 Author: Jan Holesovsky AuthorDate: Thu Oct 15 18:05:35 2020 +0200 Commit: Muhammet Kara CommitDate: Mon Nov 16 01:11:08 2020 +0100 lok: Simplify the check for command in sendDialogEvent. Change-Id: I1d2c967b68113d2528b80e91c32170f749ed9335 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104434 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105615 Tested-by: Jenkins CollaboraOffice Reviewed-by: Muhammet Kara diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 210ce2d84d34..f527656333b6 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3749,43 +3749,35 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long if (!bIsWeldedDialog) { +OUString sAction((aMap.find("cmd") != aMap.end())? aMap["cmd"]: ""); WindowUIObject aUIObject(pWindow); std::unique_ptr pUIWindow(aUIObject.get_visible_child(aMap["id"])); if (pUIWindow) { bool bIsClickAction = false; -if (aMap.find("cmd") != aMap.end()) { -if (aMap["cmd"] == "selected") -{ -aMap["POS"] = aMap["data"]; -aMap["TEXT"] = aMap["data"]; +if (sAction == "selected") +{ +aMap["POS"] = aMap["data"]; +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sSelectAction, aMap); -} -else if (aMap["cmd"] == "plus") -{ -pUIWindow->execute(sUpAction, aMap); -} -else if (aMap["cmd"] == "minus") -{ -pUIWindow->execute(sDownAction, aMap); -} -else if (aMap["cmd"] == "set") -{ -aMap["TEXT"] = aMap["data"]; +pUIWindow->execute(sSelectAction, aMap); +} +else if (sAction == "plus") +{ +pUIWindow->execute(sUpAction, aMap); +} +else if (sAction == "minus") +{ +pUIWindow->execute(sDownAction, aMap); +} +else if (sAction == "set") +{ +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sClearAction, aMap); -pUIWindow->execute(sTypeAction, aMap); -} -else if (aMap["cmd"] == "value") -{ -aMap["VALUE"] = aMap["data"]; -pUIWindow->execute(sValue, aMap); -} -else -bIsClickAction = true; +pUIWindow->execute(sClearAction, aMap); +pUIWindow->execute(sTypeAction, aMap); } -else if (aMap["cmd"] == "value") +else if (sAction == "value") { aMap["VALUE"] = aMap["data"]; pUIWindow->execute(sValue, aMap); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: sw/qa vcl/source
sw/qa/uitest/writer_tests3/customizeDialog.py |2 +- vcl/source/uitest/uiobject.cxx| 13 - 2 files changed, 13 insertions(+), 2 deletions(-) New commits: commit 706aff509857a79cbd93a76410e63931747369f5 Author: Jan Holesovsky AuthorDate: Fri Oct 16 14:27:27 2020 +0200 Commit: Andras Timar CommitDate: Sun Nov 15 15:41:56 2020 +0100 uitest: Rename the "SET" to "TYPE" for Edit boxes + implement the real "SET". To be consistent with the other controls: "TYPE" actually enters the characters one by one, while "SET" sets it as a whole. Change-Id: I967dc270b1d92fe76107732a511cc3e70d3d65c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104435 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105739 Tested-by: Jenkins diff --git a/sw/qa/uitest/writer_tests3/customizeDialog.py b/sw/qa/uitest/writer_tests3/customizeDialog.py index 5b6ab664346a..52adae2b0ee1 100644 --- a/sw/qa/uitest/writer_tests3/customizeDialog.py +++ b/sw/qa/uitest/writer_tests3/customizeDialog.py @@ -35,7 +35,7 @@ class ConfigureDialog(UITestCase): initialEntryCount = get_state_as_dict(xfunc)["Children"] self.assertTrue(initialEntryCount != 0) -xSearch.executeAction("SET", mkPropertyValues({"TEXT":"format"})) +xSearch.executeAction("TYPE", mkPropertyValues({"TEXT":"format"})) # Wait for the search/filter op to be completed timeout = time.time() + 1 diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index 32d8d2417f0f..90322d500611 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -720,7 +720,7 @@ void EditUIObject::execute(const OUString& rAction, const StringMap& rParameters) { bool bHandled = true; -if (rAction == "SET") +if (rAction == "TYPE") { if (rParameters.find("TEXT") != rParameters.end()) { @@ -743,6 +743,17 @@ void EditUIObject::execute(const OUString& rAction, bHandled = false; } } +else if (rAction == "SET") +{ +auto it = rParameters.find("TEXT"); +if (it != rParameters.end()) +{ +mxEdit->SetText(it->second); +mxEdit->Modify(); +} +else +bHandled = false; +} else if (rAction == "SELECT") { if (rParameters.find("FROM") != rParameters.end() && ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - uitest/writer_tests vcl/source
uitest/writer_tests/customizeDialog.py |2 +- vcl/source/uitest/uiobject.cxx | 13 - 2 files changed, 13 insertions(+), 2 deletions(-) New commits: commit fc5aeeb8d9d44808d18880f6812075830bb5d11c Author: Jan Holesovsky AuthorDate: Fri Oct 16 14:27:27 2020 +0200 Commit: Andras Timar CommitDate: Sun Nov 15 15:42:17 2020 +0100 uitest: Rename the "SET" to "TYPE" for Edit boxes + implement the real "SET". To be consistent with the other controls: "TYPE" actually enters the characters one by one, while "SET" sets it as a whole. Also I believe Modify() should be called, not UpdateData()... Change-Id: I967dc270b1d92fe76107732a511cc3e70d3d65c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104435 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105616 Tested-by: Jenkins CollaboraOffice diff --git a/uitest/writer_tests/customizeDialog.py b/uitest/writer_tests/customizeDialog.py index 9d2311eb46a6..5812c51e098e 100644 --- a/uitest/writer_tests/customizeDialog.py +++ b/uitest/writer_tests/customizeDialog.py @@ -36,7 +36,7 @@ class ConfigureDialog(UITestCase): initialEntryCount = get_state_as_dict(xfunc)["Children"] self.assertTrue(initialEntryCount is not 0) -xSearch.executeAction("SET", mkPropertyValues({"TEXT":"format"})) +xSearch.executeAction("TYPE", mkPropertyValues({"TEXT":"format"})) # Wait for the search/filter op to be completed time.sleep(1) diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index 3d6242697066..818a4513b7f6 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -710,7 +710,7 @@ void EditUIObject::execute(const OUString& rAction, const StringMap& rParameters) { bool bHandled = true; -if (rAction == "SET") +if (rAction == "TYPE") { if (rParameters.find("TEXT") != rParameters.end()) { @@ -733,6 +733,17 @@ void EditUIObject::execute(const OUString& rAction, bHandled = false; } } +else if (rAction == "SET") +{ +auto it = rParameters.find("TEXT"); +if (it != rParameters.end()) +{ +mxEdit->SetText(it->second); +mxEdit->Modify(); +} +else +bHandled = false; +} else if (rAction == "SELECT") { if (rParameters.find("FROM") != rParameters.end() && ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - chart2/source chart2/uiconfig
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 39 chart2/source/controller/sidebar/ChartElementsPanel.hxx |4 + chart2/uiconfig/ui/sidebarelements.ui | 49 +--- 3 files changed, 83 insertions(+), 9 deletions(-) New commits: commit b831f4e0ffb45b7e0fbe3ce034302a75162e3297 Author: Jan Holesovsky AuthorDate: Wed Oct 14 16:18:17 2020 +0200 Commit: Muhammet Kara CommitDate: Sat Nov 14 02:12:40 2020 +0100 chart2: Add the possibility to edit title & subtitle from the sidebar. Change-Id: I4be15acbc2127ebb6eca8864a0209ba57b488100 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104313 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105614 Tested-by: Jenkins CollaboraOffice Reviewed-by: Muhammet Kara diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 14fd14dad5d5..68175acd46d2 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -277,7 +277,9 @@ ChartElementsPanel::ChartElementsPanel( mbModelValid(true) { get(mpCBTitle, "checkbutton_title"); +get(mpEditTitle, "edit_title"); get(mpCBSubtitle, "checkbutton_subtitle"); +get(mpEditSubtitle, "edit_subtitle"); get(mpCBXAxis, "checkbutton_x_axis"); get(mpCBXAxisTitle, "checkbutton_x_axis_title"); get(mpCBYAxis, "checkbutton_y_axis"); @@ -319,7 +321,9 @@ void ChartElementsPanel::dispose() css::uno::Reference xBroadcaster(mxModel, css::uno::UNO_QUERY_THROW); xBroadcaster->removeModifyListener(mxListener); mpCBTitle.clear(); +mpEditTitle.clear(); mpCBSubtitle.clear(); +mpEditSubtitle.clear(); mpCBXAxis.clear(); mpCBXAxisTitle.clear(); mpCBYAxis.clear(); @@ -374,6 +378,10 @@ void ChartElementsPanel::Initialize() mpCBGridHorizontalMinor->SetClickHdl(aLink); mpLBLegendPosition->SetSelectHdl(LINK(this, ChartElementsPanel, LegendPosHdl)); + +Link aEditLink = LINK(this, ChartElementsPanel, EditHdl); +mpEditTitle->SetModifyHdl(aEditLink); +mpEditSubtitle->SetModifyHdl(aEditLink); } namespace { @@ -416,8 +424,23 @@ void ChartElementsPanel::updateData() mpCBLegend->Check(isLegendVisible(mxModel)); mpBoxLegend->Enable( isLegendVisible(mxModel) ); -mpCBTitle->Check(isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE)); -mpCBSubtitle->Check(isTitleVisisble(mxModel, TitleHelper::SUB_TITLE)); + +bool hasTitle = isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE); +mpCBTitle->Check(hasTitle); +if (!mpEditTitle->HasFocus()) +{ + mpEditTitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel))); +mpEditTitle->Enable(hasTitle); +} + +bool hasSubtitle = isTitleVisisble(mxModel, TitleHelper::SUB_TITLE); +mpCBSubtitle->Check(hasSubtitle); +if (!mpEditSubtitle->HasFocus()) +{ + mpEditSubtitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel))); +mpEditSubtitle->Enable(hasSubtitle); +} + mpCBXAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::X_AXIS_TITLE)); mpCBYAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Y_AXIS_TITLE)); mpCBZAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Z_AXIS_TITLE)); @@ -577,6 +600,18 @@ IMPL_LINK(ChartElementsPanel, CheckBoxHdl, Button*, pButton, void) setGridVisible(mxModel, GridType::HOR_MINOR, bChecked); } +IMPL_LINK(ChartElementsPanel, EditHdl, Edit&, rEdit, void) +{ +// title or subtitle? +TitleHelper::eTitleType aTitleType = TitleHelper::MAIN_TITLE; +if (&rEdit == mpEditSubtitle.get()) +aTitleType = TitleHelper::SUB_TITLE; + +// set it +OUString aText(rEdit.GetText()); +TitleHelper::setCompleteString(aText, TitleHelper::getTitle(aTitleType, mxModel), comphelper::getProcessComponentContext()); +} + IMPL_LINK_NOARG(ChartElementsPanel, LegendPosHdl, ListBox&, void) { sal_Int32 nPos = mpLBLegendPosition->GetSelectedEntryPos(); diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx index eca293645cc4..dfb624b48362 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "ChartSidebarModifyListener.hxx" #include @@ -71,7 +72,9 @@ public: private: //ui controls VclPtr mpCBTitle; +VclPtr mpEditTitle; VclPtr mpCBSubtitle; +VclPtr mpEditSubtitle; VclPtr mpCBXAxis; VclPtr mpCBXAxisTitle; VclPtr mpCBYAxis; @@ -110,6 +113,7 @@ private: void setTitleVisible(TitleHelper::eTitleType eTitle, boo
[Libreoffice-commits] core.git: desktop/source
desktop/source/lib/init.cxx | 57 +++- 1 file changed, 25 insertions(+), 32 deletions(-) New commits: commit dd2532203b7928d5f06de96da7f15d45d9c38d80 Author: Jan Holesovsky AuthorDate: Thu Oct 15 18:05:35 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Nov 13 14:34:50 2020 +0100 lok: Simplify the check for command in sendDialogEvent. Change-Id: I1d2c967b68113d2528b80e91c32170f749ed9335 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104434 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105738 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 9aec16e027cb..b31d68dc5391 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3740,43 +3740,36 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long WindowUIObject aUIObject(pWindow); std::unique_ptr pUIWindow(aUIObject.get_visible_child(aMap["id"])); if (pUIWindow) { -bool bIsClickAction = false; +OUString sAction((aMap.find("cmd") != aMap.end())? aMap["cmd"]: ""); -if (aMap.find("cmd") != aMap.end()) { -if (aMap["cmd"] == "selected") -{ -aMap["POS"] = aMap["data"]; -aMap["TEXT"] = aMap["data"]; +if (sAction == "selected") +{ +aMap["POS"] = aMap["data"]; +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sSelectAction, aMap); -} -else if (aMap["cmd"] == "plus") -{ -pUIWindow->execute(sUpAction, aMap); -} -else if (aMap["cmd"] == "minus") -{ -pUIWindow->execute(sDownAction, aMap); -} -else if (aMap["cmd"] == "set") -{ -aMap["TEXT"] = aMap["data"]; +pUIWindow->execute(sSelectAction, aMap); +} +else if (sAction == "plus") +{ +pUIWindow->execute(sUpAction, aMap); +} +else if (sAction == "minus") +{ +pUIWindow->execute(sDownAction, aMap); +} +else if (sAction == "set") +{ +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sClearAction, aMap); -pUIWindow->execute(sTypeAction, aMap); -} -else if (aMap["cmd"] == "value") -{ -aMap["VALUE"] = aMap["data"]; -pUIWindow->execute(sValue, aMap); -} -else -bIsClickAction = true; +pUIWindow->execute(sClearAction, aMap); +pUIWindow->execute(sTypeAction, aMap); +} +else if (sAction == "value") +{ +aMap["VALUE"] = aMap["data"]; +pUIWindow->execute(sValue, aMap); } else -bIsClickAction = true; - -if (bIsClickAction) pUIWindow->execute(sClickAction, aMap); } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: 2 commits - chart2/source chart2/uiconfig vcl/source
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 44 +- chart2/source/controller/sidebar/ChartElementsPanel.hxx |3 + chart2/uiconfig/ui/sidebarelements.ui | 47 +--- vcl/source/control/ivctrl.cxx |1 4 files changed, 86 insertions(+), 9 deletions(-) New commits: commit ca35aea6ed6481c4b090eff2258412684b3e7099 Author: Jan Holesovsky AuthorDate: Wed Oct 14 16:18:17 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Nov 13 14:33:45 2020 +0100 chart2: Add the possibility to edit title & subtitle from the sidebar. Change-Id: I4be15acbc2127ebb6eca8864a0209ba57b488100 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104313 Tested-by: Andras Timar Reviewed-by: Andras Timar Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105736 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 1c7e60157aef..4158924fbfb0 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -302,7 +302,9 @@ ChartElementsPanel::ChartElementsPanel( ChartController* pController) : PanelLayout(pParent, "ChartElementsPanel", "modules/schart/ui/sidebarelements.ui", rxFrame) , mxCBTitle(m_xBuilder->weld_check_button("checkbutton_title")) +, mxEditTitle(m_xBuilder->weld_entry("edit_title")) , mxCBSubtitle(m_xBuilder->weld_check_button("checkbutton_subtitle")) +, mxEditSubtitle(m_xBuilder->weld_entry("edit_subtitle")) , mxCBXAxis(m_xBuilder->weld_check_button("checkbutton_x_axis")) , mxCBXAxisTitle(m_xBuilder->weld_check_button("checkbutton_x_axis_title")) , mxCBYAxis(m_xBuilder->weld_check_button("checkbutton_y_axis")) @@ -346,7 +348,9 @@ void ChartElementsPanel::dispose() css::uno::Reference xBroadcaster(mxModel, css::uno::UNO_QUERY_THROW); xBroadcaster->removeModifyListener(mxListener); mxCBTitle.reset(); +mxEditTitle.reset(); mxCBSubtitle.reset(); +mxEditSubtitle.reset(); mxCBXAxis.reset(); mxCBXAxisTitle.reset(); mxCBYAxis.reset(); @@ -403,6 +407,10 @@ void ChartElementsPanel::Initialize() mxCBGridHorizontalMinor->connect_toggled(aLink); mxLBLegendPosition->connect_changed(LINK(this, ChartElementsPanel, LegendPosHdl)); + +Link aEditLink = LINK(this, ChartElementsPanel, EditHdl); +mxEditTitle->connect_changed(aEditLink); +mxEditSubtitle->connect_changed(aEditLink); } namespace { @@ -447,8 +455,27 @@ void ChartElementsPanel::updateData() mxCBLegendNoOverlay->set_sensitive(isLegendVisible(mxModel)); mxCBLegendNoOverlay->set_active(!isLegendOverlay(mxModel)); mxBoxLegend->set_sensitive(isLegendVisible(mxModel)); -mxCBTitle->set_active(isTitleVisible(mxModel, TitleHelper::MAIN_TITLE)); -mxCBSubtitle->set_active(isTitleVisible(mxModel, TitleHelper::SUB_TITLE)); + +bool hasTitle = isTitleVisible(mxModel, TitleHelper::MAIN_TITLE); +mxCBTitle->set_active(hasTitle); + +OUString title = mxEditTitle->get_text(); +OUString newTitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel)); +if (title != newTitle) +mxEditTitle->set_text(newTitle); +if (mxEditTitle->get_sensitive() != hasTitle) + mxEditTitle->set_sensitive(hasTitle); + +bool hasSubtitle = isTitleVisible(mxModel, TitleHelper::SUB_TITLE); +mxCBSubtitle->set_active(hasSubtitle); + +OUString subtitle = mxEditSubtitle->get_text(); +OUString newSubtitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel)); +if (subtitle != newSubtitle) +mxEditSubtitle->set_text(newSubtitle); +if (mxEditSubtitle->get_sensitive() != hasSubtitle) + mxEditSubtitle->set_sensitive(hasSubtitle); + mxCBXAxisTitle->set_active(isTitleVisible(mxModel, TitleHelper::X_AXIS_TITLE)); mxCBYAxisTitle->set_active(isTitleVisible(mxModel, TitleHelper::Y_AXIS_TITLE)); mxCBZAxisTitle->set_active(isTitleVisible(mxModel, TitleHelper::Z_AXIS_TITLE)); @@ -464,7 +491,6 @@ void ChartElementsPanel::updateData() mxCB2ndXAxis->set_active(isAxisVisible(mxModel, AxisType::X_SECOND)); mxCB2ndYAxis->set_active(isAxisVisible(mxModel, AxisType::Y_SECOND)); - bool bSupportsMainAxis = ChartTypeHelper::isSupportingMainAxis( getChartType(mxModel), 0, 0); if (bSupportsMainAxis) @@ -610,6 +636,18 @@ IMPL_LINK(ChartElementsPanel, CheckBoxHdl, weld::ToggleButton&, rCheckBox, void) setGridVisible(mxModel, GridType::HOR_MINOR, bChecked); } +IMPL_LINK(ChartElementsPanel, EditHdl, weld::Entry&, rEdit, void) +{ +// title or subtitle? +TitleHelper::eTitleType aTitleType = TitleHelper::MAIN_TITLE; +if (&rEdit == mxEditSubtitle.get()) +aTitleType
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - chart2/source desktop/source
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 20 +--- desktop/source/lib/init.cxx | 12 +++-- 2 files changed, 21 insertions(+), 11 deletions(-) New commits: commit ebd3d84ad58b31d325dbe17c35759d12ed7a4242 Author: Jan Holesovsky AuthorDate: Fri Oct 16 14:34:43 2020 +0200 Commit: Andras Timar CommitDate: Fri Oct 16 16:26:55 2020 +0200 lok: Make the chart (sub)title work even from the mobile-wizard. Change-Id: Ic6346a403639e283ade47429f581f91e7a468f63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104436 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 4026b22d9898..ce3827aa20e2 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -434,19 +434,23 @@ void ChartElementsPanel::updateData() bool hasTitle = isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE); mpCBTitle->Check(hasTitle); -if (!mpEditTitle->HasFocus()) -{ - mpEditTitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel))); + +OUString title = mpEditTitle->GetText(); +OUString newTitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel)); +if (title != newTitle) +mpEditTitle->SetText(newTitle); +if (mpEditTitle->IsEnabled() != hasTitle) mpEditTitle->Enable(hasTitle); -} bool hasSubtitle = isTitleVisisble(mxModel, TitleHelper::SUB_TITLE); mpCBSubtitle->Check(hasSubtitle); -if (!mpEditSubtitle->HasFocus()) -{ - mpEditSubtitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel))); + +OUString subtitle = mpEditSubtitle->GetText(); +OUString newSubtitle = TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel)); +if (subtitle != newSubtitle) +mpEditSubtitle->SetText(newSubtitle); +if (mpEditSubtitle->IsEnabled() != hasSubtitle) mpEditSubtitle->Enable(hasSubtitle); -} mpCBXAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::X_AXIS_TITLE)); mpCBYAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Y_AXIS_TITLE)); diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index c8971182893f..89cf49dbf6f7 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3641,6 +3641,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned nWin { static const OUString sClickAction("CLICK"); static const OUString sSelectAction("SELECT"); +static const OUString sSetAction("SET"); static const OUString sClearAction("CLEAR"); static const OUString sTypeAction("TYPE"); static const OUString sUpAction("UP"); @@ -3656,12 +3657,11 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned nWin bIsWeldedDialog = pWidget != nullptr; bool bContinueWithLOKWindow = false; +OUString sControlType = aMap["type"]; OUString sAction = aMap["cmd"]; if (bIsWeldedDialog) { -OUString sControlType = aMap["type"]; - if (sControlType == "tabcontrol") { auto pNotebook = dynamic_cast(pWidget); @@ -3765,9 +3765,15 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned nWin { aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sClearAction, aMap); +pUIWindow->execute(sClearAction, aMap); // FIXME - change the "CLEAR"&"TYPE" to "SET" and test thoroughly; the "TYPE" really types a character by character pUIWindow->execute(sTypeAction, aMap); } +else if (sControlType == "edit" && sAction == "change") // FIXME - shouldn't "edit" issue "set" instead of "change"? +{ +aMap["TEXT"] = aMap["data"]; + +pUIWindow->execute(sSetAction, aMap); +} else if (sAction == "value") { aMap["VALUE"] = aMap["data"]; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - uitest/writer_tests vcl/source
uitest/writer_tests/customizeDialog.py |2 +- vcl/source/uitest/uiobject.cxx | 15 +-- 2 files changed, 14 insertions(+), 3 deletions(-) New commits: commit 60eefb146e4ad3fdac896400393b4e1cfaef7767 Author: Jan Holesovsky AuthorDate: Fri Oct 16 14:27:27 2020 +0200 Commit: Andras Timar CommitDate: Fri Oct 16 16:26:32 2020 +0200 uitest: Rename the "SET" to "TYPE" for Edit boxes + implement the real "SET". To be consistent with the other controls: "TYPE" actually enters the characters one by one, while "SET" sets it as a whole. Also I believe Modify() should be called, not UpdateData()... Change-Id: I967dc270b1d92fe76107732a511cc3e70d3d65c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104435 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/uitest/writer_tests/customizeDialog.py b/uitest/writer_tests/customizeDialog.py index e6fef69cb50e..2eeb61a37aab 100644 --- a/uitest/writer_tests/customizeDialog.py +++ b/uitest/writer_tests/customizeDialog.py @@ -34,7 +34,7 @@ class ConfigureDialog(UITestCase): initialEntryCount = get_state_as_dict(xfunc)["Children"] self.assertTrue(initialEntryCount is not 0) -xSearch.executeAction("SET", mkPropertyValues({"TEXT":"format"})) +xSearch.executeAction("TYPE", mkPropertyValues({"TEXT":"format"})) # Wait for the search/filter op to be completed time.sleep(1) diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index 77f4014eea7c..d7c6462783d7 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -667,7 +667,7 @@ void EditUIObject::execute(const OUString& rAction, const StringMap& rParameters) { bool bHandled = true; -if (rAction == "SET") +if (rAction == "TYPE") { if (rParameters.find("TEXT") != rParameters.end()) { @@ -690,6 +690,17 @@ void EditUIObject::execute(const OUString& rAction, bHandled = false; } } +else if (rAction == "SET") +{ +auto it = rParameters.find("TEXT"); +if (it != rParameters.end()) +{ +mxEdit->SetText(it->second); +mxEdit->Modify(); +} +else +bHandled = false; +} else if (rAction == "SELECT") { if (rParameters.find("FROM") != rParameters.end() && @@ -704,7 +715,7 @@ void EditUIObject::execute(const OUString& rAction, else if (rAction == "CLEAR") { mxEdit->SetText(""); -mxEdit->UpdateData(); +mxEdit->Modify(); bHandled = true; } else ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - desktop/source
desktop/source/lib/init.cxx | 54 1 file changed, 25 insertions(+), 29 deletions(-) New commits: commit 800c0aebe7dffb88eb5c1d96fd47eb99032fdfe9 Author: Jan Holesovsky AuthorDate: Thu Oct 15 18:05:35 2020 +0200 Commit: Andras Timar CommitDate: Fri Oct 16 16:24:27 2020 +0200 lok: Simplify the check for command in sendDialogEvent. Change-Id: I1d2c967b68113d2528b80e91c32170f749ed9335 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104434 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index b9fd1f9195e7..c8971182893f 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3656,11 +3656,11 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned nWin bIsWeldedDialog = pWidget != nullptr; bool bContinueWithLOKWindow = false; +OUString sAction = aMap["cmd"]; if (bIsWeldedDialog) { OUString sControlType = aMap["type"]; -OUString sAction = aMap["cmd"]; if (sControlType == "tabcontrol") { @@ -3746,36 +3746,32 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned nWin if (pUIWindow) { bool bIsClickAction = false; -if (aMap.find("cmd") != aMap.end()) { -if (aMap["cmd"] == "selected") -{ -aMap["POS"] = aMap["data"]; -aMap["TEXT"] = aMap["data"]; +if (sAction == "selected") +{ +aMap["POS"] = aMap["data"]; +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sSelectAction, aMap); -} -else if (aMap["cmd"] == "plus") -{ -pUIWindow->execute(sUpAction, aMap); -} -else if (aMap["cmd"] == "minus") -{ -pUIWindow->execute(sDownAction, aMap); -} -else if (aMap["cmd"] == "set") -{ -aMap["TEXT"] = aMap["data"]; +pUIWindow->execute(sSelectAction, aMap); +} +else if (sAction == "plus") +{ +pUIWindow->execute(sUpAction, aMap); +} +else if (sAction == "minus") +{ +pUIWindow->execute(sDownAction, aMap); +} +else if (sAction == "set") +{ +aMap["TEXT"] = aMap["data"]; -pUIWindow->execute(sClearAction, aMap); -pUIWindow->execute(sTypeAction, aMap); -} -else if (aMap["cmd"] == "value") -{ -aMap["VALUE"] = aMap["data"]; -pUIWindow->execute(sValue, aMap); -} -else -bIsClickAction = true; +pUIWindow->execute(sClearAction, aMap); +pUIWindow->execute(sTypeAction, aMap); +} +else if (sAction == "value") +{ +aMap["VALUE"] = aMap["data"]; +pUIWindow->execute(sValue, aMap); } else bIsClickAction = true; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - chart2/source chart2/uiconfig
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 39 chart2/source/controller/sidebar/ChartElementsPanel.hxx |3 chart2/uiconfig/ui/sidebarelements.ui | 49 +--- 3 files changed, 82 insertions(+), 9 deletions(-) New commits: commit b9e03055d053d5cb8dbdc466ee7c67744a6433b8 Author: Jan Holesovsky AuthorDate: Wed Oct 14 16:18:17 2020 +0200 Commit: Andras Timar CommitDate: Fri Oct 16 16:21:38 2020 +0200 chart2: Add the possibility to edit title & subtitle from the sidebar. Change-Id: I4be15acbc2127ebb6eca8864a0209ba57b488100 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104313 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 28bc8c1a5469..4026b22d9898 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -284,7 +284,9 @@ ChartElementsPanel::ChartElementsPanel( mbModelValid(true) { get(mpCBTitle, "checkbutton_title"); +get(mpEditTitle, "edit_title"); get(mpCBSubtitle, "checkbutton_subtitle"); +get(mpEditSubtitle, "edit_subtitle"); get(mpCBXAxis, "checkbutton_x_axis"); get(mpCBXAxisTitle, "checkbutton_x_axis_title"); get(mpCBYAxis, "checkbutton_y_axis"); @@ -326,7 +328,9 @@ void ChartElementsPanel::dispose() css::uno::Reference xBroadcaster(mxModel, css::uno::UNO_QUERY_THROW); xBroadcaster->removeModifyListener(mxListener); mpCBTitle.clear(); +mpEditTitle.clear(); mpCBSubtitle.clear(); +mpEditSubtitle.clear(); mpCBXAxis.clear(); mpCBXAxisTitle.clear(); mpCBYAxis.clear(); @@ -381,6 +385,10 @@ void ChartElementsPanel::Initialize() mpCBGridHorizontalMinor->SetClickHdl(aLink); mpLBLegendPosition->SetSelectHdl(LINK(this, ChartElementsPanel, LegendPosHdl)); + +Link aEditLink = LINK(this, ChartElementsPanel, EditHdl); +mpEditTitle->SetModifyHdl(aEditLink); +mpEditSubtitle->SetModifyHdl(aEditLink); } namespace { @@ -423,8 +431,23 @@ void ChartElementsPanel::updateData() mpCBLegend->Check(isLegendVisible(mxModel)); mpBoxLegend->Enable( isLegendVisible(mxModel) ); -mpCBTitle->Check(isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE)); -mpCBSubtitle->Check(isTitleVisisble(mxModel, TitleHelper::SUB_TITLE)); + +bool hasTitle = isTitleVisisble(mxModel, TitleHelper::MAIN_TITLE); +mpCBTitle->Check(hasTitle); +if (!mpEditTitle->HasFocus()) +{ + mpEditTitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::MAIN_TITLE, mxModel))); +mpEditTitle->Enable(hasTitle); +} + +bool hasSubtitle = isTitleVisisble(mxModel, TitleHelper::SUB_TITLE); +mpCBSubtitle->Check(hasSubtitle); +if (!mpEditSubtitle->HasFocus()) +{ + mpEditSubtitle->SetText(TitleHelper::getCompleteString(TitleHelper::getTitle(TitleHelper::SUB_TITLE, mxModel))); +mpEditSubtitle->Enable(hasSubtitle); +} + mpCBXAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::X_AXIS_TITLE)); mpCBYAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Y_AXIS_TITLE)); mpCBZAxisTitle->Check(isTitleVisisble(mxModel, TitleHelper::Z_AXIS_TITLE)); @@ -584,6 +607,18 @@ IMPL_LINK(ChartElementsPanel, CheckBoxHdl, Button*, pButton, void) setGridVisible(mxModel, GridType::HOR_MINOR, bChecked); } +IMPL_LINK(ChartElementsPanel, EditHdl, Edit&, rEdit, void) +{ +// title or subtitle? +TitleHelper::eTitleType aTitleType = TitleHelper::MAIN_TITLE; +if (&rEdit == mpEditSubtitle.get()) +aTitleType = TitleHelper::SUB_TITLE; + +// set it +OUString aText(rEdit.GetText()); +TitleHelper::setCompleteString(aText, TitleHelper::getTitle(aTitleType, mxModel), comphelper::getProcessComponentContext()); +} + IMPL_LINK_NOARG(ChartElementsPanel, LegendPosHdl, ListBox&, void) { sal_Int32 nPos = mpLBLegendPosition->GetSelectedEntryPos(); diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx index eca293645cc4..500ad77fccec 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx @@ -71,7 +71,9 @@ public: private: //ui controls VclPtr mpCBTitle; +VclPtr mpEditTitle; VclPtr mpCBSubtitle; +VclPtr mpEditSubtitle; VclPtr mpCBXAxis; VclPtr mpCBXAxisTitle; VclPtr mpCBYAxis; @@ -110,6 +112,7 @@ private: void setTitleVisible(TitleHelper::eTitleType eTitle, bool bVisible); DECL_LINK(CheckBoxHdl, Button*, void); +DECL_LINK(EditHdl, Edit&, void); DECL_LINK(LegendPosHdl, ListBox&, void); }; diff --git a/chart2/uiconfig/ui/sidebarelements.ui b/chart2/uiconfig/ui/sidebarelements.ui index 9db51b35a5d7..2b1f
[Libreoffice-commits] online.git: cypress_test/integration_tests loleaflet/js loleaflet/Makefile.am loleaflet/src
cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js |9 cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js |3 cypress_test/integration_tests/mobile/impress/apply_font_shape_spec.js | 42 ++- cypress_test/integration_tests/mobile/impress/apply_font_text_spec.js | 39 ++- cypress_test/integration_tests/mobile/impress/apply_paragraph_props_shape_spec.js | 27 +- cypress_test/integration_tests/mobile/impress/apply_paragraph_props_text_spec.js | 36 +- cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js |6 cypress_test/integration_tests/mobile/impress/impress_focus_spec.js |6 cypress_test/integration_tests/mobile/writer/hamburger_menu_spec.js | 21 + loleaflet/Makefile.am |1 loleaflet/js/global.js |4 loleaflet/src/layer/tile/CalcTileLayer.js |6 loleaflet/src/layer/tile/CanvasTileLayer.js |3 loleaflet/src/layer/tile/ImpressTileLayer.js |2 loleaflet/src/layer/tile/TileLayer.js |4 loleaflet/src/layer/tile/WriterTileLayer.js |2 loleaflet/src/map/anim/Map.ZoomAnimation.js | 123 -- 17 files changed, 130 insertions(+), 204 deletions(-) New commits: commit 26fc803a0ea108ef1911b87c243b9544c9e5f7c9 Author: Jan Holesovsky AuthorDate: Wed Sep 30 12:57:34 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Sep 30 20:16:45 2020 +0200 Use the CanvasTileLayer for all rendering. Fixes problems particularly with the new Chrome where the original approach to tiles can be causing blurry text. Change-Id: Icf598df0e997d493b111fad1c59e7dcb5f376801 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103681 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js b/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js index d57805f04..4a6a708c2 100644 --- a/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js +++ b/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js @@ -512,7 +512,8 @@ describe('Trigger hamburger menu options.', function() { }); }); - it('Sheet: insert / delete row break.', function() { + // FIXME temporarily disabled, does not work with CanvasTileLayer + it.skip('Sheet: insert / delete row break.', function() { before('hamburger_menu_sheet.ods'); // Select B2 cell @@ -559,7 +560,8 @@ describe('Trigger hamburger menu options.', function() { cy.wait(500); }); - it('Sheet: insert / delete column break.', function() { + // FIXME temporarily disabled, does not work with CanvasTileLayer + it.skip('Sheet: insert / delete column break.', function() { before('hamburger_menu_sheet.ods'); // Select B2 cell @@ -854,7 +856,8 @@ describe('Trigger hamburger menu options.', function() { .should('exist'); }); - it('Automatic spell checking.', function() { + // FIXME temporarily disabled, does not work with CanvasTileLayer + it.skip('Automatic spell checking.', function() { before('hamburger_menu.ods'); // Make everything white on tile diff --git a/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js b/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js index a323e7fa4..1660bdb6b 100644 --- a/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js +++ b/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js @@ -54,7 +54,8 @@ describe('Calc insertion wizard.', function() { .should('exist'); }); - it('Insert chart.', function() { + // FIXME temporarily disabled, does not work with CanvasTileLayer + it.skip('Insert chart.', function() { cy.contains('.menu-entry-with-icon', 'Chart...') .click(); diff --git a/cypress_test/integration_tests/mobile/impress/apply_font_shape_spec.js b/cypress_test/integration_tests/mobile/impress/apply_font_shape_spec.js index e7a235586..2d29a11c3 100644 --- a/cypress_test/integration_tests/mobile/impress/apply_font_shape_spec.js +++ b/cypress_test/integration_tests/mobile/impress/apply_font_shape_spec.js @@ -24,7 +24,8 @@ describe('Apply font on selected shape.', function() { impressMobileHelper.triggerNewSVGForShapeInTheCenter();
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-6-4' - android/app
android/app/build.gradle |1 android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java | 18 +- 2 files changed, 3 insertions(+), 16 deletions(-) New commits: commit fe41669d53d363826932393fcec44c6f046ef830 Author: Jan Holesovsky AuthorDate: Fri Sep 25 17:49:17 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Sep 25 17:52:40 2020 +0200 android: Make sure we are correctly installed... ...and don't miss any needed split APKs; that can happen when people are side-loading the APK, and leads to unpredictable crashes (for which we are then blamed). Change-Id: If3f24e69ab88ec8700190d7e36eaf1b25d3c3e27 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103413 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky (cherry picked from commit 109c760c7eb4f94842cb7f502c1cd40349e23929) Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103343 diff --git a/android/app/build.gradle b/android/app/build.gradle index 3d364a40e..627ac6ca9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -72,6 +72,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.google.android.material:material:1.1.0-alpha04' +implementation 'com.google.android.play:core:1.8.0' //before changing the version please see https://issuetracker.google.com/issues/111662669 implementation 'androidx.preference:preference:1.1.0-alpha01' diff --git a/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java b/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java index 382943ea4..abbe58af6 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java @@ -9,23 +9,9 @@ package org.libreoffice.androidapp; -import android.app.Application; -import android.content.Context; -import android.os.Handler; +import com.google.android.play.core.missingsplits.MissingSplitsDetectingApplication; -public class LibreOfficeApplication extends Application { - -private static Handler mainHandler; - -public LibreOfficeApplication() { -} - -public static Handler getMainHandler() { -if (mainHandler == null) -mainHandler = new Handler(); - -return mainHandler; -} +public class LibreOfficeApplication extends MissingSplitsDetectingApplication { } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/app
android/app/build.gradle |1 android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java | 18 +- 2 files changed, 3 insertions(+), 16 deletions(-) New commits: commit 109c760c7eb4f94842cb7f502c1cd40349e23929 Author: Jan Holesovsky AuthorDate: Fri Sep 25 17:49:17 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Sep 25 17:52:02 2020 +0200 android: Make sure we are correctly installed... ...and don't miss any needed split APKs; that can happen when people are side-loading the APK, and leads to unpredictable crashes (for which we are then blamed). Change-Id: If3f24e69ab88ec8700190d7e36eaf1b25d3c3e27 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103413 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/app/build.gradle b/android/app/build.gradle index 3d364a40e..627ac6ca9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -72,6 +72,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.google.android.material:material:1.1.0-alpha04' +implementation 'com.google.android.play:core:1.8.0' //before changing the version please see https://issuetracker.google.com/issues/111662669 implementation 'androidx.preference:preference:1.1.0-alpha01' diff --git a/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java b/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java index 382943ea4..abbe58af6 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/LibreOfficeApplication.java @@ -9,23 +9,9 @@ package org.libreoffice.androidapp; -import android.app.Application; -import android.content.Context; -import android.os.Handler; +import com.google.android.play.core.missingsplits.MissingSplitsDetectingApplication; -public class LibreOfficeApplication extends Application { - -private static Handler mainHandler; - -public LibreOfficeApplication() { -} - -public static Handler getMainHandler() { -if (mainHandler == null) -mainHandler = new Handler(); - -return mainHandler; -} +public class LibreOfficeApplication extends MissingSplitsDetectingApplication { } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-6-4' - android/app
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) New commits: commit fea5f81b4394e9f149c4c299ca601d985b8231f1 Author: Jan Holesovsky AuthorDate: Fri Sep 25 17:13:32 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Sep 25 17:20:25 2020 +0200 android: The last document must be removed from the list too. Before the fix, when there was just one document in the recent list and the user has removed it, it re-appeared again after restart of the app. Change-Id: I29ce66aac3c9ff07f320ecb21fd1c07d8d467af5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103409 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky (cherry picked from commit 0f70961221677c379a46793fa2c0cf192bed0339) Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103341 diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index 80e5efeb6..a366c 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -662,9 +662,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings } } -if (!joined.isEmpty()) { -prefs.edit().putString(RECENT_DOCUMENTS_KEY, joined).apply(); -} +prefs.edit().putString(RECENT_DOCUMENTS_KEY, joined).apply(); recentRecyclerView.setAdapter(new RecentFilesAdapter(this, recentUris)); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/app
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) New commits: commit 0f70961221677c379a46793fa2c0cf192bed0339 Author: Jan Holesovsky AuthorDate: Fri Sep 25 17:13:32 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Sep 25 17:19:42 2020 +0200 android: The last document must be removed from the list too. Before the fix, when there was just one document in the recent list and the user has removed it, it re-appeared again after restart of the app. Change-Id: I29ce66aac3c9ff07f320ecb21fd1c07d8d467af5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103409 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index 80e5efeb6..a366c 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -662,9 +662,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings } } -if (!joined.isEmpty()) { -prefs.edit().putString(RECENT_DOCUMENTS_KEY, joined).apply(); -} +prefs.edit().putString(RECENT_DOCUMENTS_KEY, joined).apply(); recentRecyclerView.setAdapter(new RecentFilesAdapter(this, recentUris)); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: loleaflet/src
loleaflet/src/layer/tile/CalcTileLayer.js | 61 - loleaflet/src/layer/tile/CanvasTileLayer.js | 66 2 files changed, 66 insertions(+), 61 deletions(-) New commits: commit 3a93ada13f4030b20601ecd4a345b931bf670c0b Author: Jan Holesovsky AuthorDate: Thu Sep 17 17:47:07 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Sep 17 21:34:10 2020 +0200 grid lines: Setup renderBackground only after _painter exists. This fixes setup of many cypress tests. Change-Id: I4eb626050d2d4202104ab01a6aa0b01248ae4eb5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/102965 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index 54abd8731..439f0d8cd 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -739,67 +739,6 @@ L.CalcTileLayer = BaseTileLayer.extend({ converter: this._twipsToPixels, context: this }); - var that = this; - this._painter.renderBackground = function(canvas, ctx) - { - if (this._layer._debug) - this._canvasCtx.fillStyle = 'rgba(255, 0, 0, 0.5)'; - else - this._canvasCtx.fillStyle = 'white'; // FIXME: sheet bg color - this._canvasCtx.fillRect(0, 0, ctx.canvasSize.x, ctx.canvasSize.y); - - if (that._debug) - canvas.strokeStyle = 'blue'; - else // now fr some grid-lines ... - canvas.strokeStyle = '#c0c0c0'; - canvas.lineWidth = 1.0; - - canvas.beginPath(); - for (var i = 0; i < ctx.paneBoundsList.length; ++i) { - // FIXME: de-duplicate before firing myself: - - // co-ordinates of this pane in core document pixels - var paneBounds = that._cssBoundsToCore(ctx.paneBoundsList[i]); - // co-ordinates of the main-(bottom right) pane in core document pixels - var viewBounds = that._cssBoundsToCore(ctx.viewBounds); - // into real pixel-land ... - paneBounds.round(); - viewBounds.round(); - - var paneOffset = paneBounds.getTopLeft(); // allocates - // Cute way to detect the in-canvas pixel offset of each pane - paneOffset.x = Math.min(paneOffset.x, viewBounds.min.x); - paneOffset.y = Math.min(paneOffset.y, viewBounds.min.y); - - // when using the pinch to zoom, set additional translation based */ - // on the pinch movement - if (that._map._animatingZoom) { - var centerOffset = this._map._getCenterOffset(this._map._animateToCenter); - paneOffset.x += Math.round(centerOffset.x); - paneOffset.y += Math.round(centerOffset.y); - } - - // URGH -> zooming etc. (!?) ... - if (that.sheetGeometry._columns) - that.sheetGeometry._columns.forEachInCorePixelRange( - paneBounds.min.x, paneBounds.max.x, - function(pos) { - canvas.moveTo(pos - paneOffset.x - 0.5, paneBounds.min.y - paneOffset.y - 0.5); - canvas.lineTo(pos - paneOffset.x - 0.5, paneBounds.max.y - paneOffset.y - 0.5); - canvas.stroke(); - }); - - if (that.sheetGeometry._rows) - that.sheetGeometry._rows.forEachInCorePixelRange( - paneBounds.min.y, paneBounds.max.y, - function(pos) { - canvas.moveTo(paneBounds.min.x - paneOffset.x - 0.5, pos - paneOffset.y - 0.5); - canvas.lineTo(paneBounds.max.x - paneOffset.x - 0.5, pos - paneOffset.y - 0.5); - canvas.stroke(); -
[Libreoffice-commits] online.git: Changes to 'feature/calc-canvas2'
New branch 'feature/calc-canvas2' available with the following commits: commit 09efef5982764b2ab7566bc4d3b327fdcc638bef Author: Jan Holesovsky Date: Tue Sep 15 22:04:52 2020 +0200 split panes: Don't expose the freeze panes buttons in the toolbar. The split panes are not modified that often, no need to have buttons to set that up in the toolbar. Change-Id: I9c7920f6dd57de5f507450e15fcde615ad941f1c commit 2e2e5a7a346b46769d83332abb727f64a9499e24 Author: Pranam Lashkari Date: Fri Aug 21 07:44:11 2020 +0530 leaflet: added freeze pan buttons to view menu Change-Id: I9ba7a0982b15d097e21d93a6e18289455f0f8139 commit ee2a357911dbda9c8106f27af49975793c6c79ef Author: Pranam Lashkari Date: Thu Aug 20 03:47:07 2020 +0530 leaflet: added freeze pan buttons to toolbar Change-Id: Ifb9ae58deef77397a5d5eb7c0bfd85625f1a4e74 commit 7dd235cac769ef15929c8f33e86f9ac00c130767 Author: Pranam Lashkari Date: Thu Aug 20 03:46:39 2020 +0530 notebookbar: added freeze pan buttons in calc added icons too Change-Id: I913f315c2e5bfcfbf6f82677ecffe76eaf86ea2a commit 5215552f9a4b4811f439ae6a95e18064c4728b23 Author: Jan Holesovsky Date: Tue Sep 15 21:36:14 2020 +0200 split panes: No dragging of the split lines currently. It is too buggy, let's instead allow only setting of that via the menu, similarly to what the desktop LO does. Change-Id: I219b2535e0cbd5310fe2a3a9ebf2098536d5c175 commit a439a6336cfa0e3078b85082b652dcba63a3b0fb Author: Jan Holesovsky Date: Tue Sep 15 21:33:14 2020 +0200 split panes: No split lines at all when they are at 0 position. Change-Id: I9fee28f32acdabd4768b095a471f26e5e8e9a378 commit 187e21c5c565e6d73e9c67dc4a14027ed8855603 Author: Jan Holesovsky Date: Tue Sep 15 09:15:44 2020 +0200 calc canvas: More reliable check for the desktop / mobile / tablet. Change-Id: I7b1ea581051608e020fd6e4615be9bc9b919c01f commit f3a6075e3510305adac51ffe96c3119d2c58ebe3 Author: Michael Meeks Date: Thu Sep 10 15:35:27 2020 +0100 calc canvas: get the right core px size of the canvas across. Change-Id: Ib079097b9d5caf707bd95b286d675791b5df9255 commit 18153819cc2405e078993f3205751713354e63a1 Author: Szymon Kłos Date: Thu Sep 10 12:47:42 2020 +0200 Adjust splitline thickness according to zoom level Change-Id: I33c398f1545860fb2f77d9d8dcdd8f632c2603ca commit bba82f524dc6eff18eeb752d00b85b7ad9bcd0d7 Author: Szymon Kłos Date: Wed Sep 9 15:08:20 2020 +0200 Don't block handling of touch events This is partial revert of 901ecca313. Handles (Markers) 'down' handler disabled main TouchGesture handler what caused taps to be ignored. Eg. double click didn't enter edit mode for a Calc cell. Change-Id: Id7097e9ad513e56a71423a6d6a8ac5105c373f77 commit e16840a53354308155ff24f235e3a0d268eb9fba Author: Michael Meeks Date: Wed Sep 9 12:02:50 2020 +0100 calc tiles: clarify some magic. Change-Id: I2d95dd09b5640a5216e72366493ddf77541c8b73 commit dab0521fbd69f294f432831d20d4927c36f55a64 Author: Michael Meeks Date: Tue Sep 8 16:18:31 2020 +0100 calc canvas: avoid repeated setTransform; build the right offset. Change-Id: Iab153b25fa38f27742a052ad0892e3d55c2c04cc commit 9e9a0bd83be8e21e39c9118e228826e72f064476 Author: Michael Meeks Date: Tue Sep 8 16:03:34 2020 +0100 calc canvas: use sub image blitting instead of clipping. Avoids thrashing the canvas rendering context / clip state. Change-Id: I547ce22a171874cd7be3a0fac50b4afc56faf084 commit f8877801831c85434f0e267706a63761d9b3445c Author: Michael Meeks Date: Tue Sep 8 16:03:15 2020 +0100 calc canvas: round view co-ordinates to the real pixels we need. Change-Id: I768cd9015da1f1301f3ddad242130d4eddb426d1 commit 5dbc118188f3eec3aab79ec3cd4545f2ab52f078 Author: Michael Meeks Date: Tue Sep 8 15:25:09 2020 +0100 calc canvas: avoid lots of canvas context save/restores. Change-Id: Ib813686ef7d495e660ad8fa3b545391180b9e019 commit bfdda065a579e98bea8ca5a383f8231210a668ed Author: Szymon Kłos Date: Tue Sep 8 13:52:33 2020 +0200 Split lines only in the corner when set to 0 Change-Id: I6192219cede2d0888ecd77236f72ff734d99d778 commit 1851763a4906a7e349bc0a55dc3ed2020987c57c Author: Jan Holesovsky Date: Thu Sep 3 23:19:13 2020 +0200 calc canvas: Preserving of the top left cell should be desktop-only. On mobile, the center of the zooming has to be according to the center of the pinch-to-zoom, ie. the center has to be taken into account. Change-Id: I3ba2ea90b7bac9bc1ba27f8068ea7ed6bbb4910d commit 5834b50de26a5b89015e73484f5a0568cfffdcd1 Author: Michael Meeks Date: Tue Sep 1 21:35:35 2020 +0100 calc canvas: paint invalid tiles until their replacement arrives. This avoids display corruption when panning, whereby stale/old canvas conten
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - loleaflet/src
loleaflet/src/layer/tile/CanvasTileLayer.js | 20 loleaflet/src/layer/tile/GridLayer.js |2 +- loleaflet/src/map/anim/Map.ZoomAnimation.js |4 ++-- loleaflet/src/map/handler/Map.TouchGesture.js |4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) New commits: commit b7295e51e2a3a6a82e359eaf107a7819935ea0ce Author: Jan Holesovsky AuthorDate: Thu Sep 10 00:03:10 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Sep 10 00:09:35 2020 +0200 calc canvas: Zoom during the pinch-to-zoom too. Set the canvas' scale and translate back so that the zoom happens in the middle of the pinch. Also change some getZoom() calls to accessing the map's _zoom directly, because the getZoom()'s value depend on whether we are in the middle of the animation or not. Change-Id: Iced7d67e49044c901a2c21496d9d12dbe718207b diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js index e60042334..d035f6ee9 100644 --- a/loleaflet/src/layer/tile/CanvasTileLayer.js +++ b/loleaflet/src/layer/tile/CanvasTileLayer.js @@ -182,7 +182,13 @@ L.CanvasTilePainter = L.Class.extend({ // when using the pinch to zoom, set additional translation based */ // on the pinch movement + var scale = 1; if (this._map._animatingZoom) { + // set the canvas' scale according to the pinch-to-zoom + this._canvasCtx.save(); + scale = this._map.getZoomScale(this._map._animateToZoom, this._lastZoom); + this._canvasCtx.scale(scale, scale); + var centerOffset = this._map._getCenterOffset(this._map._animateToCenter); paneOffset.x += Math.round(centerOffset.x); paneOffset.y += Math.round(centerOffset.y); @@ -202,14 +208,19 @@ L.CanvasTilePainter = L.Class.extend({ crop.min.x - tileBounds.min.x, crop.min.y - tileBounds.min.y, cropWidth, cropHeight, - crop.min.x - paneOffset.x, - crop.min.y - paneOffset.y, + (crop.min.x - paneOffset.x) / scale, + (crop.min.y - paneOffset.y) / scale, cropWidth, cropHeight); if (this._layer._debug) { this._canvasCtx.strokeStyle = 'rgba(255, 0, 0, 0.5)'; this._canvasCtx.strokeRect(tile.coords.x, tile.coords.y, 256, 256); } + + if (this._map._animatingZoom) { + // we have set a scale, restore the state + this._canvasCtx.restore(); + } } }, @@ -432,12 +443,13 @@ L.CanvasTileLayer = L.TileLayer.extend({ movestart: this._moveStart, moveend: this._move, // update tiles on move, but not more often than once per given interval - move: L.Util.throttle(this._move, this.options.updateInterval, this), // TODO we might want to make the updates more often (?) + move: L.Util.throttle(this._move, this.options.updateInterval, this), splitposchanged: this._move, }; if (this._zoomAnimated) { - events.zoomanim = L.Util.throttle(this._animateZoom, this.options.updateInterval, this); // TODO we might want to make the updates more often (?) + // update tiles on zoom, but not more often than once per given interval + events.zoomanim = L.Util.throttle(this._animateZoom, this.options.updateInterval, this); } return events; diff --git a/loleaflet/src/layer/tile/GridLayer.js b/loleaflet/src/layer/tile/GridLayer.js index 4ad07d8fa..4eaeb2f45 100644 --- a/loleaflet/src/layer/tile/GridLayer.js +++ b/loleaflet/src/layer/tile/GridLayer.js @@ -12,7 +12,7 @@ L.GridLayer = L.Layer.extend({ opacity: 1, updateWhenIdle: (window.mode.isMobile() || window.mode.isTablet()), - updateInterval: 200, + updateInterval: 50, // 20x per second should be hopefully enough attribution: null, zIndex: null, diff --git a/loleaflet/src/map/anim/Map.ZoomAnimation.js b/loleaflet/src/map/anim/Map.ZoomAnimation.js index 0a8a23133
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - loleaflet/src
loleaflet/src/layer/tile/CanvasTileLayer.js | 11 --- loleaflet/src/map/anim/Map.ZoomAnimation.js |9 ++--- loleaflet/src/map/handler/Map.TouchGesture.js |4 ++-- 3 files changed, 8 insertions(+), 16 deletions(-) New commits: commit f471724fb263aa9282eec9b3e7d5a8eb8ed8d870 Author: Jan Holesovsky AuthorDate: Wed Sep 9 14:53:17 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Sep 9 14:57:36 2020 +0200 calc canvas: Better way to set up the zoom animation center and zoom. Previously there was a problem with tiles that were loaded asynchronously: When the 'onload' event triggered, we were out of the swipe handling, so the just loaded tile was painted on its location without considering the pinch-to-zoom center - that is changing during the pinch-to-zoom. Change-Id: I625ab513e5499c1423a335e6b3c88a3024856205 diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js index dd198966b..ab7850853 100644 --- a/loleaflet/src/layer/tile/CanvasTileLayer.js +++ b/loleaflet/src/layer/tile/CanvasTileLayer.js @@ -486,21 +486,10 @@ L.CanvasTileLayer = L.TileLayer.extend({ }, _animateZoom: function (e) { - var oldAnimatingZoom = this._map._animatingZoom; - var oldAnimateToZoom = this._map._animateToZoom; - var oldAnimateToCenter = this._map._animateToCenter; - this._map._animatingZoom = true; - this._map._animateToZoom = e.zoom; - this._map._animateToCenter = e.center; - this._update(e.center, e.zoom); this._resetPreFetching(true); this._onCurrentPageUpdate(); this._painter.update(this._painter); - - this._map._animatingZoom = oldAnimatingZoom; - this._map._animateToZoom = oldAnimateToZoom; - this._map._animateToCenter = oldAnimateToCenter; }, _setZoomTransforms: function () { diff --git a/loleaflet/src/map/anim/Map.ZoomAnimation.js b/loleaflet/src/map/anim/Map.ZoomAnimation.js index 5b0b9ec1a..0a8a23133 100644 --- a/loleaflet/src/map/anim/Map.ZoomAnimation.js +++ b/loleaflet/src/map/anim/Map.ZoomAnimation.js @@ -8,7 +8,7 @@ L.Map.mergeOptions({ zoomAnimationThreshold: 4 }); -var zoomAnimated = L.DomUtil.TRANSITION && L.Browser.any3d && !L.Browser.mobileOpera && !(this._docLayer instanceof L.CanvasTileLayer); +var zoomAnimated = L.DomUtil.TRANSITION && L.Browser.any3d && !L.Browser.mobileOpera; if (zoomAnimated) { @@ -18,7 +18,7 @@ if (zoomAnimated) { // zoom transitions run with the same duration for all layers, so if one of transitionend events // happens after starting zoom animation (propagating to the map pane), we know that it ended globally - if (this._zoomAnimated) { + if (this._zoomAnimated && !(this._docLayer instanceof L.CanvasTileLayer)) { this._createAnimProxy(); @@ -90,7 +90,7 @@ L.Map.include(!zoomAnimated ? {} : { return true; }, - _animateZoom: function (center, zoom, startAnim, noUpdate) { + _animateZoom: function (center, zoom, startAnim, noUpdate, endAnim) { if (startAnim) { this._animatingZoom = true; @@ -99,6 +99,9 @@ L.Map.include(!zoomAnimated ? {} : { this._animateToZoom = zoom; L.DomUtil.addClass(this._mapPane, 'leaflet-zoom-anim'); + } else if (endAnim) { + // explicitly end the zoom + this._animatingZoom = false; } this.fire('zoomanim', { diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js index bcbc471f1..6e74651be 100644 --- a/loleaflet/src/map/handler/Map.TouchGesture.js +++ b/loleaflet/src/map/handler/Map.TouchGesture.js @@ -550,7 +550,7 @@ L.Map.TouchGesture = L.Handler.extend({ L.Util.cancelAnimFrame(this._animRequest); this._animRequest = L.Util.requestAnimFrame(function () { console.assert(typeof this._map._animateZoom === 'function'); - this._map._animateZoom(this._center, this._zoom, false, true); + this._map._animateZoom(this._center, this._zoom, /* startAnim = */ true, true); }, this, true, this._map._container); }, @@ -575,7 +575,7 @@ L.Map.TouchGesture = L.Handler.extend({ if (this._center) { L.Util.cancelAnimFrame(this._animRequest); console.assert(typeof this._map._animateZoom === 'function'); - this._map._animateZoom(this._center, finalZoom, true, true); + this._map._animateZoom(this._center, finalZoom, /* startAnim = */
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - 2 commits - loleaflet/src
loleaflet/src/layer/tile/CanvasTileLayer.js | 35 +- loleaflet/src/map/anim/Map.ZoomAnimation.js |2 - loleaflet/src/map/handler/Map.TouchGesture.js | 12 ++-- 3 files changed, 34 insertions(+), 15 deletions(-) New commits: commit 8d9b6f3e8ccea4e6edc26a233ebbe99161f58973 Author: Jan Holesovsky AuthorDate: Tue Sep 8 14:28:02 2020 +0200 Commit: Jan Holesovsky CommitDate: Tue Sep 8 15:09:58 2020 +0200 calc canvas: Move the canvas during the pinch-to-zoom. The actual zooming is still missing. Change-Id: I68f01fee025589952ee4044e7f64caa1c29ee68f diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js index e44593a9d..4a35b4939 100644 --- a/loleaflet/src/layer/tile/CanvasTileLayer.js +++ b/loleaflet/src/layer/tile/CanvasTileLayer.js @@ -180,6 +180,13 @@ L.CanvasTilePainter = L.Class.extend({ this._canvasCtx.scale(1, 1); this._canvasCtx.translate(-topLeft.x, -topLeft.y); + // when using the pinch to zoom, set additional translation based + // on the pinch movement + if (this._map._animatingZoom) { + var centerOffset = this._map._getCenterOffset(this._map._animateToCenter); + this._canvasCtx.translate(-Math.round(centerOffset.x), -Math.round(centerOffset.y)); + } + // create a clip for the pane/view. this._canvasCtx.beginPath(); var paneSize = paneBounds.getSize(); @@ -475,8 +482,10 @@ L.CanvasTileLayer = L.TileLayer.extend({ _animateZoom: function (e) { var oldAnimatingZoom = this._map._animatingZoom; var oldAnimateToZoom = this._map._animateToZoom; + var oldAnimateToCenter = this._map._animateToCenter; this._map._animatingZoom = true; this._map._animateToZoom = e.zoom; + this._map._animateToCenter = e.center; this._update(e.center, e.zoom); this._resetPreFetching(true); @@ -485,6 +494,7 @@ L.CanvasTileLayer = L.TileLayer.extend({ this._map._animatingZoom = oldAnimatingZoom; this._map._animateToZoom = oldAnimateToZoom; + this._map._animateToCenter = oldAnimateToCenter; }, _setZoomTransforms: function () { commit 7d69c3d55ea49fb10cf0abf20f6997e71cb17974 Author: Jan Holesovsky AuthorDate: Tue Sep 8 12:21:04 2020 +0200 Commit: Jan Holesovsky CommitDate: Tue Sep 8 15:09:58 2020 +0200 calc canvas: Paint to canvas during the pinch-to-zoom. Infrastructure work, so that the updates are triggered during that. Change-Id: I88e75cdc32047a487dd23c9e7be792b14dc097f0 diff --git a/loleaflet/src/layer/tile/CanvasTileLayer.js b/loleaflet/src/layer/tile/CanvasTileLayer.js index 6d6aacecd..e44593a9d 100644 --- a/loleaflet/src/layer/tile/CanvasTileLayer.js +++ b/loleaflet/src/layer/tile/CanvasTileLayer.js @@ -8,6 +8,7 @@ L.TileCoordData = L.Class.extend({ initialize: function (left, top, zoom, part) { this.x = left; this.y = top; + // FIXME console.assert(Number.isInteger(zoom)); this.z = zoom; this.part = part; }, @@ -215,7 +216,6 @@ L.CanvasTilePainter = L.Class.extend({ }, update: function () { - var newDpiScale = L.getDpiScaleFactor(true /* useExactDPR */); var scaleChanged = this._dpiScale != newDpiScale; @@ -225,7 +225,7 @@ L.CanvasTilePainter = L.Class.extend({ } var splitPanesContext = this._layer.getSplitPanesContext(); - var zoom = Math.round(this._map.getZoom()); + var zoom = this._map.getZoom(); var pixelBounds = this._map.getPixelBounds(); var newMapSize = pixelBounds.getSize(); var newTopLeft = pixelBounds.getTopLeft(); @@ -272,7 +272,8 @@ L.CanvasTilePainter = L.Class.extend({ if (splitPosChanged) this._splitPos = newSplitPos; - this._lastZoom = zoom; + if (!this._map._animatingZoom) + this._lastZoom = Math.round(zoom); this._lastPart = part; this._topLeft = newTopLeft; @@ -412,12 +413,12 @@ L.CanvasTileLayer = L.TileLayer.extend({ movestart: this._moveStart, moveend: this._move, // update tiles on move, but not more often than once per given interval - move: L.Util.throttle(this._move, this.options.updateInterval, this), + move: L.Util.throttle(this._move, this.options.updateInterval, this), // TODO we mig
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - loleaflet/src
loleaflet/src/map/Map.js | 24 +--- 1 file changed, 13 insertions(+), 11 deletions(-) New commits: commit 80ed51d01f9e58e830acd17d7223384dcf376bdd Author: Jan Holesovsky AuthorDate: Thu Sep 3 23:19:13 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Sep 3 23:19:13 2020 +0200 calc canvas: Preserving of the top left cell should be desktop-only. On mobile, the center of the zooming has to be according to the center of the pinch-to-zoom, ie. the center has to be taken into account. Change-Id: I3ba2ea90b7bac9bc1ba27f8068ea7ed6bbb4910d diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 4221d8a4d..e7c3b281d 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -480,20 +480,22 @@ L.Map = L.Evented.extend({ // for spreadsheets, when the document is smaller than the viewing area // we want it to be glued to the row/column headers instead of being centered this._docLayer._checkSpreadSheetBounds(zoom); - var calcLayer = this._docLayer; - if (calcLayer.options.sheetGeometryDataEnabled && calcLayer.sheetGeometry) { - var sheetGeom = calcLayer.sheetGeometry; - var cellRange = sheetGeom.getViewCellRange(); - var col = cellRange.columnrange.start, row = cellRange.rowrange.start; - var zoomScaleAbs = this.zoomToFactor(zoom); + if (window.mode.isDesktop()) { + var calcLayer = this._docLayer; + if (calcLayer.options.sheetGeometryDataEnabled && calcLayer.sheetGeometry) { + var sheetGeom = calcLayer.sheetGeometry; + var cellRange = sheetGeom.getViewCellRange(); + var col = cellRange.columnrange.start, row = cellRange.rowrange.start; + var zoomScaleAbs = this.zoomToFactor(zoom); - var newTopLeftPx = sheetGeom.getCellRect(col, row, zoomScaleAbs).getTopLeft(); - var moveByPoint = this._getTopLeftPoint(curCenter, zoom).subtract(newTopLeftPx); + var newTopLeftPx = sheetGeom.getCellRect(col, row, zoomScaleAbs).getTopLeft(); + var moveByPoint = this._getTopLeftPoint(curCenter, zoom).subtract(newTopLeftPx); - // move the center (which is in LatLng) by the computed amount of pixels - var newCenterLatLng = this.unproject(this.project(curCenter, zoom).subtract(moveByPoint), zoom); + // move the center (which is in LatLng) by the computed amount of pixels + var newCenterLatLng = this.unproject(this.project(curCenter, zoom).subtract(moveByPoint), zoom); - return this.setView(newCenterLatLng, zoom, {zoom: options}); + return this.setView(newCenterLatLng, zoom, {zoom: options}); + } } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - 2 commits - loleaflet/src
loleaflet/src/map/anim/Map.ZoomAnimation.js |2 +- loleaflet/src/map/handler/Map.TouchGesture.js | 10 -- 2 files changed, 9 insertions(+), 3 deletions(-) New commits: commit 6b3e0cc9f9940c07bf478a7bd240bb56be3810eb Author: Jan Holesovsky AuthorDate: Thu Sep 3 22:22:05 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Sep 3 22:30:28 2020 +0200 calc canvas: Set the zoom directly when swiping. The zoom itself does not honor the setting of the center yet, and the re-rendering while swiping does not happen much either. Change-Id: I03c99acb7e1f92aa33be03287676699aad2b37c1 diff --git a/loleaflet/src/map/handler/Map.TouchGesture.js b/loleaflet/src/map/handler/Map.TouchGesture.js index 895977228..fd81d9b37 100644 --- a/loleaflet/src/map/handler/Map.TouchGesture.js +++ b/loleaflet/src/map/handler/Map.TouchGesture.js @@ -549,7 +549,10 @@ L.Map.TouchGesture = L.Handler.extend({ L.Util.cancelAnimFrame(this._animRequest); this._animRequest = L.Util.requestAnimFrame(function () { - this._map._animateZoom(this._center, this._zoom, false, true); + if (typeof this._map._animateZoom === 'function') + this._map._animateZoom(this._center, this._zoom, false, true); + else + this._map._resetView(this._center, this._zoom, false, true); }, this, true, this._map._container); }, @@ -573,7 +576,10 @@ L.Map.TouchGesture = L.Handler.extend({ if (this._center) { L.Util.cancelAnimFrame(this._animRequest); - this._map._animateZoom(this._center, finalZoom, true, true); + if (typeof this._map._animateZoom === 'function') + this._map._animateZoom(this._center, finalZoom, true, true); + else + this._map._resetView(this._center, finalZoom, false, true); } if (this._map._docLayer && this._map._docLayer._annotations) { commit 08e36ef8e985e6cf4f32a0de53c8d86be96dc50b Author: Jan Holesovsky AuthorDate: Thu Sep 3 16:04:19 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Sep 3 16:07:42 2020 +0200 calc canvas: Temporarily disable the zoom animation. This way of the zoom animation will be removed; this creates a temporary layer and sets the "transition: transform 0.25s cubic-bezier(0,0,0.25,1);". So the browser decides what to do to transform it to the target transform, and finally the temporary layer is removed. With the canvas-based tile layer, we'll just abandon the animation when updating the zoom; and on mobile, we'll just keep re-rendering, it is supposed to be fast anyway - so at some stage, we'll just remove all the code related to this way of the zoom animation. Change-Id: I343969c203ac3611d269cdc69bfbc3f2f89fff35 diff --git a/loleaflet/src/map/anim/Map.ZoomAnimation.js b/loleaflet/src/map/anim/Map.ZoomAnimation.js index ddd38486f..5d6ceaec5 100644 --- a/loleaflet/src/map/anim/Map.ZoomAnimation.js +++ b/loleaflet/src/map/anim/Map.ZoomAnimation.js @@ -8,7 +8,7 @@ L.Map.mergeOptions({ zoomAnimationThreshold: 4 }); -var zoomAnimated = L.DomUtil.TRANSITION && L.Browser.any3d && !L.Browser.mobileOpera; +var zoomAnimated = false;//L.DomUtil.TRANSITION && L.Browser.any3d && !L.Browser.mobileOpera && !(this._docLayer instanceof L.CanvasTileLayer); if (zoomAnimated) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - loleaflet/src
loleaflet/src/map/Map.js | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) New commits: commit dfd77d44836661472908993cbedcef41996c3487 Author: Jan Holesovsky AuthorDate: Tue Sep 1 01:39:07 2020 +0200 Commit: Jan Holesovsky CommitDate: Tue Sep 1 01:49:04 2020 +0200 calc canvas: Fix occasional off-by-one error that results in a blurry canvas. The core of the fix is in _getNewPixelOrigin() where the round() behaves non-predictably / inconsistently with the rest of the code, causing random off-by-one error that shows (or not) depending on the window size. The biggest problem of this is that this off-by-one is then multiplied somewhere by the zoom factor, causing the canvas being completely blurry; but eventually when the user clicked into the sheet, it 'magically' fixed itself. The rest of the changes (in setZoom()) should actually do the same thing as the previous code, but using existing methods, instead of computing the shifts manually. Change-Id: If0ecb1301b7c1e65cfe8126385ef959c584c5d16 diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 84a286eb6..718af8b05 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -474,6 +474,8 @@ L.Map = L.Evented.extend({ this._zoom = this._limitZoom(zoom); return this; } + + var curCenter = this.getCenter(); if (this._docLayer && this._docLayer._docType === 'spreadsheet') { // for spreadsheets, when the document is smaller than the viewing area // we want it to be glued to the row/column headers instead of being centered @@ -483,14 +485,18 @@ L.Map = L.Evented.extend({ var sheetGeom = calcLayer.sheetGeometry; var cellRange = sheetGeom.getViewCellRange(); var col = cellRange.columnrange.start, row = cellRange.rowrange.start; - var zoomScaleAbs = Math.pow(1.2, (zoom - this.options.zoom)); + var zoomScaleAbs = this.zoomToFactor(zoom); + var newTopLeftPx = sheetGeom.getCellRect(col, row, zoomScaleAbs).getTopLeft(); - var newCenterPx = newTopLeftPx.add(this.getSize().divideBy(2)._floor()); - var newCenterLatLng = this.unproject(newCenterPx, zoom); + var moveByPoint = this._getTopLeftPoint(curCenter, zoom).subtract(newTopLeftPx); + + // move the center (which is in LatLng) by the computed amount of pixels + var newCenterLatLng = this.unproject(this.project(curCenter, zoom).subtract(moveByPoint), zoom); + return this.setView(newCenterLatLng, zoom, {zoom: options}); } } - var curCenter = this.getCenter(); + if (this._docLayer && this._docLayer._visibleCursor && this.getBounds().contains(this._docLayer._visibleCursor.getCenter())) { // Calculate new center after zoom. The intent is that the caret // position stays the same. @@ -1671,13 +1677,13 @@ L.Map = L.Evented.extend({ var pixelOrigin = center && zoom !== undefined ? this._getNewPixelOrigin(center, zoom) : this.getPixelOrigin(); + return pixelOrigin.subtract(this._getMapPanePos()); }, _getNewPixelOrigin: function (center, zoom) { var viewHalf = this.getSize()._divideBy(2); - // TODO round on display, not calculation to increase precision? - return this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._round(); + return this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._floor(); }, _latLngToNewLayerPoint: function (latlng, zoom, center) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - 44 commits - android/app android/lib common/Common.hpp common/JailUtil.cpp common/JailUtil.hpp discovery.xml ios/CollaboraOnlineWebView
Rebased ref, commits from common ancestor: commit 395ce779cfa589f1293f94e56ccd792285a718a9 Author: Jan Holesovsky AuthorDate: Wed Aug 26 15:15:55 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Aug 28 17:04:56 2020 +0200 calc canvas: Keep the document zoom separate from the browser zoom. With this, if you increase or decrease the browser zoom, the document zoom still stays the same. Before this, when you had eg. 100% document zoom and 150% browser zoom and try to zoom out, it actually zooms in instead, because the browser's zoom is added to the mix; and it displays the wrong value in the dropdown. Even worse, to get the 100% again, you have to choose 80% so that the correction for the browser zoom is added, resulting in the 100%. We should keep both the document and browser zoom separately. The questions is then whether to combine them later for the actual document rendering; I believe we should not, but even if we should, we cannot do it directly in the setZoom() method, but instead closer to the painting itself. Change-Id: Ib7f3d2ae8b4e6e6086f14e933b215c32326c6be6 diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 8c3271b95..84a286eb6 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -461,19 +461,6 @@ L.Map = L.Evented.extend({ return Math.round(relzoom) + this.options.zoom; }, - // Compute the nearest zoom level corresponding to the effective zoom-scale (ie, with dpiscale included). - findNearestProductZoom: function (zoom) { - var clientZoomScale = this.zoomToFactor(zoom); - - var dpiScale = this._docLayer ? this._docLayer.canvasDPIScale() : L.getDpiScaleFactor(true /* useExactDPR */); - - var zoomScale = clientZoomScale * dpiScale; - var nearestZoom = this.factorToZoom(zoomScale); - nearestZoom = this._limitZoom(nearestZoom); - - return nearestZoom; - }, - setZoom: function (zoom, options) { if (this._docLayer instanceof L.CanvasTileLayer) { @@ -481,8 +468,6 @@ L.Map = L.Evented.extend({ zoom = this._clientZoom || this.options.zoom; else this._clientZoom = zoom; - - zoom = this.findNearestProductZoom(zoom); } if (!this._loaded) { commit c89cad739fc041ef40083d73f8b07cb030b78bc6 Author: Dennis Francis AuthorDate: Tue Aug 25 12:01:51 2020 +0530 Commit: Jan Holesovsky CommitDate: Fri Aug 28 17:04:56 2020 +0200 specialize twips/core-pixels/css-pixels conversion methods Change-Id: Ifb0a67b938fdd34a06bb7e75832498d566247010 diff --git a/loleaflet/src/layer/tile/CalcTileLayer.js b/loleaflet/src/layer/tile/CalcTileLayer.js index 2c6f74a77..403f2e27e 100644 --- a/loleaflet/src/layer/tile/CalcTileLayer.js +++ b/loleaflet/src/layer/tile/CalcTileLayer.js @@ -499,17 +499,16 @@ L.CalcTileLayer = BaseTileLayer.extend({ return; } - var newWidthPx = newDocWidth / this._tileWidthTwips * this._tileSize; - var newHeightPx = newDocHeight / this._tileHeightTwips * this._tileSize; + var newSizePx = this._twipsToCorePixels(new L.Point(newDocWidth, newDocHeight)); var topLeft = this._map.unproject(new L.Point(0, 0)); - var bottomRight = this._map.unproject(new L.Point(newWidthPx, newHeightPx)); + var bottomRight = this._map.unproject(newSizePx); this._map.setMaxBounds(new L.LatLngBounds(topLeft, bottomRight)); - this._docPixelSize = {x: newWidthPx, y: newHeightPx}; + this._docPixelSize = newSizePx.clone(); this._docWidthTwips = newDocWidth; this._docHeightTwips = newDocHeight; - this._map.fire('docsize', {x: newWidthPx, y: newHeightPx}); + this._map.fire('docsize', newSizePx.clone()); }, _onUpdateCurrentHeader: function() { @@ -563,8 +562,9 @@ L.CalcTileLayer = BaseTileLayer.extend({ this._selectedPart = command.selectedPart; this._viewId = parseInt(command.viewid); var mapSize = this._map.getSize(); - var width = this._docWidthTwips / this._tileWidthTwips * this._tileSize; - var height = this._docHeightTwips / this._tileHeightTwips * this._tileSize; + var sizePx = this._twipsToPixels(new L.Point(this._docWidthTwips, this._docHeightTwips)); + var width = sizePx.x; + var height = sizePx.y; if (width < mapSize.x || height < mapSize.y) { width = Math.max(width, mapSize.x);
[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - sw/qa
sw/qa/extras/htmlexport/htmlexport.cxx | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) New commits: commit eee1cf0720e080703da2df0acbe8a87ac3b105cb Author: Jan Holesovsky AuthorDate: Tue Aug 25 15:16:21 2020 +0200 Commit: Stephan Bergmann CommitDate: Thu Aug 27 09:26:56 2020 +0200 CppunitTest_sw_htmlexport: The actual PNG data does not matter. The test was supposed to test whether the PNG data is embedded (or not), not the actual content of the data. Turns out that a different zlib affects the PNG content, so let's ignore that part, and only check that the data is actually embedded. Change-Id: I603bd546d97abda7c47248db0a95349f4a48b4aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101329 Tested-by: Jenkins Reviewed-by: Stephan Bergmann (cherry picked from commit 824e092dbfefe2366f39e55a3efcc3d99dc1cbf7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101365 diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index aa92fd90ddd6..3d29bc1ddce1 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -346,6 +346,8 @@ DECLARE_HTMLEXPORT_TEST(testNormalImageExport, "textAndImage.docx") CPPUNIT_ASSERT(pDoc); assertXPath(pDoc, "/html/body", 1); + +// the HTML export normally does not embed the images OUString imgSrc = getXPath(pDoc, "/html/body/p/img", "src"); CPPUNIT_ASSERT(imgSrc.endsWith(".png")); } @@ -356,7 +358,13 @@ DECLARE_HTMLEXPORT_TEST(testEmbedImagesEnabled, "textAndImage.docx") CPPUNIT_ASSERT(pDoc); assertXPath(pDoc, "/html/body", 1); -assertXPath(pDoc, "/html/body/p/img", "src", "data:image/png;base64,iVBORw0KGgoNSUhEUgAAADAwCAYAAABXAvmHCXBIWXMAAA3ZAAAN2QHmodeGAAAFyUlEQVR4nO1Za2gcVRQ+szuzO9ndZtfEktY2tVorVdNKxRpQweqPmh/B1w8JhCL4R4RYiPhCfKFEfwX/2VYULJIqJFDqg4KC1EaoEoyGhFJClBgbN+a9z9ndeXnOzJ3szCbbQuY2i5ADh5udmXvP953z3cdMRNM04f9sYq0B+LVNArW2TQJXM0EQdmKTQL+Mi4V2PWJwJ4CgBUkKdImi9F48HpGikTptfj4l19fLX2cyxeeQyALPeNwJxOOx/r17djz6+afdsX233QBg5CCXWYS3es62n/js4mXkdyeSmOMVjysBURQ7djVvbRv87p2oLJUAtHmLQDSUg963W8MhMSscPzXWh48e4RaT10BkKJkXens6orKYRvBZC7zlut2+231r6MOTI4exCgmswjKPmFwJFIvFu+5pqbczr7vB22QkMwd7d8vK2Hj+AD5+gUdMrgRCUnD+yt9T8ZubGsrAHSKMTHK2SDGTvGJyJaBp2g/9Z4abH7j7YMjJupvA0Mgi5BVDxUcneMXkSiCTVV/75ItLTx1qCTR2PpbwEJiYTMHjXamcUjSfMTmeIH0TwAm5H5s96JPou3N57f3n3xh99URfuL79IVmOR1UYGlXUL89phqrCabuLcAjbRvQCcjlfMwII5PCWaPib1ntv0S4O/Skn4jHhjn27FMPQ4d/ZJePjgWzJNExBDCW0gwciWp0ceLpQLHaMjM3UNTeZhcU0CLGI8FE2b75SEwJhSWx/ueuR6JvdD8Kx18+Yl/4oCN8PHEP9KyibAoC50krO76Hf/4EjnUkYHYDY+F8A93XCszhUbQiQSUHcsPQFJINz00TX5hhodCJS2WpLIAbBD ARAkMN+o/OYxEYeQS0y0Gz3rQTtJmQs+0ftMp8EDFsm+qLdmvhbn7cBr8o+k5Se5oOcGZ8K6E4FBHb+8ejfS0jLcYBdNn4SInBm0CuhSiIkMc7fEPxLiIDqKgMZYgQqdA86F7Brmf8KmCQhzV6BKLvWHGBy2QDzEKAtEpsgu04eoMvsNqVRY62OO6hhXbXAsieIhL60AbDLZhFA3AQa6w8xsN9hybegy+wZAkspzaAvk2OfTFhaIcds4z+SiQiEABLwrejb0ZvQ8VBvESJiDkgigbPQIjGLfoU9U1NzZCKBnW0iEkEPu+6RUWqJCAGuQ4+CXaXIxsJdbQSSdE27iyMTEjG+jVsSIrBEziFCz1IViOBOzYD6C8OgPvEwSIPDYDYkvJJK4nx+qReMvg9W+oOEo2UVEEbGAcYmrMwovgjQZEQZlRgJhwBVIs6c5EQZp2yHGDHygK7Dzz/9Bvtbj8I2/Ft5EVv34HO4PZw97w24rdFqCvcfhZIQgEJOgSd9EUDwjoQINA1/I5QrILN7QZc7RtnWMjk4zn634QGtzT04ZhoQYEDH2gYD5esBAUo5xYz7Ab5CAGx9Oxp3iDQwAtJV+jp9qlo2b7cpnPYNXri0Ygex+r53OJKQiYPReypJiDROmqQDC8khAXYVnNXIWSeFa4F3E1hKewmwQUIYt+D39dLaB9ggJRyQCBQYGZoLtKzS8uosq4Eq46wJwiGwnFmzj8rj3dizE7MJXQS7EhQ+BTaRm8CeHzSZSVZO9t0VWWVZtr5UIUDzz1jZ0XkQsBDZWdFwcOfokAV79yVJUTVirn4kLQnKc8lLoHoFqJI70BcwDj2lrZdI1cPcGrKir8oRKFeAwEcZKfJVExJXKGuiVyFwO/o0+gx6ipby9UjqmqdRlhmSVRGDpKEsF2dnpi/NdPxIVfZdTlukiECw4hYBpaQYbBzn0MifgCeqnSF3EIVViGQwfbIfSl/9CCoDA5PT1vjJ3lOw/fQ5Kw mmqtESav39K7rKXF/vhPb9PoBxVUaiZ2YBBtGdsxQZZfmX5AK0oFtAwc76FPbj8nLM5dMiy14aiXwLthyc5dZgm9UUjzhrGddvo4yIDtfzHbLCNv9LWWvbJFBr2yRQa/sP25LGjrtpN08ASUVORK5CYII="); + +// the HTML export normally does not embed the images, but here the test +// name triggers setting of the "EmbedImages" filter option, meaning the +// image will not be a separate PNG, but an embedded base64 encoded +// version of that +OUString imgSrc = getXPath(pDoc, "/html/body/p/img", "src"); +CPPUNIT_ASSERT(imgSrc.startsWith("data:image/png;base64,")); } DECLARE_HTMLEXPORT_TEST(testXHTML, "hello.html") ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'feature/calc-canvas' - loleaflet/src
loleaflet/src/map/Map.js | 15 --- 1 file changed, 15 deletions(-) New commits: commit 3c60cbfd39bb3ede2f2efddf870c292ab6c0dc4d Author: Jan Holesovsky AuthorDate: Wed Aug 26 15:15:55 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Aug 26 15:15:55 2020 +0200 calc canvas: Keep the document zoom separate from the browser zoom. With this, if you increase or decrease the browser zoom, the document zoom still stays the same. Before this, when you had eg. 100% document zoom and 150% browser zoom and try to zoom out, it actually zooms in instead, because the browser's zoom is added to the mix; and it displays the wrong value in the dropdown. Even worse, to get the 100% again, you have to choose 80% so that the correction for the browser zoom is added, resulting in the 100%. We should keep both the document and browser zoom separately. The questions is then whether to combine them later for the actual document rendering; I believe we should not, but even if we should, we cannot do it directly in the setZoom() method, but instead closer to the painting itself. Change-Id: Ib7f3d2ae8b4e6e6086f14e933b215c32326c6be6 diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 8c3271b95..84a286eb6 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -461,19 +461,6 @@ L.Map = L.Evented.extend({ return Math.round(relzoom) + this.options.zoom; }, - // Compute the nearest zoom level corresponding to the effective zoom-scale (ie, with dpiscale included). - findNearestProductZoom: function (zoom) { - var clientZoomScale = this.zoomToFactor(zoom); - - var dpiScale = this._docLayer ? this._docLayer.canvasDPIScale() : L.getDpiScaleFactor(true /* useExactDPR */); - - var zoomScale = clientZoomScale * dpiScale; - var nearestZoom = this.factorToZoom(zoomScale); - nearestZoom = this._limitZoom(nearestZoom); - - return nearestZoom; - }, - setZoom: function (zoom, options) { if (this._docLayer instanceof L.CanvasTileLayer) { @@ -481,8 +468,6 @@ L.Map = L.Evented.extend({ zoom = this._clientZoom || this.options.zoom; else this._clientZoom = zoom; - - zoom = this.findNearestProductZoom(zoom); } if (!this._loaded) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: sw/qa
sw/qa/extras/htmlexport/htmlexport.cxx | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) New commits: commit 824e092dbfefe2366f39e55a3efcc3d99dc1cbf7 Author: Jan Holesovsky AuthorDate: Tue Aug 25 15:16:21 2020 +0200 Commit: Stephan Bergmann CommitDate: Wed Aug 26 08:19:27 2020 +0200 CppunitTest_sw_htmlexport: The actual PNG data does not matter. The test was supposed to test whether the PNG data is embedded (or not), not the actual content of the data. Turns out that a different zlib affects the PNG content, so let's ignore that part, and only check that the data is actually embedded. Change-Id: I603bd546d97abda7c47248db0a95349f4a48b4aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101329 Tested-by: Jenkins Reviewed-by: Stephan Bergmann diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index 36df600df185..d4d59103fffe 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -357,6 +357,8 @@ DECLARE_HTMLEXPORT_TEST(testNormalImageExport, "textAndImage.docx") CPPUNIT_ASSERT(pDoc); assertXPath(pDoc, "/html/body", 1); + +// the HTML export normally does not embed the images OUString imgSrc = getXPath(pDoc, "/html/body/p/img", "src"); CPPUNIT_ASSERT(imgSrc.endsWith(".png")); } @@ -367,7 +369,13 @@ DECLARE_HTMLEXPORT_TEST(testEmbedImagesEnabled, "textAndImage.docx") CPPUNIT_ASSERT(pDoc); assertXPath(pDoc, "/html/body", 1); -assertXPath(pDoc, "/html/body/p/img", "src", "data:image/png;base64,iVBORw0KGgoNSUhEUgAAADAwCAYAAABXAvmHCXBIWXMAAA3ZAAAN2QHmodeGAAAFyUlEQVR4nO1Za2gcVRQ+szuzO9ndZtfEktY2tVorVdNKxRpQweqPmh/B1w8JhCL4R4RYiPhCfKFEfwX/2VYULJIqJFDqg4KC1EaoEoyGhFJClBgbN+a9z9ndeXnOzJ3szCbbQuY2i5ADh5udmXvP953z3cdMRNM04f9sYq0B+LVNArW2TQJXM0EQdmKTQL+Mi4V2PWJwJ4CgBUkKdImi9F48HpGikTptfj4l19fLX2cyxeeQyALPeNwJxOOx/r17djz6+afdsX233QBg5CCXWYS3es62n/js4mXkdyeSmOMVjysBURQ7djVvbRv87p2oLJUAtHmLQDSUg963W8MhMSscPzXWh48e4RaT10BkKJkXens6orKYRvBZC7zlut2+231r6MOTI4exCgmswjKPmFwJFIvFu+5pqbczr7vB22QkMwd7d8vK2Hj+AD5+gUdMrgRCUnD+yt9T8ZubGsrAHSKMTHK2SDGTvGJyJaBp2g/9Z4abH7j7YMjJupvA0Mgi5BVDxUcneMXkSiCTVV/75ItLTx1qCTR2PpbwEJiYTMHjXamcUjSfMTmeIH0TwAm5H5s96JPou3N57f3n3xh99URfuL79IVmOR1UYGlXUL89phqrCabuLcAjbRvQCcjlfMwII5PCWaPib1ntv0S4O/Skn4jHhjn27FMPQ4d/ZJePjgWzJNExBDCW0gwciWp0ceLpQLHaMjM3UNTeZhcU0CLGI8FE2b75SEwJhSWx/ueuR6JvdD8Kx18+Yl/4oCN8PHEP9KyibAoC50krO76Hf/4EjnUkYHYDY+F8A93XCszhUbQiQSUHcsPQFJINz00TX5hhodCJS2WpLIAbBD ARAkMN+o/OYxEYeQS0y0Gz3rQTtJmQs+0ftMp8EDFsm+qLdmvhbn7cBr8o+k5Se5oOcGZ8K6E4FBHb+8ejfS0jLcYBdNn4SInBm0CuhSiIkMc7fEPxLiIDqKgMZYgQqdA86F7Brmf8KmCQhzV6BKLvWHGBy2QDzEKAtEpsgu04eoMvsNqVRY62OO6hhXbXAsieIhL60AbDLZhFA3AQa6w8xsN9hybegy+wZAkspzaAvk2OfTFhaIcds4z+SiQiEABLwrejb0ZvQ8VBvESJiDkgigbPQIjGLfoU9U1NzZCKBnW0iEkEPu+6RUWqJCAGuQ4+CXaXIxsJdbQSSdE27iyMTEjG+jVsSIrBEziFCz1IViOBOzYD6C8OgPvEwSIPDYDYkvJJK4nx+qReMvg9W+oOEo2UVEEbGAcYmrMwovgjQZEQZlRgJhwBVIs6c5EQZp2yHGDHygK7Dzz/9Bvtbj8I2/Ft5EVv34HO4PZw97w24rdFqCvcfhZIQgEJOgSd9EUDwjoQINA1/I5QrILN7QZc7RtnWMjk4zn634QGtzT04ZhoQYEDH2gYD5esBAUo5xYz7Ab5CAGx9Oxp3iDQwAtJV+jp9qlo2b7cpnPYNXri0Ygex+r53OJKQiYPReypJiDROmqQDC8khAXYVnNXIWSeFa4F3E1hKewmwQUIYt+D39dLaB9ggJRyQCBQYGZoLtKzS8uosq4Eq46wJwiGwnFmzj8rj3dizE7MJXQS7EhQ+BTaRm8CeHzSZSVZO9t0VWWVZtr5UIUDzz1jZ0XkQsBDZWdFwcOfokAV79yVJUTVirn4kLQnKc8lLoHoFqJI70BcwDj2lrZdI1cPcGrKir8oRKFeAwEcZKfJVExJXKGuiVyFwO/o0+gx6ipby9UjqmqdRlhmSVRGDpKEsF2dnpi/NdPxIVfZdTlukiECw4hYBpaQYbBzn0MifgCeqnSF3EIVViGQwfbIfSl/9CCoDA5PT1vjJ3lOw/fQ5Kw mmqtESav39K7rKXF/vhPb9PoBxVUaiZ2YBBtGdsxQZZfmX5AK0oFtAwc76FPbj8nLM5dMiy14aiXwLthyc5dZgm9UUjzhrGddvo4yIDtfzHbLCNv9LWWvbJFBr2yRQa/sP25LGjrtpN08ASUVORK5CYII="); + +// the HTML export normally does not embed the images, but here the test +// name triggers setting of the "EmbedImages" filter option, meaning the +// image will not be a separate PNG, but an embedded base64 encoded +// version of that +OUString imgSrc = getXPath(pDoc, "/html/body/p/img", "src"); +CPPUNIT_ASSERT(imgSrc.startsWith("data:image/png;base64,")); } DECLARE_HTMLEXPORT_TEST(testXHTML, "hello.html") ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/build.gradle |6 +++--- android/lib/libSettings.gradle.in |3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) New commits: commit 757339187fb624a2a960ca1dbe3dd592d0419b56 Author: Jan Holesovsky AuthorDate: Fri Aug 7 14:23:11 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Aug 7 15:10:22 2020 +0200 android: Show the real core git hash in the About dialog. In the editing activity. Change-Id: I87190044b501d80f83600b8a146c4d77a5f4e4f7 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100314 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/lib/build.gradle b/android/lib/build.gradle index 2a6c79f63..626466b05 100644 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -26,7 +26,7 @@ android { buildTypes { debug { resValue "string", "app_name", "${liboAppName} Debug" -buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\"" +buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\"" buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", "${liboGooglePlay}" ndk { abiFilters = [] @@ -36,7 +36,7 @@ android { } release { resValue "string", "app_name", "${liboAppName}" -buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\"" +buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\"" buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", "${liboGooglePlay}" ndk { abiFilters = [] @@ -278,7 +278,7 @@ UNO_USER_PACKAGES_CACHE=$UNO_USER_PACKAGES/cache [Version] AllLanguages=en-US BuildVersion= -buildid=''' + "${liboGitFullCommit}" + ''' +buildid=''' + "${liboCoreVersionHash}" + ''' ReferenceOOoMajorMinor=4.1 '''.stripIndent() } diff --git a/android/lib/libSettings.gradle.in b/android/lib/libSettings.gradle.in index afa68ee1f..a4fe37d66 100644 --- a/android/lib/libSettings.gradle.in +++ b/android/lib/libSettings.gradle.in @@ -8,7 +8,8 @@ ext { liboExampleDocument = '@LOBUILDDIR@/android/default-document/example.odt' liboVersionMajor= '@LOOLWSD_VERSION_MAJOR@' liboVersionMinor= '@LOOLWSD_VERSION_MAJOR@' -liboGitFullCommit = '@LOOLWSD_VERSION_HASH@' +liboOVersionHash= '@LOOLWSD_VERSION_HASH@' +liboCoreVersionHash = '@CORE_VERSION_HASH@' liboApplicationId = '@ANDROID_PACKAGE_NAME@' liboBrandingDir = '@APP_BRANDING_DIR@' liboAndroidAbi = '@ANDROID_ABI@' ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - loleaflet/js
loleaflet/js/global.js |9 - 1 file changed, 4 insertions(+), 5 deletions(-) New commits: commit 3aa7bec6665565a41595ec14374af079f2df9fc4 Author: Jan Holesovsky AuthorDate: Fri Aug 7 13:49:32 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Aug 7 15:08:55 2020 +0200 android: Chromebook is not a touch device, avoid using Hammer there. This fixes the mouse wheel - now it works on the chromebooks. Change-Id: I5bf2a7e1ae397ef171221ac58172940bb43cbb3c Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100310 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js index c1397ee99..8f5c53c0f 100644 --- a/loleaflet/js/global.js +++ b/loleaflet/js/global.js @@ -34,8 +34,10 @@ gecko3d = 'MozPerspective' in doc.style, opera12 = 'OTransition' in doc.style; + var chromebook = window.ThisIsTheAndroidApp && window.LOOLMessageHandler.isChromeOS(); + var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window || - (window.DocumentTouch && document instanceof window.DocumentTouch)); + (window.DocumentTouch && document instanceof window.DocumentTouch)) && !chromebook; var isInternetExplorer = (navigator.userAgent.toLowerCase().indexOf('msie') != -1 || navigator.userAgent.toLowerCase().indexOf('trident') != -1); @@ -160,10 +162,7 @@ global.mode = { isChromebook: function() { - if (!window.ThisIsTheAndroidApp) - return false; - - return window.LOOLMessageHandler.isChromeOS(); + return chromebook; }, // Here "mobile" means "mobile phone" (at least for now). Has to match small screen size // requirement. ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/build.gradle |6 +++--- android/lib/libSettings.gradle.in |3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) New commits: commit efea5137fc4d9620ad92ba6e7a865509cf74c4d7 Author: Jan Holesovsky AuthorDate: Fri Aug 7 14:23:11 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Aug 7 15:09:49 2020 +0200 android: Show the real core git hash in the About dialog. In the editing activity. Change-Id: I87190044b501d80f83600b8a146c4d77a5f4e4f7 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100228 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/build.gradle b/android/lib/build.gradle index 6177d0ca5..90fb964f5 100644 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -26,7 +26,7 @@ android { buildTypes { debug { resValue "string", "app_name", "${liboAppName} Debug" -buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\"" +buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\"" buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", "${liboGooglePlay}" ndk { abiFilters = [] @@ -36,7 +36,7 @@ android { } release { resValue "string", "app_name", "${liboAppName}" -buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\"" +buildConfigField "String", "GIT_COMMIT", "\"${liboOVersionHash}\"" buildConfigField "boolean", "GOOGLE_PLAY_ENABLED", "${liboGooglePlay}" ndk { abiFilters = [] @@ -278,7 +278,7 @@ UNO_USER_PACKAGES_CACHE=$UNO_USER_PACKAGES/cache [Version] AllLanguages=en-US BuildVersion= -buildid=''' + "${liboGitFullCommit}" + ''' +buildid=''' + "${liboCoreVersionHash}" + ''' ReferenceOOoMajorMinor=4.1 '''.stripIndent() } diff --git a/android/lib/libSettings.gradle.in b/android/lib/libSettings.gradle.in index afa68ee1f..a4fe37d66 100644 --- a/android/lib/libSettings.gradle.in +++ b/android/lib/libSettings.gradle.in @@ -8,7 +8,8 @@ ext { liboExampleDocument = '@LOBUILDDIR@/android/default-document/example.odt' liboVersionMajor= '@LOOLWSD_VERSION_MAJOR@' liboVersionMinor= '@LOOLWSD_VERSION_MAJOR@' -liboGitFullCommit = '@LOOLWSD_VERSION_HASH@' +liboOVersionHash= '@LOOLWSD_VERSION_HASH@' +liboCoreVersionHash = '@CORE_VERSION_HASH@' liboApplicationId = '@ANDROID_PACKAGE_NAME@' liboBrandingDir = '@APP_BRANDING_DIR@' liboAndroidAbi = '@ANDROID_ABI@' ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: loleaflet/js
loleaflet/js/global.js |9 - 1 file changed, 4 insertions(+), 5 deletions(-) New commits: commit 6d67da6669dfe8002cb58300ccdbf12e852b2d19 Author: Jan Holesovsky AuthorDate: Fri Aug 7 13:49:32 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Aug 7 14:09:59 2020 +0200 android: Chromebook is not a touch device, avoid using Hammer there. This fixes the mouse wheel - now it works on the chromebooks. Change-Id: I5bf2a7e1ae397ef171221ac58172940bb43cbb3c Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100227 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js index 61c7fedde..0b39b8d21 100644 --- a/loleaflet/js/global.js +++ b/loleaflet/js/global.js @@ -34,8 +34,10 @@ gecko3d = 'MozPerspective' in doc.style, opera12 = 'OTransition' in doc.style; + var chromebook = window.ThisIsTheAndroidApp && window.LOOLMessageHandler.isChromeOS(); + var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window || - (window.DocumentTouch && document instanceof window.DocumentTouch)); + (window.DocumentTouch && document instanceof window.DocumentTouch)) && !chromebook; var isInternetExplorer = (navigator.userAgent.toLowerCase().indexOf('msie') != -1 || navigator.userAgent.toLowerCase().indexOf('trident') != -1); @@ -160,10 +162,7 @@ global.mode = { isChromebook: function() { - if (!window.ThisIsTheAndroidApp) - return false; - - return window.LOOLMessageHandler.isChromeOS(); + return chromebook; }, // Here "mobile" means "mobile phone" (at least for now). Has to match small screen size // requirement. ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/README
android/README |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 9a6bb8a55d9a1a80ba5c502dd3ec09ecbfcee68b Author: Jan Holesovsky AuthorDate: Thu Aug 6 14:21:24 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Aug 6 15:44:01 2020 +0200 android: Update the location of the .so files for debugging in the README. Change-Id: I0a291236a87c3c70e93d6558e94a506099d4b4ae Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100240 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/README b/android/README index 5cffa4b4f..5cce3b327 100644 --- a/android/README +++ b/android/README @@ -170,7 +170,7 @@ to setup lldb to actually read & use them. and rebuild using 'make'. -* Add android/source/obj/local/armeabi-v7a from core.git as a Symbol Directory +* Add android/obj/local/armeabi-v7a from core.git as a Symbol Directory In Android Studio, choose Run -> Debug... -> Edit Configurations... @@ -180,7 +180,7 @@ to setup lldb to actually read & use them. Symbol Directories: here add the full path, like -/local/libreoffice/master-android/android/source/obj/local/armeabi-v7a +/local/libreoffice/master-android/android/obj/local/armeabi-v7a This path contains the non-stripped version of the liblo-native-code.so, and the debugger will read the symbols from that one (even if the APK contains @@ -190,7 +190,7 @@ to setup lldb to actually read & use them. [Alternatively you can add the following to your ~/.lldbinit instead: settings set target.inline-breakpoint-strategy always -settings append target.exec-search-paths /local/libreoffice/master-android/android/source/obj/local/armeabi-v7a +settings append target.exec-search-paths /local/libreoffice/master-android/android/obj/local/armeabi-v7a ] * To use pretty printers for types like OUString, add the following to your ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/app
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java | 103 -- android/app/src/main/res/layout/activity_document_browser.xml |1 2 files changed, 45 insertions(+), 59 deletions(-) New commits: commit 3fc3af072074efbebe8763b4cdff21ade8915eb3 Author: Jan Holesovsky AuthorDate: Thu Aug 6 14:41:37 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Aug 6 15:41:25 2020 +0200 android: Make the "create new file" FAB always visible. There were reports that it didn't appear after a new installation. I failed to reproduce that, but I can imagine it might have happened, seeing the code. But it is not important to hide it any more, because we are using the Content providers now. When at this, make the FAB rotate the other direction, to look more consistent with the appearing / disappearing buttons. Change-Id: I92e01c7190405c2d4869edd50a9da011558306af Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100246 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index e89913628..80e5efeb6 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -442,7 +442,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings if (isFabMenuOpen) return; - ViewCompat.animate(editFAB).rotation(45f).withLayer().setDuration(300).setInterpolator(new OvershootInterpolator(0f)).start(); + ViewCompat.animate(editFAB).rotation(-45f).withLayer().setDuration(300).setInterpolator(new OvershootInterpolator(0f)).start(); impressLayout.startAnimation(fabOpenAnimation); writerLayout.startAnimation(fabOpenAnimation); calcLayout.startAnimation(fabOpenAnimation); @@ -929,8 +929,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_STORAGE); -} else { -setEditFABVisibility(View.VISIBLE); } Log.d(LOGTAG, "onStart"); } @@ -1038,65 +1036,54 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings } } -private void setEditFABVisibility(final int visibility) { -LibreOfficeApplication.getMainHandler().post(new Runnable() { -@Override -public void run() { -editFAB.setVisibility(visibility); -} -}); -} - @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case PERMISSION_WRITE_EXTERNAL_STORAGE: -if (permissions.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { -setEditFABVisibility(View.VISIBLE); -} else { -setEditFABVisibility(View.INVISIBLE); -if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { -boolean showRationale = shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE); -androidx.appcompat.app.AlertDialog.Builder rationaleDialogBuilder = new androidx.appcompat.app.AlertDialog.Builder(this) -.setCancelable(false) - .setTitle(getString(R.string.title_permission_required)) - .setMessage(getString(R.string.reason_required_to_read_documents)); -if (showRationale) { - rationaleDialogBuilder.setPositiveButton(getString(R.string.positive_ok), new DialogInterface.OnClickListener() { -@Override -public void onClick(DialogInterface dialog, int which) { - ActivityCompat.requestPermissions(LibreOfficeUIActivity.this, -new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, -PERMISSION_WRITE_EXTERNAL_STORAGE); -} -}) - .setNegativeButton(getString(R.string.negative_im_sure), new DialogInterface.OnClickListener() { -@Override -public void onClick(DialogInterface dialog, int which) { -
[Libreoffice-commits] online.git: android/app
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java | 103 -- android/app/src/main/res/layout/activity_document_browser.xml |1 2 files changed, 45 insertions(+), 59 deletions(-) New commits: commit 2508d83e509c7f748afdb784799b2ebfc572e9d1 Author: Jan Holesovsky AuthorDate: Thu Aug 6 14:41:37 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Aug 6 15:40:09 2020 +0200 android: Make the "create new file" FAB always visible. There were reports that it didn't appear after a new installation. I failed to reproduce that, but I can imagine it might have happened, seeing the code. But it is not important to hide it any more, because we are using the Content providers now. When at this, make the FAB rotate the other direction, to look more consistent with the appearing / disappearing buttons. Change-Id: I92e01c7190405c2d4869edd50a9da011558306af Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100219 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index e89913628..80e5efeb6 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -442,7 +442,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings if (isFabMenuOpen) return; - ViewCompat.animate(editFAB).rotation(45f).withLayer().setDuration(300).setInterpolator(new OvershootInterpolator(0f)).start(); + ViewCompat.animate(editFAB).rotation(-45f).withLayer().setDuration(300).setInterpolator(new OvershootInterpolator(0f)).start(); impressLayout.startAnimation(fabOpenAnimation); writerLayout.startAnimation(fabOpenAnimation); calcLayout.startAnimation(fabOpenAnimation); @@ -929,8 +929,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_STORAGE); -} else { -setEditFABVisibility(View.VISIBLE); } Log.d(LOGTAG, "onStart"); } @@ -1038,65 +1036,54 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings } } -private void setEditFABVisibility(final int visibility) { -LibreOfficeApplication.getMainHandler().post(new Runnable() { -@Override -public void run() { -editFAB.setVisibility(visibility); -} -}); -} - @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case PERMISSION_WRITE_EXTERNAL_STORAGE: -if (permissions.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { -setEditFABVisibility(View.VISIBLE); -} else { -setEditFABVisibility(View.INVISIBLE); -if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { -boolean showRationale = shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE); -androidx.appcompat.app.AlertDialog.Builder rationaleDialogBuilder = new androidx.appcompat.app.AlertDialog.Builder(this) -.setCancelable(false) - .setTitle(getString(R.string.title_permission_required)) - .setMessage(getString(R.string.reason_required_to_read_documents)); -if (showRationale) { - rationaleDialogBuilder.setPositiveButton(getString(R.string.positive_ok), new DialogInterface.OnClickListener() { -@Override -public void onClick(DialogInterface dialog, int which) { - ActivityCompat.requestPermissions(LibreOfficeUIActivity.this, -new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, -PERMISSION_WRITE_EXTERNAL_STORAGE); -} -}) - .setNegativeButton(getString(R.string.negative_im_sure), new DialogInterface.OnClickListener() { -@Override -public void onClick(DialogInterface dialog, int which) { - LibreO
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - vcl/source
vcl/source/window/toolbox2.cxx |6 -- 1 file changed, 6 deletions(-) New commits: commit 5c7c2a3ff333e79d8010a3fa1218274e6de5ef0b Author: Jan Holesovsky AuthorDate: Thu Jul 23 14:06:57 2020 +0200 Commit: Andras Timar CommitDate: Mon Aug 3 07:32:09 2020 +0200 Revert "android: avoid expensive load of un-used sidebar icons on mobile." Unfortunately we need this on Android for the tablets, otherwise the sidebar lacks the icons. Also it is not easily possible to use the isLOKMobilePhone() check here, because that is per-view in general, and handled in sfx in particular, making it hard to use here in vcl. This reverts commit 9a38b194eec5bcf6cb8d073e5d35173c5856f28f. Change-Id: I2b599e884ad4d00b7c246743c180a5324c9a143d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99329 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index b3313518ab69..95813d97e4e8 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -20,7 +20,6 @@ #include #include -#include #include #include @@ -426,12 +425,7 @@ void ToolBox::InsertItem(const OUString& rCommand, const css::uno::Reference sal_uInt16! ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: vcl/source
vcl/source/window/toolbox2.cxx |6 -- 1 file changed, 6 deletions(-) New commits: commit 425e29eb8c71c047507d8fdc3a294f2f03829f6f Author: Jan Holesovsky AuthorDate: Thu Jul 23 14:06:57 2020 +0200 Commit: Andras Timar CommitDate: Sun Aug 2 11:30:15 2020 +0200 Revert "android: avoid expensive load of un-used sidebar icons on mobile." Unfortunately we need this on Android for the tablets, otherwise the sidebar lacks the icons. Also it is not easily possible to use the isLOKMobilePhone() check here, because that is per-view in general, and handled in sfx in particular, making it hard to use here in vcl. This reverts commit 9a38b194eec5bcf6cb8d073e5d35173c5856f28f. Change-Id: I2b599e884ad4d00b7c246743c180a5324c9a143d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99300 Tested-by: Jenkins Reviewed-by: Andras Timar diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index b15e97f14dcf..b7e7f8ea209f 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -20,7 +20,6 @@ #include #include -#include #include #include @@ -435,12 +434,7 @@ void ToolBox::InsertItem(const OUString& rCommand, const css::uno::Reference sal_uInt16! ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |2 ++ 1 file changed, 2 insertions(+) New commits: commit f869b84f4b6ad86a9ce478272f2a13c3580e1970 Author: Jan Holesovsky AuthorDate: Fri Jul 17 16:02:46 2020 +0200 Commit: Andras Timar CommitDate: Wed Jul 29 10:41:28 2020 +0200 android: Log when we disable editing for easier debugging. Change-Id: I358b1a50be7f9f377e9376f8b1772ad92fd059ae Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98960 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 221c83174..24319e215 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -272,6 +272,7 @@ public class LOActivity extends AppCompatActivity { // is it read-only? if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Read-only"); Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); } @@ -282,6 +283,7 @@ public class LOActivity extends AppCompatActivity { if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Chrome OS unsupported content providers"); Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - configmgr/source
configmgr/source/access.cxx | 24 ++-- 1 file changed, 10 insertions(+), 14 deletions(-) New commits: commit 4c023e32a8116f2300407372204e3f6b426f2b71 Author: Jan Holesovsky AuthorDate: Thu Jul 23 00:42:42 2020 +0200 Commit: Andras Timar CommitDate: Tue Jul 28 09:37:05 2020 +0200 configmgr: Use a proper LanguageTag-based locale fallback mechanism. Without this, zh-Hant-TW locale used via the LibreOfficeKit was reduced to zh-Hant and further to zh, which was interpreted as zh-CN, causing incorrect strings particularly in the sidebar. Change-Id: I58e53f71d13824e422a7b3634f3822d55090f8ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99262 Reviewed-by: Andras Timar Tested-by: Andras Timar diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx index 0c89942cb0c8..8957ed7841c5 100644 --- a/configmgr/source/access.cxx +++ b/configmgr/source/access.cxx @@ -1390,29 +1390,25 @@ rtl::Reference< ChildAccess > Access::getChild(OUString const & name) { locale = comphelper::LibreOfficeKit::getLanguageTag().getBcp47(); if (!locale.isEmpty()) { -// Find best match using an adaption of RFC 4647 lookup matching -// rules, removing "-" or "_" delimited segments from the end: -for (;;) { -rtl::Reference< ChildAccess > child(getChild(locale)); -if (child.is()) { +// Find the best match using the LanguageTag fallback mechanism +std::vector aFallbacks = LanguageTag(locale).getFallbackStrings(true); +for (const OUString& rFallback : aFallbacks) +{ +rtl::Reference child(getChild(rFallback)); +if (child.is()) return child; -} -sal_Int32 i = locale.getLength() - 1; -while (i > 0 && locale[i] != '-' && locale[i] != '_') { ---i; -} -if (i <= 0) { -break; -} -locale = locale.copy(0, i); } + // As a workaround for broken xcu data that does not use shortest // xml:lang attributes, look for the first entry with the same first // segment as the requested language tag before falling back to // defaults (see fdo#33638): +assert(aFallbacks.size() > 0); +locale = aFallbacks[aFallbacks.size() - 1]; assert( !locale.isEmpty() && locale.indexOf('-') == -1 && locale.indexOf('_') == -1); + std::vector< rtl::Reference< ChildAccess > > children( getAllChildren()); for (auto const& child : children) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - vcl/source
vcl/source/window/toolbox2.cxx |6 -- 1 file changed, 6 deletions(-) New commits: commit 8cf49d72e4688c0c83d6c073384f1345e45a777f Author: Jan Holesovsky AuthorDate: Thu Jul 23 14:06:57 2020 +0200 Commit: Andras Timar CommitDate: Tue Jul 28 09:35:43 2020 +0200 Revert "android: avoid expensive load of un-used sidebar icons on mobile." Unfortunately we need this on Android for the tablets, otherwise the sidebar lacks the icons. Also it is not easily possible to use the isLOKMobilePhone() check here, because that is per-view in general, and handled in sfx in particular, making it hard to use here in vcl. This reverts commit 9a38b194eec5bcf6cb8d073e5d35173c5856f28f. Change-Id: I2b599e884ad4d00b7c246743c180a5324c9a143d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99328 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index ade4c3360df8..48accb906242 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -20,7 +20,6 @@ #include #include -#include #include #include @@ -425,12 +424,7 @@ void ToolBox::InsertItem(const OUString& rCommand, const css::uno::Reference sal_uInt16! ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-4' - .gitreview
.gitreview |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 2255ce452ec026a8fa61ccfc5e41800b94175fbf Author: Jan Holesovsky AuthorDate: Fri Jul 24 11:59:14 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 24 12:01:53 2020 +0200 Update .gitreview for co-4-2-4. Change-Id: I9386d9ae5f0e3761c22ebcb3e890a1c572025cb8 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99362 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/.gitreview b/.gitreview index 71d55941e..62b13043a 100644 --- a/.gitreview +++ b/.gitreview @@ -3,5 +3,5 @@ host=gerrit.libreoffice.org port=29418 project=online defaultremote=logerrit -defaultbranch=distro/collabora/co-4-2 +defaultbranch=distro/collabora/co-4-2-4 ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Changes to 'refs/tags/cp-4.2.5-6'
Tag 'cp-4.2.5-6' created by Andras Timar at 2020-07-23 14:40 + cp-4.2.5-6 Changes since cp-4.2.5-5-14: --- 0 files changed --- ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - configmgr/source
configmgr/source/access.cxx | 24 ++-- 1 file changed, 10 insertions(+), 14 deletions(-) New commits: commit 9f8c77d87671ca0da124045d82cbe88fbaba3728 Author: Jan Holesovsky AuthorDate: Thu Jul 23 00:42:42 2020 +0200 Commit: Andras Timar CommitDate: Thu Jul 23 10:40:45 2020 +0200 configmgr: Use a proper LanguageTag-based locale fallback mechanism. Without this, zh-Hant-TW locale used via the LibreOfficeKit was reduced to zh-Hant and further to zh, which was interpreted as zh-CN, causing incorrect strings particularly in the sidebar. Change-Id: I58e53f71d13824e422a7b3634f3822d55090f8ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99263 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx index e07fc8446f51..0308a0361761 100644 --- a/configmgr/source/access.cxx +++ b/configmgr/source/access.cxx @@ -1385,29 +1385,25 @@ rtl::Reference< ChildAccess > Access::getChild(OUString const & name) { locale = comphelper::LibreOfficeKit::getLanguageTag().getBcp47(); if (!locale.isEmpty()) { -// Find best match using an adaptation of RFC 4647 lookup matching -// rules, removing "-" or "_" delimited segments from the end: -for (;;) { -rtl::Reference< ChildAccess > child(getChild(locale)); -if (child.is()) { +// Find the best match using the LanguageTag fallback mechanism +std::vector aFallbacks = LanguageTag(locale).getFallbackStrings(true); +for (const OUString& rFallback : aFallbacks) +{ +rtl::Reference child(getChild(rFallback)); +if (child.is()) return child; -} -sal_Int32 i = locale.getLength() - 1; -while (i > 0 && locale[i] != '-' && locale[i] != '_') { ---i; -} -if (i <= 0) { -break; -} -locale = locale.copy(0, i); } + // As a workaround for broken xcu data that does not use shortest // xml:lang attributes, look for the first entry with the same first // segment as the requested language tag before falling back to // defaults (see fdo#33638): +assert(aFallbacks.size() > 0); +locale = aFallbacks[aFallbacks.size() - 1]; assert( !locale.isEmpty() && locale.indexOf('-') == -1 && locale.indexOf('_') == -1); + std::vector< rtl::Reference< ChildAccess > > children( getAllChildren()); for (auto const& child : children) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: configmgr/source
configmgr/source/access.cxx | 24 ++-- 1 file changed, 10 insertions(+), 14 deletions(-) New commits: commit dfc28be2487c13be36a90efd778b8d8f179c589d Author: Jan Holesovsky AuthorDate: Thu Jul 23 00:42:42 2020 +0200 Commit: Andras Timar CommitDate: Thu Jul 23 10:40:27 2020 +0200 configmgr: Use a proper LanguageTag-based locale fallback mechanism. Without this, zh-Hant-TW locale used via the LibreOfficeKit was reduced to zh-Hant and further to zh, which was interpreted as zh-CN, causing incorrect strings particularly in the sidebar. Change-Id: I58e53f71d13824e422a7b3634f3822d55090f8ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99203 Tested-by: Jenkins Reviewed-by: Andras Timar diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx index e07fc8446f51..0308a0361761 100644 --- a/configmgr/source/access.cxx +++ b/configmgr/source/access.cxx @@ -1385,29 +1385,25 @@ rtl::Reference< ChildAccess > Access::getChild(OUString const & name) { locale = comphelper::LibreOfficeKit::getLanguageTag().getBcp47(); if (!locale.isEmpty()) { -// Find best match using an adaptation of RFC 4647 lookup matching -// rules, removing "-" or "_" delimited segments from the end: -for (;;) { -rtl::Reference< ChildAccess > child(getChild(locale)); -if (child.is()) { +// Find the best match using the LanguageTag fallback mechanism +std::vector aFallbacks = LanguageTag(locale).getFallbackStrings(true); +for (const OUString& rFallback : aFallbacks) +{ +rtl::Reference child(getChild(rFallback)); +if (child.is()) return child; -} -sal_Int32 i = locale.getLength() - 1; -while (i > 0 && locale[i] != '-' && locale[i] != '_') { ---i; -} -if (i <= 0) { -break; -} -locale = locale.copy(0, i); } + // As a workaround for broken xcu data that does not use shortest // xml:lang attributes, look for the first entry with the same first // segment as the requested language tag before falling back to // defaults (see fdo#33638): +assert(aFallbacks.size() > 0); +locale = aFallbacks[aFallbacks.size() - 1]; assert( !locale.isEmpty() && locale.indexOf('-') == -1 && locale.indexOf('_') == -1); + std::vector< rtl::Reference< ChildAccess > > children( getAllChildren()); for (auto const& child : children) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |2 ++ 1 file changed, 2 insertions(+) New commits: commit 44c16220d9ef4e252a7133fee91645b1d6f1b8b2 Author: Jan Holesovsky AuthorDate: Fri Jul 17 16:02:46 2020 +0200 Commit: Andras Timar CommitDate: Tue Jul 21 20:48:19 2020 +0200 android: Log when we disable editing for easier debugging. Change-Id: I358b1a50be7f9f377e9376f8b1772ad92fd059ae Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98959 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 221c83174..24319e215 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -272,6 +272,7 @@ public class LOActivity extends AppCompatActivity { // is it read-only? if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Read-only"); Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); } @@ -282,6 +283,7 @@ public class LOActivity extends AppCompatActivity { if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Chrome OS unsupported content providers"); Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |2 ++ 1 file changed, 2 insertions(+) New commits: commit edd1b83345169c75bbedb022567f4e2cacd64e5d Author: Jan Holesovsky AuthorDate: Fri Jul 17 16:02:46 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 17 16:12:02 2020 +0200 android: Log when we disable editing for easier debugging. Change-Id: I358b1a50be7f9f377e9376f8b1772ad92fd059ae Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98976 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 221c83174..24319e215 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -272,6 +272,7 @@ public class LOActivity extends AppCompatActivity { // is it read-only? if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Read-only"); Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); } @@ -282,6 +283,7 @@ public class LOActivity extends AppCompatActivity { if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; +Log.d(TAG, "Disabled editing: Chrome OS unsupported content providers"); Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 18 +++--- android/lib/src/main/res/values/strings.xml |1 2 files changed, 14 insertions(+), 5 deletions(-) New commits: commit 04f8a66c5d2f1e1870bc382f45e6eebbcda3949f Author: Jan Holesovsky AuthorDate: Fri Jul 17 09:56:25 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 17 16:04:26 2020 +0200 android: One more location that fails to save on Chrome OS. Turns out that saving directly to "My files" is problematic in some cases too; suggest to use the "Play files" location. Change-Id: Ifb88fc048685596f85e7cf39a57c60864da12d83 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98954 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index e904c6d74..221c83174 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -267,15 +267,23 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData() != null) { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { -isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; +isDocEditable = true; + +// is it read-only? +if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { +isDocEditable = false; +Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +} // turns out that on ChromeOS, it is not possible to save back // to Google Drive; detect it already here to avoid disappointment -if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +// also the volumeprovider does not work for saving back, +// which is much more serious :-( +if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || + getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; - -if (!isDocEditable) -Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); +} if (copyFileToTemp() && mTempFile != null) { documentUri = mTempFile.toURI(); diff --git a/android/lib/src/main/res/values/strings.xml b/android/lib/src/main/res/values/strings.xml index dff5fb931..5fcb5e742 100644 --- a/android/lib/src/main/res/values/strings.xml +++ b/android/lib/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ This file is read-only, saving is disabled. +This file cannot be saved in this location, opening it read-only. Move it to the "Play files" for full read/write access. Storage permission is required Failed to determine the file to load Failed to insert image ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 18 +++--- android/lib/src/main/res/values/strings.xml |1 2 files changed, 14 insertions(+), 5 deletions(-) New commits: commit 95d683f6ab84132c11f41bf4873b50327b32ba05 Author: Jan Holesovsky AuthorDate: Fri Jul 17 09:56:25 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 17 11:29:47 2020 +0200 android: One more location that fails to save on Chrome OS. Turns out that saving directly to "My files" is problematic in some cases too; suggest to use the "Play files" location. Change-Id: Ifb88fc048685596f85e7cf39a57c60864da12d83 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98955 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index e904c6d74..221c83174 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -267,15 +267,23 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData() != null) { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { -isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; +isDocEditable = true; + +// is it read-only? +if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { +isDocEditable = false; +Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +} // turns out that on ChromeOS, it is not possible to save back // to Google Drive; detect it already here to avoid disappointment -if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +// also the volumeprovider does not work for saving back, +// which is much more serious :-( +if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || + getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; - -if (!isDocEditable) -Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); +} if (copyFileToTemp() && mTempFile != null) { documentUri = mTempFile.toURI(); diff --git a/android/lib/src/main/res/values/strings.xml b/android/lib/src/main/res/values/strings.xml index dff5fb931..5fcb5e742 100644 --- a/android/lib/src/main/res/values/strings.xml +++ b/android/lib/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ This file is read-only, saving is disabled. +This file cannot be saved in this location, opening it read-only. Move it to the "Play files" for full read/write access. Storage permission is required Failed to determine the file to load Failed to insert image ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 18 +++--- android/lib/src/main/res/values/strings.xml |1 2 files changed, 14 insertions(+), 5 deletions(-) New commits: commit 2c739a852b3b44e8a08967e79d144554cbadbf15 Author: Jan Holesovsky AuthorDate: Fri Jul 17 09:56:25 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 17 11:07:14 2020 +0200 android: One more location that fails to save on Chrome OS. Turns out that saving directly to "My files" is problematic in some cases too; suggest to use the "Play files" location. Change-Id: Ifb88fc048685596f85e7cf39a57c60864da12d83 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98943 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index e904c6d74..221c83174 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -267,15 +267,23 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData() != null) { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { -isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; +isDocEditable = true; + +// is it read-only? +if ((getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { +isDocEditable = false; +Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +} // turns out that on ChromeOS, it is not possible to save back // to Google Drive; detect it already here to avoid disappointment -if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +// also the volumeprovider does not work for saving back, +// which is much more serious :-( +if (isDocEditable && (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile") || + getIntent().getData().toString().startsWith("content://org.chromium.arc.volumeprovider/"))) { isDocEditable = false; - -if (!isDocEditable) -Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); +Toast.makeText(this, getResources().getString(R.string.file_chromeos_read_only), Toast.LENGTH_LONG).show(); +} if (copyFileToTemp() && mTempFile != null) { documentUri = mTempFile.toURI(); diff --git a/android/lib/src/main/res/values/strings.xml b/android/lib/src/main/res/values/strings.xml index dff5fb931..5fcb5e742 100644 --- a/android/lib/src/main/res/values/strings.xml +++ b/android/lib/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ This file is read-only, saving is disabled. +This file cannot be saved in this location, opening it read-only. Move it to the "Play files" for full read/write access. Storage permission is required Failed to determine the file to load Failed to insert image ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: loleaflet/src
loleaflet/src/map/Map.js | 10 ++ 1 file changed, 10 insertions(+) New commits: commit 8d4f800b69de4239a397558d032863bdd86bcf44 Author: Jan Holesovsky AuthorDate: Wed Jul 15 23:24:55 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 16 11:53:33 2020 +0200 android: Hide sidebar on Chromebooks early. This is a hack - but I fear the best we can do just now. The problem is that the sidebar is always initialized at the startup, just for mobile phones and tablets, we don't show it thanks to an early exit in _launchSidebar() when the app starts in read-only mode (which it does for phones and tablets). Now when we have switched the Chromebook UI to the desktop one, we need to explicitly turn the sidebar off on start, because otherwise it occupies too much screen. Of course - much better would be not to initialize the sidebar at all when it is not necessary - but there's no easy way to do that :-( Change-Id: I0340d125181285dcebda4ff78971182a7072dddb Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98866 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 8d1f0302a..5072ce692 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -289,6 +289,16 @@ L.Map = L.Evented.extend({ if (window.mode.isDesktop() && !window.ThisIsAMobileApp) { map._socket.sendMessage('uno .uno:SidebarShow'); } + else if (window.mode.isChromebook()) { + // HACK - currently the sidebar shows when loaded, + // with the exception of mobile phones & tablets - but + // there, it does not show only because they start + // with read/only mode which hits an early exit in + // _launchSidebar() in Control.LokDialog.js + // So for the moment, let's just hide it on + // Chromebooks early + map._socket.sendMessage('uno .uno:SidebarHide'); + } }, 200); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib kit/ChildSession.cpp loleaflet/src
android/lib/src/main/cpp/androidapp.cpp | 54 +-- android/lib/src/main/cpp/androidapp.hpp |3 + kit/ChildSession.cpp | 10 + loleaflet/src/control/Control.Toolbar.js |6 --- 4 files changed, 51 insertions(+), 22 deletions(-) New commits: commit 1b3732b941e90223301fecda66f84b01fc397bad Author: Jan Holesovsky AuthorDate: Tue Jul 14 14:27:03 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 16 11:52:58 2020 +0200 android: Call the SAVE directly from the native code. Until now, for the "local save has completed, upload it back to the content: URI" messages we were relying on the "local save" -> JavaScript -> Java -> "upload to content:/ URI" chain. It turns out though, that the WebView can be dead by the time we need the notification that the save has completed. This was particularly seen on ChromeOS when the document was closed using the [x] in the window decoration. As a solution, we need to pass the info that the "local save" has completed directly to Java. So far this uses the same semantics as the postMobileMessage() and reuse its code; but maybe in the future we'll need to split this. Change-Id: If1b93e4f76cee3abc6aebfc3e9072810ab73bb42 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98773 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/cpp/androidapp.cpp b/android/lib/src/main/cpp/androidapp.cpp index 6d196434b..59a9be2dd 100644 --- a/android/lib/src/main/cpp/androidapp.cpp +++ b/android/lib/src/main/cpp/androidapp.cpp @@ -36,6 +36,10 @@ static int closeNotificationPipeForForwardingThread[2] = {-1, -1}; static JavaVM* javaVM = nullptr; static bool lokInitialized = false; +// Remember the reference to the LOActivity +jclass g_loActivityClz = nullptr; +jobject g_loActivityObj = nullptr; + extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { javaVM = vm; @@ -90,7 +94,7 @@ public: JNIEnv *getEnv() const { return _env; } }; -static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject loActivityObj, const std::vector& buffer) +static void send2JS(const JNIThreadContext &jctx, const std::vector& buffer) { LOG_DBG("Send to JS: " << LOOLProtocol::getAbbreviatedMessage(buffer.data(), buffer.size())); @@ -150,8 +154,22 @@ static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject JNIEnv *env = jctx.getEnv(); jstring jstr = env->NewStringUTF(js.c_str()); -jmethodID callFakeWebsocket = env->GetMethodID(loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); -env->CallVoidMethod(loActivityObj, callFakeWebsocket, jstr); +jmethodID callFakeWebsocket = env->GetMethodID(g_loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callFakeWebsocket, jstr); +env->DeleteLocalRef(jstr); + +if (env->ExceptionCheck()) +env->ExceptionDescribe(); +} + +void postDirectMessage(std::string message) +{ +JNIThreadContext ctx; +JNIEnv *env = ctx.getEnv(); + +jstring jstr = env->NewStringUTF(message.c_str()); +jmethodID callPostMobileMessage = env->GetMethodID(g_loActivityClz, "postMobileMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callPostMobileMessage, jstr); env->DeleteLocalRef(jstr); if (env->ExceptionCheck()) @@ -171,7 +189,7 @@ void closeDocument() /// Handle a message from JavaScript. extern "C" JNIEXPORT void JNICALL -Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject instance, jstring message) +Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject, jstring message) { const char *string_value = env->GetStringUTFChars(message, nullptr); @@ -198,11 +216,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, fakeSocketPipe2(closeNotificationPipeForForwardingThread); // Start another thread to read responses and forward them to the JavaScript -jclass clz = env->GetObjectClass(instance); -jclass loActivityClz = (jclass) env->NewGlobalRef(clz); -jobject loActivityObj = env->NewGlobalRef(instance); - -std::thread([loActivityClz, loActivityObj, currentFakeClientFd] +std::thread([currentFakeClientFd] { Util::setThreadName("app2js"); JNIThreadContext ctx; @@ -239,7 +253,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, return; std::vector buf(n); n = fakeSocketRead(currentFakeClientFd, buf.data()
[Libreoffice-commits] online.git: android/app android/lib loleaflet/js
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java |7 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 15 ++ loleaflet/js/global.js | 15 ++ 3 files changed, 31 insertions(+), 6 deletions(-) New commits: commit f29c1cc3ea928c511d82cb93126412e099266759 Author: Jan Holesovsky AuthorDate: Wed Jul 15 21:29:23 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 16 11:53:17 2020 +0200 android: Actually use the Desktop browser UI for Chromebooks. Chromebooks are not touch devices, the desktop browser-like UI makes much more sense there. Change-Id: Id963929e781f2baff32a65e0437afb4dfd8460a3 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98865 Tested-by: Jenkins CollaboraOffice Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index f44723861..e89913628 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -678,11 +678,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings return true; } -/** True if the App is running under ChromeOS. */ -private boolean isChromeOS() { -return getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); -} - /** Start an ACTION_OPEN_DOCUMENT Intent to trigger opening a document. */ private void openDocument() { collapseFabMenu(); @@ -700,7 +695,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings // impossible to choose any files, unless they notice the dropdown in // the bottom left and choose "All files". Interestingly, SVG / SVGZ // are shown there as an option, the other mime types are just blank -if (!isChromeOS()) { +if (!LOActivity.isChromeOS(this)) { final String[] mimeTypes = new String[] { // ODF "application/vnd.oasis.opendocument.text", diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 3374ff4ca..e904c6d74 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -16,6 +16,7 @@ import android.content.ClipDescription; import android.content.ClipboardManager; import android.content.ActivityNotFoundException; import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -210,6 +211,11 @@ public class LOActivity extends AppCompatActivity { return mMainHandler; } +/** True if the App is running under ChromeOS. */ +public static boolean isChromeOS(Context context) { +return context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); +} + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -776,6 +782,15 @@ public class LOActivity extends AppCompatActivity { Log.d(TAG, "postMobileDebug: " + message); } +/** + * Provide the info that this app is actually running under ChromeOS - so + * has to mostly look like on desktop. + */ +@JavascriptInterface +public boolean isChromeOS() { +return isChromeOS(this); +} + /** * Passing message the other way around - from Java to the FakeWebSocket in JS. */ diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js index 0ed660e69..f1046a3c9 100644 --- a/loleaflet/js/global.js +++ b/loleaflet/js/global.js @@ -143,9 +143,18 @@ }; global.mode = { + isChromebook: function() { + if (!window.ThisIsTheAndroidApp) + return false; + + return window.LOOLMessageHandler.isChromeOS(); + }, // Here "mobile" means "mobile phone" (at least for now). Has to match small screen size // requirement. isMobile: function() { + if (global.mode.isChromebook()) + return false; + if (L.Browser.mobile && L.Browser.cypressTest) { return true; } @@ -154,9 +163,15 @@ }, // Mobile device with big screen size. isTablet: function() { +
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - loleaflet/src
loleaflet/src/map/Map.js | 10 ++ 1 file changed, 10 insertions(+) New commits: commit a16e845a239b93093a5190986cdd2b5804334453 Author: Jan Holesovsky AuthorDate: Wed Jul 15 23:24:55 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 16 11:52:21 2020 +0200 android: Hide sidebar on Chromebooks early. This is a hack - but I fear the best we can do just now. The problem is that the sidebar is always initialized at the startup, just for mobile phones and tablets, we don't show it thanks to an early exit in _launchSidebar() when the app starts in read-only mode (which it does for phones and tablets). Now when we have switched the Chromebook UI to the desktop one, we need to explicitly turn the sidebar off on start, because otherwise it occupies too much screen. Of course - much better would be not to initialize the sidebar at all when it is not necessary - but there's no easy way to do that :-( Change-Id: I0340d125181285dcebda4ff78971182a7072dddb Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98864 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 5f9882a53..0368915e3 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -304,6 +304,16 @@ L.Map = L.Evented.extend({ if (window.mode.isDesktop() && !window.ThisIsAMobileApp) { map._socket.sendMessage('uno .uno:SidebarShow'); } + else if (window.mode.isChromebook()) { + // HACK - currently the sidebar shows when loaded, + // with the exception of mobile phones & tablets - but + // there, it does not show only because they start + // with read/only mode which hits an early exit in + // _launchSidebar() in Control.LokDialog.js + // So for the moment, let's just hide it on + // Chromebooks early + map._socket.sendMessage('uno .uno:SidebarHide'); + } }, 200); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/app android/lib loleaflet/js
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java |7 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 15 ++ loleaflet/js/global.js | 15 ++ 3 files changed, 31 insertions(+), 6 deletions(-) New commits: commit 0d09490f831d0f8fa17cc1758cd6fb2259c032c8 Author: Jan Holesovsky AuthorDate: Wed Jul 15 21:29:23 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 16 11:51:49 2020 +0200 android: Actually use the Desktop browser UI for Chromebooks. Chromebooks are not touch devices, the desktop browser-like UI makes much more sense there. Change-Id: Id963929e781f2baff32a65e0437afb4dfd8460a3 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98863 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index f44723861..e89913628 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -678,11 +678,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings return true; } -/** True if the App is running under ChromeOS. */ -private boolean isChromeOS() { -return getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); -} - /** Start an ACTION_OPEN_DOCUMENT Intent to trigger opening a document. */ private void openDocument() { collapseFabMenu(); @@ -700,7 +695,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings // impossible to choose any files, unless they notice the dropdown in // the bottom left and choose "All files". Interestingly, SVG / SVGZ // are shown there as an option, the other mime types are just blank -if (!isChromeOS()) { +if (!LOActivity.isChromeOS(this)) { final String[] mimeTypes = new String[] { // ODF "application/vnd.oasis.opendocument.text", diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 3374ff4ca..e904c6d74 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -16,6 +16,7 @@ import android.content.ClipDescription; import android.content.ClipboardManager; import android.content.ActivityNotFoundException; import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -210,6 +211,11 @@ public class LOActivity extends AppCompatActivity { return mMainHandler; } +/** True if the App is running under ChromeOS. */ +public static boolean isChromeOS(Context context) { +return context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); +} + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -776,6 +782,15 @@ public class LOActivity extends AppCompatActivity { Log.d(TAG, "postMobileDebug: " + message); } +/** + * Provide the info that this app is actually running under ChromeOS - so + * has to mostly look like on desktop. + */ +@JavascriptInterface +public boolean isChromeOS() { +return isChromeOS(this); +} + /** * Passing message the other way around - from Java to the FakeWebSocket in JS. */ diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js index 5e0007d43..619bb91db 100644 --- a/loleaflet/js/global.js +++ b/loleaflet/js/global.js @@ -143,9 +143,18 @@ }; global.mode = { + isChromebook: function() { + if (!window.ThisIsTheAndroidApp) + return false; + + return window.LOOLMessageHandler.isChromeOS(); + }, // Here "mobile" means "mobile phone" (at least for now). Has to match small screen size // requirement. isMobile: function() { + if (global.mode.isChromebook()) + return false; + if (L.Browser.mobile && L.Browser.cypressTest) { return true; } @@ -154,9 +163,15 @@ }, // Mobile device with big screen size. isTablet: function() { +
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |6 ++ 1 file changed, 6 insertions(+) New commits: commit 0306b029ab078a2e83ad4f1eee2d7b44ad85545e Author: Jan Holesovsky AuthorDate: Fri Jul 3 23:07:47 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:46:17 2020 +0200 android: On ChromeOS, load files from Google Drive read-only. Apparently it is not possible to save to Google Drive yet. Unfortunately I don't have a proof in the documentation or anywhere on the net, but the good indication of this is that the Intent.ACTION_CREATE_DOCUMENT does not offer Google Drive (while it does on a "normal" Android). Change-Id: I521b866fd783b81a2bb9eace84354b5564ebabee Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97914 Tested-by: Jenkins CollaboraOffice Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 6111fc700..3374ff4ca 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -262,6 +262,12 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; + +// turns out that on ChromeOS, it is not possible to save back +// to Google Drive; detect it already here to avoid disappointment +if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +isDocEditable = false; + if (!isDocEditable) Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/app
android/app/src/main/AndroidManifest.xml | 47 +++ 1 file changed, 47 insertions(+) New commits: commit 7b772cb213bbac148b6ea16dc76afe8297c6e875 Author: Jan Holesovsky AuthorDate: Tue Jul 14 20:13:47 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:45:23 2020 +0200 android: Add support for ODT/ODS/ODP for Chrome OS. Turns out that the ODF mime types are most probably not supported by Chrome OS, because the android:mimeType=... is not enough to associate the app with the ODT/ODP/ODS files. So introduce an additional intent-filter that explicitly matches according to the file extension; a bit hacky, but works. Change-Id: If7cad4214e8d16f96d035380460d5c3da347 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98764 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6912a0b57..4e8723706 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -116,6 +116,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/app
android/app/src/main/AndroidManifest.xml | 47 +++ 1 file changed, 47 insertions(+) New commits: commit f63b617b12ea8d8b0aa3fc83fbe60190ff4bda3a Author: Jan Holesovsky AuthorDate: Tue Jul 14 20:13:47 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:45:13 2020 +0200 android: Add support for ODT/ODS/ODP for Chrome OS. Turns out that the ODF mime types are most probably not supported by Chrome OS, because the android:mimeType=... is not enough to associate the app with the ODT/ODP/ODS files. So introduce an additional intent-filter that explicitly matches according to the file extension; a bit hacky, but works. Change-Id: If7cad4214e8d16f96d035380460d5c3da347 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98765 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Michael Meeks diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6912a0b57..4e8723706 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -116,6 +116,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 16 -- 1 file changed, 14 insertions(+), 2 deletions(-) New commits: commit f0a3e28a67cd7f44f10fb792b04dcd40a43f26e2 Author: Jan Holesovsky AuthorDate: Fri Jul 3 22:38:23 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:43:27 2020 +0200 android: Fallback to "w" mode, "wt" is not supported by Google Drive. Would be cool to consolidate these two places actually to a common method at some stage... Change-Id: I5ff3aed134066f26bb058223b972ef11600fa887 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97912 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 3ea256a0a..6111fc700 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -483,7 +483,13 @@ public class LOActivity extends AppCompatActivity { inputStream = new FileInputStream(mTempFile); Uri uri = getIntent().getData(); -outputStream = contentResolver.openOutputStream(uri, "wt"); +try { +outputStream = contentResolver.openOutputStream(uri, "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = contentResolver.openOutputStream(uri); +} byte[] buffer = new byte[1024]; int length; @@ -583,7 +589,13 @@ public class LOActivity extends AppCompatActivity { LOActivity.this.saveAs(tempFile.toURI().toString(), format); inputStream = new FileInputStream(tempFile); -outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +try { +outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = getContentResolver().openOutputStream(intent.getData()); +} byte[] buffer = new byte[4096]; int len; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - loleaflet/src
loleaflet/src/map/Map.js | 10 ++ 1 file changed, 10 insertions(+) New commits: commit 28816052af02e1fa61d06806bf366be33d4b4b6a Author: Jan Holesovsky AuthorDate: Wed Jul 15 23:24:55 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:41:37 2020 +0200 android: Hide sidebar on Chromebooks early. This is a hack - but I fear the best we can do just now. The problem is that the sidebar is always initialized at the startup, just for mobile phones and tablets, we don't show it thanks to an early exit in _launchSidebar() when the app starts in read-only mode (which it does for phones and tablets). Now when we have switched the Chromebook UI to the desktop one, we need to explicitly turn the sidebar off on start, because otherwise it occupies too much screen. Of course - much better would be not to initialize the sidebar at all when it is not necessary - but there's no easy way to do that :-( Change-Id: I0340d125181285dcebda4ff78971182a7072dddb Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98862 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js index 5f9882a53..0368915e3 100644 --- a/loleaflet/src/map/Map.js +++ b/loleaflet/src/map/Map.js @@ -304,6 +304,16 @@ L.Map = L.Evented.extend({ if (window.mode.isDesktop() && !window.ThisIsAMobileApp) { map._socket.sendMessage('uno .uno:SidebarShow'); } + else if (window.mode.isChromebook()) { + // HACK - currently the sidebar shows when loaded, + // with the exception of mobile phones & tablets - but + // there, it does not show only because they start + // with read/only mode which hits an early exit in + // _launchSidebar() in Control.LokDialog.js + // So for the moment, let's just hide it on + // Chromebooks early + map._socket.sendMessage('uno .uno:SidebarHide'); + } }, 200); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/app android/lib loleaflet/js
android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java |7 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 15 ++ loleaflet/js/global.js | 15 ++ 3 files changed, 31 insertions(+), 6 deletions(-) New commits: commit 8c416d962c1c4aad6cd5085b82ac12ea62097902 Author: Jan Holesovsky AuthorDate: Wed Jul 15 21:29:23 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:41:07 2020 +0200 android: Actually use the Desktop browser UI for Chromebooks. Chromebooks are not touch devices, the desktop browser-like UI makes much more sense there. Change-Id: Id963929e781f2baff32a65e0437afb4dfd8460a3 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98861 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java index f44723861..e89913628 100644 --- a/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java +++ b/android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java @@ -678,11 +678,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings return true; } -/** True if the App is running under ChromeOS. */ -private boolean isChromeOS() { -return getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); -} - /** Start an ACTION_OPEN_DOCUMENT Intent to trigger opening a document. */ private void openDocument() { collapseFabMenu(); @@ -700,7 +695,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings // impossible to choose any files, unless they notice the dropdown in // the bottom left and choose "All files". Interestingly, SVG / SVGZ // are shown there as an option, the other mime types are just blank -if (!isChromeOS()) { +if (!LOActivity.isChromeOS(this)) { final String[] mimeTypes = new String[] { // ODF "application/vnd.oasis.opendocument.text", diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 3374ff4ca..e904c6d74 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -16,6 +16,7 @@ import android.content.ClipDescription; import android.content.ClipboardManager; import android.content.ActivityNotFoundException; import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -210,6 +211,11 @@ public class LOActivity extends AppCompatActivity { return mMainHandler; } +/** True if the App is running under ChromeOS. */ +public static boolean isChromeOS(Context context) { +return context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); +} + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -776,6 +782,15 @@ public class LOActivity extends AppCompatActivity { Log.d(TAG, "postMobileDebug: " + message); } +/** + * Provide the info that this app is actually running under ChromeOS - so + * has to mostly look like on desktop. + */ +@JavascriptInterface +public boolean isChromeOS() { +return isChromeOS(this); +} + /** * Passing message the other way around - from Java to the FakeWebSocket in JS. */ diff --git a/loleaflet/js/global.js b/loleaflet/js/global.js index 5e0007d43..619bb91db 100644 --- a/loleaflet/js/global.js +++ b/loleaflet/js/global.js @@ -143,9 +143,18 @@ }; global.mode = { + isChromebook: function() { + if (!window.ThisIsTheAndroidApp) + return false; + + return window.LOOLMessageHandler.isChromeOS(); + }, // Here "mobile" means "mobile phone" (at least for now). Has to match small screen size // requirement. isMobile: function() { + if (global.mode.isChromebook()) + return false; + if (L.Browser.mobile && L.Browser.cypressTest) { return true; } @@ -154,9 +163,15 @@ }, // Mobile device with big screen size. isTablet: function() { + if (globa
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 31 +- 1 file changed, 18 insertions(+), 13 deletions(-) New commits: commit 1a92479087f8050e2654288f6b06bf688141bacb Author: Jan Holesovsky AuthorDate: Mon Jul 13 18:21:28 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:38:13 2020 +0200 android: Avoid calling methods of a destroyed WebView. Avoids exceptions like: 2020-07-13 13:19:49.607 2919-2919/? I/LOActivity: Forwarding to the WebView: 'statusindicatorsetvalue: 86' 2020-07-13 13:19:49.609 2919-2919/? W/cr_AwContents: Application attempted to call on a destroyed WebView java.lang.Throwable at org.chromium.android_webview.AwContents.t(chromium-SystemWebViewGoogle.apk-stable-410410651:2) at com.android.webview.chromium.WebViewChromium.loadUrl(chromium-SystemWebViewGoogle.apk-stable-410410651:11) at android.webkit.WebView.loadUrl(WebView.java:970) at org.libreoffice.androidlib.LOActivity$6.run(LOActivity.java:794) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6971) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865) Change-Id: Ic853131bac937deec7e68723b956a4ab7cf61872 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98723 Tested-by: Michael Meeks Reviewed-by: Michael Meeks Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98755 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 8465ff5e1..430d3265e 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -101,7 +101,7 @@ public class LOActivity extends AppCompatActivity { private URI documentUri; private String urlToLoad; -private WebView mWebView; +private WebView mWebView = null; private SharedPreferences sPrefs; private Handler mMainHandler = null; private RateAppController rateAppController; @@ -532,6 +532,7 @@ public class LOActivity extends AppCompatActivity { if (viewGroup != null) viewGroup.removeView(mWebView); mWebView.destroy(); +mWebView = null; // Most probably the native part has already got a 'BYE' from // finishWithProgress(), but it is actually better to send it twice @@ -762,20 +763,24 @@ public class LOActivity extends AppCompatActivity { */ void callFakeWebsocketOnMessage(final String message) { // call from the UI thread -mWebView.post(new Runnable() { -public void run() { -Log.i(TAG, "Forwarding to the WebView: " + message); +if (mWebView != null) +mWebView.post(new Runnable() { +public void run() { +if (mWebView != null) +Log.i(TAG, "Skipped forwarding to the WebView: " + message); -/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. -final int size = 80; -for (int start = 0; start < message.length(); start += size) { -Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); -} -*/ +Log.i(TAG, "Forwarding to the WebView: " + message); - mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); -} -}); +/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. +final int size = 80; +for (int start = 0; start < message.length(); start += size) { +Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); +} +*/ + + mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); +} +}); // update progress bar when loading if (message.startsWith("'statusindicator") || message.startsWith("'error:")) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) New commits: commit df6b5492725b1a6ac15cea287d5be2556415304c Author: Jan Holesovsky AuthorDate: Tue Jul 14 17:07:01 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:38:35 2020 +0200 android: A small follow-up, the intention was an early return. Change-Id: I3a73cd03c9ec51b7f190092702b4ef860c1f589b Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98772 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 430d3265e..3ea256a0a 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -766,8 +766,10 @@ public class LOActivity extends AppCompatActivity { if (mWebView != null) mWebView.post(new Runnable() { public void run() { -if (mWebView != null) +if (mWebView == null) { Log.i(TAG, "Skipped forwarding to the WebView: " + message); +return; +} Log.i(TAG, "Forwarding to the WebView: " + message); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib kit/ChildSession.cpp loleaflet/src
android/lib/src/main/cpp/androidapp.cpp | 54 +-- android/lib/src/main/cpp/androidapp.hpp |3 + kit/ChildSession.cpp | 11 +- loleaflet/src/control/Control.Toolbar.js |6 --- 4 files changed, 52 insertions(+), 22 deletions(-) New commits: commit a2116cbade24e9a8d46e7d6616f502b69a301b7d Author: Jan Holesovsky AuthorDate: Tue Jul 14 14:27:03 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:33:46 2020 +0200 android: Call the SAVE directly from the native code. Until now, for the "local save has completed, upload it back to the content: URI" messages we were relying on the "local save" -> JavaScript -> Java -> "upload to content:/ URI" chain. It turns out though, that the WebView can be dead by the time we need the notification that the save has completed. This was particularly seen on ChromeOS when the document was closed using the [x] in the window decoration. As a solution, we need to pass the info that the "local save" has completed directly to Java. So far this uses the same semantics as the postMobileMessage() and reuse its code; but maybe in the future we'll need to split this. Change-Id: If1b93e4f76cee3abc6aebfc3e9072810ab73bb42 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98771 Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/cpp/androidapp.cpp b/android/lib/src/main/cpp/androidapp.cpp index a3f847135..f3405f374 100644 --- a/android/lib/src/main/cpp/androidapp.cpp +++ b/android/lib/src/main/cpp/androidapp.cpp @@ -35,6 +35,10 @@ static int closeNotificationPipeForForwardingThread[2] = {-1, -1}; static JavaVM* javaVM = nullptr; static bool lokInitialized = false; +// Remember the reference to the LOActivity +jclass g_loActivityClz = nullptr; +jobject g_loActivityObj = nullptr; + extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { javaVM = vm; @@ -89,7 +93,7 @@ public: JNIEnv *getEnv() const { return _env; } }; -static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject loActivityObj, const std::vector& buffer) +static void send2JS(const JNIThreadContext &jctx, const std::vector& buffer) { LOG_DBG("Send to JS: " << LOOLProtocol::getAbbreviatedMessage(buffer.data(), buffer.size())); @@ -149,8 +153,22 @@ static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject JNIEnv *env = jctx.getEnv(); jstring jstr = env->NewStringUTF(js.c_str()); -jmethodID callFakeWebsocket = env->GetMethodID(loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); -env->CallVoidMethod(loActivityObj, callFakeWebsocket, jstr); +jmethodID callFakeWebsocket = env->GetMethodID(g_loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callFakeWebsocket, jstr); +env->DeleteLocalRef(jstr); + +if (env->ExceptionCheck()) +env->ExceptionDescribe(); +} + +void postDirectMessage(std::string message) +{ +JNIThreadContext ctx; +JNIEnv *env = ctx.getEnv(); + +jstring jstr = env->NewStringUTF(message.c_str()); +jmethodID callPostMobileMessage = env->GetMethodID(g_loActivityClz, "postMobileMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callPostMobileMessage, jstr); env->DeleteLocalRef(jstr); if (env->ExceptionCheck()) @@ -170,7 +188,7 @@ void closeDocument() /// Handle a message from JavaScript. extern "C" JNIEXPORT void JNICALL -Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject instance, jstring message) +Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject, jstring message) { const char *string_value = env->GetStringUTFChars(message, nullptr); @@ -197,11 +215,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, fakeSocketPipe2(closeNotificationPipeForForwardingThread); // Start another thread to read responses and forward them to the JavaScript -jclass clz = env->GetObjectClass(instance); -jclass loActivityClz = (jclass) env->NewGlobalRef(clz); -jobject loActivityObj = env->NewGlobalRef(instance); - -std::thread([loActivityClz, loActivityObj, currentFakeClientFd] +std::thread([currentFakeClientFd] { Util::setThreadName("app2js"); JNIThreadContext ctx; @@ -242,7 +256,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, return; std::vector buf(n); n = fakeSocketRead(currentFakeClientFd, buf.data(), n); -
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) New commits: commit dac6a73ae20817c5a8d2e6a54141cc941e6a9025 Author: Jan Holesovsky AuthorDate: Tue Jul 14 17:07:01 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:33:28 2020 +0200 android: A small follow-up, the intention was an early return. Change-Id: I3a73cd03c9ec51b7f190092702b4ef860c1f589b Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98756 Reviewed-by: Michael Meeks Tested-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 5fb44fa97..3374ff4ca 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -784,8 +784,10 @@ public class LOActivity extends AppCompatActivity { if (mWebView != null) mWebView.post(new Runnable() { public void run() { -if (mWebView != null) +if (mWebView == null) { Log.i(TAG, "Skipped forwarding to the WebView: " + message); +return; +} Log.i(TAG, "Forwarding to the WebView: " + message); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 31 +- 1 file changed, 18 insertions(+), 13 deletions(-) New commits: commit a2fcdd3ff755bc8f77d43efdc25a9b5fbf27ec15 Author: Jan Holesovsky AuthorDate: Mon Jul 13 18:21:28 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 23:32:49 2020 +0200 android: Avoid calling methods of a destroyed WebView. Avoids exceptions like: 2020-07-13 13:19:49.607 2919-2919/? I/LOActivity: Forwarding to the WebView: 'statusindicatorsetvalue: 86' 2020-07-13 13:19:49.609 2919-2919/? W/cr_AwContents: Application attempted to call on a destroyed WebView java.lang.Throwable at org.chromium.android_webview.AwContents.t(chromium-SystemWebViewGoogle.apk-stable-410410651:2) at com.android.webview.chromium.WebViewChromium.loadUrl(chromium-SystemWebViewGoogle.apk-stable-410410651:11) at android.webkit.WebView.loadUrl(WebView.java:970) at org.libreoffice.androidlib.LOActivity$6.run(LOActivity.java:794) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6971) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865) Change-Id: Ic853131bac937deec7e68723b956a4ab7cf61872 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98723 Tested-by: Michael Meeks Reviewed-by: Michael Meeks Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98754 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 855fa63b0..5fb44fa97 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -101,7 +101,7 @@ public class LOActivity extends AppCompatActivity { private URI documentUri; private String urlToLoad; -private WebView mWebView; +private WebView mWebView = null; private SharedPreferences sPrefs; private Handler mMainHandler = null; private RateAppController rateAppController; @@ -544,6 +544,7 @@ public class LOActivity extends AppCompatActivity { if (viewGroup != null) viewGroup.removeView(mWebView); mWebView.destroy(); +mWebView = null; // Most probably the native part has already got a 'BYE' from // finishWithProgress(), but it is actually better to send it twice @@ -780,20 +781,24 @@ public class LOActivity extends AppCompatActivity { */ void callFakeWebsocketOnMessage(final String message) { // call from the UI thread -mWebView.post(new Runnable() { -public void run() { -Log.i(TAG, "Forwarding to the WebView: " + message); +if (mWebView != null) +mWebView.post(new Runnable() { +public void run() { +if (mWebView != null) +Log.i(TAG, "Skipped forwarding to the WebView: " + message); -/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. -final int size = 80; -for (int start = 0; start < message.length(); start += size) { -Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); -} -*/ +Log.i(TAG, "Forwarding to the WebView: " + message); - mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); -} -}); +/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. +final int size = 80; +for (int start = 0; start < message.length(); start += size) { +Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); +} +*/ + + mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); +} +}); // update progress bar when loading if (message.startsWith("'statusindicator") || message.startsWith("'error:")) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/app
android/app/src/main/AndroidManifest.xml | 47 +++ 1 file changed, 47 insertions(+) New commits: commit a522118166f2f9bd4d6ee173ea6bd379ee68e8a1 Author: Jan Holesovsky AuthorDate: Tue Jul 14 20:13:47 2020 +0200 Commit: Jan Holesovsky CommitDate: Wed Jul 15 11:42:13 2020 +0200 android: Add support for ODT/ODS/ODP for Chrome OS. Turns out that the ODF mime types are most probably not supported by Chrome OS, because the android:mimeType=... is not enough to associate the app with the ODT/ODP/ODS files. So introduce an additional intent-filter that explicitly matches according to the file extension; a bit hacky, but works. Change-Id: If7cad4214e8d16f96d035380460d5c3da347 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98784 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6912a0b57..4e8723706 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -116,6 +116,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib kit/ChildSession.cpp loleaflet/src
android/lib/src/main/cpp/androidapp.cpp | 54 +-- android/lib/src/main/cpp/androidapp.hpp |3 + kit/ChildSession.cpp | 11 +- loleaflet/src/control/Control.Toolbar.js |6 --- 4 files changed, 52 insertions(+), 22 deletions(-) New commits: commit c543ee26c422563147d5fa006475836af19d1623 Author: Jan Holesovsky AuthorDate: Tue Jul 14 14:27:03 2020 +0200 Commit: Jan Holesovsky CommitDate: Tue Jul 14 17:16:59 2020 +0200 android: Call the SAVE directly from the native code. Until now, for the "local save has completed, upload it back to the content: URI" messages we were relying on the "local save" -> JavaScript -> Java -> "upload to content:/ URI" chain. It turns out though, that the WebView can be dead by the time we need the notification that the save has completed. This was particularly seen on ChromeOS when the document was closed using the [x] in the window decoration. As a solution, we need to pass the info that the "local save" has completed directly to Java. So far this uses the same semantics as the postMobileMessage() and reuse its code; but maybe in the future we'll need to split this. Change-Id: If1b93e4f76cee3abc6aebfc3e9072810ab73bb42 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98724 Tested-by: Jan Holesovsky Reviewed-by: Michael Meeks diff --git a/android/lib/src/main/cpp/androidapp.cpp b/android/lib/src/main/cpp/androidapp.cpp index a3f847135..f3405f374 100644 --- a/android/lib/src/main/cpp/androidapp.cpp +++ b/android/lib/src/main/cpp/androidapp.cpp @@ -35,6 +35,10 @@ static int closeNotificationPipeForForwardingThread[2] = {-1, -1}; static JavaVM* javaVM = nullptr; static bool lokInitialized = false; +// Remember the reference to the LOActivity +jclass g_loActivityClz = nullptr; +jobject g_loActivityObj = nullptr; + extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { javaVM = vm; @@ -89,7 +93,7 @@ public: JNIEnv *getEnv() const { return _env; } }; -static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject loActivityObj, const std::vector& buffer) +static void send2JS(const JNIThreadContext &jctx, const std::vector& buffer) { LOG_DBG("Send to JS: " << LOOLProtocol::getAbbreviatedMessage(buffer.data(), buffer.size())); @@ -149,8 +153,22 @@ static void send2JS(const JNIThreadContext &jctx, jclass loActivityClz, jobject JNIEnv *env = jctx.getEnv(); jstring jstr = env->NewStringUTF(js.c_str()); -jmethodID callFakeWebsocket = env->GetMethodID(loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); -env->CallVoidMethod(loActivityObj, callFakeWebsocket, jstr); +jmethodID callFakeWebsocket = env->GetMethodID(g_loActivityClz, "callFakeWebsocketOnMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callFakeWebsocket, jstr); +env->DeleteLocalRef(jstr); + +if (env->ExceptionCheck()) +env->ExceptionDescribe(); +} + +void postDirectMessage(std::string message) +{ +JNIThreadContext ctx; +JNIEnv *env = ctx.getEnv(); + +jstring jstr = env->NewStringUTF(message.c_str()); +jmethodID callPostMobileMessage = env->GetMethodID(g_loActivityClz, "postMobileMessage", "(Ljava/lang/String;)V"); +env->CallVoidMethod(g_loActivityObj, callPostMobileMessage, jstr); env->DeleteLocalRef(jstr); if (env->ExceptionCheck()) @@ -170,7 +188,7 @@ void closeDocument() /// Handle a message from JavaScript. extern "C" JNIEXPORT void JNICALL -Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject instance, jstring message) +Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, jobject, jstring message) { const char *string_value = env->GetStringUTFChars(message, nullptr); @@ -197,11 +215,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, fakeSocketPipe2(closeNotificationPipeForForwardingThread); // Start another thread to read responses and forward them to the JavaScript -jclass clz = env->GetObjectClass(instance); -jclass loActivityClz = (jclass) env->NewGlobalRef(clz); -jobject loActivityObj = env->NewGlobalRef(instance); - -std::thread([loActivityClz, loActivityObj, currentFakeClientFd] +std::thread([currentFakeClientFd] { Util::setThreadName("app2js"); JNIThreadContext ctx; @@ -242,7 +256,7 @@ Java_org_libreoffice_androidlib_LOActivity_postMobileMessageNative(JNIEnv *env, return; std::vector buf(n); n = fakeSocketRead(currentFakeClientFd, buf.data(), n); -
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) New commits: commit fffcc45b46a99c3df9b0e2c386ad697a38257ce2 Author: Jan Holesovsky AuthorDate: Tue Jul 14 17:07:01 2020 +0200 Commit: Jan Holesovsky CommitDate: Tue Jul 14 17:15:26 2020 +0200 android: A small follow-up, the intention was an early return. Change-Id: I3a73cd03c9ec51b7f190092702b4ef860c1f589b Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98748 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 5fb44fa97..3374ff4ca 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -784,8 +784,10 @@ public class LOActivity extends AppCompatActivity { if (mWebView != null) mWebView.post(new Runnable() { public void run() { -if (mWebView != null) +if (mWebView == null) { Log.i(TAG, "Skipped forwarding to the WebView: " + message); +return; +} Log.i(TAG, "Forwarding to the WebView: " + message); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 31 +- 1 file changed, 18 insertions(+), 13 deletions(-) New commits: commit 1f0a184edd44c611ea93f71e4ccd5db70ba246ce Author: Jan Holesovsky AuthorDate: Mon Jul 13 18:21:28 2020 +0200 Commit: Michael Meeks CommitDate: Tue Jul 14 14:48:52 2020 +0200 android: Avoid calling methods of a destroyed WebView. Avoids exceptions like: 2020-07-13 13:19:49.607 2919-2919/? I/LOActivity: Forwarding to the WebView: 'statusindicatorsetvalue: 86' 2020-07-13 13:19:49.609 2919-2919/? W/cr_AwContents: Application attempted to call on a destroyed WebView java.lang.Throwable at org.chromium.android_webview.AwContents.t(chromium-SystemWebViewGoogle.apk-stable-410410651:2) at com.android.webview.chromium.WebViewChromium.loadUrl(chromium-SystemWebViewGoogle.apk-stable-410410651:11) at android.webkit.WebView.loadUrl(WebView.java:970) at org.libreoffice.androidlib.LOActivity$6.run(LOActivity.java:794) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6971) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865) Change-Id: Ic853131bac937deec7e68723b956a4ab7cf61872 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98723 Tested-by: Michael Meeks Reviewed-by: Michael Meeks diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 855fa63b0..5fb44fa97 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -101,7 +101,7 @@ public class LOActivity extends AppCompatActivity { private URI documentUri; private String urlToLoad; -private WebView mWebView; +private WebView mWebView = null; private SharedPreferences sPrefs; private Handler mMainHandler = null; private RateAppController rateAppController; @@ -544,6 +544,7 @@ public class LOActivity extends AppCompatActivity { if (viewGroup != null) viewGroup.removeView(mWebView); mWebView.destroy(); +mWebView = null; // Most probably the native part has already got a 'BYE' from // finishWithProgress(), but it is actually better to send it twice @@ -780,20 +781,24 @@ public class LOActivity extends AppCompatActivity { */ void callFakeWebsocketOnMessage(final String message) { // call from the UI thread -mWebView.post(new Runnable() { -public void run() { -Log.i(TAG, "Forwarding to the WebView: " + message); +if (mWebView != null) +mWebView.post(new Runnable() { +public void run() { +if (mWebView != null) +Log.i(TAG, "Skipped forwarding to the WebView: " + message); -/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. -final int size = 80; -for (int start = 0; start < message.length(); start += size) { -Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); -} -*/ +Log.i(TAG, "Forwarding to the WebView: " + message); - mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); -} -}); +/* Debug only: in case the message is too long, truncated in the logcat, and you need to see it. +final int size = 80; +for (int start = 0; start < message.length(); start += size) { +Log.i(TAG, "split: " + message.substring(start, Math.min(message.length(), start + size))); +} +*/ + + mWebView.loadUrl("javascript:window.TheFakeWebSocket.onmessage({'data':" + message + "});"); +} +}); // update progress bar when loading if (message.startsWith("'statusindicator") || message.startsWith("'error:")) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - 2 commits - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 22 +- 1 file changed, 20 insertions(+), 2 deletions(-) New commits: commit c2c1e9dddb8965db9bdb9dbe27f3f52c957b5b4e Author: Jan Holesovsky AuthorDate: Fri Jul 3 22:38:23 2020 +0200 Commit: Andras Timar CommitDate: Mon Jul 6 06:38:13 2020 +0200 android: Fallback to "w" mode, "wt" is not supported by Google Drive. Would be cool to consolidate these two places actually to a common method at some stage... Change-Id: I5ff3aed134066f26bb058223b972ef11600fa887 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97911 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index ddb8a220e..855fa63b0 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -489,7 +489,13 @@ public class LOActivity extends AppCompatActivity { inputStream = new FileInputStream(mTempFile); Uri uri = getIntent().getData(); -outputStream = contentResolver.openOutputStream(uri, "wt"); +try { +outputStream = contentResolver.openOutputStream(uri, "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = contentResolver.openOutputStream(uri); +} byte[] buffer = new byte[1024]; int length; @@ -588,7 +594,13 @@ public class LOActivity extends AppCompatActivity { LOActivity.this.saveAs(tempFile.toURI().toString(), format); inputStream = new FileInputStream(tempFile); -outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +try { +outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = getContentResolver().openOutputStream(intent.getData()); +} byte[] buffer = new byte[4096]; int len; commit 911d445fb21f13195898fd1db84ed9ea3b173f18 Author: Jan Holesovsky AuthorDate: Fri Jul 3 23:07:47 2020 +0200 Commit: Andras Timar CommitDate: Mon Jul 6 06:37:59 2020 +0200 android: On ChromeOS, load files from Google Drive read-only. Apparently it is not possible to save to Google Drive yet. Unfortunately I don't have a proof in the documentation or anywhere on the net, but the good indication of this is that the Intent.ACTION_CREATE_DOCUMENT does not offer Google Drive (while it does on a "normal" Android). Change-Id: I521b866fd783b81a2bb9eace84354b5564ebabee Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97913 Tested-by: Jenkins CollaboraOffice Reviewed-by: Andras Timar diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 8465ff5e1..ddb8a220e 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -262,6 +262,12 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; + +// turns out that on ChromeOS, it is not possible to save back +// to Google Drive; detect it already here to avoid disappointment +if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +isDocEditable = false; + if (!isDocEditable) Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |6 ++ 1 file changed, 6 insertions(+) New commits: commit 359326e4222d516c245f46d30c5ee16949571b45 Author: Jan Holesovsky AuthorDate: Fri Jul 3 23:07:47 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 3 23:20:24 2020 +0200 android: On ChromeOS, load files from Google Drive read-only. Apparently it is not possible to save to Google Drive yet. Unfortunately I don't have a proof in the documentation or anywhere on the net, but the good indication of this is that the Intent.ACTION_CREATE_DOCUMENT does not offer Google Drive (while it does on a "normal" Android). Change-Id: I521b866fd783b81a2bb9eace84354b5564ebabee Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97902 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index d6d9f804b..855fa63b0 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -262,6 +262,12 @@ public class LOActivity extends AppCompatActivity { if (getIntent().getData().getScheme().equals(ContentResolver.SCHEME_CONTENT)) { isDocEditable = (getIntent().getFlags() & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0; + +// turns out that on ChromeOS, it is not possible to save back +// to Google Drive; detect it already here to avoid disappointment +if (getIntent().getData().toString().startsWith("content://org.chromium.arc.chromecontentprovider/externalfile")) +isDocEditable = false; + if (!isDocEditable) Toast.makeText(this, getResources().getString(R.string.temp_file_saving_disabled), Toast.LENGTH_SHORT).show(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 16 -- 1 file changed, 14 insertions(+), 2 deletions(-) New commits: commit 922e043d946c84179008bdac9e4f8683a07f7f37 Author: Jan Holesovsky AuthorDate: Fri Jul 3 22:38:23 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 3 23:14:46 2020 +0200 android: Fallback to "w" mode, "wt" is not supported by Google Drive. Would be cool to consolidate these two places actually to a common method at some stage... Change-Id: I5ff3aed134066f26bb058223b972ef11600fa887 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97901 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 8465ff5e1..d6d9f804b 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -483,7 +483,13 @@ public class LOActivity extends AppCompatActivity { inputStream = new FileInputStream(mTempFile); Uri uri = getIntent().getData(); -outputStream = contentResolver.openOutputStream(uri, "wt"); +try { +outputStream = contentResolver.openOutputStream(uri, "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = contentResolver.openOutputStream(uri); +} byte[] buffer = new byte[1024]; int length; @@ -582,7 +588,13 @@ public class LOActivity extends AppCompatActivity { LOActivity.this.saveAs(tempFile.toURI().toString(), format); inputStream = new FileInputStream(tempFile); -outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +try { +outputStream = getContentResolver().openOutputStream(intent.getData(), "wt"); +} +catch (FileNotFoundException e) { +Log.i(TAG, "failed with the 'wt' mode, trying without: " + e.getMessage()); +outputStream = getContentResolver().openOutputStream(intent.getData()); +} byte[] buffer = new byte[4096]; int len; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - android/lib
android/lib/build.gradle |6 ++ 1 file changed, 6 insertions(+) New commits: commit c62447a4e64b289054b8f44b8356ef1ec9b1099b Author: Jan Holesovsky AuthorDate: Fri Jul 3 15:25:43 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 3 16:35:23 2020 +0200 android: Always re-do the fonts.conf, to update when the filter changed. No idea how to add dependency on the build.gradle itself, so at least this... Change-Id: I7d43064d3a2299929b36a3ed3d5c13ada808c898 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97869 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/build.gradle b/android/lib/build.gradle index b4a45fefd..2a6c79f63 100644 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -113,6 +113,12 @@ task copyUnpackAssets(type: Copy) { into('etc/fonts') { from "${liboSrcRoot}/android/source/" includes = ['fonts.conf'] +doFirst { +// we have changed the filter below; so to always re-generate this +// file, delete it first - no idea how to set a dependency on +// build.gradle changes :-( +file('fonts.conf').delete() +} filter { String line -> line.replaceAll( ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2' - android/lib
android/lib/build.gradle |6 ++ 1 file changed, 6 insertions(+) New commits: commit a2f2816b484a722da06bc6d429882fea6b2838b9 Author: Jan Holesovsky AuthorDate: Fri Jul 3 15:25:43 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 3 16:34:46 2020 +0200 android: Always re-do the fonts.conf, to update when the filter changed. No idea how to add dependency on the build.gradle itself, so at least this... Change-Id: I7d43064d3a2299929b36a3ed3d5c13ada808c898 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97803 Tested-by: Jan Holesovsky Reviewed-by: Jan Holesovsky diff --git a/android/lib/build.gradle b/android/lib/build.gradle index b4a45fefd..2a6c79f63 100644 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -113,6 +113,12 @@ task copyUnpackAssets(type: Copy) { into('etc/fonts') { from "${liboSrcRoot}/android/source/" includes = ['fonts.conf'] +doFirst { +// we have changed the filter below; so to always re-generate this +// file, delete it first - no idea how to set a dependency on +// build.gradle changes :-( +file('fonts.conf').delete() +} filter { String line -> line.replaceAll( ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib
android/lib/build.gradle |6 ++ 1 file changed, 6 insertions(+) New commits: commit 5d74642537a9ae3b49491c6352f2aa959e422d32 Author: Jan Holesovsky AuthorDate: Fri Jul 3 15:25:43 2020 +0200 Commit: Jan Holesovsky CommitDate: Fri Jul 3 16:33:38 2020 +0200 android: Always re-do the fonts.conf, to update when the filter changed. No idea how to add dependency on the build.gradle itself, so at least this... Change-Id: I7d43064d3a2299929b36a3ed3d5c13ada808c898 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97804 Tested-by: Jenkins CollaboraOffice Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/build.gradle b/android/lib/build.gradle index 8882d8e5d..6177d0ca5 100644 --- a/android/lib/build.gradle +++ b/android/lib/build.gradle @@ -113,6 +113,12 @@ task copyUnpackAssets(type: Copy) { into('etc/fonts') { from "${liboSrcRoot}/android/source/" includes = ['fonts.conf'] +doFirst { +// we have changed the filter below; so to always re-generate this +// file, delete it first - no idea how to set a dependency on +// build.gradle changes :-( +file('fonts.conf').delete() +} filter { String line -> line.replaceAll( ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: configure.ac
configure.ac | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) New commits: commit 8da992df355cab1732d08419f6bf4585ff005120 Author: Jan Holesovsky AuthorDate: Thu Jul 2 09:28:31 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 2 12:04:44 2020 +0200 android: Default to building just the simple case: armeabi-v7a... ... unless more builddirs are provided in --with-lo-builddir, separated by colons. Change-Id: I49946cd932ec22804ecb51aba86f3dae2aba05f5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97672 Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/configure.ac b/configure.ac index ff78941ef..2fd403c52 100644 --- a/configure.ac +++ b/configure.ac @@ -368,7 +368,7 @@ fi # to the Mac. # Android: We need these to setup the CMakeLists.txt properly. LOBUILDDIR= -ANDROID_ABI= +ANDROID_ABI="armeabi-v7a" LOBUILDDIR_ARM64_V8A= LOBUILDDIR_X86= LOBUILDDIR_X86_64= @@ -385,10 +385,12 @@ CORE_VERSION_HASH="" if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_androidapp" = "yes" \); then if test "$enable_androidapp" = "yes" ; then AC_MSG_CHECKING([for Android ABI to build for]) - if test -z "$with_android_abi" ; then - ANDROID_ABI="armeabi-v7a arm64-v8a x86 x86_64" - else + if test -n "$with_android_abi" ; then ANDROID_ABI=`echo $with_android_abi | sed 's/:/ /g'` + else + if echo "$with_lo_builddir" | grep -qs ':' ; then +ANDROID_ABI="armeabi-v7a arm64-v8a x86 x86_64" + fi fi AC_MSG_RESULT([$ANDROID_ABI]) fi ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: android/lib common/Authorization.hpp wsd/ClientSession.hpp
android/lib/src/main/cpp/CMakeLists.txt.in |1 - common/Authorization.hpp |2 +- wsd/ClientSession.hpp |1 + 3 files changed, 2 insertions(+), 2 deletions(-) New commits: commit b39017c08c59766d7d12b06e1e015a00d649e8cb Author: Jan Holesovsky AuthorDate: Thu Jul 2 10:15:20 2020 +0200 Commit: Jan Holesovsky CommitDate: Thu Jul 2 11:08:19 2020 +0200 android: Remove unneeded dependency + add some comments. Change-Id: Idbc271a398f6f0c037d478bda5ee0b149ca4f24f Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97730 Tested-by: Jenkins CollaboraOffice Tested-by: Jenkins Reviewed-by: Jan Holesovsky diff --git a/android/lib/src/main/cpp/CMakeLists.txt.in b/android/lib/src/main/cpp/CMakeLists.txt.in index 2e1a5fdb8..4c4e1344a 100644 --- a/android/lib/src/main/cpp/CMakeLists.txt.in +++ b/android/lib/src/main/cpp/CMakeLists.txt.in @@ -5,7 +5,6 @@ add_library(androidapp SHARED androidapp.cpp ../../../../../common/Authorization.cpp ../../../../../common/FileUtil.cpp -../../../../../common/JailUtil.cpp ../../../../../common/Log.cpp ../../../../../common/MessageQueue.cpp ../../../../../common/Protocol.cpp diff --git a/common/Authorization.hpp b/common/Authorization.hpp index 14accb236..b92b0d565 100644 --- a/common/Authorization.hpp +++ b/common/Authorization.hpp @@ -16,7 +16,7 @@ #include #include -/// Class to keep the authorization data. +/// Class to keep the authorization data, which can be either access_token or access_header. class Authorization { public: diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp index 8922b924e..cc153bdd8 100644 --- a/wsd/ClientSession.hpp +++ b/wsd/ClientSession.hpp @@ -226,6 +226,7 @@ private: /// URI with which client made request to us const Poco::URI _uriPublic; +/// Authorization data - either access_token or access_header. const Authorization _auth; /// The cookies we should pass on to the storage on saving. ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] online.git: Branch 'distro/collabora/co-4-2-5' - 11 commits - android/app android/lib android/README configure.ac wsd/Storage.cpp
android/README | 66 +++ android/app/src/main/java/org/libreoffice/androidapp/ui/LibreOfficeUIActivity.java | 115 +++--- android/lib/build.gradle | 11 android/lib/src/main/cpp/CMakeLists.txt.in | 14 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java | 50 --- configure.ac | 166 +++--- wsd/Storage.cpp |8 7 files changed, 271 insertions(+), 159 deletions(-) New commits: commit ec2eda99444b216a5006367d49fad58bd5afc9e4 Author: Jan Holesovsky AuthorDate: Thu Jul 2 09:28:31 2020 +0200 Commit: Andras Timar CommitDate: Thu Jul 2 10:16:42 2020 +0200 android: Default to building just the simple case: armeabi-v7a... ... unless more builddirs are provided in --with-lo-builddir, separated by colons. Change-Id: I49946cd932ec22804ecb51aba86f3dae2aba05f5 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97719 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/configure.ac b/configure.ac index fedd92644..27b8d887b 100644 --- a/configure.ac +++ b/configure.ac @@ -368,7 +368,7 @@ fi # to the Mac. # Android: We need these to setup the CMakeLists.txt properly. LOBUILDDIR= -ANDROID_ABI= +ANDROID_ABI="armeabi-v7a" LOBUILDDIR_ARM64_V8A= LOBUILDDIR_X86= LOBUILDDIR_X86_64= @@ -385,10 +385,12 @@ CORE_VERSION_HASH="" if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_androidapp" = "yes" \); then if test "$enable_androidapp" = "yes" ; then AC_MSG_CHECKING([for Android ABI to build for]) - if test -z "$with_android_abi" ; then - ANDROID_ABI="armeabi-v7a arm64-v8a x86 x86_64" - else + if test -n "$with_android_abi" ; then ANDROID_ABI=`echo $with_android_abi | sed 's/:/ /g'` + else + if echo "$with_lo_builddir" | grep -qs ':' ; then +ANDROID_ABI="armeabi-v7a arm64-v8a x86 x86_64" + fi fi AC_MSG_RESULT([$ANDROID_ABI]) fi commit f8f566260fcfa2af16077f1c19acc1d9b82b9129 Author: Jan Holesovsky AuthorDate: Wed Jul 1 21:05:42 2020 +0200 Commit: Andras Timar CommitDate: Thu Jul 2 10:16:38 2020 +0200 android: No need to copy fonts from system any more. After the update of fontconfig, the hack to not to use the Noto fonts is not needed any more, they load quickly now. Change-Id: Iebd2c944e9fcc04d6976002f24a3a47f0b49f2ad Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97659 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice Reviewed-by: Jan Holesovsky Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97718 Tested-by: Andras Timar Reviewed-by: Andras Timar diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java index 5074d637a..8465ff5e1 100644 --- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java +++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java @@ -203,54 +203,6 @@ public class LOActivity extends AppCompatActivity { } } -/** - * Copies fonts except the NotoSans from the system to our location. - * This is necessary because the NotoSans is huge and fontconfig needs - * ages to parse them. - */ -private static boolean copyFonts(String fromPath, String targetDir) { -try { -File target = new File(targetDir); -if (!target.exists()) -target.mkdirs(); - -File from = new File(fromPath); -File[] files = from.listFiles(); -for (File fontFile : files) { -String fontFileName = fontFile.getName(); -if (!fontFileName.equals("Roboto-Regular.ttf")) { -Log.i(TAG, "Ignored font file: " + fontFile); -continue; -} else { -Log.i(TAG, "Copying font file: " + fontFile); -} - -// copy the font file over -InputStream in = new FileInputStream(fontFile); -try { -OutputStream out = new FileOutputStream(targetDir + "/" + fontFile.getName()); -try { -byte[] buffer = new byte[4096]; -int len; -while ((len = in.read(buffer)) > 0) { -out.write(buffer, 0, len); -} -} finally { -out.close(); -} -} finally { -in.close(); -} -