[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - 14 commits - avmedia/source chart2/source filter/source include/filter include/svtools include/svx include/vcl readlicense_oo/license sc/inc sc/source sd/qa svx/source sw/qa sw/source unotools/source vcl/inc vcl/source vcl/unx writerfilter/source

Caolán McNamara caolanm at redhat.com
Sat Jun 11 08:05:11 UTC 2016


 avmedia/source/framework/mediaplayer.cxx        |    9 
 chart2/source/controller/main/ChartWindow.cxx   |    2 
 chart2/source/view/main/ChartView.cxx           |    4 
 filter/source/msfilter/svdfppt.cxx              |    1 
 include/filter/msfilter/svdfppt.hxx             |    4 
 include/svtools/treelistentry.hxx               |    1 
 include/svx/svdotable.hxx                       |    2 
 include/vcl/openglwin.hxx                       |    6 
 readlicense_oo/license/CREDITS.fodt             | 3034 ++++++++++++------------
 sc/inc/orcusxml.hxx                             |    5 
 sc/source/core/data/dpresfilter.cxx             |   18 
 sc/source/filter/orcus/xmlcontext.cxx           |   27 
 sc/source/ui/cctrl/checklistmenu.cxx            |  135 -
 sc/source/ui/inc/checklistmenu.hxx              |   44 
 sc/source/ui/miscdlgs/solverutil.cxx            |   35 
 sd/qa/unit/tiledrendering/data/table-column.odp |binary
 sd/qa/unit/tiledrendering/tiledrendering.cxx    |   89 
 svx/source/table/svdotable.cxx                  |   40 
 svx/source/table/tablecolumn.cxx                |    9 
 svx/source/table/tablecolumn.hxx                |    5 
 svx/source/table/tablelayouter.cxx              |   29 
 svx/source/table/tablelayouter.hxx              |    2 
 svx/source/table/tablemodel.cxx                 |    7 
 svx/source/table/tablemodel.hxx                 |    2 
 svx/source/table/tableundo.cxx                  |    3 
 sw/qa/extras/rtfimport/data/tdf50821.rtf        |   10 
 sw/qa/extras/rtfimport/rtfimport.cxx            |    8 
 sw/source/core/layout/frmtool.cxx               |    2 
 unotools/source/config/historyoptions.cxx       |   37 
 vcl/inc/unx/gtk/gtkframe.hxx                    |    1 
 vcl/source/window/menufloatingwindow.cxx        |    6 
 vcl/source/window/openglwin.cxx                 |   46 
 vcl/unx/gtk3/gtk3gtkframe.cxx                   |   78 
 writerfilter/source/rtftok/rtfdocumentimpl.cxx  |    4 
 34 files changed, 2052 insertions(+), 1653 deletions(-)

New commits:
commit 88c3ed5c2d017df572f5a5c90d17fcfb3507804b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 9 17:02:14 2016 +0100

    Resolves: tdf#100248 vcl menu scroll timer still active post dispose
    
    Change-Id: I8988a42e7e505c967661c4a5f3c1e4ef3fbc08e0
    (cherry picked from commit f89b9d8b8064a2f323f5b3362f88cb873bad8fcc)
    (cherry picked from commit 7def34c0f013b0c9ac1b8ee39e800577bfa800e7)
    Reviewed-on: https://gerrit.libreoffice.org/26125
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit 11ca1ad43cc2def184ff7629e3880ccab6b8a1f1)

diff --git a/vcl/source/window/menufloatingwindow.cxx b/vcl/source/window/menufloatingwindow.cxx
index 2128f08..1cb95ed 100644
--- a/vcl/source/window/menufloatingwindow.cxx
+++ b/vcl/source/window/menufloatingwindow.cxx
@@ -100,6 +100,12 @@ void MenuFloatingWindow::doShutdown()
         }
         pMenu = nullptr;
         RemoveEventListener( LINK( this, MenuFloatingWindow, ShowHideListener ) );
+
+        aScrollTimer.Stop();
+        aSubmenuCloseTimer.Stop();
+        aSubmenuCloseTimer.Stop();
+        aHighlightChangedTimer.Stop();
+        aHighlightChangedTimer.Stop();
     }
 }
 
commit bcda6e863371792f48d46f035b04512f2fa04123
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jun 9 11:48:19 2016 +0100

    Resolves: rhbz#1344042 deb#826654 scale gtk3 smooth scaling events...
    
    to give traditional amounts of scroll on a single mouse wheel event
    
    ditch non smooth scroll events now seeing as apparently they are always
    available so the other types are irrelevent now
    
    if we get x and y scroll, then like macosx just dispatch x and y scroll events.
    
    Note: there seems to be a bug in the stack below us where the first scroll
    event after getting focus is one of a 0 x and y delta.  Because we now check x
    and y against 0, we don't launch a scroll event in the case of a 0x0 scroll
    which stops us occasionally appearing to go backwards on the first scroll after
    getting focus. Which is the same thing I see on e.g. gedit, the first mouse
    wheel scroll after getting focus doesn't actually do anything.
    
    (cherry picked from commit 0159ef4fbfd23ba97b20f97eb0677564bebd4ee7)
    (cherry picked from commit 23ba7c6c05d6331815a05a01d657f5e30b3bc252)
    
    Change-Id: Iec8f2e4627cd84e3896270a0847a5c4907fa083f
    
    reported abs narrowing complaint
    
    Change-Id: Icd27fea97e720607263e5f8a2d233c462f979e1b
    (cherry picked from commit f75ead4293d3b9d63f2596d66c411c44c0c70f38)
    (cherry picked from commit 6ad72c9c613766aabc15abaa676f5647b724b12b)
    Reviewed-on: https://gerrit.libreoffice.org/26101
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit d0ccf67442a14a1d48435954865c42af744a5117)

diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index 1d8334c..eaa222f 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -210,7 +210,6 @@ class GtkSalFrame : public SalFrame
 #if GTK_CHECK_VERSION(3,0,0)
     OUString                        m_aTooltip;
     Rectangle                       m_aHelpArea;
-    guint32                         m_nLastScrollEventTime;
     long                            m_nWidthRequest;
     long                            m_nHeightRequest;
     cairo_region_t*                 m_pRegion;
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 024735f..6363815 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -74,6 +74,9 @@
 #  include <cstdio>
 #endif
 
+#include <cstdlib>
+#include <cmath>
+
 #include <comphelper/processfactory.hxx>
 #include <comphelper/sequenceashashmap.hxx>
 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
@@ -1074,7 +1077,6 @@ void GtkSalFrame::InitCommon()
     m_bSpanMonitorsWhenFullscreen = false;
     m_nState            = GDK_WINDOW_STATE_WITHDRAWN;
     m_nVisibility       = GDK_VISIBILITY_FULLY_OBSCURED;
-    m_nLastScrollEventTime = GDK_CURRENT_TIME;
     m_bSendModChangeOnRelease = false;
     m_pIMHandler        = nullptr;
     m_hBackgroundPixmap = None;
@@ -2559,63 +2561,53 @@ gboolean GtkSalFrame::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointer
 
 gboolean GtkSalFrame::signalScroll( GtkWidget*, GdkEvent* pEvent, gpointer frame )
 {
-    GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
     GdkEventScroll* pSEvent = reinterpret_cast<GdkEventScroll*>(pEvent);
+    if (pSEvent->direction != GDK_SCROLL_SMOOTH)
+        return false;
 
-    // gnome#726878 check for duplicate legacy scroll event
-    if (pSEvent->direction != GDK_SCROLL_SMOOTH &&
-        pThis->m_nLastScrollEventTime == pSEvent->time)
-    {
-        return true;
-    }
+    GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
 
     SalWheelMouseEvent aEvent;
 
     aEvent.mnTime = pSEvent->time;
     aEvent.mnX = (sal_uLong)pSEvent->x;
+    // --- RTL --- (mirror mouse pos)
+    if (AllSettings::GetLayoutRTL())
+        aEvent.mnX = pThis->maGeometry.nWidth - 1 - aEvent.mnX;
     aEvent.mnY = (sal_uLong)pSEvent->y;
     aEvent.mnCode = GetMouseModCode( pSEvent->state );
-    aEvent.mnScrollLines = 3;
 
-    switch (pSEvent->direction)
+    // rhbz#1344042 "Traditionally" in gtk3 we tool a single up/down event as
+    // equating to 3 scroll lines and a delta of 120. So scale the delta here
+    // by 120 where a single mouse wheel click is an incoming delta_x of 1
+    // and divide that by 40 to get the number of scrollines
+    if (pSEvent->delta_x != 0.0)
     {
-        case GDK_SCROLL_SMOOTH:
-        {
-            //pick the bigger one I guess
-            aEvent.mbHorz = fabs(pSEvent->delta_x) > fabs(pSEvent->delta_y);
-            if (aEvent.mbHorz)
-                aEvent.mnDelta = -pSEvent->delta_x * 40;
-            else
-                aEvent.mnDelta = -pSEvent->delta_y * 40;
+        aEvent.mnDelta = -pSEvent->delta_x * 120;
+        aEvent.mnNotchDelta = aEvent.mnDelta < 0 ? -1 : +1;
+        if (aEvent.mnDelta == 0)
+            aEvent.mnDelta = aEvent.mnNotchDelta;
+        aEvent.mbHorz = true;
+        aEvent.mnScrollLines = std::abs(aEvent.mnDelta) / 40;
+        if (aEvent.mnScrollLines == 0)
             aEvent.mnScrollLines = 1;
-            pThis->m_nLastScrollEventTime = pSEvent->time;
-            break;
-        }
-        case GDK_SCROLL_UP:
-            aEvent.mnDelta = 120;
-            aEvent.mbHorz = false;
-            break;
-        case GDK_SCROLL_DOWN:
-            aEvent.mnDelta = -120;
-            aEvent.mbHorz = false;
-            break;
-        case GDK_SCROLL_LEFT:
-            aEvent.mbHorz = true;
-            aEvent.mnDelta = 120;
-            break;
-        case GDK_SCROLL_RIGHT:
-            aEvent.mnDelta = -120;
-            aEvent.mbHorz = true;
-            break;
-    };
 
-    aEvent.mnNotchDelta     = aEvent.mnDelta < 0 ? -1 : 1;
+        pThis->CallCallback(SALEVENT_WHEELMOUSE, &aEvent);
+    }
 
-    // --- RTL --- (mirror mouse pos)
-    if( AllSettings::GetLayoutRTL() )
-        aEvent.mnX = pThis->maGeometry.nWidth-1-aEvent.mnX;
+    if (pSEvent->delta_y != 0.0)
+    {
+        aEvent.mnDelta = -pSEvent->delta_y * 120;
+        aEvent.mnNotchDelta = aEvent.mnDelta < 0 ? -1 : +1;
+        if (aEvent.mnDelta == 0)
+            aEvent.mnDelta = aEvent.mnNotchDelta;
+        aEvent.mbHorz = false;
+        aEvent.mnScrollLines = std::abs(aEvent.mnDelta) / 40;
+        if (aEvent.mnScrollLines == 0)
+            aEvent.mnScrollLines = 1;
 
-    pThis->CallCallback( SALEVENT_WHEELMOUSE, &aEvent );
+        pThis->CallCallback(SALEVENT_WHEELMOUSE, &aEvent);
+    }
 
     return true;
 }
commit 1e0db9edefa3fb41b667de33c3fc1b8a3156c637
Author: Dennis Francis <dennisfrancis.in at gmail.com>
Date:   Tue May 31 23:46:52 2016 +0530

    tdf#97340 : Handle autofilter search for dates correctly
    
    Reviewed-on: https://gerrit.libreoffice.org/26005
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 848737eb576555f7c01d2159a9cf64d020dc2598)
    
    Change-Id: I5c8413d560789a626ea87eb28a89059960177f1f
    Reviewed-on: https://gerrit.libreoffice.org/26008
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Dennis Francis <dennisfrancis.in at gmail.com>
    Tested-by: Dennis Francis <dennisfrancis.in at gmail.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 760ca821442e3d8c0d36122bb8bc4a9c8078e97c)

diff --git a/include/svtools/treelistentry.hxx b/include/svtools/treelistentry.hxx
index c5c523c..adbb469 100644
--- a/include/svtools/treelistentry.hxx
+++ b/include/svtools/treelistentry.hxx
@@ -114,6 +114,7 @@ public:
 
     void SetBackColor( const Color& aColor ) { maBackColor = aColor; }
     Color GetBackColor() const { return maBackColor; }
+    SvTreeListEntry* GetParent() const { return pParent; }
 };
 
 #endif
diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx
index 8f7a3a9..e5897ec 100644
--- a/sc/source/ui/cctrl/checklistmenu.cxx
+++ b/sc/source/ui/cctrl/checklistmenu.cxx
@@ -845,10 +845,11 @@ ScCheckListMenuWindow::Config::Config() :
 {
 }
 
-ScCheckListMenuWindow::Member::Member()
+ScCheckListMember::ScCheckListMember()
     : mbVisible(true)
     , mbDate(false)
     , mbLeaf(false)
+    , meDatePartType(YEAR)
     , mpParent(nullptr)
 {
 }
@@ -1136,7 +1137,7 @@ void ScCheckListMenuWindow::setAllMemberState(bool bSet)
         aLabel = maMembers[i].maName;
         if (aLabel.isEmpty())
             aLabel = ScGlobal::GetRscString(STR_EMPTYDATA);
-        maChecks->ShowCheckEntry( aLabel, maMembers[i].mpParent, true, bSet);
+        maChecks->ShowCheckEntry( aLabel, maMembers[i], true, bSet);
     }
 
     if (!maConfig.mbAllowEmptySet)
@@ -1223,29 +1224,61 @@ IMPL_LINK_NOARG_TYPED(ScCheckListMenuWindow, EdModifyHdl, Edit&, void)
     size_t n = maMembers.size();
     size_t nSelCount = 0;
     OUString aLabelDisp;
+    bool bSomeDateDeletes = false;
 
     for (size_t i = 0; i < n; ++i)
     {
-        aLabelDisp = maMembers[i].maName;
+        bool bIsDate = maMembers[i].mbDate;
+        bool bPartialMatch = false;
 
+        aLabelDisp = maMembers[i].maName;
         if ( aLabelDisp.isEmpty() )
             aLabelDisp = ScGlobal::GetRscString( STR_EMPTYDATA );
 
+        if ( !bSearchTextEmpty )
+        {
+            if ( !bIsDate )
+                bPartialMatch = ( aLabelDisp.toAsciiLowerCase().indexOf( aSearchText ) != -1 );
+            else if ( maMembers[i].meDatePartType == ScCheckListMember::DAY ) // Match with both numerical and text version of month
+                bPartialMatch = bPartialMatch || ( OUString( maMembers[i].maRealName + maMembers[i].maDateParts[1] )
+                                                   .toAsciiLowerCase().indexOf( aSearchText ) != -1 );
+            else
+                continue;
+        }
+        else if ( bIsDate && maMembers[i].meDatePartType != ScCheckListMember::DAY )
+            continue;
+
         if ( bSearchTextEmpty )
         {
-            maChecks->ShowCheckEntry( aLabelDisp, maMembers[i].mpParent, true, maMembers[i].mbVisible );
+            SvTreeListEntry* pLeaf = maChecks->ShowCheckEntry( aLabelDisp, maMembers[i], true, maMembers[i].mbVisible );
+            updateMemberParents( pLeaf, i );
             if ( maMembers[i].mbVisible )
                 ++nSelCount;
             continue;
         }
 
-        if ( aLabelDisp.toAsciiLowerCase().indexOf( aSearchText ) != -1 )
+        if ( bPartialMatch )
         {
-            maChecks->ShowCheckEntry( aLabelDisp, maMembers[i].mpParent );
+            SvTreeListEntry* pLeaf = maChecks->ShowCheckEntry( aLabelDisp, maMembers[i] );
+            updateMemberParents( pLeaf, i );
             ++nSelCount;
         }
         else
-            maChecks->ShowCheckEntry( aLabelDisp, maMembers[i].mpParent, false, false );
+        {
+            maChecks->ShowCheckEntry( aLabelDisp, maMembers[i], false, false );
+            if( bIsDate )
+                bSomeDateDeletes = true;
+        }
+    }
+
+    if ( bSomeDateDeletes )
+    {
+        for (size_t i = 0; i < n; ++i)
+        {
+            if ( !maMembers[i].mbDate ) continue;
+            if ( maMembers[i].meDatePartType != ScCheckListMember::DAY ) continue;
+            updateMemberParents( nullptr, i );
+        }
     }
 
     if ( nSelCount == n )
@@ -1336,6 +1369,42 @@ vcl::Window* ScCheckListMenuWindow::GetPreferredKeyInputWindow()
     return maTabStopCtrls[mnCurTabStop];
 }
 
