diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-05-04 17:07:59 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-05-08 09:06:42 +0200 |
commit | 137ec9e3185bc19884e8fc1a56151c8892b0c52e (patch) | |
tree | c0027e2b41f594a32b2d1fa95d39de957ad3eef2 /svx | |
parent | 18e2ee154ac3af88cb800a548dc24b87947ff937 (diff) |
loplugin:useuniqueptr in FmGridListener
Change-Id: I774aaf10dd9701f40a098280b68557d8b8045b34
Reviewed-on: https://gerrit.libreoffice.org/53884
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/fmcomp/fmgridcl.cxx | 12 | ||||
-rw-r--r-- | svx/source/fmcomp/fmgridif.cxx | 20 | ||||
-rw-r--r-- | svx/source/fmcomp/gridctrl.cxx | 72 |
3 files changed, 45 insertions, 59 deletions
diff --git a/svx/source/fmcomp/fmgridcl.cxx b/svx/source/fmcomp/fmgridcl.cxx index 972a66c94666..668fb08a731b 100644 --- a/svx/source/fmcomp/fmgridcl.cxx +++ b/svx/source/fmcomp/fmgridcl.cxx @@ -1508,7 +1508,7 @@ void FmGridControl::ColumnResized(sal_uInt16 nId) DbGridControl::ColumnResized(nId); // transfer value to the model - DbGridColumn* pCol = DbGridControl::GetColumns().at( GetModelColumnPos(nId) ); + DbGridColumn* pCol = DbGridControl::GetColumns()[ GetModelColumnPos(nId) ].get(); Reference< css::beans::XPropertySet > xColModel(pCol->getModel()); if (xColModel.is()) { @@ -1550,7 +1550,7 @@ void FmGridControl::ColumnMoved(sal_uInt16 nId) { // locate the column and move in the model; // get ColumnPos - DbGridColumn* pCol = DbGridControl::GetColumns().at( GetModelColumnPos(nId) ); + DbGridColumn* pCol = DbGridControl::GetColumns()[ GetModelColumnPos(nId) ].get(); Reference< css::beans::XPropertySet > xCol; // inserting must be based on the column positions @@ -1612,7 +1612,7 @@ void FmGridControl::InitColumnsByModels(const Reference< css::container::XIndexC nWidth = LogicToPixel(Point(nWidth, 0), MapMode(MapUnit::Map10thMM)).X(); AppendColumn(aName, static_cast<sal_uInt16>(nWidth)); - DbGridColumn* pCol = DbGridControl::GetColumns().at( i ); + DbGridColumn* pCol = DbGridControl::GetColumns()[ i ].get(); pCol->setModel(xCol); } @@ -1716,7 +1716,7 @@ void FmGridControl::InitColumnsByFields(const Reference< css::container::XIndexA // inserting must be based on the column positions for (sal_Int32 i = 0; i < xColumns->getCount(); i++) { - DbGridColumn* pCol = GetColumns().at( i ); + DbGridColumn* pCol = GetColumns()[ i ].get(); OSL_ENSURE(pCol,"No grid column!"); if ( pCol ) { @@ -1736,7 +1736,7 @@ void FmGridControl::HideColumn(sal_uInt16 nId) if (nPos == sal_uInt16(-1)) return; - DbGridColumn* pColumn = GetColumns().at( nPos ); + DbGridColumn* pColumn = GetColumns()[ nPos ].get(); if (pColumn->IsHidden()) GetPeer()->columnHidden(pColumn); @@ -1767,7 +1767,7 @@ void FmGridControl::ShowColumn(sal_uInt16 nId) if (nPos == sal_uInt16(-1)) return; - DbGridColumn* pColumn = GetColumns().at( nPos ); + DbGridColumn* pColumn = GetColumns()[ nPos ].get(); if (!pColumn->IsHidden()) GetPeer()->columnVisible(pColumn); diff --git a/svx/source/fmcomp/fmgridif.cxx b/svx/source/fmcomp/fmgridif.cxx index e3cee1d1e471..9dbba769b08f 100644 --- a/svx/source/fmcomp/fmgridif.cxx +++ b/svx/source/fmcomp/fmgridif.cxx @@ -1219,7 +1219,7 @@ Sequence< sal_Bool > SAL_CALL FmXGridPeer::queryFieldDataType( const Type& xType VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >(); sal_Int32 nColumns = pGrid->GetViewColCount(); - DbGridColumns aColumns = pGrid->GetColumns(); + std::vector< std::unique_ptr<DbGridColumn> > const & aColumns = pGrid->GetColumns(); Sequence<sal_Bool> aReturnSequence(nColumns); sal_Bool* pReturnArray = aReturnSequence.getArray(); @@ -1242,7 +1242,7 @@ Sequence< sal_Bool > SAL_CALL FmXGridPeer::queryFieldDataType( const Type& xType sal_uInt16 nModelPos = pGrid->GetModelColumnPos(pGrid->GetColumnIdFromViewPos(static_cast<sal_uInt16>(i))); DBG_ASSERT(nModelPos != sal_uInt16(-1), "FmXGridPeer::queryFieldDataType : no model pos !"); - pCol = aColumns[ nModelPos ]; + pCol = aColumns[ nModelPos ].get(); const DbGridRowRef xRow = pGrid->GetSeekRow(); xFieldContent = (xRow.is() && xRow->HasField(pCol->GetFieldPos())) ? xRow->GetField(pCol->GetFieldPos()).getColumn() : Reference< css::sdb::XColumn > (); if (!xFieldContent.is()) @@ -1287,7 +1287,7 @@ Sequence< Any > SAL_CALL FmXGridPeer::queryFieldData( sal_Int32 nRow, const Type ENSURE_OR_THROW( xPaintRow.is(), "invalid paint row" ); // I need the columns of the control for GetFieldText - DbGridColumns aColumns = pGrid->GetColumns(); + std::vector< std::unique_ptr<DbGridColumn> > const & aColumns = pGrid->GetColumns(); // and through all the columns sal_Int32 nColumnCount = pGrid->GetViewColCount(); @@ -1304,7 +1304,7 @@ Sequence< Any > SAL_CALL FmXGridPeer::queryFieldData( sal_Int32 nRow, const Type // don't use GetCurrentFieldValue to determine the field content as this isn't affected by the above SeekRow // FS - 30.09.99 - 68644 - DbGridColumn* pCol = aColumns[ nModelPos ]; + DbGridColumn* pCol = aColumns[ nModelPos ].get(); xFieldContent = xPaintRow->HasField( pCol->GetFieldPos() ) ? xPaintRow->GetField( pCol->GetFieldPos() ).getColumn() : Reference< XColumn > (); @@ -1436,7 +1436,7 @@ void FmXGridPeer::propertyChange(const PropertyChangeEvent& evt) // in design mode it doesn't matter if (!isDesignMode()) { - DbGridColumn* pCol = pGrid->GetColumns().at( i ); + DbGridColumn* pCol = pGrid->GetColumns()[i].get(); pCol->SetAlignmentFromModel(-1); bInvalidateColumn = true; @@ -1727,7 +1727,7 @@ void FmXGridPeer::elementInserted(const ContainerEvent& evt) pGrid->AppendColumn(aName, static_cast<sal_uInt16>(nWidth), static_cast<sal_Int16>(::comphelper::getINT32(evt.Accessor))); // now set the column - DbGridColumn* pCol = pGrid->GetColumns().at( ::comphelper::getINT32(evt.Accessor) ); + DbGridColumn* pCol = pGrid->GetColumns()[ ::comphelper::getINT32(evt.Accessor) ].get(); pCol->setModel(xNewColumn); Any aHidden = xNewColumn->getPropertyValue(FM_PROP_HIDDEN); @@ -1770,7 +1770,7 @@ void FmXGridPeer::elementReplaced(const ContainerEvent& evt) sal_uInt16 nNewPos = pGrid->GetModelColumnPos(nNewId); // set the model of the new column - DbGridColumn* pCol = pGrid->GetColumns().at( nNewPos ); + DbGridColumn* pCol = pGrid->GetColumns()[ nNewPos ].get(); // for initializing this grid column, we need the fields of the grid's data source Reference< XColumnsSupplier > xSuppColumns; @@ -1833,8 +1833,8 @@ void FmXGridPeer::setProperty( const OUString& PropertyName, const Any& Value) } // need to forward this to the columns - DbGridColumns& rColumns = const_cast<DbGridColumns&>(pGrid->GetColumns()); - for (DbGridColumn* pLoop : rColumns) + std::vector< std::unique_ptr<DbGridColumn> > const & rColumns = pGrid->GetColumns(); + for (auto const & pLoop : rColumns) { FmXGridCell* pXCell = pLoop->GetCell(); if (pXCell) @@ -2334,7 +2334,7 @@ Any FmXGridPeer::getByIndex(sal_Int32 _nIndex) if ( nPos == GRID_COLUMN_NOT_FOUND ) return aElement; - DbGridColumn* pCol = pGrid->GetColumns().at( nPos ); + DbGridColumn* pCol = pGrid->GetColumns()[ nPos ].get(); Reference< css::awt::XControl > xControl(pCol->GetCell()); aElement <<= xControl; diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx index 9f706812a1db..2048e63e7a35 100644 --- a/svx/source/fmcomp/gridctrl.cxx +++ b/svx/source/fmcomp/gridctrl.cxx @@ -1098,10 +1098,9 @@ void DbGridControl::Select() void DbGridControl::ImplInitWindow( const InitWindowFacet _eInitWhat ) { - for (DbGridColumn* pCol : m_aColumns) + for (auto const & pCol : m_aColumns) { - if (pCol) - pCol->ImplInitWindow( GetDataWindow(), _eInitWhat ); + pCol->ImplInitWindow( GetDataWindow(), _eInitWhat ); } if ( _eInitWhat & InitWindowFacet::WritingMode ) @@ -1169,7 +1168,7 @@ void DbGridControl::RemoveRows() // de-initialize all columns // if there are columns, free all controllers - for (DbGridColumn* pColumn : m_aColumns) + for (auto const & pColumn : m_aColumns) pColumn->Clear(); m_pSeekCursor.reset(); @@ -1642,16 +1641,14 @@ void DbGridControl::RemoveColumns() if ( IsEditing() ) DeactivateCell(); - for (DbGridColumn* pColumn : m_aColumns) - delete pColumn; m_aColumns.clear(); EditBrowseBox::RemoveColumns(); } -DbGridColumn* DbGridControl::CreateColumn(sal_uInt16 nId) const +std::unique_ptr<DbGridColumn> DbGridControl::CreateColumn(sal_uInt16 nId) const { - return new DbGridColumn(nId, *const_cast<DbGridControl*>(this)); + return std::unique_ptr<DbGridColumn>(new DbGridColumn(nId, *const_cast<DbGridControl*>(this))); } sal_uInt16 DbGridControl::AppendColumn(const OUString& rName, sal_uInt16 nWidth, sal_uInt16 nModelPos, sal_uInt16 nId) @@ -1675,7 +1672,7 @@ sal_uInt16 DbGridControl::AppendColumn(const OUString& rName, sal_uInt16 nWidth, } // calculate the new id - for (nId=1; (GetModelColumnPos(nId) != GRID_COLUMN_NOT_FOUND) && sal::static_int_cast<DbGridColumns::size_type>(nId) <= m_aColumns.size(); ++nId) + for (nId=1; (GetModelColumnPos(nId) != GRID_COLUMN_NOT_FOUND) && size_t(nId) <= m_aColumns.size(); ++nId) ; DBG_ASSERT(GetViewColumnPos(nId) == GRID_COLUMN_NOT_FOUND, "DbGridControl::AppendColumn : inconsistent internal state !"); // my column's models say "there is no column with id nId", but the view (the base class) says "there is a column ..." @@ -1684,11 +1681,7 @@ sal_uInt16 DbGridControl::AppendColumn(const OUString& rName, sal_uInt16 nWidth, if (nModelPos == HEADERBAR_APPEND) m_aColumns.push_back( CreateColumn(nId) ); else - { - DbGridColumns::iterator it = m_aColumns.begin(); - ::std::advance( it, nModelPos ); - m_aColumns.insert( it, CreateColumn(nId) ); - } + m_aColumns.insert( m_aColumns.begin() + nModelPos, CreateColumn(nId) ); return nId; } @@ -1700,7 +1693,6 @@ void DbGridControl::RemoveColumn(sal_uInt16 nId) const sal_uInt16 nIndex = GetModelColumnPos(nId); if(nIndex != GRID_COLUMN_NOT_FOUND) { - delete m_aColumns[nIndex]; m_aColumns.erase( m_aColumns.begin()+nIndex ); } } @@ -1712,7 +1704,7 @@ void DbGridControl::ColumnMoved(sal_uInt16 nId) // remove the col from the model sal_uInt16 nOldModelPos = GetModelColumnPos(nId); #ifdef DBG_UTIL - DbGridColumn* pCol = m_aColumns[ static_cast<sal_uInt32>(nOldModelPos) ]; + DbGridColumn* pCol = m_aColumns[ nOldModelPos ].get(); DBG_ASSERT(!pCol->IsHidden(), "DbGridControl::ColumnMoved : moved a hidden col ? how this ?"); #endif @@ -1723,7 +1715,7 @@ void DbGridControl::ColumnMoved(sal_uInt16 nId) sal_uInt16 nNewViewPos = GetViewColumnPos(nId); // from that we can compute the new model pos - DbGridColumns::size_type nNewModelPos; + size_t nNewModelPos; for (nNewModelPos = 0; nNewModelPos < m_aColumns.size(); ++nNewModelPos) { if (!m_aColumns[ nNewModelPos ]->IsHidden()) @@ -1794,15 +1786,9 @@ void DbGridControl::ColumnMoved(sal_uInt16 nId) // that. It's because it took me a while to see it myself, and the whole theme (hidden cols, model col // positions, view col positions) is really painful (at least for me) so the above pictures helped me a lot ;) - DbGridColumn* temp = m_aColumns[ nOldModelPos ]; - - DbGridColumns::iterator it = m_aColumns.begin(); - ::std::advance( it, nOldModelPos ); - m_aColumns.erase( it ); - - it = m_aColumns.begin(); - ::std::advance( it, nNewModelPos ); - m_aColumns.insert( it, temp ); + auto temp = std::move(m_aColumns[ nOldModelPos ]); + m_aColumns.erase( m_aColumns.begin() + nOldModelPos ); + m_aColumns.insert( m_aColumns.begin() + nNewModelPos, std::move(temp) ); } bool DbGridControl::SeekRow(long nRow) @@ -2031,7 +2017,7 @@ void DbGridControl::PaintCell(OutputDevice& rDev, const tools::Rectangle& rRect, return; size_t Location = GetModelColumnPos(nColumnId); - DbGridColumn* pColumn = (Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = (Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; if (pColumn) { tools::Rectangle aArea(rRect); @@ -2632,7 +2618,7 @@ void DbGridControl::SetFilterMode(bool bMode) m_xEmptyRow = new DbGridRow(); // setting the new filter controls - for (DbGridColumn* pCurCol : m_aColumns) + for (auto const & pCurCol : m_aColumns) { if (!pCurCol->IsHidden()) pCurCol->UpdateControl(); @@ -2650,7 +2636,7 @@ void DbGridControl::SetFilterMode(bool bMode) OUString DbGridControl::GetCellText(long _nRow, sal_uInt16 _nColId) const { size_t Location = GetModelColumnPos( _nColId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; OUString sRet; if ( const_cast<DbGridControl*>(this)->SeekRow(_nRow) ) sRet = GetCurrentRowCellText(pColumn, m_xPaintRow); @@ -2671,7 +2657,7 @@ sal_uInt32 DbGridControl::GetTotalCellWidth(long nRow, sal_uInt16 nColId) if (SeekRow(nRow)) { size_t Location = GetModelColumnPos( nColId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; return GetDataWindow().GetTextWidth(GetCurrentRowCellText(pColumn,m_xPaintRow)); } else @@ -2777,7 +2763,7 @@ void DbGridControl::StartDrag( sal_Int8 /*nAction*/, const Point& rPosPixel ) GetDataWindow().ReleaseMouse(); size_t Location = GetModelColumnPos( nColId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; rtl::Reference<OStringTransferable> pTransferable = new OStringTransferable(GetCurrentRowCellText(pColumn,m_xPaintRow)); pTransferable->StartDrag(this, DND_ACTION_COPY); } @@ -2794,7 +2780,7 @@ bool DbGridControl::canCopyCellText(sal_Int32 _nRow, sal_uInt16 _nColId) void DbGridControl::copyCellText(sal_Int32 _nRow, sal_uInt16 _nColId) { DBG_ASSERT(canCopyCellText(_nRow, _nColId), "DbGridControl::copyCellText: invalid call!"); - DbGridColumn* pColumn = m_aColumns[ GetModelColumnPos(_nColId) ]; + DbGridColumn* pColumn = m_aColumns[ GetModelColumnPos(_nColId) ].get(); SeekRow(_nRow); OStringTransfer::CopyString( GetCurrentRowCellText( pColumn,m_xPaintRow ), this ); } @@ -2882,7 +2868,7 @@ CellController* DbGridControl::GetController(long /*nRow*/, sal_uInt16 nColumnId return nullptr; size_t Location = GetModelColumnPos(nColumnId); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; if (!pColumn) return nullptr; @@ -3108,7 +3094,7 @@ bool DbGridControl::SaveModified() return true; size_t Location = GetModelColumnPos( GetCurColumnId() ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; bool bOK = pColumn && pColumn->Commit(); DBG_ASSERT( Controller().is(), "DbGridControl::SaveModified: was modified, by have no controller?!" ); if ( !Controller().is() ) @@ -3296,7 +3282,7 @@ void DbGridControl::KeyInput( const KeyEvent& rEvt ) if (nRow >= 0 && nRow < GetRowCount() && nColId < ColCount()) { size_t Location = GetModelColumnPos( nColId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; OStringTransfer::CopyString( GetCurrentRowCellText( pColumn, m_xCurrentRow ), this ); return; } @@ -3320,7 +3306,7 @@ void DbGridControl::HideColumn(sal_uInt16 nId) // update my model size_t Location = GetModelColumnPos( nId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; DBG_ASSERT(pColumn, "DbGridControl::HideColumn : somebody did hide a nonexistent column !"); if (pColumn) { @@ -3340,7 +3326,7 @@ void DbGridControl::ShowColumn(sal_uInt16 nId) if (nPos == GRID_COLUMN_NOT_FOUND) return; - DbGridColumn* pColumn = m_aColumns[ nPos ]; + DbGridColumn* pColumn = m_aColumns[ nPos ].get(); if (!pColumn->IsHidden()) { DBG_ASSERT(GetViewColumnPos(nId) != GRID_COLUMN_NOT_FOUND, "DbGridControl::ShowColumn : inconsistent internal state !"); @@ -3355,7 +3341,7 @@ void DbGridControl::ShowColumn(sal_uInt16 nId) // first search the cols to the right for ( size_t i = nPos + 1; i < m_aColumns.size(); ++i ) { - DbGridColumn* pCurCol = m_aColumns[ i ]; + DbGridColumn* pCurCol = m_aColumns[ i ].get(); if (!pCurCol->IsHidden()) { nNextNonHidden = i; @@ -3367,7 +3353,7 @@ void DbGridControl::ShowColumn(sal_uInt16 nId) // then to the left for ( size_t i = nPos; i > 0; --i ) { - DbGridColumn* pCurCol = m_aColumns[ i-1 ]; + DbGridColumn* pCurCol = m_aColumns[ i-1 ].get(); if (!pCurCol->IsHidden()) { nNextNonHidden = i-1; @@ -3406,7 +3392,7 @@ sal_uInt16 DbGridControl::GetColumnIdFromModelPos( sal_uInt16 nPos ) const return GRID_COLUMN_NOT_FOUND; } - DbGridColumn* pCol = m_aColumns[ nPos ]; + DbGridColumn* pCol = m_aColumns[ nPos ].get(); #if (OSL_DEBUG_LEVEL > 0) || defined DBG_UTIL // in the debug version, we convert the ModelPos into a ViewPos and compare this with the // value we will return (nId at the corresponding Col in m_aColumns) @@ -3526,7 +3512,7 @@ void DbGridControl::ConnectToFields() m_pFieldListeners = pListeners; } - for (DbGridColumn* pCurrent : m_aColumns) + for (auto const & pCurrent : m_aColumns) { sal_uInt16 nViewPos = pCurrent ? GetViewColumnPos(pCurrent->GetId()) : GRID_COLUMN_NOT_FOUND; if (GRID_COLUMN_NOT_FOUND == nViewPos) @@ -3569,7 +3555,7 @@ void DbGridControl::FieldValueChanged(sal_uInt16 _nId) return; size_t Location = GetModelColumnPos( _nId ); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; if (pColumn) { std::unique_ptr<vcl::SolarMutexTryAndBuyGuard> pGuard; @@ -3645,7 +3631,7 @@ Reference< XAccessible > DbGridControl::CreateAccessibleCell( sal_Int32 _nRow, s { sal_uInt16 nColumnId = GetColumnId( _nColumnPos ); size_t Location = GetModelColumnPos(nColumnId); - DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ] : nullptr; + DbGridColumn* pColumn = ( Location < m_aColumns.size() ) ? m_aColumns[ Location ].get() : nullptr; if ( pColumn ) { Reference< css::awt::XControl> xInt(pColumn->GetCell()); |