User: rt      
Date: 06/05/04 01:51:54

Modified:
 /dba/dbaccess/source/ui/tabledesign/
  TableUndo.cxx

Log:
 INTEGRATION: CWS dba203c (1.13.108); FILE MERGED
 2006/04/13 13:57:19 oj 1.13.108.1: hold TableRow now with a shared_ptr

File Changes:

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

File [changed]: TableUndo.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/tabledesign/TableUndo.cxx?r1=1.13&r2=1.14
Delta lines:  +24 -46
---------------------
--- TableUndo.cxx       8 Sep 2005 16:43:12 -0000       1.13
+++ TableUndo.cxx       4 May 2006 08:51:52 -0000       1.14
@@ -252,15 +252,15 @@
        DBG_CTOR(OTableEditorDelUndoAct,NULL);
        //////////////////////////////////////////////////////////////////////
        // DeletedRowList fuellen
-       ::std::vector<OTableRow*>* pOriginalRows = pOwner->GetRowList();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pOriginalRows = 
pOwner->GetRowList();
        long nIndex = pOwner->FirstSelectedRow();
-       OTableRow* pOriginalRow;
-       OTableRow* pNewRow;
+        ::boost::shared_ptr<OTableRow>  pOriginalRow;
+        ::boost::shared_ptr<OTableRow>  pNewRow;
 
        while( nIndex >= 0 )
        {
                pOriginalRow = (*pOriginalRows)[nIndex];
-               pNewRow = new OTableRow( *pOriginalRow, nIndex );
+               pNewRow.reset(new OTableRow( *pOriginalRow, nIndex ));
                m_aDeletedRows.push_back( pNewRow);
 
                nIndex = pOwner->NextSelectedRow();
@@ -271,12 +271,6 @@
 OTableEditorDelUndoAct::~OTableEditorDelUndoAct()
 {
        DBG_DTOR(OTableEditorDelUndoAct,NULL);
-       //////////////////////////////////////////////////////////////////////
-       // DeletedRowList loeschen
-       ::std::vector<OTableRow*>::iterator aIter = m_aDeletedRows.begin();
-       for(;aIter != m_aDeletedRows.end();++aIter)
-               delete *aIter;
-
        m_aDeletedRows.clear(); 
 }
 
@@ -286,14 +280,14 @@
        //////////////////////////////////////////////////////////////////////
        // Geloeschte Zeilen wieder einfuegen
        ULONG nPos;
-       ::std::vector<OTableRow*>::iterator aIter = m_aDeletedRows.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_aDeletedRows.begin();
        
-       OTableRow* pNewOrigRow;
-       ::std::vector<OTableRow*>* pOriginalRows = pTabEdCtrl->GetRowList();
+        ::boost::shared_ptr<OTableRow>  pNewOrigRow;
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pOriginalRows = 
pTabEdCtrl->GetRowList();
 
        for(;aIter != m_aDeletedRows.end();++aIter)
        {
-               pNewOrigRow = new OTableRow( **aIter );
+               pNewOrigRow.reset(new OTableRow( **aIter ));
                nPos = (*aIter)->GetPos();
                pOriginalRows->insert( pOriginalRows->begin()+nPos,pNewOrigRow);
        }
@@ -308,13 +302,12 @@
        //////////////////////////////////////////////////////////////////////
        // Zeilen wieder loeschen
        ULONG nPos;
-       ::std::vector<OTableRow*>::iterator aIter = m_aDeletedRows.begin();
-       ::std::vector<OTableRow*>* pOriginalRows = pTabEdCtrl->GetRowList();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_aDeletedRows.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pOriginalRows = 
pTabEdCtrl->GetRowList();
 
        for(;aIter != m_aDeletedRows.end();++aIter)
        {
                nPos = (*aIter)->GetPos();
-               delete (*pOriginalRows)[ nPos];
                pOriginalRows->erase( pOriginalRows->begin()+nPos );
        }
 
@@ -329,7 +322,7 @@
 DBG_NAME(OTableEditorInsUndoAct);
 OTableEditorInsUndoAct::OTableEditorInsUndoAct( OTableEditorCtrl* pOwner, 
                                                                                
           long nInsertPosition ,
-                                                                               
           const ::std::vector< OTableRow*>& _vInsertedRows) 
+                                                                               
           const ::std::vector<  ::boost::shared_ptr<OTableRow> >& 
_vInsertedRows) 
        :OTableEditorUndoAct( pOwner,STR_TABED_UNDO_ROWINSERTED )
        ,m_nInsPos( nInsertPosition )
        ,m_vInsertedRows(_vInsertedRows)
@@ -341,12 +334,6 @@
 OTableEditorInsUndoAct::~OTableEditorInsUndoAct()
 {
        DBG_DTOR(OTableEditorInsUndoAct,NULL);
-       //////////////////////////////////////////////////////////////////////
-       // InsertedRowList loeschen
-       ::std::vector<OTableRow*>::iterator aIter = m_vInsertedRows.begin();
-       for(;aIter != m_vInsertedRows.end();++aIter)
-               delete *aIter;
-
        m_vInsertedRows.clear();        
 }
 
