[Libreoffice-commits] .: sd/source

Joseph Powers jpowers at kemper.freedesktop.org
Wed May 4 05:38:04 PDT 2011


 sd/source/ui/inc/View.hxx     |    4 +++-
 sd/source/ui/view/sdview.cxx  |   18 +-----------------
 sd/source/ui/view/sdview4.cxx |   32 +++++++++++++++-----------------
 3 files changed, 19 insertions(+), 35 deletions(-)

New commits:
commit 38e2941fcbc7cda40dc415bd7c5b64ea80cc2801
Author: Rafael Dominguez <venccsralph at gmail.com>
Date:   Tue May 3 18:23:32 2011 -0430

    Remove List sd::View::mpLockedRedraws

diff --git a/sd/source/ui/inc/View.hxx b/sd/source/ui/inc/View.hxx
index 12009a3..858c205 100644
--- a/sd/source/ui/inc/View.hxx
+++ b/sd/source/ui/inc/View.hxx
@@ -29,6 +29,8 @@
 #ifndef SD_VIEW_HXX
 #define SD_VIEW_HXX
 
+#include <boost/ptr_container/ptr_vector.hpp>
+
 #include "pres.hxx"
 #include <tools/gen.hxx>
 #include <svtools/transfer.hxx>
@@ -224,7 +226,7 @@ protected:
     Timer				    maDropErrorTimer;
     Timer				    maDropInsertFileTimer;
     sal_uInt16				    mnLockRedrawSmph;
-    List*				    mpLockedRedraws;
+    boost::ptr_vector<SdViewRedrawRec> maLockedRedraws;
     bool					mbIsDropAllowed;
 
                             DECL_LINK( DropErrorHdl, Timer* );
diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx
index 68e42f5..4933d8b 100644
--- a/sd/source/ui/view/sdview.cxx
+++ b/sd/source/ui/view/sdview.cxx
@@ -128,7 +128,6 @@ View::View(SdDrawDocument* pDrawDoc, OutputDevice* pOutDev,
     mnDragSrcPgNum(SDRPAGE_NOTFOUND),
     mnAction(DND_ACTION_NONE),
     mnLockRedrawSmph(0),
-    mpLockedRedraws(NULL),
     mbIsDropAllowed(sal_True),
     maSmartTags(*this),
     mpClipboard (new ViewClipboard (*this))
@@ -190,18 +189,6 @@ View::~View()
         // Alle angemeldeten OutDevs entfernen
         DeleteWindowFromPaintView(GetFirstOutputDevice() /*GetWin(0)*/);
     }
-
-    // gespeicherte Redraws loeschen
-    if (mpLockedRedraws)
-    {
-        SdViewRedrawRec* pRec = (SdViewRedrawRec*)mpLockedRedraws->First();
-        while (pRec)
-        {
-            delete pRec;
-            pRec = (SdViewRedrawRec*)mpLockedRedraws->Next();
-        }
-        delete mpLockedRedraws;
-    }
 }
 
 
@@ -543,13 +530,10 @@ void View::CompleteRedraw(OutputDevice* pOutDev, const Region& rReg, sdr::contac
     // oder speichern?
     else
     {
-        if (!mpLockedRedraws)
-            mpLockedRedraws = new List;
-
         SdViewRedrawRec* pRec = new SdViewRedrawRec;
         pRec->mpOut	= pOutDev;
         pRec->aRect = rReg.GetBoundRect();
-        mpLockedRedraws->Insert(pRec, LIST_APPEND);
+        maLockedRedraws.push_back(pRec);
     }
 }
 
diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx
index f63c3d1..98e6786 100644
--- a/sd/source/ui/view/sdview4.cxx
+++ b/sd/source/ui/view/sdview4.cxx
@@ -585,34 +585,32 @@ void View::LockRedraw(sal_Bool bLock)
         // alle gespeicherten Redraws ausfuehren
         if (!mnLockRedrawSmph)
         {
-            while (mpLockedRedraws && mpLockedRedraws->Count())
+            boost::ptr_vector<SdViewRedrawRec>::iterator iter;
+
+            while (!maLockedRedraws.empty())
             {
-                SdViewRedrawRec* pRec = (SdViewRedrawRec*)mpLockedRedraws->First();
-                OutputDevice* pCurrentOut = pRec->mpOut;
-                Rectangle aBoundRect(pRec->aRect);
-                mpLockedRedraws->Remove(pRec);
-                delete pRec;
-
-                pRec = (SdViewRedrawRec*)mpLockedRedraws->First();
-                while (pRec)
+                iter = maLockedRedraws.begin();
+
+                OutputDevice* pCurrentOut = iter->mpOut;
+                Rectangle aBoundRect(iter->aRect);
+
+                iter = maLockedRedraws.erase(iter);
+
+                while (iter != maLockedRedraws.end())
                 {
-                    if (pRec->mpOut == pCurrentOut)
+                    if (iter->mpOut == pCurrentOut)
                     {
-                        aBoundRect.Union(pRec->aRect);
-                        mpLockedRedraws->Remove(pRec);
-                        delete pRec;
-                        pRec = (SdViewRedrawRec*)mpLockedRedraws->GetCurObject();
+                        aBoundRect.Union(iter->aRect);
+                        iter = maLockedRedraws.erase(iter);
                     }
                     else
                     {
-                        pRec = (SdViewRedrawRec*)mpLockedRedraws->Next();
+                        ++iter;
                     }
                 }
 
                 CompleteRedraw(pCurrentOut, Region(aBoundRect));
             }
-            delete mpLockedRedraws;
-            mpLockedRedraws = NULL;
         }
     }
 }


More information about the Libreoffice-commits mailing list