+void ScCheckListMenuWindow::updateMemberParents( SvTreeListEntry* pLeaf, size_t nIdx )
+{
+
+    if ( !maMembers[nIdx].mbDate || maMembers[nIdx].meDatePartType != ScCheckListMember::DAY )
+        return;
+
+    OUString aYearName  = maMembers[nIdx].maDateParts[0];
+    OUString aMonthName = maMembers[nIdx].maDateParts[1];
+    auto aItr = maYearMonthMap.find(aYearName + aMonthName);
+
+    if ( pLeaf )
+    {
+        SvTreeListEntry* pMonthEntry = pLeaf->GetParent();
+        SvTreeListEntry* pYearEntry = ( pMonthEntry ) ? pMonthEntry->GetParent() : nullptr;
+
+        maMembers[nIdx].mpParent = pMonthEntry;
+        if ( aItr != maYearMonthMap.end() )
+        {
+            size_t nMonthIdx = aItr->second;
+            maMembers[nMonthIdx].mpParent = pYearEntry;
+        }
+    }
+    else
+    {
+        SvTreeListEntry* pYearEntry = maChecks->FindEntry( nullptr, aYearName );
+        if ( aItr != maYearMonthMap.end() && !pYearEntry )
+        {
+            size_t nMonthIdx = aItr->second;
+            maMembers[nMonthIdx].mpParent = nullptr;
+            maMembers[nIdx].mpParent = nullptr;
+        }
+        else if ( pYearEntry && !maChecks->FindEntry( pYearEntry, aMonthName ) )
+            maMembers[nIdx].mpParent = nullptr;
+    }
+}
+
 Reference<XAccessible> ScCheckListMenuWindow::CreateAccessible()
 {
     if (!mxAccessible.is())
@@ -1392,19 +1461,23 @@ void ScCheckListMenuWindow::addDateMember(const OUString& rsName, double nVal, b
     OUString aMonthName = aMonths[nMonth-1].FullName;
     OUString aDayName = OUString::number(nDay);
 
+    if ( aDayName.getLength() == 1 )
+        aDayName = "0" + aDayName;
+
     maChecks->SetUpdateMode(false);
 
     SvTreeListEntry* pYearEntry = maChecks->FindEntry(nullptr, aYearName);
     if (!pYearEntry)
     {
         pYearEntry = maChecks->InsertEntry(aYearName, nullptr, true);
-        Member aMemYear;
+        ScCheckListMember aMemYear;
         aMemYear.maName = aYearName;
         aMemYear.maRealName = rsName;
         aMemYear.mbDate = true;
         aMemYear.mbLeaf = false;
         aMemYear.mbVisible = bVisible;
         aMemYear.mpParent = nullptr;
+        aMemYear.meDatePartType = ScCheckListMember::YEAR;
         maMembers.push_back(aMemYear);
     }
 
@@ -1412,27 +1485,33 @@ void ScCheckListMenuWindow::addDateMember(const OUString& rsName, double nVal, b
     if (!pMonthEntry)
     {
         pMonthEntry = maChecks->InsertEntry(aMonthName, pYearEntry, true);
-        Member aMemMonth;
+        ScCheckListMember aMemMonth;
         aMemMonth.maName = aMonthName;
         aMemMonth.maRealName = rsName;
         aMemMonth.mbDate = true;
         aMemMonth.mbLeaf = false;
         aMemMonth.mbVisible = bVisible;
         aMemMonth.mpParent = pYearEntry;
+        aMemMonth.meDatePartType = ScCheckListMember::MONTH;
         maMembers.push_back(aMemMonth);
+        maYearMonthMap[aYearName + aMonthName] = maMembers.size() - 1;
     }
 
     SvTreeListEntry* pDayEntry = maChecks->FindEntry(pMonthEntry, aDayName);
     if (!pDayEntry)
     {
         maChecks->InsertEntry(aDayName, pMonthEntry);
-        Member aMemDay;
+        ScCheckListMember aMemDay;
         aMemDay.maName = aDayName;
         aMemDay.maRealName = rsName;
+        aMemDay.maDateParts.resize(2);
+        aMemDay.maDateParts[0] = aYearName;
+        aMemDay.maDateParts[1] = aMonthName;
         aMemDay.mbDate = true;
         aMemDay.mbLeaf = true;
         aMemDay.mbVisible = bVisible;
         aMemDay.mpParent = pMonthEntry;
+        aMemDay.meDatePartType = ScCheckListMember::DAY;
         maMembers.push_back(aMemDay);
     }
 
@@ -1441,7 +1520,7 @@ void ScCheckListMenuWindow::addDateMember(const OUString& rsName, double nVal, b
 
 void ScCheckListMenuWindow::addMember(const OUString& rName, bool bVisible)
 {
-    Member aMember;
+    ScCheckListMember aMember;
     aMember.maName = rName;
     aMember.mbDate = false;
     aMember.mbLeaf = true;
@@ -1543,13 +1622,31 @@ void ScCheckListBox::CheckEntry( SvTreeListEntry* pParent, bool bCheck )
     }
 }
 
-void ScCheckListBox::ShowCheckEntry( const OUString& sName, SvTreeListEntry* pParent, bool bShow, bool bCheck )
+SvTreeListEntry* ScCheckListBox::ShowCheckEntry( const OUString& sName, ScCheckListMember& rMember, bool bShow, bool bCheck )
 {
-    SvTreeListEntry* pEntry = FindEntry( pParent, sName );
+    SvTreeListEntry* pEntry = nullptr;
+    if ( !rMember.mbDate || ( rMember.mbDate && rMember.mpParent ) )
+        pEntry = FindEntry( rMember.mpParent, sName );
+
     if ( bShow )
     {
         if ( !pEntry )
         {
+            if ( rMember.mbDate )
+            {
+                SvTreeListEntry* pYearEntry = FindEntry( nullptr, rMember.maDateParts[0] );
+                if ( !pYearEntry )
+                    pYearEntry = InsertEntry( rMember.maDateParts[0], nullptr, true );
+                SvTreeListEntry* pMonthEntry = FindEntry( pYearEntry, rMember.maDateParts[1] );
+                if ( !pMonthEntry )
+                    pMonthEntry = InsertEntry( rMember.maDateParts[1], pYearEntry, true );
+                SvTreeListEntry* pDayEntry = FindEntry( pMonthEntry, rMember.maName );
+                if ( !pDayEntry )
+                    pDayEntry = InsertEntry( rMember.maName, pMonthEntry );
+
+                return pDayEntry; // Return leaf node
+            }
+
             pEntry = InsertEntry(
                 sName);
 
@@ -1560,7 +1657,17 @@ void ScCheckListBox::ShowCheckEntry( const OUString& sName, SvTreeListEntry* pPa
             CheckEntry( pEntry, bCheck );
     }
     else if ( pEntry )
-        RemoveParentKeepChildren( pEntry );
+    {
+        GetModel()->Remove( pEntry );
+        SvTreeListEntry* pParent = rMember.mpParent;
+        while ( pParent && !pParent->HasChildren() )
+        {
+            SvTreeListEntry* pTmp = pParent;
+            pParent = pTmp->GetParent();
+            GetModel()->Remove( pTmp );
+        }
+    }
+    return nullptr;
 }
 
 SvTreeListEntry* ScCheckListBox::CountCheckedEntries( SvTreeListEntry* pParent, sal_uLong& nCount ) const
diff --git a/sc/source/ui/inc/checklistmenu.hxx b/sc/source/ui/inc/checklistmenu.hxx
index c671711..9f7587a 100644
--- a/sc/source/ui/inc/checklistmenu.hxx
+++ b/sc/source/ui/inc/checklistmenu.hxx
@@ -19,6 +19,7 @@
 
 #include <memory>
 #include <unordered_map>
+#include <map>
 
 namespace com { namespace sun { namespace star {
 
@@ -190,6 +191,8 @@ private:
     VclPtr<ScMenuFloatingWindow> mpParentMenu;
 };
 
+struct ScCheckListMember;
+
 class ScCheckListBox : public SvTreeListBox
 {
     SvLBoxButtonData*   mpCheckButton;
@@ -204,13 +207,35 @@ class ScCheckListBox : public SvTreeListBox
     void Init();
     void CheckEntry( const OUString& sName, SvTreeListEntry* pParent, bool bCheck = true );
     void CheckEntry( SvTreeListEntry* pEntry, bool bCheck = true );
-    void ShowCheckEntry( const OUString& sName, SvTreeListEntry* pParent, bool bShow = true, bool bCheck = true );
+    SvTreeListEntry* ShowCheckEntry( const OUString& sName, ScCheckListMember& rMember, bool bShow = true, bool bCheck = true );
     bool IsChecked( const OUString& sName, SvTreeListEntry* pParent );
     SvTreeListEntry* FindEntry( SvTreeListEntry* pParent, const OUString& sNode );
     sal_uInt16 GetCheckedEntryCount() const;
     void         ExpandChildren( SvTreeListEntry* pParent );
     virtual void KeyInput( const KeyEvent& rKEvt ) override;
 };
+
+struct ScCheckListMember
+{
+    enum DatePartType
+    {
+        YEAR,
+        MONTH,
+        DAY,
+    };
+
+    OUString                 maName; // node name
+    OUString                 maRealName;
+    bool                     mbVisible;
+    bool                     mbDate;
+    bool                     mbLeaf;
+    DatePartType             meDatePartType;
+    // To store Year and Month if the member if DAY type
+    std::vector<OUString>    maDateParts;
+    ScCheckListMember();
+    SvTreeListEntry* mpParent;
+};
+
 /**
  * This class implements a popup window for field button, for quick access
  * of hide-item list, and possibly more stuff related to field options.
@@ -280,17 +305,6 @@ protected:
     virtual void handlePopupEnd() override;
 
 private:
-    struct Member
-    {
-        OUString maName; // node name
-        OUString maRealName;
-        bool            mbVisible;
-        bool            mbDate;
-        bool            mbLeaf;
-
-        Member();
-        SvTreeListEntry* mpParent;
-    };
 
     class CancelButton : public ::CancelButton
     {
@@ -327,6 +341,7 @@ private:
     void setAllMemberState(bool bSet);
     void selectCurrentMemberOnly(bool bSet);
     void cycleFocus(bool bReverse = false);
+    void updateMemberParents( SvTreeListEntry* pLeaf, size_t nIdx );
 
     DECL_LINK_TYPED( ButtonHdl, Button*, void );
     DECL_LINK_TYPED( TriStateHdl, Button*, void );
@@ -347,7 +362,10 @@ private:
     std::vector<VclPtr<vcl::Window> >          maTabStopCtrls;
     size_t                          mnCurTabStop;
 
-    std::vector<Member>           maMembers;
+    std::vector<ScCheckListMember> maMembers;
+    // For Dates
+    std::map<OUString, size_t>    maYearMonthMap;
+
     std::unique_ptr<ExtendedData> mpExtendedData;
     std::unique_ptr<Action>       mpOKAction;
     std::unique_ptr<Action>       mpPopupEndAction;
commit f0414eace2e719e8477771d27effe5e57ecdeda3
Author: Noel Grandin <noel at peralex.com>
Date:   Thu Jun 9 14:46:17 2016 +0200

    tdf#100257 - Data : XML Source does not work
    
    Revert "sc: boost::ptr_vector->std::vector"
    This reverts commit 280553e30f4ddc932838f98a9efaac03a988a0df.
    
    Reviewed-on: https://gerrit.libreoffice.org/26106
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
    (cherry picked from commit d6a6f587a852ba5c993c658b6b6432a65207f5b7)
    
    sc: eeek, a boost::ptr_vector! take it off! take it off!
    (cherry picked from commit 741077bf1cdb0c9240ee3e90f07a42bef5bb7a8f)
    
    Change-Id: Ia50c9cf7902e2e830c6e7f7a13c8f04341556e6c
    Reviewed-on: https://gerrit.libreoffice.org/26150
    Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit 895468d7388ee17ba33804f19bad52933312ae5d)
    Reviewed-on: https://gerrit.libreoffice.org/26160
    Reviewed-by: Eike Rathke <erack at redhat.com>
    (cherry picked from commit 49b2548231a4eaf3f1304d15b0bb3f050ac99b49)

diff --git a/sc/inc/orcusxml.hxx b/sc/inc/orcusxml.hxx
index e16029c..9d803ef 100644
--- a/sc/inc/orcusxml.hxx
+++ b/sc/inc/orcusxml.hxx
@@ -15,6 +15,7 @@
 #include <vcl/image.hxx>
 
 #include <vector>
+#include <memory>
 
 class SvTreeListEntry;
 
@@ -37,7 +38,7 @@ struct ScOrcusXMLTreeParam
         SC_DLLPUBLIC EntryData(EntryType eType);
     };
 
-    typedef std::vector<EntryData> EntryDataVec;
+    typedef std::vector<std::unique_ptr<EntryData>> UserDataStoreType;
 
     Image maImgElementDefault;
     Image maImgElementRepeat;
@@ -47,7 +48,7 @@ struct ScOrcusXMLTreeParam
      * Store all custom data instances since the tree control doesn't manage
      * the life cycle of user datas.
      */
-    EntryDataVec maUserDataStore;
+    UserDataStoreType m_UserDataStore;
 
     static SC_DLLPUBLIC EntryData* getUserData(SvTreeListEntry& rEntry);
     static SC_DLLPUBLIC const EntryData* getUserData(const SvTreeListEntry& rEntry);
diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx
index 618b0ce..fbddf7f 100644
--- a/sc/source/filter/orcus/xmlcontext.cxx
+++ b/sc/source/filter/orcus/xmlcontext.cxx
@@ -15,6 +15,7 @@
 #include <svtools/treelistbox.hxx>
 #include <svtools/treelistentry.hxx>
 #include <ucbhelper/content.hxx>
+#include <o3tl/make_unique.hxx>
 
 #include <orcus/spreadsheet/import_interface.hpp>
 #include <orcus/xml_structure_tree.hpp>
@@ -34,11 +35,18 @@ using namespace com::sun::star;
 namespace {
 
 ScOrcusXMLTreeParam::EntryData& setUserDataToEntry(
-    SvTreeListEntry& rEntry, ScOrcusXMLTreeParam::EntryDataVec& rStore, ScOrcusXMLTreeParam::EntryType eType)
+    SvTreeListEntry& rEntry, ScOrcusXMLTreeParam::UserDataStoreType& rStore, ScOrcusXMLTreeParam::EntryType eType)
 {
-    rStore.push_back(ScOrcusXMLTreeParam::EntryData(eType));
-    rEntry.SetUserData(&rStore.back());
-    return rStore.back();
+    rStore.push_back(o3tl::make_unique<ScOrcusXMLTreeParam::EntryData>(eType));
+    rEntry.SetUserData(rStore.back().get());
+    return *rStore.back();
+}
+
+void setEntityNameToUserData(
+    ScOrcusXMLTreeParam::EntryData& rEntryData,
+    const orcus::xml_structure_tree::entity_name& entity, const orcus::xml_structure_tree::walker& walker)
+{
+    rEntryData.mnNamespaceID = walker.get_xmlns_index(entity.ns);
 }
 
 OUString toString(const orcus::xml_structure_tree::entity_name& entity, const orcus::xml_structure_tree::walker& walker)
@@ -66,9 +74,10 @@ void populateTree(
         return;
 
     ScOrcusXMLTreeParam::EntryData& rEntryData = setUserDataToEntry(
-        *pEntry, rParam.maUserDataStore,
+        *pEntry, rParam.m_UserDataStore,
         bRepeat ? ScOrcusXMLTreeParam::ElementRepeat : ScOrcusXMLTreeParam::ElementDefault);
-    rEntryData.mnNamespaceID = rWalker.get_xmlns_index(rElemName.ns);
+
+    setEntityNameToUserData(rEntryData, rElemName, rWalker);
 
     if (bRepeat)
     {
@@ -95,8 +104,8 @@ void populateTree(
             continue;
 
         ScOrcusXMLTreeParam::EntryData& rAttrData =
-            setUserDataToEntry(*pAttr, rParam.maUserDataStore, ScOrcusXMLTreeParam::Attribute);
-        rAttrData.mnNamespaceID = rWalker.get_xmlns_index(rAttrName.ns);
+            setUserDataToEntry(*pAttr, rParam.m_UserDataStore, ScOrcusXMLTreeParam::Attribute);
+        setEntityNameToUserData(rAttrData, rAttrName, rWalker);
 
         rTreeCtrl.SetExpandedEntryBmp(pAttr, rParam.maImgAttribute);
         rTreeCtrl.SetCollapsedEntryBmp(pAttr, rParam.maImgAttribute);
@@ -172,7 +181,7 @@ ScOrcusXMLContextImpl::~ScOrcusXMLContextImpl() {}
 
 bool ScOrcusXMLContextImpl::loadXMLStructure(SvTreeListBox& rTreeCtrl, ScOrcusXMLTreeParam& rParam)
 {
-    rParam.maUserDataStore.clear();
+    rParam.m_UserDataStore.clear();
 
     std::string aStrm;
     loadContentFromURL(maPath, aStrm);
commit fa8e3dab885a0cb9fad9c8edfe4f4c8473ebbf66
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Jun 9 15:52:16 2016 +0200

    tdf#96089 sw: fix scope of bBreakAfter in InsertCnt_()
    
    The problem is that bBreakAfter is passed by reference to SwLayHelper
    and stored as a reference member there, so it has to live at least as
    long as pPageMaker.  (Unfortunately C++ can't statically check that.)
    
    This then somehow caused the number of pages created after initial load
    to be 812 instead of the correct 396 determined from the layout-cache in
    the bugdoc, and that then caused Drawing objects to move backward during
    the following re-pagination, and then SwDrawContact::Changed_() calls
    SetFlyFrmAttr() and that sets the document to modified, which triggers the
    AutoSave that was reported in the bug.
    
    (regression from b4b7703e4335460cf48bfd6440f116359994c8ff)
    
    Change-Id: I14dc4644c2e127b3c3ff0e6876eedcc534e1a68e
    (cherry picked from commit c488214817516c13603deb1c180fef02f4c700bf)
    Reviewed-on: https://gerrit.libreoffice.org/26121
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 95ed42cc9f9cd40503ca609f1bcad31c5298889b)

diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 8033f04..aac8960 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -1248,6 +1248,7 @@ void _InsertCnt( SwLayoutFrame *pLay, SwDoc *pDoc,
     SwPageFrame *pPage = pLay->FindPageFrame();
     const SwFrameFormats *pTable = pDoc->GetSpzFrameFormats();
     SwFrame       *pFrame = nullptr;
+    bool bBreakAfter = false;
     SwActualSection *pActualSection = nullptr;
     SwLayHelper *pPageMaker;
 
@@ -1258,7 +1259,6 @@ void _InsertCnt( SwLayoutFrame *pLay, SwDoc *pDoc,
     {
         // Attention: the SwLayHelper class uses references to the content-,
         // page-, layout-frame etc. and may change them!
-        bool   bBreakAfter   = false;
         pPageMaker = new SwLayHelper( pDoc, pFrame, pPrv, pPage, pLay,
                 pActualSection, bBreakAfter, nIndex, 0 == nEndIndex );
         if( bStartPercent )
commit 0cc856aaf7a6f9706ff09fe99b7d2f64249efcc5
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jun 7 16:30:45 2016 +0200

    Resolves: tdf#89186 descend into dimension children to obtain leaf result
    
    (cherry picked from commit 81f2bbc2fc42688d5f884d3dde58abe4c265694a)
    
    Backported.
    
    Change-Id: Iea6c292c6d7347c4abb221672e583118196e6c1f
    Reviewed-on: https://gerrit.libreoffice.org/26028
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 7a3be3a229d10665d724ffc215c9dca4ab8dd0bc)

diff --git a/sc/source/core/data/dpresfilter.cxx b/sc/source/core/data/dpresfilter.cxx
index a416bc3..cffc05a 100644
--- a/sc/source/core/data/dpresfilter.cxx
+++ b/sc/source/core/data/dpresfilter.cxx
@@ -219,6 +219,24 @@ const ScDPResultTree::ValuesType* ScDPResultTree::getResults(
         pMember = itMem->second;
     }
 
+    if (pMember->maValues.empty())
+    {
+        // Descend into dimension member children while there is no result and
+        // exactly one dimension field with exactly one member item, for which
+        // no further constraint (filter) has to match.
+        const MemberNode* pFieldMember = pMember;
+        while (pFieldMember->maChildDimensions.size() == 1)
+        {
+            DimensionsType::const_iterator itDim( pFieldMember->maChildDimensions.begin());
+            const DimensionNode* pDim = itDim->second;
+            if (pDim->maChildMembers.size() != 1)
+                break;  // while
+            pFieldMember = pDim->maChildMembers.begin()->second;
+            if (!pFieldMember->maValues.empty())
+                return &pFieldMember->maValues;
+        }
+    }
+
     return &pMember->maValues;
 }
 
commit 0acf32a129477e9407184f0a52fe935ae7a8186d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Jun 8 15:36:24 2016 +0200

    tdf#100269 svx: fix undo of table column resize
    
    SdrTableObjImpl::LayoutTable() assumed no re-layout is needed in case
    the total width of the table and the number of columns is the same, but
    undo of resize is a situation where we also need to check the individual
    widths of the columns, otherwise layout won't be up to date.
    
    (cherry picked from commits a106165e7fd39215c4717e1486aef05f6af9180f and
    9cea9137b2534da4056f72d3c8a07f85a02f85be)
    
    Conflicts:
    	sd/qa/unit/tiledrendering/tiledrendering.cxx
    
    Change-Id: Ia5ebb05af79dda1c0d8c5bb10e7f37f81ee1d035
    Reviewed-on: https://gerrit.libreoffice.org/26072
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 0525de4392491aa267c719dda09e3a068cdb413d)

diff --git a/include/svx/svdotable.hxx b/include/svx/svdotable.hxx
index 408f0b8..a38a27f 100644
--- a/include/svx/svdotable.hxx
+++ b/include/svx/svdotable.hxx
@@ -293,6 +293,8 @@ public:
     static void ExportAsRTF( SvStream& rStrm, SdrTableObj& rObj );
     static void ImportAsRTF( SvStream& rStrm, SdrTableObj& rObj );
 
+    virtual void dumpAsXml(struct _xmlTextWriter* pWriter) const override;
+
 private:
     void init( sal_Int32 nColumns, sal_Int32 nRows );
 
diff --git a/sd/qa/unit/tiledrendering/data/table-column.odp b/sd/qa/unit/tiledrendering/data/table-column.odp
new file mode 100644
index 0000000..d2c274e
Binary files /dev/null and b/sd/qa/unit/tiledrendering/data/table-column.odp differ
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 7e527ef..7952b22 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -31,6 +31,7 @@
 #include <ViewShell.hxx>
 #include <sdpage.hxx>
 #include <unomodel.hxx>
+#include <drawdoc.hxx>
 
 using namespace css;
 
@@ -57,6 +58,7 @@ public:
     void testSearchAll();
     void testSearchAllSelections();
     void testResizeTable();
+    void testResizeTableColumn();
 #endif
 
     CPPUNIT_TEST_SUITE(SdTiledRenderingTest);
@@ -72,6 +74,7 @@ public:
     CPPUNIT_TEST(testSearchAll);
     CPPUNIT_TEST(testSearchAllSelections);
     CPPUNIT_TEST(testResizeTable);
+    CPPUNIT_TEST(testResizeTableColumn);
 #endif
     CPPUNIT_TEST_SUITE_END();
 
@@ -80,6 +83,7 @@ private:
     SdXImpressDocument* createDoc(const char* pName);
     static void callback(int nType, const char* pPayload, void* pData);
     void callbackImpl(int nType, const char* pPayload);
+    xmlDocPtr parseXmlDump();
 #endif
 
     uno::Reference<lang::XComponent> mxComponent;
@@ -90,13 +94,15 @@ private:
     sal_Int32 m_nPart;
     std::vector<OString> m_aSearchResultSelection;
     std::vector<int> m_aSearchResultPart;
+    xmlBufferPtr m_pXmlBuffer;
 #endif
 };
 
 SdTiledRenderingTest::SdTiledRenderingTest()
 #if !defined(WNT) && !defined(MACOSX)
     : m_bFound(true),
-      m_nPart(0)
+      m_nPart(0),
+      m_pXmlBuffer(nullptr)
 #endif
 {
 }
@@ -113,6 +119,11 @@ void SdTiledRenderingTest::tearDown()
     if (mxComponent.is())
         mxComponent->dispose();
 
+#if !defined(_WIN32) && !defined(MACOSX)
+    if (m_pXmlBuffer)
+        xmlBufferFree(m_pXmlBuffer);
+#endif
+
     test::BootstrapFixture::tearDown();
 }
 
@@ -211,6 +222,28 @@ void SdTiledRenderingTest::callbackImpl(int nType, const char* pPayload)
     }
 }
 
+xmlDocPtr SdTiledRenderingTest::parseXmlDump()
+{
+    if (m_pXmlBuffer)
+        xmlBufferFree(m_pXmlBuffer);
+
+    // Create the xml writer.
+    m_pXmlBuffer = xmlBufferCreate();
+    xmlTextWriterPtr pXmlWriter = xmlNewTextWriterMemory(m_pXmlBuffer, 0);
+    xmlTextWriterStartDocument(pXmlWriter, nullptr, nullptr, nullptr);
+
+    // Create the dump.
+    SdXImpressDocument* pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
+    CPPUNIT_ASSERT(pImpressDocument);
+    pImpressDocument->GetDoc()->dumpAsXml(pXmlWriter);
+
+    // Delete the xml writer.
+    xmlTextWriterEndDocument(pXmlWriter);
+    xmlFreeTextWriter(pXmlWriter);
+
+    return xmlParseMemory(reinterpret_cast<const char*>(xmlBufferContent(m_pXmlBuffer)), xmlBufferLength(m_pXmlBuffer));
+}
+
 void SdTiledRenderingTest::testRegisterCallback()
 {
     SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp");
@@ -502,6 +535,60 @@ void SdTiledRenderingTest::testResizeTable()
     comphelper::LibreOfficeKit::setActive(false);
 }
 
+void SdTiledRenderingTest::testResizeTableColumn()
+{
+    // Load the document.
+    comphelper::LibreOfficeKit::setActive();
+    SdXImpressDocument* pXImpressDocument = createDoc("table-column.odp");
+    sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
+    SdPage* pActualPage = pViewShell->GetActualPage();
+    SdrObject* pObject = pActualPage->GetObj(0);
+    auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject);
+    CPPUNIT_ASSERT(pTableObject);
+
+    // Select the table by marking it + starting and ending text edit.
+    SdrView* pView = pViewShell->GetView();
+    pView->MarkObj(pObject, pView->GetSdrPageView());
+    pView->SdrBeginTextEdit(pObject);
+    pView->SdrEndTextEdit();
+
+    // Remember the original cell widths.
+    xmlDocPtr pXmlDoc = parseXmlDump();
+    OString aPrefix = "/sdrModel/sdPage/sdrObjList/sdrTableObj/sdrTableObjImpl/tableLayouter/columns/";
+    sal_Int32 nExpectedColumn1 = getXPath(pXmlDoc, aPrefix + "layout[1]", "size").toInt32();
+    sal_Int32 nExpectedColumn2 = getXPath(pXmlDoc, aPrefix + "layout[2]", "size").toInt32();
+    xmlFreeDoc(pXmlDoc);
+    pXmlDoc = nullptr;
+
+    // Resize the left column, decrease its width by 1 cm.
+    Point aInnerRowEdge = pObject->GetSnapRect().Center();
+    pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_START, convertMm100ToTwip(aInnerRowEdge.getX()), convertMm100ToTwip(aInnerRowEdge.getY()));
+    pXImpressDocument->setGraphicSelection(LOK_SETGRAPHICSELECTION_END, convertMm100ToTwip(aInnerRowEdge.getX() - 1000), convertMm100ToTwip(aInnerRowEdge.getY()));
+
+    // Remember the resized column widths.
+    pXmlDoc = parseXmlDump();
+    sal_Int32 nResizedColumn1 = getXPath(pXmlDoc, aPrefix + "layout[1]", "size").toInt32();
+    CPPUNIT_ASSERT(nResizedColumn1 < nExpectedColumn1);
+    sal_Int32 nResizedColumn2 = getXPath(pXmlDoc, aPrefix + "layout[2]", "size").toInt32();
+    CPPUNIT_ASSERT(nResizedColumn2 > nExpectedColumn2);
+    xmlFreeDoc(pXmlDoc);
+    pXmlDoc = nullptr;
+
+    // Now undo the resize.
+    pXImpressDocument->GetDocShell()->GetUndoManager()->Undo();
+
+    // Check the undo result.
+    pXmlDoc = parseXmlDump();
+    sal_Int32 nActualColumn1 = getXPath(pXmlDoc, aPrefix + "layout[1]", "size").toInt32();
+    // Expected was 7049, actual was 6048, i.e. the first column width after undo was 1cm smaller than expected.
+    CPPUNIT_ASSERT_EQUAL(nExpectedColumn1, nActualColumn1);
+    sal_Int32 nActualColumn2 = getXPath(pXmlDoc, aPrefix + "layout[2]", "size").toInt32();
+    CPPUNIT_ASSERT_EQUAL(nExpectedColumn2, nActualColumn2);
+    xmlFreeDoc(pXmlDoc);
+    pXmlDoc = nullptr;
+    comphelper::LibreOfficeKit::setActive(false);
+}
+
 #endif
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SdTiledRenderingTest);
diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index 4fbcb1f..1bf48c1 100644
--- a/svx/source/table/svdotable.cxx
+++ b/svx/source/table/svdotable.cxx
@@ -57,6 +57,7 @@
 #include "svx/xflftrit.hxx"
 #include "svx/xfltrit.hxx"
 #include <cppuhelper/implbase.hxx>
+#include <libxml/xmlwriter.h>
 
 
 using ::com::sun::star::uno::Any;
@@ -223,6 +224,8 @@ public:
     void dispose();
 
     sal_Int32 getColumnCount() const;
+    /// Get widths of the columns in the table.
+    std::vector<sal_Int32> getColumnWidths() const;
     sal_Int32 getRowCount() const;
 
     void DragEdge( bool mbHorizontal, int nEdge, sal_Int32 nOffset );
@@ -240,6 +243,7 @@ public:
     void connectTableStyle();
     void disconnectTableStyle();
     virtual bool isInUse() override;
+    void dumpAsXml(struct _xmlTextWriter* pWriter) const;
 private:
     static SdrTableObjImpl* lastLayoutTable;
     static Rectangle lastLayoutInputRectangle;
@@ -249,6 +253,7 @@ private:
     static WritingMode lastLayoutMode;
     static sal_Int32 lastRowCount;
     static sal_Int32 lastColCount;
+    static std::vector<sal_Int32> lastColWidths;
 };
 
 SdrTableObjImpl* SdrTableObjImpl::lastLayoutTable = nullptr;
@@ -259,6 +264,7 @@ bool SdrTableObjImpl::lastLayoutFitHeight;
 WritingMode SdrTableObjImpl::lastLayoutMode;
 sal_Int32 SdrTableObjImpl::lastRowCount;
 sal_Int32 SdrTableObjImpl::lastColCount;
+std::vector<sal_Int32> SdrTableObjImpl::lastColWidths;
 
 SdrTableObjImpl::SdrTableObjImpl()
 : mpTableObj( nullptr )
@@ -641,6 +647,14 @@ bool SdrTableObjImpl::isInUse()
     return mpTableObj && mpTableObj->IsInserted();
 }
 
+void SdrTableObjImpl::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    xmlTextWriterStartElement(pWriter, BAD_CAST("sdrTableObjImpl"));
+    if (mpLayouter)
+        mpLayouter->dumpAsXml(pWriter);
+    xmlTextWriterEndElement(pWriter);
+}
+
 
 // XEventListener
 
@@ -680,6 +694,15 @@ sal_Int32 SdrTableObjImpl::getColumnCount() const
     return mxTable.is() ? mxTable->getColumnCount() : 0;
 }
 