@@ -355,10 +342,9 @@
 {
        //////////////////////////////////////////////////////////////////////
        // Eingefuegte Zeilen wieder loeschen
-       ::std::vector<OTableRow*>* pOriginalRows = pTabEdCtrl->GetRowList();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pOriginalRows = 
pTabEdCtrl->GetRowList();
        for( long i=(m_nInsPos+m_vInsertedRows.size()-1); i>(m_nInsPos-1); i-- )
        {
-               delete (*pOriginalRows)[i];
                pOriginalRows->erase(pOriginalRows->begin()+i);
        }
 
@@ -374,12 +360,12 @@
        //////////////////////////////////////////////////////////////////////
        // Zeilen wieder einfuegen
        long nInsertRow = m_nInsPos;
-       OTableRow* pRow;
-       ::std::vector<OTableRow*>::iterator aIter = m_vInsertedRows.begin();
-       ::std::vector<OTableRow*>* pRowList = pTabEdCtrl->GetRowList();
+        ::boost::shared_ptr<OTableRow>  pRow;
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_vInsertedRows.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pRowList = 
pTabEdCtrl->GetRowList();
        for(;aIter != m_vInsertedRows.end();++aIter)
        {
-               pRow = new OTableRow( **aIter );
+               pRow.reset(new OTableRow( **aIter ));
                pRowList->insert( pRowList->begin()+nInsertRow ,pRow );
                nInsertRow++;
        }
@@ -413,11 +399,10 @@
 {
        //////////////////////////////////////////////////////////////////////
        // Eingefuegte Zeilen wieder loeschen
-       ::std::vector<OTableRow*>* pOriginalRows = pTabEdCtrl->GetRowList();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pOriginalRows = 
pTabEdCtrl->GetRowList();
 
        for( long i=(m_nInsPos+m_nInsRows-1); i>(m_nInsPos-1); i-- )
        {
-               delete (*pOriginalRows)[i];
                pOriginalRows->erase(pOriginalRows->begin()+i);
        }
 
@@ -432,10 +417,10 @@
 {
        //////////////////////////////////////////////////////////////////////
        // Zeilen wieder einfuegen
-       ::std::vector<OTableRow*>* pRowList = pTabEdCtrl->GetRowList();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pRowList = 
pTabEdCtrl->GetRowList();
 
        for( long i=m_nInsPos; i<(m_nInsPos+m_nInsRows); i++ )
-               pRowList->insert( pRowList->begin()+i,new OTableRow() );
+               pRowList->insert( 
pRowList->begin()+i,::boost::shared_ptr<OTableRow>(new OTableRow()) );
 
        pTabEdCtrl->RowInserted( m_nInsPos, m_nInsRows, TRUE );
        pTabEdCtrl->InvalidateHandleColumn();
@@ -467,8 +452,8 @@
 //-------------------------------------------------------------------------
 void OPrimKeyUndoAct::Undo()
 {
-       ::std::vector<OTableRow*>* pRowList = pTabEdCtrl->GetRowList();
-       OTableRow* pRow = NULL;
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pRowList = 
pTabEdCtrl->GetRowList();
+       ::boost::shared_ptr<OTableRow>  pRow;
        long nIndex;
 
        //////////////////////////////////////////////////////////////////////
@@ -496,25 +481,18 @@
 //-------------------------------------------------------------------------
 void OPrimKeyUndoAct::Redo()
 {
-       ::std::vector<OTableRow*>* pRowList = pTabEdCtrl->GetRowList();
-       OTableRow* pRow = NULL;
+       ::std::vector< ::boost::shared_ptr<OTableRow> >* pRowList = 
pTabEdCtrl->GetRowList();
        long nIndex;
 
        //////////////////////////////////////////////////////////////////////
        // Die geloeschten Keys loeschen
        for( nIndex = m_aDelKeys.FirstSelected(); nIndex != SFX_ENDOFSELECTION; 
nIndex=m_aDelKeys.NextSelected() )
-       {
-               pRow = (*pRowList)[nIndex];
-               pRow->SetPrimaryKey( FALSE );
-       }
+               (*pRowList)[nIndex]->SetPrimaryKey( FALSE );
 
        //////////////////////////////////////////////////////////////////////
        // Die eingefuegten Keys herstellen
        for( nIndex = m_aInsKeys.FirstSelected(); nIndex != SFX_ENDOFSELECTION; 
nIndex=m_aInsKeys.NextSelected() )
-       {
-               pRow = (*pRowList)[nIndex];
-               pRow->SetPrimaryKey( TRUE );
-       }
+               (*pRowList)[nIndex]->SetPrimaryKey( TRUE );
 
        m_pEditorCtrl->InvalidateHandleColumn();
        OTableEditorUndoAct::Redo();




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

Reply via email to