Makefile.in | 2 configure.ac | 4 cui/source/dialogs/hyphen.cxx | 9 cui/source/inc/numpages.hxx | 2 cui/source/options/optpath.cxx | 13 - cui/source/tabpages/numpages.cxx | 6 cui/uiconfig/ui/textflowpage.ui | 5 download.lst | 2 editeng/source/misc/svxacorr.cxx | 8 extensions/source/update/check/updatecheck.cxx | 6 external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1 | 25 ++ external/lcms2/UnpackedTarball_lcms2.mk | 1 external/liborcus/Library_orcus.mk | 4 external/more_fonts/ExternalPackage_sourcecode.mk | 12 + extras/source/autocorr/lang/de/DocumentList.xml | 3 extras/source/palettes/standard.sob |binary include/formula/errorcodes.hxx | 9 include/sfx2/templateabstractview.hxx | 2 include/sfx2/templdlg.hxx | 8 include/vcl/help.hxx | 2 linguistic/source/convdicxml.cxx | 2 linguistic/source/dicimp.cxx | 2 linguistic/source/gciterator.cxx | 2 linguistic/source/lngsvcmgr.cxx | 8 odk/settings/settings.mk | 10 officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu | 2 sc/source/core/data/column2.cxx | 4 sc/source/core/data/table3.cxx | 28 ++ sc/source/core/tool/interpr7.cxx | 119 ++++++++-- sc/source/ui/app/inputhdl.cxx | 17 + sc/source/ui/view/formatsh.cxx | 4 sd/source/ui/func/fuchar.cxx | 2 sd/source/ui/view/drviewsf.cxx | 10 sd/source/ui/view/outlnvsh.cxx | 2 sd/source/ui/view/viewshe3.cxx | 4 sfx2/source/control/templateabstractview.cxx | 14 + sfx2/source/dialog/backingwindow.cxx | 5 sfx2/source/dialog/templdlg.cxx | 71 +++-- sfx2/source/dialog/tplcitem.cxx | 4 sfx2/source/inc/templdgi.hxx | 2 sfx2/uiconfig/ui/saveastemplatedlg.ui | 4 svgio/source/svgreader/svgstyleattributes.cxx | 24 +- svtools/source/control/valueset.cxx | 2 sw/inc/IDocumentSettingAccess.hxx | 1 sw/qa/core/data/rtf/fail/table-2.rtf |binary sw/qa/core/data/rtf/pass/tabbox-1.rtf |binary sw/qa/extras/ooxmlexport/data/tdf101589_dontSplitTable.odt |binary sw/qa/extras/ooxmlexport/data/tdf44986.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 10 sw/qa/extras/ooxmlexport/ooxmlexport3.cxx | 6 sw/qa/extras/rtfimport/data/tdf44986.rtf | 35 ++ sw/qa/extras/rtfimport/rtfimport.cxx | 10 sw/qa/extras/uiwriter/data/tdf78727.docx |binary sw/qa/extras/uiwriter/uiwriter.cxx | 12 + sw/source/core/access/accmap.cxx | 4 sw/source/core/crsr/crstrvl.cxx | 17 + sw/source/core/doc/DocumentSettingManager.cxx | 6 sw/source/core/doc/docedt.cxx | 3 sw/source/core/docnode/ndtbl.cxx | 2 sw/source/core/inc/DocumentSettingManager.hxx | 1 sw/source/core/layout/flowfrm.cxx | 4 sw/source/core/unocore/unosett.cxx | 2 sw/source/core/unocore/unotext.cxx | 25 +- sw/source/filter/html/css1atr.cxx | 6 sw/source/filter/ww8/wrtw8nds.cxx | 30 ++ sw/source/ui/chrdlg/chardlg.cxx | 2 sw/source/uibase/app/apphdl.cxx | 2 sw/source/uibase/app/docst.cxx | 2 sw/source/uibase/docvw/edtwin.cxx | 7 sw/source/uibase/uno/SwXDocumentSettings.cxx | 13 + sw/uiconfig/swriter/toolbar/changes.xml | 24 +- sw/uiconfig/swriter/ui/charurlpage.ui | 12 + vcl/inc/unx/gtk/gtksalmenu.hxx | 1 vcl/source/app/help.cxx | 3 vcl/unx/generic/glyphs/gcach_layout.cxx | 23 - vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx | 1 vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx | 1 vcl/unx/gtk/fpicker/SalGtkPicker.cxx | 5 vcl/unx/gtk/gtksalmenu.cxx | 9 writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf |binary writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf |binary writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-7.rtf |binary writerfilter/qa/cppunittests/rtftok/data/fail/topcontext-2.rtf |binary writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf |binary writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf |binary writerfilter/source/dmapper/DomainMapper.cxx | 3 writerfilter/source/dmapper/DomainMapper_Impl.cxx | 4 writerfilter/source/dmapper/NumberingManager.cxx | 11 writerfilter/source/dmapper/PropertyMap.cxx | 4 writerfilter/source/filter/WriterFilter.cxx | 1 writerfilter/source/ooxml/OOXMLFastContextHandler.cxx | 19 + writerfilter/source/ooxml/OOXMLFastContextHandler.hxx | 4 writerfilter/source/ooxml/factoryimpl_ns.py | 2 writerfilter/source/ooxml/model.xml | 12 - writerfilter/source/rtftok/rtfdispatchsymbol.cxx | 17 + writerfilter/source/rtftok/rtfdispatchvalue.cxx | 3 writerfilter/source/rtftok/rtfdocumentimpl.cxx | 16 - writerfilter/source/rtftok/rtfdocumentimpl.hxx | 6 writerfilter/source/rtftok/rtftokenizer.cxx | 2 xmloff/source/style/xmlnumfi.cxx | 10 xmloff/source/text/txtparae.cxx | 1 101 files changed, 637 insertions(+), 222 deletions(-)
New commits: commit d60dff922b4dba1064cc3a06bc7365e111ddc8a2 Author: Eike Rathke <er...@redhat.com> Date: Tue Sep 13 15:26:09 2016 +0200 recognize NaN with no bits set in lower word as error Which can happen for example for -nan(0x8000000000000) as a result of calculating with -inf. This was displayed as NaN instead of a proper error value, now #NUM! Example test case: =FORECAST.ETS.ADD(50, {-1,-2,-3,-4}, {10,20,30,40}) Change-Id: I1e1d95e1f188e0036b72be37dd20039c9a9a13f6 (cherry picked from commit 4ef10fce39575ec0bd3793b5fdf731c0b9af25a3) Reviewed-on: https://gerrit.libreoffice.org/28867 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit ca19404c254c306d31a332958da5dde5d69a8d20) diff --git a/include/formula/errorcodes.hxx b/include/formula/errorcodes.hxx index 13597b9..173c744 100644 --- a/include/formula/errorcodes.hxx +++ b/include/formula/errorcodes.hxx @@ -103,11 +103,14 @@ inline sal_uInt16 GetDoubleErrorValue( double fVal ) return 0; if ( ::rtl::math::isInf( fVal ) ) return errIllegalFPOperation; // normal INF - sal_uInt32 nErr = reinterpret_cast< sal_math_Double * >( - &fVal)->nan_parts.fraction_lo; + sal_uInt32 nErr = reinterpret_cast< sal_math_Double * >( &fVal)->nan_parts.fraction_lo; if ( nErr & 0xffff0000 ) return errNoValue; // just a normal NAN - return (sal_uInt16)(nErr & 0x0000ffff); // any other error + if (!nErr) + // Another NAN, e.g. -nan(0x8000000000000) from calculating with -inf + return errIllegalFPOperation; + // Any other error known to us as error code. + return (sal_uInt16)(nErr & 0x0000ffff); } } // namespace formula commit 1cb01d0b298c42f5446a3df026a254c21bc05693 Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Sep 12 16:08:38 2016 +0200 tdf#91966: In SDK, set CPPU_ENV=mscx for 64-bit Windows Change-Id: Ib93b2db40f43f98d8369cb91ca35692cc92f023b (cherry picked from commit 3aaa820446f1ad3d3b0ddc557238b6fb3496dd54) Reviewed-on: https://gerrit.libreoffice.org/28871 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 15cc69ef3b20458889901c0c0ac02c5211a21f48) diff --git a/odk/settings/settings.mk b/odk/settings/settings.mk index b5bee39..5dd54f6 100644 --- a/odk/settings/settings.mk +++ b/odk/settings/settings.mk @@ -113,8 +113,14 @@ SDK_JAVA_INCLUDES = -I"$(OO_SDK_JAVA_HOME)/include" -I"$(OO_SDK_JAVA_HOME)/inclu # define for used compiler necessary for UNO # -DCPPU_ENV=msci -- windows msvc 4.x - 7.x -CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci -CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci +ifeq "$(PROCTYPE)" "x86_64" +CPPU_ENV=mscx +else +CPPU_ENV=msci +endif + +CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=$(CPPU_ENV) +CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=$(CPPU_ENV) CC_OUTPUT_SWITCH=-Fo LIBO_SDK_LDFLAGS_STDLIBS = $(LIBO_SDK_DETAIL_LDFLAGS_MSVCRT) kernel32.lib commit ddb03cc38f6f85ca25c92dc8ca475ad95a1ca1da Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 13 04:34:05 2016 +0200 avoid crash with nullptr access e.g. http://crashreport.libreoffice.org/stats/crash_details/7d19c6e6-19cb-4ba0-a51f-7b7eef514ae1 Change-Id: Ia27780d6fa29a7e4b0665192844afbd8a7471721 Reviewed-on: https://gerrit.libreoffice.org/28854 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 0dc5bbc155311d6d687e4f29620c6652b988dd0d) diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx index ecfeb18..53db053 100644 --- a/sw/source/uibase/app/apphdl.cxx +++ b/sw/source/uibase/app/apphdl.cxx @@ -586,7 +586,7 @@ IMPL_LINK_NOARG_TYPED( SwMailMergeWizardExecutor, EndDialogHdl, Dialog&, void ) default: // finish { SwMailMergeConfigItem* pMMConfig = m_pView->GetMailMergeConfigItem(); - SwView* pSourceView = pMMConfig->GetSourceView(); + SwView* pSourceView = pMMConfig ? pMMConfig->GetSourceView() : nullptr; if(pSourceView) { pMMConfig->GetSourceView()->GetViewFrame()->GetFrame().Appear(); commit 71d02537e4f5c4cd87bc663f3488ed15c5f3f211 Author: Michael Stahl <mst...@redhat.com> Date: Mon Sep 12 13:23:00 2016 +0200 sw: partially revert commit d0b09f41efe938e94a84e783c9ff5742edcbfba8 These still trigger sometimes in JunitTest_toolkit_unoapi_1 and i haven't had time to track that down, so back to SAL_WARN for now... Change-Id: I4d9f653ffddc7c704d33950d847345f4895d3f87 (cherry picked from commit 2934f6bcc75c781cdf9e614b9d7d8533eb680b3f) Reviewed-on: https://gerrit.libreoffice.org/28862 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 243ed1a3606a8b9d331e40053e36582bf1fdc9e2) diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index 4c2aaae..9baa69f 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1697,7 +1697,7 @@ SwAccessibleMap::~SwAccessibleMap() { osl::MutexGuard aGuard( maMutex ); #if OSL_DEBUG_LEVEL > 0 - assert((!mpFrameMap || mpFrameMap->empty()) && + SAL_WARN_IF(!(!mpFrameMap || mpFrameMap->empty()), "sw.a11y", "Frame map should be empty after disposing the root frame"); if( mpFrameMap ) { @@ -1714,7 +1714,7 @@ SwAccessibleMap::~SwAccessibleMap() ++aIter; } } - assert((!mpShapeMap || mpShapeMap->empty()) && + SAL_WARN_IF(!(!mpShapeMap || mpShapeMap->empty()), "sw.a11y", "Object map should be empty after disposing the root frame"); if( mpShapeMap ) { commit 96f280798ad438b2db1207b5d2a1d3d1767e9953 Author: Yousuf Philips <philip...@hotmail.com> Date: Sun Sep 11 01:49:46 2016 +0400 tdf#101566 Remove untranslatable labels from changes toolbar Change-Id: I62cb3b8d0f57f7fd79cffce3b5aed5e384390e24 Reviewed-on: https://gerrit.libreoffice.org/28814 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Yousuf Philips <philip...@hotmail.com> (cherry picked from commit f37d6837bf864a08f567c10c5f5bc0d4e4b5f9f7) Reviewed-on: https://gerrit.libreoffice.org/28822 Reviewed-by: Maxim Monastirsky <momonas...@gmail.com> (cherry picked from commit 4b7707bb8bcf0965d2d81f9c82672cb11829737f) diff --git a/sw/uiconfig/swriter/toolbar/changes.xml b/sw/uiconfig/swriter/toolbar/changes.xml index 3ba4ad5..f90a85e 100644 --- a/sw/uiconfig/swriter/toolbar/changes.xml +++ b/sw/uiconfig/swriter/toolbar/changes.xml @@ -18,19 +18,19 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . --> <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink"> - <toolbar:toolbaritem xlink:href=".uno:ShowTrackedChanges" toolbar:text="Show" toolbar:helpid="10624"/> - <toolbar:toolbaritem xlink:href=".uno:TrackChanges" toolbar:text="Record" toolbar:helpid="10725"/> + <toolbar:toolbaritem xlink:href=".uno:ShowTrackedChanges" toolbar:helpid="10624"/> + <toolbar:toolbaritem xlink:href=".uno:TrackChanges" toolbar:helpid="10725"/> <toolbar:toolbarseparator/> - <toolbar:toolbaritem xlink:href=".uno:PreviousTrackedChange" toolbar:text="Previous"/> - <toolbar:toolbaritem xlink:href=".uno:NextTrackedChange" toolbar:text="Next"/> - <toolbar:toolbaritem xlink:href=".uno:AcceptTrackedChange" toolbar:text="Accept" toolbar:helpid="10625"/> - <toolbar:toolbaritem xlink:href=".uno:RejectTrackedChange" toolbar:text="Reject" toolbar:helpid="10626"/> - <toolbar:toolbaritem xlink:href=".uno:AcceptTrackedChanges" toolbar:text="List" toolbar:helpid="10622"/> + <toolbar:toolbaritem xlink:href=".uno:PreviousTrackedChange"/> + <toolbar:toolbaritem xlink:href=".uno:NextTrackedChange"/> + <toolbar:toolbaritem xlink:href=".uno:AcceptTrackedChange" toolbar:helpid="10625"/> + <toolbar:toolbaritem xlink:href=".uno:RejectTrackedChange" toolbar:helpid="10626"/> + <toolbar:toolbaritem xlink:href=".uno:AcceptTrackedChanges" toolbar:helpid="10622"/> <toolbar:toolbarseparator/> - <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:text="Regular Comment" toolbar:helpid="10625"/> - <toolbar:toolbaritem xlink:href=".uno:CommentChangeTracking" toolbar:text="Change Comment" toolbar:helpid="10625"/> + <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="10625"/> + <toolbar:toolbaritem xlink:href=".uno:CommentChangeTracking" toolbar:helpid="10625"/> <toolbar:toolbarseparator/> - <toolbar:toolbaritem xlink:href=".uno:ProtectTraceChangeMode" toolbar:text="Protect" toolbar:helpid="10625"/> - <toolbar:toolbaritem xlink:href=".uno:CompareDocuments" toolbar:text="Compare"/> - <toolbar:toolbaritem xlink:href=".uno:MergeDocuments" toolbar:text="Merge" toolbar:visible="false"/> + <toolbar:toolbaritem xlink:href=".uno:ProtectTraceChangeMode" toolbar:helpid="10625"/> + <toolbar:toolbaritem xlink:href=".uno:CompareDocuments"/> + <toolbar:toolbaritem xlink:href=".uno:MergeDocuments"/> </toolbar:toolbar> commit 62413c06f21790a7731866b5b34c19cffe01ff1b Author: Yousuf Philips <philip...@hotmail.com> Date: Sat Sep 10 19:19:46 2016 +0400 tdf#101812 Dont switch to templates view when opening template manager Change-Id: I3671de21b04f50045c1b7d209e745e2678b7c6f9 Reviewed-on: https://gerrit.libreoffice.org/28808 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> (cherry picked from commit 937a284ebfe1261e4b7666e4c1d2b8f9677c1763) diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index 350dc4a..6cbd43b 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -619,11 +619,6 @@ IMPL_LINK_TYPED( BackingWindow, MenuSelectHdl, MenuButton*, pButton, void ) dispatchURL( ".uno:NewDoc", OUString(), xFrame, aArgs ); } - - mpAllRecentThumbnails->Hide(); - mpLocalView->Show(); - mpLocalView->reload(); - mpLocalView->GrabFocus(); } IMPL_LINK_TYPED(BackingWindow, CreateContextMenuHdl, ThumbnailViewItem*, pItem, void) commit fd2b9df00a9758026fbaba75f87e7457c0037fa9 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Sep 12 10:11:37 2016 +0100 fftester: break as soon as an exception is required Change-Id: Ia787c42f484c00242f1bcaca8ea7459890ec5745 Reviewed-on: https://gerrit.libreoffice.org/28829 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 4bed0a6fbb7a77517e99578e53c94f0391f1b308) diff --git a/sw/qa/core/data/rtf/fail/table-2.rtf b/sw/qa/core/data/rtf/fail/table-2.rtf new file mode 100644 index 0000000..35e859b Binary files /dev/null and b/sw/qa/core/data/rtf/fail/table-2.rtf differ diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index b402d86..bad069f 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -2236,7 +2236,7 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception) break; } - for (sal_Int32 nCell = 0; nCell < nCells; ++nCell) + for (sal_Int32 nCell = 0; !bExcept && nCell < nCells; ++nCell) { SwNodeRange *const pLastCell( (nCell == 0) commit 5c3bf6af45fc9d485709d294dbb45d3d5bc87409 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Sep 12 09:34:21 2016 +0100 fftester: no table manager Change-Id: Icb3c640e04416f9120d37558646a570daeddf0a4 Reviewed-on: https://gerrit.libreoffice.org/28826 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 06f64551358c6e59897da067162f56f8b0789838) diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-7.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-7.rtf new file mode 100644 index 0000000..df41b1f Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-7.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 24049b1..dc054bc 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -830,7 +830,7 @@ void DomainMapper_Impl::CheckUnregisteredFrameConversion( ) TextAppendContext& rAppendContext = m_aTextAppendStack.top(); // n#779642: ignore fly frame inside table as it could lead to messy situations if( rAppendContext.pLastParagraphProperties.get() && rAppendContext.pLastParagraphProperties->IsFrameMode() - && !getTableManager().isInTable() ) + && hasTableManager() && !getTableManager().isInTable() ) { try { commit ebc0a8353f5f4311691e90b8c93ef51d9de08630 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Sep 9 10:50:37 2016 +0100 Resolves: tdf#101921 no tab navigation in style&formatting sidebar Change-Id: I737ed446d0ead9d748873fec90b62dcced35e328 Reviewed-on: https://gerrit.libreoffice.org/28767 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 3d7d318914bd69262da647e0db23ec47d6550afe) Reviewed-on: https://gerrit.libreoffice.org/28770 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit c0d5a89b081b81261b7f4b306e64cfb6ce6e950a) diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index ca53f4c..b81e561 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -340,7 +340,7 @@ std::unique_ptr<PopupMenu> SfxActionListBox::CreateContextMenu() } SfxTemplatePanelControl::SfxTemplatePanelControl(SfxBindings* pBindings, vcl::Window* pParentWindow) - : Window(pParentWindow) + : Window(pParentWindow, WB_DIALOGCONTROL) , pImpl(new SfxTemplateDialog_Impl(pBindings, this)) , mpBindings(pBindings) { commit da3a41fda25742a51520cebcca639fd76e852f6c Author: Caolán McNamara <caol...@redhat.com> Date: Sat Sep 10 13:46:47 2016 +0100 fftester: no table manager Change-Id: I033454670d1ee662bc80bc07578690155d97ce28 Reviewed-on: https://gerrit.libreoffice.org/28806 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 03be54fd1cdb9319c2898100423507781d2ce7cb) diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf new file mode 100644 index 0000000..67a0ea1 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/tablemanager-6.rtf differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 6bbef8d..24049b1 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -1221,7 +1221,7 @@ void DomainMapper_Impl::appendTextPortion( const OUString& rString, const Proper if( pPropertyMap == m_pTopContext && !deferredCharacterProperties.empty() && (GetTopContextType() == CONTEXT_CHARACTER) ) processDeferredCharacterProperties(); uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; - if(xTextAppend.is() && ! getTableManager( ).isIgnore()) + if (xTextAppend.is() && hasTableManager() && !getTableManager().isIgnore()) { try { commit 94fd641414b54b6059dbda1401f33e9ab9d30a24 Author: Caolán McNamara <caol...@redhat.com> Date: Sat Sep 10 11:47:16 2016 +0100 fftester: use of deleted RTFParserState but we only use the RTFParserState to use its m_pDocumentImpl and the m_pDocumentImpl is never changed for the RTFParserState lifetime, so take the m_pDocumentImpl at ctor time instead and use that directly later Change-Id: I15152e3f6d9008553b4a384a5e5da21373904cc9 Reviewed-on: https://gerrit.libreoffice.org/28803 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 68be1d3a8964d548a0113fe28a70e09349ddd0d7) diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf new file mode 100644 index 0000000..3fe4b28 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/parser-state-1.rtf differ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 53f3fc2..a1df2d0 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -3291,7 +3291,7 @@ RTFDrawingObject::RTFDrawingObject() } RTFFrame::RTFFrame(RTFParserState* pParserState) - : m_pParserState(pParserState), + : m_pDocumentImpl(pParserState->m_pDocumentImpl), m_nX(0), m_nY(0), m_nW(0), @@ -3309,10 +3309,10 @@ RTFFrame::RTFFrame(RTFParserState* pParserState) void RTFFrame::setSprm(Id nId, Id nValue) { - if (m_pParserState->m_pDocumentImpl->getFirstRun() && !m_pParserState->m_pDocumentImpl->isStyleSheetImport()) + if (m_pDocumentImpl->getFirstRun() && !m_pDocumentImpl->isStyleSheetImport()) { - m_pParserState->m_pDocumentImpl->checkFirstRun(); - m_pParserState->m_pDocumentImpl->setNeedPar(false); + m_pDocumentImpl->checkFirstRun(); + m_pDocumentImpl->setNeedPar(false); } switch (nId) { diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 32bbe4a..062cae2 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -182,12 +182,13 @@ public: }; class RTFParserState; +class RTFDocumentImpl; /// Stores the properties of a frame class RTFFrame { private: - RTFParserState* m_pParserState; + RTFDocumentImpl* m_pDocumentImpl; sal_Int32 m_nX, m_nY, m_nW, m_nH; sal_Int32 m_nHoriPadding, m_nVertPadding; sal_Int32 m_nHoriAlign, m_nHoriAnchor, m_nVertAlign, m_nVertAnchor; commit 8e3cc589e50206114783e45cadf1ce857a6513d0 Author: Justin Luth <justin_l...@sil.org> Date: Fri Sep 9 23:52:08 2016 +0300 tdf#86926 writerfilter allow fallback if exceptions The multiset routine was put in to increase the speed of applying properties. However, if one property causes an exception, the remaining properties are never applied. There is already a fallback routine (if the multiset can't be created), so use that instead of returning in a failed state. Change-Id: Iac53edd5fca8e8543d536609113a7b1109befd82 Reviewed-on: https://gerrit.libreoffice.org/28765 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Justin Luth <justin_l...@sil.org> Change-Id: I9305c56d45a81ed58a7d331afa5559a39f44266e Reviewed-on: https://gerrit.libreoffice.org/28790 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Justin Luth <justin_l...@sil.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit c97f1aff7077959e65852f65e3217e5dffd262ce) diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index ac192e6..83e2934 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1453,12 +1453,12 @@ void SectionPropertyMap::ApplyProperties_( try { xMultiSet->setPropertyValues(comphelper::containerToSequence(vNames), comphelper::containerToSequence(vValues)); + return; } catch( const uno::Exception& ) { OSL_FAIL( "Exception in SectionPropertyMap::ApplyProperties_"); } - return; } for (size_t i = 0; i < vNames.size(); ++i) { commit 377a8b36a1f9a32c05bc042f31a893719ce02666 Author: Andras Timar <andras.ti...@collabora.com> Date: Sun Sep 11 14:00:50 2016 +0200 tdf#101949 update Source Code Pro fonts to 2.030 and 1.050 Change-Id: Ic314f2b970ea96ec1eb027979723985138638cdb Reviewed-on: https://gerrit.libreoffice.org/28819 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> (cherry picked from commit 93725af2265d1171bcad27d69db11934b2ae6de5) diff --git a/download.lst b/download.lst index 13c7e9f..31480f7 100644 --- a/download.lst +++ b/download.lst @@ -49,7 +49,7 @@ export FONT_LIBERATION_TARBALL := 5c781723a0d9ed6188960defba8e91cf-liberation-fo export FONT_LINLIBERTINEG_TARBALL := e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip export FONT_OPENSANS_TARBALL := 7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz export FONT_PTSERIF_TARBALL := c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz -export FONT_SOURCECODE_TARBALL := 0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz +export FONT_SOURCECODE_TARBALL := 907d6e99f241876695c19ff3db0b8923-source-code-pro-2.030R-ro-1.050R-it.tar.gz export FONT_SOURCESANS_TARBALL := edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz export FREEHAND_MD5SUM := 8cf70c5dc4d24d2dc4a107f509d2d6d7 export FREEHAND_TARBALL := libfreehand-0.1.1.tar.bz2 diff --git a/external/more_fonts/ExternalPackage_sourcecode.mk b/external/more_fonts/ExternalPackage_sourcecode.mk index 6160e56..5f1d7f7 100644 --- a/external/more_fonts/ExternalPackage_sourcecode.mk +++ b/external/more_fonts/ExternalPackage_sourcecode.mk @@ -10,8 +10,20 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,fonts_sourcecode,font_sourcecode)) $(eval $(call gb_ExternalPackage_add_unpacked_files,fonts_sourcecode,$(LIBO_SHARE_FOLDER)/fonts/truetype,\ + SourceCodePro-BlackIt.ttf \ + SourceCodePro-Black.ttf \ + SourceCodePro-BoldIt.ttf \ SourceCodePro-Bold.ttf \ + SourceCodePro-ExtraLightIt.ttf \ + SourceCodePro-ExtraLight.ttf \ + SourceCodePro-It.ttf \ + SourceCodePro-LightIt.ttf \ + SourceCodePro-Light.ttf \ + SourceCodePro-MediumIt.ttf \ + SourceCodePro-Medium.ttf \ SourceCodePro-Regular.ttf \ + SourceCodePro-SemiboldIt.ttf \ + SourceCodePro-Semibold.ttf \ )) # vim: set noet sw=4 ts=4: commit 104b53fe1de6fc53a7f2591e32b79c78d2c61845 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Sep 8 16:36:59 2016 +0100 Resolves: tdf#101881 gtk3 3.18 menubar doesn't grab keyboard... the same way gtk3 3.20 does with gtk_grab_add, so on gtk_menu_shell_deselect the keyboard focus doesn't remain in the menubar. bisecting gtk itself I find... commit 5cbbb90e311d95192d1b68ba89c3190cdb652868 Author: Carlos Garnacho <carl...@gnome.org> Date: Thu Nov 26 19:54:31 2015 +0100 GtkCellRendererAccel: Use gdk_seat_grab() https://bugzilla.gnome.org/show_bug.cgi?id=759309 is the commit that makes it do what I want, so add an extra gtk_grab_add/gtk_grab_remove around our entry and exit of the menubar Change-Id: I5bf09834b4e1a14d30403208d03b3abd28a382a8 (cherry picked from commit d45d8ae3c51606eb1d9e63396a0eab13c8742907) Reviewed-on: https://gerrit.libreoffice.org/28759 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonas...@gmail.com> (cherry picked from commit 571c187f0610f59573b5e2285b6bfc9589236532) diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx index 90fcb7d..08b4113 100644 --- a/vcl/inc/unx/gtk/gtksalmenu.hxx +++ b/vcl/inc/unx/gtk/gtksalmenu.hxx @@ -48,6 +48,7 @@ private: bool mbMenuBar; bool mbNeedsUpdate; bool mbReturnFocusToDocument; + bool mbAddedGrab; GtkWidget* mpMenuBarContainerWidget; GtkWidget* mpMenuBarWidget; GtkWidget* mpCloseButton; diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx index 2980ac0..c891cf3 100644 --- a/vcl/unx/gtk/gtksalmenu.cxx +++ b/vcl/unx/gtk/gtksalmenu.cxx @@ -423,6 +423,7 @@ GtkSalMenu::GtkSalMenu( bool bMenuBar ) : mbMenuBar( bMenuBar ), mbNeedsUpdate( false ), mbReturnFocusToDocument( false ), + mbAddedGrab( false ), mpMenuBarContainerWidget( nullptr ), mpMenuBarWidget( nullptr ), mpCloseButton( nullptr ), @@ -602,6 +603,11 @@ void GtkSalMenu::ShowCloseButton(bool bShow) //focus to the next pane by itself. void GtkSalMenu::ReturnFocus() { + if (mbAddedGrab) + { + gtk_grab_remove(mpMenuBarWidget); + mbAddedGrab = false; + } if (!mbReturnFocusToDocument) gtk_widget_grab_focus(GTK_WIDGET(mpFrame->getEventBox())); else @@ -661,6 +667,8 @@ bool GtkSalMenu::TakeFocus() //this pairing results in a menubar with keyboard focus with no menus //auto-popped down + gtk_grab_add(mpMenuBarWidget); + mbAddedGrab = true; gtk_menu_shell_select_first(GTK_MENU_SHELL(mpMenuBarWidget), false); gtk_menu_shell_deselect(GTK_MENU_SHELL(mpMenuBarWidget)); mbReturnFocusToDocument = true; commit 07b3c383bb12d7a47c831fc4c0481e16a286ec0d Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Sep 7 22:17:34 2016 +0200 tdf#78727 sw: fix missing textbox text when anchored inside flying table It was missing as the shape text range was deleted twice, as DelFlyInRange() thought both the fly and the draw frame format own its contents range, while only the fly one does (when called by SwDoc::MakeFlyAndMove(), called by SwXText::convertToTextFrame()). Thanks Red Hat for the pizza! (cherry picked from commit 9d9e5b40c1a6d91323564e60b25ccf04df86db4b) Conflicts: sw/qa/extras/uiwriter/uiwriter.cxx Change-Id: I26e23550df085511e0e87f593f1a461057413d0e Reviewed-on: https://gerrit.libreoffice.org/28776 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit ebd72cfc297ecfe617e9112f977a8ca12c2cacee) diff --git a/sw/qa/extras/uiwriter/data/tdf78727.docx b/sw/qa/extras/uiwriter/data/tdf78727.docx new file mode 100644 index 0000000..a8787d4 Binary files /dev/null and b/sw/qa/extras/uiwriter/data/tdf78727.docx differ diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 57d53fc..5dcb81e 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -199,6 +199,7 @@ public: void testTdf99004(); void testTdf84695(); void testTdf84695NormalChar(); + void testTdf78727(); CPPUNIT_TEST_SUITE(SwUiWriterTest); CPPUNIT_TEST(testReplaceForward); @@ -300,6 +301,7 @@ public: CPPUNIT_TEST(testTdf99004); CPPUNIT_TEST(testTdf84695); CPPUNIT_TEST(testTdf84695NormalChar); + CPPUNIT_TEST(testTdf78727); CPPUNIT_TEST_SUITE_END(); private: @@ -3704,6 +3706,16 @@ void SwUiWriterTest::testTdf84695NormalChar() CPPUNIT_ASSERT_EQUAL(OUString("a"), xShape->getString()); } +void SwUiWriterTest::testTdf78727() +{ + SwDoc* pDoc = createDoc("tdf78727.docx"); + SdrPage* pPage = pDoc->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0); + // This was 1: make sure we don't loose the TextBox anchored inside the + // table that is moved inside a text frame. + std::set<const SwFrameFormat*> aSet; + CPPUNIT_ASSERT(SwTextBoxHelper::getCount(pPage, aSet) > 1); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx index 0f55ea6..a62ed4c 100644 --- a/sw/source/core/doc/docedt.cxx +++ b/sw/source/core/doc/docedt.cxx @@ -212,7 +212,8 @@ void DelFlyInRange( const SwNodeIndex& rMkNdIdx, { // If the Fly is deleted, all Flys in its content have to be deleted too. const SwFormatContent &rContent = pFormat->GetContent(); - if( rContent.GetContentIdx() ) + // But only fly formats own their content, not draw formats. + if (rContent.GetContentIdx() && pFormat->Which() == RES_FLYFRMFMT) { DelFlyInRange( *rContent.GetContentIdx(), SwNodeIndex( *rContent.GetContentIdx()-> commit f7c281c1ea270bd77add2b85f0bf94e423cf9336 Author: Eike Rathke <er...@redhat.com> Date: Wed Sep 7 21:04:43 2016 +0200 Resolves: tdf#101963 loading zh-TW ROC calendar use EE|E instead of YYYY|YY This still (unnecessarily) prefixes with [~ROC] but preserves the intended "no leading zero" semantics. Change-Id: I154be0978a8147ceddefcb546c257d44f770b5de (cherry picked from commit 95c91f098e8974c41c8d403a351fe53db6822165) Reviewed-on: https://gerrit.libreoffice.org/28732 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 7f037e2230d059320aff8610b6d24c0a44a71e41) diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 3120bea..bf9ab75 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -1135,11 +1135,17 @@ void SvXMLNumFmtElementContext::EndElement() case XML_TOK_STYLE_YEAR: rParent.UpdateCalendar( sCalendar ); //! I18N doesn't provide SYSTEM or extended date information yet - // Y after G (era) is replaced by E - if ( rParent.HasEra() ) + // Y after G (era) is replaced by E, also if we're switching to the + // other second known calendar for a locale. + /* TODO: here only for zh-TW, handle for other locales as well. */ + if ( rParent.HasEra() || + (sCalendar.equalsIgnoreAsciiCaseAscii("ROC") && + rParent.GetLocaleData().getLoadedLanguageTag().getBcp47() == "zh-TW")) + { rParent.AddNfKeyword( sal::static_int_cast< sal_uInt16 >( bEffLong ? NF_KEY_EEC : NF_KEY_EC ) ); + } else rParent.AddNfKeyword( sal::static_int_cast< sal_uInt16 >( commit 2bad967e3247e2dc5090bbc513c4ae1f149303d9 Author: Khaled Hosny <khaledho...@eglug.org> Date: Wed Sep 7 17:11:17 2016 +0200 Fix not-so-newly introduced perf regression in vcl Reverts f688acfdae00ebdd891737e533d54368810185e1 and the cluster boundaries part of 1da9b4c24e806ad2447b4a656e2a7192755bb6a8, checking the user of the GlyphItem::IS_IN_CLUSTER flag again, I think the old code provides what they expect. (cherry picked from commit 6323e6628668849438e6e19ba7ad2c6598263261) Change-Id: I74bcca3a203164028a0be8fe75fde73e54faba1b Reviewed-on: https://gerrit.libreoffice.org/28726 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 69885cb07b7cc8290946c97d45f0b7379dcf77b1) diff --git a/vcl/unx/generic/glyphs/gcach_layout.cxx b/vcl/unx/generic/glyphs/gcach_layout.cxx index dc9a84f..d8bf44b 100644 --- a/vcl/unx/generic/glyphs/gcach_layout.cxx +++ b/vcl/unx/generic/glyphs/gcach_layout.cxx @@ -326,7 +326,6 @@ private: hb_script_t maHbScript; hb_face_t* mpHbFace; int mnUnitsPerEM; - css::uno::Reference<css::i18n::XBreakIterator> mxBreak; public: explicit HbLayoutEngine(ServerFont&); @@ -513,12 +512,6 @@ bool HbLayoutEngine::Layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) hb_glyph_info_t *pHbGlyphInfos = hb_buffer_get_glyph_infos(pHbBuffer, nullptr); hb_glyph_position_t *pHbPositions = hb_buffer_get_glyph_positions(pHbBuffer, nullptr); - sal_Int32 nGraphemeStartPos = std::numeric_limits<sal_Int32>::max(); - sal_Int32 nGraphemeEndPos = std::numeric_limits<sal_Int32>::min(); - if (!mxBreak.is()) - mxBreak = vcl::unohelper::CreateBreakIterator(); - com::sun::star::lang::Locale aLocale(rArgs.maLanguageTag.getLocale()); - for (int i = 0; i < nRunGlyphCount; ++i) { int32_t nGlyphIndex = pHbGlyphInfos[i].codepoint; int32_t nCharPos = pHbGlyphInfos[i].cluster; @@ -539,22 +532,8 @@ bool HbLayoutEngine::Layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) nGlyphIndex = rFont.FixupGlyphIndex(nGlyphIndex, aChar); bool bInCluster = false; - if(bRightToLeft && (nCharPos < nGraphemeStartPos)) - { - sal_Int32 nDone; - nGraphemeStartPos = mxBreak->previousCharacters(rArgs.mrStr, nCharPos+1, aLocale, - com::sun::star::i18n::CharacterIteratorMode::SKIPCELL, 1, nDone); - } - else if(!bRightToLeft && (nCharPos >= nGraphemeEndPos)) - { - sal_Int32 nDone; - nGraphemeEndPos = mxBreak->nextCharacters(rArgs.mrStr, nCharPos, aLocale, - com::sun::star::i18n::CharacterIteratorMode::SKIPCELL, 1, nDone); - } - else - { + if (i > 0 && pHbGlyphInfos[i].cluster == pHbGlyphInfos[i - 1].cluster) bInCluster = true; - } long nGlyphFlags = 0; if (bRightToLeft) commit 48db5852411d59414537190845662a2bd96a2e3b Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Sep 6 08:16:37 2016 +0200 tdf#44986 RTF import: handle \trwWidthA by faking cells The DOCX import handles this at a tokenizer level, so let's do the same in the RTF case as well. (cherry picked from commit 0f2d5db38bac64b665c6e4a127bbbd63a7ed9af5) Change-Id: Id7ff43fa9e9bcd05b13d187623d39fb072758057 Reviewed-on: https://gerrit.libreoffice.org/28748 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 246df61b34e1ff5b5d7ecf7e46f04bb677548c9a) diff --git a/sw/qa/extras/rtfimport/data/tdf44986.rtf b/sw/qa/extras/rtfimport/data/tdf44986.rtf new file mode 100644 index 0000000..d255e10 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/tdf44986.rtf @@ -0,0 +1,35 @@ +{\rtf1 +\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\nooverflow\faroman\rin0\lin0\itap0\pararsid8937578 \rtlch\fcs1 +\af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 +{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7962097 before} +{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid11416584 +\par \ltrrow} +\trowd \irow0\irowband0\ltrrow\ts11\trgaph70\trleft-144\trkeep\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 +\trftsWidth1\trftsWidthB3\trftsWidthA3\trwWidthA6237\trpaddl70\trpaddr70\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind-74\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrnone \clbrdrr\brdrs\brdrw15 +\cltxlrtb\clftsWidth3\clwWidth3405\clshdrawnil \cellx3261\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\nooverflow\faroman\rin0\lin0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 +{ +\rtlch\fcs1 \af4\afs16 \ltrch\fcs0 \fs16\loch\af4\hich\af4\dbch\af31505\insrsid15290907\charrsid14246932 \hich\af4\dbch\af31505\loch\f4 A1} +{\rtlch\fcs1 \af4 \ltrch\fcs0 \loch\af4\hich\af4\dbch\af31505\insrsid11416584\charrsid14246932 \cell +} +\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 +{\rtlch\fcs1 \af0 \ltrch\fcs0 +\insrsid11416584\charrsid14246932 \trowd \irow0\irowband0\ltrrow\ts11\trgaph70\trleft-144\trkeep\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 +\trftsWidth1\trftsWidthB3\trftsWidthA3\trwWidthA6237\trpaddl70\trpaddr70\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind-74\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrnone \clbrdrr\brdrs\brdrw15 +\cltxlrtb\clftsWidth3\clwWidth3405\clshdrawnil \cellx3261\row \ltrrow} +\trowd \irow1\irowband1\lastrow \ltrrow\ts11\trgaph70\trleft-144\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 +\trftsWidth1\trftsWidthB3\trpaddl70\trpaddr70\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind-74\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrnone \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9642\clshdrawnil +\cellx9498\pard\plain \ltrpar\ql \li0\ri0\widctlpar\intbl\wrapdefault\nooverflow\faroman\rin0\lin0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 +{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 +\fs16\loch\af1\hich\af1\dbch\af31505\insrsid15290907\charrsid14246932 \hich\af1\dbch\af31505\loch\f1 A2} +{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \fs16\loch\af1\hich\af1\dbch\af31505\insrsid11416584\charrsid14246932 \cell } +\pard\plain \ltrpar +\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 +{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11416584\charrsid14246932 +\trowd \irow1\irowband1\lastrow \ltrrow\ts11\trgaph70\trleft-144\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 +\trftsWidth1\trftsWidthB3\trpaddl70\trpaddr70\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind-74\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrnone \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9642\clshdrawnil +\cellx9498\row } +\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\nooverflow\faroman\rin0\lin0\itap0\pararsid8937578 +{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid7962097 after} +{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14246932 +\par } +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 5f5d27a..3f87aa1 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -2684,6 +2684,16 @@ DECLARE_RTFIMPORT_TEST(testTdf100507, "tdf100507.rtf") CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(6618), getProperty<sal_Int32>(getParagraph(1), "ParaLeftMargin")); } +DECLARE_RTFIMPORT_TEST(testTdf44986, "tdf44986.rtf") +{ + // Check that the table at the second paragraph. + uno::Reference<text::XTextTable> xTable(getParagraphOrTable(2), uno::UNO_QUERY); + uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY); + // Check the first row of the table, it should have two cells (one separator). + // This was 0: the first row had no separators, so it had only one cell, which was too wide. + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators").getLength()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx index e33d140..2529492 100644 --- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx +++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx @@ -229,6 +229,16 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) break; case RTF_ROW: { + if (m_aStates.top().nTableRowWidthAfter > 0) + { + // Add fake cellx / cell, RTF equivalent of + // OOXMLFastContextHandlerTextTableRow::handleGridAfter(). + auto pXValue = std::make_shared<RTFValue>(m_aStates.top().nTableRowWidthAfter); + m_aStates.top().aTableRowSprms.set(NS_ooxml::LN_CT_TblGridBase_gridCol, pXValue, RTFOverwrite::NO_APPEND); + dispatchSymbol(RTF_CELL); + m_aStates.top().nTableRowWidthAfter = 0; + } + bool bRestored = false; // Ending a row, but no cells defined? // See if there was an invalid table row reset, so we can restore cell infos to help invalid documents. diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx index dfd9dff..b667290 100644 --- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx +++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx @@ -1402,6 +1402,9 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) case RTF_DIBITMAP: m_aStates.top().aPicture.eStyle = RTFBmpStyle::DIBITMAP; break; + case RTF_TRWWIDTHA: + m_aStates.top().nTableRowWidthAfter = nParam; + break; default: { SAL_INFO("writerfilter", "TODO handle value '" << keywordToString(nKeyword) << "'"); diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 93f1207..53f3fc2 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -3054,6 +3054,11 @@ RTFError RTFDocumentImpl::popState() replayBuffer(m_aSuperBuffer, nullptr, nullptr); } + if (!m_aStates.empty() && m_aStates.top().nTableRowWidthAfter > 0 && aState.nTableRowWidthAfter == 0) + // An RTF_ROW in the inner group already parsed nTableRowWidthAfter, + // don't do it again in the outer state later. + m_aStates.top().nTableRowWidthAfter = 0; + return RTFError::OK; } @@ -3222,7 +3227,8 @@ RTFParserState::RTFParserState(RTFDocumentImpl* pDocumentImpl) bInShapeGroup(false), bInShape(false), bCreatedShapeGroup(false), - bStartedTrackchange(false) + bStartedTrackchange(false), + nTableRowWidthAfter(0) { } diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 1663b90..32bbe4a 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -313,6 +313,9 @@ public: OUString aPropName; /// User-defined property: value type. css::uno::Type aPropType; + + /// Width of invisible cell at the end of the row. + int nTableRowWidthAfter; }; /// An RTF stack is similar to std::stack, except that it has an operator[]. commit c04dc4e2d6149792d99635c0bacfc41d4d4e668d Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Aug 8 04:44:09 2016 +0200 it is possible that Sources is empty See e.g. http://crashreport.libreoffice.org/stats/crash_details/570429b8-21e3-494e-9677-ea95fa8a5293 Change-Id: I8c05efd61fa5a91511c06c660c49a0c470a96c88 Reviewed-on: https://gerrit.libreoffice.org/27947 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Reviewed-on: https://gerrit.libreoffice.org/28753 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 08f79e4686b97b8dae4acf0a804b8bbd1c29dd34) diff --git a/extensions/source/update/check/updatecheck.cxx b/extensions/source/update/check/updatecheck.cxx index 8fe2363..86dc5c5 100644 --- a/extensions/source/update/check/updatecheck.cxx +++ b/extensions/source/update/check/updatecheck.cxx @@ -846,6 +846,12 @@ UpdateCheck::download() State eState = m_eState; aGuard.clear(); + if (aInfo.Sources.empty()) + { + SAL_WARN("extension.updatecheck", "download called without source"); + return; + } + if( aInfo.Sources[0].IsDirect ) { // Ignore second click of a double click commit 2b2eb111e8f06a28b0d5b104d01081b3be678ec3 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 6 20:31:06 2016 +0100 rtf: throw early on a bad nestrow token Change-Id: I9de8d09bce18fd1e8a145617794594a99a5f996e Reviewed-on: https://gerrit.libreoffice.org/28711 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 518d3a6173742e0b8b8d30d8ad3584fe5af129c4) diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx index 966a0b7..e33d140 100644 --- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx +++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx @@ -202,12 +202,12 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) pBuffer->pRowProperties, m_nNestedCells, m_nNestedCurrentCellX); - assert(m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back()); - if (m_aTableBufferStack.size() == 1) + if (m_aTableBufferStack.size() == 1 || !m_aStates.top().pCurrentBuffer) { throw io::WrongFormatException( "mismatch between \\itap and number of \\nestrow", nullptr); } + assert(m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back()); // note: there may be several states pointing to table buffer! for (std::size_t i = 0; i < m_aStates.size(); ++i) { commit 3fe10b83143882f21ccc0373d494f70525756823 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 6 20:19:04 2016 +0100 rtf: don't skip backwards on skipping bin specified bytes otherwise we could end up re-parsing the block endlessly Change-Id: Ia90a9e5b513951c91e1917483f9e030dbee98ffb Reviewed-on: https://gerrit.libreoffice.org/28709 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 047396e4e792b041b20757091263499709fc4e8a) diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx b/writerfilter/source/rtftok/rtftokenizer.cxx index 2dab789..ba411d2 100644 --- a/writerfilter/source/rtftok/rtftokenizer.cxx +++ b/writerfilter/source/rtftok/rtftokenizer.cxx @@ -282,7 +282,7 @@ RTFError RTFTokenizer::dispatchKeyword(OString& rKeyword, bool bParam, int nPara { // skip binary data explicitely, to not trip over rtf markup // control characters - if (rKeyword.equals("bin")) + if (rKeyword.equals("bin") && nParam > 0) Strm().SeekRel(nParam); return RTFError::OK; } commit 0c562bd17aa7c920b6ad442f20e4b39f9a259f63 Author: Yousuf Philips <philip...@hotmail.com> Date: Fri Aug 26 16:57:13 2016 +0400 tdf#94547 Default set of pattern presets Change-Id: Ife81b445826c9bdb971b9a7c7c7c352051b1368b Reviewed-on: https://gerrit.libreoffice.org/28410 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit 3cba0fd0a45b7eeb7497457822c071cc79f8ce3b) diff --git a/extras/source/palettes/standard.sob b/extras/source/palettes/standard.sob index ee1f29f..ad75f0f 100644 Binary files a/extras/source/palettes/standard.sob and b/extras/source/palettes/standard.sob differ commit 47f886b518eb390ee5674135d2a38094d2901c13 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Aug 30 09:14:47 2016 +0200 Related: tdf#44986 DOCX import: handle w:gridAfter by faking cells This is similar to the w:gridBefore handling code introduced in commit cf33af732ed0d3d553bb74636e3b14c55d44c153 (handle w:gridBefore by faking cells (fdo#38414), 2014-04-23), except that the fake cells here are inserted after the real ones, not before. Change-Id: I4c03bd49e52016a58e0e002ae85dede6a96e5f55 Reviewed-on: https://gerrit.libreoffice.org/28487 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Jenkins <c...@libreoffice.org> (cherry picked from commit 1d1748d143ab4270a2ca1b5117852b1b1bb4c526) Reviewed-on: https://gerrit.libreoffice.org/28624 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit 0ba2229a57527e78f237119efa413f122c9ca74b) diff --git a/sw/qa/extras/ooxmlexport/data/tdf44986.docx b/sw/qa/extras/ooxmlexport/data/tdf44986.docx new file mode 100644 index 0000000..7859ab4 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf44986.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index cb20af1..90cef9f 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -17,6 +17,7 @@ #include <com/sun/star/text/HoriOrientation.hpp> #include <com/sun/star/text/XTextRangeCompare.hpp> #include <com/sun/star/text/WritingMode2.hpp> +#include <com/sun/star/text/TableColumnSeparator.hpp> #include <oox/drawingml/drawingmltypes.hxx> #include <config_features.h> #include <string> @@ -821,6 +822,15 @@ DECLARE_OOXMLEXPORT_TEST(testTDF99434, "protectedform.docx") CPPUNIT_ASSERT(bProt); } +DECLARE_OOXMLEXPORT_TEST(testTdf44986, "tdf44986.docx") +{ + // Check that the table at the second paragraph. + uno::Reference<text::XTextTable> xTable(getParagraphOrTable(2), uno::UNO_QUERY); + uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY); + // Check the first row of the table, it should have two cells (one separator). + // This was 0: the first row had no separators, so it had only one cell, which was too wide. + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators").getLength()); +} CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx index 5edac7a..645ade6 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx @@ -1331,6 +1331,14 @@ void OOXMLFastContextHandlerTextTableRow::startRow() void OOXMLFastContextHandlerTextTableRow::endRow() { + if (mpGridAfter) + { + // Grid after is the same as grid before, the empty cells are just + // inserted after the real ones, not before. + handleGridBefore(mpGridAfter); + mpGridAfter = nullptr; + } + startParagraphGroup(); if (isForwardEvents()) @@ -1364,6 +1372,17 @@ void OOXMLFastContextHandlerTextTableRow::endRow() endParagraphGroup(); } +void OOXMLFastContextHandlerTextTableRow::handleGridAfter(const OOXMLValue::Pointer_t& rValue) +{ + if (OOXMLFastContextHandler* pTableRowProperties = getParent()) + { + if (OOXMLFastContextHandler* pTableRow = pTableRowProperties->getParent()) + // Save the value into the table row context, so it can be handled + // right before the end of the row. + pTableRow->setGridAfter(rValue); + } +} + // Handle w:gridBefore here by faking necessary input that'll fake cells. I'm apparently // not insane enough to find out how to add cells in dmapper. void OOXMLFastContextHandlerTextTableRow::handleGridBefore( const OOXMLValue::Pointer_t& val ) diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx index 34c118d..f713fcf 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx @@ -188,6 +188,8 @@ public: virtual void setDefaultStringValue(); void sendPropertyToParent(); + OOXMLFastContextHandler* getParent() const { return mpParent; } + void setGridAfter(const OOXMLValue::Pointer_t& pGridAfter) { mpGridAfter = pGridAfter; } protected: OOXMLFastContextHandler * mpParent; @@ -222,6 +224,7 @@ protected: const css::uno::Reference< css::uno::XComponentContext >& getComponentContext() { return m_xContext;} bool inPositionV; + OOXMLValue::Pointer_t mpGridAfter; private: void operator =(OOXMLFastContextHandler &) = delete; @@ -403,6 +406,7 @@ public: static void startRow(); void endRow(); void handleGridBefore( const OOXMLValue::Pointer_t& val ); + void handleGridAfter(const OOXMLValue::Pointer_t& rValue); private: static OOXMLProperty::Pointer_t fakeNoBorder( Id id ); }; diff --git a/writerfilter/source/ooxml/factoryimpl_ns.py b/writerfilter/source/ooxml/factoryimpl_ns.py index 6ad9a83..d9baaa1 100644 --- a/writerfilter/source/ooxml/factoryimpl_ns.py +++ b/writerfilter/source/ooxml/factoryimpl_ns.py @@ -439,7 +439,7 @@ def factoryChooseAction(actionNode): elif actionNode.getAttribute("action") in ("startRow", "endRow"): ret.append(" %sif (OOXMLFastContextHandlerTextTableRow* pTextTableRow = dynamic_cast<OOXMLFastContextHandlerTextTableRow*>(pHandler))" % extra_space) ret.append(" %s pTextTableRow->%s();" % (extra_space, actionNode.getAttribute("action"))) - elif actionNode.getAttribute("action") == "handleGridBefore": + elif actionNode.getAttribute("action") == "handleGridBefore" or actionNode.getAttribute("action") == "handleGridAfter": ret.append(" %sif (OOXMLFastContextHandlerTextTableRow* pTextTableRow = dynamic_cast<OOXMLFastContextHandlerTextTableRow*>(pHandler))" % extra_space) ret.append(" %s pTextTableRow->%s();" % (extra_space, actionNode.getAttribute("action"))) elif actionNode.getAttribute("action") in ("sendProperty", "handleHyperlink"): diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml index 32935c9..61438c3 100644 --- a/writerfilter/source/ooxml/model.xml +++ b/writerfilter/source/ooxml/model.xml @@ -14382,7 +14382,7 @@ <ref name="CT_TrPrBaseGridBefore"/> </element> <element name="gridAfter"> - <ref name="CT_DecimalNumber"/> + <ref name="CT_TrPrBaseGridAfter"/> </element> <element name="wBefore"> <ref name="CT_TblWidth"/> @@ -14415,6 +14415,11 @@ <ref name="ST_DecimalNumber"/> </attribute> </define> + <define name="CT_TrPrBaseGridAfter"> + <attribute name="val"> + <ref name="ST_DecimalNumber"/> + </attribute> + </define> <define name="CT_TrPr"> <ref name="CT_TrPrBase"/> <element name="ins"> @@ -18298,8 +18303,6 @@ <resource name="CT_TrPrBase" resource="Properties"> <element name="cnfStyle" tokenid="ooxml:CT_TrPrBase_cnfStyle"/> <element name="divId" tokenid="ooxml:CT_TrPrBase_divId"/> -<!-- <element name="gridBefore" tokenid="ooxml:CT_TrPrBase_gridBefore"/> --> - <element name="gridAfter" tokenid="ooxml:CT_TrPrBase_gridAfter"/> <element name="wBefore" tokenid="ooxml:CT_TrPrBase_wBefore"/> <element name="wAfter" tokenid="ooxml:CT_TrPrBase_wAfter"/> <element name="cantSplit" tokenid="ooxml:CT_TrPrBase_cantSplit"/> @@ -18312,6 +18315,9 @@ <resource name="CT_TrPrBaseGridBefore" resource="TextTableRow"> <attribute name="val" tokenid="ooxml:CT_TrPrBase_gridBefore" action="handleGridBefore"/> </resource> + <resource name="CT_TrPrBaseGridAfter" resource="TextTableRow"> + <attribute name="val" tokenid="ooxml:CT_TrPrBase_gridAfter" action="handleGridAfter"/> + </resource> <resource name="CT_TrPr" resource="Properties"> <element name="ins" tokenid="ooxml:CT_TrPr_ins"/> <element name="del" tokenid="ooxml:CT_TrPr_del"/> commit 27c55d3d6c043041b770865ebe0f6997046d29c0 Author: Johnny_M <kla...@partyheld.de> Date: Sat Sep 3 01:10:11 2016 +0200 tdf#101863 Remove superfluous apostrophe auto-corrections in DE Following auto-corrections in the DE locale are are being removed: gehts -> geht´s gibts -> gibt´s wirds -> wird´s Change-Id: Ide648de5800881c829a2ad807e2a585244ccd4a7 Reviewed-on: https://gerrit.libreoffice.org/28635 Tested-by: jan iversen <j...@documentfoundation.org> Reviewed-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit 4b62ad397c1ed137cbe69aa0882d290a92052e9a) diff --git a/extras/source/autocorr/lang/de/DocumentList.xml b/extras/source/autocorr/lang/de/DocumentList.xml index 0ee0004..2b8cf95 100644 --- a/extras/source/autocorr/lang/de/DocumentList.xml +++ b/extras/source/autocorr/lang/de/DocumentList.xml @@ -110,13 +110,11 @@ <block-list:block block-list:abbreviated-name="Gechichte" block-list:name="Geschichte"/> <block-list:block block-list:abbreviated-name="gehn" block-list:name="gehen"/> <block-list:block block-list:abbreviated-name="geht´s" block-list:name="gehtâs"/> - <block-list:block block-list:abbreviated-name="gehts" block-list:name="gehtâs"/> <block-list:block block-list:abbreviated-name="geht's" block-list:name="gehtâs"/> <block-list:block block-list:abbreviated-name="Geidcht" block-list:name="Gedicht"/> <block-list:block block-list:abbreviated-name="Geschichtne" block-list:name="Geschichten"/> <block-list:block block-list:abbreviated-name="Geshichte" block-list:name="Geschichte"/> <block-list:block block-list:abbreviated-name="gibt´s" block-list:name="gibtâs"/> - <block-list:block block-list:abbreviated-name="gibts" block-list:name="gibtâs"/> <block-list:block block-list:abbreviated-name="gibt's" block-list:name="gibtâs"/> <block-list:block block-list:abbreviated-name="gnaz" block-list:name="ganz"/> <block-list:block block-list:abbreviated-name="Grupe" block-list:name="Gruppe"/> @@ -241,7 +239,6 @@ <block-list:block block-list:abbreviated-name="widergeben" block-list:name="wiedergeben"/> <block-list:block block-list:abbreviated-name="wiederspiegeln" block-list:name="widerspiegeln"/> <block-list:block block-list:abbreviated-name="wird´s" block-list:name="wirdâs"/> - <block-list:block block-list:abbreviated-name="wirds" block-list:name="wirdâs"/> <block-list:block block-list:abbreviated-name="wird's" block-list:name="wirdâs"/> <block-list:block block-list:abbreviated-name="Wrot" block-list:name="Wort"/> <block-list:block block-list:abbreviated-name="wüdre" block-list:name="würde"/> commit 608e634ea187fa8f04a49cde9323911d1b17de2e Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 6 15:57:30 2016 +0100 fftester: missing ValueLast Change-Id: I8e881871b1ae4dea757263d04796779e62e168dc Reviewed-on: https://gerrit.libreoffice.org/28694 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit f810ca3d93f392fe4523dd58400b79f62bf8862f) diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf new file mode 100644 index 0000000..847e165 Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/pass/valuelist-1.rtf differ diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx index 218810b..966a0b7 100644 --- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx +++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx @@ -243,7 +243,8 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) if ((m_nCellxMax - m_nTopLevelCurrentCellX) >= MINLAY) { auto pXValueLast = m_aStates.top().aTableRowSprms.find(NS_ooxml::LN_CT_TblGridBase_gridCol, false); - auto pXValue = std::make_shared<RTFValue>(pXValueLast->getInt() + m_nCellxMax - m_nTopLevelCurrentCellX); + const int nXValueLast = pXValueLast ? pXValueLast->getInt() : 0; + auto pXValue = std::make_shared<RTFValue>(nXValueLast + m_nCellxMax - m_nTopLevelCurrentCellX); m_aStates.top().aTableRowSprms.eraseLast(NS_ooxml::LN_CT_TblGridBase_gridCol); m_aStates.top().aTableRowSprms.set(NS_ooxml::LN_CT_TblGridBase_gridCol, pXValue, RTFOverwrite::NO_APPEND); m_nTopLevelCurrentCellX = m_nCellxMax; commit 5b270c4cc7f4d40f13b7556c32b603bfc518a994 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Sep 6 14:49:31 2016 +0100 if we throw in sw on HoriOrientation::NONE then don't pass it in from rtf Change-Id: Ie01cca9b7cc432fc1fe14bb600af5083d6ca6a0d Reviewed-on: https://gerrit.libreoffice.org/28688 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit 696f11078c3bf236f5d455fded6463f85763a6e6) diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx index cd84531..81fd65d 100644 --- a/sw/source/core/unocore/unosett.cxx +++ b/sw/source/core/unocore/unosett.cxx @@ -1674,7 +1674,7 @@ void SwXNumberingRules::SetPropertiesToNumFormat( { case 0: //"Adjust" { - sal_Int16 nValue = 0; + sal_Int16 nValue = text::HoriOrientation::NONE; pProp->Value >>= nValue; if(nValue > 0 && nValue <= text::HoriOrientation::LEFT && diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index 0cbd6db..aa4fc93 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -987,7 +987,7 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) break; case NS_ooxml::LN_CT_Lvl_lvlJc: { - sal_Int16 nValue = 0; + sal_Int16 nValue = text::HoriOrientation::NONE; switch (nIntValue) { case NS_ooxml::LN_Value_ST_Jc_left: @@ -1002,9 +1002,12 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) nValue = text::HoriOrientation::RIGHT; break; } - m_pCurrentDefinition->GetCurrentLevel( )->Insert( - PROP_ADJUST, uno::makeAny( nValue ) ); - writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); + if (nValue != text::HoriOrientation::NONE) + { + m_pCurrentDefinition->GetCurrentLevel( )->Insert( + PROP_ADJUST, uno::makeAny( nValue ) ); + writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); + } } break; case NS_ooxml::LN_CT_Lvl_pPr: commit 0d73da09d17f93c62592cbec32881a4dbb182c80 Author: Yousuf Philips <philip...@hotmail.com> Date: Sun Sep 4 04:59:11 2016 +0400 Make character dialog's hyperlink tab accessible Change-Id: I6b2351b5a46562236dc93c6de3daa185e2a72fb2 Reviewed-on: https://gerrit.libreoffice.org/28653 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 62fdfdded30e3e7507590a07791cc78e6b2b1d80) Reviewed-on: https://gerrit.libreoffice.org/28695 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit c0b72139e7c619c484daac0cd84201fd95327224) diff --git a/sw/uiconfig/swriter/ui/charurlpage.ui b/sw/uiconfig/swriter/ui/charurlpage.ui index ba39e55..c69e10c 100644 --- a/sw/uiconfig/swriter/ui/charurlpage.ui +++ b/sw/uiconfig/swriter/ui/charurlpage.ui @@ -33,6 +33,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">URL:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">urled</property> </object> <packing> <property name="left_attach">0</property> @@ -45,6 +47,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">Name:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">nameed</property> </object> <packing> <property name="left_attach">0</property> @@ -57,6 +61,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">Text:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">texted</property> </object> <packing> <property name="left_attach">0</property> @@ -69,6 +75,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">Target frame:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">targetfrmlb</property> </object> <packing> <property name="left_attach">0</property> @@ -214,6 +222,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">Visited links:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">visitedlb</property> </object> <packing> <property name="left_attach">0</property> @@ -226,6 +236,8 @@ <property name="can_focus">False</property> <property name="xalign">1</property> <property name="label" translatable="yes">Unvisited links:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">unvisitedlb</property> </object> <packing> <property name="left_attach">0</property> commit 3b1f279ddc831ac1d0cd926fa55da7753fef7056 Author: Yousuf Philips <philip...@hotmail.com> Date: Sun Sep 4 08:34:52 2016 +0400 a11y: fix missing labels in sw paragraph dialog textflow tab Change-Id: I3173cf240131788013345aa864156286affa476d Reviewed-on: https://gerrit.libreoffice.org/28657 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 9ea5483d9bd44b136c89e45ef96bbf3df0a7cdef) Reviewed-on: https://gerrit.libreoffice.org/28696 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit 721b55bcf1ab31b24b28aac6d9a54784fc290d6c) diff --git a/cui/uiconfig/ui/textflowpage.ui b/cui/uiconfig/ui/textflowpage.ui index c11f30d..0674dbc 100644 --- a/cui/uiconfig/ui/textflowpage.ui +++ b/cui/uiconfig/ui/textflowpage.ui @@ -116,6 +116,7 @@ <property name="halign">start</property> <property name="label" translatable="yes">C_haracters at line end</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">spinLineEnd</property> </object> <packing> <property name="left_attach">1</property> @@ -129,6 +130,7 @@ <property name="halign">start</property> <property name="label" translatable="yes">Cha_racters at line begin</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">spinLineBegin</property> </object> <packing> <property name="left_attach">1</property> @@ -142,6 +144,7 @@ <property name="halign">start</property> <property name="label" translatable="yes">_Maximum number of consecutive hyphens</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">spinMaxNum</property> </object> <packing> <property name="left_attach">1</property> @@ -209,7 +212,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="margin_left">25</property> + <property name="margin_left">22</property> <property name="use_underline">True</property> <property name="xalign">0</property> <property name="inconsistent">True</property> commit 8599ff2fa6a535a56f47ebdcd9bd875fce7db005 Author: Yousuf Philips <philip...@hotmail.com> Date: Mon Aug 29 20:37:12 2016 +0400 tdf#90497 Unhide document themes sidebar design deck Change-Id: Id936c255432816e6a5defa0a39e0ce9f4f93ebd6 Reviewed-on: https://gerrit.libreoffice.org/28465 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> (cherry picked from commit 5758f8a7f8e2e9819ef09f4e1fe38921b247dc65) Reviewed-on: https://gerrit.libreoffice.org/28699 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit f14be52b1995731ebc06fb99689d90909ac29d4b) diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index b907f65..d6115f9 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -220,7 +220,7 @@ </prop> <prop oor:name="ContextList"> <value oor:separator=";"> - WriterVariants, Text, hidden; + WriterVariants, Text, visible; </value> </prop> <prop oor:name="OrderIndex" oor:type="xs:int"> commit 529c31df3de747356af7f281acdfac3edf5523f2 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Tue Sep 6 21:23:49 2016 +0300 tdf#101779 Allow multiline tooltips in template manager Based on 0c3a9aa403c209e522dc5c32258c33381677c91e Also includes: Related: tdf#101779 TipStyleBalloon for ShowQuickHelp too 681294d55b6b4edcdef08982596cb4bcee32e635 converted TableDataWindow::RequestHelp to use ShowQuickHelp, but it wants to set TipStyleBalloon to be able to use line break. Also I want to do the same in the template manager dialog, in the following commit. (cherry picked from commit 331d3a8b23cdbff0e1434aa5a553efdcc2c7c822) Change-Id: Ie2569a5ab29620a5f4474dafd2309513c08bd7d2 Reviewed-on: https://gerrit.libreoffice.org/28701 Reviewed-by: jan iversen <j...@documentfoundation.org> Tested-by: jan iversen <j...@documentfoundation.org> (cherry picked from commit abd7dc569ec746f5eef03613ecfbcbf75491e640) diff --git a/include/sfx2/templateabstractview.hxx b/include/sfx2/templateabstractview.hxx index 7913947..404b982 100644 --- a/include/sfx2/templateabstractview.hxx +++ b/include/sfx2/templateabstractview.hxx @@ -85,6 +85,8 @@ public: virtual void MouseButtonDown( const MouseEvent& rMEvt ) override; + virtual void RequestHelp( const HelpEvent& rHEvt ) override; + virtual void Command( const CommandEvent& rCEvt ) override; virtual void KeyInput( const KeyEvent& rKEvt ) override; diff --git a/include/vcl/help.hxx b/include/vcl/help.hxx index 2070caa..e76bd91 100644 --- a/include/vcl/help.hxx +++ b/include/vcl/help.hxx @@ -43,7 +43,7 @@ enum class QuickHelpFlags CtrlText = 0x0040, /// no delay when opening the quick help. Applies to ShowBallon and ShowQuickHelp NoDelay = 0x0080, -/// force balloon-style in ShowPopover +/// force balloon-style in ShowPopover and ShowQuickHelp TipStyleBalloon = 0x0100, NoEvadePointer = 0x0200, BiDiRtl = 0x0400, diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index 45f644d..539a207 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -16,6 +16,7 @@ #include <sfx2/docfac.hxx> #include <tools/urlobj.hxx> #include <unotools/ucbstreamhelper.hxx> +#include <vcl/help.hxx> #include <vcl/pngread.hxx> #include <vcl/layout.hxx> #include <unotools/moduleoptions.hxx> @@ -190,6 +191,19 @@ void TemplateAbstractView::MouseButtonDown( const MouseEvent& rMEvt ) ThumbnailView::MouseButtonDown(rMEvt); } +void TemplateAbstractView::RequestHelp( const HelpEvent& rHEvt ) +{ + if ( rHEvt.GetMode() & HelpEventMode::QUICK ) + { + Rectangle aRect( OutputToScreenPixel( GetPosPixel() ), GetSizePixel() ); + Help::ShowQuickHelp( this, aRect, GetQuickHelpText(), + QuickHelpFlags::CtrlText | QuickHelpFlags::TipStyleBalloon ); + return; + } + + ThumbnailView::RequestHelp( rHEvt ); +} + void TemplateAbstractView::Command( const CommandEvent& rCEvt ) { if ( rCEvt.GetCommand() == CommandEventId::ContextMenu ) diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx index 0ebf141..d29806a 100644 --- a/vcl/source/app/help.cxx +++ b/vcl/source/app/help.cxx @@ -178,7 +178,8 @@ bool Help::ShowQuickHelp( vcl::Window* pParent, const OUString& rLongHelpText, QuickHelpFlags nStyle ) { - ImplShowHelpWindow( pParent, HELPWINSTYLE_QUICK, nStyle, + sal_uInt16 nHelpWinStyle = ( nStyle & QuickHelpFlags::TipStyleBalloon ) ? HELPWINSTYLE_BALLOON : HELPWINSTYLE_QUICK; + ImplShowHelpWindow( pParent, nHelpWinStyle, nStyle, rHelpText, rLongHelpText, pParent->OutputToScreenPixel( pParent->GetPointerPosPixel() ), rScreenRect ); return true; commit a7d1593dabe751457a94624962584f761f3d6caf Author: Maxim Monastirsky <momonas...@gmail.com> Date: Mon Sep 5 01:56:19 2016 +0300 tdf#101471 Unity: make sure vcl menu is hidden MenuBar::SetDisplayable happens to be called before GtkSalMenu::EnableUnity(true) under gtk2, which leaves the vcl menu visible (but not painted completely). Solve this by calling SetDisplayable from inside EnableUnity, as it was before 800704e0c46f6f86f6a18a477ba4b6f313c5693a. Note that calling SetDisplayable has a side effect of disabling of menubar keyboard events, but we don't care about that, because Unity menu is outside the application anyway. Change-Id: I3948d5b57b1df480cee4fb962a5dc6b63a849b15 Reviewed-on: https://gerrit.libreoffice.org/28676 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit bc57ca9d6dc107fd0dcdfcb844ca8b937624281e) diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx index 873ce39..2980ac0 100644 --- a/vcl/unx/gtk/gtksalmenu.cxx +++ b/vcl/unx/gtk/gtksalmenu.cxx @@ -1085,6 +1085,7 @@ void GtkSalMenu::EnableUnity(bool bEnable) else DestroyMenuBarWidget(); bUnityMode = bEnable; + static_cast<MenuBar*>(mpVCLMenu)->SetDisplayable(!bEnable); } } commit 827bbe98890b2c2e6808c11d8bcb9156653411b5 Author: Michael Stahl <mst...@redhat.com> Date: Thu Sep 1 23:06:00 2016 +0200 editeng: don't let wild-card auto-correct leave current word If a paragraph has e.g. multiple -> in it then auto-correct of the first one will create via the .*->.* rule a new auto-correct entry that has as long-word the word that contains the first -> until the last -> and everything in between. This will be somewhat irritating when it is eventually applied. Avoid it by limiting the wild-card loop to the current word, which is apparently the intent anyway. (regression from a07425892205ff8951027ea20459b97370d01de6) Change-Id: I294bae863c44eb460627b61b4383133131fe4b3a Reviewed-on: https://gerrit.libreoffice.org/28608 Reviewed-by: László Németh <nem...@numbertext.org> Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 9670f0d17ffed1ff07cb1deddcabc26c756e4bc1) Reviewed-on: https://gerrit.libreoffice.org/28633 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit d1de6e3d560407051faddb0497f36f644becd527) diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 0bfd925..1fe52ca 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -2823,6 +2823,11 @@ const SvxAutocorrWord* SvxAutocorrWordList::WordMatches(const SvxAutocorrWord *p nSttWdPos = rTxt.indexOf( sTmp, nFndPos); if (nSttWdPos != -1) { + sal_Int32 nTmp(nFndPos); + while (nTmp < nSttWdPos && !IsWordDelim(rTxt[nTmp])) + nTmp++; + if (nTmp < nSttWdPos) + break; // word delimiter found buf.append(rTxt.copy(nFndPos, nSttWdPos - nFndPos)).append(pFnd->GetLong()); nFndPos = nSttWdPos + sTmp.getLength(); } commit 0326dbdf462451faec525d12a63f501a12e611af Author: Yousuf Philips <philip...@hotmail.com> Date: Mon Sep 5 20:49:37 2016 +0400 tdf#101115 Make save as template dialog accessible Change-Id: I59dba20aa0a812d0ea27dd3a3a58d856b736318c Reviewed-on: https://gerrit.libreoffice.org/28674 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 869d980a5e5b1552c52651b0ccbee85bfad8bfed) diff --git a/sfx2/uiconfig/ui/saveastemplatedlg.ui b/sfx2/uiconfig/ui/saveastemplatedlg.ui index d8ff31c..f56fae1 100644 --- a/sfx2/uiconfig/ui/saveastemplatedlg.ui +++ b/sfx2/uiconfig/ui/saveastemplatedlg.ui @@ -101,6 +101,8 @@ <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Enter Template Name</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">name_entry</property> <attributes> <attribute name="weight" value="normal"/> </attributes> @@ -141,6 +143,8 @@ <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">Select Template Category</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">categorylb:border</property> <attributes> <attribute name="weight" value="normal"/> </attributes> commit 38950d4e2b47c86ec04c6cc5824ece259e46d700 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Sep 2 21:38:35 2016 +0100 Resolves: tdf#101795 restore hiding on end of Gtk fpicker execute but don't hide it at the end of every RunDialog::run so that the dialog still exists and is visible if the "sure you want to overwrite" dialog needs to be displayed and restore the cui options stuff to its original state as well, undoing the earlier efforts of... commit c1bd3156cf66318023f36d81ce809a38072588e4 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 21:44:06 2016 +0100 Resolves: tdf#101054 crash on options->path with non-native file picker and commit 3bbc0574d78d129359638b74612de2f93419eeb0 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Jul 5 10:16:51 2016 +0100 Resolves: rhbz#1352835 path options doesn't promptly destroy folder picker Change-Id: I5d6bcee9fb0a73a95cc29e8f3f2ee2aea91a135a (cherry picked from commit 696e83b663d4f3e00f23947613f9f3916a4dd14d) Reviewed-on: https://gerrit.libreoffice.org/28642 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonas...@gmail.com> (cherry picked from commit 21188796975be8187e234de446aae4371c3b360a) diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 6aa3466..b51694f 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -633,12 +633,11 @@ IMPL_LINK_NOARG_TYPED(SvxPathTabPage, PathHdl_Impl, Button*, void) else { short nRet = xFolderPicker->execute(); - if (nRet == ExecutableDialogResults::OK) - { - OUString sFolder(xFolderPicker->getDirectory()); - ChangeCurrentEntry(sFolder); - } - xFolderPicker.clear(); + if (ExecutableDialogResults::OK != nRet) + return; + + OUString sFolder(xFolderPicker->getDirectory()); + ChangeCurrentEntry(sFolder); } } catch( Exception& ) @@ -724,9 +723,9 @@ IMPL_LINK_TYPED( SvxPathTabPage, HeaderEndDrag_Impl, HeaderBar*, pBar, void ) IMPL_LINK_TYPED( SvxPathTabPage, DialogClosedHdl, DialogClosedEvent*, pEvt, void ) { - assert(xFolderPicker.is() && "SvxPathTabPage::DialogClosedHdl(): no folder picker"); if (RET_OK == pEvt->DialogResult) { + assert(xFolderPicker.is() && "SvxPathTabPage::DialogClosedHdl(): no folder picker"); OUString sURL = xFolderPicker->getDirectory(); ChangeCurrentEntry( sURL ); } diff --git a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx index 4a9453b..8b97bdd 100644 --- a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx @@ -1050,6 +1050,7 @@ sal_Int16 SAL_CALL SalGtkFilePicker::execute() throw( uno::RuntimeException, std break; } } + gtk_widget_hide(m_pDialog); if (mnHID_FolderChange) g_signal_handler_disconnect(GTK_FILE_CHOOSER( m_pDialog ), mnHID_FolderChange); diff --git a/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx b/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx index 88523da..1f2e46b 100644 --- a/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkFolderPicker.cxx @@ -162,6 +162,7 @@ sal_Int16 SAL_CALL SalGtkFolderPicker::execute() throw( uno::RuntimeException, s retVal = 0; break; } + gtk_widget_hide(m_pDialog); return retVal; } diff --git a/vcl/unx/gtk/fpicker/SalGtkPicker.cxx b/vcl/unx/gtk/fpicker/SalGtkPicker.cxx index 968051d..d7f72b2 100644 --- a/vcl/unx/gtk/fpicker/SalGtkPicker.cxx +++ b/vcl/unx/gtk/fpicker/SalGtkPicker.cxx @@ -182,11 +182,6 @@ gint RunDialog::run() if (mxToolkit.is()) mxToolkit->removeTopWindowListener(this); -#if !GTK_CHECK_VERSION(3,0,0) - if (nStatus != 1) //PLAY - gtk_widget_hide( mpDialog ); -#endif - return nStatus; } commit bf86fed32742b5181d8005e9468814da9ca6c699 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Thu Sep 1 00:27:29 2016 +0300 Gallery submenu was missing from native menus ... for both OS X and gtk3. The reason is that it was filled in item highlight handler, which isn't implemented for native menus. Instead use the menu activation handler, like for the similar button in SvxLineTabPage. To test this patch open Writer, Format > Bullets and Numbering... > Options. Switch "Number" to "Graphics", and click on the "Select" button. (cherry picked from commit c780c6726dca5e2fe33297e44f25ae3e00703294) Change-Id: I437fd6536dbd9e6ba51282eaacc8b43c3a2d6cbf Reviewed-on: https://gerrit.libreoffice.org/28670 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit c356e54e2b2ef67043945d5e5762d3a9015ca41f) diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx index c5243bf..61901fc 100644 --- a/cui/source/inc/numpages.hxx +++ b/cui/source/inc/numpages.hxx @@ -318,7 +318,7 @@ class SvxNumOptionsTabPage : public SfxTabPage DECL_LINK_TYPED( NumberTypeSelectHdl_Impl, ListBox&, void ); DECL_LINK_TYPED( LevelHdl_Impl, ListBox&, void ); - DECL_LINK_TYPED( PopupActivateHdl_Impl, Menu *, bool); + DECL_LINK_TYPED( PopupActivateHdl_Impl, MenuButton *, void ); DECL_LINK_TYPED( GraphicHdl_Impl, MenuButton *, void ); DECL_LINK_TYPED( BulletHdl_Impl, Button*, void); DECL_LINK_TYPED( SizeHdl_Impl, Edit&, void ); diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx index 22d23e0..ff8d562 100644 --- a/cui/source/tabpages/numpages.cxx +++ b/cui/source/tabpages/numpages.cxx @@ -1217,6 +1217,7 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(vcl::Window* pParent, m_pBulletPB->SetClickHdl(LINK(this, SvxNumOptionsTabPage, BulletHdl_Impl)); m_pFmtLB->SetSelectHdl(LINK(this, SvxNumOptionsTabPage, NumberTypeSelectHdl_Impl)); m_pBitmapMB->SetSelectHdl(LINK(this, SvxNumOptionsTabPage, GraphicHdl_Impl)); + m_pBitmapMB->SetActivateHdl(LINK(this, SvxNumOptionsTabPage, PopupActivateHdl_Impl)); m_pLevelLB->EnableMultiSelection(true); m_pLevelLB->SetSelectHdl(LINK(this, SvxNumOptionsTabPage, LevelHdl_Impl)); m_pCharFmtLB->SetSelectHdl(LINK(this, SvxNumOptionsTabPage, CharFmtHdl_Impl)); @@ -1235,8 +1236,6 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(vcl::Window* pParent, aInvalidateTimer.SetTimeout(50); Menu *pBitmapMenu = m_pBitmapMB->GetPopupMenu(); - - pBitmapMenu->SetHighlightHdl(LINK(this, SvxNumOptionsTabPage, PopupActivateHdl_Impl)); m_nGalleryId = pBitmapMenu->GetItemId("gallery"); assert(m_nGalleryId != MENU_ITEM_NOTFOUND); PopupMenu* pPopup = new PopupMenu; @@ -2116,7 +2115,7 @@ IMPL_LINK_TYPED( SvxNumOptionsTabPage, GraphicHdl_Impl, MenuButton *, pButton, v } } -IMPL_LINK_NOARG_TYPED(SvxNumOptionsTabPage, PopupActivateHdl_Impl, Menu *, bool) +IMPL_LINK_NOARG_TYPED(SvxNumOptionsTabPage, PopupActivateHdl_Impl, MenuButton *, void) { if(!bMenuButtonInitialized) { @@ -2168,7 +2167,6 @@ IMPL_LINK_NOARG_TYPED(SvxNumOptionsTabPage, PopupActivateHdl_Impl, Menu *, bool) } LeaveWait(); } - return false; } IMPL_LINK_NOARG_TYPED(SvxNumOptionsTabPage, BulletHdl_Impl, Button*, void) commit f9a15b196ca143e5be1fe54ddcf1879657d211d3 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Sep 2 21:12:43 2016 +0100 fftester: apparent wrong property tested for existence Change-Id: I5d208bb2a85d7aa4eea9b1c950eeb6f35493f759 (cherry picked from commit a42f4aaba352a4d33ce77898e7b7b7bc0c10f1f8) Reviewed-on: https://gerrit.libreoffice.org/28630 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 96e76028ef33e6617d702f07a0ad4a485db50f11) diff --git a/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf b/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf new file mode 100644 index 0000000..130ff3f Binary files /dev/null and b/writerfilter/qa/cppunittests/rtftok/data/fail/propheight-1.rtf differ diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 5bc56b8..ac192e6 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1247,7 +1247,7 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) if( pEntry.get( ) ) { boost::optional<PropertyMap::Property> pPropHeight = pEntry->pProperties->getProperty(PROP_CHAR_HEIGHT_ASIAN); - if(pProp) + if (pPropHeight) { double fHeight = 0; if( pPropHeight->second >>= fHeight ) commit e82fa8b41be29be0a6ca884d982f3df04a274340 Author: Tor Lillqvist <t...@collabora.com> Date: Fri Sep 2 20:44:27 2016 +0300 tdf#101866: Get rid of two more erroneous upper-casings of strings Follow-up to f948dce856d51704e1962553198015dbebb6e527. Change-Id: I46c5a96a076fa6eec952e31201bb3563464cf602 Reviewed-on: https://gerrit.libreoffice.org/28626 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Tor Lillqvist <t...@collabora.com> (cherry picked from commit 326da3886e6f700ad1fb269df201fae9fa01d5df) Reviewed-on: https://gerrit.libreoffice.org/28627 Tested-by: Jenkins <c...@libreoffice.org> Tested-by: Eike Rathke <er...@redhat.com> (cherry picked from commit 36ee7be1e3e34b8eb07de1fc5e7f9f3681e58173) diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 5ef6603..1f3aea8 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -2388,7 +2388,7 @@ bool appendToBlock( if (aRes.meType == sc::FormulaResultValue::String) { rCxt.ensureStrArray(rColArray, nArrayLen); - (*rColArray.mpStrArray)[nPos] = aRes.maString.getDataIgnoreCase(); + (*rColArray.mpStrArray)[nPos] = aRes.maString.getData(); } else { @@ -2526,7 +2526,7 @@ copyFirstFormulaBlock( pStrArray = rCxt.m_StrArrays.back().get(); } - (*pStrArray)[nPos] = aRes.maString.getDataIgnoreCase(); + (*pStrArray)[nPos] = aRes.maString.getData(); } } commit 0e28e0a00425c09d62f0a3e72882dbc52f1d625d Author: Caolán McNamara <caol...@redhat.com> Date: Fri Sep 2 15:12:12 2016 +0100 Resolves: tdf#101681 set hyperlink tooltip for the full hyperlink area not just a single point in it. This way gtk3 knows the successive tooltip hints for the positions along the hyperlink are for the same tooltip (cherry picked from commit 84e8e11dc3c73bcfe63f5e9c6cc49ee18a511a9b) Change-Id: I46a8c960e528f6a9aaab5bea145c6870f22e46c5 Reviewed-on: https://gerrit.libreoffice.org/28622 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 456b1dd03f210dc725ce134bdf9344f8e6df17aa) diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx index 7dd29d4..1fb7c833 100644 --- a/sw/source/core/crsr/crstrvl.cxx +++ b/sw/source/core/crsr/crstrvl.cxx @@ -1429,16 +1429,25 @@ bool SwCursorShell::GetContentAtPos( const Point& rPt, } if( bRet ) { - rContentAtPos.sStr = pTextNd->GetExpandText( - pTextAttr->GetStart(), - *pTextAttr->GetEnd() - pTextAttr->GetStart() ); + const sal_Int32 nSt = pTextAttr->GetStart(); + const sal_Int32 nEnd = *pTextAttr->End(); + + rContentAtPos.sStr = pTextNd->GetExpandText(nSt, nEnd-nSt); rContentAtPos.aFnd.pAttr = &pTextAttr->GetAttr(); rContentAtPos.eContentAtPos = SwContentAtPos::SW_INETATTR; rContentAtPos.pFndTextAttr = pTextAttr; if( pFieldRect && nullptr != ( pFrame = pTextNd->getLayoutFrame( GetLayout(), &aPt ) ) ) - pFrame->GetCharRect( *pFieldRect, aPos, &aTmpState ); + { + SwRect aStart; + SwPosition aStartPos(*pTextNd, nSt); + pFrame->GetCharRect(aStart, aStartPos, &aTmpState); + SwRect aEnd; + SwPosition aEndPos(*pTextNd, nEnd); + pFrame->GetCharRect(aEnd, aEndPos, &aTmpState); + *pFieldRect = aStart.Union(aEnd); + } } } } commit 338cc1ad5b8fb51f118246038804a2eaa9534cf7 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Aug 31 10:58:49 2016 +0100 Resolves: tdf#98100 no valueset tooltips with extended tips... and no offline help available. I feel this was the original (day-0-checkin) intent of the code, otherwise why bother with the "| HelpEventMode::BALLOON" as that makes no difference to the existing logic. And this per-item help is what other similiar widgets do. Change-Id: Idda130450db322acefd9ecc13986067790f9a614 (cherry picked from commit 281027ea88d4d683449d4ce2cdb0563223741465) Reviewed-on: https://gerrit.libreoffice.org/28542 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 934c79c22ee63c25538e25b18d780377cc09f3af) diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx index e3bdbeb..d411eea 100644 --- a/svtools/source/control/valueset.cxx +++ b/svtools/source/control/valueset.cxx @@ -1494,7 +1494,7 @@ void ValueSet::Resize() void ValueSet::RequestHelp( const HelpEvent& rHelpEvent ) { - if ( (rHelpEvent.GetMode() & (HelpEventMode::QUICK | HelpEventMode::BALLOON)) == HelpEventMode::QUICK ) + if (rHelpEvent.GetMode() & (HelpEventMode::QUICK | HelpEventMode::BALLOON)) { Point aPos = ScreenToOutputPixel( rHelpEvent.GetMousePosPixel() ); size_t nItemPos = ImplGetItem( aPos ); commit 75544ab41dd65b5e5e88dcc0cdfc74f6baf2f11e Author: Caolán McNamara <caol...@redhat.com> Date: Tue Aug 30 17:52:41 2016 +0100 Resolves: tdf#97055 hyphenation claims its already active after closing cancel button works, hyphen all works, but closing it via wm close skips the cancel callback. simplest thing seems to be to call SpellEnd when necessary, flagging that its not necessary by disabling the close button on the RET_OK case Change-Id: Ib0a67c4395e9d20941e735ebb14f6bd7f7ddb66c (cherry picked from commit c7fd6532682a12d8981e6b19b4fbb75d6d3c412c) Reviewed-on: https://gerrit.libreoffice.org/28503 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit b9375c082822e4a1030c9dfca8cb0c959b78633d) diff --git a/cui/source/dialogs/hyphen.cxx b/cui/source/dialogs/hyphen.cxx index 06ed08c..4798a13 100644 --- a/cui/source/dialogs/hyphen.cxx +++ b/cui/source/dialogs/hyphen.cxx @@ -268,7 +268,10 @@ void SvxHyphenWordDialog::ContinueHyph_Impl( sal_Int32 nInsPos ) } } else - EndDialog( RET_OK ); + { + m_pCloseBtn->Disable(); + EndDialog(RET_OK); + } } @@ -399,7 +402,6 @@ IMPL_LINK_NOARG_TYPED(SvxHyphenWordDialog, CancelHdl_Impl, Button*, void) if( !m_bBusy ) { m_bBusy = true; - m_pHyphWrapper->SpellEnd(); EndDialog(); m_bBusy = false; } @@ -501,6 +503,8 @@ SvxHyphenWordDialog::~SvxHyphenWordDialog() void SvxHyphenWordDialog::dispose() { + if (m_pCloseBtn->IsEnabled()) + m_pHyphWrapper->SpellEnd(); m_pWordEdit.clear(); m_pLeftBtn.clear(); m_pRightBtn.clear(); @@ -512,7 +516,6 @@ void SvxHyphenWordDialog::dispose() SfxModalDialog::dispose(); } - void SvxHyphenWordDialog::SetWindowTitle( LanguageType nLang ) { SetText( m_aLabel + " (" + SvtLanguageTable::GetLanguageString( nLang ) + ")" ); commit 722ab93773879faf8b810ac610466bb0b57ced46 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Aug 30 12:38:27 2016 +0100 Resolves: tdf#96369 don't superscript ordinals for mixed text and numbers e.g. 5th is ok, but foo5th is not this is basically a regression from commit 17e6b8fd05af8fff86847c0ef1e8cc9ad013a1bd Date: Thu Apr 7 13:33:48 2011 +0200 where the older code would only do the conversion if the string before the number was comprised of non-letters, so go back to that logic. Change-Id: I928c365eb11891e78331bbd165dbdb9541ac0361 (cherry picked from commit 776e2e2635487523cd1757f382f54487b36b5ad3) Reviewed-on: https://gerrit.libreoffice.org/28495 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 4edd7ed8bc2c75a23babe9893fdbe58dd7bcf562) diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index 5545432..0bfd925 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -461,13 +461,12 @@ bool SvxAutoCorrect::FnChgOrdinalNumber( bool bFoundEnd = false; bool isValidNumber = true; sal_Int32 i = nEndPos; - while (i > nSttPos) { i--; bool isDigit = rCC.isDigit(rTxt, i); if (bFoundEnd) - isValidNumber |= isDigit; + isValidNumber &= (isDigit || !rCC.isLetter(rTxt, i)); if (isDigit && !bFoundEnd) { commit 542d484adab2fdeef0a746b22a955c1e975c1164 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Sep 1 13:50:06 2016 +0200 pTemplate can probably be null here Observed with "make clean && make CppunitTest_sw_filters_test" (which misses a dependency, a bug to be fixed next, so happens to not set up m_pTemplate in ... etc. - the rest is truncated
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits