summaryrefslogtreecommitdiff
path: root/core/launcher
authormickeyl <mickeyl>2005-01-10 23:47:36 (UTC)
committer mickeyl <mickeyl>2005-01-10 23:47:36 (UTC)
commit32e8aa951218c0bd6118ee04bb22ef83b3b7ec2e (patch) (unidiff)
tree7b8bcf86b76b4c44ca96f60e2c2594995c74fbb6 /core/launcher
parentdd649f98d0010711ed3d0fac433bd9fafa4002db (diff)
downloadopie-32e8aa951218c0bd6118ee04bb22ef83b3b7ec2e.zip
opie-32e8aa951218c0bd6118ee04bb22ef83b3b7ec2e.tar.gz
opie-32e8aa951218c0bd6118ee04bb22ef83b3b7ec2e.tar.bz2
make number of icon columns in the launcher customizable per-tab
TODO: add GUI for that
Diffstat (limited to 'core/launcher') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp1
-rw-r--r--core/launcher/launcherview.cpp38
-rw-r--r--core/launcher/launcherview.h5
3 files changed, 31 insertions, 13 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 970b8cb..4f81076 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -289,6 +289,7 @@ void LauncherTabWidget::setTabViewAppearance( LauncherView *v, Config &cfg )
289 v->setTextColor( QColor(textCol) ); 289 v->setTextColor( QColor(textCol) );
290// bool customFont = cfg.readBoolEntry( "CustomFont", FALSE ); 290// bool customFont = cfg.readBoolEntry( "CustomFont", FALSE );
291 291
292 v->setColNumber( cfg.readNumEntry( "Columns", 0 ) );
292 293
293 QStringList font = cfg.readListEntry( "Font", ',' ); 294 QStringList font = cfg.readListEntry( "Font", ',' );
294 if ( font.count() == 4 ) 295 if ( font.count() == 4 )
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index dc4c57f..9d78c0d 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -22,6 +22,7 @@
22 22
23/* OPIE */ 23/* OPIE */
24#include <opie2/odebug.h> 24#include <opie2/odebug.h>
25#include <qpe/config.h>
25#include <qtopia/qpeapplication.h> 26#include <qtopia/qpeapplication.h>
26#include <qtopia/private/categories.h> 27#include <qtopia/private/categories.h>
27#include <qtopia/categoryselect.h> 28#include <qtopia/categoryselect.h>
@@ -282,7 +283,7 @@ void LauncherItem::setEyePixmap(const QPixmap&aIcon)
282QMap<QString,QPixmap>* LauncherIconView::sm_EyeCache=0; 283QMap<QString,QPixmap>* LauncherIconView::sm_EyeCache=0;
283 284
284LauncherIconView::LauncherIconView( QWidget* parent, const char* name ) 285LauncherIconView::LauncherIconView( QWidget* parent, const char* name )
285 : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white) 286 : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white),numColumns(0)
286{ 287{
287 m_EyeCallBack = 0; 288 m_EyeCallBack = 0;
288 if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>(); 289 if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>();
@@ -625,22 +626,22 @@ void LauncherIconView::calculateGrid( ItemTextPos pos )
625 int dw = QApplication::desktop()->width(); 626 int dw = QApplication::desktop()->width();
626 int viewerWidth = dw-style().scrollBarExtent().width(); 627 int viewerWidth = dw-style().scrollBarExtent().width();
627 if ( pos == Bottom ) { 628 if ( pos == Bottom ) {
628 int cols = 3; 629 if( !numColumns ) {
629 if ( viewerWidth <= 200 ) 630 if ( viewerWidth <= 200 ) numColumns = 2;
630 cols = 2; 631 else if ( viewerWidth >= 400 ) numColumns = viewerWidth/96;
631 else if ( viewerWidth >= 400 ) 632 else numColumns = 3;
632 cols = viewerWidth/96; 633 }
633 setSpacing( 4 ); 634 setSpacing( 4 );
634 setGridX( (viewerWidth-(cols+1)*spacing())/cols ); 635 setGridX( (viewerWidth-(numColumns+1)*spacing())/numColumns );
635 setGridY( fontMetrics().height()*2+24 ); 636 setGridY( fontMetrics().height()*2+24 );
636 } else { 637 } else {
637 int cols = 2; 638 if( !numColumns ) {
638 if ( viewerWidth < 150 ) 639 if ( viewerWidth < 150 ) numColumns = 1;
639 cols = 1; 640 else if ( viewerWidth >= 400 ) numColumns = viewerWidth/150;
640 else if ( viewerWidth >= 400 ) 641 else numColumns = 2;
641 cols = viewerWidth/150; 642 }
642 setSpacing( 2 ); 643 setSpacing( 2 );
643 setGridX( (viewerWidth-(cols+1)*spacing())/cols ); 644 setGridX( (viewerWidth-(numColumns+1)*spacing())/numColumns );
644 setGridY( fontMetrics().height()+2 ); 645 setGridY( fontMetrics().height()+2 );
645 } 646 }
646} 647}
@@ -1003,6 +1004,17 @@ void LauncherView::setBackgroundType( BackgroundType t, const QString &val )
1003 QTimer::singleShot( 1000, this, SLOT(flushBgCache()) ); 1004 QTimer::singleShot( 1000, this, SLOT(flushBgCache()) );
1004} 1005}
1005 1006
1007void LauncherView::setColNumber( int num )
1008{
1009 icons->setColNumber( num );
1010}
1011
1012void LauncherIconView::setColNumber( int num )
1013{
1014 numColumns = num;
1015 calculateGrid( Bottom );
1016}
1017
1006void LauncherView::setTextColor( const QColor &tc ) 1018void LauncherView::setTextColor( const QColor &tc )
1007{ 1019{
1008 textCol = tc; 1020 textCol = tc;
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index 05073ab..e2869eb 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -82,6 +82,8 @@ public:
82 82
83 void setViewFont( const QFont & ); 83 void setViewFont( const QFont & );
84 void clearViewFont(); 84 void clearViewFont();
85
86 void setColNumber( int );
85 87
86 void relayout(void); 88 void relayout(void);
87 89
@@ -196,6 +198,8 @@ public:
196 bgColor = c; 198 bgColor = c;
197 } 199 }
198 200
201 void setColNumber( int );
202
199 void drawBackground( QPainter *p, const QRect &r ); 203 void drawBackground( QPainter *p, const QRect &r );
200 void setItemTextPos( ItemTextPos pos ); 204 void setItemTextPos( ItemTextPos pos );
201 void hideOrShowItems(bool resort); 205 void hideOrShowItems(bool resort);
@@ -245,6 +249,7 @@ private:
245#endif 249#endif
246 BusyIndicatorType busyType; 250 BusyIndicatorType busyType;
247 QTimer m_eyeTimer; 251 QTimer m_eyeTimer;
252 int numColumns;
248}; 253};
249 254
250#endif // LAUNCHERVIEW_H 255#endif // LAUNCHERVIEW_H