hgcacheproxymodel/tsrc/fute/HgCacheProxyModelTestApp/src/mydataprovider.cpp
changeset 20 a60f8b6b1d32
parent 17 a10844a9914d
equal deleted inserted replaced
17:a10844a9914d 20:a60f8b6b1d32
    24 const int KThumbnailsPriority = EPriorityLess; //standard priority
    24 const int KThumbnailsPriority = EPriorityLess; //standard priority
    25 
    25 
    26 
    26 
    27 MyDataProvider::MyDataProvider(QObject *parent) :
    27 MyDataProvider::MyDataProvider(QObject *parent) :
    28 HgDataProviderModel(parent),
    28 HgDataProviderModel(parent),
    29 mDefaultIcon(QIcon(QPixmap(":/icons/default.png"))),
       
    30 mScheduler(new CActiveSchedulerWait()),
    29 mScheduler(new CActiveSchedulerWait()),
    31 mWrapper( new ThumbnailManager() ),
    30 mWrapper( new ThumbnailManager() ),
    32 mThumbnailRequestPending(false),
    31 mThumbnailRequestPending(false),
    33 mThumbnailRequestIndex(-1),
    32 mThumbnailRequestIndex(-1),
    34 mThumbnailRequestID(-1),
    33 mThumbnailRequestID(-1),
    35 mThumbnailsize(ThumbnailManager::ThumbnailMedium),
    34 mThumbnailsize(ThumbnailManager::ThumbnailMedium),
    36 mMDSLoadInProgress(false),
    35 mMDSLoadInProgress(false),
    37 mMode(0),
    36 mMode(0)
    38 mNoIcon(QIcon(QPixmap(":/icons/noIcon.png")))
       
    39 {
    37 {
    40 //    TX_ENTRY
    38 //    TX_ENTRY
    41     Q_UNUSED(parent);
    39     Q_UNUSED(parent);
       
    40     QPixmap defaultPixmap(":/icons/default.png");
       
    41     mDefaultIcon.insert(HgDataProviderIconHbIcon, HbIcon(":/icons/default.png"));
       
    42     mDefaultIcon.insert(HgDataProviderIconQIcon, QIcon(defaultPixmap));
       
    43     mDefaultIcon.insert(HgDataProviderIconQImage, defaultPixmap.toImage());
       
    44     mDefaultIcon.insert(HgDataProviderIconQPixmap, defaultPixmap);
       
    45     
       
    46     QPixmap noIconPixmap(":/icons/noIcon.png");
       
    47     mNoIcon.insert(HgDataProviderIconHbIcon, HbIcon(":/icons/noIcon.png"));
       
    48     mNoIcon.insert(HgDataProviderIconQIcon, QIcon(noIconPixmap));
       
    49     mNoIcon.insert(HgDataProviderIconQImage, noIconPixmap.toImage());
       
    50     mNoIcon.insert(HgDataProviderIconQPixmap, noIconPixmap);
    42     
    51     
    43     mWrapper->setThumbnailSize( mThumbnailsize );
    52     mWrapper->setThumbnailSize( mThumbnailsize );
    44     mWrapper->setQualityPreference( ThumbnailManager::OptimizeForPerformance );
    53     mWrapper->setQualityPreference( ThumbnailManager::OptimizeForPerformance );
    45 
    54 
    46     QObject::connect( mWrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
    55     QObject::connect( mWrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
   106             void *clientData = reinterpret_cast<void *>(i);
   115             void *clientData = reinterpret_cast<void *>(i);
   107             mThumbnailRequestID = mWrapper->getThumbnail(uId, clientData, KThumbnailsPriority);
   116             mThumbnailRequestID = mWrapper->getThumbnail(uId, clientData, KThumbnailsPriority);
   108             mThumbnailRequestIndex = i;
   117             mThumbnailRequestIndex = i;
   109             mThumbnailRequestPending = true;            
   118             mThumbnailRequestPending = true;            
   110         } else {
   119         } else {
   111             updateIcon(i, mNoIcon, true);
   120             updateIcon(i, mNoIcon[iconMode()], true);
   112             getNextThumbnail();
   121             getNextThumbnail();
   113         }
   122         }
   114     }
   123     }
   115 //    TX_EXIT    
   124 //    TX_EXIT    
   116 }
   125 }
   122 
   131 
   123 void MyDataProvider::thumbnailReady( QPixmap pixmap, void* data, int id, int error )
   132 void MyDataProvider::thumbnailReady( QPixmap pixmap, void* data, int id, int error )
   124 {
   133 {
   125 //    TX_ENTRY    
   134 //    TX_ENTRY    
   126     Q_UNUSED(id);
   135     Q_UNUSED(id);
       
   136     int idx = reinterpret_cast<int>(data);
   127     if (!error && pixmap.rect().height()>0  && pixmap.rect().width()>0 ) {
   137     if (!error && pixmap.rect().height()>0  && pixmap.rect().width()>0 ) {
   128         int idx = reinterpret_cast<int>(data);
       
   129         TX_LOG_ARGS(QString("thumbnailReady idx = %0").arg(idx));
   138         TX_LOG_ARGS(QString("thumbnailReady idx = %0").arg(idx));
   130 //        updateIcon(idx, HbIcon( QIcon( pixmap ) ) );
       
   131 //        update(idx, HbIcon( QIcon( pixmap ) ), Qt::DecorationRole, false);
       
   132         updateIcon(idx, createIcon(idx, pixmap));
   139         updateIcon(idx, createIcon(idx, pixmap));
   133 	} else {
   140 	} else {
   134         TX_LOG_ARGS(QString("error:%0 id:%0").arg(error).arg(id));
   141         updateIcon(idx, mNoIcon[iconMode()], true);	    
       
   142         TX_LOG_ARGS(QString("error:%0 id:%0").arg(error).arg(idx));
   135 	}
   143 	}
   136     mThumbnailRequestIndex = -1;
   144     mThumbnailRequestIndex = -1;
   137     mThumbnailRequestID = -1;
   145     mThumbnailRequestID = -1;
   138     mThumbnailRequestPending = false;            
   146     mThumbnailRequestPending = false;            
   139     getNextThumbnail();
   147     getNextThumbnail();
   165     TX_EXIT        
   173     TX_EXIT        
   166 }
   174 }
   167 
   175 
   168 QVariant MyDataProvider::defaultIcon() const
   176 QVariant MyDataProvider::defaultIcon() const
   169 {
   177 {
   170     return mDefaultIcon;
   178     MyDataProvider* me = const_cast<MyDataProvider*>(this);
       
   179     return mDefaultIcon[me->iconMode()];
   171 }
   180 }
   172 
   181 
   173 void MyDataProvider::HandleSessionOpened(CMdESession& aSession, TInt aError)
   182 void MyDataProvider::HandleSessionOpened(CMdESession& aSession, TInt aError)
   174 {
   183 {
   175     Q_UNUSED(aSession);
   184     Q_UNUSED(aSession);