[Libreoffice-commits] core.git: Branch 'feature/msforms' - 865 commits - accessibility/source android/Bootstrap android/source animations/source autogen.sh avmedia/inc avmedia/source basctl/inc basctl/sdi basctl/source basctl/uiconfig basegfx/source basegfx/test basic/source bin/find-most-repeated-functions.py bin/find-unneeded-includes bin/ui-translatable.sh bridges/source canvas/source chart2/qa chart2/source cli_ure/source codemaker/source comphelper/source compilerplugins/clang compilerplugins/Makefile-clang.mk config_host.mk.in configmgr/source configure.ac connectivity/qa connectivity/registry connectivity/source connectivity/workben cppuhelper/source cppu/source cui/inc cui/source cui/uiconfig dbaccess/qa dbaccess/source desktop/inc desktop/qa desktop/source desktop/unx download.lst drawinglayer/source dtrans/source editeng/qa editeng/source embeddedobj/source embedserv/source extensions/inc extensions/source extensions/uiconfig external/cairo external/harfbuzz external/libatomic_ops exter nal/more_fonts external/pdfium external/poppler extras/Package_tplwizbitmap.mk extras/source filter/inc filter/source filter/uiconfig forms/source formula/source fpicker/source framework/inc framework/qa framework/source helpcontent2 i18nlangtag/source i18npool/source icon-themes/breeze icon-themes/breeze_dark icon-themes/breeze_svg icon-themes/colibre icon-themes/colibre_svg icon-themes/elementary icon-themes/elementary_svg icon-themes/karasa_jaga icon-themes/karasa_jaga_svg icon-themes/sifr icon-themes/sifr_dark icon-themes/sifr_svg icon-themes/tango icon-themes/tango_svg include/comphelper include/connectivity include/cppuhelper include/drawinglayer include/editeng include/filter include/i18nlangtag include/IwyuFilter_include.yaml include/LibreOfficeKit include/o3tl include/oox include/osl include/registry include/rtl include/sfx2 include/svl include/svtools include/svx include/test include/tools include/ucbhelper include/unotools include/vcl include/xmloff ios/CustomTarget_iOS_s etup.mk javaunohelper/source jvmfwk/plugins jvmfwk/README jvmfwk/source l10ntools/inc l10ntools/source librelogo/source libreofficekit/qa lingucomponent/Module_lingucomponent.mk lingucomponent/source odk/examples odk/Package_share_readme.mk odk/source offapi/com officecfg/registry oovbaapi/ooo oox/source package/source postprocess/CustomTarget_images.mk postprocess/CustomTarget_signing.mk postprocess/packimages postprocess/Rdb_services.mk pyuno/Module_pyuno.mk pyuno/PythonTest_pyuno_pytests_ssl.mk pyuno/PythonTest_pyuno_pytests_testcollections.mk pyuno/PythonTest_pyuno_pytests_testssl.mk pyuno/qa pyuno/source qadevOOo/Jar_OOoRunner.mk qadevOOo/objdsc qadevOOo/runner qadevOOo/tests readlicense_oo/CustomTarget_license.mk readlicense_oo/license readlicense_oo/Module_readlicense_oo.mk readlicense_oo/Package_files.mk readlicense_oo/Package_license.mk readlicense_oo/README reportbuilder/java reportdesign/source Repository.mk sal/android sal/osl sal/qa sc/CppunitTest_sc_autoformatsobj.mk s c/CppunitTest_sc_chartsobj.mk sc/CppunitTest_sc_datapilotfieldgroupobj.mk sc/CppunitTest_sc_drawpageobj.mk sc/CppunitTest_sc_pdf_export.mk sc/CppunitTest_sc_stylefamilyobj.mk sc/CppunitTest_sc_subtotaldescriptorbase.mk sc/CppunitTest_sc_subtotaldescriptorbaseobj.mk sc/CppunitTest_sc_tablecolumnsobj.mk sc/CppunitTest_sc_tablerowobj.mk sc/inc sc/IwyuFilter_sc.yaml sc/Library_sc.mk sc/Module_sc.mk scp2/source sc/qa scripting/Jar_ScriptProviderForBeanShell.mk scripting/java scripting/source sc/sdi sc/source sc/uiconfig sc/UIConfig_scalc.mk sd/CppunitTest_sd_activex_controls_tests.mk sd/CppunitTest_sd_filters_test.mk sd/CppunitTest_sd_html_export_tests.mk sd/CppunitTest_sd_import_tests_smartart.mk sdext/source sd/inc sd/IwyuFilter_sd.yaml sd/Library_sd.mk sd/qa sd/sdi sd/source sd/uiconfig sd/UIConfig_sdraw.mk sd/UIConfig_simpress.mk setup_native/source sfx2/inc sfx2/qa sfx2/source sfx2/uiconfig shell/inc shell/Library_recentfile.mk shell/Module_shell.mk shell/README shell/source slidesh ow/source solenv/bin solenv/clang-format solenv/CompilerTest_compilerplugins_clang.mk solenv/gbuild solenv/sanitizers soltools/cpp soltools/mkdepend starmath/inc starmath/IwyuFilter_starmath.yaml starmath/source starmath/uiconfig stoc/source svgio/CppunitTest_svgio_read.mk svgio/source svl/CppunitTest_svl_items.mk svl/CppunitTest_svl_lockfiles.mk svl/Library_svl.mk svl/Module_svl.mk svl/qa svl/source svtools/qa svtools/source svtools/uiconfig svx/inc svx/Library_svx.mk svx/qa svx/sdi svx/source svx/uiconfig sw/CppunitTest_sw_apitests.mk sw/CppunitTest_sw_filters_test.mk sw/CppunitTest_sw_macros_test.mk sw/CppunitTest_sw_mailmerge.mk sw/CppunitTest_sw_odfimport.mk sw/CppunitTest_sw_ooxmlencryption.mk sw/CppunitTest_sw_ooxmlexport8.mk sw/CppunitTest_sw_ooxmlfieldexport.mk sw/CppunitTest_sw_ooxmlimport2.mk sw/CppunitTest_sw_ooxmlimport.mk sw/CppunitTest_sw_ooxmllinks.mk sw/CppunitTest_sw_ooxmlw14export.mk sw/CppunitTest_sw_rtfimport.mk sw/CppunitTest_sw_uiwriter.mk sw/CppunitTest_sw_ww 8export.mk sw/CppunitTest_sw_ww8import.mk sw/inc sw/IwyuFilter_sw.yaml sw/Library_sw.mk sw/Library_swui.mk sw/ooxmlexport_setup.mk sw/qa sw/source sw/uiconfig sw/UIConfig_sglobal.mk sw/UIConfig_swform.mk sw/UIConfig_swreport.mk sw/UIConfig_swriter.mk sw/UIConfig_swxform.mk sysui/desktop test/inc test/Library_subsequenttest.mk test/Library_test.mk test/source toolkit/source tools/source ucb/source uitest/uitest uitest/writer_tests UnoControls/source unodevtools/source unotools/source unoxml/source uui/source vbahelper/source vcl/commonfuzzer.mk vcl/CppunitTest_vcl_complextext.mk vcl/CppunitTest_vcl_gen.mk vcl/CppunitTest_vcl_jpeg_read_write_test.mk vcl/inc vcl/ios vcl/Module_vcl.mk vcl/opengl vcl/osx vcl/Package_theme_definitions.mk vcl/qa vcl/qt5 vcl/quartz vcl/source vcl/uiconfig vcl/unx vcl/win winaccessibility/inc winaccessibility/source wizards/com wizards/source writerfilter/inc writerfilter/Library_writerfilter.mk writerfilter/README writerfilter/source writerperfect/source xm lhelp/source xmloff/source xmlscript/dtd xmlscript/source xmlsecurity/qa xmlsecurity/source

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Wed Apr 3 09:52:48 UTC 2019


Rebased ref, commits from common ancestor:
commit 994b41a6c69d20637dcb95894c385f5c0102d600
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Wed Apr 3 12:21:08 2019 +0900
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Wed Apr 3 11:41:14 2019 +0200

    tdf#124155 change "gradient tab page" - increment & angle slider
    
    Remove slider for increments as the increments should better be
    left to "auto" and rarely modified (setting a value means it will
    use a limitied amount of increments, but auto effectively means
    as much as it is needed and can use the native backend for
    drawing).
    
    OTOH use a slider for setting the "angle" as it is already present
    in hatch tab page. Angle needs a slider as it is usually one of
    the main properties of a gradient (especially linear).
    
    Increase the tab pages a bit (10px on every side) to have a bit of
    breating space for all the widgets.
    
    Change-Id: I66167fe2c97b53bc3627237279332bdd59fb03d7
    Reviewed-on: https://gerrit.libreoffice.org/70175
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index fc45f9922c9b..016b976ae374 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -378,6 +378,7 @@ private:
     std::unique_ptr<weld::MetricSpinButton> m_xMtrCenterY;
     std::unique_ptr<weld::Label> m_xFtAngle;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrAngle;
+    std::unique_ptr<weld::Scale> m_xSliderAngle;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrBorder;
     std::unique_ptr<weld::Scale> m_xSliderBorder;
     std::unique_ptr<ColorListBox> m_xLbColorFrom;
@@ -387,7 +388,6 @@ private:
     std::unique_ptr<SvxPresetListBox> m_xGradientLB;
     std::unique_ptr<weld::SpinButton> m_xMtrIncrement;
     std::unique_ptr<weld::CheckButton> m_xCbIncrement;
-    std::unique_ptr<weld::Scale> m_xSliderIncrement;
     std::unique_ptr<weld::Button> m_xBtnAdd;
     std::unique_ptr<weld::Button> m_xBtnModify;
     std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 83ffcb3c8a7e..c4d2c3e40864 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -158,6 +158,8 @@ void SvxAreaTabPage::SetOptimalSize(weld::DialogController* pController)
     }
     m_pFillTabPage.disposeAndClear();
 
+    aSize.extendBy(10, 10); // apply a bit of margin
+
     m_xFillTab->set_size_request(aSize.Width(), aSize.Height());
 }
 
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index d9cb5c3fddf7..529ce2e8ce81 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -60,6 +60,7 @@ SvxGradientTabPage::SvxGradientTabPage(TabPageParent pParent, const SfxItemSet&
     , m_xMtrCenterY(m_xBuilder->weld_metric_spin_button("centerymtr", FieldUnit::PERCENT))
     , m_xFtAngle(m_xBuilder->weld_label("angleft"))
     , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FieldUnit::DEGREE))
+    , m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
     , m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FieldUnit::PERCENT))
     , m_xSliderBorder(m_xBuilder->weld_scale("borderslider"))
     , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), pParent.GetFrameWeld()))
@@ -69,7 +70,6 @@ SvxGradientTabPage::SvxGradientTabPage(TabPageParent pParent, const SfxItemSet&
     , m_xGradientLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin")))
     , m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr"))
     , m_xCbIncrement(m_xBuilder->weld_check_button("autoincrement"))
-    , m_xSliderIncrement(m_xBuilder->weld_scale("incrementslider"))
     , m_xBtnAdd(m_xBuilder->weld_button("add"))
     , m_xBtnModify(m_xBuilder->weld_button("modify"))
     , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
@@ -103,10 +103,10 @@ SvxGradientTabPage::SvxGradientTabPage(TabPageParent pParent, const SfxItemSet&
     m_xLbGradientType->connect_changed( aLink2 );
     m_xCbIncrement->connect_toggled(LINK(this, SvxGradientTabPage, ChangeAutoStepHdl_Impl));
     m_xMtrIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedEditHdl_Impl));
