Attatched the respective patch file

On Wed, Jun 15, 2011 at 7:39 PM, Rafael Dominguez <venccsra...@gmail.com>wrote:

> Theres a assertion i didnt include in the patch, but now been thinking
> about it and maybe we should include it just in case we forget to include an
> action.
>
From 8cafc607d507502692b3781ae6a6ba53b3b925b8 Mon Sep 17 00:00:00 2001
From: Rafael Dominguez <venccsra...@gmail.com>
Date: Sun, 12 Jun 2011 19:27:05 -0430
Subject: [PATCH 4/9] Replace List with std::vector<com::sun::star::presentation::ClickAction>.

---
 sd/source/ui/dlg/tpaction.cxx |   42 ++++++++++++++++++++--------------------
 sd/source/ui/inc/tpaction.hxx |    2 +-
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx
index ecfc89c..b4e9341 100644
--- a/sd/source/ui/dlg/tpaction.cxx
+++ b/sd/source/ui/dlg/tpaction.cxx
@@ -170,7 +170,6 @@ SdTPAction::SdTPAction( Window* pWindow, const SfxItemSet& rInAttrs ) :
 
 SdTPAction::~SdTPAction()
 {
-    delete pCurrentActions;
 }
 
 // -----------------------------------------------------------------------
@@ -267,25 +266,24 @@ void SdTPAction::Construct()
         }
     }
 
-    pCurrentActions = new List;
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_NONE, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_PREVPAGE, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_NEXTPAGE, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_FIRSTPAGE, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_LASTPAGE, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_BOOKMARK, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_DOCUMENT, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_SOUND, LIST_APPEND);
+    maCurrentActions.push_back( presentation::ClickAction_NONE );
+    maCurrentActions.push_back( presentation::ClickAction_PREVPAGE );
+    maCurrentActions.push_back( presentation::ClickAction_NEXTPAGE );
+    maCurrentActions.push_back( presentation::ClickAction_FIRSTPAGE );
+    maCurrentActions.push_back( presentation::ClickAction_LASTPAGE );
+    maCurrentActions.push_back( presentation::ClickAction_BOOKMARK );
+    maCurrentActions.push_back( presentation::ClickAction_DOCUMENT );
+    maCurrentActions.push_back( presentation::ClickAction_SOUND );
     if( bOLEAction && aLbOLEAction.GetEntryCount() )
-        pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_VERB, LIST_APPEND );
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_PROGRAM, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_MACRO, LIST_APPEND);
-    pCurrentActions->Insert((void*)(sal_uIntPtr)presentation::ClickAction_STOPPRESENTATION, LIST_APPEND);
+        maCurrentActions.push_back( presentation::ClickAction_VERB );
+    maCurrentActions.push_back( presentation::ClickAction_PROGRAM );
+    maCurrentActions.push_back( presentation::ClickAction_MACRO );
+    maCurrentActions.push_back( presentation::ClickAction_STOPPRESENTATION );
 
     // Action-Listbox fuellen
-    for (sal_uLong nAction = 0; nAction < pCurrentActions->Count(); nAction++)
+    for (size_t nAction = 0, n = maCurrentActions.size(); nAction < n; nAction++)
     {
-        sal_uInt16 nRId = GetClickActionSdResId((presentation::ClickAction)(sal_uLong)pCurrentActions->GetObject(nAction));
+        sal_uInt16 nRId = GetClickActionSdResId( maCurrentActions[ nAction ] );
         aLbAction.InsertEntry( String( SdResId( nRId ) ) );
     }
 
@@ -753,8 +751,8 @@ presentation::ClickAction SdTPAction::GetActualClickAction()
     presentation::ClickAction eCA = presentation::ClickAction_NONE;
     sal_uInt16 nPos = aLbAction.GetSelectEntryPos();
 
-    if (nPos != LISTBOX_ENTRY_NOTFOUND)
-        eCA = (presentation::ClickAction)(sal_uLong)pCurrentActions->GetObject((sal_uLong)nPos);
+    if (nPos != LISTBOX_ENTRY_NOTFOUND && nPos < maCurrentActions.size())
+        eCA = maCurrentActions[ nPos ];
     return( eCA );
 }
 
@@ -762,9 +760,11 @@ presentation::ClickAction SdTPAction::GetActualClickAction()
 
 void SdTPAction::SetActualClickAction( presentation::ClickAction eCA )
 {
-    sal_uInt16 nPos = (sal_uInt16)pCurrentActions->GetPos((void*)(sal_uLong)eCA);
-    DBG_ASSERT(nPos != 0xffff, "unbekannte Interaktion");
-    aLbAction.SelectEntryPos(nPos);
+    std::vector<com::sun::star::presentation::ClickAction>::const_iterator pIter =
+            std::find(maCurrentActions.begin(),maCurrentActions.end(),eCA);
+
+    if ( pIter != maCurrentActions.end() )
+        aLbAction.SelectEntryPos( pIter-maCurrentActions.begin() );
 }
 
 //------------------------------------------------------------------------
diff --git a/sd/source/ui/inc/tpaction.hxx b/sd/source/ui/inc/tpaction.hxx
index 116d815..c18fc8b 100644
--- a/sd/source/ui/inc/tpaction.hxx
+++ b/sd/source/ui/inc/tpaction.hxx
@@ -97,7 +97,7 @@ private:
     XColorTable*		    pColTab;
                             
     sal_Bool				    bTreeUpdated;
-    List*   			    pCurrentActions;
+    std::vector<com::sun::star::presentation::ClickAction> maCurrentActions;
     String				    aLastFile;
     ::std::vector< long >   aVerbVector;
 
-- 
1.7.3.4

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to