summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp91
-rw-r--r--core/launcher/launcherview.h5
2 files changed, 64 insertions, 32 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 673e53c..506c11e 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -75,2 +75,8 @@ class LauncherItem : public QIconViewItem
public:
+ enum iconstate_t {
+ BASE_ICON,
+ WAITING_ICON,
+ EYE_ICON
+ };
+
LauncherItem( QIconView *parent, AppLnk* applnk, bool bigIcon=TRUE );
@@ -90,2 +96,4 @@ public:
void setEyePixmap(const QPixmap&aIcon);
+ virtual QPixmap*pixmap()const;
+
protected:
@@ -101,19 +109,5 @@ private:
bool m_EyeImage;
+ iconstate_t m_EyeImageSet;
};
-
-bool LauncherView::bsy=FALSE;
-
-void LauncherView::setBusy(bool on)
-{
- icons->setBusy(on);
-}
-
-void LauncherView::setBusyIndicatorType( const QString& type ) {
- if ( type. lower ( ) == "animated" )
- icons->setBusyIndicatorType( BIT_Animated ) ;
- else
- icons->setBusyIndicatorType( BIT_Normal ) ;
-}
-
LauncherItem::LauncherItem( QIconView *parent, AppLnk *applnk, bool bigIcon )
@@ -126,3 +120,4 @@ LauncherItem::LauncherItem( QIconView *parent, AppLnk *applnk, bool bigIcon )
m_iPixmap(),
- m_EyeImage(false)
+ m_EyeImage(false),
+ m_EyeImageSet(BASE_ICON)
{
@@ -142,2 +137,11 @@ LauncherItem::~LauncherItem()
+QPixmap*LauncherItem::pixmap()const
+{
+ if (m_EyeImage && m_EyeImageSet == BASE_ICON) {
+ LauncherIconView* liv = (LauncherIconView*)iconView();
+ liv->requestEyePix(this);
+ }
+ return QIconViewItem::pixmap();
+}
+
int LauncherItem::compare ( QIconViewItem * i ) const
@@ -154,4 +158,4 @@ void LauncherItem::paintItem( QPainter *p, const QColorGroup &cg )
if ( liv->currentItem() == this ) {
- liv->setItemTextBackground( cg.brush( QColorGroup::Highlight ) );
- mycg.setColor( QColorGroup::Text, cg.color( QColorGroup::HighlightedText ) );
+ liv->setItemTextBackground( cg.brush( QColorGroup::Highlight ) );
+ mycg.setColor( QColorGroup::Text, cg.color( QColorGroup::HighlightedText ) );
}
@@ -162,10 +166,8 @@ void LauncherItem::paintItem( QPainter *p, const QColorGroup &cg )
if ( liv->busyItem() == this )
- paintAnimatedIcon(p);
+ paintAnimatedIcon(p);
if ( liv->currentItem() == this )
- liv->setItemTextBackground( oldBrush );
+ liv->setItemTextBackground( oldBrush );
}
-
-
void LauncherItem::paintAnimatedIcon( QPainter *p )
@@ -257,2 +259,3 @@ void LauncherItem::setEyePixmap(const QPixmap&aIcon)
setPixmap(aIcon);
+ m_EyeImageSet = EYE_ICON;
}
@@ -423,7 +426,8 @@ LauncherItem*LauncherIconView::findDocItem(const QString&fname)
-void LauncherIconView::setEyePixmap(const QPixmap&aPixmap,const QString&aFile)
+void LauncherIconView::setEyePixmap(const QPixmap&aPixmap,const QString&aFile,int width)
{
+ int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
+ if (s!=width) return;
LauncherItem*item = findDocItem(aFile);
if (!item||!item->isEyeImage()) return;
-
item->setEyePixmap(aPixmap);
@@ -437,4 +441,4 @@ void LauncherIconView::checkCallback()
m_EyeCallBack = new LauncherThumbReceiver();
- connect(m_EyeCallBack,SIGNAL(sig_Thumbnail(const QPixmap&,const QString&)),
- this,SLOT(setEyePixmap(const QPixmap&,const QString&)));
+ connect(m_EyeCallBack,SIGNAL(sig_Thumbnail(const QPixmap&,const QString&,int)),
+ this,SLOT(setEyePixmap(const QPixmap&,const QString&,int)));
}
@@ -446,4 +450,12 @@ void LauncherIconView::addCheckItem(AppLnk* app)
checkCallback();
+ }
+}
+
+void LauncherIconView::requestEyePix(const LauncherItem*item)
+{
+ if (!item) return;
+ if (item->isEyeImage()) {
+ checkCallback();
int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
- m_EyeCallBack->requestThumb(app->file(),s,s);
+ m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s);
}
@@ -635,2 +647,17 @@ LauncherView::~LauncherView()
+
+bool LauncherView::bsy=FALSE;
+
+void LauncherView::setBusy(bool on)
+{
+ icons->setBusy(on);
+}
+
+void LauncherView::setBusyIndicatorType( const QString& type ) {
+ if ( type. lower ( ) == "animated" )
+ icons->setBusyIndicatorType( BIT_Animated ) ;
+ else
+ icons->setBusyIndicatorType( BIT_Normal ) ;
+}
+
void LauncherView::hideIcons()
@@ -1055,2 +1082,6 @@ void LauncherView::flushBgCache()
+/*
+ * Launcherthumbnail handling for image files
+ */
+
/* special image handling - based on opie eye */
@@ -1095,3 +1126,3 @@ void LauncherThumbReceiver::recieve( const QCString&str, const QByteArray&at )
odebug << "Pixinfos: " << (*it).file << " - " << (*it).width << oendl;
- emit sig_Thumbnail((*it).pixmap,(*it).file);
+ emit sig_Thumbnail((*it).pixmap,(*it).file,(*it).width);
}
@@ -1106,3 +1137,3 @@ void LauncherThumbReceiver::requestThumb(const QString&file,int width,int height
m_inThumbNail.append(rItem);
- QTimer::singleShot(2, this, SLOT(sendRequest()));
+ QTimer::singleShot(0, this, SLOT(sendRequest()));
}
@@ -1114,4 +1145,4 @@ void LauncherThumbReceiver::sendRequest()
env << m_inThumbNail;
+ m_inThumbNail.clear();
}
- m_inThumbNail.clear();
}
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index 3cca7f7..0be9a1f 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -148,3 +148,3 @@ protected slots:
signals:
- void sig_Thumbnail(const QPixmap&,const QString&);
+ void sig_Thumbnail(const QPixmap&,const QString&,int);
@@ -218,2 +218,3 @@ public:
int compare(const AppLnk* a, const AppLnk* b);
+ void requestEyePix(const LauncherItem*which);
@@ -230,3 +231,3 @@ protected:
protected slots:
- void setEyePixmap(const QPixmap&,const QString&);
+ void setEyePixmap(const QPixmap&,const QString&,int width);