summaryrefslogtreecommitdiff
path: root/sd
AgeCommit message (Collapse)AuthorFilesLines
2021-06-23ofz#34297 Indirect-leakCaolán McNamara1-2/+5
this is similar to the memory leak fixed by commit d6e752d5ebfaf66d1c9b0694f9c8582311d6151a Author: Jian Fang Zhang <zhangjf@apache.org> Date: Mon Jun 18 12:26:30 2012 +0000 i#113608#, memory leak in animations: newly exposed crashed problem where the parent node holds a reference to its children and the child held a reference to its parent. Change RandomAnimationNode to use a WeakReference to its parent like the other AnimationNodes do Change-Id: I251a6127c301d1fb7e51397d8f05db4020bc612c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117115 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-06-23tdf#142716 Update selection after any text is inserted.Gülşah Köse2-0/+18
When we don't update the selection after insertion of new text SvxUnoTextBase::createEnumeration knows old selection and losts last part of the text. Change-Id: I20f6530f34097ff213ff00cff617139887fd287a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117409 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com> (cherry picked from commit e837f50313a703b6b26abb78f224472c1e4734ea) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117555 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-23avoid maybe-uninitialized in PowerPointShapeExportNoel Grandin1-2/+2
/home/noel/libo3/sd/source/filter/eppt/pptx-epptooxml.cxx: In member function ‘oox::drawingml::ShapeExport& oox::core::PowerPointShapeExport::WritePlaceholderReferenceTextBody(oox::core::PlaceholderType, PageType, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>)’: /home/noel/libo3/sd/source/filter/eppt/pptx-epptooxml.cxx:1715:31: error: ‘nDateTimeFormat’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 1715 | SvxTimeFormat eTime = static_cast<SvxTimeFormat>(nDateTimeFormat >> 4); | ^~~~~ /home/noel/libo3/sd/source/filter/eppt/pptx-epptooxml.cxx:1707:36: error: ‘bIsDateTimeFixed’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 1707 | if(ePageType != LAYOUT && !bIsDateTimeFixed) | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ Change-Id: I7f622321680705fb0b0fa42630949c8d6af8488e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117398 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 3c24e7ed972ae2fc431365e4884e27c0b243c905) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117643 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-23tdf#59323: pptx export: slide footers roundtrip unit testSarper Akdemir2-0/+37
Roundtrip test that checks the slide footers, and their placeholder indexes. Change-Id: I9c4b819092ac6699617d71538c35b066d6e6f974 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117013 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117631 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-23tdf#59323: pptx export: add support for slide footersSarper Akdemir2-1/+242
Adds support for exporting slide footers to PPTX. Slide footers are exported as shapes that use placeholder indexes to refer to the shapes on master. To make the references work they are exported to layout slides too. Change-Id: I8bfde520b0aec66405523c719844e69c6fc15b79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117012 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117630 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-23tdf#59323: pptx export: add placeholder index to master footer placeholdersSarper Akdemir2-34/+59
OOXML uses placeholder index to determine from which layout placeholder it should be inheriting styles, position etc. Added maPlaceholderShapeToIndexMap that stores corresponding Placeholder index for a Placeholder XShape on the master slide. Right now only used for placeholder types Footer, DateAndTime and SlideNumber. Change-Id: If788f235d00b6d1cde7194d9e4a0789e019432c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117010 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117628 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-23tdf#59323: pptx import: import footer fields as propertiesSarper Akdemir3-1/+1
Makes footer, slidenum and datetime placeholders that are inserted to the slides themselves on pptx files imported as slide properties if it is possible to do so without losing information (style, position etc.) If that is not the case and the footers have some special style applied to them that isn't inherited from master slides, fallbacks to the current implementation importing them as shapes. Also since the default way of displaying slide footers in LO use the respective text fields on master slides, information in master/layout slide datetime and footer placeholders respectively get replaced with <date/time> text fields and <footer> text fields. Change-Id: Ib2f7d18103b62c0c9a8453e01cfd2fd1aa1d39af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117008 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117626 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-22Avoid crash getting default item for OWN_ATTR_TEXTCOLUMNSMike Kaganski1-0/+21
... as seen in https://dev-builds.libreoffice.org/crashtest/89459662bf2684a07596d4132c84e5da7e0af8d4/backtraces/task908-core.backtrace.txt ... #8 0x00007fb81c9674f2 in Application::Abort(rtl::OUString const&) (rErrorText="") at /home/buildslave/source/libo-core/vcl/source/app/svapp.cxx:274 #9 0x00007fb8226aa127 in desktop::Desktop::Exception(ExceptionCategory) (this=0x7ffdf0d856d0, nCategory=<optimized out>) at /home/buildslave/source/libo-core/include/rtl/ustring.hxx:181 bInException = true nOldMode = <optimized out> rArgs = <optimized out> bRestart = <optimized out> bAllowRecoveryAndSessionManagement = <optimized out> #10 0x00007fb81c97ca5a in VCLExceptionSignal_impl(void*, oslSignalInfo*) (pInfo=<optimized out>) at /home/buildslave/source/libo-core/vcl/source/app/svmain.cxx:169 nOldMode = SystemWindowFlags::DIALOG pSVData = 0x7fb81d423300 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> aLock = {m_isAcquired = true, m_isChecked = true, m_rSolarMutex = @0x5612f7423da0} bIn = true nVCLException = <optimized out> #11 0x00007fb82282d1a7 in callSignalHandler(oslSignalInfo*) (pInfo=pInfo@entry=0x7fb80a196af0) at /home/buildslave/source/libo-core/sal/osl/all/signalshared.cxx:59 pHandler = 0x5612f826c2d0 Action = <optimized out> #12 0x00007fb82289e5a8 in (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) (signal=6, info=0x7fb80a196cf0, context=0x7fb80a196bc0) at /home/buildslave/source/libo-core/sal/osl/unx/signal.cxx:451 Info = {Signal = osl_Signal_AccessViolation, UserSignal = 6, UserData = 0x0} #13 0x00007fb8224d6840 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6 #14 0x00007fb8224d67bb in raise () at /lib/x86_64-linux-gnu/libc.so.6 #15 0x00007fb8224c1535 in abort () at /lib/x86_64-linux-gnu/libc.so.6 #16 0x00007fb8224c140f in () at /lib/x86_64-linux-gnu/libc.so.6 #17 0x00007fb8224cf102 in () at /lib/x86_64-linux-gnu/libc.so.6 #18 0x00007fb81f72434c in SfxItemPool::GetDefaultItem(unsigned short) const (this=0x5612f8e2ec00, nWhich=<optimized out>) at /home/buildslave/source/libo-core/svl/source/items/itempool.cxx:728 __PRETTY_FUNCTION__ = "const SfxPoolItem& SfxItemPool::GetDefaultItem(sal_uInt16) const" nPos = <optimized out> pDefault = <optimized out> #19 0x00007fb81f724326 in SfxItemPool::GetDefaultItem(unsigned short) const (this=0x5612f8869790, nWhich=4006) at /home/buildslave/source/libo-core/svl/source/items/itempool.cxx:727 __PRETTY_FUNCTION__ = "const SfxPoolItem& SfxItemPool::GetDefaultItem(sal_uInt16) const" nPos = <optimized out> pDefault = <optimized out> #20 0x00007fb80de6cc2e in SdStyleSheet::setPropertyValue(rtl::OUString const&, com::sun::star::uno::Any const&) (this=0x5612f89d3940, aPropertyName=..., aValue=uno::Any("com.sun.star.text.XTextColumns": {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x5612f89006c0}, <No data fields>})) at /home/buildslave/source/libo-core/include/svl/style.hxx:257 aGuard = {<osl::Guard<comphelper::SolarMutex>> = {pT = 0x5612f7423da0}, <No data fields>} pEntry = 0x7fb80e7252e8 <GetStylePropertySet()::aFullPropertyMap_Impl+1992> rStyleSet = SfxItemSet of pool 0x5612f8869790 with parent 0x0 and Which ranges: [(1000, 1012), (1014, 1033), (1047, 1056), (1068, 1091), (1093, 1124), (1174, 1229), (4007, 4058)] = {1000 = 0x0, 1001 = 0x0, 1002 = 0x0, 1003 = 0x0, 1004 = 0x0, 1005 = 0x0, 1006 = 0x0, 1007 = 0x0, 1008 = 0x0, 1009 = 0x0, 1010 = 0x0, 1011 = 0x0, 1012 = 0x0, 1014 = 0x0, 1015 = 0x0, 1016 = 0x0, 1017 = 0x0, 1018 = 0x0, 1019 = 0x0, 1020 = 0x0, 1021 = 0x0, 1022 = 0x0, 1023 = 0x0, 1024 = 0x0, 1025 = 0x0, 1026 = 0x0, 1027 = 0x0, 1028 = 0x0, 1029 = 0x0, 1030 = 0x0, 1031 = 0x0, 1032 = 0x0, 1033 = 0x0, 1047 = 0x0, 1048 = 0x0, 1049 = 0x0, 1050 = 0x0, 1051 = 0x0, 1052 = 0x0, 1053 = 0x0, 1054 = 0x0, 1055 = 0x0, 1056 = 0x0, 1068 = 0x0, 1069 = 0x0, 1070 = 0x0, 1071 = 0x0, 1072 = 0x0, 1073 = 0x0, 1074 = 0x0, 1075 = 0x0, 1076 = 0x0, 1077 = 0x0, 1078 = 0x0, 1079 = 0x0, 1080 = 0x0, 1081 = 0x0, 1082 = 0x0, 1083 = 0x0, 1084 = 0x0, 1085 = 0x0, 1086 = 0x0, 1087 = 0x0, 1088 = 0x0, 1089 = 0x0, 1090 = 0x0, 1091 = 0x0, 1093 = 0x0, 1094 = 0x0, 1095 = 0x0, 1096 = 0x0, 1097 = 0x0, 1098 = 0x0, 1099 = 0x0, 1100 = 0x0, 1101 = 0x0, 1102 = 0x0, 1103 = 0x0, 1104 = 0x0, 1105 = 0x0, 1106 = 0x0, 1107 = 0x0, 1108 = 0x0, 1109 = 0x0, 1110 = 0x0, 1111 = 0x0, 1112 = 0x0, 1113 = 0x0, 1114 = 0x0, 1115 = 0x0, 1116 = 0x0, 1117 = 0x0, 1118 = 0x0, 1119 = 0x0, 1120 = 0x0, 1121 = 0x0, 1122 = 0x0, 1123 = 0x0, 1124 = 0x0, 1174 = 0x0, 1175 = 0x0, 1176 = 0x0, 1177 = 0x0, 1178 = 0x0, 1179 = 0x0, 1180 = 0x0, 1181 = 0x0, 1182 = 0x0, 1183 = 0x0, 1184 = 0x0, 1185 = 0x0, 1186 = 0x0, 1187 = 0x0, 1188 = 0x0, 1189 = 0x0, 1190 = 0x0, 1191 = 0x0, 1192 = 0x0, 1193 = 0x0, 1194 = 0x0, 1195 = 0x0, 1196 = 0x0, 1197 = 0x0, 1198 = 0x0, 1199 = 0x0, 1200 = 0x0, 1201 = 0x0, 1202 = 0x0, 1203 = 0x0, 1204 = 0x0, 1205 = 0x0, 1206 = 0x0, 1207 = 0x0, 1208 = 0x0, 1209 = 0x0, 1210 = 0x0, 1211 = 0x0, 1212 = 0x0, 1213 = 0x0, 1214 = 0x0, 1215 = 0x0, 1216 = 0x0, 1217 = 0x0, 1218 = 0x0, 1219 = 0x0, 1220 = 0x0, 1221 = 0x0, 1222 = 0x0, 1223 = 0x0, 1224 = 0x0, 1225 = 0x0, 1226 = 0x0, 1227 = 0x0, 1228 = 0x0, 1229 = 0x0, 4007 = 0x0, 4008 = 0x0, 4009 = 0x0, 4010 = 0x0, 4011 = 0x0, 4012 = 0x0, 4013 = 0x0, 4014 = 0x0, 4015 = 0x0, 4016 = 0x0, 4017 = 0x0, 4018 = 0x0, 4019 = 0x0, 4020 = 0x0, 4021 = 0x0, 4022 = 0x0, 4023 = 0x0, 4024 = 0x0, 4025 = 0x0, 4026 = 0x0, 4027 = 0x0, 4028 = 0x0, 4029 = 0x0, 4030 = 0x0, 4031 = 0x0, 4032 = 0x0, 4033 = 0x0, 4034 = 0x0, 4035 = 0x0, 4036 = 0x0, 4037 = 0x0, 4038 = 0x0, 4039 = 0x0, 4040 = 0x0, 4041 = 0x0, 4042 = 0x0, 4043 = 0x0, 4044 = 0x0, 4045 = 0x0, 4046 = 0x0, 4047 = 0x0, 4048 = 0x0, 4049 = 0x0, 4050 = 0x0, 4051 = 0x0...} aSet = SfxItemSet of pool 0x5612f8869790 with parent 0x0 and Which ranges: [(4006, 4006)] = {4006 = 0x0} #21 0x00007fb81945d8eb in SvXMLImportPropertyMapper::FillPropertySet_(std::__debug::vector<XMLPropertyState, std::allocator<XMLPropertyState> > const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo> const&, rtl::Reference<XMLPropertySetMapper> const&, SvXMLImport&, ContextID_Index_Pair*) (rProperties=std::__debug::vector of length 3, capacity 4 = {...}, rPropSet=uno::Reference to (class SdStyleSheet *) 0x5612f89d3ad0, rPropSetInfo=uno::Reference to (class SfxItemPropertySetInfo *) 0x5612f8938ed8, rPropMapper=rtl::Reference to 0x5612f89a1900, rImport=..., pSpecialContextIds=pSpecialContextIds@entry=0x7fb80a1978b0) at /home/buildslave/source/libo-core/include/com/sun/star/uno/Reference.h:384 rProp = @0x5612f8497590: {mnIndex = 54, maValue = uno::Any("com.sun.star.text.XTextColumns": {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x5612f89006c0}, <No data fields>})} nIdx = 54 rPropName = "TextColumns" nPropFlags = 201342976 i = 1 bSet = false nCount = <optimized out> #22 0x00007fb8194650c6 in SvXMLImportPropertyMapper::FillPropertySet(std::__debug::vector<XMLPropertyState, std::allocator<XMLPropertyState> > const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&, ContextID_Index_Pair*) const (this=0x5612f8fa4960, aProperties=std::__debug::vector of length 3, capacity 4 = {...}, rPropSet=uno::Reference to (class SdStyleSheet *) 0x5612f89d3ad0, pSpecialContextIds=pSpecialContextIds@entry=0x7fb80a1978b0) at /home/buildslave/source/libo-core/xmloff/source/style/xmlimppr.cxx:466 xInfo = uno::Reference to (class SfxItemPropertySetInfo *) 0x5612f8938ed8 xMultiPropSet = empty uno::Reference bSet = <optimized out> xTolPropSet = empty uno::Reference ... Change-Id: Icdb32ff5383a8073f525aad1a39ff1dcc70559f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117661 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit f2ea39c70da3f82bb39f8b51b5484172360b1fc2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117639 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-06-17Resolves tdf#142513 fix zoom caller handlingJim Raykowski4-8/+10
Calling ZoomPlus has always executed shell SID_ZOOM_OUT case handling. ZoomMinus, which replaced ZoomIn, does SID_ZOOM_IN case handling. This patch changes ZoomPlus to do SID_ZOOM_IN case handling and ZoomMinus to do SID_ZOOM_OUT case handling and makes appropriate changes required by these name changes to provide expected zoom results in all module shells that have handling for these calls. Change-Id: If148f4f7866bfc8fc6452ad1c1dace723a125ef6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116287 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> (cherry picked from commit ec629c5ee22d02f99d66a5cf975ce239876b7f4d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116702 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-06-15sd: ubsan - fix heap-use-after-free in SdOutlinerTomaž Vajngerl2-30/+36
OutlinerView can change (old one deleted and new one create) so we can't store it in a local vairable and need to always fetch it. Change-Id: I0b4616cd3813565bc58b7a84320cbf52dd654a3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116879 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 36db408b9027da01464927e5853950435596ae05) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117151 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-15tdf#142478 add test that triggers find all and crashesTomaž Vajngerl2-0/+25
String "Crash" in document and notes, then trigger "find all", which produced a crash without the fix in-place. Change-Id: I8e6e4a9da1afc85643648aee36a03c1fb39ca16d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116769 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 7f059ce157da0de40a98f63f61d923cc67d93884) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117150 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-14Assert on valid order of which ids in ranges on SfxItemSet creationMike Kaganski1-9/+11
This allows to make sure we actually use sorted which ranges, and then it's safe to call SfxItemSet::MergeRange when needed. Also this change relaxes the previous requirement that ranges must be separated by at least one; this allows to have adjacent ranges, like in RES_FRMATR_BEGIN, RES_FRMATR_END-1, RES_GRFATR_BEGIN, RES_GRFATR_END-1, where RES_FRMATR_END is equal to RES_GRFATR_BEGIN. Allowing this makes possible to (1) self-document the ranges, so it's clear which ranges are included; and (2) be safe in case when these constants would change, so that the one merged range would not unexpectedly contain everything inserted between RES_FRMATR_END and RES_GRFATR_BEGIN. Change-Id: Iaad0f099b85059b3aa318a347aa7fbd3f6d455c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116909 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117106 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-06-14tdf#142478 fix crash when searching and a viewshell change occursTomaž Vajngerl1-1/+11
When searching a impress document for a word, and the word is in notes as welll as in the document, a crash happens (only when searching with "find all"). The regressing commit changed that the search is now bound to a view (and to a viewshell). When searching for words in notes and document, at the transition from "standard" to "notes" page kind mode, the view and viewshells are destroyed and the new one created again. The problem lies here as when we destroy the viewshell, we also destroy the search context and FuSearch objects, but we are still executing the search -> crash. The solution for this is that when we change the page kind, we take the FuSearch object from the old viewshell and put it into the newly created viewshell, so that we keep the FuSearch object alive and don't throw away the search context too. Change-Id: I50931cca2a20c5704f7450e3cc8b3466af4c5a3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116758 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 3b75f9add7ed80e803b0771d86892d6ca0f47e71) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116703 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-06-10editengine-columns: PPTX support (tdf#118458)Mike Kaganski5-72/+144
The unit tests that used to check the workaround using tables to emulate columns (implemented in tdf#120028) are changed to test import of the columns. This reverts some commits related to the mentioned workaround, namely aef569ed83a3ccc02639e5b2a1c7cc131ba262fc, c50ae6a282ed83762bf634fed5c91033eb305c88, 7b64bd90637a6722438bf873b1ded74ab3424c46, 33696b2820ce3c8b21b753d2c2bf92345ecb9276, 99dff69b561a8fe2d9437e6aa67a9581a6666f41. Change-Id: I97693ad4a981780e822070938992f274920df5a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116738 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116881 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-10editengine-columns: Implement layoutMike Kaganski5-12/+115
This changes the way how different parts access positions of lines and paragraphs. Now there is ImpEditEngine::IterateLineAreas, which performs uniform iteration over all ParaPortions and lines in order, calling a user-provided callback function for each portion and line; it passes all information about current portion, line, area, and column to the callback, and checks the return from the callback, to decide if it needs to continue iteration (in case when callback indicated that if doesn't need further data), and if it needs calling the callback for the rest of current portion's lines. This allows to have the code that calculates and iterates dimensions of lines in one central place, without the need to have duplicating logic in several places. One important exception is ImpEditEngine::Paint, which iterates without ImpEditEngine::IterateLineAreas, because it does many atomic paint operations in different points of iteration process, and implementing ImpEditEngine::IterateLineAreas to call callback in the required places would require increased complexity, which is left for a future change. To make that possible, ImpEditEngine::IterFlag should be extended to indicate additional requirements. Note that in fact, ImpEditEngine::Paint was taken as the model for implementation of ImpEditEngine::IterateLineAreas, with its detailed handling of all the vertical offsets like additional line spacing and interparagraph spacings that depend on context. The notable result of the centralization of the iteration code is slight change of heights reported by ImpEditEngine::CalcTextHeight. Previously it simply added all pre-calculated heights of portions, and not taking into account all the spacing handling that ImpEditEngine::Paint did, which was inconsistent (calculated height was different from painted height). Now ImpEditEngine::CalcTextHeight should provide more accurate results, which required small changes in the unit tests. Change-Id: I33cbb978deb974b314d36fda8674186a03991107 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116034 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116876 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-10editengine-columns: ODF support [API CHANGE]Mike Kaganski3-0/+82
This uses existing ODF markup, as used by Writer's text frame: style::columns child element of style:graphic-properties, its fo:column-count and fo:column-gap attributes. No ODF extension is required. Since currently only columns with same width and spacing are implemented, without additional settings, style:column child elements are exported, but ignored on import. This adds new property to css::drawing::TextProperties service: TextColumns (of type css::text::XTextColumns). Change-Id: I7e63293e5814b281ceec8a9632e696322d3629e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116035 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116871 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-10editengine-columns: Create document model and dialog pageMike Kaganski2-0/+102
Change-Id: I056aad9474ca18134d1f1686a53618cc9ab3d525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116038 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116868 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-06-09jsdialog: sidebar: avoid duplicated widget idsSzymon Kłos11-10/+66
all controls for sidebar goes to the same window id we need different names for every widget so create valuesets with different name every time Change-Id: I69074e607bfe5fa6db665c0dbcae1f029d13a161 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116836 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-06-07Fix and unify the two methods that get scaled text sizeMike Kaganski1-3/+2
GetTextFitToSizeScale and SdrTextObj::GetFontScaleY both didn't initialize outliners properly, and thus returned wrong results. Change-Id: I6fe63c51ed838a0d0fafdfa03597cac97ce29831 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116765 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit a1ae30166e92a0a40dff06740f0bb8e9ee63f70a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116704 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2021-05-31sd: Unit test for Table deletion with Delete Keymerttumer1-0/+26
Change-Id: I9849f55a143007b49bdcaac392dd84e32d610998 Signed-off-by: merttumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116069 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116311
2021-05-31Unit tests for .uno:MoveShapeHandle commandmerttumer1-0/+54
Change-Id: Ia1049325bf26fbe6a3c8ac77c873d1af010d3581 Signed-off-by: merttumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115541 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116308
2021-05-27tdf#96061 Unset the highlight propertyGülşah Köse2-0/+35
When we have highlight property on specific part of the text the following texts were highligthing. To prevent this we unset the highlight property when we have not highlight property anymore. Change-Id: I802cde1c784afe47201a9ba4f41827dd0c705035 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115800 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116176 Reviewed-by: Andras Timar <andras.timar@collabora.com>
2021-05-25weld the sidebar deckCaolán McNamara1-2/+2
Change-Id: Idc6710df7e59bcb5f61fca783e0cc0666cb13a1f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112404 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25remove intermediate containers in sidebarsCaolán McNamara26-253/+144
tested extension sidebars of: a) Wollmux extension sidebars b) Analog Clock Extension demo https://wiki.openoffice.org/wiki/Sidebar_for_Developers#Example:_Analog_Clock_Extension Change-Id: If9729e20526681928137989f01a8ae733a9b0cb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112035 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25remove intermediate TableDesignPanelCaolán McNamara7-163/+10
Change-Id: Icdc1aef7a0d53239ee41e818a56d137aa959249c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111973 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25remove intermediate CustomAnimationPanelCaolán McNamara13-187/+26
Change-Id: I34e1e3f87565cb9d8bf33f8e8f22844081785e21 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111969 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25use valueset as the menu parentCaolán McNamara1-2/+2
Change-Id: I99c4bc5110ce494287342db5c2d4c42b1a79ee38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111993 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25use valueset as the menu parentCaolán McNamara1-1/+1
Change-Id: I3e8a841f838c4874e40d7d9e6abfbd61e2bb068d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111992 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25with widget layout we don't need to explicitly track the parent resizeCaolán McNamara1-1/+0
Change-Id: I17e153ecc8b1b79bbbfbbccfe88a46f5905611fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112010 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25weld impress layoutmenuCaolán McNamara2-26/+13
Change-Id: Ibc8038b37f8ff689050d9abb4ec0d2fac2eaadf9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108066 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25schedule redraw to draw without focusCaolán McNamara1-1/+1
Change-Id: I9a33811d0d806b686f0b226a81e53d2181f8c822 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112260 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25weld MasterPagesSelector context menusCaolán McNamara4-43/+16
Change-Id: I0ed933d81ef8f5004c8efa36dd0cdcdca947a0a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111233 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25RecentMasterPagesSelector menu has no "edit" entryCaolán McNamara2-9/+0
its the same menu as MasterPagesSelector and the same "large" vs "small" enable/disable logic should be in use Change-Id: I3672c47299d585fbcec6fa2000fc0c84d6481ce1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111232 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25move GetDPIScaleFactor check to ValueSet canvasCaolán McNamara1-1/+1
Change-Id: I586b3d1167300d914da18af7f32dd8e434bb49c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112140 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25drop check for visibility before calling updateMotionPathTagsCaolán McNamara1-1/+1
presumably this is effectively always the case Change-Id: I05ac9075ea340f800cdb9b8fda6e01c8ba1fa186 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112034 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25don't use the vcl::Window parent to derive a treeview sizeCaolán McNamara2-2/+3
Change-Id: Ic366a90fbdcd735d377c8a00766cdfa0add31c5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111998 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25with widget layout we don't need to explicitly track the parent resizeCaolán McNamara2-20/+1
Change-Id: I17e153ecc8b1b79bbbfbbccfe88a46f5905611fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112010 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25move properties from container vcl::Window to window-filling childCaolán McNamara1-2/+2
Change-Id: I5ddd17220ff8b45678716c406297d305aa2229e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112000 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25drop sd::LayoutMenu set_id overwriteCaolán McNamara1-1/+0
this was added with commit d2b5ab3498a78c6d164a15b3bf2b947553ea2743 Date: Sun Oct 20 09:50:48 2019 -0400 sd: sidebar: force to set the id of the LayoutMenu control Otherwise, the function std::unique_ptr<UIObject> WindowUIObject::get_child(const OUString& rID) will not find the control with the rID. Change-Id: Ie571eb351bb0c59654f577cef1961247273d7608 Reviewed-on: https://gerrit.libreoffice.org/81345 but there doesn't appear to be a current use of 'sd::LayoutMenu' in LibreOffice or Online Change-Id: I07ebd872f0dd203057c96386730acd5f6aa7a168 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112141 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25move MouseButtonDown logic to LayoutValueSet childCaolán McNamara2-19/+10
Change-Id: I8d70321856219988618d99ba5884b89950441b7c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112012 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25move valueset resize into LayoutValueSet classCaolán McNamara2-22/+21
Change-Id: If1a5dbcdac95a167779b30c26f4aa61bbe104cce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112011 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25remove intermediate SlideTransitionPanelCaolán McNamara8-177/+15
Change-Id: Ifdecbd56b3da30081ed40e9940c7c2a6c7e1e48a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111962 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25inherit NavigatorWrapper directly from SdNavigatorWinCaolán McNamara2-45/+9
Change-Id: Ifdb2aae5d9af32577adedd3512ab1f8a1e8047e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111975 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25use a single context menu handler at the valueset levelCaolán McNamara4-43/+27
instead of a custom right click handler in the valueset and a separate context menu handler in its parent Change-Id: Ia174892beb72ab79a3ceda1ad8992ce90a410db9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111957 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25parent panel doesn't need an explicit KeyInput handlerCaolán McNamara2-18/+0
the treeview child one is sufficient Change-Id: I3a5e7a262055e5f03cf5323eeaa8c169eaab2693 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112005 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25move handler for ESC to close slideshow from navigator down to contentsCaolán McNamara4-62/+21
Change-Id: Ie021bcf86043cf2ae02eb39911c748135452853c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112007 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25register navigator individually in each module that it exists inCaolán McNamara6-33/+64
instead of globally. This makes the navigators the same as everything else and easier to deal with. Change-Id: I882612e73d36485b84161a2d3fbc1188f734c0fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112244 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25replace stock button imagesCaolán McNamara2-6/+6
Change-Id: I9be83856c0dd15552a042f009464c279bf239848 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109199 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25rename get_vscroll_width to get_scroll_thicknessCaolán McNamara1-3/+3
and add split customize_scrollbars to form a separate set_scroll_thickness Change-Id: Ia4b1c85d6ae85b0fb7aeb852d3a91b36b63143db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111207 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-25weld impress annotation windowCaolán McNamara10-778/+752
Change-Id: Idc89f4e382392103d373b6a84edaae10abd56056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110650 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>