+std::vector<sal_Int32> SdrTableObjImpl::getColumnWidths() const
+{
+    std::vector<sal_Int32> aRet;
+
+    if (mxTable.is())
+        aRet = mxTable->getColumnWidths();
+
+    return aRet;
+}
 
 
 sal_Int32 SdrTableObjImpl::getRowCount() const
@@ -701,7 +724,8 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe
             || lastLayoutFitWidth != bFitWidth || lastLayoutFitHeight != bFitHeight
             || lastLayoutMode != writingMode
             || lastRowCount != getRowCount()
-            || lastColCount != getColumnCount() )
+            || lastColCount != getColumnCount()
+            || lastColWidths != getColumnWidths() )
         {
             lastLayoutTable = this;
             lastLayoutInputRectangle = rArea;
@@ -710,6 +734,9 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe
             lastLayoutMode = writingMode;
             lastRowCount = getRowCount();
             lastColCount = getColumnCount();
+            // Column resize, when the total width and column count of the
+            // table is unchanged, but re-layout is still needed.
+            lastColWidths = getColumnWidths();
             TableModelNotifyGuard aGuard( mxTable.get() );
             mpLayouter->LayoutTable( rArea, bFitWidth, bFitHeight );
             lastLayoutResultRectangle = rArea;
@@ -2609,6 +2636,17 @@ void SdrTableObj::uno_unlock()
         mpImpl->mxTable->unlockBroadcasts();
 }
 
