videocollection/videocollectionwrapper/tsrc/testvideomodel_p/stub/src/videodatacontainer.cpp
changeset 50 21fe8338c6bf
parent 36 8aed59de29f9
child 55 4bfa887905cf
equal deleted inserted replaced
49:824471cb468a 50:21fe8338c6bf
    17 #include <mpxmediageneraldefs.h>
    17 #include <mpxmediageneraldefs.h>
    18 #include <mpxmedia.h>
    18 #include <mpxmedia.h>
    19 #include "videodatacontainer.h"
    19 #include "videodatacontainer.h"
    20 #include "videocollectionutils.h"
    20 #include "videocollectionutils.h"
    21 
    21 
       
    22 const TMPXItemId INVALID_ID = TMPXItemId::InvalidId();
       
    23 const int INVALID_INDEX = -1;
       
    24 
    22 /**
    25 /**
    23  * global qHash function required fo creating hash values for TMPXItemId -keys
    26  * global qHash function required fo creating hash values for TMPXItemId -keys
    24  */
    27  */
    25 inline uint qHash(TMPXItemId key) 
    28 inline uint qHash(TMPXItemId key) 
    26 { 
    29 { 
    85 
    88 
    86     delete removeIter->second;
    89     delete removeIter->second;
    87     mMediaData.erase(removeIter);
    90     mMediaData.erase(removeIter);
    88 }   
    91 }   
    89 
    92 
    90 void VideoDataContainer::decHashIndexesAfter(int fromIndex)
    93 void VideoDataContainer::decHashIndexesAfter(const int &fromIndex)
    91 {
    94 {
    92     int count = mMediaIds.count();
    95     int count = mMediaIds.count();
    93     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::iterator hashIter;   
    96     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::iterator hashIter;   
    94     for(int i = fromIndex; i < count; ++i)
    97     for(int i = fromIndex; i < count; ++i)
    95     {
    98     {
   127 
   130 
   128 // -----------------------------------------------------------------------------
   131 // -----------------------------------------------------------------------------
   129 // fromIndex
   132 // fromIndex
   130 // -----------------------------------------------------------------------------
   133 // -----------------------------------------------------------------------------
   131 //
   134 //
   132 CMPXMedia* VideoDataContainer::fromIndex(int index) const
   135 CMPXMedia* VideoDataContainer::fromIndex(const int &index) const
   133 {   
   136 {   
   134     if(index >= 0 && index < mMediaIds.count() && mMediaData.contains(mMediaIds[index]))
   137     if(index >= 0 && index < mMediaIds.count() && mMediaData.contains(mMediaIds[index]))
   135     {   
   138     {   
   136         return (mMediaData.find(mMediaIds[index]))->second;
   139         return (mMediaData.find(mMediaIds[index]))->second;
   137     }
   140     }
   141  
   144  
   142 // -----------------------------------------------------------------------------
   145 // -----------------------------------------------------------------------------
   143 // indexOfId
   146 // indexOfId
   144 // -----------------------------------------------------------------------------
   147 // -----------------------------------------------------------------------------
   145 //
   148 //
   146 int VideoDataContainer::indexOfId(const TMPXItemId &id) const
   149 const int& VideoDataContainer::indexOfId(const TMPXItemId &id) const
   147 {
   150 {
   148     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::const_iterator iter = mMediaData.find(id);
   151     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::const_iterator iter = mMediaData.find(id);
   149     if(iter != mMediaData.constEnd())
   152     if(iter != mMediaData.constEnd())
   150     {
   153     {
   151         return iter->first;
   154         return iter->first;
   152     }
   155     }
   153     return -1;
   156     return INVALID_INDEX;
   154 }
   157 }
   155 
   158 
   156 // -----------------------------------------------------------------------------
   159 // -----------------------------------------------------------------------------
   157 // idFromIndex
   160 // idFromIndex
   158 // -----------------------------------------------------------------------------
   161 // -----------------------------------------------------------------------------
   159 //
   162 //
   160 TMPXItemId VideoDataContainer::idFromIndex(int index) const
   163 TMPXItemId& VideoDataContainer::idFromIndex(const int &index) const
   161 {
   164 {
   162     if(index >= 0 && index < mMediaIds.count())
   165     if(index >= 0 && index < mMediaIds.count())
   163     {
   166     {
   164         return mMediaIds[index];
   167         return mMediaIds[index];
   165     }
   168     }
   166     return TMPXItemId::InvalidId();    
   169     return INVALID_ID;    
   167 }
   170 }
   168 
   171 
   169 // -----------------------------------------------------------------------------
   172 // -----------------------------------------------------------------------------
   170 // count
   173 // count
   171 // -----------------------------------------------------------------------------
   174 // -----------------------------------------------------------------------------
   177 
   180 
   178 // -----------------------------------------------------------------------------
   181 // -----------------------------------------------------------------------------
   179 // markItemsRemoved
   182 // markItemsRemoved
   180 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   181 //
   184 //
   182 TMPXItemId VideoDataContainer::markItemRemoved(const int &itemIndex)
   185 const TMPXItemId VideoDataContainer::markItemRemoved(const int &itemIndex)
   183 {
   186 {
   184     // for all provided indexes:
   187     // for all provided indexes:
   185     // - get item address from mMediaData
   188     // - get item address from mMediaData
   186     // - get item index from mMediaData
   189     // - get item index from mMediaData
   187     // - remove item from mMediaData, do not deallocate object
   190     // - remove item from mMediaData, do not deallocate object
   281 
   284 
   282 // -----------------------------------------------------------------------------
   285 // -----------------------------------------------------------------------------
   283 // getRemovedMedia
   286 // getRemovedMedia
   284 // -----------------------------------------------------------------------------
   287 // -----------------------------------------------------------------------------
   285 //
   288 //
   286 CMPXMedia* VideoDataContainer::getRemovedMedia(TMPXItemId itemId)
   289 CMPXMedia* VideoDataContainer::getRemovedMedia(TMPXItemId &itemId)
   287 {
   290 {
   288     QHash<TMPXItemId, CMPXMedia*>::const_iterator itemIter = 
   291     QHash<TMPXItemId, CMPXMedia*>::const_iterator itemIter = 
   289                                             mRemovedMedia.constFind(itemId);
   292                                             mRemovedMedia.constFind(itemId);
   290     if(itemIter != mRemovedMedia.constEnd())
   293     if(itemIter != mRemovedMedia.constEnd())
   291     {
   294     {