sc/source/ui/view/viewdata.cxx | 49 ++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 27 deletions(-)
New commits: commit 13bb6dcddcd3e19cd97fdb28e842c778e6e093b3 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 18 19:34:11 2012 +0200 ensure that number of tabs is correctly set in ScViewData, fdo#45987 Change-Id: Ia77ea939f6ce9301afeabe1d1679998ce34b397e diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index b7de81a..71877e8 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -2744,6 +2744,9 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue> sal_Int32 nTemp32(0); sal_Int16 nTemp16(0); sal_Bool bPageMode(false); + + EnsureTabDataSize(GetDocument()->GetTableCount()-1); + for (sal_Int32 i = 0; i < nCount; i++) { // SC_VIEWID has to parse and use by mba commit 90d0efb524b2cdd8d65808d18713bfd6b1d117ea Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 18 18:11:14 2012 +0200 Revert 4 commits related to fdo#45987 Revert "and another wae ( that I missed )" This reverts commit a1faa06b415f54c0e8ff8a8f1e580e8a57b9296a. Revert "fix wae" This reverts commit 2f5885765445d8a8f50037da3420dbcd19d5634f. Revert "attempt to prevent illegal maTabData access(s)" This reverts commit 8352eb5a1af1eb44550a9d60d31e6c2fb2dc43b9. Conflicts: sc/source/ui/view/viewdata.cxx Revert "fix bad stl access fdo#45987" This reverts commit 8b1d29bc9b00bc2730738a990023a65ab6e0219b. Conflicts: sc/source/ui/view/viewdata.cxx Change-Id: Idba6ec8ab448332ec349f23b10a2cce8b313ff19 33c437c8b9f005c43f03518863e151a6f0fc9589 diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 028ab83..b7de81a 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -486,14 +486,11 @@ void ScViewData::InsertTabs( SCTAB nTab, SCTAB nNewSheets ) void ScViewData::DeleteTab( SCTAB nTab ) { - if ( nTab < static_cast<SCTAB>(maTabData.size()) ) - { - delete maTabData.at(nTab); - if ( nTab == static_cast<SCTAB>(maTabData.size()) - 1 ) - maTabData.erase(maTabData.begin() + nTab); - UpdateCurrentTab(); - mpMarkData->DeleteTab( nTab ); - } + delete maTabData.at(nTab); + + maTabData.erase(maTabData.begin() + nTab); + UpdateCurrentTab(); + mpMarkData->DeleteTab( nTab ); } void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets ) @@ -503,8 +500,8 @@ void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets ) mpMarkData->DeleteTab( nTab + i ); delete maTabData.at(nTab + i); } - if ( ( nTab + nSheets ) == static_cast<SCTAB>( maTabData.size() - 1 ) ) - maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets); + + maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets); UpdateCurrentTab(); } @@ -541,8 +538,7 @@ void ScViewData::MoveTab( SCTAB nSrcTab, SCTAB nDestTab ) if (nSrcTab < static_cast<SCTAB>(maTabData.size())) { pTab = maTabData[nSrcTab]; - if ( nSrcTab == static_cast<SCTAB>( maTabData.size() - 1 ) ) - maTabData.erase( maTabData.begin() + nSrcTab ); + maTabData.erase( maTabData.begin() + nSrcTab ); } if (nDestTab < static_cast<SCTAB>(maTabData.size())) @@ -663,18 +659,15 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, std::vec SCTAB i = *it; if ( i < static_cast<SCTAB>(maTabData.size()) && maTabData[i] ) { - if ( maTabData[i] ) + if ( bPagebreak ) { - if ( bPagebreak ) - { - maTabData[i]->aPageZoomX = aValidX; - maTabData[i]->aPageZoomY = aValidY; - } - else - { - maTabData[i]->aZoomX = aValidX; - maTabData[i]->aZoomY = aValidY; - } + maTabData[i]->aPageZoomX = aValidX; + maTabData[i]->aPageZoomY = aValidY; + } + else + { + maTabData[i]->aZoomX = aValidX; + maTabData[i]->aZoomY = aValidY; } } } @@ -696,8 +689,7 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, sal_Bool void ScViewData::SetShowGrid( bool bShow ) { CreateSelectedTabData(); - if ( maTabData[nTabNo] ) - maTabData[nTabNo]->bShowGrid = bShow; + maTabData[nTabNo]->bShowGrid = bShow; } void ScViewData::RefreshZoom() @@ -2954,7 +2946,7 @@ sal_Bool ScViewData::UpdateFixX( SCTAB nTab ) // sal_True = Wert g if (!ValidTab(nTab)) // Default nTab=nTabNo; // akuelle Tabelle - if (!maTabData[nTab] || !pView || maTabData[nTab]->eHSplitMode != SC_SPLIT_FIX) + if (!pView || maTabData[nTab]->eHSplitMode != SC_SPLIT_FIX) return false; ScDocument* pLocalDoc = GetDocument(); @@ -2989,7 +2981,7 @@ sal_Bool ScViewData::UpdateFixY( SCTAB nTab ) // sal_True = Wert g if (!ValidTab(nTab)) // Default nTab=nTabNo; // akuelle Tabelle - if (!maTabData[nTab] || !pView || maTabData[nTab]->eVSplitMode != SC_SPLIT_FIX) + if (!pView || maTabData[nTab]->eVSplitMode != SC_SPLIT_FIX) return false; ScDocument* pLocalDoc = GetDocument(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits