hgcacheproxymodel/tsrc/fute/HgCacheProxyModelTestApp/src/mydataprovider.cpp
changeset 17 a10844a9914d
parent 6 1cdcc61142d2
child 20 a60f8b6b1d32
equal deleted inserted replaced
15:1ef5359bf0f4 17:a10844a9914d
    15 *
    15 *
    16 *  Version     : %version: 7 %
    16 *  Version     : %version: 7 %
    17 */
    17 */
    18 #include <QList>
    18 #include <QList>
    19 #include "hglogger.h"
    19 #include "hglogger.h"
    20 #include <HbIcon>
       
    21 #include "mydataprovider.h"
    20 #include "mydataprovider.h"
    22 
    21 
    23 const int KItemIdRole = Qt::UserRole+1;
    22 const int KItemIdRole = Qt::UserRole+1;
    24 
    23 
    25 const int KThumbnailsPriority = EPriorityLess; //standard priority
    24 const int KThumbnailsPriority = EPriorityLess; //standard priority
    33 mThumbnailRequestPending(false),
    32 mThumbnailRequestPending(false),
    34 mThumbnailRequestIndex(-1),
    33 mThumbnailRequestIndex(-1),
    35 mThumbnailRequestID(-1),
    34 mThumbnailRequestID(-1),
    36 mThumbnailsize(ThumbnailManager::ThumbnailMedium),
    35 mThumbnailsize(ThumbnailManager::ThumbnailMedium),
    37 mMDSLoadInProgress(false),
    36 mMDSLoadInProgress(false),
    38 mMode(0)
    37 mMode(0),
       
    38 mNoIcon(QIcon(QPixmap(":/icons/noIcon.png")))
    39 {
    39 {
    40 //    TX_ENTRY
    40 //    TX_ENTRY
    41     Q_UNUSED(parent);
    41     Q_UNUSED(parent);
    42     
    42     
    43     mWrapper->setThumbnailSize( mThumbnailsize );
    43     mWrapper->setThumbnailSize( mThumbnailsize );
    74     }
    74     }
    75 }
    75 }
    76 
    76 
    77 void MyDataProvider::doRequestData(QList<int> list, bool silent)
    77 void MyDataProvider::doRequestData(QList<int> list, bool silent)
    78 {
    78 {
    79     TX_ENTRY
    79 //    TX_ENTRY
    80 	Q_UNUSED(silent);
    80 	Q_UNUSED(silent);
    81     QString items = "Requested items:";
    81 //    QString items = "Requested items:";
    82     int i = 0;
    82     int i = 0;
       
    83     
    83 	for (int idx=0; idx<list.count(); idx++){
    84 	for (int idx=0; idx<list.count(); idx++){
    84         i = list[idx];
    85         i = list[idx];
    85 		if (containsRole(i, KItemIdRole) ) {
    86 		if (containsRole(i, KItemIdRole) ) {
    86             items += QString("%0 ").arg(i);
    87 //            items += QString("%0 ").arg(i);
    87 			mWaitingThumbnails.append(i);
    88 			mWaitingThumbnails.append(i);
    88 		}
    89 		}
    89 	}
    90 	}
    90 	TX_LOG_ARGS(items);
    91 //	TX_LOG_ARGS(items);
       
    92 	TX_LOG_ARGS( QString("[TEST] Requested items: %0-%1").arg(list[0]).arg(list[list.count()-1]) );
    91     getNextThumbnail();
    93     getNextThumbnail();
    92     TX_EXIT
    94 //    TX_EXIT
    93 }
    95 }
    94 
    96 
    95 void MyDataProvider::getNextThumbnail()
    97 void MyDataProvider::getNextThumbnail()
    96 {
    98 {
    97 //    TX_ENTRY
    99 //    TX_ENTRY
    98     if ( !mThumbnailRequestPending && mWaitingThumbnails.count()){
   100     if ( !mThumbnailRequestPending && mWaitingThumbnails.count()){
    99             int i = mWaitingThumbnails.takeFirst();
   101         int i = mWaitingThumbnails.takeFirst();
   100             if (i >=0 && i < count() && containsRole(i, KItemIdRole)) {
   102         if (i >=0 && i < count() && containsRole(i, KItemIdRole)) {
   101                 int id = (data(i, KItemIdRole)).toInt();
   103             int id = (data(i, KItemIdRole)).toInt();
   102                 unsigned long int uId = (unsigned long int)id;
   104             unsigned long int uId = (unsigned long int)id;
   103                 TX_LOG_ARGS(QString("getThumbnail for index:%0 uID:%1").arg(i).arg(uId));
   105             TX_LOG_ARGS(QString("getThumbnail for index:%0 uID:%1").arg(i).arg(uId));
   104                 void *clientData = reinterpret_cast<void *>(i);
   106             void *clientData = reinterpret_cast<void *>(i);
   105                 mThumbnailRequestID = mWrapper->getThumbnail(uId, clientData, KThumbnailsPriority);
   107             mThumbnailRequestID = mWrapper->getThumbnail(uId, clientData, KThumbnailsPriority);
   106                 mThumbnailRequestIndex = i;
   108             mThumbnailRequestIndex = i;
   107                 mThumbnailRequestPending = true;            
   109             mThumbnailRequestPending = true;            
       
   110         } else {
       
   111             updateIcon(i, mNoIcon, true);
       
   112             getNextThumbnail();
   108         }
   113         }
   109     }
   114     }
   110 //    TX_EXIT    
   115 //    TX_EXIT    
   111 }
   116 }
   112 
   117 
   138 void MyDataProvider::doReleaseData(QList<int> list, bool silent)
   143 void MyDataProvider::doReleaseData(QList<int> list, bool silent)
   139 {
   144 {
   140     TX_ENTRY    
   145     TX_ENTRY    
   141     Q_UNUSED(silent);
   146     Q_UNUSED(silent);
   142     int i = 0;
   147     int i = 0;
   143     QString items = "Released items:";
   148 //    QString items = "Released items:";
   144     for (int idx=0;idx<list.count(); idx++){
   149     for (int idx=0;idx<list.count(); idx++){
   145         i = list[idx];
   150         i = list[idx];
   146         if (mThumbnailRequestPending && mThumbnailRequestIndex==i ){
   151         if (mThumbnailRequestPending && mThumbnailRequestIndex==i ){
   147             TX_LOG_ARGS( QString("Cancel also thumbnail request for item %0").arg(i));
   152             TX_LOG_ARGS( QString("Cancel also thumbnail request for item %0").arg(i));
   148             mWrapper->cancelRequest(mThumbnailRequestID);
   153             mWrapper->cancelRequest(mThumbnailRequestID);
   149             mThumbnailRequestIndex = -1;
   154             mThumbnailRequestIndex = -1;
   150             mThumbnailRequestID = -1;
   155             mThumbnailRequestID = -1;
   151             mThumbnailRequestPending = false;
   156             mThumbnailRequestPending = false;
   152         }
   157         }
   153         items += QString("%0 ").arg(i);
   158 //        items += QString("%0 ").arg(i);
   154         mWaitingThumbnails.removeAll(i);
   159         mWaitingThumbnails.removeAll(i);
   155         releasePixmap(i);
   160         releasePixmap(i);
   156     }
   161     }
   157     TX_LOG_ARGS(items);
   162 //    TX_LOG_ARGS(items);
   158 
   163 
   159     getNextThumbnail();
   164     getNextThumbnail();
   160     TX_EXIT        
   165     TX_EXIT        
   161 }
   166 }
   162 
   167 
   242         mScheduler->Start();
   247         mScheduler->Start();
   243         CleanupStack::PopAndDestroy( 1 );
   248         CleanupStack::PopAndDestroy( 1 );
   244         delete session;        
   249         delete session;        
   245     );    
   250     );    
   246     
   251     
   247     
   252     if ( count() == 0){ //add 2000 items if no media data avilable
       
   253         for(int i = 0; i < 2000 ; i++){
       
   254             QList< QPair< QVariant, int > > list;
       
   255             QString s = QString("ITEM%1").arg(i);
       
   256             if (i%2){
       
   257                 s = s.toLower();
       
   258             }
       
   259             list.append( QPair< QVariant, int >(s, Qt::DisplayRole) );
       
   260             list.append( QPair< QVariant, int >(QVariant(i), Qt::UserRole+2) );        
       
   261             newItem(&list);
       
   262             newItem();
       
   263         }
       
   264     }
   248     TX_EXIT    
   265     TX_EXIT    
   249 }
   266 }
   250 void MyDataProvider::testRemoveItem(int pos)
   267 void MyDataProvider::testRemoveItem(int pos)
   251 {
   268 {
   252     TX_ENTRY
   269     TX_ENTRY
   258 {
   275 {
   259     TX_ENTRY
   276     TX_ENTRY
   260     insertItem(pos, data, false);
   277     insertItem(pos, data, false);
   261     TX_EXIT  
   278     TX_EXIT  
   262 }
   279 }
   263