User: obo     
Date: 05/12/21 05:37:08

Modified:
 /dba/dbaccess/source/ui/querydesign/
  SelectionBrowseBox.cxx

Log:
 INTEGRATION: CWS dba202a (1.64.14); FILE MERGED
 2005/11/25 14:33:41 oj 1.64.14.2: #127169# check column pos
 2005/11/25 12:19:17 oj 1.64.14.1: #127169# check column pos

File Changes:

Directory: /dba/dbaccess/source/ui/querydesign/
===============================================

File [changed]: SelectionBrowseBox.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx?r1=1.64&r2=1.65
Delta lines:  +16 -10
---------------------
--- SelectionBrowseBox.cxx      24 Oct 2005 08:32:22 -0000      1.64
+++ SelectionBrowseBox.cxx      21 Dec 2005 13:37:05 -0000      1.65
@@ -35,9 +35,6 @@
 #ifndef DBAUI_QUERYDESIGN_OSELECTIONBROWSEBOX_HXX
 #include "SelectionBrowseBox.hxx"
 #endif
-#ifndef _DBAUI_MODULE_DBU_HXX_
-#include "moduledbu.hxx"
-#endif
 #ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_
 #include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
 #endif
@@ -524,10 +521,15 @@
 void OSelectionBrowseBox::InitController(CellControllerRef& rController, long 
nRow, sal_uInt16 nColId)
 {
        DBG_CHKTHIS(OSelectionBrowseBox,NULL);
+       OSL_ENSURE(nColId != BROWSER_INVALIDID,"An Invalid Id was set!");
+       if ( nColId == BROWSER_INVALIDID )
+               return;
        OQueryController* pController = 
static_cast<OQueryController*>(static_cast<OQueryController*>(getDesignView()->getController()));
 
-       
-       OTableFieldDescRef pEntry = getFields()[GetColumnPos(nColId)-1];
+       USHORT nPos = GetColumnPos(nColId);
+       if ( nPos == 0 || nPos == BROWSER_ENDOFSELECTION || nPos > 
getFields().size() )
+               return;
+       OTableFieldDescRef pEntry = getFields()[nPos-1];
        DBG_ASSERT(pEntry.isValid(), "OSelectionBrowseBox::InitController : 
keine FieldDescription !");
        long nCellIndex = GetRealRow(nRow);
 
@@ -963,6 +965,7 @@
                // fuer die Undo-Action
                String strOldCellContents,sNewValue;
                long nRow = GetRealRow(GetCurRow());
+               sal_Bool bAppendRow = sal_False;
                switch (nRow)
                {
                        case BROW_VIS_ROW:
@@ -1231,17 +1234,20 @@
                                pEntry->SetCriteria(nIdx, aCrit);
                                sNewValue = pEntry->GetCriteria(nIdx);
                                if(aCrit.getLength() && nRow >= 
(GetRowCount()-1))
-                               {
-                                       RowInserted( GetRowCount()-1, 1, TRUE );
-                                       m_bVisibleRow.push_back(sal_True);
-                                       ++m_nVisibleCount;
-                               }
+                                       bAppendRow = sal_True;
                        }
                }
                if(!bError && Controller())
                        Controller()->ClearModified();
 
                RowModified(GetCurRow(), GetCurColumnId());
+
+               if ( bAppendRow )
+               {
+                       RowInserted( GetRowCount()-1, 1, TRUE );
+                       m_bVisibleRow.push_back(sal_True);
+                       ++m_nVisibleCount;
+               }
 
                if(!bError)
                {




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to