User: rt      
Date: 06/05/04 01:50:22

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

Log:
 INTEGRATION: CWS dba203c (1.101.2); FILE MERGED
 2006/04/24 13:46:53 oj 1.101.2.2: RESYNC: (1.101-1.102); FILE MERGED
 2006/04/13 13:57:19 oj 1.101.2.1: hold TableRow now with a shared_ptr

File Changes:

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

File [changed]: TableController.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/tabledesign/TableController.cxx?r1=1.102&r2=1.103
Delta lines:  +30 -30
---------------------
--- TableController.cxx 19 Apr 2006 13:24:38 -0000      1.102
+++ TableController.cxx 4 May 2006 08:50:19 -0000       1.103
@@ -156,6 +156,7 @@
 #ifndef DBAUI_TOOLS_HXX
 #include "UITools.hxx"
 #endif
+#include <boost/mem_fn.hpp>
 
 extern "C" void SAL_CALL createRegistryInfo_OTableControl()
 {
@@ -192,9 +193,9 @@
                }
        }
        
//------------------------------------------------------------------------------
-       struct OTableRowCompare : public ::std::binary_function< OTableRow*, 
::rtl::OUString, bool>
+       struct OTableRowCompare : public ::std::binary_function<  
::boost::shared_ptr<OTableRow> , ::rtl::OUString, bool>
        {
-               bool operator() (const OTableRow* lhs, const ::rtl::OUString& 
rhs) const 
+               bool operator() (const  ::boost::shared_ptr<OTableRow>  lhs, 
const ::rtl::OUString& rhs) const 
                {
                        OFieldDescription* pField = lhs->GetActFieldDescr();
                        return pField && pField->GetName() == rhs;
@@ -277,9 +278,7 @@
        OTableController_BASE::disposing();
        m_pView         = NULL;
 
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       for(;aIter != m_vRowList.end();++aIter)
-               delete *aIter;
+    m_vRowList.clear();
 }
 // 
-----------------------------------------------------------------------------
 FeatureState OTableController::GetState(sal_uInt16 _nId) const
@@ -300,7 +299,8 @@
                        aReturn.bEnabled = isModified();
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -308,7 +308,8 @@
                        aReturn.bEnabled = isConnected() && isEditable();
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -331,7 +332,8 @@
                                );
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -705,7 +707,8 @@
        sal_Bool bCheck = sal_True;
        if ( isModified() )
        {
-               ::std::vector<OTableRow*>::iterator aIter = 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter 
= ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+            ::boost::mem_fn(&OTableRow::isValid));
                if ( aIter != m_vRowList.end() )
                {
                        QueryBox aQry(getView(), 
ModuleRes(TABLE_DESIGN_SAVEMODIFIED));
@@ -849,8 +852,8 @@
                Reference<XAppend> xAppend(xColumns,UNO_QUERY);
                OSL_ENSURE(xAppend.is(),"No XAppend Interface!");
 
-               ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-               ::std::vector<OTableRow*>::iterator aEnd = m_vRowList.end();
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter 
= m_vRowList.begin();
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aEnd 
= m_vRowList.end();
                for(;aIter != aEnd;++aIter)
                {
                        OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -926,12 +929,9 @@
 {
        //////////////////////////////////////////////////////////////////////
        // Wenn Datenstruktur bereits vorhanden, Struktur leeren
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       for(;aIter != m_vRowList.end();++aIter)
-               delete *aIter;
        m_vRowList.clear();
 
-       OTableRow* pTabEdRow = NULL;
+       ::boost::shared_ptr<OTableRow>  pTabEdRow;
        Reference< XDatabaseMetaData> xMetaData = getMetaData( );
        //////////////////////////////////////////////////////////////////////
        // Datenstruktur mit Daten aus DatenDefinitionsObjekt fuellen
@@ -988,7 +988,7 @@
                        
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_ALIGN))
                                xColumn->getPropertyValue(PROPERTY_ALIGN)       
        >>= nAlign;
 
-                       pTabEdRow = new OTableRow();
+                       pTabEdRow.reset(new OTableRow());
                        pTabEdRow->SetReadOnly(!bIsAlterAllowed);
                        // search for type
                        sal_Bool bForce;
@@ -1029,7 +1029,7 @@
 
                        for(;pKeyBegin != pKeyEnd;++pKeyBegin)
                        {
-                               ::std::vector<OTableRow*>::iterator aIter = 
m_vRowList.begin();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aIter = m_vRowList.begin();
                                for(;aIter != m_vRowList.end();++aIter)
                                {
                                        
if((*aIter)->GetActFieldDescr()->GetName() == *pKeyBegin)
@@ -1054,7 +1054,7 @@
        bool bReadRow = !isAddAllowed();
        for(sal_Int32 i=m_vRowList.size(); i<128; i++ )
        {
-               pTabEdRow = new OTableRow();
+               pTabEdRow.reset(new OTableRow());
                pTabEdRow->SetReadOnly(bReadRow);
                m_vRowList.push_back( pTabEdRow);
        }
@@ -1104,7 +1104,7 @@
        Reference< XDatabaseMetaData> xMetaData = getMetaData( );
 
        ::comphelper::UStringMixEqual bCase(xMetaData.is() ? 
xMetaData->supportsMixedCaseQuotedIdentifiers() : sal_True);
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
        for(;aIter != m_vRowList.end();++aIter)
        {
                OFieldDescription* pFieldDesc = (*aIter)->GetActFieldDescr();
@@ -1114,7 +1114,7 @@
                        sal_uInt16 nErrorRes = sal_uInt16(-1);
                        sal_uInt16 nFieldPos = sal_uInt16(-1);
                        // first check for duplicate names
-                       ::std::vector<OTableRow*>::const_iterator aIter2 = 
aIter+1;
+                       ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter2 = aIter+1;
                        for(;aIter2 != m_vRowList.end();++aIter2)
                        {
                                OFieldDescription* pCompareDesc = 
(*aIter2)->GetActFieldDescr();
@@ -1142,7 +1142,7 @@
 
                        if (nReturn == RET_YES)
                        {
-                               OTableRow* pNewRow = new OTableRow();
+                               ::boost::shared_ptr<OTableRow>  pNewRow(new 
OTableRow());
                                TOTypeInfoSP pTypeInfo = 
::dbaui::queryPrimaryKeyType(m_aTypeInfo);
                                
                                if ( pTypeInfo.get() )
@@ -1194,8 +1194,8 @@
 
 
        ::std::map< ::rtl::OUString,sal_Bool,::comphelper::UStringMixLess> 
aColumns(xMetaData.is() ? (xMetaData->supportsMixedCaseQuotedIdentifiers() ? 
true : false): sal_True);
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       ::std::vector<OTableRow*>::iterator aEnd = m_vRowList.end();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aEnd = 
m_vRowList.end();
        // first look for columns where something other than the name changed
        for(sal_Int32 nPos = 0;aIter != aEnd;++aIter,++nPos)
        {
@@ -1504,8 +1504,8 @@
                                xKeyColumns = NULL;
                                Reference<XDrop> xDrop(xKeys,UNO_QUERY);
                                xDrop->dropByIndex(i); // delete the key
-                               ::std::vector<OTableRow*>::iterator aIter = 
m_vRowList.begin();
-                               ::std::vector<OTableRow*>::iterator aEnd = 
m_vRowList.end();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aIter = m_vRowList.begin();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aEnd = m_vRowList.end();
                                for(;aIter != aEnd;++aIter)
                                {
                                        OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -1550,7 +1550,7 @@
                                setEditable( xMeta.is() && !xMeta->isReadOnly() 
&& (isAlterAllowed() || isDropAllowed() || isAddAllowed()) );
                                if(!isEditable())
                                {
-                                       ::std::vector<OTableRow*>::iterator 
aIter = m_vRowList.begin();
+                                       ::std::vector< 
::boost::shared_ptr<OTableRow> >::iterator aIter = m_vRowList.begin();
                                        for(; aIter != m_vRowList.end(); 
++aIter)
                                                (*aIter)->SetReadOnly(sal_True);
                                }
@@ -1602,7 +1602,7 @@
 {
        sal_Bool bAlterAllowed  = isAlterAllowed();
        sal_Bool bAddAllowed    = isAddAllowed();
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_vRowList.begin();
        for(;aIter != m_vRowList.end();++aIter)
        {
                OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -1626,7 +1626,7 @@
 
        ::comphelper::UStringMixEqual bCase(xMetaData.is() ? 
xMetaData->supportsMixedCaseQuotedIdentifiers() : sal_True);
 
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
        for(sal_Int32 i=0;aIter != m_vRowList.end();++aIter)
        {
                OFieldDescription* pFieldDesc = (*aIter)->GetActFieldDescr();
@@ -1681,8 +1681,8 @@
 sal_Int32 OTableController::getFirstEmptyRowPosition() const
 {
        sal_Int32 nRet = -1;
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
-       ::std::vector<OTableRow*>::const_iterator aEnd = m_vRowList.end();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aEnd = 
m_vRowList.end();
        for(;aIter != aEnd;++aIter)
        {
                if ( !*aIter || !(*aIter)->GetActFieldDescr() || 
!(*aIter)->GetActFieldDescr()->GetName().getLength() )




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

Reply via email to