-    m_xSliderIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
     m_xMtrCenterX->connect_value_changed( aLink );
     m_xMtrCenterY->connect_value_changed( aLink );
     m_xMtrAngle->connect_value_changed( aLink );
+    m_xSliderAngle->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
     m_xMtrBorder->connect_value_changed( aLink );
     m_xSliderBorder->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
     m_xMtrColorFrom->connect_value_changed( aLink );
@@ -231,7 +231,6 @@ bool SvxGradientTabPage::FillItemSet( SfxItemSet* rSet )
 void SvxGradientTabPage::Reset( const SfxItemSet* )
 {
     m_xMtrIncrement->set_value(DEFAULT_GRADIENTSTEP);
-    m_xSliderIncrement->set_value(DEFAULT_GRADIENTSTEP);
     ChangeGradientHdl_Impl();
 
     // determine state of the buttons
@@ -282,12 +281,10 @@ IMPL_LINK_NOARG( SvxGradientTabPage, ChangeAutoStepHdl_Impl, weld::ToggleButton&
 {
     if (m_xCbIncrement->get_active())
     {
-        m_xSliderIncrement->set_sensitive(false);
         m_xMtrIncrement->set_sensitive(false);
     }
     else
     {
-        m_xSliderIncrement->set_sensitive(true);
         m_xMtrIncrement->set_sensitive(true);
     }
     ModifiedHdl_Impl(m_xMtrIncrement.get());
@@ -299,10 +296,10 @@ void SvxGradientTabPage::ModifiedHdl_Impl( void const * pControl )
         m_xSliderBorder->set_value(m_xMtrBorder->get_value(FieldUnit::NONE));
     if (pControl == m_xSliderBorder.get())
         m_xMtrBorder->set_value(m_xSliderBorder->get_value(), FieldUnit::NONE);
-    if (pControl == m_xMtrIncrement.get())
-        m_xSliderIncrement->set_value(m_xMtrIncrement->get_value());
-    if (pControl == m_xSliderIncrement.get())
-        m_xMtrIncrement->set_value(m_xSliderIncrement->get_value());
+    if (pControl == m_xMtrAngle.get())
+        m_xSliderAngle->set_value(m_xMtrAngle->get_value(FieldUnit::NONE));
+    if (pControl == m_xSliderAngle.get())
+        m_xMtrAngle->set_value(m_xSliderAngle->get_value(), FieldUnit::NONE);
 
     css::awt::GradientStyle eXGS = static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active());
 
@@ -543,15 +540,12 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
         {
             m_xCbIncrement->set_state(TRISTATE_TRUE);
             m_xMtrIncrement->set_sensitive(false);
-            m_xSliderIncrement->set_sensitive(false);
         }
         else
         {
             m_xCbIncrement->set_state(TRISTATE_FALSE);
             m_xMtrIncrement->set_sensitive(true);
             m_xMtrIncrement->set_value( nValue );
-            m_xSliderIncrement->set_sensitive(true);
-            m_xSliderIncrement->set_value(nValue);
         }
         m_xLbGradientType->set_active(
             sal::static_int_cast< sal_Int32 >( eXGS ) );
@@ -564,6 +558,7 @@ void SvxGradientTabPage::ChangeGradientHdl_Impl()
         m_xLbColorTo->SelectEntry( pGradient->GetEndColor() );
 
         m_xMtrAngle->set_value(pGradient->GetAngle() / 10, FieldUnit::NONE); // should be changed in resource
+        m_xSliderAngle->set_value(pGradient->GetAngle() / 10);
         m_xMtrBorder->set_value(pGradient->GetBorder(), FieldUnit::NONE);
         m_xSliderBorder->set_value(pGradient->GetBorder());
         m_xMtrCenterX->set_value(pGradient->GetXOffset(), FieldUnit::NONE);
diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui
index 3fa4b9332c6f..a3b3d751caf9 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -249,7 +249,6 @@
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">incrementmtr</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.43999999761581421</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -258,20 +257,6 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkScale" id="incrementslider">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="hexpand">True</property>
-                        <property name="adjustment">adjustment2</property>
-                        <property name="round_digits">1</property>
-                        <property name="draw_value">False</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">2</property>
-                      </packing>
-                    </child>
-                    <child>
                       <object class="GtkSpinButton" id="incrementmtr">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
@@ -280,7 +265,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
+                        <property name="top_attach">1</property>
                       </packing>
                     </child>
                     <child>
@@ -289,6 +274,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
+                        <property name="hexpand">True</property>
                         <property name="use_underline">True</property>
                         <property name="xalign">0</property>
                         <property name="draw_indicator">True</property>
@@ -296,7 +282,6 @@
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">1</property>
-                        <property name="width">2</property>
                       </packing>
                     </child>
                   </object>
@@ -320,7 +305,6 @@
                         <property name="label" translatable="yes" context="gradientpage|centerft">Center ( X / Y ):</property>
                         <property name="use_underline">True</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.43999999761581421</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
@@ -373,9 +357,6 @@
                   </packing>
                 </child>
                 <child>
-                  <placeholder/>
-                </child>
-                <child>
                   <object class="GtkGrid" id="grid3">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
@@ -390,11 +371,10 @@
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">bordermtr</property>
                         <property name="xalign">0</property>
-                        <property name="yalign">0.43999999761581421</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
+                        <property name="top_attach">2</property>
                         <property name="width">2</property>
                       </packing>
                     </child>
@@ -410,7 +390,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">2</property>
+                        <property name="top_attach">3</property>
                       </packing>
                     </child>
                     <child>
@@ -422,7 +402,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
+                        <property name="top_attach">3</property>
                       </packing>
                     </child>
                     <child>
@@ -433,7 +413,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">0</property>
+                        <property name="top_attach">1</property>
                       </packing>
                     </child>
                     <child>
@@ -444,12 +424,12 @@
                         <property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">anglemtr</property>
-                        <property name="xalign">1</property>
-                        <property name="yalign">0.43999999761581421</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">0</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
@@ -460,7 +440,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">6</property>
+                        <property name="top_attach">7</property>
                       </packing>
                     </child>
                     <child>
@@ -470,14 +450,13 @@
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <property name="draw_indicator">True</property>
-                        <property name="label" translatable="no"></property>
                         <child>
                           <placeholder/>
                         </child>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">6</property>
+                        <property name="top_attach">7</property>
                       </packing>
                     </child>
                     <child>
@@ -491,7 +470,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">5</property>
+                        <property name="top_attach">6</property>
                         <property name="width">2</property>
                       </packing>
                     </child>
@@ -502,14 +481,13 @@
                         <property name="receives_default">False</property>
                         <property name="xalign">0</property>
                         <property name="draw_indicator">True</property>
-                        <property name="label" translatable="no"></property>
                         <child>
                           <placeholder/>
                         </child>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">4</property>
+                        <property name="top_attach">5</property>
                       </packing>
                     </child>
                     <child>
@@ -520,7 +498,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
-                        <property name="top_attach">4</property>
+                        <property name="top_attach">5</property>
                       </packing>
                     </child>
                     <child>
@@ -534,15 +512,29 @@
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
-                        <property name="top_attach">3</property>
+                        <property name="top_attach">4</property>
                         <property name="width">2</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkScale" id="angleslider">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="adjustment">angleadjustment</property>
+                        <property name="fill_level">0</property>
+                        <property name="draw_value">False</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">4</property>
+                    <property name="position">3</property>
                   </packing>
                 </child>
                 <child>
@@ -608,7 +600,7 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">9</property>
+                    <property name="position">4</property>
                   </packing>
                 </child>
               </object>
diff --git a/include/tools/gen.hxx b/include/tools/gen.hxx
index 5d6ff5ea66b8..0d9a81ebdcee 100644
--- a/include/tools/gen.hxx
+++ b/include/tools/gen.hxx
@@ -197,6 +197,12 @@ public:
     void            setWidth(long nWidth)  { nA = nWidth; }
     void            setHeight(long nHeight)  { nB = nHeight; }
 
+    void extendBy(long x, long y)
+    {
+        nA += x;
+        nB += y;
+    }
+
     Pair const &    toPair() const { return *this; }
     Pair &          toPair() { return *this; }
 
diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr
index 1ee15b260d09..c789c27b59a0 100644
--- a/solenv/sanitizers/ui/cui.suppr
+++ b/solenv/sanitizers/ui/cui.suppr
@@ -202,6 +202,7 @@ cui/uiconfig/ui/fmsearchdialog.ui://GtkLabel[@id='ftRecord'] orphan-label
 cui/uiconfig/ui/fmsearchdialog.ui://GtkLabel[@id='ftHint'] orphan-label
 cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='incrementslider'] no-labelled-by
 cui/uiconfig/ui/gradientpage.ui://GtkLabel[@id='centerft'] orphan-label
+cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='angleslider'] no-labelled-by
 cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='borderslider'] no-labelled-by
 cui/uiconfig/ui/effectspage.ui://GtkLabel[@id='label1'] orphan-label
 cui/uiconfig/ui/effectspage.ui://GtkLabel[@id='label2'] orphan-label
commit b81ea32945d553a712d651fe472ece921ac64d10
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Apr 2 16:48:56 2019 +0100
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Apr 3 09:53:47 2019 +0200

    tdf#124500: convert short path names from drag-n-drop to long names
    
    ... otherwise link URLs with short names like 2E23~1.PNG would be
    inaccessible from the network, or after copy to a different directory
    or system, where the autogenerated short name might be different.
    
    Change-Id: Ice0b2fa205a25aba232e960cad2615a527cba05a
    Reviewed-on: https://gerrit.libreoffice.org/70145
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx b/sw/source/uibase/dochdl/swdtflvr.cxx
index e74e3b7af3ca..ab949d3635be 100644
--- a/sw/source/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/uibase/dochdl/swdtflvr.cxx
@@ -72,6 +72,13 @@
 #include <unotools/streamwrap.hxx>
 #include <vcl/graphicfilter.hxx>
 
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <o3tl/char16_t2wchar_t.hxx>
+#include <osl/file.hxx>
+#endif
+
 #include <svx/unomodel.hxx>
 #include <fmturl.hxx>
 #include <fmtinfmt.hxx>
@@ -2469,9 +2476,33 @@ bool SwTransferable::PasteGrf( TransferableDataHelper& rData, SwWrtShell& rSh,
                 OUString sDesc;
                 SwTransferable::CheckForURLOrLNKFile( rData, sText, &sDesc );
 
-                aBkmk = INetBookmark(
-                        URIHelper::SmartRel2Abs(INetURLObject(), sText, Link<OUString *, bool>(), false ),
-                        sDesc );
+                sText = URIHelper::SmartRel2Abs(INetURLObject(), sText, Link<OUString*, bool>(),
+                    false);
+
+#ifdef _WIN32
+                // Now that the path could be modified after SwTransferable::CheckForURLOrLNKFile,
+                // where it could have been converted to URL, and made sure it's actually converted
+                // to URL in URIHelper::SmartRel2Abs, we can finally convert file: URL back to
+                // system path to make sure we don't use short path.
+                // It looks not optimal, when we could apply GetLongPathNameW right to the original
+                // pasted filename. But I don't know if (1) all arriving strings are system paths;
+                // and (2) if SwTransferable::CheckForURLOrLNKFile could result in a different short
+                // path, so taking a safe route.
+                if (sText.startsWithIgnoreAsciiCase("file:"))
+                {
+                    // tdf#124500: Convert short path to long path which should be used in links
+                    OUString sSysPath;
+                    osl::FileBase::getSystemPathFromFileURL(sText, sSysPath);
+                    std::unique_ptr<sal_Unicode[]> aBuf(new sal_Unicode[32767]);
+                    DWORD nCopied = GetLongPathNameW(o3tl::toW(sSysPath.getStr()),
+                                                     o3tl::toW(aBuf.get()), 32767);
+                    if (nCopied && nCopied < 32767)
+                        sText = URIHelper::SmartRel2Abs(INetURLObject(), aBuf.get(),
+                                                        Link<OUString*, bool>(), false);
+                }
+#endif
+
+                aBkmk = INetBookmark(sText, sDesc);
                 bCheckForGrf = true;
                 bCheckForImageMap = SwPasteSdr::Replace == nAction;
             }
