-rw-r--r-- | noncore/graphics/opie-eye/gui/iconview.cpp | 26 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/lib/imagecache.cpp | 6 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/lib/imagecache.h | 5 |
3 files changed, 27 insertions, 10 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index 039f53f..d546b64 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -52,7 +52,9 @@ namespace { void setText( const QString& ); bool textOnly()const{return m_textOnly;} void setTextOnly(bool how){m_textOnly=how;} + /* just for starting recalc of item rect! */ virtual void setPixmap( const QPixmap & icon, bool recalc, bool redraw = TRUE ); + /* just for starting recalc of item rect! */ virtual void setPixmap( const QPixmap & icon); protected: @@ -99,12 +101,12 @@ namespace { inline void IconViewItem::setPixmap( const QPixmap & icon, bool recalc, bool redraw) { m_Pixset = true; - QIconViewItem::setPixmap(icon,recalc,redraw); + calcRect(text()); } inline void IconViewItem::setPixmap( const QPixmap & icon) { m_Pixset = true; - QIconViewItem::setPixmap(icon); + calcRect(text()); } inline QPixmap* IconViewItem::pixmap()const { @@ -125,13 +127,10 @@ namespace { } m_pix = PPixmapCache::self()->cachedImage( m_path, 64, 64 ); - if (!m_pix && !g_stringPix.contains( m_path )&&!m_Pixset) { + if (!m_pix && !g_stringPix.contains( m_path )) { currentView()->dirLister()->thumbNail( m_path, 64, 64 ); g_stringPix.insert( m_path, const_cast<IconViewItem*>(this)); } - if (m_Pixset) { - return QIconViewItem::pixmap(); - } return m_pix ? m_pix : _unkPix; } } @@ -409,8 +408,12 @@ void PIconView::addFiles( const QStringList& lst) { for (it=lst.begin(); it!= lst.end(); ++it ) { m_pix = PPixmapCache::self()->cachedImage( m_path+"/"+(*it), 64, 64 ); _iv = new IconViewItem( m_view, m_path+"/"+(*it), (*it) ); - if (m_mode==3) _iv->setTextOnly(true); - if (m_pix) _iv->setPixmap(*m_pix); + if (m_mode==3) { + _iv->setTextOnly(true); + _iv->setPixmap(QPixmap()); + } else { + if (m_pix) _iv->setPixmap(*m_pix); + } } } @@ -592,17 +595,20 @@ void PIconView::calculateGrid() { switch (m_mode) { case 2: - m_view->setGridX(80); - m_view->setGridY(80); + m_view->setGridX(50); + m_view->setGridY(20); + PPixmapCache::self()->setMaxImages(40); break; case 3: m_view->setGridX(m_view->width()); m_view->setGridY(8); + PPixmapCache::self()->setMaxImages(2); break; case 1: default: m_view->setGridX(m_view->width()); m_view->setGridY(80); + PPixmapCache::self()->setMaxImages(20); break; } } diff --git a/noncore/graphics/opie-eye/lib/imagecache.cpp b/noncore/graphics/opie-eye/lib/imagecache.cpp index 3b74a83..f1042a4 100644 --- a/noncore/graphics/opie-eye/lib/imagecache.cpp +++ b/noncore/graphics/opie-eye/lib/imagecache.cpp @@ -62,6 +62,12 @@ PPixmapCache::PPixmapCache() { PPixmapCache::~PPixmapCache() { } +void PPixmapCache::setMaxImages(unsigned int aMax) +{ + m_MaxImages = aMax; + setMaxCost( 64*64*QPixmap::defaultDepth()/8*m_MaxImages); +} + PPixmapCache* PPixmapCache::self() { if ( !_pxmCache ) _pxmCache = new PPixmapCache; diff --git a/noncore/graphics/opie-eye/lib/imagecache.h b/noncore/graphics/opie-eye/lib/imagecache.h index 076ecd3..939247a 100644 --- a/noncore/graphics/opie-eye/lib/imagecache.h +++ b/noncore/graphics/opie-eye/lib/imagecache.h @@ -28,11 +28,16 @@ class PPixmapCache : public QCache<QPixmap> { private: PPixmapCache(); ~PPixmapCache(); + + unsigned int m_MaxImages; + public: static PPixmapCache *self(); QPixmap* cachedImage( const QString& path, int width, int height ); void insertImage( const QString& path, const QPixmap &, int width, int height ); void insertImage( const QString& path, const QPixmap *, int width, int height ); + void setMaxImages(unsigned int aMax); + unsigned int maxImages()const{return m_MaxImages;} }; inline void PPixmapCache::insertImage( const QString& path, const QPixmap& p, int width, int height ) { |