+void SdrTableObj::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    xmlTextWriterStartElement(pWriter, BAD_CAST("sdrTableObj"));
+    xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("ptr"), "%p", this);
+
+    SdrObject::dumpAsXml(pWriter);
+
+    mpImpl->dumpAsXml(pWriter);
+
+    xmlTextWriterEndElement(pWriter);
+}
 
 
 
diff --git a/svx/source/table/tablecolumn.cxx b/svx/source/table/tablecolumn.cxx
index 8f48aad..9695169 100644
--- a/svx/source/table/tablecolumn.cxx
+++ b/svx/source/table/tablecolumn.cxx
@@ -294,6 +294,15 @@ rtl::Reference< FastPropertySetInfo > TableColumn::getStaticPropertySetInfo()
     return xInfo;
 }
 
+TableModelRef TableColumn::getModel() const
+{
+    return mxTableModel;
+}
+
+sal_Int32 TableColumn::getWidth() const
+{
+    return mnWidth;
+}
 
 
 } }
diff --git a/svx/source/table/tablecolumn.hxx b/svx/source/table/tablecolumn.hxx
index 2f9b3cc..cc76845 100644
--- a/svx/source/table/tablecolumn.hxx
+++ b/svx/source/table/tablecolumn.hxx
@@ -59,6 +59,11 @@ public:
     virtual void SAL_CALL setFastPropertyValue( ::sal_Int32 nHandle, const css::uno::Any& aValue ) throw (css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
     virtual css::uno::Any SAL_CALL getFastPropertyValue( ::sal_Int32 nHandle ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
 
+    /// Get the table that owns this column.
+    TableModelRef getModel() const;
+    /// Get the width of this column.
+    sal_Int32 getWidth() const;
+
 private:
     static rtl::Reference< FastPropertySetInfo > getStaticPropertySetInfo();
 
diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx
index 1df1378..62d179f 100644
--- a/svx/source/table/tablelayouter.cxx
+++ b/svx/source/table/tablelayouter.cxx
@@ -22,6 +22,7 @@
 #include <com/sun/star/awt/XLayoutConstrains.hpp>
 
 #include <tools/gen.hxx>
+#include <libxml/xmlwriter.h>
 
 #include "cell.hxx"
 #include "cellrange.hxx"
@@ -1151,6 +1152,34 @@ void TableLayouter::DistributeRows( ::Rectangle& rArea, sal_Int32 nFirstRow, sal
     }
 }
 
+void TableLayouter::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    xmlTextWriterStartElement(pWriter, BAD_CAST("tableLayouter"));
+
+    xmlTextWriterStartElement(pWriter, BAD_CAST("columns"));
+    for (const auto& rColumn : maColumns)
+        rColumn.dumpAsXml(pWriter);
+    xmlTextWriterEndElement(pWriter);
+
+    xmlTextWriterStartElement(pWriter, BAD_CAST("rows"));
+    for (const auto& rRow : maRows)
+        rRow.dumpAsXml(pWriter);
+    xmlTextWriterEndElement(pWriter);
+
+    xmlTextWriterEndElement(pWriter);
+}
+
+void TableLayouter::Layout::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    xmlTextWriterStartElement(pWriter, BAD_CAST("layout"));
+
+    xmlTextWriterWriteAttribute(pWriter, BAD_CAST("pos"), BAD_CAST(OString::number(mnPos).getStr()));
+    xmlTextWriterWriteAttribute(pWriter, BAD_CAST("size"), BAD_CAST(OString::number(mnSize).getStr()));
+    xmlTextWriterWriteAttribute(pWriter, BAD_CAST("minSize"), BAD_CAST(OString::number(mnMinSize).getStr()));
+
+    xmlTextWriterEndElement(pWriter);
+}
+
 } }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/table/tablelayouter.hxx b/svx/source/table/tablelayouter.hxx
