RepositoryExternal.mk | 1 bin/lo-xlate-lang | 2 connectivity/source/drivers/firebird/PreparedStatement.cxx | 4 connectivity/source/drivers/postgresql/pq_preparedstatement.cxx | 4 connectivity/source/drivers/postgresql/pq_statement.cxx | 9 cui/source/customize/SvxMenuConfigPage.cxx | 6 cui/source/customize/SvxToolbarConfigPage.cxx | 17 cui/source/customize/cfg.cxx | 12 cui/source/options/optjava.cxx | 4 desktop/source/deployment/gui/dp_gui_theextmgr.cxx | 1 dictionaries | 2 external/libnumbertext/ExternalProject_libnumbertext.mk | 2 filter/source/xsltdialog/xmlfilterdialogcomponent.cxx | 26 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx | 4 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx | 2 include/oox/drawingml/shape.hxx | 14 instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt | 1 instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt | 2 instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt | 1 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 5 officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 oox/source/drawingml/diagram/diagramlayoutatoms.cxx | 176 oox/source/drawingml/diagram/diagramlayoutatoms.hxx | 9 oox/source/drawingml/diagram/layoutatomvisitors.cxx | 48 oox/source/drawingml/diagram/layoutatomvisitors.hxx | 2 oox/source/drawingml/diagram/layoutnodecontext.cxx | 2 oox/source/drawingml/shape.cxx | 2 readlicense_oo/license/CREDITS.fodt | 2940 +++++----- sc/inc/dpglobal.hxx | 2 sc/source/core/data/dpgroup.cxx | 6 sc/source/filter/xml/XMLExportDataPilot.cxx | 1 sc/source/filter/xml/xmlexprt.cxx | 2 sc/source/ui/condformat/condformatdlg.cxx | 6 sc/uiconfig/scalc/ui/textimportcsv.ui | 6 scp2/source/ooo/ucrt.scp | 4 sd/qa/unit/data/pptx/smartart-accent-process.pptx |binary sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx |binary sd/qa/unit/import-tests-smartart.cxx | 126 sd/uiconfig/simpress/menubar/menubar.xml | 1 sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx | 6 sfx2/source/dialog/dinfdlg.cxx | 17 svl/source/items/itempool.cxx | 11 svtools/source/dialogs/restartdialog.cxx | 5 svtools/uiconfig/ui/inputbox.ui | 4 sw/qa/extras/odfexport/data/referencelanguage.odt |binary sw/qa/extras/odfexport/odfexport.cxx | 2 sw/source/core/edit/edfcol.cxx | 6 sw/source/core/fields/reffld.cxx | 2 sw/source/uibase/app/apphdl.cxx | 17 sw/source/uibase/uno/unotxdoc.cxx | 5 translations | 2 vcl/osx/a11ywrapper.mm | 2 vcl/unx/gtk/gtksalframe.cxx | 7 vcl/unx/gtk/gtksalmenu.cxx | 14 vcl/unx/gtk3/gtk3gtkframe.cxx | 7 xmloff/source/draw/shapeexport.cxx | 5 xmloff/source/forms/elementexport.cxx | 2 xmloff/source/forms/propertyexport.cxx | 4 xmloff/source/forms/propertyexport.hxx | 3 59 files changed, 2033 insertions(+), 1542 deletions(-)
New commits: commit a91f0e9d95eb0391529c244b3d8469e3cacf9967 Merge: e9adb0201c52 808cc4d5fd87 Author: Michael Weghorn <[email protected]> AuthorDate: Thu Jan 3 08:51:53 2019 +0100 Commit: Michael Weghorn <[email protected]> CommitDate: Thu Jan 3 08:51:53 2019 +0100 Merge branch 'libreoffice-6-1' into distro/lhm/libreoffice-6-1+backports Change-Id: I6727793a020df6b26df7bde4202e9eab43625a1b commit 808cc4d5fd87e6e6719a4a16f815e5897608bd2d Author: Muhammet Kara <[email protected]> AuthorDate: Wed Jan 2 01:24:20 2019 +0300 Commit: Muhammet Kara <[email protected]> CommitDate: Wed Jan 2 07:36:29 2019 +0100 Resolves tdf#122383 and tdf#122410 Add some null pointer checks Change-Id: I905c6dd46a5019e66d9c2e59374cc7d1ce83397b Reviewed-on: https://gerrit.libreoffice.org/65789 Tested-by: Jenkins Reviewed-by: Muhammet Kara <[email protected]> (cherry picked from commit be8897d9c63a77b223a9c0aed1d2eb689e0e0082) Reviewed-on: https://gerrit.libreoffice.org/65799 diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx index 9b69c64a1374..a890fef033ab 100644 --- a/cui/source/customize/SvxMenuConfigPage.cxx +++ b/cui/source/customize/SvxMenuConfigPage.cxx @@ -500,6 +500,12 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, ResetMenuHdl, Button *, void ) { SvxConfigEntry* pMenuData = GetTopLevelSelection(); + if (pMenuData == nullptr) + { + SAL_WARN("cui.customize", "RHB top level selection is null. A menu must be selected to reset!"); + return; + } + std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo, CuiResId(RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU))); diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx index bdca809fd326..f3727b4c3234 100644 --- a/cui/source/customize/SvxToolbarConfigPage.cxx +++ b/cui/source/customize/SvxToolbarConfigPage.cxx @@ -515,9 +515,14 @@ IMPL_LINK( SvxToolbarConfigPage, ModifyItemHdl, MenuButton *, pButton, void ) // get currently selected toolbar SvxConfigEntry* pToolbar = GetTopLevelSelection(); - OString sIdent = pButton->GetCurItemIdent(); + if (sIdent.isEmpty() || pToolbar == nullptr) + { + SAL_WARN("cui.customize", "No toolbar selected, or empty sIdent!"); + return; + } + if (sIdent == "renameItem") { SvTreeListEntry* pActEntry = m_pContentsListBox->GetCurEntry(); @@ -856,10 +861,18 @@ IMPL_LINK_NOARG( SvxToolbarConfigPage, SelectToolbar, ListBox&, void ) void SvxToolbarConfigPage::AddFunction( SvTreeListEntry* pTarget, bool bFront ) { + SvxConfigEntry* pToolbar = GetTopLevelSelection(); + + if (pToolbar == nullptr) + return; + // Add the command to the contents listbox of the selected toolbar SvTreeListEntry* pNewLBEntry = SvxConfigPage::AddFunction( pTarget, bFront, true/*bAllowDuplicates*/ ); + if (pNewLBEntry == nullptr) + return; + SvxConfigEntry* pEntry = static_cast<SvxConfigEntry*>(pNewLBEntry->GetUserData()); if ( pEntry->IsBinding() ) @@ -878,8 +891,6 @@ void SvxToolbarConfigPage::AddFunction( // TODO: Figure out a way to show the changes on the toolbar, but revert if // the dialog is closed by pressing "Cancel" // get currently selected toolbar and apply change - SvxConfigEntry* pToolbar = GetTopLevelSelection(); - if ( pToolbar != nullptr ) { static_cast<ToolbarSaveInData*>( GetSaveInData() )->ApplyToolbar( pToolbar ); diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx index 8d64d3ce2e3c..df347cc811e2 100644 --- a/cui/source/customize/cfg.cxx +++ b/cui/source/customize/cfg.cxx @@ -1600,8 +1600,9 @@ SvTreeListEntry* SvxConfigPage::AddFunction( SvTreeListEntry* pTarget, bool bFront, bool bAllowDuplicates ) { OUString aURL = GetScriptURL(); + SvxConfigEntry* pParent = GetTopLevelSelection(); - if ( aURL.isEmpty() ) + if ( aURL.isEmpty() || pParent == nullptr ) { return nullptr; } @@ -1624,8 +1625,6 @@ SvTreeListEntry* SvxConfigPage::AddFunction( pNewEntryData->SetName( GetSelectedDisplayName() ); // check that this function is not already in the menu - SvxConfigEntry* pParent = GetTopLevelSelection(); - if ( !bAllowDuplicates ) { for (auto const& entry : *pParent->GetEntries()) @@ -1649,8 +1648,13 @@ SvTreeListEntry* SvxConfigPage::InsertEntry( SvTreeListEntry* pTarget, bool bFront ) { + SvxConfigEntry* pTopLevelSelection = GetTopLevelSelection(); + + if (pTopLevelSelection == nullptr) + return nullptr; + // Grab the entries list for the currently selected menu - SvxEntries* pEntries = GetTopLevelSelection()->GetEntries(); + SvxEntries* pEntries = pTopLevelSelection->GetEntries(); SvTreeListEntry* pNewEntry = nullptr; SvTreeListEntry* pCurEntry = commit 800fe6c8a07e5977a1002a9765f618735e596d59 Author: Denis Arnaud <[email protected]> AuthorDate: Tue Jan 1 23:25:12 2019 +0100 Commit: Gerrit Code Review <[email protected]> CommitDate: Tue Jan 1 23:27:40 2019 +0100 Update git submodules * Update dictionaries from branch 'libreoffice-6-1' - Updated Breton spelling dictionary to version 0.16 Change-Id: Id63e2340c97f7071480ab73ebd46611ba9a8929c Reviewed-on: https://gerrit.libreoffice.org/65791 Reviewed-by: Andras Timar <[email protected]> Tested-by: Andras Timar <[email protected]> diff --git a/dictionaries b/dictionaries index aa3f26cd95e3..1935c6122ccb 160000 --- a/dictionaries +++ b/dictionaries @@ -1 +1 @@ -Subproject commit aa3f26cd95e3acd29c4a9ca68052004ab35c6f88 +Subproject commit 1935c6122ccbcad2ccd0a0f6a8f54604f5dbde13 commit 01e263bad891abea9bc671a29c95ea8a8b5fb842 Author: Caolán McNamara <[email protected]> AuthorDate: Tue Dec 4 15:27:54 2018 +0000 Commit: Markus Mohrhard <[email protected]> CommitDate: Tue Jan 1 22:52:27 2019 +0100 Resolves: tdf#121641 properties invisible after 'reset' Change-Id: Iedb2b11be0e008501273925d6ae7137b28c3b912 Reviewed-on: https://gerrit.libreoffice.org/64539 Tested-by: Jenkins Tested-by: Xisco Faulí <[email protected]> Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index 2e560e73520b..6cb3600a491a 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -1511,7 +1511,14 @@ void CustomPropertiesWindow::dispose() { m_aEditLoseFocusIdle.Stop(); m_aBoxLoseFocusIdle.Stop(); - ClearAllLines(); + + for (CustomPropertyLine* pLine : m_aCustomPropertiesLines) + { + delete pLine; + } + m_pCurrentLine = nullptr; + m_aCustomPropertiesLines.clear(); + m_pHeaderBar.clear(); m_pScrollBar.clear(); m_pHeaderAccName.clear(); @@ -1746,16 +1753,12 @@ bool CustomPropertiesWindow::AreAllLinesValid() const void CustomPropertiesWindow::ClearAllLines() { - std::vector< CustomPropertyLine* >::iterator pIter; - for ( pIter = m_aCustomPropertiesLines.begin(); - pIter != m_aCustomPropertiesLines.end(); ++pIter ) + for (CustomPropertyLine* pLine : m_aCustomPropertiesLines) { - CustomPropertyLine* pLine = *pIter; - delete pLine; + pLine->Clear(); } m_pCurrentLine = nullptr; m_aCustomProperties.clear(); - m_aCustomPropertiesLines.clear(); m_nScrollPos = 0; } commit 78c52b1ab97397f99af279df78df798efde91136 Author: Caolán McNamara <[email protected]> AuthorDate: Tue Dec 4 13:01:14 2018 +0000 Commit: Markus Mohrhard <[email protected]> CommitDate: Tue Jan 1 22:51:15 2019 +0100 tdf#121855 like osx case don't search near-infinite calc grid for focus Change-Id: Ie6bccd2781fbbdc5f4d5dc2eb6903191aafe8265 Reviewed-on: https://gerrit.libreoffice.org/64521 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm index 67e155e81e53..b35a1d22745d 100644 --- a/vcl/osx/a11ywrapper.mm +++ b/vcl/osx/a11ywrapper.mm @@ -992,7 +992,7 @@ Reference < XAccessibleContext > hitTestRunner ( css::awt::Point point, bool bSafeToIterate = true; sal_Int32 nCount = rxAccessibleContext -> getAccessibleChildCount(); - if ( nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */ ) + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) bSafeToIterate = false; else { // manages descendants is an horror from the a11y standards guys. Reference< XAccessibleStateSet > xStateSet; diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx index 16e716b16daa..56cb33520443 100644 --- a/vcl/unx/gtk/gtksalframe.cxx +++ b/vcl/unx/gtk/gtksalframe.cxx @@ -3666,6 +3666,13 @@ uno::Reference<accessibility::XAccessibleEditableText> } } + bool bSafeToIterate = true; + sal_Int32 nCount = xContext->getAccessibleChildCount(); + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) + bSafeToIterate = false; + if (!bSafeToIterate) + return uno::Reference< accessibility::XAccessibleEditableText >(); + for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) { uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 71ab50efc813..95e616473608 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -4213,6 +4213,13 @@ uno::Reference<accessibility::XAccessibleEditableText> } } + bool bSafeToIterate = true; + sal_Int32 nCount = xContext->getAccessibleChildCount(); + if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) + bSafeToIterate = false; + if (!bSafeToIterate) + return uno::Reference< accessibility::XAccessibleEditableText >(); + for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) { uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); commit cb32be59baca89dc0d21a5f16c8ecd46b143c436 Author: Julien Nabet <[email protected]> AuthorDate: Sun Dec 16 14:21:37 2018 +0100 Commit: Markus Mohrhard <[email protected]> CommitDate: Mon Dec 31 21:49:30 2018 +0100 tdf#122136: select first element if there's at least one See bt from https://bugs.documentfoundation.org/attachment.cgi?id=147594 Change-Id: Ibf031b8024aa4952e2d3263a445cafdb3c031390 Reviewed-on: https://gerrit.libreoffice.org/65222 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx index 3f8c0cb794da..fb401745c52e 100644 --- a/cui/source/options/optjava.cxx +++ b/cui/source/options/optjava.cxx @@ -1012,9 +1012,9 @@ void SvxJavaClassPathDlg::SetClassPath( const OUString& _rPath ) m_xPathList->append("", sPath, SvFileInformationManager::GetImageId(aURL)); } while (nIdx>=0); + // select first entry + m_xPathList->select(0); } - // select first entry - m_xPathList->select(0); SelectHdl_Impl(*m_xPathList); } commit 26ad33a6f1e894d7352fb3d175c8d15dd28673b2 Author: Julien Nabet <[email protected]> AuthorDate: Wed Dec 26 18:13:58 2018 +0100 Commit: Markus Mohrhard <[email protected]> CommitDate: Mon Dec 31 21:48:28 2018 +0100 tdf#122335: sub-view-size can only be used with ODF ver > 1.2 Change-Id: I7dd767fddd11319017a215c240684dcc17238c4e Reviewed-on: https://gerrit.libreoffice.org/65627 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index 733df9b1ba98..e81b99b52978 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -4599,6 +4599,11 @@ void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< bean { case EAS_SubViewSize: { + // export draw:sub-view-size (do not export in ODF 1.2 or older) + if (rExport.getDefaultVersion() <= SvtSaveOptions::ODFVER_012) + { + continue; + } uno::Sequence< awt::Size > aSubViewSizes; rProp.Value >>= aSubViewSizes; commit 9377e77b8b49a4b0bf045566bbe802b511ca1fd8 Author: Julien Nabet <[email protected]> AuthorDate: Sun Dec 30 00:20:33 2018 +0100 Commit: Markus Mohrhard <[email protected]> CommitDate: Mon Dec 31 21:45:10 2018 +0100 tdf#114919: fix ods export in ODF 1.2 strict See Valgrind trace here: https://bugs.documentfoundation.org/attachment.cgi?id=147891 which contains bt Due to a8b7c72425aabae87bfd2e141aa06f06319ae11c " add error to office:value-type for calc cells and fdo#51810 For cached value import we need the information which cells are error cells. For ODF 1.2 extended we therefore export now calcext:office-value with the additional value "error". " Change-Id: I13547ecc7ef8c1c4e1a236229d3b19d51f12470b Reviewed-on: https://gerrit.libreoffice.org/65728 Tested-by: Jenkins Reviewed-by: Julien Nabet <[email protected]> (cherry picked from commit 5534bfef6426128af2147de995224d7cdf43a2bf) Reviewed-on: https://gerrit.libreoffice.org/65738 Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index c7131e4e5b08..8cd6ebc11085 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3245,7 +3245,7 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount) { GetNumberFormatAttributesExportHelper()->SetNumberFormatAttributes( aCell.nNumberFormat, pDoc->GetValue(aCell.maCellAddress)); - if( getDefaultVersion() >= SvtSaveOptions::ODFVER_012 ) + if( getDefaultVersion() > SvtSaveOptions::ODFVER_012 ) { GetNumberFormatAttributesExportHelper()->SetNumberFormatAttributes( aCell.nNumberFormat, pDoc->GetValue(aCell.maCellAddress), false, XML_NAMESPACE_CALC_EXT, false ); commit c64564c6b520f4dbadb689e958dafa1591b3711d Author: Julien Nabet <[email protected]> AuthorDate: Sun Dec 30 12:51:25 2018 +0100 Commit: Markus Mohrhard <[email protected]> CommitDate: Mon Dec 31 21:43:59 2018 +0100 tdf#112484: repeat-item-labels is invalid in odf1.2 strict Change-Id: I23d204ef3d4e466876bb3416d616dc1f3682ad4c Reviewed-on: https://gerrit.libreoffice.org/65740 Tested-by: Jenkins (cherry picked from commit 40a7e9c93855ac6cceb4c4189587998e21581de5) Reviewed-on: https://gerrit.libreoffice.org/65749 Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx index 436cf515ed1e..df52e39f8648 100644 --- a/sc/source/filter/xml/XMLExportDataPilot.cxx +++ b/sc/source/filter/xml/XMLExportDataPilot.cxx @@ -492,6 +492,7 @@ void ScXMLExportDataPilot::WriteLevels(const ScDPSaveDimension* pDim) ::sax::Converter::convertBool(sBuffer, pDim->GetShowEmpty()); rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_EMPTY, sBuffer.makeStringAndClear()); } + if (rExport.getDefaultVersion() > SvtSaveOptions::ODFVER_012) { OUStringBuffer sBuffer; ::sax::Converter::convertBool(sBuffer, pDim->GetRepeatItemLabels()); commit c6e82304a5c75a96b08e494c825f005b91ed3104 Author: Rene Engelhard <[email protected]> AuthorDate: Sun Dec 30 13:57:06 2018 +0100 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Mon Dec 31 03:43:32 2018 +0100 deb#917795 Belarussian → Belarusian Change-Id: I2b0be9bf13cb3feedecbe22c5c844d9328013b3a Reviewed-on: https://gerrit.libreoffice.org/65745 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/bin/lo-xlate-lang b/bin/lo-xlate-lang index 1580d642027a..fcfd90cbb6e6 100755 --- a/bin/lo-xlate-lang +++ b/bin/lo-xlate-lang @@ -111,7 +111,7 @@ print $LanguageMap->{$LanguageCode}, "\n"; # keep third column names here with openoffice-dir/share/*/<long lang name>/ __DATA__ -:be:belarussian +:be:belarusian :bg:bulgarian :bn:bengali :bs:bosnian commit 95182333220f96cc511dc023c3235562b210107e Author: Adolfo Jayme Barrientos <[email protected]> AuthorDate: Fri Nov 30 19:59:11 2018 -0600 Commit: Gerrit Code Review <[email protected]> CommitDate: Sat Dec 29 20:42:48 2018 +0100 Update git submodules * Update dictionaries from branch 'libreoffice-6-1' - tdf#99826 Update Galician dictionaries to version 18.07 Change-Id: If3a2f77855159c1a2a50880b0eb37a824c926f6c Reviewed-on: https://gerrit.libreoffice.org/64370 Reviewed-by: Aron Budea <[email protected]> Tested-by: Aron Budea <[email protected]> (cherry picked from commit fea4ea689cd27d4c0bd981fdc01225d3bfacfc2d) Reviewed-on: https://gerrit.libreoffice.org/65655 Reviewed-by: Andras Timar <[email protected]> Tested-by: Andras Timar <[email protected]> diff --git a/dictionaries b/dictionaries index fe5f4cf69ea4..aa3f26cd95e3 160000 --- a/dictionaries +++ b/dictionaries @@ -1 +1 @@ -Subproject commit fe5f4cf69ea41989db468588a69989d6ae444bd0 +Subproject commit aa3f26cd95e3acd29c4a9ca68052004ab35c6f88 commit a93713359265a9a1403c744e467eb5faa09cc747 Author: Caolán McNamara <[email protected]> AuthorDate: Sun Dec 23 20:05:14 2018 +0000 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Fri Dec 28 07:36:47 2018 +0100 tdf#122269 don't prompt to restart if we're exiting the application anyway Change-Id: I6272ae92b7e948680fb7241c387eb205adbbea01 Reviewed-on: https://gerrit.libreoffice.org/65596 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx index 94a8dd09df6c..f50687e11934 100644 --- a/desktop/source/deployment/gui/dp_gui_theextmgr.cxx +++ b/desktop/source/deployment/gui/dp_gui_theextmgr.cxx @@ -445,6 +445,7 @@ void TheExtensionManager::queryTermination( ::lang::EventObject const & ) } else { + clearModified(); if ( m_pExtMgrDialog ) m_pExtMgrDialog->Close(); if ( m_pUpdReqDialog ) commit f2d8aa40c811d78b71302285711bc2eccdbcd9ea Author: Caolán McNamara <[email protected]> AuthorDate: Fri Dec 21 13:00:33 2018 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Sun Dec 23 18:10:10 2018 +0100 tdf#120576 avoid crash during database migration 0xFFFF cast to short turned into -1 so wasn't seen as > 8000 Change-Id: I57592020c3c31751bec43f2619bf65d41ac47e87 Reviewed-on: https://gerrit.libreoffice.org/65540 Tested-by: Jenkins Reviewed-by: Julien Nabet <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx index fee4029088f4..be81eef324a3 100644 --- a/connectivity/source/drivers/firebird/PreparedStatement.cxx +++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx @@ -207,7 +207,7 @@ void SAL_CALL OPreparedStatement::setString(sal_Int32 nParameterIndex, { str = str.copy(0, max_varchar_len); } - const short nLength = str.getLength(); + const auto nLength = str.getLength(); memcpy(pVar->sqldata, &nLength, 2); // Actual data memcpy(pVar->sqldata + 2, str.getStr(), str.getLength()); @@ -841,7 +841,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 nParameterIndex, { xBytesCopy.realloc( nMaxSize ); } - const short nSize = xBytesCopy.getLength(); + const auto nSize = xBytesCopy.getLength(); // 8000 corresponds to value from lcl_addDefaultParameters // in dbaccess/source/filter/hsqldb/createparser.cxx if (nSize > 8000) commit 8d2c4a9611097b37f6d69654807693314c6fada0 Author: Mike Kaganski <[email protected]> AuthorDate: Wed Dec 12 11:11:20 2018 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Dec 21 15:04:03 2018 +0100 tdf#122038: don't create another RestartDialog if already restarting otherwise it crashes/aborts in Window::dispose() with this backtrace: ucrtbased.dll!issue_debug_notification(const wchar_t * const message) Line 28 at minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp(28) ucrtbased.dll!__acrt_report_runtime_error(const wchar_t * message) Line 154 at minkernel\crts\ucrt\src\appcrt\internal\report_runtime_error.cpp(154) ucrtbased.dll!abort() Line 61 at minkernel\crts\ucrt\src\appcrt\startup\abort.cpp(61) vcllo.dll!SalAbort(const rtl::OUString & rErrorText, bool bDumpCore) Line 309 at c:\lo\src\core\vcl\source\app\salplug.cxx(309) vcllo.dll!Application::Abort(const rtl::OUString & rErrorText) Line 270 at c:\lo\src\core\vcl\source\app\svapp.cxx(270) vcllo.dll!vcl::Window::dispose() Line 275 at c:\lo\src\core\vcl\source\window\window.cxx(275) vcllo.dll!SystemWindow::dispose() Line 114 at c:\lo\src\core\vcl\source\window\syswin.cxx(114) vcllo.dll!Dialog::dispose() Line 647 at c:\lo\src\core\vcl\source\window\dialog.cxx(647) vcllo.dll!VclReferenceBase::disposeOnce() Line 43 at c:\lo\src\core\vcl\source\outdev\vclreferencebase.cxx(43) tklo.dll!VclPtr<vcl::Window>::disposeAndClear() Line 206 at c:\lo\src\core\include\vcl\vclptr.hxx(206) tklo.dll!UnoWrapper::WindowDestroyed(vcl::Window * pWindow) Line 294 at c:\lo\src\core\toolkit\source\helper\unowrapper.cxx(294) vcllo.dll!vcl::Window::dispose() Line 233 at c:\lo\src\core\vcl\source\window\window.cxx(233) vcllo.dll!SystemWindow::dispose() Line 114 at c:\lo\src\core\vcl\source\window\syswin.cxx(114) vcllo.dll!WorkWindow::dispose() Line 129 at c:\lo\src\core\vcl\source\window\wrkwin.cxx(129) vcllo.dll!VclReferenceBase::disposeOnce() Line 43 at c:\lo\src\core\vcl\source\outdev\vclreferencebase.cxx(43) tklo.dll!VclPtr<OutputDevice>::disposeAndClear() Line 206 at c:\lo\src\core\include\vcl\vclptr.hxx(206) tklo.dll!VCLXWindow::dispose() Line 947 at c:\lo\src\core\toolkit\source\awt\vclxwindow.cxx(947) fwklo.dll!`anonymous namespace'::XFrameImpl::disposing() Line 2184 at c:\lo\src\core\framework\source\services\frame.cxx(2184) cppuhelper3MSC.dll!cppu::WeakComponentImplHelperBase::dispose() Line 105 at c:\lo\src\core\cppuhelper\source\implbase.cxx(105) fwklo.dll!cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo,com::sun::star::frame::XFrame2,com::sun::star::awt::XWindowListener,com::sun::star::awt::XTopWindowListener,com::sun::star::awt::XFocusListener,com::sun::star::document::XActionLockable,com::sun::star::util::XCloseable,com::sun::star::frame::XComponentLoader,com::sun::star::frame::XTitle,com::sun::star::frame::XTitleChangeBroadcaster,com::sun::star::beans::XPropertySet,com::sun::star::beans::XPropertySetInfo>::dispose() Line 90 at c:\lo\src\core\include\cppuhelper\compbase.hxx(90) fwklo.dll!`anonymous namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Line 1716 at c:\lo\src\core\framework\source\services\frame.cxx(1716) fwklo.dll!framework::Desktop::impl_closeFrames(bool bAllowUI) Line 1743 at c:\lo\src\core\framework\source\services\desktop.cxx(1743) fwklo.dll!framework::Desktop::terminate() Line 233 at c:\lo\src\core\framework\source\services\desktop.cxx(233) comphelper.dll!comphelper::OOfficeRestartManager::notify(const com::sun::star::uno::Any & __formal) Line 109 at c:\lo\src\core\comphelper\source\misc\officerestartmanager.cxx(109) tklo.dll!`anonymous namespace'::AsyncCallback::Notify_Impl(`anonymous-namespace'::AsyncCallback * __formal, void * p) Line 105 at c:\lo\src\core\toolkit\source\awt\asynccallback.cxx(105) tklo.dll!`anonymous namespace'::AsyncCallback::LinkStubNotify_Impl(void * instance, void * data) Line 97 at c:\lo\src\core\toolkit\source\awt\asynccallback.cxx(97) vcllo.dll!Link<void *,void>::Call(void * data) Line 84 at c:\lo\src\core\include\tools\link.hxx(84) vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 1935 at c:\lo\src\core\vcl\source\window\winproc.cxx(1935) vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2486 at c:\lo\src\core\vcl\source\window\winproc.cxx(2486) vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 285 at c:\lo\src\core\vcl\inc\salframe.hxx(285) vclplug_winlo.dll!ImplHandleUserEvent(HWND__ * hWnd, __int64 lParam) Line 4068 at c:\lo\src\core\vcl\win\window\salframe.cxx(4068) vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 5721 at c:\lo\src\core\vcl\win\window\salframe.cxx(5721) vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5828 at c:\lo\src\core\vcl\win\window\salframe.cxx(5828) user32.dll!UserCallWinProcCheckWow() user32.dll!CallWindowProcW() opengl32.dll!wglWndProc() user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchMessageWorker() vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 410 at c:\lo\src\core\vcl\win\app\salinst.cxx(410) vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 441 at c:\lo\src\core\vcl\win\app\salinst.cxx(441) vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 512 at c:\lo\src\core\vcl\win\app\salinst.cxx(512) vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 441 at c:\lo\src\core\vcl\source\app\svapp.cxx(441) vcllo.dll!Application::Yield() Line 506 at c:\lo\src\core\vcl\source\app\svapp.cxx(506) vcllo.dll!Dialog::Execute() Line 1041 at c:\lo\src\core\vcl\source\window\dialog.cxx(1041) vcllo.dll!SalInstanceDialog::run() Line 881 at c:\lo\src\core\vcl\source\app\salvtables.cxx(881) vcllo.dll!weld::DialogController::run() Line 1364 at c:\lo\src\core\include\vcl\weld.hxx(1364) svtlo.dll!svtools::executeRestartDialog(const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & context, weld::Window * parent, svtools::RestartReason reason) Line 101 at c:\lo\src\core\svtools\source\dialogs\restartdialog.cxx(98) cuilo.dll!OfaTreeOptionsDialog::OKHdl_Impl(Button * __formal) Line 735 at c:\lo\src\core\cui\source\options\treeopt.cxx(735) cuilo.dll!OfaTreeOptionsDialog::LinkStubOKHdl_Impl(void * instance, Button * data) Line 704 at c:\lo\src\core\cui\source\options\treeopt.cxx(704) vcllo.dll!Link<Button *,void>::Call(Button * data) Line 84 at c:\lo\src\core\include\tools\link.hxx(84) vcllo.dll!Button::Click::__l2::<lambda>() Line 125 at c:\lo\src\core\vcl\source\control\button.cxx(125) vcllo.dll!std::_Invoker_functor::_Call<void <lambda>(void) &>(Button::Click::__l2::void <lambda>(void) & _Obj) vcllo.dll!std::invoke<void <lambda>(void) &>(Button::Click::__l2::void <lambda>(void) & _Obj) vcllo.dll!std::_Invoker_ret<void,1>::_Call<void <lambda>(void) &>(Button::Click::__l2::void <lambda>(void) & <_Vals_0>) vcllo.dll!std::_Func_impl_no_alloc<void <lambda>(void),void>::_Do_call() vcllo.dll!std::_Func_class<void>::operator()() vcllo.dll!Control::ImplCallEventListenersAndHandler(VclEventId nEvent, const std::function<void __cdecl(void)> & callHandler) Line 321 at c:\lo\src\core\vcl\source\control\ctrl.cxx(321) vcllo.dll!Button::Click() Line 125 at c:\lo\src\core\vcl\source\control\button.cxx(125) vcllo.dll!OKButton::Click() Line 1737 at c:\lo\src\core\vcl\source\control\button.cxx(1737) vcllo.dll!PushButton::Tracking(const TrackingEvent & rTEvt) Line 1260 at c:\lo\src\core\vcl\source\control\button.cxx(1260) vcllo.dll!vcl::Window::EndTracking(TrackingEventFlags nFlags) Line 320 at c:\lo\src\core\vcl\source\window\window2.cxx(320) vcllo.dll!ImplHandleMouseEvent(const VclPtr<vcl::Window> & xWindow, MouseNotifyEvent nSVEvent, bool bMouseLeave, long nX, long nY, unsigned __int64 nMsgTime, unsigned short nCode, MouseEventModifiers nMode) Line 703 at c:\lo\src\core\vcl\source\window\winproc.cxx(703) vcllo.dll!ImplHandleSalMouseButtonUp(vcl::Window * pWindow, const SalMouseEvent * pEvent) Line 1998 at c:\lo\src\core\vcl\source\window\winproc.cxx(1998) vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2336 at c:\lo\src\core\vcl\source\window\winproc.cxx(2336) vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 285 at c:\lo\src\core\vcl\inc\salframe.hxx(285) vclplug_winlo.dll!ImplHandleMouseMsg(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 3120 at c:\lo\src\core\vcl\win\window\salframe.cxx(3120) vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 5475 at c:\lo\src\core\vcl\win\window\salframe.cxx(5475) vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5828 at c:\lo\src\core\vcl\win\window\salframe.cxx(5828) user32.dll!UserCallWinProcCheckWow() user32.dll!CallWindowProcW() opengl32.dll!wglWndProc() user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchMessageWorker() vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 410 at c:\lo\src\core\vcl\win\app\salinst.cxx(410) vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 483 at c:\lo\src\core\vcl\win\app\salinst.cxx(483) vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 512 at c:\lo\src\core\vcl\win\app\salinst.cxx(512) vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 441 at c:\lo\src\core\vcl\source\app\svapp.cxx(441) vcllo.dll!Application::Yield() Line 506 at c:\lo\src\core\vcl\source\app\svapp.cxx(506) vcllo.dll!Dialog::Execute() Line 1041 at c:\lo\src\core\vcl\source\window\dialog.cxx(1041) cuilo.dll!OfaTreeOptionsDialog::Execute() Line 2040 at c:\lo\src\core\cui\source\options\treeopt.cxx(2040) cuilo.dll!CuiVclAbstractDialog_Impl::Execute() Line 112 at c:\lo\src\core\cui\source\factory\dlgfact.cxx(112) sfxlo.dll!SfxApplication::OfaExec_Impl(SfxRequest & rReq) Line 1361 at c:\lo\src\core\sfx2\source\appl\appserv.cxx(1361) sfxlo.dll!SfxStubSfxApplicationOfaExec_Impl(SfxShell * pShell, SfxRequest & rReq) Line 1248 at c:\lo\src\core\workdir\sditarget\sfx2\sdi\sfxslots.hxx(1248) sfxlo.dll!SfxShell::CallExec(void(*)(SfxShell *, SfxRequest &) pFunc, SfxRequest & rReq) Line 207 at c:\lo\src\core\include\sfx2\shell.hxx(207) sfxlo.dll!SfxDispatcher::Call_Impl(SfxShell & rShell, const SfxSlot & rSlot, SfxRequest & rReq, bool bRecord) Line 356 at c:\lo\src\core\sfx2\source\control\dispatch.cxx(356) sfxlo.dll!SfxDispatcher::Execute_(SfxShell & rShell, const SfxSlot & rSlot, SfxRequest & rReq, SfxCallMode eCallMode) Line 854 at c:\lo\src\core\sfx2\source\control\dispatch.cxx(854) sfxlo.dll!SfxDispatcher::Execute(unsigned short nSlot, SfxCallMode nCall, const SfxItemSet * pArgs, const SfxItemSet * pInternalArgs, unsigned short nModi) Line 913 at c:\lo\src\core\sfx2\source\control\dispatch.cxx(913) sfxlo.dll!SfxDispatchController_Impl::dispatch(const com::sun::star::util::URL & aURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & aArgs, const com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> & rListener) Line 774 at c:\lo\src\core\sfx2\source\control\unoctitm.cxx(774) sfxlo.dll!SfxOfficeDispatch::dispatch(const com::sun::star::util::URL & aURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & aArgs) Line 225 at c:\lo\src\core\sfx2\source\control\unoctitm.cxx(225) fwklo.dll!framework::MenuBarManager::Select(Menu * pMenu) Line 896 at c:\lo\src\core\framework\source\uielement\menubarmanager.cxx(896) fwklo.dll!framework::MenuBarManager::LinkStubSelect(void * instance, Menu * data) Line 832 at c:\lo\src\core\framework\source\uielement\menubarmanager.cxx(832) vcllo.dll!Link<Menu *,bool>::Call(Menu * data) Line 84 at c:\lo\src\core\include\tools\link.hxx(84) vcllo.dll!Menu::Select() Line 362 at c:\lo\src\core\vcl\source\window\menu.cxx(362) vcllo.dll!Menu::ImplCallSelect(void * __formal) Line 2140 at c:\lo\src\core\vcl\source\window\menu.cxx(2140) vcllo.dll!Menu::LinkStubImplCallSelect(void * instance, void * data) Line 2136 at c:\lo\src\core\vcl\source\window\menu.cxx(2136) vcllo.dll!Link<void *,void>::Call(void * data) Line 84 at c:\lo\src\core\include\tools\link.hxx(84) vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 1935 at c:\lo\src\core\vcl\source\window\winproc.cxx(1935) vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2486 at c:\lo\src\core\vcl\source\window\winproc.cxx(2486) vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 285 at c:\lo\src\core\vcl\inc\salframe.hxx(285) vclplug_winlo.dll!ImplHandleUserEvent(HWND__ * hWnd, __int64 lParam) Line 4068 at c:\lo\src\core\vcl\win\window\salframe.cxx(4068) vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 5721 at c:\lo\src\core\vcl\win\window\salframe.cxx(5721) vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5828 at c:\lo\src\core\vcl\win\window\salframe.cxx(5828) user32.dll!UserCallWinProcCheckWow() user32.dll!CallWindowProcW() opengl32.dll!wglWndProc() user32.dll!UserCallWinProcCheckWow() user32.dll!DispatchMessageWorker() vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 410 at c:\lo\src\core\vcl\win\app\salinst.cxx(410) vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 441 at c:\lo\src\core\vcl\win\app\salinst.cxx(441) vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 512 at c:\lo\src\core\vcl\win\app\salinst.cxx(512) vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 441 at c:\lo\src\core\vcl\source\app\svapp.cxx(441) vcllo.dll!Application::Yield() Line 506 at c:\lo\src\core\vcl\source\app\svapp.cxx(506) vcllo.dll!Application::Execute() Line 422 at c:\lo\src\core\vcl\source\app\svapp.cxx(422) sofficeapp.dll!desktop::Desktop::Main() Line 1619 at c:\lo\src\core\desktop\source\app\app.cxx(1619) vcllo.dll!ImplSVMain() Line 199 at c:\lo\src\core\vcl\source\app\svmain.cxx(199) vcllo.dll!SVMain() Line 234 at c:\lo\src\core\vcl\source\app\svmain.cxx(234) sofficeapp.dll!soffice_main() Line 169 at c:\lo\src\core\desktop\source\app\sofficemain.cxx(169) soffice.bin!sal_main() Line 48 at c:\lo\src\core\desktop\source\app\main.c(48) soffice.bin!main(int argc, char * * argv) Line 47 at c:\lo\src\core\desktop\source\app\main.c(47) soffice.bin!invoke_main() Line 79 at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(79) soffice.bin!__scrt_common_main_seh() Line 288 at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288) soffice.bin!__scrt_common_main() Line 331 at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331) soffice.bin!mainCRTStartup() Line 17 at d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp(17) kernel32.dll!BaseThreadInitThunk() ntdll.dll!RtlUserThreadStart() Change-Id: I0518c48e48a50b99a2a1eaf17335e116d63bc587 Reviewed-on: https://gerrit.libreoffice.org/65007 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Mike Kaganski <[email protected]> (cherry picked from commit 12edea426a31f57a9d5b1c65b34fb1336c5534e9) Reviewed-on: https://gerrit.libreoffice.org/65098 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx index 122f314eccd8..8a93e05c1db7 100644 --- a/svtools/source/dialogs/restartdialog.cxx +++ b/svtools/source/dialogs/restartdialog.cxx @@ -94,9 +94,12 @@ void svtools::executeRestartDialog( css::uno::Reference< css::uno::XComponentContext > const & context, weld::Window* parent, RestartReason reason) { + auto xRestartManager = css::task::OfficeRestartManager::get(context); + if (xRestartManager->isRestartRequested(false)) + return; // don't try to show another dialog when restart is already in progress RestartDialog aDlg(parent, reason); if (aDlg.run()) { - css::task::OfficeRestartManager::get(context)->requestRestart( + xRestartManager->requestRestart( css::uno::Reference< css::task::XInteractionHandler >()); } } commit dbc180888624805ec3df4b7787ff107c425eab21 Author: László Németh <[email protected]> AuthorDate: Tue Nov 20 09:44:43 2018 +0100 Commit: László Németh <[email protected]> CommitDate: Fri Dec 21 12:13:27 2018 +0100 tdf#115319 fix Hungarian article before letter i in words, for example “az Ipsum”, not “a Ipsum”. This bug was reported by Gellért Gyuris. Complete commit 1037e3759bf178b52d16c12a811717f94ab9950a (tdf#115319 references with Hungarian articles) Change-Id: If930feb11a0308246d2512f0093bcacdc8675d0b Reviewed-on: https://gerrit.libreoffice.org/63637 Tested-by: Jenkins Reviewed-by: László Németh <[email protected]> (cherry picked from commit 542d17d9384cced62db6bcfa45a5f44316409edc) Reviewed-on: https://gerrit.libreoffice.org/63669 diff --git a/sw/qa/extras/odfexport/data/referencelanguage.odt b/sw/qa/extras/odfexport/data/referencelanguage.odt index dcdd626fe3cf..9614bb3e31bc 100644 Binary files a/sw/qa/extras/odfexport/data/referencelanguage.odt and b/sw/qa/extras/odfexport/data/referencelanguage.odt differ diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index 01327898daa0..9245c3c16716 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -1957,7 +1957,7 @@ DECLARE_ODFEXPORT_TEST(testReferenceLanguage, "referencelanguage.odt") { // Test loext:reference-language attribute of reference fields // (used from LibreOffice 6.1, and proposed for next ODF) - const char* aFieldTexts[] = { "A 2", "Az 50-esek", + const char* aFieldTexts[] = { "A 2", "Az Isten", "Az 50-esek", "A 2018-asok", "Az egyebek", "A fejezetek", u8"Az „Őseinket...”", "a 2", "Az v", "az 1", "Az e", "az 1", diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx index 9f6ec1998185..47bb1b0a615b 100644 --- a/sw/source/core/fields/reffld.cxx +++ b/sw/source/core/fields/reffld.cxx @@ -286,7 +286,7 @@ static void lcl_formatReferenceLanguage( OUString& rRefText, 0x00E1, 0x00C1, 0x00E9, 0x00C9, 0x00ED, 0x00CD, 0x00F3, 0x00D3, 0x00F6, 0x00D6, 0x0151, 0x0150, 0x00FA, 0x00DA, 0x00FC, 0x00DC, 0x0171, 0x0170, 0 }; - static OUString sVowels = "aAeEoOuU" + OUString(sVowelsWithDiacritic); + static OUString sVowels = "aAeEiIoOuU" + OUString(sVowelsWithDiacritic); // handle more than 1-letter long Roman numbers and // their possible combinations with letters: commit 027e592758421287463b1a3bf64cb32d3ef96601 Author: Mike Kaganski <[email protected]> AuthorDate: Tue Dec 18 09:19:06 2018 +0300 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Dec 21 09:59:53 2018 +0100 tdf#116496: don't add header when setting empty watermark Regression from commit 22e94ab1860b1bdea8d107d4e8824f63c6b1c8c5 Change-Id: I66a6e0b5069fe459b887a52f1ea26904dfc2d37b Reviewed-on: https://gerrit.libreoffice.org/65303 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Mike Kaganski <[email protected]> (cherry picked from commit c4f3bd7c94cacb52f7a791a0d364818cee6080b6) Reviewed-on: https://gerrit.libreoffice.org/65416 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx index 6486de18a102..ee76998aac75 100644 --- a/sw/source/core/edit/edfcol.cxx +++ b/sw/source/core/edit/edfcol.cxx @@ -1600,6 +1600,7 @@ void SwEditShell::SetWatermark(const SfxWatermarkItem& rWatermark) SwDocShell* pDocShell = GetDoc()->GetDocShell(); if (!pDocShell) return; + const bool bNoWatermark = rWatermark.GetText().isEmpty(); uno::Reference<frame::XModel> xModel = pDocShell->GetBaseModel(); uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(xModel, uno::UNO_QUERY); @@ -1615,7 +1616,12 @@ void SwEditShell::SetWatermark(const SfxWatermarkItem& rWatermark) bool bHeaderIsOn = false; xPageStyle->getPropertyValue(UNO_NAME_HEADER_IS_ON) >>= bHeaderIsOn; if (!bHeaderIsOn) + { + if (bNoWatermark) + continue; // the style doesn't have any watermark - no need to do anything + xPageStyle->setPropertyValue(UNO_NAME_HEADER_IS_ON, uno::makeAny(true)); + } // backup header height bool bDynamicHeight = true; commit 72f2fbc75dc254ea8e13527b592bd0b4fb946bab Author: Mike Kaganski <[email protected]> AuthorDate: Mon Dec 17 00:23:24 2018 +0300 Commit: Caolán McNamara <[email protected]> CommitDate: Thu Dec 20 14:10:11 2018 +0100 tdf#122134: use CurrentMajorVersionNumber to filter out Windows 10 On Windows 8.1, the one that is problematic to tell from Windows 10 (because the latter also exposes its version as 603 to the msiexec), the registry value doesn't exist at HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion but let's play safe and also check for "#6" value just in case. Reference: https://stackoverflow.com/questions/31072543/reliable-way-to-get-windows-version-from-registry Thanks to Mitchell <[email protected]> for the idea! Change-Id: Ic907c4d992a7cb1d12e392686c19cd6fd6da3c7c Reviewed-on: https://gerrit.libreoffice.org/65231 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Mike Kaganski <[email protected]> (cherry picked from commit d87fa557ff58c3b9f5c9079a1d7595e095694111) Reviewed-on: https://gerrit.libreoffice.org/65242 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt index 46ceccc26c60..cb0ca0c1ccbb 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt @@ -6,3 +6,4 @@ INSTALLLOCATION installuser_ INSTALLLOCATION installmachine INSTALLLOCATION installmachine_ WIN81S14 win81s14 +WINMAJORVER WinMajorVer diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt index 1a7074acb7f8..b9b53a02e3ac 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt @@ -43,7 +43,7 @@ ProgressType3 installs Quickstarterlinkname QUICKSTARTERLINKNAMETEMPLATE RebootYesNo Yes ReinstallModeText omus -SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS;WIN81S14 +SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS;WIN81S14;WINMAJORVER SetupType Typical SELECT_WORD 0 SELECT_EXCEL 0 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt index c082322086ad..7788815d3a6e 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt @@ -5,3 +5,4 @@ installuser 1 Software\LibreOffice\Layers\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] installuser_ 1 Software\LibreOffice\Layers_\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 installmachine 2 Software\LibreOffice\Layers\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 installmachine_ 2 Software\LibreOffice\Layers_\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 +WinMajorVer 2 Software\Microsoft\Windows NT\CurrentVersion CurrentMajorVersionNumber 2 diff --git a/scp2/source/ooo/ucrt.scp b/scp2/source/ooo/ucrt.scp index ae2eb27a4dbe..a2d6965e2ecb 100644 --- a/scp2/source/ooo/ucrt.scp +++ b/scp2/source/ooo/ucrt.scp @@ -111,7 +111,7 @@ WindowsCustomAction gid_Customaction_check_win81x64_ucrt Source = "InstMSUBinary"; Target = "Windows81-KB2999226-x64msu"; Inbinarytable = 0; - Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 603 And VersionNT64", "check_win8x64_ucrt"); + Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 603 And (Not WINMAJORVER Or WINMAJORVER = \"#6\") And VersionNT64", "check_win8x64_ucrt"); Styles = "NO_FILE"; End @@ -147,7 +147,7 @@ WindowsCustomAction gid_Customaction_check_win81x32_ucrt Source = "InstMSUBinary"; Target = "Windows81-KB2999226-x86msu"; Inbinarytable = 0; - Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 603 And Not VersionNT64", "check_win8x32_ucrt"); + Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 603 And (Not WINMAJORVER Or WINMAJORVER = \"#6\") And Not VersionNT64", "check_win8x32_ucrt"); Styles = "NO_FILE"; End commit c72ddb5e185d33e17762bc96207b86948950e173 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Dec 19 16:23:06 2018 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Thu Dec 20 12:10:29 2018 +0100 Resolves: tdf#121555 sometime crash on menu hierarchy change seems menubar gets set to dirty due to some menu activity that needs a refresh, but then the hierarchy changes and as its already dirty the maUpdateMenuBarIdle doesn't get launched the placement of the mbMenuBar test inside the loop through parents shows some confusion as to what which mbMenuBar might be met, the one belonging to this, or that of the parent being traversed, but it does seem to be the one belonging to this. Change-Id: I0b9dceadf64f7adf18eb1aa2dbda9bbfbcb66e0a Reviewed-on: https://gerrit.libreoffice.org/65465 Tested-by: Jenkins Tested-by: Xisco Faulí <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx index 8fd2ea29636a..c946ae0d32d4 100644 --- a/vcl/unx/gtk/gtksalmenu.cxx +++ b/vcl/unx/gtk/gtksalmenu.cxx @@ -226,8 +226,12 @@ void GtkSalMenu::ImplUpdate(bool bRecurse, bool bRemoveDisabledEntries) if (mbNeedsUpdate) { mbNeedsUpdate = false; - if (mbMenuBar) + if (mbMenuBar && maUpdateMenuBarIdle.IsActive()) + { maUpdateMenuBarIdle.Stop(); + maUpdateMenuBarIdle.Invoke(); + return; + } } Menu* pVCLMenu = mpVCLMenu; @@ -520,13 +524,17 @@ IMPL_LINK_NOARG(GtkSalMenu, MenuBarHierarchyChangeHandler, Timer *, void) void GtkSalMenu::SetNeedsUpdate() { GtkSalMenu* pMenu = this; + // start that the menu and its parents are in need of an update + // on the next activation while (pMenu && !pMenu->mbNeedsUpdate) { pMenu->mbNeedsUpdate = true; - if (mbMenuBar) - maUpdateMenuBarIdle.Start(); pMenu = pMenu->mpParentSalMenu; } + // only if a menubar is directly updated do we force in a full + // structure update + if (mbMenuBar && !maUpdateMenuBarIdle.IsActive()) + maUpdateMenuBarIdle.Start(); } void GtkSalMenu::SetMenuModel(GMenuModel* pMenuModel) commit 9396cf7edb101983c56f44ae814029ce78f0fc71 Author: Mike Kaganski <[email protected]> AuthorDate: Tue Dec 4 21:28:46 2018 +0300 Commit: Eike Rathke <[email protected]> CommitDate: Thu Dec 20 01:01:48 2018 +0100 tdf#117332: select replaced text to properly replace it next time ... othervise the next drag event will insert the new range immediately after the just inserted, resulting in invalid reference. Regression after commit 42aece949ec96c775b31216bddd723aa5321e966 don't replace content of formula field when selecting range, tdf#58635 Change-Id: I7dfdc1ce041ebadf4406dbb605676d87cd489efa Reviewed-on: https://gerrit.libreoffice.org/64574 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Mike Kaganski <[email protected]> (cherry picked from commit 6c5839d399c6277a7f2f0e214a20996761563525) Reviewed-on: https://gerrit.libreoffice.org/65027 Tested-by: Jenkins Reviewed-by: Eike Rathke <[email protected]> diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx index 7776ea958f86..1df88cf003cc 100644 --- a/sc/source/ui/condformat/condformatdlg.cxx +++ b/sc/source/ui/condformat/condformatdlg.cxx @@ -655,7 +655,13 @@ void ScCondFormatDlg::SetReference(const ScRange& rRef, ScDocument*) OUString aRefStr(rRef.Format(nFlags, mpViewData->GetDocument(), ScAddress::Details(mpViewData->GetDocument()->GetAddressConvention(), 0, 0))); if (pEdit != mpEdRange) + { + Selection sel = pEdit->GetSelection(); + sel.Justify(); // in case of RtL selection + sel.Max() = sel.Min() + aRefStr.getLength(); pEdit->ReplaceSelected(aRefStr); + pEdit->SetSelection(sel); // to replace it again with next drag event + } else pEdit->SetRefString( aRefStr ); updateTitle(); commit 73cc724dc35551ea349b3da0c4ecd6cba2fdd0ae Author: Miklos Vajna <[email protected]> AuthorDate: Tue Nov 13 18:00:50 2018 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Wed Dec 19 22:09:44 2018 +0100 Related: tdf#117761 oox smartart: backport fixes related to process types This is a combination of 9 commits. This is the 1st commit: oox smartart, accent process: add support for reading values from constraints (cherry picked from commit b389aafee9cfba9dc4dfa552347be39ff9fe41b2) This is the commit #2: oox smartart, accent process: add support for zorder offsets (cherry picked from commit cd348a6244a092c251a8e1362cd78de562d7bef6) This is the commit #3: oox smartart, accent process: fix overlapping shape pairs (cherry picked from commit 67e062aa5e5946d4985921fe2b6f87766f363ddc) This is the commit #4: oox smartart, accent process: handle multiple runs from a data point (cherry picked from commit cfa76f538a44d4396574ece59e8a3953c22c6eb7) This is the commit #5: oox smartart, accent process: handle followSib axis of forEach (cherry picked from commit aedc5427e4b6645ff3257e523c33190cf5e1934d) This is the commit #6: oox smartart, accent process: handle connector shape between pairs (cherry picked from commit 7f66a340933339974b5c6d70af4ae3c17e4f001a) This is the commit #7: oox smartart, accent process: adjust size of connector from constraints (cherry picked from commit ddc2786831367577967e806d603f337a2e42806a) This is the commit #8: oox smartart, continuous block process: read space width from constraint (cherry picked from commit ee6787fc5597b7f730c4ee3a1f2a1b261d0a5644) Conflicts: oox/source/drawingml/diagram/diagramlayoutatoms.cxx This is the commit #9: oox smartart, accent process: fix missing bullets and large para indent (cherry picked from commit 6277a767f33bb5327408dafff2fed199087e938d) Change-Id: I60bbee75f3e834551ebb1963a2f42101f3bd91d4 Reviewed-on: https://gerrit.libreoffice.org/65352 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/include/oox/drawingml/shape.hxx b/include/oox/drawingml/shape.hxx index 6028a11c2bc0..e04a58beb4a6 100644 --- a/include/oox/drawingml/shape.hxx +++ b/include/oox/drawingml/shape.hxx @@ -214,6 +214,14 @@ public: const LinkedTxbxAttr& getLinkedTxbxAttributes() { return maLinkedTxbxAttr; }; bool isLinkedTxbx() { return mbHasLinkedTxbx; }; + void setZOrder(sal_Int32 nZOrder) { mnZOrder = nZOrder; } + + sal_Int32 getZOrder() const { return mnZOrder; } + + void setZOrderOff(sal_Int32 nZOrderOff) { mnZOrderOff = nZOrderOff; } + + sal_Int32 getZOrderOff() const { return mnZOrderOff; } + protected: css::uno::Reference< css::drawing::XShape > const & @@ -327,6 +335,12 @@ private: bool mbHasLinkedTxbx; // this text box has linked text box ? css::uno::Sequence<css::beans::PropertyValue> maDiagramDoms; + + /// Z-Order. + sal_Int32 mnZOrder = 0; + + /// Z-Order offset. + sal_Int32 mnZOrderOff = 0; }; } } diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index c1aaf6e07025..502470933e8f 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -54,6 +54,50 @@ oox::OptValue<sal_Int32> findProperty(const oox::drawingml::LayoutPropertyMap& r return oRet; } + +/** + * Determines if nUnit is a font unit (measured in points) or not (measured in + * millimeters). + */ +bool isFontUnit(sal_Int32 nUnit) +{ + return nUnit == oox::XML_primFontSz || nUnit == oox::XML_secFontSz; +} + +/// Determines the connector shape type from a linear alg. +sal_Int32 getConnectorType(const oox::drawingml::LayoutNode* pNode) +{ + sal_Int32 nType = oox::XML_rightArrow; + + if (!pNode) + return nType; + + for (const auto& pChild : pNode->getChildren()) + { + auto pAlgAtom = dynamic_cast<oox::drawingml::AlgAtom*>(pChild.get()); + if (!pAlgAtom) + continue; + + if (pAlgAtom->getType() != oox::XML_lin) + continue; + + sal_Int32 nDir = oox::XML_fromL; + if (pAlgAtom->getMap().count(oox::XML_linDir)) + nDir = pAlgAtom->getMap().find(oox::XML_linDir)->second; + + switch (nDir) + { + case oox::XML_fromL: + nType = oox::XML_rightArrow; + break; + case oox::XML_fromR: + nType = oox::XML_leftArrow; + break; + } + } + + return nType; +} } namespace oox { namespace drawingml { @@ -269,13 +313,15 @@ void ConstraintAtom::accept( LayoutAtomVisitor& rVisitor ) rVisitor.visit(*this); } -void ConstraintAtom::parseConstraint(std::vector<Constraint>& rConstraints) const +void ConstraintAtom::parseConstraint(std::vector<Constraint>& rConstraints, + bool bRequireForName) const { + if (bRequireForName && maConstraint.msForName.isEmpty()) + return; + // accepting only basic equality constraints - if (!maConstraint.msForName.isEmpty() && - (maConstraint.mnOperator == XML_none || maConstraint.mnOperator == XML_equ) && - maConstraint.mnType != XML_none && - maConstraint.mfValue == 0) + if ((maConstraint.mnOperator == XML_none || maConstraint.mnOperator == XML_equ) + && maConstraint.mnType != XML_none) { rConstraints.push_back(maConstraint); } @@ -290,7 +336,7 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, const std::vector<Constraint>& rOwnConstraints ) const { // Algorithm result may depend on the parent constraints as well. - std::vector<Constraint> aParentConstraints; + std::vector<Constraint> aMergedConstraints; const LayoutNode* pParent = getLayoutNode().getParentLayoutNode(); if (pParent) { @@ -298,10 +344,12 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, { auto pConstraintAtom = dynamic_cast<ConstraintAtom*>(pChild.get()); if (pConstraintAtom) - pConstraintAtom->parseConstraint(aParentConstraints); + pConstraintAtom->parseConstraint(aMergedConstraints, /*bRequireForName=*/true); } } - const std::vector<Constraint>& rConstraints = rOwnConstraints.empty() ? aParentConstraints : rOwnConstraints; + aMergedConstraints.insert(aMergedConstraints.end(), rOwnConstraints.begin(), + rOwnConstraints.end()); + const std::vector<Constraint>& rConstraints = aMergedConstraints; switch(mnType) { @@ -327,7 +375,19 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, if (aRefType != aRef->second.end()) aProperties[rConstr.msForName][rConstr.mnType] = aRefType->second * rConstr.mfFactor; else - aProperties[rConstr.msForName][rConstr.mnType] = 0; // TODO: val + { + // Values are never in EMU, while oox::drawingml::Shape + // position and size are always in EMU. + double fUnitFactor = 0; + if (isFontUnit(rConstr.mnRefType)) + // Points -> EMU. + fUnitFactor = EMU_PER_PT; + else + // Millimeters -> EMU. + fUnitFactor = EMU_PER_HMM * 100; + aProperties[rConstr.msForName][rConstr.mnType] + = rConstr.mfValue * fUnitFactor; + } } } @@ -376,7 +436,54 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, } case XML_conn: + { + if (rShape->getSubType() == XML_conn) + { + // There is no shape type "conn", replace it by an arrow based + // on the direction of the parent linear layout. + sal_Int32 nType = getConnectorType(pParent); + + rShape->setSubType(nType); + rShape->getCustomShapeProperties()->setShapePresetType(nType); + } + + // Parse constraints to adjust the size. + std::vector<Constraint> aDirectConstraints; + const LayoutNode& rLayoutNode = getLayoutNode(); + for (const auto& pChild : rLayoutNode.getChildren()) + { + auto pConstraintAtom = dynamic_cast<ConstraintAtom*>(pChild.get()); + if (pConstraintAtom) + pConstraintAtom->parseConstraint(aDirectConstraints, /*bRequireForName=*/false); + } + + LayoutPropertyMap aProperties; + LayoutProperty& rParent = aProperties[""]; + rParent[XML_w] = rShape->getSize().Width; + rParent[XML_h] = rShape->getSize().Height; + rParent[XML_l] = 0; + rParent[XML_t] = 0; + rParent[XML_r] = rShape->getSize().Width; + rParent[XML_b] = rShape->getSize().Height; + for (const auto& rConstr : aDirectConstraints) + { + const LayoutPropertyMap::const_iterator aRef + = aProperties.find(rConstr.msRefForName); + if (aRef != aProperties.end()) + { + const LayoutProperty::const_iterator aRefType + = aRef->second.find(rConstr.mnRefType); + if (aRefType != aRef->second.end()) + aProperties[rConstr.msForName][rConstr.mnType] + = aRefType->second * rConstr.mfFactor; + } + } + awt::Size aSize; + aSize.Width = rParent[XML_w]; + aSize.Height = rParent[XML_h]; + rShape->setSize(aSize); break; + } case XML_cycle: { @@ -428,22 +535,9 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, const sal_Int32 nIncX = nDir==XML_fromL ? 1 : (nDir==XML_fromR ? -1 : 0); const sal_Int32 nIncY = nDir==XML_fromT ? 1 : (nDir==XML_fromB ? -1 : 0); - // TODO: get values from constraints sal_Int32 nCount = rShape->getChildren().size(); double fSpace = 0.3; - awt::Size aChildSize = rShape->getSize(); - if (nDir == XML_fromL || nDir == XML_fromR) - aChildSize.Width /= (nCount + (nCount-1)*fSpace); - else if (nDir == XML_fromT || nDir == XML_fromB) - aChildSize.Height /= (nCount + (nCount-1)*fSpace); - - awt::Point aCurrPos(0, 0); - if (nIncX == -1) - aCurrPos.X = rShape->getSize().Width - aChildSize.Width; - if (nIncY == -1) - aCurrPos.Y = rShape->getSize().Height - aChildSize.Height; - // Find out which contraint is relevant for which (internal) name. LayoutPropertyMap aProperties; for (const auto& rConstraint : rConstraints) @@ -454,8 +548,24 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, LayoutProperty& rProperty = aProperties[rConstraint.msForName]; if (rConstraint.mnType == XML_w) rProperty[XML_w] = rShape->getSize().Width * rConstraint.mfFactor; + + // TODO: get values from differently named constraints as well + if (rConstraint.msForName == "sibTrans" && rConstraint.mnType == XML_w) + fSpace = rConstraint.mfFactor; } + awt::Size aChildSize = rShape->getSize(); + if (nDir == XML_fromL || nDir == XML_fromR) + aChildSize.Width /= (nCount + (nCount-1)*fSpace); + else if (nDir == XML_fromT || nDir == XML_fromB) + aChildSize.Height /= (nCount + (nCount-1)*fSpace); + + awt::Point aCurrPos(0, 0); + if (nIncX == -1) + aCurrPos.X = rShape->getSize().Width - aChildSize.Width; + if (nIncY == -1) + aCurrPos.Y = rShape->getSize().Height - aChildSize.Height; + // See if children requested more than 100% space in total: scale // down in that case. sal_Int32 nTotalWidth = 0; @@ -500,7 +610,7 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, aSize.Width *= fWidthScale; aCurrShape->setSize(aSize); - aCurrShape->setChildSize(aChildSize); + aCurrShape->setChildSize(aSize); aCurrPos.X += nIncX * (aSize.Width + fSpace*aSize.Width); aCurrPos.Y += nIncY * (aChildSize.Height + fSpace*aChildSize.Height); } @@ -711,13 +821,27 @@ void AlgAtom::layoutShape( const ShapePtr& rShape, } ParamMap::const_iterator aBulletLvl = maMap.find(XML_stBulletLvl); + int nStartBulletsAtLevel = 0; if (aBulletLvl != maMap.end()) + { nBaseLevel -= aBulletLvl->second; + nStartBulletsAtLevel = aBulletLvl->second; + } for (auto & aParagraph : pTextBody->getParagraphs()) { sal_Int32 nLevel = aParagraph->getProperties().getLevel(); aParagraph->getProperties().setLevel(nLevel - nBaseLevel); + if (nStartBulletsAtLevel > 0 && nLevel >= nStartBulletsAtLevel) + { + // It is not possible to change the bullet style for text. + sal_Int32 nLeftMargin = 285750 * (nLevel - nStartBulletsAtLevel) / EMU_PER_HMM; + aParagraph->getProperties().getParaLeftMargin() = nLeftMargin; + aParagraph->getProperties().getFirstLineIndentation() = -285750 / EMU_PER_HMM; + OUString aBulletChar = OUString::fromUtf8(u8"•"); + aParagraph->getProperties().getBulletList().setBulletChar(aBulletChar); + aParagraph->getProperties().getBulletList().setSuffixNone(); + } } // explicit alignment @@ -821,8 +945,10 @@ bool LayoutNode::setupShape( const ShapePtr& rShape, const dgm::Point* pPresNode if( aVecIter->second != -1 ) rPara.getProperties().setLevel(aVecIter->second); - rPara.addRun( - aDataNode2->second->mpShape->getTextBody()->getParagraphs().front()->getRuns().front()); + std::shared_ptr<TextParagraph> pSourceParagraph + = aDataNode2->second->mpShape->getTextBody()->getParagraphs().front(); + for (const auto& pRun : pSourceParagraph->getRuns()) + rPara.addRun(pRun); rPara.getProperties().apply( aDataNode2->second->mpShape->getTextBody()->getParagraphs().front()->getProperties()); } diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.hxx b/oox/source/drawingml/diagram/diagramlayoutatoms.hxx index 3d4d9c05aae2..500495b6f2ca 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.hxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.hxx @@ -141,7 +141,7 @@ public: virtual void accept( LayoutAtomVisitor& ) override; Constraint& getConstraint() { return maConstraint; } - void parseConstraint(std::vector<Constraint>& rConstraints) const; + void parseConstraint(std::vector<Constraint>& rConstraints, bool bRequireForName) const; private: Constraint maConstraint; }; @@ -162,6 +162,13 @@ public: { maMap[nType]=nVal; } void layoutShape( const ShapePtr& rShape, const std::vector<Constraint>& rConstraints ) const; + + /// Gives access to <dgm:alg type="..."/>. + sal_Int32 getType() const { return mnType; } + + /// Gives access to <dgm:param type="..." val="..."/>. + const ParamMap& getMap() const { return maMap; } + private: sal_Int32 mnType; ParamMap maMap; diff --git a/oox/source/drawingml/diagram/layoutatomvisitors.cxx b/oox/source/drawingml/diagram/layoutatomvisitors.cxx index ce8e6ab72b9e..49a664c1e821 100644 --- a/oox/source/drawingml/diagram/layoutatomvisitors.cxx +++ b/oox/source/drawingml/diagram/layoutatomvisitors.cxx @@ -46,6 +46,14 @@ void ShapeCreationVisitor::visit(AlgAtom& rAtom) void ShapeCreationVisitor::visit(ForEachAtom& rAtom) { + if (rAtom.iterator().mnAxis == XML_followSib) + { + // If the axis is the follow sibling, then the last atom should not be + // visited. + if (mnCurrIdx + mnCurrStep >= mnCurrCnt) + return; + } + const std::vector<LayoutAtomPtr>& rChildren=rAtom.getChildren(); sal_Int32 nChildren=1; @@ -65,7 +73,11 @@ void ShapeCreationVisitor::visit(ForEachAtom& rAtom) rAtom.iterator().mnCnt==-1 ? nChildren : rAtom.iterator().mnCnt); const sal_Int32 nOldIdx=mnCurrIdx; + const sal_Int32 nOldStep = mnCurrStep; + const sal_Int32 nOldCnt = mnCurrCnt; const sal_Int32 nStep=rAtom.iterator().mnStep; + mnCurrStep = nStep; + mnCurrCnt = nCnt; for( mnCurrIdx=0; mnCurrIdx<nCnt && nStep>0; mnCurrIdx+=nStep ) { // TODO there is likely some conditions @@ -75,6 +87,8 @@ void ShapeCreationVisitor::visit(ForEachAtom& rAtom) // and restore idx mnCurrIdx = nOldIdx; + mnCurrStep = nOldStep; + mnCurrCnt = nOldCnt; } void ShapeCreationVisitor::visit(ConditionAtom& rAtom) @@ -166,6 +180,38 @@ void ShapeCreationVisitor::visit(LayoutNode& rAtom) std::remove_if(pCurrParent->getChildren().begin(), pCurrParent->getChildren().end(), [] (const ShapePtr & aChild) { return aChild->getServiceName() == "com.sun.star.drawing.GroupShape" && aChild->getChildren().empty(); }), pCurrParent->getChildren().end()); + + // Offset the children from their default z-order stacking, if necessary. + std::vector<ShapePtr>& rChildren = pCurrParent->getChildren(); + for (size_t i = 0; i < rChildren.size(); ++i) + rChildren[i]->setZOrder(i); + + for (size_t i = 0; i < rChildren.size(); ++i) + { + const ShapePtr& pChild = rChildren[i]; + sal_Int32 nZOrderOff = pChild->getZOrderOff(); + if (nZOrderOff <= 0) + continue; + + // Increase my ZOrder by nZOrderOff. + pChild->setZOrder(pChild->getZOrder() + nZOrderOff); + pChild->setZOrderOff(0); + + for (sal_Int32 j = 0; j < nZOrderOff; ++j) + { + size_t nIndex = i + j + 1; + if (nIndex >= rChildren.size()) + break; + + // Decrease the ZOrder of the next nZOrderOff elements by one. + const ShapePtr& pNext = rChildren[nIndex]; + pNext->setZOrder(pNext->getZOrder() - 1); + } + } + + // Now that the ZOrders are adjusted, sort the children. + std::sort(rChildren.begin(), rChildren.end(), + [](const ShapePtr& a, const ShapePtr& b) { return a->getZOrder() < b->getZOrder(); }); } void ShapeCreationVisitor::visit(ShapeAtom& /*rAtom*/) @@ -235,7 +281,7 @@ void ShapeLayoutingVisitor::defaultVisit(LayoutAtom const & rAtom) void ShapeLayoutingVisitor::visit(ConstraintAtom& rAtom) { if (meLookFor == CONSTRAINT) - rAtom.parseConstraint(maConstraints); + rAtom.parseConstraint(maConstraints, /*bRequireForName=*/true); } void ShapeLayoutingVisitor::visit(AlgAtom& rAtom) diff --git a/oox/source/drawingml/diagram/layoutatomvisitors.hxx b/oox/source/drawingml/diagram/layoutatomvisitors.hxx index 299739186315..f395f6a68668 100644 --- a/oox/source/drawingml/diagram/layoutatomvisitors.hxx +++ b/oox/source/drawingml/diagram/layoutatomvisitors.hxx @@ -33,6 +33,8 @@ class ShapeCreationVisitor : public LayoutAtomVisitor ShapePtr mpParentShape; const Diagram& mrDgm; sal_Int32 mnCurrIdx; + sal_Int32 mnCurrStep = 0; + sal_Int32 mnCurrCnt = 0; const dgm::Point* mpCurrentNode; void defaultVisit(LayoutAtom const & rAtom); diff --git a/oox/source/drawingml/diagram/layoutnodecontext.cxx b/oox/source/drawingml/diagram/layoutnodecontext.cxx index 257f490f7c7c..ad62ba5d712b 100644 --- a/oox/source/drawingml/diagram/layoutnodecontext.cxx +++ b/oox/source/drawingml/diagram/layoutnodecontext.cxx @@ -209,6 +209,8 @@ LayoutNodeContext::onCreateContext( ::sal_Int32 aElement, pShape->setDiagramRotation(rAttribs.getInteger(XML_rot, 0) * PER_DEGREE); + pShape->setZOrderOff(rAttribs.getInteger(XML_zOrderOff, 0)); + ShapeAtomPtr pAtom( new ShapeAtom(mpNode->getLayoutNode(), pShape) ); LayoutAtom::connect(mpNode, pAtom); return new ShapeContext( *this, ShapePtr(), pShape ); diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index 2926614b8efc..16bc511743b1 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -175,6 +175,8 @@ Shape::Shape( const ShapePtr& pSourceShape ) , maLinkedTxbxAttr() , mbHasLinkedTxbx(false) , maDiagramDoms( pSourceShape->maDiagramDoms ) +, mnZOrder(pSourceShape->mnZOrder) +, mnZOrderOff(pSourceShape->mnZOrderOff) {} Shape::~Shape() diff --git a/sd/qa/unit/data/pptx/smartart-accent-process.pptx b/sd/qa/unit/data/pptx/smartart-accent-process.pptx new file mode 100644 index 000000000000..8710e7f170a9 Binary files /dev/null and b/sd/qa/unit/data/pptx/smartart-accent-process.pptx differ diff --git a/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx b/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx new file mode 100644 index 000000000000..b2ef58f0bbb3 Binary files /dev/null and b/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx differ diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx index d561f138f16f..b83de20890b1 100644 --- a/sd/qa/unit/import-tests-smartart.cxx +++ b/sd/qa/unit/import-tests-smartart.cxx @@ -14,6 +14,8 @@ #include <com/sun/star/style/ParagraphAdjust.hpp> #include <com/sun/star/text/XText.hpp> +#include <comphelper/sequenceashashmap.hxx> + using namespace ::com::sun::star; class SdImportTestSmartArt : public SdModelTestBase @@ -29,6 +31,8 @@ public: void testVertialBoxList(); void testVertialBracketList(); void testTableList(); + void testAccentProcess(); + void testContinuousBlockProcess(); CPPUNIT_TEST_SUITE(SdImportTestSmartArt); @@ -42,6 +46,8 @@ public: CPPUNIT_TEST(testVertialBoxList); CPPUNIT_TEST(testVertialBracketList); CPPUNIT_TEST(testTableList); + CPPUNIT_TEST(testAccentProcess); + CPPUNIT_TEST(testContinuousBlockProcess); CPPUNIT_TEST_SUITE_END(); }; @@ -276,6 +282,126 @@ void SdImportTestSmartArt::testTableList() xDocShRef->DoClose(); } +void SdImportTestSmartArt::testAccentProcess() +{ + sd::DrawDocShellRef xDocShRef = loadURL( + m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-accent-process.pptx"), PPTX); + uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY); + CPPUNIT_ASSERT(xGroup.is()); + // 3 children: first pair, connector, second pair. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xGroup->getCount()); + uno::Reference<drawing::XShape> xGroupShape(xGroup, uno::UNO_QUERY); + CPPUNIT_ASSERT(xGroupShape.is()); + + // The pair is a parent (shape + text) and a child, so 3 shapes in total. + // The order is importent, first is at the back, last is at the front. + uno::Reference<drawing::XShapes> xFirstPair(xGroup->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstPair.is()); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xFirstPair->getCount()); + + uno::Reference<text::XText> xFirstParentText(xFirstPair->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstParentText.is()); + CPPUNIT_ASSERT_EQUAL(OUString("a"), xFirstParentText->getString()); + uno::Reference<drawing::XShape> xFirstParent(xFirstParentText, uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstParent.is()); + int nFirstParentTop = xFirstParent->getPosition().Y; + + uno::Reference<text::XText> xFirstChildText(xFirstPair->getByIndex(2), uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstChildText.is()); + CPPUNIT_ASSERT_EQUAL(OUString("b"), xFirstChildText->getString()); + uno::Reference<drawing::XShape> xFirstChild(xFirstChildText, uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstChildText.is()); + + { + uno::Reference<container::XEnumerationAccess> xParasAccess(xFirstChildText, uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParas = xParasAccess->createEnumeration(); + uno::Reference<beans::XPropertySet> xPara(xParas->nextElement(), uno::UNO_QUERY); + // Without the accompanying fix in place, this test would have failed + // with 'Expected: 0; Actual : 1270', i.e. there was a large + // unexpected left margin. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), + xPara->getPropertyValue("ParaLeftMargin").get<sal_Int32>()); + + uno::Reference<container::XIndexAccess> xRules(xPara->getPropertyValue("NumberingRules"), + uno::UNO_QUERY); + comphelper::SequenceAsHashMap aRule(xRules->getByIndex(1)); + CPPUNIT_ASSERT_EQUAL(OUString::fromUtf8(u8"•"), aRule["BulletChar"].get<OUString>()); + } + + int nFirstChildTop = xFirstChild->getPosition().Y; + int nFirstChildRight = xFirstChild->getPosition().X + xFirstChild->getSize().Width; + + // First child is below the first parent. + // Without the accompanying fix in place, this test would have failed with + // 'Expected less than: 3881, Actual : 3881', i.e. xFirstChild was not + // below xFirstParent (a good position is 9081). + CPPUNIT_ASSERT_LESS(nFirstChildTop, nFirstParentTop); + + // Make sure that we have an arrow shape between the two pairs. + uno::Reference<beans::XPropertySet> xArrow(xGroup->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT(xArrow.is()); + comphelper::SequenceAsHashMap aCustomShapeGeometry( + xArrow->getPropertyValue("CustomShapeGeometry")); + // Without the accompanying fix in place, this test would have failed, i.e. + // the custom shape lacked a type -> arrow was not visible. + CPPUNIT_ASSERT(aCustomShapeGeometry["Type"].has<OUString>()); + OUString aType = aCustomShapeGeometry["Type"].get<OUString>(); + CPPUNIT_ASSERT_EQUAL(OUString("ooxml-rightArrow"), aType); + + // Make sure that height of the arrow is less than its width. + uno::Reference<drawing::XShape> xArrowShape(xArrow, uno::UNO_QUERY); + CPPUNIT_ASSERT(xArrowShape.is()); + awt::Size aArrowSize = xArrowShape->getSize(); + CPPUNIT_ASSERT_LESS(aArrowSize.Width, aArrowSize.Height); + + uno::Reference<drawing::XShapes> xSecondPair(xGroup->getByIndex(2), uno::UNO_QUERY); + CPPUNIT_ASSERT(xSecondPair.is()); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xSecondPair->getCount()); + uno::Reference<text::XText> xSecondParentText(xSecondPair->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT(xFirstParentText.is()); + // Without the accompanying fix in place, this test would have failed with + // 'Expected: cc; Actual : c', i.e. non-first runs on data points were ignored. + CPPUNIT_ASSERT_EQUAL(OUString("cc"), xSecondParentText->getString()); + uno::Reference<drawing::XShape> xSecondParent(xSecondParentText, uno::UNO_QUERY); + CPPUNIT_ASSERT(xSecondParent.is()); + int nSecondParentLeft = xSecondParent->getPosition().X; + // Without the accompanying fix in place, this test would have failed with + // 'Expected less than: 12700; Actual : 18540', i.e. the "b" and "c" + // shapes overlapped. + CPPUNIT_ASSERT_LESS(nSecondParentLeft, nFirstChildRight); + + xDocShRef->DoClose(); +} + +void SdImportTestSmartArt::testContinuousBlockProcess() +{ + sd::DrawDocShellRef xDocShRef = loadURL( + m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/smartart-continuous-block-process.pptx"), + PPTX); + uno::Reference<drawing::XShapes> xGroup(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY); + CPPUNIT_ASSERT(xGroup.is()); + // 2 children: background, foreground. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xGroup->getCount()); + + uno::Reference<drawing::XShapes> xLinear(xGroup->getByIndex(1), uno::UNO_QUERY); + CPPUNIT_ASSERT(xLinear.is()); + // 3 children: A, B and C. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xLinear->getCount()); + + uno::Reference<text::XText> xA(xLinear->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xA.is()); + CPPUNIT_ASSERT_EQUAL(OUString("A"), xA->getString()); + uno::Reference<drawing::XShape> xAShape(xA, uno::UNO_QUERY); + CPPUNIT_ASSERT(xAShape.is()); + // Without the accompanying fix in place, this test would have failed: the + // theoretically correct value is 5462 mm100 (16933 is the total width, and + // need to divide that to 1, 0.5, 1, 0.5 and 1 units), while the old value + // was 4703 and the new one is 5461. + CPPUNIT_ASSERT_GREATER(static_cast<sal_Int32>(5000), xAShape->getSize().Width); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTestSmartArt); CPPUNIT_PLUGIN_IMPLEMENT(); commit 3423dca574d0a2d46d0399705cd7926f5c0aab62 Author: Lionel Elie Mamane <[email protected]> AuthorDate: Tue Dec 18 22:04:18 2018 +0100 Commit: Christian Lohmaier <[email protected]> CommitDate: Wed Dec 19 21:29:24 2018 +0100 postgresql: correctly implement XMultipleResults interface note that we implement it in a very limited way, since we will always return only a single result. Change-Id: Idc7927d1a6896b78f6de8627ba857982821ac629 Reviewed-on: https://gerrit.libreoffice.org/65382 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx index 865222cbcc83..a976d7e3dfc4 100644 --- a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx +++ b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx @@ -741,6 +741,10 @@ sal_Int32 PreparedStatement::getUpdateCount( ) } sal_Bool PreparedStatement::getMoreResults( ) { + Reference< XCloseable > lastResultSet = m_lastResultset; + if( lastResultSet.is() ) + lastResultSet->close(); + m_multipleResultUpdateCount = -1; return false; } diff --git a/connectivity/source/drivers/postgresql/pq_statement.cxx b/connectivity/source/drivers/postgresql/pq_statement.cxx index b50f9008c720..184b305aa1fd 100644 --- a/connectivity/source/drivers/postgresql/pq_statement.cxx +++ b/connectivity/source/drivers/postgresql/pq_statement.cxx @@ -939,6 +939,15 @@ sal_Int32 Statement::getUpdateCount( ) sal_Bool Statement::getMoreResults( ) { + // The PostgreSQL C interface always returns a single result, + // so we will never have multiple ones. + // Implicitly close the open resultset (if any) as per spec, + // and setup to signal "no more result, neither as resultset, + // nor as update count". + Reference< XCloseable > lastResultSetHolder = m_lastResultset; + if( lastResultSetHolder.is() ) + lastResultSetHolder->close(); + m_multipleResultUpdateCount = -1; return false; } commit d5fd1538890dee3ba1b6564a1e657046518f44d3 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Dec 19 12:19:46 2018 +0000 Commit: Eike Rathke <[email protected]> CommitDate: Wed Dec 19 17:03:08 2018 +0100 tdf#120859 bad column span in .ui leads to overlapping checkbuttons possibly(?) since... commit d999b55e28d0445df870f69b3a269964e3635def Date: Sun Dec 10 10:56:38 2017 +0530 tdf#114200 : added 'Trim space' feature in 'Text Import' made a checkbox to Trim extra white spaces from both ends while using seperators in 'Text Imort' Change-Id: I280c5daacdc823ea26d02890ddbc4685a5382e6c Reviewed-on: https://gerrit.libreoffice.org/65429 Tested-by: Jenkins Reviewed-by: Eike Rathke <[email protected]> diff --git a/sc/uiconfig/scalc/ui/textimportcsv.ui b/sc/uiconfig/scalc/ui/textimportcsv.ui index 106f7b6840d5..13cc41491347 100644 --- a/sc/uiconfig/scalc/ui/textimportcsv.ui +++ b/sc/uiconfig/scalc/ui/textimportcsv.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.20.4 --> +<!-- Generated with glade 3.22.1 --> <interface domain="sc"> <requires lib="gtk+" version="3.18"/> <requires lib="LibreOffice" version="1.0"/> @@ -311,7 +311,7 @@ <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> - <property name="width">4</property> + <property name="width">2</property> </packing> </child> <child> @@ -329,7 +329,7 @@ <packing> <property name="left_attach">2</property> <property name="top_attach">1</property> - <property name="width">4</property> + <property name="width">2</property> </packing> </child> <child> commit c1bff09047624898320767921f3bf01d95b8e0e2 Author: Caolán McNamara <[email protected]> AuthorDate: Tue Dec 18 12:44:37 2018 +0000 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Wed Dec 19 05:55:34 2018 +0100 Related: tdf#103884 remove dangling menubar command since... commit 08a43cc97ccf88faa9d3a04afc3aacd2c885a2d1 Date: Sat Oct 28 02:28:18 2017 +0200 related: tdf#103884 remove gltf/collada feature Change-Id: I7671746f2b33f8d4eae207448267d0284a3f9804 Reviewed-on: https://gerrit.libreoffice.org/65338 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 3d30a974ee06..4143da531483 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -6558,11 +6558,6 @@ <value xml:lang="en-US">Edit with External Tool</value> </prop> </node> - <node oor:name=".uno:Insert3DModel" oor:op="replace"> - <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">3D Model...</value> - </prop> - </node> <node oor:name=".uno:ClassificationApply" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Apply document classification</value> diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml index 84e264c58cb6..d2fdaf29a818 100644 --- a/sd/uiconfig/simpress/menubar/menubar.xml +++ b/sd/uiconfig/simpress/menubar/menubar.xml @@ -189,7 +189,6 @@ <menu:menu menu:id=".uno:ObjectMenu"> <menu:menupopup> <menu:menuitem menu:id=".uno:InsertMath"/> - <menu:menuitem menu:id=".uno:Insert3DModel"/> <menu:menuitem menu:id=".uno:InsertObject"/> </menu:menupopup> </menu:menu> commit 2421b42c006e1a9c9059c8a256685d2124f4e396 Author: Caolán McNamara <[email protected]> AuthorDate: Mon Dec 17 16:53:35 2018 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Tue Dec 18 09:56:50 2018 +0100 Resolves: tdf#122153 keep Execute for modal dialogs and not modeless ones cause you get one main loop running inside another, and everything is running inside the modeless dialog main loop until it exits. Change-Id: I45e92380288727669e287b62e84b815d5dc1960c Reviewed-on: https://gerrit.libreoffice.org/65282 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> (cherry picked from commit c821da3ecc3c309be2ec2db204a4c853b53fa979) Reviewed-on: https://gerrit.libreoffice.org/65292 diff --git a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx index 0e55cd318141..31e69c3ec0e9 100644 --- a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx +++ b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx @@ -265,7 +265,6 @@ void SAL_CALL XMLFilterDialogComponent::queryTermination( const EventObject& /* mpDialog->Close(); } - void SAL_CALL XMLFilterDialogComponent::notifyTermination( const EventObject& /* Event */ ) { // we are going down, so dispose us! @@ -276,35 +275,41 @@ void SAL_CALL XMLFilterDialogComponent::disposing( const EventObject& /* Source { } - void SAL_CALL XMLFilterDialogComponent::setTitle( const OUString& /* _rTitle */ ) { } - -sal_Int16 SAL_CALL XMLFilterDialogComponent::execute( ) +sal_Int16 SAL_CALL XMLFilterDialogComponent::execute() { ::SolarMutexGuard aGuard; - if( nullptr == mpDialog ) + bool bLaunch = false; + if (!mpDialog) { Reference< XComponent > xComp( this ); if (mxParent.is()) mpDialog = VclPtr<XMLFilterSettingsDialog>::Create(VCLUnoHelper::GetWindow(mxParent), mxContext); else mpDialog = VclPtr<XMLFilterSettingsDialog>::Create(nullptr, mxContext, Dialog::InitFlag::NoParent); - mpDialog->Execute(); + bLaunch = true; } - else if( !mpDialog->IsVisible() ) + + mpDialog->UpdateWindow(); + + if (!bLaunch) { - mpDialog->Execute(); + mpDialog->ToTop(); + return 0; } - mpDialog->ToTop(); + + mpDialog->StartExecuteAsync([this](sal_Int32) + { + mpDialog.reset(); + }); return 0; } - void SAL_CALL XMLFilterDialogComponent::initialize( const Sequence< Any >& aArguments ) { for(const Any& rArgument : aArguments) @@ -320,7 +325,6 @@ void SAL_CALL XMLFilterDialogComponent::initialize( const Sequence< Any >& aArgu } } - extern "C" { SAL_DLLPUBLIC_EXPORT void * xsltdlg_component_getFactory( diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx index 5ef80ab68062..d54ee2376305 100644 --- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx +++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx @@ -177,15 +177,13 @@ IMPL_LINK_NOARG(XMLFilterSettingsDialog, DoubleClickHdl_Impl, SvTreeListBox*, bo return false; } -short XMLFilterSettingsDialog::Execute() +void XMLFilterSettingsDialog::UpdateWindow() { m_pCtrlFilterList->GrabFocus(); disposeFilterList(); m_pFilterListBox->Clear(); initFilterList(); updateStates(); - - return ModelessDialog::Execute(); } void XMLFilterSettingsDialog::updateStates() diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx index 072c5d4542a5..7ca7d432582d 100644 --- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx +++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx @@ -92,7 +92,7 @@ public: DECL_LINK(SelectionChangedHdl_Impl, SvTreeListBox*, void ); DECL_LINK(DoubleClickHdl_Impl, SvTreeListBox*, bool ); - virtual short Execute() override; + void UpdateWindow(); void onNew(); void onEdit(); commit d9f02548f29678b8b7fc3a6c714ab144bd728005 Author: Samuel Mehrbrodt <[email protected]> AuthorDate: Thu Dec 13 19:58:36 2018 +0100 Commit: Thorsten Behrens <[email protected]> CommitDate: Sun Dec 16 01:30:09 2018 +0100 tdf#121962 Update fields after layout has been calculated Change-Id: Ic4a49494652dab416ddb1545da02eb8a7f533828 Reviewed-on: https://gerrit.libreoffice.org/65126 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <[email protected]> (cherry picked from commit 2bc1d00af6863d5c92389f1f4a99d2ab9bb73f81) Reviewed-on: https://gerrit.libreoffice.org/65201 Reviewed-by: Thorsten Behrens <[email protected]> diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 1db55d3c5831..6e9701c765eb 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -2630,8 +2630,6 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( bStateChanged = true; } - // #122919# Force field update before PDF export - pViewShell->SwViewShell::UpdateFields(true); if( bStateChanged ) pRenderDocShell->EnableSetModified(); @@ -2641,6 +2639,9 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount( pViewShell->CalcLayout(); pViewShell->CalcPagesForPrint( pViewShell->GetPageCount() ); + // #122919# Force field update before PDF export, but after layout init (tdf#121962) + pViewShell->SwViewShell::UpdateFields(true); + pViewShell->SetPDFExportOption( false ); // enable view again commit 73c3c3deff69ccd6a2f55952a911738496fb3c32 Author: Xisco Fauli <[email protected]> AuthorDate: Thu Dec 13 17:10:29 2018 +0100 Commit: Xisco Faulí <[email protected]> CommitDate: Fri Dec 14 18:44:57 2018 +0100 tdf#120750: Revert "tdf#96248 delete SfxPoolItems with Which Id >= 4000" This reverts commit c9493b344a9bd104d0a882f5e9407880c0c63c20. According to https://bugs.documentfoundation.org/show_bug.cgi?id=96248#c15 the asert was gone even before the patch... Anyway, better to have an assert than a crash Change-Id: I84389bf2e8e604f6967923c0eedaae3aec3455e6 Reviewed-on: https://gerrit.libreoffice.org/65115 Tested-by: Jenkins Reviewed-by: Jochen Nitschke <[email protected]> Reviewed-by: Xisco Faulí <[email protected]> (cherry picked from commit c5d0d424bd7e78455cb6f9578cf2425ac0787004) Reviewed-on: https://gerrit.libreoffice.org/65159 diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx index 76e9d90b485f..2ac29e44ada6 100644 --- a/svl/source/items/itempool.cxx +++ b/svl/source/items/itempool.cxx @@ -765,9 +765,16 @@ void SfxItemPool::Remove( const SfxPoolItem& rItem ) SfxPoolItem*& p = (*pItemArr)[nIdx]; assert(p == &rItem); - assert(p->GetRefCount() && "removing Item without ref"); + if ( p->GetRefCount() ) //! + ReleaseRef( *p ); + else + { + assert(false && "removing Item without ref"); + } - if (0 == ReleaseRef(*p)) + // FIXME: Hack, for as long as we have problems with the Outliner + // See other MI-REF + if ( 0 == p->GetRefCount() && nWhich < 4000 ) { DELETEZ(p); commit 546eadd66ebc319ad8c627186b47c5ead0747009 Author: Caolán McNamara <[email protected]> AuthorDate: Tue Nov 27 14:02:12 2018 +0000 Commit: Xisco Faulí <[email protected]> CommitDate: Fri Dec 14 16:42:32 2018 +0100 tdf#90333 Dictionaries Path Cannot Be Changed PathSettings::impl_storePath wants to be able to nil the Dictionaries path in the old copy of properties Change-Id: Id579914cfa8b459efce962d304e2f9d6185bd55f Reviewed-on: https://gerrit.libreoffice.org/64115 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> (cherry picked from commit f913bdf712b9e03506b1278e1142283af92125b1) Reviewed-on: https://gerrit.libreoffice.org/64145 (cherry picked from commit ce7bb69f8205bcbe36cba4c53bd110e07ef3e05d) Reviewed-on: https://gerrit.libreoffice.org/65088 Reviewed-by: Xisco Faulí <[email protected]> diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index 3d73cc94deb2..6b5729412f6e 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -1617,7 +1617,7 @@ </info> <value>$(insturl)/@LIBO_SHARE_FOLDER@/config</value> </prop> - <prop oor:name="Dictionary" oor:type="xs:string" oor:nillable="false"> + <prop oor:name="Dictionary" oor:type="xs:string"> <info> <desc>Contains the provided dictionaries.</desc> </info> commit 9ad4162af1d07fe1fda34b51c54e385bab27bd92 Author: Christian Lohmaier <[email protected]> AuthorDate: Wed Dec 12 22:49:12 2018 +0100 Commit: Gerrit Code Review <[email protected]> CommitDate: Wed Dec 12 21:53:51 2018 +0100 Update git submodules * Update translations from branch 'libreoffice-6-1' - new string for 6.1 Change-Id: I2dc1a9611f8fa9e8c8032c1c148e4d7de24b6851 diff --git a/translations b/translations index 4130dcdb31d4..64dc0c3d98e9 160000 --- a/translations +++ b/translations @@ -1 +1 @@ -Subproject commit 4130dcdb31d4df40af488c87ca4e88cc72d59791 +Subproject commit 64dc0c3d98e9e84196c25f7ec5e7aca3b5439b0e commit 6585ccbae80cb8f825cc657ad42f30644d9a4b38 Author: Lionel Elie Mamane <[email protected]> AuthorDate: Wed Dec 5 17:17:21 2018 +0100 Commit: Michael Stahl <[email protected]> CommitDate: Wed Dec 12 17:26:23 2018 +0100 address forward incompatibility of InputRequired default change commit fec8c14e960fbcd639a04d6c3354caff2d0bd365 changed the default value of InputRequired as read from the file; that is the value InputRequired ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
