author | alwin <alwin> | 2004-11-07 15:08:59 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-11-07 15:08:59 (UTC) |
commit | cf8bdb2fe272ca0ecf96aae479df9e1d357ae8a4 (patch) (side-by-side diff) | |
tree | 6c55d20ded81c17b5ed772776f333cc7c3ac36bc | |
parent | e11d189bfd48ab072da4753240a4ab0bbf81296f (diff) | |
download | opie-cf8bdb2fe272ca0ecf96aae479df9e1d357ae8a4.zip opie-cf8bdb2fe272ca0ecf96aae479df9e1d357ae8a4.tar.gz opie-cf8bdb2fe272ca0ecf96aae479df9e1d357ae8a4.tar.bz2 |
fixed up the icon display, imagecache size depends on size of icons
-rw-r--r-- | noncore/graphics/opie-eye/gui/iconview.cpp | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index c037d0d..f173ecc 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -93,16 +93,12 @@ namespace { const QString& name, int a_iconsize, bool isDir) : QIconViewItem( view, name ), m_path( path ), m_isDir( isDir ), m_noInfo( false ),m_textOnly(false),m_Pixset(false) { m_iconsize = a_iconsize; if ( isDir ) { - if (_dirPix && _dirPix->width()!=m_iconsize) { - delete _dirPix; - _dirPix = 0; - } if (!_dirPix ) { _dirPix = new QPixmap( Resource::loadPixmap("advancedfm/FileBrowser")); } } else { if (!_unkPix ) { _unkPix = new QPixmap( Resource::loadPixmap( "UnknownDocument" ) ); @@ -110,16 +106,12 @@ namespace { } check_pix(); } inline void IconViewItem::check_pix()const { - if (_cpyPix && _cpyPix->width()!=m_iconsize) { - delete _cpyPix; - _cpyPix = 0; - } if (_dirPix && _dirPix->width()>m_iconsize) { QPixmap*Pix = new QPixmap(*_dirPix); Pix->resize(m_iconsize,m_iconsize); delete _dirPix; _dirPix = Pix; } @@ -420,15 +412,27 @@ void PIconView::loadViews() { void PIconView::resetView() { m_internalReset = true; // Also invalidate the cache. We can't cancel the operations anyway g_stringPix.clear(); g_stringInf.clear(); if (m_mode>1) { + int osize = m_iconsize; m_iconsize = m_cfg->readNumEntry("iconsize", 32); if (m_iconsize<12)m_iconsize = 12; if (m_iconsize>64)m_iconsize = 64; + if (osize != m_iconsize) { + if (_dirPix){ + delete _dirPix; + _dirPix = 0; + } + if (_cpyPix){ + delete _cpyPix; + _cpyPix = 0; + } + calculateGrid(); + } } else { m_iconsize = 64; } slotViewChanged(m_views->currentItem()); m_internalReset = false; } @@ -804,13 +808,20 @@ void PIconView::slotChangeMode( int mode ) { m_iconsize = 64; } else { m_iconsize = m_cfg->readNumEntry("iconsize", 32); if (m_iconsize<12)m_iconsize = 12; if (m_iconsize>64)m_iconsize = 64; } - + if (_dirPix){ + delete _dirPix; + _dirPix = 0; + } + if (_cpyPix){ + delete _cpyPix; + _cpyPix = 0; + } calculateGrid(); slotReloadDir(); } } @@ -839,27 +850,32 @@ void PIconView::calculateGrid(QResizeEvent* re) case 3: case 1: default: pos = QIconView::Right; break; } + int cache = 0; m_view->setItemTextPos( pos ); switch (m_mode) { case 2: + m_view->setSpacing(2); m_view->setGridX(m_iconsize); m_view->setGridY(-1); - PPixmapCache::self()->setMaxImages(40); + cache = (int)((double)64/(double)m_iconsize*40.0); + odebug << "cache size: " << cache << oendl; + PPixmapCache::self()->setMaxImages(cache); break; case 3: + m_view->setSpacing(10); m_view->setGridX( fontMetrics().width("testimage.jpg")+20); m_view->setGridY(8); PPixmapCache::self()->setMaxImages(2); break; case 1: default: + m_view->setSpacing(10); m_view->setGridX( viewerWidth-3*m_view->spacing()); m_view->setGridY( fontMetrics().height()*2+40 ); PPixmapCache::self()->setMaxImages(20); break; } - m_view->setSpacing(10); } |