This is an automated email from the git hooks/post-receive script. sweetshark-guest pushed a commit to branch ubuntu-wily-5.0 in repository libreoffice.
commit 4425f83babff7eeba7ff9eba89c7353d26411441 Author: Bjoern Michaelsen <[email protected]> Date: Tue May 19 17:04:16 2015 +0200 fix mailmerge without libreoffice-base scenario --- changelog | 6 ++ patches/mailmerge-base.diff | 162 ++++++++++++++++++++++++++++++++++++++++++++ patches/series | 1 + 3 files changed, 169 insertions(+) diff --git a/changelog b/changelog index 24784cb..d2b6ae0 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,9 @@ +libreoffice (1:4.4.3~rc2-0ubuntu1~vivid4) vivid; urgency=medium + + * Fix mailmerge without libreoffice-base scenario + + -- Bjoern Michaelsen <[email protected]> Tue, 19 May 2015 17:01:04 +0200 + libreoffice (1:4.4.3~rc2-0ubuntu1~vivid3) vivid; urgency=medium * add upstream hack to prevent crash on exit (LP: #1418551) diff --git a/patches/mailmerge-base.diff b/patches/mailmerge-base.diff new file mode 100644 index 0000000..318f540 --- /dev/null +++ b/patches/mailmerge-base.diff @@ -0,0 +1,162 @@ +From: Bjoern Michaelsen <[email protected]> +Date: Tue, 19 May 2015 13:58:13 +0200 +Subject: [PATCH] check for and handle missing base in mail merge (related: + fdo#33266) + +Change-Id: I3e362a873c28026cbecf005c07def1295aa920e0 + +Conflicts: + sw/source/uibase/app/apphdl.cxx + +--- + include/svtools/restartdialog.hxx | 5 +++- + svtools/source/dialogs/restartdialog.cxx | 3 +++ + svtools/uiconfig/ui/restartdialog.ui | 15 +++++++++++ + sw/source/uibase/app/apphdl.cxx | 45 +++++++++++++++++++++++++++++++- + 4 files changed, 66 insertions(+), 2 deletions(-) + +diff --git a/include/svtools/restartdialog.hxx b/include/svtools/restartdialog.hxx +--- a/include/svtools/restartdialog.hxx ++++ b/include/svtools/restartdialog.hxx +@@ -29,9 +29,12 @@ enum RestartReason { + RESTART_REASON_PDF_AS_STANDARD_JOB_FORMAT, + // For the modified default print job format to take effect, + // %PRODUCTNAME must be restarted. +- RESTART_REASON_BIBLIOGRAPHY_INSTALL ++ RESTART_REASON_BIBLIOGRAPHY_INSTALL, + // "For the bibliography to work properly, + // %PRODUCTNAME must be restarted." ++ RESTART_REASON_MAILMERGE_INSTALL ++ // "For the mail merge to work properly, ++ // %PRODUCTNAME must be restarted." + }; + + // Must be called with the solar mutex locked: +diff --git a/svtools/source/dialogs/restartdialog.cxx b/svtools/source/dialogs/restartdialog.cxx +--- a/svtools/source/dialogs/restartdialog.cxx ++++ b/svtools/source/dialogs/restartdialog.cxx +@@ -40,6 +40,9 @@ public: + case svtools::RESTART_REASON_BIBLIOGRAPHY_INSTALL: + get(reason_, "reason_bibliography_install"); + break; ++ case svtools::RESTART_REASON_MAILMERGE_INSTALL: ++ get(reason_, "reason_mailmerge_install"); ++ break; + default: + assert(false); // this cannot happen + } +diff --git a/svtools/uiconfig/ui/restartdialog.ui b/svtools/uiconfig/ui/restartdialog.ui +--- a/svtools/uiconfig/ui/restartdialog.ui ++++ b/svtools/uiconfig/ui/restartdialog.ui +@@ -101,6 +101,21 @@ + </packing> + </child> + <child> ++ <object class="GtkLabel" id="reason_mailmerge_install"> ++ <property name="can_focus">False</property> ++ <property name="no_show_all">True</property> ++ <property name="xalign">0</property> ++ <property name="label" translatable="yes">For the mail merge to work properly, %PRODUCTNAME must be restarted.</property> ++ <property name="wrap">True</property> ++ <property name="max_width_chars">50</property> ++ </object> ++ <packing> ++ <property name="expand">False</property> ++ <property name="fill">True</property> ++ <property name="position">2</property> ++ </packing> ++ </child> ++ <child> + <object class="GtkLabel" id="label"> + <property name="visible">True</property> + <property name="can_focus">False</property> +diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx +--- a/sw/source/uibase/app/apphdl.cxx ++++ b/sw/source/uibase/app/apphdl.cxx +@@ -21,17 +21,19 @@ + + #include <hintids.hxx> + ++#include <comphelper/processfactory.hxx> + #include <osl/diagnose.h> + #include <tools/link.hxx> + #include <svl/urihelper.hxx> + #include <unotools/pathoptions.hxx> +-#include <svtools/accessibilityoptions.hxx> + #include <sfx2/dispatch.hxx> + #include <sfx2/event.hxx> + #include <sfx2/objitem.hxx> + #include <svx/dataaccessdescriptor.hxx> + #include <svl/srchitem.hxx> ++#include <svtools/accessibilityoptions.hxx> + #include <svtools/colorcfg.hxx> ++#include <svtools/restartdialog.hxx> + #include <svl/eitem.hxx> + #include <svl/whiter.hxx> + #include <svl/isethint.hxx> +@@ -92,7 +94,9 @@ + #include <com/sun/star/beans/XPropertyContainer.hpp> + #include <com/sun/star/container/XChild.hpp> + #include <com/sun/star/sdbc/XConnection.hpp> ++#include <com/sun/star/sdb/TextConnectionSettings.hpp> + #include <com/sun/star/sdbc/XDataSource.hpp> ++#include <org/freedesktop/PackageKit/SyncDbusSessionHelper.hpp> + #include <swabstdlg.hxx> + + #include <vcl/status.hxx> +@@ -115,6 +119,24 @@ using namespace ::com::sun::star; + + #include <shells.hrc> + ++namespace ++{ ++ static bool lcl_hasAllComponentsAvailable() ++ { ++ try ++ { ++ return css::sdb::TextConnectionSettings::create(comphelper::getProcessComponentContext()).is(); ++ } ++ catch (css::uno::Exception & e) ++ { ++ SAL_INFO( ++ "sw.core", ++ "assuming Base to be missing; caught " << e.Message); ++ return false; ++ } ++ } ++} ++ + SFX_IMPL_INTERFACE(SwModule, SfxModule, SW_RES(RID_SW_NAME) ) + + void SwModule::InitInterface_Impl() +@@ -277,6 +299,27 @@ SwMailMergeWizardExecutor::~SwMailMergeWizardExecutor() + + void SwMailMergeWizardExecutor::ExecuteMailMergeWizard( const SfxItemSet * pArgs ) + { ++ if(!lcl_hasAllComponentsAvailable()) ++ { ++ try ++ { ++ using namespace org::freedesktop::PackageKit; ++ using namespace svtools; ++ css::uno::Reference< XSyncDbusSessionHelper > xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext())); ++ const css::uno::Sequence< OUString > vPackages{ "libreoffice-base" }; ++ OUString sInteraction; ++ xSyncDbusSessionHelper->InstallPackageNames(0, vPackages, sInteraction); ++ SolarMutexGuard aGuard; ++ executeRestartDialog(comphelper::getProcessComponentContext(), NULL, RESTART_REASON_MAILMERGE_INSTALL); ++ } ++ catch (const css::uno::Exception & e) ++ { ++ SAL_INFO( ++ "sw.core", ++ "trying to install LibreOffice Base, caught " << e.Message); ++ } ++ return; ++ } + if ( m_pView ) + { + OSL_FAIL("SwMailMergeWizardExecutor::ExecuteMailMergeWizard: Already executing the wizard!" ); +-- +1.9.1 + diff --git a/patches/series b/patches/series index 1055094..9e896da 100644 --- a/patches/series +++ b/patches/series @@ -30,3 +30,4 @@ g_strdup_printf_format.diff lp-753627-readd-updated-Ubuntu-brand-palette-colors.diff kubuntu_breeze-icons.diff lp-1418551.diff +mailmerge-base.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/libreoffice.git -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: https://lists.debian.org/[email protected]