commit 728f074ab672469af933d492843230bd5c5bd0cd
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Apr 2 20:26:53 2019 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Apr 3 09:51:21 2019 +0200

    Related: tdf#124148 null-deref on clicking inside empty listbox
    
    since...
    
    commit ce9dab8c161e29769131cec741a6a9cceec8552d
    Date:   Thu Mar 28 17:43:29 2019 +0900
    
        tdf#124148 add configurable margin for the listbox pop-up list
    
    Change-Id: Id0bedb86f4fb74aff230d65f1e4371959814fd0f
    Reviewed-on: https://gerrit.libreoffice.org/70151
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx
index 35c2ee74d06b..e2a78a1383f0 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -810,9 +810,11 @@ sal_Int32 ImplListBoxWindow::GetEntryPosForPoint( const Point& rPoint ) const
 
     sal_Int32 nSelect = mnTop;
     const ImplEntryType* pEntry = mpEntryList->GetEntryPtr( nSelect );
-    long nEntryHeight = pEntry->getHeightWithMargin();
-    while( pEntry && rPoint.Y() > nEntryHeight + nY )
+    while (pEntry)
     {
+        long nEntryHeight = pEntry->getHeightWithMargin();
+        if (rPoint.Y() <= nEntryHeight + nY)
+            break;
         nY += nEntryHeight;
         pEntry = mpEntryList->GetEntryPtr( ++nSelect );
     }
commit 86ba9cdc69976d9cdb7d6ec1a527012647abf10d
Author:     Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Fri Mar 29 18:34:22 2019 +0530
Commit:     Dennis Francis <dennis.francis at collabora.com>
CommitDate: Wed Apr 3 09:42:17 2019 +0200

    tdf#120270 : ScUndoDragDrop - Notifying listeners of the area...
    
    is not enough. This needs to be done recursively, ie notify the
    listeners, notify the listeners of the listeners and so on.
    ScDocument::BroadcastCells() seems to do exactly that, so lets
    use it here intead of collect+notify.
    
    Change-Id: Ifa273fea5f08af661958cd9b4c3d01d9044b8727
    Reviewed-on: https://gerrit.libreoffice.org/70044
    Reviewed-by: Dennis Francis <dennis.francis at collabora.com>
    Tested-by: Dennis Francis <dennis.francis at collabora.com>

diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 1393a8bff013..892febbaeb0c 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -1314,22 +1314,6 @@ void ScUndoDragDrop::DoUndo( ScRange aRange )
     maPaintRanges.Join(aPaintRange);
 }
 
-namespace {
-
-class DataChangeNotifier
-{
-    ScHint const maHint;
-public:
-    DataChangeNotifier() : maHint(SfxHintId::ScDataChanged, ScAddress()) {}
-
-    void operator() ( SvtListener* p )
-    {
-        p->Notify(maHint);
-    }
-};
-
-}
-
 void ScUndoDragDrop::Undo()
 {
     mnPaintExtFlags = 0;
@@ -1382,17 +1366,7 @@ void ScUndoDragDrop::Undo()
         DoUndo(aDestRange);
         DoUndo(aSrcRange);
 
-        // Notify all area listeners whose listened areas are partially moved, to
-        // recalculate.
-        std::vector<SvtListener*> aListeners;
-        rDoc.CollectAllAreaListeners(aListeners, aSrcRange, sc::AreaPartialOverlap);
-
-        // Remove any duplicate listener entries.  We must ensure that we notify
-        // each unique listener only once.
-        std::sort(aListeners.begin(), aListeners.end());
-        aListeners.erase(std::unique(aListeners.begin(), aListeners.end()), aListeners.end());
-
-        std::for_each(aListeners.begin(), aListeners.end(), DataChangeNotifier());
+        rDoc.BroadcastCells(aSrcRange, SfxHintId::ScDataChanged, false);
     }
     else
         DoUndo(aDestRange);
