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) (side-by-side diff)
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
@@ -286,12 +286,13 @@ void LauncherTabWidget::setTabViewAppearance( LauncherView *v, Config &cfg )
if ( textCol.isEmpty() )
v->setTextColor( QColor() );
else
v->setTextColor( QColor(textCol) );
// bool customFont = cfg.readBoolEntry( "CustomFont", FALSE );
+ v->setColNumber( cfg.readNumEntry( "Columns", 0 ) );
QStringList font = cfg.readListEntry( "Font", ',' );
if ( font.count() == 4 )
v->setViewFont( QFont(font[0], font[1].toInt(), font[2].toInt(), font[3].toInt()!=0) );
// ### FIXME TabColor TabTextColor
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
@@ -19,12 +19,13 @@
**********************************************************************/
#include "launcherview.h"
/* OPIE */
#include <opie2/odebug.h>
+#include <qpe/config.h>
#include <qtopia/qpeapplication.h>
#include <qtopia/private/categories.h>
#include <qtopia/categoryselect.h>
#include <qtopia/mimetype.h>
#include <qtopia/resource.h>
using namespace Opie::Core;
@@ -279,13 +280,13 @@ void LauncherItem::setEyePixmap(const QPixmap&aIcon)
// Implemantation of LauncherIconview start
//===========================================================================
QMap<QString,QPixmap>* LauncherIconView::sm_EyeCache=0;
LauncherIconView::LauncherIconView( QWidget* parent, const char* name )
- : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white)
+ : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white),numColumns(0)
{
m_EyeCallBack = 0;
if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>();
sortmeth = Name;
hidden.setAutoDelete(TRUE);
ike = FALSE;
@@ -622,28 +623,28 @@ void LauncherIconView::setBusyIndicatorType ( BusyIndicatorType t ) { busyType =
void LauncherIconView::calculateGrid( ItemTextPos pos )
{
int dw = QApplication::desktop()->width();
int viewerWidth = dw-style().scrollBarExtent().width();
if ( pos == Bottom ) {
- int cols = 3;
- if ( viewerWidth <= 200 )
- cols = 2;
- else if ( viewerWidth >= 400 )
- cols = viewerWidth/96;
+ if( !numColumns ) {
+ if ( viewerWidth <= 200 ) numColumns = 2;
+ else if ( viewerWidth >= 400 ) numColumns = viewerWidth/96;
+ else numColumns = 3;
+ }
setSpacing( 4 );
- setGridX( (viewerWidth-(cols+1)*spacing())/cols );
+ setGridX( (viewerWidth-(numColumns+1)*spacing())/numColumns );
setGridY( fontMetrics().height()*2+24 );
} else {
- int cols = 2;
- if ( viewerWidth < 150 )
- cols = 1;
- else if ( viewerWidth >= 400 )
- cols = viewerWidth/150;
+ if( !numColumns ) {
+ if ( viewerWidth < 150 ) numColumns = 1;
+ else if ( viewerWidth >= 400 ) numColumns = viewerWidth/150;
+ else numColumns = 2;
+ }
setSpacing( 2 );
- setGridX( (viewerWidth-(cols+1)*spacing())/cols );
+ setGridX( (viewerWidth-(numColumns+1)*spacing())/numColumns );
setGridY( fontMetrics().height()+2 );
}
}
void LauncherIconView::styleChange( QStyle &old )
{
@@ -1000,12 +1001,23 @@ void LauncherView::setBackgroundType( BackgroundType t, const QString &val )
bgType = t;
icons->viewport()->update();
QTimer::singleShot( 1000, this, SLOT(flushBgCache()) );
}
+void LauncherView::setColNumber( int num )
+{
+ icons->setColNumber( num );
+}
+
+void LauncherIconView::setColNumber( int num )
+{
+ numColumns = num;
+ calculateGrid( Bottom );
+}
+
void LauncherView::setTextColor( const QColor &tc )
{
textCol = tc;
QColorGroup cg = icons->colorGroup();
cg.setColor( QColorGroup::Text, tc );
icons->setPalette( QPalette(cg,cg,cg) );
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
@@ -79,12 +79,14 @@ public:
void setTextColor( const QColor & );
QColor textColor() const { return textCol; }
void setViewFont( const QFont & );
void clearViewFont();
+
+ void setColNumber( int );
void relayout(void);
signals:
void clicked( const AppLnk * );
void rightPressed( AppLnk * );
@@ -193,12 +195,14 @@ public:
}
void setBackgroundColor( const QColor &c ) {
bgColor = c;
}
+ void setColNumber( int );
+
void drawBackground( QPainter *p, const QRect &r );
void setItemTextPos( ItemTextPos pos );
void hideOrShowItems(bool resort);
void setTypeFilter(const QString& typefilter, bool resort);
void setCategoryFilter( int catfilter, bool resort );
@@ -242,9 +246,10 @@ private:
LauncherThumbReceiver*m_EyeCallBack;
#ifdef USE_ANIMATED_BUSY_ICON_OVERLAY
QPixmap busyPix;
#endif
BusyIndicatorType busyType;
QTimer m_eyeTimer;
+ int numColumns;
};
#endif // LAUNCHERVIEW_H