index 82b8468..9cd7359 100644
--- a/svx/source/table/tablelayouter.hxx
+++ b/svx/source/table/tablelayouter.hxx
@@ -97,6 +97,7 @@ public:
 
     void DistributeColumns( ::Rectangle& rArea, sal_Int32 nFirstCol, sal_Int32 nLastCol );
     void DistributeRows( ::Rectangle& rArea, sal_Int32 nFirstRow, sal_Int32 nLastRow );
+    void dumpAsXml(struct _xmlTextWriter* pWriter) const;
 
 private:
     CellRef getCell( const CellPos& rPos ) const;
@@ -126,6 +127,7 @@ private:
 
         Layout() : mnPos( 0 ), mnSize( 0 ), mnMinSize( 0 ) {}
         void clear() { mnPos = 0; mnSize = 0; mnMinSize = 0; }
+        void dumpAsXml(struct _xmlTextWriter* pWriter) const;
     };
     typedef std::vector< Layout > LayoutVector;
 
diff --git a/svx/source/table/tablemodel.cxx b/svx/source/table/tablemodel.cxx
index c815720..0bef744 100644
--- a/svx/source/table/tablemodel.cxx
+++ b/svx/source/table/tablemodel.cxx
@@ -338,6 +338,13 @@ sal_Int32 SAL_CALL TableModel::getColumnCount() throw (RuntimeException, std::ex
     return getColumnCountImpl();
 }
 
+std::vector<sal_Int32> TableModel::getColumnWidths()
+{
+    std::vector<sal_Int32> aRet;
+    for (const TableColumnRef& xColumn : maColumns)
+        aRet.push_back(xColumn->getWidth());
+    return aRet;
+}
 
 // XComponent
 
diff --git a/svx/source/table/tablemodel.hxx b/svx/source/table/tablemodel.hxx
index 32d5973..cf9d253 100644
--- a/svx/source/table/tablemodel.hxx
+++ b/svx/source/table/tablemodel.hxx
@@ -82,6 +82,8 @@ public:
 
     /// merges the cell at the given position with the given span
     void merge( sal_Int32 nCol, sal_Int32 nRow, sal_Int32 nColSpan, sal_Int32 nRowSpan );
+    /// Get the width of all columns in this table.
+    std::vector<sal_Int32> getColumnWidths();
 
     // ICellRange
     virtual sal_Int32 getLeft() override;
diff --git a/svx/source/table/tableundo.cxx b/svx/source/table/tableundo.cxx
index 59d08a2..eb01847 100644
--- a/svx/source/table/tableundo.cxx
+++ b/svx/source/table/tableundo.cxx
@@ -423,6 +423,9 @@ void TableColumnUndo::setData( const Data& rData )
     mxCol->mbIsVisible = rData.mbIsVisible;
     mxCol->mbIsStartOfNewPage = rData.mbIsStartOfNewPage;
     mxCol->maName = rData.maName;
+
+    // Trigger re-layout of the table.
+    mxCol->getModel()->setModified(true);
 }
 
 
commit 5c25c27508052f22bc39c16671732948740aa9b9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Jun 7 09:25:16 2016 +0200

    tdf#50821 RTF import: fix handling of \trpaddf{b,l,r,t}
    
    The width type is an attribute, not an sprm; this resulted in zero cell
    margin in the table -> the text overlapped with the border shape.
    
    (cherry picked from commit 279f1a204f8c5b5121e9f1f9c431d17bdab1f5bd)
    
    Conflicts:
    	writerfilter/source/rtftok/rtfdispatchvalue.cxx
    
    Change-Id: I611feb084a16c76faf281d376e1a4a31e162f53d
    Reviewed-on: https://gerrit.libreoffice.org/26069
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 50e8780b1471c551ad58d7babeb99028868a0c4d)

diff --git a/sw/qa/extras/rtfimport/data/tdf50821.rtf b/sw/qa/extras/rtfimport/data/tdf50821.rtf
new file mode 100644
index 0000000..03f253d
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf50821.rtf
@@ -0,0 +1,10 @@
+{\rtf1
+\pard\plain
+before\par
+\trowd \trpaddl108\trpaddfl3 \cellx10362\pard\plain\intbl
+table
+\cell\row
+\pard\plain
+end
+\par
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 5fa67e9..5242f85 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -2595,6 +2595,14 @@ DECLARE_RTFIMPORT_TEST(testTdf77349, "tdf77349.rtf")
     CPPUNIT_ASSERT_EQUAL(OUString("graphic1"), xImage->getName());
 }
 
+DECLARE_RTFIMPORT_TEST(testTdf50821, "tdf50821.rtf")
+{
+    uno::Reference<text::XTextTable> xTable(getParagraphOrTable(2), uno::UNO_QUERY);
+    uno::Reference<text::XTextRange> xCell(xTable->getCellByName("A1"), uno::UNO_QUERY);
+    // This was 0, \trpaddfl was mishandled on import.
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(191), getProperty<sal_Int32>(xCell, "LeftBorderDistance"));
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 60c7ab4..69e4324 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -4835,8 +4835,8 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
         default:
             break;
         }
-        lcl_putNestedSprm(m_aStates.top().aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
-        lcl_putNestedSprm(m_aDefaultState.aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
+        lcl_putNestedAttribute(m_aStates.top().aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
+        lcl_putNestedAttribute(m_aDefaultState.aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
     }
     break;
     case RTF_TRPADDB:
commit 009260e17b9cd99337aaf930dffc298ab57bf9b8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Jun 3 22:00:12 2016 +0200

    filter: PPT import: PptPlaceholder is 1 byte large
    
    The array of 8 bytes corresponds to 8 enum values and is read directly
    in ReadPptSlideLayoutAto(); this was wrongly converted to enum.
    
    (regression from e5a03da8eb02c333502d6b427625e7bf554ff203)
    
    Change-Id: I5757e06459467b3c84c4a404493fa3be23e4e9a0
    (cherry picked from commit 6325cdb735effc5c9ff85819b20aec4271158519)
    Reviewed-on: https://gerrit.libreoffice.org/26011
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 523505e556aed1934ad5c5609d9a6377e72becce)

diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 127e779..4500975 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -306,6 +306,7 @@ SvStream& ReadPptSlideLayoutAtom( SvStream& rIn, PptSlideLayoutAtom& rAtom )
     sal_Int32 nTmp;
     rIn.ReadInt32(nTmp);
     rAtom.eLayout = static_cast<PptSlideLayout>(nTmp);
+    static_assert(sizeof(rAtom.aPlaceholderId) == 8, "wrong size of serialized array");
     rIn.Read( rAtom.aPlaceholderId, 8 );
     return rIn;
 }
diff --git a/include/filter/msfilter/svdfppt.hxx b/include/filter/msfilter/svdfppt.hxx
index cfd27dd..885634e 100644
--- a/include/filter/msfilter/svdfppt.hxx
+++ b/include/filter/msfilter/svdfppt.hxx
@@ -57,7 +57,7 @@ class PPTTextObj;
 class DffRecordHeader;
 class SvxBulletItem;
 enum class PptSlideLayout;
-enum class PptPlaceholder;
+enum class PptPlaceholder : sal_uInt8;
 
 #define PPT_IMPORTFLAGS_NO_TEXT_ASSERT  1
 
@@ -1463,7 +1463,7 @@ enum class PptSlideLayout
 };
 
 // the following table describes the placeholder id's (values from reality followed by values taken from the documentation)
-enum class PptPlaceholder
+enum class PptPlaceholder : sal_uInt8
 {
     NONE                   = 0,   //  0 None
     MASTERTITLE            = 1,   //  1 Master title
commit 87f11e19d84f01fd143dd1096d156589f330137f
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Jun 7 16:11:02 2016 +0200

    only init the OpenGL context if we need it
    
    Change-Id: I8634589bc0c8ef317089eb08c07974ed81d98982
    Reviewed-on: https://gerrit.libreoffice.org/26050
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 8a94e538c3306b2af1a76c724e4dcae0e3968164)

diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx
index 80b0769..de815c1 100644
--- a/chart2/source/controller/main/ChartWindow.cxx
+++ b/chart2/source/controller/main/ChartWindow.cxx
@@ -49,7 +49,7 @@ ChartWindow::ChartWindow( ChartController* pController, vcl::Window* pParent, Wi
         : Window(pParent, nStyle)
         , m_pWindowController( pController )
         , m_bInPaint(false)
-        , m_pOpenGLWindow(VclPtr<OpenGLWindow>::Create(this))
+        , m_pOpenGLWindow(VclPtr<OpenGLWindow>::Create(this, false))
 {
     this->SetHelpId( HID_SCH_WIN_DOCUMENT );
     this->SetMapMode( MapMode(MAP_100TH_MM) );
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 9814f3c..0c9a945 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -2725,6 +2725,10 @@ void ChartView::impl_updateView( bool bCheckLockedCtrler )
 
             //create chart view
             {
+                OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow();
+                if (pWindow && ChartHelper::isGL3DDiagram(mrChartModel.getFirstDiagram()))
+                    pWindow->Initialize();
+
                 m_bViewDirty = false;
                 m_bViewUpdatePending = false;
                 createShapes();
diff --git a/include/vcl/openglwin.hxx b/include/vcl/openglwin.hxx
index 6b2e58d..cac81a6 100644
--- a/include/vcl/openglwin.hxx
+++ b/include/vcl/openglwin.hxx
@@ -33,7 +33,7 @@ public:
 class VCL_DLLPUBLIC OpenGLWindow : public vcl::Window
 {
 public:
-                   OpenGLWindow(vcl::Window* pParent);
+                   OpenGLWindow(vcl::Window* pParent, bool bInit = true);
     virtual        ~OpenGLWindow();
     virtual void   dispose() override;
 
@@ -48,6 +48,10 @@ public:
     virtual void MouseMove( const MouseEvent& rMEvt ) override;
     virtual void Command( const CommandEvent& rCEvt ) override;
 
+    bool IsInitialized() const;
+
+    void Initialize();
+
 private:
     std::unique_ptr<OpenGLWindowImpl> mxImpl;
     IRenderer* mpRenderer;
diff --git a/vcl/source/window/openglwin.cxx b/vcl/source/window/openglwin.cxx
index 3f95894..c4a41e9 100644
--- a/vcl/source/window/openglwin.cxx
+++ b/vcl/source/window/openglwin.cxx
@@ -15,21 +15,33 @@
 class OpenGLWindowImpl
 {
 public:
-    explicit OpenGLWindowImpl(vcl::Window* pWindow);
+    explicit OpenGLWindowImpl(vcl::Window* pWindow, bool bInit);
     ~OpenGLWindowImpl();
     OpenGLContext& getContext() { return *mxContext.get(); }
+
+    bool IsInitialized() const;
+
+    void Initialize();
+
 private:
+
     rtl::Reference<OpenGLContext> mxContext;
     VclPtr<SystemChildWindow> mxChildWindow;
+
+    bool mbInitialized;
 };
 
-OpenGLWindowImpl::OpenGLWindowImpl(vcl::Window* pWindow)
-    : mxContext(OpenGLContext::Create())
+OpenGLWindowImpl::OpenGLWindowImpl(vcl::Window* pWindow, bool bInit)
+    : mxContext(OpenGLContext::Create()),
+    mbInitialized(bInit)
 {
     SystemWindowData aData = OpenGLContext::generateWinData(pWindow, false);
     mxChildWindow.reset(VclPtr<SystemChildWindow>::Create(pWindow, 0, &aData));
     mxChildWindow->Show();
-    mxContext->init(mxChildWindow.get());
+
+    if (bInit)
+        mxContext->init(mxChildWindow.get());
+
     pWindow->SetMouseTransparent(false);
 }
 
@@ -39,9 +51,20 @@ OpenGLWindowImpl::~OpenGLWindowImpl()
     mxChildWindow.disposeAndClear();
 }
 
-OpenGLWindow::OpenGLWindow(vcl::Window* pParent):
+bool OpenGLWindowImpl::IsInitialized() const
+{
+    return mbInitialized;
+}
+
+void OpenGLWindowImpl::Initialize()
+{
+    mxContext->init(mxChildWindow.get());
+    mbInitialized = true;
+}
+
+OpenGLWindow::OpenGLWindow(vcl::Window* pParent, bool bInit):
     Window(pParent, 0),
-    mxImpl(new OpenGLWindowImpl(this)),
+    mxImpl(new OpenGLWindowImpl(this, bInit)),
     mpRenderer(nullptr)
 {
 }
@@ -118,4 +141,15 @@ void OpenGLWindow::setRenderer(IRenderer* pRenderer)
     mpRenderer = pRenderer;
 }
 
+bool OpenGLWindow::IsInitialized() const
+{
+    return mxImpl->IsInitialized();
+}
+
+void OpenGLWindow::Initialize()
+{
+    if (!IsInitialized())
+        mxImpl->Initialize();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 9d3454cdf77b29e7233e2dc26429daf3a170fc65
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jun 8 12:41:04 2016 +0100

    Resolves: tdf#89394 revert attempt to ditch missing file from recent files
    
    this reverts
    
    commit 93eefe54f5d6b6092371bad1e86444489d29eee2
    Author: Krisztian Pinter <pin.terminator at gmail.com>
    Date:   Fri Sep 6 14:45:13 2013 +0200
    
        Make SvtHistoryOptions not return files if they can't be opened
    
    which seemed like a good idea, but was only really to fix a cosmetic
    problem, while the outcome was a more serious issue
    
    Change-Id: Ic9c9c136e1e50f5e28fe377b64f56e501fb836ca
    (cherry picked from commit 7f25ccc81a35d2a89880cacf7835aa4b875f2ab2)
    (cherry picked from commit 1a9e0f420181316fbbaae14f1afb58a49c77cb3a)
    Reviewed-on: https://gerrit.libreoffice.org/26060
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 85bffd5ddd5364d2f750f74593cd9d2760ccbdbc)

diff --git a/unotools/source/config/historyoptions.cxx b/unotools/source/config/historyoptions.cxx
index 134bee9..2cf39a4 100644
--- a/unotools/source/config/historyoptions.cxx
+++ b/unotools/source/config/historyoptions.cxx
@@ -17,7 +17,6 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <osl/file.hxx>
 #include <sal/log.hxx>
 #include <unotools/historyoptions.hxx>
 #include <unotools/configmgr.hxx>
@@ -264,18 +263,6 @@ void SvtHistoryOptions_Impl::Clear( EHistoryType eHistory )
     }
 }
 
