summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui/iconview.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/gui/iconview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp
index b2443e8..59091a8 100644
--- a/noncore/graphics/opie-eye/gui/iconview.cpp
+++ b/noncore/graphics/opie-eye/gui/iconview.cpp
@@ -27,24 +27,28 @@
27#include <qlabel.h> 27#include <qlabel.h>
28#include <qhbox.h> 28#include <qhbox.h>
29#include <qcombobox.h> 29#include <qcombobox.h>
30#include <qdir.h> 30#include <qdir.h>
31#include <qapplication.h> 31#include <qapplication.h>
32#include <qmainwindow.h> 32#include <qmainwindow.h>
33#include <qtimer.h> 33#include <qtimer.h>
34#include <qstyle.h> 34#include <qstyle.h>
35 35
36 36
37using Opie::Core::OKeyConfigItem; 37using Opie::Core::OKeyConfigItem;
38 38
39const int PIconView::sMAX_ICON_SIZE = 128;
40const int PIconView::sMIN_ICON_SIZE = 12;
41const int PIconView::sDEF_ICON_SIZE = 64;
42
39/* 43/*
40 * The Icons, Request Cache and IconViewItem for the IconView 44 * The Icons, Request Cache and IconViewItem for the IconView
41 */ 45 */
42namespace { 46namespace {
43 static QPixmap* _dirPix = 0; 47 static QPixmap* _dirPix = 0;
44 static QPixmap* _unkPix = 0; 48 static QPixmap* _unkPix = 0;
45 static QPixmap* _cpyPix = 0; 49 static QPixmap* _cpyPix = 0;
46 static QPixmap* _emptyPix = 0; 50 static QPixmap* _emptyPix = 0;
47 class IconViewItem : public QIconViewItem { 51 class IconViewItem : public QIconViewItem {
48 public: 52 public:
49 IconViewItem( QIconView*, const QString& path, const QString& name,int a_iconsize, bool isDir = false); 53 IconViewItem( QIconView*, const QString& path, const QString& name,int a_iconsize, bool isDir = false);
50 QPixmap* pixmap()const; 54 QPixmap* pixmap()const;
@@ -213,26 +217,26 @@ PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg )
213 217
214 m_view->setArrangement( QIconView::LeftToRight ); 218 m_view->setArrangement( QIconView::LeftToRight );
215 219
216 m_mode = m_cfg->readNumEntry("ListViewMode", 1); 220 m_mode = m_cfg->readNumEntry("ListViewMode", 1);
217 if (m_mode < 1 || m_mode>3) m_mode = 1; 221 if (m_mode < 1 || m_mode>3) m_mode = 1;
218 m_view->setItemTextPos( QIconView::Right ); 222 m_view->setItemTextPos( QIconView::Right );
219 if (m_mode >1) { 223 if (m_mode >1) {
220 m_view->setResizeMode(QIconView::Adjust); 224 m_view->setResizeMode(QIconView::Adjust);
221 } else { 225 } else {
222 m_view->setResizeMode(QIconView::Fixed); 226 m_view->setResizeMode(QIconView::Fixed);
223 } 227 }
224 m_iconsize = m_cfg->readNumEntry("iconsize", 32); 228 m_iconsize = m_cfg->readNumEntry("iconsize", 32);
225 if (m_iconsize<12)m_iconsize = 12; 229 if (m_iconsize<sMIN_ICON_SIZE)m_iconsize = sMIN_ICON_SIZE;
226 if (m_iconsize>64)m_iconsize = 64; 230 if (m_iconsize>sMAX_ICON_SIZE)m_iconsize = sMAX_ICON_SIZE;
227 231
228 calculateGrid(); 232 calculateGrid();
229 initKeys(); 233 initKeys();
230 loadViews(); 234 loadViews();
231} 235}
232 236
233void PIconView::setDoccalled(bool how) 237void PIconView::setDoccalled(bool how)
234{ 238{
235 m_setDocCalled = how; 239 m_setDocCalled = how;
236} 240}
237 241
238/* 242/*
@@ -399,39 +403,39 @@ void PIconView::loadViews() {
399 for ( it = map->begin(); it != map->end(); ++it ) 403 for ( it = map->begin(); it != map->end(); ++it )
400 m_views->insertItem( it.key() ); 404 m_views->insertItem( it.key() );
401} 405}
402 406
403void PIconView::resetView() { 407void PIconView::resetView() {
404 m_internalReset = true; 408 m_internalReset = true;
405 // Also invalidate the cache. We can't cancel the operations anyway 409 // Also invalidate the cache. We can't cancel the operations anyway
406 g_stringPix.clear(); 410 g_stringPix.clear();
407 g_stringInf.clear(); 411 g_stringInf.clear();
408 if (m_mode>1) { 412 if (m_mode>1) {
409 int osize = m_iconsize; 413 int osize = m_iconsize;
410 m_iconsize = m_cfg->readNumEntry("iconsize", 32); 414 m_iconsize = m_cfg->readNumEntry("iconsize", 32);
411 if (m_iconsize<12)m_iconsize = 12; 415 if (m_iconsize<sMIN_ICON_SIZE)m_iconsize = sMIN_ICON_SIZE;
412 if (m_iconsize>64)m_iconsize = 64; 416 if (m_iconsize>sMAX_ICON_SIZE)m_iconsize = sMAX_ICON_SIZE;
413 if (osize != m_iconsize) { 417 if (osize != m_iconsize) {
414 if (_dirPix){ 418 if (_dirPix){
415 delete _dirPix; 419 delete _dirPix;
416 _dirPix = 0; 420 _dirPix = 0;
417 } 421 }
418 if (_cpyPix){ 422 if (_cpyPix){
419 delete _cpyPix; 423 delete _cpyPix;
420 _cpyPix = 0; 424 _cpyPix = 0;
421 } 425 }
422 calculateGrid(); 426 calculateGrid();
423 } 427 }
424 } else { 428 } else {
425 m_iconsize = 64; 429 m_iconsize = sDEF_ICON_SIZE;
426 } 430 }
427 slotViewChanged(m_views->currentItem()); 431 slotViewChanged(m_views->currentItem());
428 m_internalReset = false; 432 m_internalReset = false;
429} 433}
430 434
431void PIconView::polish() 435void PIconView::polish()
432{ 436{
433 QVBox::polish(); 437 QVBox::polish();
434 438
435 QString lastView = m_cfg->readEntry("LastView",""); 439 QString lastView = m_cfg->readEntry("LastView","");
436 int cc=0; 440 int cc=0;
437 for (; cc<m_views->count();++cc) { 441 for (; cc<m_views->count();++cc) {
@@ -824,29 +828,29 @@ void PIconView::slotImageInfo( const QString& name) {
824void PIconView::slotChangeMode( int mode ) { 828void PIconView::slotChangeMode( int mode ) {
825 if ( mode >= 1 && mode <= 3 ) { 829 if ( mode >= 1 && mode <= 3 ) {
826 m_mode = mode; 830 m_mode = mode;
827 m_cfg->writeEntry("ListViewMode", m_mode); 831 m_cfg->writeEntry("ListViewMode", m_mode);
828 /* performance! */ 832 /* performance! */
829 m_view->clear(); 833 m_view->clear();
830 if (m_mode >1) { 834 if (m_mode >1) {
831 m_view->setResizeMode(QIconView::Adjust); 835 m_view->setResizeMode(QIconView::Adjust);
832 } else { 836 } else {
833 m_view->setResizeMode(QIconView::Fixed); 837 m_view->setResizeMode(QIconView::Fixed);
834 } 838 }
835 if (m_mode==1) { 839 if (m_mode==1) {
836 m_iconsize = 64; 840 m_iconsize = sDEF_ICON_SIZE;
837 } else { 841 } else {
838 m_iconsize = m_cfg->readNumEntry("iconsize", 32); 842 m_iconsize = m_cfg->readNumEntry("iconsize", 32);
839 if (m_iconsize<12)m_iconsize = 12; 843 if (m_iconsize<sMIN_ICON_SIZE)m_iconsize = sMIN_ICON_SIZE;
840 if (m_iconsize>64)m_iconsize = 64; 844 if (m_iconsize>sMAX_ICON_SIZE)m_iconsize = sMAX_ICON_SIZE;
841 } 845 }
842 if (_dirPix){ 846 if (_dirPix){
843 delete _dirPix; 847 delete _dirPix;
844 _dirPix = 0; 848 _dirPix = 0;
845 } 849 }
846 if (_cpyPix){ 850 if (_cpyPix){
847 delete _cpyPix; 851 delete _cpyPix;
848 _cpyPix = 0; 852 _cpyPix = 0;
849 } 853 }
850 calculateGrid(); 854 calculateGrid();
851 slotReloadDir(); 855 slotReloadDir();
852 } 856 }
@@ -879,25 +883,25 @@ void PIconView::calculateGrid(QResizeEvent* re)
879 case 1: 883 case 1:
880 default: 884 default:
881 pos = QIconView::Right; 885 pos = QIconView::Right;
882 break; 886 break;
883 } 887 }
884 int cache = 0; 888 int cache = 0;
885 m_view->setItemTextPos( pos ); 889 m_view->setItemTextPos( pos );
886 switch (m_mode) { 890 switch (m_mode) {
887 case 2: 891 case 2:
888 m_view->setSpacing(2); 892 m_view->setSpacing(2);
889 m_view->setGridX(m_iconsize); 893 m_view->setGridX(m_iconsize);
890 m_view->setGridY(-1); 894 m_view->setGridY(-1);
891 cache = (int)((double)64/(double)m_iconsize*40.0); 895 cache = (int)((double)sDEF_ICON_SIZE/(double)m_iconsize*80.0);
892 odebug << "cache size: " << cache << oendl; 896 odebug << "cache size: " << cache << oendl;
893 PPixmapCache::self()->setMaxImages(cache); 897 PPixmapCache::self()->setMaxImages(cache);
894 break; 898 break;
895 case 3: 899 case 3:
896 m_view->setSpacing(10); 900 m_view->setSpacing(10);
897 m_view->setGridX( fontMetrics().width("testimage.jpg")+20); 901 m_view->setGridX( fontMetrics().width("testimage.jpg")+20);
898 m_view->setGridY(8); 902 m_view->setGridY(8);
899 PPixmapCache::self()->setMaxImages(2); 903 PPixmapCache::self()->setMaxImages(2);
900 break; 904 break;
901 case 1: 905 case 1:
902 default: 906 default:
903 m_view->setSpacing(10); 907 m_view->setSpacing(10);