summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp23
-rw-r--r--core/launcher/launcherview.h2
2 files changed, 17 insertions, 8 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 42704ba..72313e3 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -429,19 +429,26 @@ void LauncherIconView::setEyePixmap(const QPixmap&aPixmap,const QString&aFile,in
429{ 429{
430 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); 430 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
431 if (s!=width) return; 431 if (s!=width) return;
432 LauncherItem*item = findDocItem(aFile); 432 LauncherItem*item = 0;
433 QMap<QString,LauncherItem*>::Iterator it;
434 if ( ( it = m_itemCache.find(aFile))!=m_itemCache.end()) {
435 item = it.data();
436 m_itemCache.remove(it);
437 } else {
438 item = findDocItem(aFile);
439 }
433 if (!item||!item->isEyeImage()) return; 440 if (!item||!item->isEyeImage()) return;
434 item->setEyePixmap(aPixmap); 441 item->setEyePixmap(aPixmap);
435} 442}
436 443
437void LauncherIconView::checkCallback() 444void LauncherIconView::checkCallback()
438{ 445{
439 if (m_EyeCallBack) { 446 if (!m_EyeCallBack) {
440 return; 447 m_EyeCallBack = new LauncherThumbReceiver();
448 connect(m_EyeCallBack,SIGNAL(sig_Thumbnail(const QPixmap&,const QString&,int)),
449 this,SLOT(setEyePixmap(const QPixmap&,const QString&,int)));
450 m_eyeTimer.changeInterval(600000);
441 } 451 }
442 m_EyeCallBack = new LauncherThumbReceiver();
443 connect(m_EyeCallBack,SIGNAL(sig_Thumbnail(const QPixmap&,const QString&,int)),
444 this,SLOT(setEyePixmap(const QPixmap&,const QString&,int)));
445} 452}
446 453
447void LauncherIconView::addCheckItem(AppLnk* app) 454void LauncherIconView::addCheckItem(AppLnk* app)
@@ -456,20 +463,20 @@ void LauncherIconView::requestEyePix(const LauncherItem*item)
456{ 463{
457 if (!item) return; 464 if (!item) return;
458 if (item->isEyeImage()) { 465 if (item->isEyeImage()) {
459 m_eyeTimer.changeInterval(600000);
460 checkCallback(); 466 checkCallback();
461 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); 467 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
468 m_itemCache[item->appLnk()->file()]=(LauncherItem*)item;
462 m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s); 469 m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s);
463 } 470 }
464} 471}
465 472
466void LauncherIconView::stopEyeTimer() 473void LauncherIconView::stopEyeTimer()
467{ 474{
468 odebug << "Launcherview: delete opie-eye handle" << oendl;
469 if (m_EyeCallBack) { 475 if (m_EyeCallBack) {
470 delete m_EyeCallBack; 476 delete m_EyeCallBack;
471 m_EyeCallBack=0; 477 m_EyeCallBack=0;
472 } 478 }
479 m_itemCache.clear();
473 m_eyeTimer.stop(); 480 m_eyeTimer.stop();
474} 481}
475 482
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index ebb1362..94c367c 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -26,6 +26,7 @@
26#include <qvbox.h> 26#include <qvbox.h>
27#include <qiconview.h> 27#include <qiconview.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qmap.h>
29 30
30class CategorySelect; 31class CategorySelect;
31class LauncherIconView; 32class LauncherIconView;
@@ -239,6 +240,7 @@ private:
239#endif 240#endif
240 BusyIndicatorType busyType; 241 BusyIndicatorType busyType;
241 QTimer m_eyeTimer; 242 QTimer m_eyeTimer;
243 QMap<QString,LauncherItem*> m_itemCache;
242}; 244};
243 245
244#endif // LAUNCHERVIEW_H 246#endif // LAUNCHERVIEW_H