-static bool lcl_fileOpenable(const OUString &rURL)
-{
-    osl::File aRecentFile(rURL);
-    if(!aRecentFile.open(osl_File_OpenFlag_Read))
-    {
-        aRecentFile.close();
-        return true;
-    }
-    else
-        return false;
-}
-
 Sequence< Sequence<PropertyValue> > SvtHistoryOptions_Impl::GetList(EHistoryType eHistory)
 {
     uno::Reference<container::XNameAccess> xListAccess(GetListAccess(eHistory));
@@ -316,22 +303,14 @@ Sequence< Sequence<PropertyValue> > SvtHistoryOptions_Impl::GetList(EHistoryType
             xOrderList->getByName(OUString::number(nItem)) >>= xSet;
             xSet->getPropertyValue(s_sHistoryItemRef) >>= sUrl;
 
-            // Check if file is openable, but for performance reasons try to
-            // only do so for files on a local filesystem.  For Windows,
-            // checking for "file:///" nicely filters out UNC paths (that only
-            // have two slashes), but of course misses to filter out remote
-            // mounts on Unix-like systems:
-            if (!sUrl.startsWith("file:///") || lcl_fileOpenable(sUrl))
-            {
-                xItemList->getByName(sUrl) >>= xSet;
-                seqProperties[s_nOffsetURL  ].Value <<= sUrl;
-
-                xSet->getPropertyValue(s_sFilter)   >>= seqProperties[s_nOffsetFilter   ].Value;
-                xSet->getPropertyValue(s_sTitle)    >>= seqProperties[s_nOffsetTitle    ].Value;
-                xSet->getPropertyValue(s_sPassword) >>= seqProperties[s_nOffsetPassword ].Value;
-                xSet->getPropertyValue(s_sThumbnail)>>= seqProperties[s_nOffsetThumbnail].Value;
-                aRet[nCount++] = seqProperties;
-            }
+            xItemList->getByName(sUrl) >>= xSet;
+            seqProperties[s_nOffsetURL  ].Value <<= sUrl;
+
+            xSet->getPropertyValue(s_sFilter)   >>= seqProperties[s_nOffsetFilter   ].Value;
+            xSet->getPropertyValue(s_sTitle)    >>= seqProperties[s_nOffsetTitle    ].Value;
+            xSet->getPropertyValue(s_sPassword) >>= seqProperties[s_nOffsetPassword ].Value;
+            xSet->getPropertyValue(s_sThumbnail)>>= seqProperties[s_nOffsetThumbnail].Value;
+            aRet[nCount++] = seqProperties;
         }
         catch(const uno::Exception& ex)
         {
commit dff368715166cec7543db63073e946807f4ae4bf
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jun 7 14:28:15 2016 +0100

    Resolves: tdf#100258 crash on disposing media player
    
    SfxDockingWindow::dispose() will call SetFloatingMode false
    its floating, which recreates the mpMediaWindow and so
    the assert occurs about living children.
    
    So toggle out of floating mode before deleting mpMediaWindow
    to avoid that
    
    (cherry picked from commit ec2425ad5fb39df5ad952b27d49e172fdd7ff00d)
    (cherry picked from commit 53d6094bd1337580dcd1c449f2bb696f03afb621)
    
    Change-Id: I0b1cae149261fa43611b9f9a39465ce718e33484
    Reviewed-on: https://gerrit.libreoffice.org/26019
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    (cherry picked from commit 14a0b4a0883eb960896bd213c41e28957f1cda3c)

diff --git a/avmedia/source/framework/mediaplayer.cxx b/avmedia/source/framework/mediaplayer.cxx
index c39af42..93da8e2 100644
--- a/avmedia/source/framework/mediaplayer.cxx
+++ b/avmedia/source/framework/mediaplayer.cxx
@@ -79,13 +79,16 @@ MediaFloater::~MediaFloater()
 
 void MediaFloater::dispose()
 {
+    if (IsFloatingMode())
+    {
+        Show(false, ShowFlags::NoFocusChange);
+        SetFloatingMode(false);
+    }
     delete mpMediaWindow;
     mpMediaWindow = nullptr;
     SfxDockingWindow::dispose();
 }
 
-
-
 void MediaFloater::Resize()
 {
     SfxDockingWindow::Resize();
@@ -94,8 +97,6 @@ void MediaFloater::Resize()
         mpMediaWindow->setPosSize( Rectangle( Point(), GetOutputSizePixel() ) );
 }
 
-
-
 void MediaFloater::ToggleFloatingMode()
 {
     ::avmedia::MediaItem aRestoreItem;
commit 8bd33f334d2cc1cdae4e3ee113b237a63c5b0d78
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jun 7 10:05:35 2016 +0100

    Resolves: tdf#88237 crash without java but with nlp solver installed
    
    Change-Id: Ifb451c299e4586a3a38c83a3111f3ac0b46d9315
    (cherry picked from commit a33d18c1e38dd783e779ca1dbf54e1ad90cae751)
    (cherry picked from commit 07c32ba5f81a3d2ed66ee182b8a7772d20c4266f)
    Reviewed-on: https://gerrit.libreoffice.org/26007
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Katarina Behrens <Katarina.Behrens at cib.de>
    (cherry picked from commit 24f1beffe30e68ad6f19ced885dbee0ba99a7b75)

diff --git a/sc/source/ui/miscdlgs/solverutil.cxx b/sc/source/ui/miscdlgs/solverutil.cxx
index e047cb9..b7a19f4 100644
--- a/sc/source/ui/miscdlgs/solverutil.cxx
+++ b/sc/source/ui/miscdlgs/solverutil.cxx
@@ -65,20 +65,27 @@ void ScSolverUtil::GetImplementations( uno::Sequence<OUString>& rImplNames,
                         OUString sName = xInfo->getImplementationName();
                         OUString sDescription;
 
-                        uno::Reference<sheet::XSolver> xSolver(
-                                xCFac->createInstanceWithContext(xCtx), uno::UNO_QUERY );
-                        uno::Reference<sheet::XSolverDescription> xDesc( xSolver, uno::UNO_QUERY );
-                        if ( xDesc.is() )
-                            sDescription = xDesc->getComponentDescription();
-
-                        if ( sDescription.isEmpty() )
-                            sDescription = sName;          // use implementation name if no description available
-
-                        rImplNames.realloc( nCount+1 );
-                        rImplNames[nCount] = sName;
-                        rDescriptions.realloc( nCount+1 );
-                        rDescriptions[nCount] = sDescription;
-                        ++nCount;
+                        try
+                        {
+                            uno::Reference<sheet::XSolver> xSolver(
+                                    xCFac->createInstanceWithContext(xCtx), uno::UNO_QUERY );
+                            uno::Reference<sheet::XSolverDescription> xDesc( xSolver, uno::UNO_QUERY );
+                            if ( xDesc.is() )
+                                sDescription = xDesc->getComponentDescription();
+
+                            if ( sDescription.isEmpty() )
+                                sDescription = sName;          // use implementation name if no description available
+
+                            rImplNames.realloc( nCount+1 );
+                            rImplNames[nCount] = sName;
+                            rDescriptions.realloc( nCount+1 );
+                            rDescriptions[nCount] = sDescription;
+                            ++nCount;
+                        }
+                        catch (const css::uno::Exception& e)
+                        {
+                            SAL_INFO("sc", "ScSolverUtil::GetImplementations: cannot instantiate: " << sName << ", because: " << e.Message);
+                        }
                     }
                 }
             }
commit 34c5bc26394c1c0df44adb84c877c3b264fae274
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Tue Jun 7 19:00:35 2016 +0200

    update credits
    
    Change-Id: I2ab962d75638f2b09ea5b7db52d951b0ea88b73c
    (cherry picked from commit b14092052f484d6771b7cd212e33dbfc70702410)
    (cherry picked from commit 561695d21d92a1911fbf64bf1231d0eaae3e67e6)

diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt
index 560e63d..847d216 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oas
 is:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:
 experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/5.1.3.2$Linux_X86_64 LibreOffice_project/644e4637d1d8544fd9f56425bd6cec110e49301b</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3601" meta:word-count="12598" meta:character-count="90871" meta:non-whitespace-character-count="79496"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/5.1.3.2$Linux_X86_64 LibreOffice_project/644e4637d1d8544fd9f56425bd6cec110e49301b</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="3605" meta:word-count="12615" meta:character-count="90989" meta:non-whitespace-character-count="79599"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" config:type="long">686</config:config-item>
+   <config:config-item config:name="ViewAreaTop" config:type="long">580</config:config-item>
    <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item>
    <config:config-item config:name="ViewAreaWidth" config:type="long">41197</config:config-item>
-   <config:config-item config:name="ViewAreaHeight" config:type="long">21327</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" config:type="long">21645</config:config-item>
    <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
    <config:config-item config:name="InBrowseMode" config:type="boolean">true</config:config-item>
    <config:config-item-map-indexed config:name="Views">
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" config:type="long">3676</config:config-item>
      <config:config-item config:name="ViewTop" config:type="long">3471</config:config-item>
      <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" config:type="long">686</config:config-item>
+     <config:config-item config:name="VisibleTop" config:type="long">580</config:config-item>
      <config:config-item config:name="VisibleRight" config:type="long">41697</config:config-item>
-     <config:config-item config:name="VisibleBottom" config:type="long">22012</config:config-item>
+     <config:config-item config:name="VisibleBottom" config:type="long">22223</config:config-item>
      <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
@@ -68,7 +68,7 @@
    <config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
    <config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
    <config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" config:type="int">5262926</config:config-item>
+   <config:config-item config:name="Rsid" config:type="int">5290081</config:config-item>
    <config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
    <config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
    <config:config-item config:name="ApplyUserData" config:type="boolean">false</config:config-item>
@@ -315,21 +315,18 @@
    <style:table-properties style:width="25.381cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.749cm"/>
+   <style:table-column-properties style:column-width="5.373cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.563cm"/>
+   <style:table-column-properties style:column-width="6.722cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.643cm"/>
-  </style:style>
-  <style:style style:name="Tabelle1.D" style:family="table-column">
-   <style:table-column-properties style:column-width="5.426cm"/>
+   <style:table-column-properties style:column-width="6.563cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle1.B259" style:family="table-cell">
+  <style:style style:name="Tabelle1.D259" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle2" style:family="table">
@@ -393,23 +390,26 @@
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle5" style:family="table">
-   <style:table-properties style:width="30.857cm" table:align="left"/>
+   <style:table-properties style:width="30.884cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
-   <style:table-column-properties style:column-width="11.538cm"/>
+   <style:table-column-properties style:column-width="6.087cm"/>
   </style:style>
   <style:style style:name="Tabelle5.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.669cm"/>
+   <style:table-column-properties style:column-width="11.511cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.14cm"/>
+   <style:table-column-properties style:column-width="6.537cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
-   <style:table-column-properties style:column-width="6.511cm"/>
+   <style:table-column-properties style:column-width="6.749cm"/>
   </style:style>
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
+  <style:style style:name="Tabelle5.C599" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
+  </style:style>
   <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
    <style:text-properties fo:font-size="2pt" style:font-size-asian="2pt" style:font-size-complex="2pt"/>
   </style:style>
@@ -1030,14 +1030,14 @@
        </office:binary-data>
       </draw:image>
      </draw:frame>Credits</text:p>
-    <text:p text:style-name="Text_20_body">1166 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2016-06-01 00:10:46.</text:p>
+    <text:p text:style-name="Text_20_body">1168 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2016-06-07 18:52:00.</text:p>
     <text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p>
     <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
      <table:table-column table:style-name="Tabelle1.A"/>
      <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-column table:style-name="Tabelle1.C"/>
-     <table:table-column table:style-name="Tabelle1.D"/>
+     <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ruediger Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 2000-10-10</text:p>
@@ -1057,10 +1057,10 @@
        <text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 19471<text:line-break/>Joined: 2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 19498<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 12143<text:line-break/>Joined: 2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 12170<text:line-break/>Joined: 2000-10-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p>
@@ -1068,16 +1068,16 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 7408<text:line-break/>Joined: 2010-03-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 7418<text:line-break/>Joined: 2010-03-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 5959<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 5994<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 5619<text:line-break/>Joined: 2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 5627<text:line-break/>Joined: 2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 5452<text:line-break/>Joined: 2008-06-16</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 5473<text:line-break/>Joined: 2008-06-16</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1088,15 +1088,15 @@
        <text:p text:style-name="Table_20_Contents">Frank Schoenheit [fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 4140<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 4147<text:line-break/>Joined: <text:span text:style-name="T2">2011-03-17</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 3268<text:line-break/>Joined: 2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 3280<text:line-break/>Joined: 2000-10-11</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3242<text:line-break/>Joined: 2009-11-12</text:p>
+       <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3248<text:line-break/>Joined: 2009-11-12</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-19</text:p>
@@ -1113,7 +1113,7 @@
        <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2545<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2366<text:line-break/>Joined: 2009-06-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2369<text:line-break/>Joined: 2009-06-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2202<text:line-break/>Joined: 2004-08-05</text:p>
@@ -1124,7 +1124,7 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2158<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2159<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2113<text:line-break/>Joined: 2009-10-14</text:p>
@@ -1152,7 +1152,7 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 1505<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 1507<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Fridrich Štrba<text:line-break/>Commits: 1326<text:line-break/>Joined: 2007-02-22</text:p>
@@ -1180,10 +1180,10 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 1091<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 1095<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 983<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 985<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Petr Mladek<text:line-break/>Commits: 958<text:line-break/>Joined: 2006-10-03</text:p>
@@ -1278,10 +1278,10 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 430<text:line-break/>Joined: 2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 465<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 428<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 436<text:line-break/>Joined: 2008-06-01</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 405<text:line-break/>Joined: 2005-03-14</text:p>
@@ -1309,10 +1309,10 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 356<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yousuf Philips<text:line-break/>Commits: 338<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-21</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Yousuf Philips<text:line-break/>Commits: 340<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-21</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 327<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 328<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>David Ostrovsky<text:line-break/>Commits: 309<text:line-break/>Joined: <text:span text:style-name="T2">2012-04-01</text:span></text:p>
@@ -1340,10 +1340,10 @@
        <text:p text:style-name="Table_20_Contents">Lars Langhans<text:line-break/>Commits: 260<text:line-break/>Joined: 2000-09-22</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Muthu Subramanian<text:line-break/>Commits: 248<text:line-break/>Joined: 2010-08-25</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 251<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 248<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Muthu Subramanian<text:line-break/>Commits: 248<text:line-break/>Joined: 2010-08-25</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1410,7 +1410,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 146<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-14</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 143<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Stanislav Horacek<text:line-break/>Commits: 144<text:line-break/>Joined: <text:span text:style-name="T2">2012-12-09</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Gregor Hartmann<text:line-break/>Commits: 141<text:line-break/>Joined: 2000-10-12</text:p>
@@ -1421,7 +1421,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Artur Dryomov<text:line-break/>Commits: 137<text:line-break/>Joined: <text:span text:style-name="T2">2013-03-14</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marco Cecchetti<text:line-break/>Commits: 132<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Marco Cecchetti<text:line-break/>Commits: 133<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-14</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jesús Corrius<text:line-break/>Commits: 130<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-07</text:span></text:p>
@@ -1536,14 +1536,17 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Korrawit Pruegsanusak<text:line-break/>Commits: 81<text:line-break/>Joined: <text:span text:style-name="T2">2011-05-28</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Madl<text:line-break/>Commits: 74<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-15</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jochen Nitschke<text:line-break/>Commits: 75<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gergo Mocsi<text:line-break/>Commits: 72<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-14</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tobias Madl<text:line-break/>Commits: 74<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-15</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gergo Mocsi<text:line-break/>Commits: 72<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-14</text:span></text:p>
+      </table:table-cell>
+      <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>weigao<text:line-break/>Commits: 72<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-07</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
@@ -1552,9 +1555,6 @@
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Bartosz Kosiorek<text:line-break/>Commits: 70<text:line-break/>Joined: 2010-09-17</text:p>
       </table:table-cell>
-      <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jochen Nitschke<text:line-break/>Commits: 69<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-02</text:span></text:p>
-      </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
@@ -1623,18 +1623,18 @@
        <text:p text:style-name="Table_20_Contents">Giuseppe Castagno<text:line-break/>Commits: 55<text:line-break/>Joined: 2007-12-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthew J. Francis<text:line-break/>Commits: 55<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 55<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Nikolai Pretzell<text:line-break/>Commits: 54<text:line-break/>Joined: 2001-03-09</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matthew J. Francis<text:line-break/>Commits: 55<text:line-break/>Joined: <text:span text:style-name="T2">2014-08-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihály Palenik<text:line-break/>Commits: 54<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-11</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Nikolai Pretzell<text:line-break/>Commits: 54<text:line-break/>Joined: 2001-03-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 54<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mihály Palenik<text:line-break/>Commits: 54<text:line-break/>Joined: <text:span text:style-name="T2">2013-07-11</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>yangzhang<text:line-break/>Commits: 54<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-04</text:span></text:p>
@@ -1670,6 +1670,9 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list