commit 8cfa7f4dc00f3dd37e57917ef25c806b0e9e6e73
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Mar 27 14:52:05 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Apr 3 09:26:35 2019 +0200

    add more append methods to *StringBuffer
    
    which performs the append without needing the creation of a temporary
    *String
    
    Change-Id: If9ad3222275f26659db2e7df8d34f068977c4d17
    Reviewed-on: https://gerrit.libreoffice.org/69826
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/bridges/source/cpp_uno/msvc_win32_intel/except.cxx b/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
index 4f761ef3ed20..9f7bc81d71d1 100644
--- a/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
@@ -52,7 +52,7 @@ static inline OUString toUNOname( OUString const & rRTTIname ) throw ()
     while (nPos > 0)
     {
         sal_Int32 n = aStr.lastIndexOf( '@', nPos );
-        aRet.append( aStr.copy( n +1, nPos -n -1 ) );
+        aRet.append( aStr, n +1, nPos -n -1 );
         if (n >= 0)
         {
             aRet.append( '.' );
@@ -70,7 +70,7 @@ static inline OUString toRTTIname( OUString const & rUNOname ) throw ()
     while (nPos > 0)
     {
         sal_Int32 n = rUNOname.lastIndexOf( '.', nPos );
-        aRet.append( rUNOname.copy( n +1, nPos -n -1 ) );
+        aRet.append( rUNOname, n +1, nPos -n -1 );
         aRet.append( '@' );
         nPos = n;
     }
diff --git a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
index 385f5f5cb9ed..0961f618aada 100644
--- a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
@@ -275,7 +275,7 @@ static OUString toUNOname(
     while (nPos > 0)
     {
         sal_Int32 n = aStr.lastIndexOf( '@', nPos );
-        aRet.append( aStr.copy( n +1, nPos -n -1 ) );
+        aRet.append( aStr, n +1, nPos -n -1 );
         if (n >= 0)
         {
             aRet.append( '.' );
@@ -295,7 +295,7 @@ static OUString toRTTIname(
     while (nPos > 0)
     {
         sal_Int32 n = rUNOname.lastIndexOf( '.', nPos );
-        aRet.append( rUNOname.copy( n +1, nPos -n -1 ) );
+        aRet.append( rUNOname, n +1, nPos -n -1 );
         aRet.append( '@' );
         nPos = n;
     }
diff --git a/include/rtl/strbuf.hxx b/include/rtl/strbuf.hxx
index c674f34d997c..81100919353b 100644
--- a/include/rtl/strbuf.hxx
+++ b/include/rtl/strbuf.hxx
@@ -482,6 +482,26 @@ public:
     }
 
     /**
+        Appends a portion of the string to this string buffer.
+
+        The characters of the <code>OUString</code> argument are appended, in
+        order, to the contents of this string buffer, increasing the
+        length of this string buffer by the length of the argument.
+
+        @param   str        a string.
+        @param   beginIndex the beginning index, inclusive.
+        @param   count      the number of characters.
+        @return  this string buffer.
+        @since Libreoffice 6.4
+     */
+    OStringBuffer & append(const OString &str, sal_Int32 beginIndex, sal_Int32 count)
+    {
+        assert( count == 0 || (beginIndex >= 0 && beginIndex < str.getLength()) );
+        assert( beginIndex <= str.getLength() - count );
+        return append( str.getStr() + beginIndex, count );
+    }
+
+    /**
         Appends the string representation of the <code>char</code> array
         argument to this string buffer.
 
diff --git a/include/rtl/ustrbuf.hxx b/include/rtl/ustrbuf.hxx
index 62ba9f6b2cd7..9f3c8d1650ff 100644
--- a/include/rtl/ustrbuf.hxx
+++ b/include/rtl/ustrbuf.hxx
@@ -536,6 +536,26 @@ public:
         return append( str.getStr(), str.getLength() );
     }
 
+    /**
+        Appends a portion of the string to this string buffer.
+
+        The characters of the <code>OUString</code> argument are appended, in
+        order, to the contents of this string buffer, increasing the
+        length of this string buffer by the length of the argument.
+
+        @param   str        a string.
+        @param   beginIndex the beginning index, inclusive.
+        @param   count      the number of characters.
+        @return  this string buffer.
+        @since Libreoffice 6.4
+     */
+    OUStringBuffer & append(const OUString &str, sal_Int32 beginIndex, sal_Int32 count)
+    {
+        assert( count == 0 || (beginIndex >= 0 && beginIndex < str.getLength()) );
+        assert( beginIndex <= str.getLength() - count );
+        return append( str.getStr() + beginIndex, count );
+    }
+
 #if defined LIBO_INTERNAL_ONLY
     OUStringBuffer & append(std::u16string_view sv) {
         if (sv.size() > sal_uInt32(std::numeric_limits<sal_Int32>::max())) {
diff --git a/l10ntools/source/helper.cxx b/l10ntools/source/helper.cxx
index c16d104b34e9..ba1598de2452 100644
--- a/l10ntools/source/helper.cxx
+++ b/l10ntools/source/helper.cxx
@@ -21,7 +21,7 @@ OString escapeAll(
         sal_Int32 nUnEscapedOne = rUnEscaped.indexOf(rText[nIndex]);
         if( nUnEscapedOne != -1 )
         {
-            sReturn.append(rEscaped.copy(nUnEscapedOne*2,2));
+            sReturn.append(rEscaped, nUnEscapedOne*2, 2);
         }
         else
             sReturn.append(rText[nIndex]);
diff --git a/sc/source/filter/dif/difimp.cxx b/sc/source/filter/dif/difimp.cxx
index 4040f4adb67e..09121ed7c5fc 100644
--- a/sc/source/filter/dif/difimp.cxx
+++ b/sc/source/filter/dif/difimp.cxx
@@ -357,7 +357,7 @@ TOPIC DifParser::GetNextTopic()
                 OSL_ENSURE( aLine.getLength() >= 2,
                     "+GetNextTopic(): <String> is too short!" );
                 if( aLine.getLength() > 2 )
-                    m_aData.append(aLine.copy(1, aLine.getLength() - 2));
+                    m_aData.append(aLine, 1, aLine.getLength() - 2);
                 else
                     m_aData.truncate();
                 eS = S_END;
@@ -556,7 +556,7 @@ DATASET DifParser::GetNextDataset()
                                     }
                                     else if( pLine[nLineLength - 1] == '"' )
                                     {
-                                        m_aData.append(aLine.copy(0, nLineLength -1));
+                                        m_aData.append(aLine, 0, nLineLength -1);
                                         lcl_DeEscapeQuotesDif(m_aData);
                                         eRet = D_STRING;
                                     }
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index daa9791dba3c..c7d6954995d6 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -1969,7 +1969,7 @@ OUString SvNumberformat::StripNewCurrencyDelimiters( const OUString& rStr )
         sal_Int32 nEnd;
         if ( (nEnd = GetQuoteEnd( rStr, nPos )) >= 0 )
         {
-            aTmp.append(rStr.copy( nStartPos, ++nEnd - nStartPos ));
+            aTmp.append(rStr, nStartPos, ++nEnd - nStartPos );
             nStartPos = nEnd;
         }
         else
diff --git a/sw/source/filter/ascii/ascatr.cxx b/sw/source/filter/ascii/ascatr.cxx
index ddcc22637923..91507a698928 100644
--- a/sw/source/filter/ascii/ascatr.cxx
+++ b/sw/source/filter/ascii/ascatr.cxx
@@ -312,14 +312,14 @@ static Writer& OutASC_SwTextNode( Writer& rWrt, SwContentNode& rNode )
             {
                 if (nNextAttr <= curRedline.first)
                 {
-                    buf.append(aStr.copy(nStrPos, nNextAttr - nStrPos));
+                    buf.append(aStr, nStrPos, nNextAttr - nStrPos);
                     break;
                 }
                 else if (nStrPos < curRedline.second)
                 {
                     if (nStrPos < curRedline.first)
                     {
-                        buf.append(aStr.copy(nStrPos, curRedline.first - nStrPos));
+                        buf.append(aStr, nStrPos, curRedline.first - nStrPos);
                     }
                     if (curRedline.second <= nNextAttr)
                     {
diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx
index decd1041a547..9a8b463783ba 100644
--- a/tools/source/inet/inetmime.cxx
+++ b/tools/source/inet/inetmime.cxx
@@ -1350,9 +1350,9 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody)
                                         bDone = true;
                                         break;
                                     }
-                                    sText.append(rBody.copy(
+                                    sText.append(rBody,
                                         (pEncodedTextCopyBegin - pBegin),
-                                        (q - 1 - pEncodedTextCopyBegin)));
+                                        (q - 1 - pEncodedTextCopyBegin));
                                     sText.append(sal_Char(nDigit1 << 4 | nDigit2));
                                     q += 2;
                                     pEncodedTextCopyBegin = q;
@@ -1361,18 +1361,18 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody)
 
                                 case '?':
                                     if (q - pEncodedTextBegin > 1)
-                                        sText.append(rBody.copy(
+                                        sText.append(rBody,
                                             (pEncodedTextCopyBegin - pBegin),
-                                            (q - 1 - pEncodedTextCopyBegin)));
+                                            (q - 1 - pEncodedTextCopyBegin));
                                     else
                                         bEncodedWord = false;
                                     bDone = true;
                                     break;
 
                                 case '_':
-                                    sText.append(rBody.copy(
+                                    sText.append(rBody,
                                         (pEncodedTextCopyBegin - pBegin),
-                                        (q - 1 - pEncodedTextCopyBegin)));
+                                        (q - 1 - pEncodedTextCopyBegin));
                                     sText.append(' ');
                                     pEncodedTextCopyBegin = q;
                                     break;
diff --git a/ucb/source/ucp/webdav-neon/NeonPropFindRequest.cxx b/ucb/source/ucp/webdav-neon/NeonPropFindRequest.cxx
index 531ab229f976..67020fa20272 100644
--- a/ucb/source/ucp/webdav-neon/NeonPropFindRequest.cxx
+++ b/ucb/source/ucp/webdav-neon/NeonPropFindRequest.cxx
@@ -64,12 +64,12 @@ namespace
                  inXML[ end - 1 ] == '/' )
             {
                 // copy from original buffer - preserve case.
-                buf.append( in.copy( start, end - start ) );
+                buf.append( in, start, end - start );
             }
             else
             {
                 // copy from original buffer - preserve case.
-                buf.append( in.copy( start, end - start + 4 ) );
+                buf.append( in, start, end - start + 4 );
             }
             start = end + 4;
             end = inXML.indexOf( "dav:", start );
diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx
index 1a7b81c6f311..38530e1a6946 100644
--- a/xmloff/source/style/xmlnumfi.cxx
+++ b/xmloff/source/style/xmlnumfi.cxx
@@ -2018,9 +2018,9 @@ void SvXMLNumFormatContext::AddCurrency( const OUString& rContent, LanguageType
                 //  remove both quotes from aFormatCode
                 OUString aOld = aFormatCode.makeStringAndClear();
                 if ( nFirst > 0 )
-                    aFormatCode.append( aOld.copy( 0, nFirst ) );
+                    aFormatCode.append( aOld, 0, nFirst );
                 if ( nLength > nFirst + 2 )
-                    aFormatCode.append( aOld.copy( nFirst + 1, nLength - nFirst - 2 ) );
+                    aFormatCode.append( aOld, nFirst + 1, nLength - nFirst - 2 );
             }
         }
     }
commit 93f1c3665fcdc31c36078f179ac37fd69d3ebb00
Author:     Gabor Kelemen <kelemen.gabor2 at nisz.hu>
AuthorDate: Sun Mar 31 22:26:42 2019 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Apr 3 09:07:59 2019 +0200

    find-unneeded-includes: filter out boost/variant.hpp
    
    As seen in include/sfx2/sidebar/Paint.hxx
    this replacement is not needed
    
    Change-Id: Idba8014a7effaec69c06891657cbd62546b7ac09
    Reviewed-on: https://gerrit.libreoffice.org/70026
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/bin/find-unneeded-includes b/bin/find-unneeded-includes
index c902a6172ac9..e20888b34042 100755
--- a/bin/find-unneeded-includes
+++ b/bin/find-unneeded-includes
@@ -82,6 +82,8 @@ def ignoreRemoval(include, toAdd, absFileName, moduleRules):
         return True
     if include == "boost/intrusive_ptr.hpp" and "boost/smart_ptr/intrusive_ptr.hpp" in toAdd:
         return True
+    if include == "boost/variant.hpp" and "boost/variant/variant.hpp" in toAdd:
+        return True
 
     # Avoid .hxx to .h proposals in basic css/uno/* API
     unoapi = {
commit 66c29fd202f22a36edbb929ddcc1f1cadb0a6e8f
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Tue Apr 2 21:14:36 2019 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Apr 3 09:05:15 2019 +0200

    pdfium: avoid problems with SetForm using WIN32_LEAN_AND_MEAN
    
    So that it does not get defined to SetFormA() or SetFormW() and still
    requires no patching.
    
    Change-Id: I4364b02306633733d8536ebd8d7d42273dfeef74
    Reviewed-on: https://gerrit.libreoffice.org/70150
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
index c53f4502285f..1db282edb608 100644
--- a/external/pdfium/Library_pdfium.mk
+++ b/external/pdfium/Library_pdfium.mk
@@ -27,6 +27,7 @@ $(eval $(call gb_Library_add_defs,pdfium,\
     -DUSE_SYSTEM_ICUUC \
     -DMEMORY_TOOL_REPLACES_ALLOCATOR \
     -DUNICODE \
+    -DWIN32_LEAN_AND_MEAN \
 ))
 
 # Don't show warnings upstream doesn't care about.
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
index 0a4476ce1300..a1ec25e8b223 100644
--- a/external/pdfium/build.patch.1
+++ b/external/pdfium/build.patch.1
@@ -84,60 +84,3 @@ index 7050f695b..916afed8b 100644
  };
  
  #endif  // CORE_FPDFDOC_CPDF_FILESPEC_H_
-diff --git a/fpdfsdk/cpdf_annotcontext.cpp b/fpdfsdk/cpdf_annotcontext.cpp
-index 0beebe1bf..4aeefb04e 100644
---- a/fpdfsdk/cpdf_annotcontext.cpp
-+++ b/fpdfsdk/cpdf_annotcontext.cpp
-@@ -21,7 +21,7 @@ CPDF_AnnotContext::CPDF_AnnotContext(CPDF_Dictionary* pAnnotDict,
- 
- CPDF_AnnotContext::~CPDF_AnnotContext() = default;
- 
--void CPDF_AnnotContext::SetForm(CPDF_Stream* pStream) {
-+void CPDF_AnnotContext::SetForm_(CPDF_Stream* pStream) {
-   if (!pStream)
-     return;
- 
-diff --git a/fpdfsdk/cpdf_annotcontext.h b/fpdfsdk/cpdf_annotcontext.h
-index cab81e7d4..ce24fff52 100644
---- a/fpdfsdk/cpdf_annotcontext.h
-+++ b/fpdfsdk/cpdf_annotcontext.h
-@@ -21,7 +21,7 @@ class CPDF_AnnotContext {
-   CPDF_AnnotContext(CPDF_Dictionary* pAnnotDict, CPDF_Page* pPage);
-   ~CPDF_AnnotContext();
- 
--  void SetForm(CPDF_Stream* pStream);
-+  void SetForm_(CPDF_Stream* pStream);
-   bool HasForm() const { return !!m_pAnnotForm; }
-   CPDF_Form* GetForm() const { return m_pAnnotForm.get(); }
- 
-diff --git a/fpdfsdk/fpdf_annot.cpp b/fpdfsdk/fpdf_annot.cpp
-index 8b4c69789..f6560059f 100644
---- a/fpdfsdk/fpdf_annot.cpp
-+++ b/fpdfsdk/fpdf_annot.cpp
-@@ -399,7 +399,7 @@ FPDFAnnot_AppendObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj) {
- 
-   // Get the annotation's corresponding form object for parsing its AP stream.
-   if (!pAnnot->HasForm())
--    pAnnot->SetForm(pStream);
-+    pAnnot->SetForm_(pStream);
- 
-   // Check that the object did not come from the same annotation. If this check
-   // succeeds, then it is assumed that the object came from
-@@ -435,7 +435,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetObjectCount(FPDF_ANNOTATION annot) {
-     if (!pStream)
-       return 0;
- 
--    pAnnot->SetForm(pStream);
-+    pAnnot->SetForm_(pStream);
-   }
-   return pdfium::CollectionSize<int>(*pAnnot->GetForm()->GetPageObjectList());
- }
-@@ -452,7 +452,7 @@ FPDFAnnot_GetObject(FPDF_ANNOTATION annot, int index) {
-     if (!pStream)
-       return nullptr;
- 
--    pAnnot->SetForm(pStream);
-+    pAnnot->SetForm_(pStream);
-   }
- 
-   return FPDFPageObjectFromCPDFPageObject(
commit 68dd147bd3eb33fc74590113e7082d00119e733e
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Wed Apr 3 02:00:14 2019 +0000
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 08:54:15 2019 +0200

    Fix typos
    
    Change indefinite article "an" to "a" before
    the word unique and some variants.
    
    Change-Id: Ia14a6f3b9ec6b257ad8bed3b089faa9b6f07d44f
    Reviewed-on: https://gerrit.libreoffice.org/70174
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/comphelper/source/property/MasterPropertySet.cxx b/comphelper/source/property/MasterPropertySet.cxx
index f379276a0e66..3c339ef6d6f0 100644
--- a/comphelper/source/property/MasterPropertySet.cxx
+++ b/comphelper/source/property/MasterPropertySet.cxx
@@ -255,7 +255,7 @@ Sequence< Any > SAL_CALL MasterPropertySet::getPropertyValues( const Sequence< O
         const OUString * pString = aPropertyNames.getConstArray();
         PropertyDataHash::const_iterator aEnd = mxInfo->maMap.end(), aIter;
 
-        //!! have an unique_ptr to an array of OGuards in order to have the
+        //!! have a unique_ptr to an array of OGuards in order to have the
         //!! allocated memory properly freed (exception safe!).
         //!! Since the array itself has unique_ptrs as members we have to use a
         //!! helper class 'AutoOGuardArray' in order to have
diff --git a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
index c21840e1689e..541417b2f36e 100644
--- a/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
+++ b/filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
@@ -1224,7 +1224,7 @@
         <xsl:choose>
             <xsl:when test="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@style:num-format != '' and not(@text:is-list-header='true')">
 
-                <!-- Every heading element will get an unique anchor for its file, from its hierarchy level and name:
+                <!-- Every heading element will get a unique anchor for its file, from its hierarchy level and name:
                      For example:  The heading title 'My favorite heading' might get <a name="1_2_2_My_favorite_heading" /> -->
                 <!-- creating an anchor for referencing the heading (e.g. from content table) -->
                 <xsl:variable name="headingNumber">
diff --git a/framework/source/fwe/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx
index 6652b1972ca5..a9822bc3f110 100644
--- a/framework/source/fwe/classes/addonsoptions.cxx
+++ b/framework/source/fwe/classes/addonsoptions.cxx
@@ -760,7 +760,7 @@ void AddonsOptions_Impl::ReadImages( ImageManager& aImageManager )
 
 OUString AddonsOptions_Impl::GeneratePrefixURL()
 {
-    // Create an unique prefixed Add-On popup menu URL so it can be identified later as a runtime popup menu.
+    // Create a unique prefixed Add-On popup menu URL so it can be identified later as a runtime popup menu.
     // They use a different image manager, so they must be identified by the sfx2/framework code.
     OUString aPopupMenuURL;
     OUStringBuffer aBuf( m_aRootAddonPopupMenuURLPrexfix.getLength() + 3 );
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 778a9228d4d7..c3c7735afeaf 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -3420,7 +3420,7 @@ void AutoRecovery::implts_generateNewTempURL(const OUString&               sBack
                                                    AutoRecovery::TDocumentInfo&   rInfo           )
 {
     // specify URL for saving (which points to a temp file inside backup directory)
-    // and define an unique name, so we can locate it later.
+    // and define a unique name, so we can locate it later.
     // This unique name must solve an optimization problem too!
     // In case we are asked to save unmodified documents too - and one of them
     // is an empty one (because it was new created using e.g. an URL private:factory/...)
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 3d1e844e9516..76673d41718f 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -2725,7 +2725,7 @@ void XFrameImpl::impl_setPropertyValue(sal_Int32 nHandle,
     */
 
     /* Attention: You can use nHandle only, if you are sure that all supported
-                  properties has an unique handle. That must be guaranteed
+                  properties has a unique handle. That must be guaranteed
                   inside method initListeners()!
     */
     switch (nHandle)
@@ -2780,7 +2780,7 @@ css::uno::Any XFrameImpl::impl_getPropertyValue(sal_Int32 nHandle)
     */
 
     /* Attention: You can use nHandle only, if you are sure that all supported
-                  properties has an unique handle. That must be guaranteed
+                  properties has a unique handle. That must be guaranteed
                   inside method initListeners()!
     */
     css::uno::Any aValue;
diff --git a/include/comphelper/numberedcollection.hxx b/include/comphelper/numberedcollection.hxx
index e2d9a24d4db7..06cfaa1c08d2 100644
--- a/include/comphelper/numberedcollection.hxx
+++ b/include/comphelper/numberedcollection.hxx
@@ -124,7 +124,7 @@ class COMPHELPER_DLLPUBLIC NumberedCollection : private ::cppu::BaseMutex
     private:
 
 
-        /** @short  tries to find an unique number not already used within this collection.
+        /** @short  tries to find a unique number not already used within this collection.
 
             @descr  It reuses the smallest number which isn't used by any component
                     of this collection. (fragmentation!) If collection is full (means there
@@ -138,7 +138,7 @@ class COMPHELPER_DLLPUBLIC NumberedCollection : private ::cppu::BaseMutex
                     So the outside code has to make sure that retrieving and using of those numbers
                     will be an atomic operation.
 
-            @return an unique number or special value INVALID_NUMBER if collection is full.
+            @return a unique number or special value INVALID_NUMBER if collection is full.
          */
         ::sal_Int32 impl_searchFreeNumber ();
 
diff --git a/include/registry/refltype.hxx b/include/registry/refltype.hxx
index 5380a0de46bf..4924edf77178 100644
--- a/include/registry/refltype.hxx
+++ b/include/registry/refltype.hxx
@@ -57,7 +57,7 @@ public:
 
 /** deprecated.
 
-    An earlier version of UNO used an unique identifier for interfaces. In the
+    An earlier version of UNO used a unique identifier for interfaces. In the
     current version of UNO this uik was eliminated and this type is no longer used.
  */
 struct RTUik
diff --git a/include/ucbhelper/interceptedinteraction.hxx b/include/ucbhelper/interceptedinteraction.hxx
index 56e29c9cecd1..5b5771772ef3 100644
--- a/include/ucbhelper/interceptedinteraction.hxx
+++ b/include/ucbhelper/interceptedinteraction.hxx
@@ -64,7 +64,7 @@ class UCBHELPER_DLLPUBLIC InterceptedInteraction : public ::cppu::WeakImplHelper
             css::uno::Type Continuation;
 
 
-            /** @short  it's an unique identifier, which must be managed by the outside code.
+            /** @short  it's a unique identifier, which must be managed by the outside code.
 
                 @descr  If there is a derived class, which overwrites the InterceptedInteraction::intercepted()
                         method, it will be called with a reference to an InterceptedRequest struct.
diff --git a/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java b/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java
index f5ef2a97088c..9b55929d870a 100644
--- a/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java
+++ b/odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java
@@ -56,7 +56,7 @@ public class AsyncJob extends    WeakBase implements XServiceInfo, XAsyncJob
     public static final String[] SERVICENAMES = {"com.sun.star.task.AsyncJob"};
 
     /** the const uno implementation name.
-     *  It must be an unique value! The best naming schema seems to use
+     *  It must be a unique value! The best naming schema seems to use
      *  a registered domain in reverse order ...
      */
     public static final String IMPLEMENTATIONNAME = "com.sun.star.comp.framework.java.services.AsyncJob";
diff --git a/odk/examples/DevelopersGuide/Drawing/DrawingDemo.java b/odk/examples/DevelopersGuide/Drawing/DrawingDemo.java
index b8b5ef321604..f71197cf6d61 100644
--- a/odk/examples/DevelopersGuide/Drawing/DrawingDemo.java
+++ b/odk/examples/DevelopersGuide/Drawing/DrawingDemo.java
@@ -170,7 +170,7 @@ public class DrawingDemo
             XNamed xNamed = UnoRuntime.queryInterface(
                 XNamed.class, xLastPage );
 
-            // beware, the page must have an unique name
+            // beware, the page must have a unique name
             xNamed.setName( sLastPageName );
         }
         catch( Exception ex )
diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java
index e50686c38cf6..030c8f9b6ede 100644
--- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java
+++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java
@@ -806,12 +806,12 @@ public class FunctionHelper
 
 
     /**
-     * Try to find an unique frame name, which isn't currently used inside
+     * Try to find a unique frame name, which isn't currently used inside
      * remote office instance. Because we create top level frames
      * only, it's enough to check the names of existing child frames on the
      * desktop only.
      *
-     *          should represent an unique frame name, which currently isn't
+     *          should represent a unique frame name, which currently isn't
      *          used inside the remote office frame tree
      *          (Couldn't guaranteed for a real multithreaded environment.
      *           But we try it ...)
diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java
index f8c1fdb39b1f..c6732155d2dc 100644
--- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java
+++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java
@@ -53,7 +53,7 @@ public interface IOnewayLink
 
     /**
      * @param nRequest
-     *          The two user of this callback can define an unique number,
+     *          The two user of this callback can define a unique number,
      *          which identify the type of original interface method. So the called
      *          interface object can decide, which action will be necessary.
      *
diff --git a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java
index 660f9f360ba6..a86ff31defc1 100644
--- a/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java
+++ b/odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java
@@ -88,7 +88,7 @@ class OnewayExecutor extends Thread
      * and parameters of the original request.
      *
      * @param nRequest
-     *          The two user of this callback can define an unique number,
+     *          The two user of this callback can define a unique number,
      *          which identify the type of original interface method.
      *          So the called interface object can decide, which action will be
      *          necessary.
diff --git a/offapi/com/sun/star/awt/XSimpleTabController.idl b/offapi/com/sun/star/awt/XSimpleTabController.idl
index 5ed9672ff115..189e358292c3 100644
--- a/offapi/com/sun/star/awt/XSimpleTabController.idl
+++ b/offapi/com/sun/star/awt/XSimpleTabController.idl
@@ -33,12 +33,12 @@
  */
 interface XSimpleTabController : com::sun::star::uno::XInterface
 {
-    /** create a new tab and return an unique ID,
+    /** create a new tab and return a unique ID,
         which can be used further to address this tab by using other methods
         of this interface.
 
         @return [long
-                an unique ID for this new tab.
+                a unique ID for this new tab.
      */
     long insertTab();
 
diff --git a/offapi/com/sun/star/frame/XModuleManager2.idl b/offapi/com/sun/star/frame/XModuleManager2.idl
index 268007d520e1..91e6ed6b489f 100644
--- a/offapi/com/sun/star/frame/XModuleManager2.idl
+++ b/offapi/com/sun/star/frame/XModuleManager2.idl
@@ -40,7 +40,7 @@ interface XModuleManager2
     /** provides read access to the configuration of office modules.
 
         <p>
-        Every module is referenced by an unique service name
+        Every module is referenced by a unique service name
         (which is used inside configuration as set node name too)
         and is further represented by a sequence of elements of type
         com::sun::star::beans::PropertyValue.
diff --git a/offapi/com/sun/star/smarttags/XSmartTagAction.idl b/offapi/com/sun/star/smarttags/XSmartTagAction.idl
index cf0537d60be4..9a94844baab2 100644
--- a/offapi/com/sun/star/smarttags/XSmartTagAction.idl
+++ b/offapi/com/sun/star/smarttags/XSmartTagAction.idl
@@ -76,7 +76,7 @@ interface XSmartTagAction: com::sun::star::lang::XInitialization
                 (exclusively).
 
         @return
-                an unique name of the smart tag type. Smart tag  type
+                a unique name of the smart tag type. Smart tag  type
                 names are always in the format of namespaceURI#tagname.
 
         @throws com::sun::star::lang::IndexOutOfBoundsException
diff --git a/offapi/com/sun/star/text/XFlatParagraphIteratorProvider.idl b/offapi/com/sun/star/text/XFlatParagraphIteratorProvider.idl
index 38d9ad3c548e..f93a61749a1a 100644
--- a/offapi/com/sun/star/text/XFlatParagraphIteratorProvider.idl
+++ b/offapi/com/sun/star/text/XFlatParagraphIteratorProvider.idl
@@ -27,7 +27,7 @@
 //---------------------------------------Note----------------------------------
 //    allows for different iterators for grammar checking and smart tags,
 //    interface must be implemented exactly once for each document since
-//    the interface pointer will be used to get an unique document id.
+//    the interface pointer will be used to get a unique document id.
 
 
 module com {  module sun {  module star {  module text {
diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/parser/rpt/FunctionReadHandler.java b/reportbuilder/java/org/libreoffice/report/pentaho/parser/rpt/FunctionReadHandler.java
index 6b2f54fb37bc..14def5e753ad 100644
--- a/reportbuilder/java/org/libreoffice/report/pentaho/parser/rpt/FunctionReadHandler.java
+++ b/reportbuilder/java/org/libreoffice/report/pentaho/parser/rpt/FunctionReadHandler.java
@@ -32,7 +32,7 @@ import org.xml.sax.SAXException;
 
 /**
  * Parses a named expression. These expressions are encountered on reports and
- * groups and compute global values. Expressions must have an unique name.
+ * groups and compute global values. Expressions must have a unique name.
  *
  */
 public class FunctionReadHandler extends AbstractXmlReadHandler
diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index 59b8961549e9..5f5cfe9ceb39 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -1251,7 +1251,7 @@ void DocxSdrExport::writeDiagram(const SdrObject* sdrObject, const SwFrameFormat
     Size aSize(sdrObject->GetSnapRect().GetWidth(), sdrObject->GetSnapRect().GetHeight());
     startDMLAnchorInline(&rFrameFormat, aSize);
 
-    // generate an unique id
+    // generate a unique id
     sax_fastparser::FastAttributeList* pDocPrAttrList
         = sax_fastparser::FastSerializerHelper::createAttrList();
     pDocPrAttrList->add(XML_id, OString::number(nAnchorId).getStr());
commit fd33e13d758ec71389ba114360e4828a88ac4181
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:35:48 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 08:52:02 2019 +0200

    Fix typo
    
    Change-Id: I42090a462b15fbc537b0fdb5eaf66f60a213e5ff
    Reviewed-on: https://gerrit.libreoffice.org/70103
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/base/basecontainercontrol.cxx b/UnoControls/source/base/basecontainercontrol.cxx
index 40bb1dc98166..ffd67a3388b0 100644
--- a/UnoControls/source/base/basecontainercontrol.cxx
+++ b/UnoControls/source/base/basecontainercontrol.cxx
@@ -55,13 +55,13 @@ Any SAL_CALL BaseContainerControl::queryInterface( const Type& rType )
     Reference< XInterface > xDel = BaseControl::impl_getDelegator();
     if ( xDel.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exist, forward question to his queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = xDel->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
commit 557f8dea20a6d8396d21dc48cca2792f240439a0
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 21:10:19 2019 +0000
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:52:11 2019 +0200

    Fix typo
    
    Change-Id: Ib4895ce8c0d56b89260ea71734687734298d7c92
    Reviewed-on: https://gerrit.libreoffice.org/70168
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 17e41bab5579..3fd9f05ffc83 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -997,7 +997,7 @@ void paintGraphicUsingPrimitivesHelper(
             // more some 'grow in outside direction' but with unequal grow
             // values in all directions - just maaany problems
             // involved), use a graphical trick: The topology of the
-            // PolyPolygon uses the stndard FillRule, so adding the now
+            // PolyPolygon uses the standard FillRule, so adding the now
             // guaranteed to be bigger or equal bounding (enclosing)
             // rectangle twice as polygon will expand the BoundRange, but
             // not change the geometry visualization at all
commit d1496ca658650d4e19baa05f72445ab69ca96860
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:36:18 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:51:12 2019 +0200

    Fix typo
    
    Change-Id: I7831896b8898f0cb20589fbd241b97fcc21db366
    Reviewed-on: https://gerrit.libreoffice.org/70108
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/controls/statusindicator.cxx b/UnoControls/source/controls/statusindicator.cxx
index 4cdf100299ce..c1c9d3597beb 100644
--- a/UnoControls/source/controls/statusindicator.cxx
+++ b/UnoControls/source/controls/statusindicator.cxx
@@ -76,13 +76,13 @@ Any SAL_CALL StatusIndicator::queryInterface( const Type& rType )
     css::uno::Reference< XInterface > xDel = BaseContainerControl::impl_getDelegator();
     if ( xDel.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exists, forward question to its queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = xDel->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
commit 94ac464dd5bbe942e7fc2bb359a4d368fa298bdc
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:36:56 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:49:47 2019 +0200

    Fix typo
    
    Change-Id: I546735f427a47d9ada1589e1861d0cf696788b05
    Reviewed-on: https://gerrit.libreoffice.org/70107
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/controls/progressmonitor.cxx b/UnoControls/source/controls/progressmonitor.cxx
index c7da6f15ab17..7e439beb5e60 100644
--- a/UnoControls/source/controls/progressmonitor.cxx
+++ b/UnoControls/source/controls/progressmonitor.cxx
@@ -111,13 +111,13 @@ Any SAL_CALL ProgressMonitor::queryInterface( const Type& rType )
     css::uno::Reference< XInterface > xDel = BaseContainerControl::impl_getDelegator();
     if ( xDel.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exists, forward question to its queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = xDel->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
commit 78f2aa9f5e13ec4cfbb9992e3ce45fcaace83023
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:31:44 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:49:02 2019 +0200

    Fix typo
    
    Change-Id: I0e8f761768c7faf3da1d11d6fe02ee24e1180cf2
    Reviewed-on: https://gerrit.libreoffice.org/70104
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/base/basecontrol.cxx b/UnoControls/source/base/basecontrol.cxx
index e2ce368be91d..06adc4ae4ddd 100644
--- a/UnoControls/source/base/basecontrol.cxx
+++ b/UnoControls/source/base/basecontrol.cxx
@@ -74,13 +74,13 @@ Any SAL_CALL BaseControl::queryInterface( const Type& rType )
     Any aReturn;
     if ( m_xDelegator.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exists, forward question to its queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = m_xDelegator->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
@@ -566,7 +566,7 @@ void SAL_CALL BaseControl::draw(    sal_Int32   nX  ,
     // Ready for multithreading
     MutexGuard aGuard( m_aMutex );
 
-    // - paint to an view
+    // - paint to a view
     // - use the method "paint()"
     // - see also "windowPaint()"
     impl_paint( nX, nY, m_xGraphicsView );
@@ -576,7 +576,7 @@ void SAL_CALL BaseControl::draw(    sal_Int32   nX  ,
 
 sal_Bool SAL_CALL BaseControl::setGraphics( const Reference< XGraphics >& xDevice )
 {
-    // - set the graphics for an view
+    // - set the graphics for a view
     // - in this class exist 2 graphics-member ... one for peer[_xGraphicsPeer] and one for view[_xGraphicsView]
     // - they are used by "windowPaint() and draw()", forwarded to "paint ()"
     bool bReturn = false;
@@ -699,7 +699,7 @@ void SAL_CALL BaseControl::windowHidden( const EventObject& /*aEvent*/ )
 
 WindowDescriptor BaseControl::impl_getWindowDescriptor( const Reference< XWindowPeer >& xParentPeer )
 {
-    // - used from "createPeer()" to set the values of an css::awt::WindowDescriptor !!!
+    // - used from "createPeer()" to set the values of a css::awt::WindowDescriptor !!!
     // - if you will change the descriptor-values, you must override this virtual function
     // - the caller must release the memory for this dynamical descriptor !!!
 
commit 11c40f5b75a328541b5b4994534cb575553943dd
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:38:12 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:47:44 2019 +0200

    Fix typo
    
    Change-Id: I907b28c98133162a31835ebaeae6244dc8735752
    Reviewed-on: https://gerrit.libreoffice.org/70106
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/controls/progressbar.cxx b/UnoControls/source/controls/progressbar.cxx
index c4937e1f1d66..0d3b03d695af 100644
--- a/UnoControls/source/controls/progressbar.cxx
+++ b/UnoControls/source/controls/progressbar.cxx
@@ -67,13 +67,13 @@ Any SAL_CALL ProgressBar::queryInterface( const Type& rType )
     Reference< XInterface > xDel = BaseControl::impl_getDelegator();
     if ( xDel.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exists, forward question to its queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = xDel->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
commit 6ccf3ae8425a6cd6e4fbcecaa92ccbf6fc4efe0d
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 21:10:43 2019 +0000
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:47:15 2019 +0200

    Removed executable permission on data file
    
    Change-Id: I1468140656a6a1d78d7753b69043c28660747a7e
    Reviewed-on: https://gerrit.libreoffice.org/70167
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/chart2/qa/extras/data/ods/secondary_axis.ods b/chart2/qa/extras/data/ods/secondary_axis.ods
old mode 100755
new mode 100644
commit 4852ca0f867a624b975e00be8878aa338dfbe971
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Tue Apr 2 23:37:42 2019 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:07:13 2019 +0200

    Fix typo
    
    Change-Id: I794be89bed433e813feaecffce9464d087ddde61
    Reviewed-on: https://gerrit.libreoffice.org/70105
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/UnoControls/source/controls/framecontrol.cxx b/UnoControls/source/controls/framecontrol.cxx
index 14b115d5accd..5c0bcc29e584 100644
--- a/UnoControls/source/controls/framecontrol.cxx
+++ b/UnoControls/source/controls/framecontrol.cxx
@@ -74,13 +74,13 @@ Any SAL_CALL FrameControl::queryInterface( const Type& rType )
     Reference< XInterface > xDel = BaseControl::impl_getDelegator();
     if ( xDel.is() )
     {
-        // If an delegator exist, forward question to his queryInterface.
-        // Delegator will ask his own queryAggregation!
+        // If a delegator exists, forward question to its queryInterface.
+        // Delegator will ask its own queryAggregation!
         aReturn = xDel->queryInterface( rType );
     }
     else
     {
-        // If an delegator unknown, forward question to own queryAggregation.
+        // If a delegator is unknown, forward question to own queryAggregation.
         aReturn = queryAggregation( rType );
     }
 
commit e15c980e70360bb7ca8bd6730b700bfe215f1278
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Mon Apr 1 07:30:47 2019 +0000
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Wed Apr 3 07:06:36 2019 +0200

    Fix typo
    
    Change-Id: I8f5828e0e9887aaee928e4ff794bd21399fa5abc
    Reviewed-on: https://gerrit.libreoffice.org/70171
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/basctl/source/basicide/basicrenderable.cxx b/basctl/source/basicide/basicrenderable.cxx
index ee0116d368bf..3537e91e0c65 100644
--- a/basctl/source/basicide/basicrenderable.cxx
+++ b/basctl/source/basicide/basicrenderable.cxx
@@ -64,7 +64,7 @@ Renderable::Renderable (BaseWindow* pWin)
                                                    aHelpIds, aPrintContentName,
                                                    aChoices, 0);
 
-    // create a an Edit dependent on "Pages" selected
+    // create an Edit dependent on "Pages" selected
     vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt(aPrintContentName, 1, true);
     m_aUIProperties[2].Value = setEditControlOpt("pagerange", OUString(),
                                                  OUString(), "PageRange",
commit 18defd113365762c05d355393aab49aef82c598c
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Mon Apr 1 07:30:51 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 05:04:51 2019 +0200

    Fix typo
    
    Change-Id: I54ab0fd193e0a133a49462f456fb2fe120494bee
    Reviewed-on: https://gerrit.libreoffice.org/70170
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/android/source/src/java/org/libreoffice/TileIdentifier.java b/android/source/src/java/org/libreoffice/TileIdentifier.java
index bdd7cbcde6a3..9f6fc5605af9 100644
--- a/android/source/src/java/org/libreoffice/TileIdentifier.java
+++ b/android/source/src/java/org/libreoffice/TileIdentifier.java
@@ -48,7 +48,7 @@ public class TileIdentifier {
     }
 
     /**
-     * Returns a integer rectangle of the tiles position in non-scaled and rounded coordinates (coordinates as the zoom would be 1).
+     * Returns an integer rectangle of the tiles position in non-scaled and rounded coordinates (coordinates as the zoom would be 1).
      */
     public Rect getCSSRect() {
         float cssX = x / zoom;
commit dd803469f55e1bcbd4388330367ac2169a69ff2a
Author:     Andrea Gelmini <andrea.gelmini at gelma.net>
AuthorDate: Mon Apr 1 07:30:52 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 03:50:01 2019 +0200

    Fix typo
    
    Change-Id: Id1a9ca4952e52df2ca48b81d80c24f62d451a811
    Reviewed-on: https://gerrit.libreoffice.org/70169
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx
index 5fd7ecf1eaf7..d093a6a0481b 100644
--- a/accessibility/source/extended/accessiblelistboxentry.cxx
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -322,7 +322,7 @@ namespace accessibility
                     xParent = getListBox()->GetAccessible( );
             }
             else
-            {   // we have a entry as parent -> get its accessible
+            {   // we have an entry as parent -> get its accessible
 
                 // shorten our access path by one
                 std::deque< sal_Int32 > aParentPath( m_aEntryPath );
commit 429e6560d000f454fdb23d52fdddfbc84c5cf0a8
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Tue Apr 2 22:45:22 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 03:48:26 2019 +0200

    Remove now obsolete _TableRow interface tests
    
    Remove obsolete _TableRow.java file, missed it with commit
    cc9a8c13dad6f3d82a2386554bd6113b486a1752.
    
    Change-Id: I900ae9368d145dbe95b144323459ba05e38f6766
    Reviewed-on: https://gerrit.libreoffice.org/70165
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/qadevOOo/Jar_OOoRunner.mk b/qadevOOo/Jar_OOoRunner.mk
index c9e63df3ac7f..d235320fd5d7 100644
--- a/qadevOOo/Jar_OOoRunner.mk
+++ b/qadevOOo/Jar_OOoRunner.mk
@@ -583,7 +583,6 @@ $(eval $(call gb_Jar_add_sourcefiles,OOoRunner,\
     qadevOOo/tests/java/ifc/system/_XSystemShellExecute \
     qadevOOo/tests/java/ifc/table/_CellProperties \
     qadevOOo/tests/java/ifc/table/_TableColumn \
-    qadevOOo/tests/java/ifc/table/_TableRow \
     qadevOOo/tests/java/ifc/table/_XAutoFormattable \
     qadevOOo/tests/java/ifc/table/_XCellRange \
     qadevOOo/tests/java/ifc/table/_XTableChart \
diff --git a/qadevOOo/tests/java/ifc/table/_TableRow.java b/qadevOOo/tests/java/ifc/table/_TableRow.java
deleted file mode 100644
index 1d71a631124e..000000000000
--- a/qadevOOo/tests/java/ifc/table/_TableRow.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package ifc.table;
-
-import lib.MultiPropertyTest;
-
-/**
-* Testing <code>com.sun.star.table.TableRow</code>
-* service properties :
-* <ul>
-*  <li><code> Height</code></li>
-*  <li><code> OptimalHeight</code></li>
-*  <li><code> IsVisible</code></li>
-*  <li><code> IsStartOfNewPage</code></li>
-* </ul> <p>
-* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
-* @see com.sun.star.table.TableRow
-*/
-public class _TableRow extends MultiPropertyTest {
-
-} // finish class _TableRow
-
commit ada3b7712a90900bf36235168ce4cfa77dfdc642
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Tue Apr 2 22:01:59 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 03:48:09 2019 +0200

    Add XServiceInfo tests to ScTableRowObj
    
    Change-Id: Ia3ad25e5e401abd3b27687a951a8c00fe710e57f
    Reviewed-on: https://gerrit.libreoffice.org/70164
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/sc/qa/extras/sctablerowobj.cxx b/sc/qa/extras/sctablerowobj.cxx
index 45a974a3207e..ddda25834d6b 100644
--- a/sc/qa/extras/sctablerowobj.cxx
+++ b/sc/qa/extras/sctablerowobj.cxx
@@ -9,6 +9,7 @@
 
 #include <test/calc_unoapi_test.hxx>
 #include <test/beans/xpropertyset.hxx>
+#include <test/lang/xserviceinfo.hxx>
 #include <test/table/tablerow.hxx>
 #include <test/table/xcellrange.hxx>
 
@@ -30,7 +31,8 @@ namespace sc_apitest
 class ScTableRowObj : public CalcUnoApiTest,
                       public apitest::TableRow,
                       public apitest::XCellRange,
-                      public apitest::XPropertySet
+                      public apitest::XPropertySet,
+                      public apitest::XServiceInfo
 {
 public:
     ScTableRowObj();
@@ -56,6 +58,11 @@ public:
     CPPUNIT_TEST(testPropertyChangeListener);
     CPPUNIT_TEST(testVetoableChangeListener);
 
+    // XServiceInfo
+    CPPUNIT_TEST(testGetImplementationName);
+    CPPUNIT_TEST(testGetSupportedServiceNames);
+    CPPUNIT_TEST(testSupportsService);
+
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -98,6 +105,7 @@ ScTableRowObj::ScTableRowObj()
                      "ValidationLocal",
                      "ValidationXML",
                      "WritingMode" })
+    , XServiceInfo("ScTableRowObj", "com.sun.star.table.TableRow")
 {
 }
 
commit 6a7350f856e50ce3d091bda9f4f00219b5521333
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Tue Apr 2 21:42:28 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 03:47:56 2019 +0200

    tdf#45904 Move XCellRange Java tests to C++
    
    Move XCellRange Java tests to C++ for ScTableRowObj.
    
    Change-Id: I2735779cae777c5af4e622bc1b538df2d8bf70df
    Reviewed-on: https://gerrit.libreoffice.org/70163
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/framework/qa/complex/api_internal/api.lst b/framework/qa/complex/api_internal/api.lst
index a159f3a33114..4e4166ee9835 100644
--- a/framework/qa/complex/api_internal/api.lst
+++ b/framework/qa/complex/api_internal/api.lst
@@ -80,7 +80,6 @@ job99=sc.ScHeaderFieldsObj
 job126=sc.ScSheetLinkObj
 job132=sc.ScStyleObj
 job134=sc.ScTableColumnObj
-job138=sc.ScTableRowObj
 job140=sc.XMLContentExporter
 job141=sc.XMLContentImporter
 job142=sc.XMLImporter
diff --git a/include/test/table/xcellrange.hxx b/include/test/table/xcellrange.hxx
new file mode 100644
index 000000000000..eec00c88abd5
--- /dev/null
+++ b/include/test/table/xcellrange.hxx
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_TEST_TABLE_XCELLRANGE_HXX
+#define INCLUDED_TEST_TABLE_XCELLRANGE_HXX
+
+#include <test/testdllapi.hxx>
+#include <rtl/ustring.h>
+
+#include <com/sun/star/uno/XInterface.hpp>
+
+#include <com/sun/star/uno/Reference.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST XCellRange
+{
+public:
+    XCellRange()
+        : m_aRangeName("A1:A1")
+    {
+    }
+    XCellRange(const OUString& aRangeName)
+        : m_aRangeName(aRangeName)
+    {
+    }
+
+    virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+
+    void testGetCellByPosition();
+    void testGetCellRangeByName();
+    void testGetCellRangeByPosition();
+
+protected:
+    ~XCellRange() {}
+
+private:
+    OUString const m_aRangeName;
+};
+} // namespace apitest
+
+#endif // INCLUDED_TEST_TABLE_XCELLRANGE_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/qadevOOo/Jar_OOoRunner.mk b/qadevOOo/Jar_OOoRunner.mk
index 3815a067b2e8..c9e63df3ac7f 100644
--- a/qadevOOo/Jar_OOoRunner.mk
+++ b/qadevOOo/Jar_OOoRunner.mk
@@ -969,7 +969,6 @@ $(eval $(call gb_Jar_add_sourcefiles,OOoRunner,\
     qadevOOo/tests/java/mod/_sc/ScSheetLinkObj \
     qadevOOo/tests/java/mod/_sc/ScStyleObj \
     qadevOOo/tests/java/mod/_sc/ScTableColumnObj \
-    qadevOOo/tests/java/mod/_sc/ScTableRowObj \
     qadevOOo/tests/java/mod/_sc/ScTableSheetObj \
     qadevOOo/tests/java/mod/_sc/ScTableSheetsObj \
     qadevOOo/tests/java/mod/_sc/ScTabViewObj \
diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
deleted file mode 100644
index 3b6fe9714ae4..000000000000
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-"ScTableRowObj";"com::sun::star::table::XCellRange";"getCellByPosition()"
-"ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByPosition()"
-"ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByName()"
diff --git a/qadevOOo/tests/java/mod/_sc/ScTableRowObj.java b/qadevOOo/tests/java/mod/_sc/ScTableRowObj.java
deleted file mode 100644
index 6a1434ed74fe..000000000000
--- a/qadevOOo/tests/java/mod/_sc/ScTableRowObj.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package mod._sc;
-
-import java.io.PrintWriter;
-
-import lib.TestCase;
-import lib.TestEnvironment;
-import lib.TestParameters;
-import util.SOfficeFactory;
-
-import com.sun.star.container.XIndexAccess;
-import com.sun.star.container.XNameAccess;
-import com.sun.star.lang.XComponent;
-import com.sun.star.sheet.XSpreadsheet;
-import com.sun.star.sheet.XSpreadsheetDocument;
-import com.sun.star.sheet.XSpreadsheets;
-import com.sun.star.table.XColumnRowRange;
-import com.sun.star.table.XTableRows;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.uno.Type;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XInterface;
-
-/**
-* Test for object which is represented by service
-* <code>com.sun.star.table.TableRow</code>. <p>
-* Object implements the following interfaces :
-* <ul>
-*  <li> <code>com::sun::star::table::TableRow</code></li>
-*  <li> <code>com::sun::star::table::XCellRange</code></li>
-*  <li> <code>com::sun::star::beans::XPropertySet</code></li>
-* </ul>
-* @see com.sun.star.table.TableRow
-* @see com.sun.star.table.XCellRange
-* @see com.sun.star.beans.XPropertySet
-* @see ifc.table._TableRow
-* @see ifc.table._XCellRange
-* @see ifc.beans._XPropertySet
-*/
-public class ScTableRowObj extends TestCase {
-    private XSpreadsheetDocument xSheetDoc = null;
-
-    /**
-    * Creates Spreadsheet document.
-    */
-    @Override
-    protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
-        // get a soffice factory object
-        SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
-        log.println( "creating a sheetdocument" );
-        xSheetDoc = SOF.createCalcDoc(null);
-    }
-
-    /**
-    * Disposes Spreadsheet document.
-    */
-    @Override
-    protected void cleanup( TestParameters tParam, PrintWriter log ) {
-        log.println( "    disposing xSheetDoc " );
-        XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc) ;
-        util.DesktopTools.closeDoc(oComp);
-    }
-
-    /**
-    * Creating a TestEnvironment for the interfaces to be tested.
-    * Retrieves a collection of spreadsheets from the document and takes one of
-    * them. Obtains the collection of rows using the interface
-    * <code>XColumnRowRange</code>. Obtains the row with index 6 from the
-    * collection and this is the instance of the service
-    * <code>com.sun.star.table.TableRow</code>.
-    * Object relations created :
-    * <ul>
-    *  <li> <code>'ValidRange'</code> for
-    *      {@link ifc.table._XCellRange} </li>
-    * </ul>
-    * @see com.sun.star.table.XColumnRowRange
-    * @see com.sun.star.table.TableRow
-    */
-    @Override
-    protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
-
-        XInterface oObj = null;
-
-        // creation of the testobject here
-        // first we write what we are intend to do to log file
-        log.println("creating a test environment");
-
-        XSpreadsheet xSpreadsheet = null;
-        XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
-        XNameAccess oNames = UnoRuntime.queryInterface( XNameAccess.class, xSpreadsheets );
-        xSpreadsheet = (XSpreadsheet) AnyConverter.toObject(
-            new Type(XSpreadsheet.class),
-                oNames.getByName(oNames.getElementNames()[0]));
-
-        XColumnRowRange oColumnRowRange = UnoRuntime.queryInterface(XColumnRowRange.class, xSpreadsheet);
-        XTableRows oRows = oColumnRowRange.getRows();
-        XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, oRows);
-        oObj = (XInterface) AnyConverter.toObject(
-                new Type(XInterface.class),oIndexAccess.getByIndex(6));
-
-        log.println("creating a new environment for object");
-        TestEnvironment tEnv = new TestEnvironment(oObj);
-        tEnv.addObjRelation("ValidRange","A7:A7");
-        return tEnv;
-    }
-}
-
diff --git a/sc/qa/extras/sctablerowobj.cxx b/sc/qa/extras/sctablerowobj.cxx
index d264d24ca69f..45a974a3207e 100644
--- a/sc/qa/extras/sctablerowobj.cxx
+++ b/sc/qa/extras/sctablerowobj.cxx
@@ -10,6 +10,7 @@
 #include <test/calc_unoapi_test.hxx>
 #include <test/beans/xpropertyset.hxx>
 #include <test/table/tablerow.hxx>
+#include <test/table/xcellrange.hxx>
 
 #include <com/sun/star/container/XIndexAccess.hpp>
 #include <com/sun/star/lang/XComponent.hpp>
@@ -26,7 +27,10 @@ using namespace css;
 
 namespace sc_apitest
 {
-class ScTableRowObj : public CalcUnoApiTest, public apitest::TableRow, public apitest::XPropertySet
+class ScTableRowObj : public CalcUnoApiTest,
+                      public apitest::TableRow,
+                      public apitest::XCellRange,
+                      public apitest::XPropertySet
 {
 public:
     ScTableRowObj();
@@ -40,6 +44,11 @@ public:
     // TableRow
     CPPUNIT_TEST(testTableRowProperties);
 
+    // XCellRange
+    CPPUNIT_TEST(testGetCellByPosition);
+    CPPUNIT_TEST(testGetCellRangeByName);
+    CPPUNIT_TEST(testGetCellRangeByPosition);
+
     // XPropertySet
     CPPUNIT_TEST(testGetPropertySetInfo);
     CPPUNIT_TEST(testGetPropertyValue);
@@ -55,6 +64,7 @@ private:
 
 ScTableRowObj::ScTableRowObj()
     : CalcUnoApiTest("/sc/qa/extras/testdocuments")
+    , XCellRange("A7:A7")
     , XPropertySet({ "BottomBorder",
                      "BottomBorder2",
                      "CellProtection",
diff --git a/sc/qa/unoapi/sc_7.sce b/sc/qa/unoapi/sc_7.sce
index 82b38d8c8d0f..8fdce40c45c8 100644
--- a/sc/qa/unoapi/sc_7.sce
+++ b/sc/qa/unoapi/sc_7.sce
@@ -18,7 +18,6 @@
 # -o sc.ScStyleObj
 # # i84656 -o sc.ScTabViewObj
 # -o sc.ScTableColumnObj
-# -o sc.ScTableRowObj
 # -o sc.ScTableSheetObj
 # -o sc.ScTableSheetsObj
 # #i89411 -o sc.XMLContentExporter
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index 796fbcef122c..5eb13679660a 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -165,6 +165,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
 	test/source/table/tablerow \
 	test/source/table/xcell \
 	test/source/table/xcellcursor \
+	test/source/table/xcellrange \
 	test/source/table/xcolumnrowrange \
 	test/source/table/xtablechart \
 	test/source/table/xtablecharts \
diff --git a/test/source/table/xcellrange.cxx b/test/source/table/xcellrange.cxx
new file mode 100644
index 000000000000..c3b58f0a6463
--- /dev/null
+++ b/test/source/table/xcellrange.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/table/xcellrange.hxx>
+
+#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <com/sun/star/table/XCell.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
+
+#include <com/sun/star/uno/Reference.hxx>
+
+#include <cppunit/extensions/HelperMacros.h>
+
+using namespace css;
+
+namespace apitest
+{
+void XCellRange::testGetCellByPosition()
+{
+    uno::Reference<table::XCellRange> xCR(init(), uno::UNO_QUERY_THROW);
+
+    uno::Reference<table::XCell> xCell(xCR->getCellByPosition(0, 0), uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xCell.is());
+
+    CPPUNIT_ASSERT_THROW(xCR->getCellByPosition(-1, 1), lang::IndexOutOfBoundsException);
+}
+
+void XCellRange::testGetCellRangeByName()
+{
+    uno::Reference<table::XCellRange> xCR(init(), uno::UNO_QUERY_THROW);
+
+    uno::Reference<table::XCellRange> xCellRange(xCR->getCellRangeByName(m_aRangeName),
+                                                 uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xCellRange.is());
+}
+
+void XCellRange::testGetCellRangeByPosition()
+{
+    uno::Reference<table::XCellRange> xCR(init(), uno::UNO_QUERY_THROW);
+
+    uno::Reference<table::XCellRange> xCellRange(xCR->getCellRangeByPosition(0, 0, 0, 0),
+                                                 uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xCellRange.is());
+
+    CPPUNIT_ASSERT_THROW(xCR->getCellRangeByPosition(-1, 0, -1, 1),
+                         lang::IndexOutOfBoundsException);
+}
+} // namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
commit cc9a8c13dad6f3d82a2386554bd6113b486a1752
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Tue Apr 2 21:14:33 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Apr 3 00:39:08 2019 +0200

    tdf#45904 Move TableRow Java tests to C++
    
    Move TableRow Java tests to C++ for ScTableRowObj.
    
    Change-Id: I72cd8006b8ad932bab56681de9aac66fb40542fe
    Reviewed-on: https://gerrit.libreoffice.org/70159
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/include/test/table/tablerow.hxx b/include/test/table/tablerow.hxx
new file mode 100644
index 000000000000..150534bb2227
--- /dev/null
+++ b/include/test/table/tablerow.hxx
@@ -0,0 +1,36 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_TEST_TABLE_TABLEROW_HXX
+#define INCLUDED_TEST_TABLE_TABLEROW_HXX
+
+#include <test/testdllapi.hxx>
+
+#include <com/sun/star/uno/XInterface.hpp>
+
+#include <com/sun/star/uno/Reference.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST TableRow
+{
+public:
+    virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+
+    void testTableRowProperties();
+
+protected:
+    ~TableRow() {}
+};
+
+} // namespace apitest
+
+#endif // INCLUDED_TEST_TABLE_TABLEROW_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
index 59f7efd6554a..3b6fe9714ae4 100644
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
+++ b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
@@ -1,7 +1,3 @@
-"ScTableRowObj";"com::sun::star::table::TableRow";"Height"
-"ScTableRowObj";"com::sun::star::table::TableRow";"OptimalHeight"
-"ScTableRowObj";"com::sun::star::table::TableRow";"IsVisible"
-"ScTableRowObj";"com::sun::star::table::TableRow";"IsStartOfNewPage"
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellByPosition()"
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByPosition()"
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByName()"
diff --git a/sc/qa/extras/sctablerowobj.cxx b/sc/qa/extras/sctablerowobj.cxx
index 381c4dc3a78c..d264d24ca69f 100644
--- a/sc/qa/extras/sctablerowobj.cxx
+++ b/sc/qa/extras/sctablerowobj.cxx
@@ -9,6 +9,7 @@
 
 #include <test/calc_unoapi_test.hxx>
 #include <test/beans/xpropertyset.hxx>
+#include <test/table/tablerow.hxx>
 
 #include <com/sun/star/container/XIndexAccess.hpp>
 #include <com/sun/star/lang/XComponent.hpp>
@@ -25,7 +26,7 @@ using namespace css;
 
 namespace sc_apitest
 {
-class ScTableRowObj : public CalcUnoApiTest, public apitest::XPropertySet
+class ScTableRowObj : public CalcUnoApiTest, public apitest::TableRow, public apitest::XPropertySet
 {
 public:
     ScTableRowObj();
@@ -36,6 +37,9 @@ public:
 
     CPPUNIT_TEST_SUITE(ScTableRowObj);
 
+    // TableRow
+    CPPUNIT_TEST(testTableRowProperties);
+
     // XPropertySet
     CPPUNIT_TEST(testGetPropertySetInfo);
     CPPUNIT_TEST(testGetPropertyValue);
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index c636235913bf..796fbcef122c 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -162,6 +162,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
 	test/source/sheet/xviewpane \
 	test/source/sheet/xviewsplitable \
 	test/source/style/xstyleloader \
+	test/source/table/tablerow \
 	test/source/table/xcell \
 	test/source/table/xcellcursor \
 	test/source/table/xcolumnrowrange \
diff --git a/test/source/table/tablerow.cxx b/test/source/table/tablerow.cxx
new file mode 100644
index 000000000000..f07f6e2f67a7
--- /dev/null
+++ b/test/source/table/tablerow.cxx
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/table/tablerow.hxx>
+#include <test/unoapi_property_testers.hxx>
+#include <rtl/ustring.h>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+
+#include <cppunit/extensions/HelperMacros.h>
+
+using namespace css;
+
+namespace apitest
+{
+void TableRow::testTableRowProperties()
+{
+    uno::Reference<beans::XPropertySet> xPS(init(), uno::UNO_QUERY_THROW);
+
+    OUString aPropName;
+
+    aPropName = "Height";
+    testLongProperty(xPS, aPropName);
+
+    aPropName = "OptimalHeight";
+    testBooleanProperty(xPS, aPropName);
+
+    aPropName = "IsVisible";
+    testBooleanProperty(xPS, aPropName);
+
+    aPropName = "IsStartOfNewPage";
+    testBooleanProperty(xPS, aPropName);
+}
+
+} // namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
commit ee268253163c4f9f00fd5182c97d9d488c637dfc
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Tue Apr 2 20:50:56 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Tue Apr 2 23:53:32 2019 +0200

    tdf#45904 Move XPropertySet Java tests to C++
    
    Move XPropertySet Java tests to C++ for ScTableRowObj.
    
    Change-Id: Ib448d6440cd6a285cd55297669bb19bd8aec6b07
    Reviewed-on: https://gerrit.libreoffice.org/70156
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
index 23e159b4768a..59f7efd6554a 100644
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
+++ b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv
@@ -5,10 +5,3 @@
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellByPosition()"
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByPosition()"
 "ScTableRowObj";"com::sun::star::table::XCellRange";"getCellRangeByName()"
-"ScTableRowObj";"com::sun::star::beans::XPropertySet";"getPropertySetInfo()"
-"ScTableRowObj";"com::sun::star::beans::XPropertySet";"setPropertyValue()"
-"ScTableRowObj";"com::sun::star::beans::XPropertySet";"getPropertyValue()"

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list