---
 cui/source/dialogs/pastedlg.cxx |   20 ++++++++++++--------
 cui/source/inc/pastedlg.hxx     |    4 ++--
 2 files changed, 14 insertions(+), 10 deletions(-)


diff --git a/cui/source/dialogs/pastedlg.cxx b/cui/source/dialogs/pastedlg.cxx
index 47fdf2f..656a813 100644
--- a/cui/source/dialogs/pastedlg.cxx
+++ b/cui/source/dialogs/pastedlg.cxx
@@ -112,11 +112,10 @@ void SvPasteObjectDialog::SetDefault()
 
 SvPasteObjectDialog::~SvPasteObjectDialog()
 {
-    void * pStr = aSupplementTable.First();
-    while( pStr )
+    ::std::map< SotFormatStringId, String* >::iterator it;
+    for(it = aSupplementMap.begin(); it != aSupplementMap.end(); ++it)
     {
-        delete (String *)pStr;
-        pStr = aSupplementTable.Next();
+        delete it->second;
     }
 }
 
@@ -126,7 +125,7 @@ SvPasteObjectDialog::~SvPasteObjectDialog()
 void SvPasteObjectDialog::Insert( SotFormatStringId nFormat, const String& rFormatName )
 {
     String * pStr = new String( rFormatName );
-    if( !aSupplementTable.Insert( nFormat, pStr ) )
+    if( !aSupplementMap.insert( ::std::make_pair( nFormat, pStr ) ).second )
         delete pStr;
 }
 
@@ -156,20 +155,25 @@ sal_uLong SvPasteObjectDialog::GetFormat( const TransferableDataHelper& rHelper,
         ::com::sun::star::datatransfer::DataFlavor aFlavor( *aIter );
         SotFormatStringId nFormat = (*aIter++).mnSotId;
 
-        String* pName = (String*) aSupplementTable.Get( nFormat );
+        String* pName = NULL;
         String aName;
+        ::std::map< SotFormatStringId, String* >::iterator itName;
+        itName = aSupplementMap.find( nFormat );
 
         // if there is an "Embed Source" or and "Embedded Object" on the
         // Clipboard we read the Description and the Source of this object
         // from an accompanied "Object Descriptor" format on the clipboard
         // Remember: these formats mostly appear together on the clipboard
-        if ( !pName )
+        if ( itName == aSupplementMap.end() )
         {
             SvPasteObjectHelper::GetEmbeddedName(rHelper,aName,aSourceName,nFormat);
             if ( aName.Len() )
                 pName = &aName;
         }
-
+        else
+        {
+            pName = itName->second;
+        }
 
         if( pName )
         {
diff --git a/cui/source/inc/pastedlg.hxx b/cui/source/inc/pastedlg.hxx
index 93c6ff4..ddf4ccb 100644
--- a/cui/source/inc/pastedlg.hxx
+++ b/cui/source/inc/pastedlg.hxx
@@ -29,7 +29,7 @@
 #ifndef _PASTEDLG_HXX
 #define _PASTEDLG_HXX
 
-#include <tools/table.hxx>
+#include <map>
 #include <sot/formats.hxx>
 #include <tools/globname.hxx>
 #include <svtools/transfer.hxx>
@@ -60,7 +60,7 @@ class SvPasteObjectDialog : public ModalDialog
     OKButton aOKButton1;
     CancelButton aCancelButton1;
     HelpButton aHelpButton1;
-    Table           aSupplementTable;
+    ::std::map< SotFormatStringId, String* > aSupplementMap;
     SvGlobalName    aObjClassName;
     String          aObjName;
     sal_uInt16          nAspect;

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

Reply via email to