[Libreoffice-commits] core.git: sw/source

Oliver Specht oliver.specht at cib.de
Fri Jan 15 07:39:55 PST 2016


 sw/source/uibase/dbui/dbmgr.cxx |   19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

New commits:
commit f5ccfd60c2c5dab392d58870fbd079a6286bc239
Author: Oliver Specht <oliver.specht at cib.de>
Date:   Fri Jan 15 15:32:18 2016 +0100

    tdf#73025: set absolute database index fixed
    
    DB field 'Any record' should not move the ResultSet directly but needs
    to work on the selection if there is any
    
    Change-Id: Ie66cc66afa1118bfbc44fc29889e2b36ecd074ee
    Reviewed-on: https://gerrit.libreoffice.org/21491
    Reviewed-by: Oliver Specht <oliver.specht at cib.de>
    Tested-by: Oliver Specht <oliver.specht at cib.de>

diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx
index 395b3d3..90c7e57 100644
--- a/sw/source/uibase/dbui/dbmgr.cxx
+++ b/sw/source/uibase/dbui/dbmgr.cxx
@@ -332,7 +332,24 @@ static bool lcl_MoveAbsolute(SwDSParam* pParam, long nAbsPos)
     bool bRet = false;
     try
     {
-        if(pParam->bScrollable)
+        if(pParam->aSelection.getLength())
+        {
+            if(pParam->aSelection.getLength() <= nAbsPos)
+            {
+                pParam->bEndOfDB = true;
+                bRet = false;
+            }
+            else
+            {
+                pParam->nSelectionIndex = nAbsPos;
+                sal_Int32 nPos = 0;
+                pParam->aSelection.getConstArray()[ pParam->nSelectionIndex ] >>= nPos;
+                pParam->bEndOfDB = !pParam->xResultSet->absolute( nPos );
+                pParam->CheckEndOfDB();
+                bRet = !pParam->bEndOfDB;
+            }
+        }
+        else if(pParam->bScrollable)
         {
             bRet = pParam->xResultSet->absolute( nAbsPos );
         }


More information about the Libreoffice-commits mailing list