summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-02-16 19:20:06 (UTC)
committer mickeyl <mickeyl>2005-02-16 19:20:06 (UTC)
commit5ad21664e5db417a18682903a660f4651c68ff12 (patch) (unidiff)
tree12fc6b3e45b3575cf71c2b5dd1e26c4592f5381b
parent4fc6942eed4abdc0d4b5e1b3460a32852731c7b4 (diff)
downloadopie-5ad21664e5db417a18682903a660f4651c68ff12.zip
opie-5ad21664e5db417a18682903a660f4651c68ff12.tar.gz
opie-5ad21664e5db417a18682903a660f4651c68ff12.tar.bz2
this patch adds the possibility to have a static (as in non-scrolling) background
in the launcher. major drawback: most of our machines (at least the SA1100 based ones) are too slow to make it flicker free w/ tracking (repainting while dragging the scrollbar). so i needed to disable tracking for the static background. it's a hidden setting and disabled per default. please play around with it and give me your comments. How to enable: Launcher.conf: [GUI] StaticBackground = 1
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp29
-rw-r--r--core/launcher/launcherview.h7
2 files changed, 26 insertions, 10 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 2b34cc5..e7229ee 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -283,24 +283,32 @@ void LauncherItem::setEyePixmap(const QPixmap&aIcon)
283QMap<QString,QPixmap>* LauncherIconView::sm_EyeCache=0; 283QMap<QString,QPixmap>* LauncherIconView::sm_EyeCache=0;
284 284
285LauncherIconView::LauncherIconView( QWidget* parent, const char* name ) 285LauncherIconView::LauncherIconView( QWidget* parent, const char* name )
286 : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white),numColumns(0) 286 : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white),numColumns(0)
287{ 287{
288 m_EyeCallBack = 0; 288 m_EyeCallBack = 0;
289 if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>(); 289 if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>();
290 sortmeth = Name; 290 sortmeth = Name;
291 hidden.setAutoDelete(TRUE); 291 hidden.setAutoDelete(TRUE);
292 ike = FALSE; 292 ike = FALSE;
293 calculateGrid( Bottom ); 293 calculateGrid( Bottom );
294 connect(&m_eyeTimer,SIGNAL(timeout()),this,SLOT(stopEyeTimer())); 294 connect(&m_eyeTimer,SIGNAL(timeout()),this,SLOT(stopEyeTimer()));
295 Config config( "Launcher" );
296 config.setGroup( "GUI" );
297 staticBackground = config.readEntry( "StaticBackground", false );
298 if ( staticBackground )
299 {
300 setStaticBackground( true );
301 verticalScrollBar()->setTracking( false );
302 }
295} 303}
296 304
297LauncherIconView::~LauncherIconView() 305LauncherIconView::~LauncherIconView()
298{ 306{
299 odebug << "LauncherIconView::~LauncherIconView()" << oendl; 307 odebug << "LauncherIconView::~LauncherIconView()" << oendl;
300#if 0 // debuggery 308#if 0 // debuggery
301 QListIterator<AppLnk> it(hidden); 309 QListIterator<AppLnk> it(hidden);
302 AppLnk* l; 310 AppLnk* l;
303 while ((l=it.current())) { 311 while ((l=it.current())) {
304 ++it; 312 ++it;
305 //odebug << "" << l << ": hidden (should remove)" << oendl; 313 //odebug << "" << l << ": hidden (should remove)" << oendl;
306 } 314 }
@@ -345,35 +353,44 @@ void LauncherIconView::setTypeFilter(const QString& typefilter, bool resort)
345 tf = QRegExp(typefilter,FALSE,TRUE); 353 tf = QRegExp(typefilter,FALSE,TRUE);
346 hideOrShowItems(resort); 354 hideOrShowItems(resort);
347} 355}
348 356
349void LauncherIconView::setItemTextPos( ItemTextPos pos ) 357void LauncherIconView::setItemTextPos( ItemTextPos pos )
350{ 358{
351 calculateGrid( pos ); 359 calculateGrid( pos );
352 QIconView::setItemTextPos( pos ); 360 QIconView::setItemTextPos( pos );
353} 361}
354 362
355void LauncherIconView::drawBackground( QPainter *p, const QRect &r ) 363void LauncherIconView::drawBackground( QPainter *p, const QRect &r )
356{ 364{
357 if ( !bgPixmap.isNull() ) { 365 if ( bgPixmap.isNull() )
358 p->drawTiledPixmap( r, bgPixmap, 366 {
359 QPoint( (r.x() + contentsX()) % bgPixmap.width(),
360 (r.y() + contentsY()) % bgPixmap.height() ) );
361 } else {
362 p->fillRect( r, bgColor ); 367 p->fillRect( r, bgColor );
363 } 368 }
369 else
370 {
371 if ( staticBackground )
372 {
373 p->drawPixmap( r.x(), r.y(), bgPixmap, r.x(), r.y(), r.width(), r.height() );
374 }
375 else
376 {
377 p->drawTiledPixmap( r, bgPixmap, QPoint( (r.x() + contentsX()) % bgPixmap.width(),
378 (r.y() + contentsY()) % bgPixmap.height() ) );
379 }
380 }
364} 381}
365 382
366void LauncherIconView::addCatsAndMimes(AppLnk* app) 383void LauncherIconView::addCatsAndMimes(AppLnk* app)
367 { 384{
368 // QStringList c = app->categories(); 385 // QStringList c = app->categories();
369 // for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) { 386 // for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) {
370 // cats.replace(*cit,(void*)1); 387 // cats.replace(*cit,(void*)1);
371 // } 388 // }
372 QString maj=app->type(); 389 QString maj=app->type();
373 int sl=maj.find('/'); 390 int sl=maj.find('/');
374 if (sl>=0) { 391 if (sl>=0) {
375 QString k; 392 QString k;
376 k = maj.left(12) == "application/" ? maj : maj.left(sl); 393 k = maj.left(12) == "application/" ? maj : maj.left(sl);
377 mimes.replace(k,(void*)1); 394 mimes.replace(k,(void*)1);
378 } 395 }
379} 396}
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index e2869eb..97b1dea 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -28,26 +28,24 @@
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qmap.h> 29#include <qmap.h>
30 30
31class CategorySelect; 31class CategorySelect;
32class LauncherIconView; 32class LauncherIconView;
33class LauncherItem; 33class LauncherItem;
34class QIconViewItem; 34class QIconViewItem;
35class QLabel; 35class QLabel;
36class QWidgetStack; 36class QWidgetStack;
37class MenuButton; 37class MenuButton;
38class QComboBox; 38class QComboBox;
39 39
40
41
42enum BusyIndicatorType { 40enum BusyIndicatorType {
43 BIT_Normal = 0, 41 BIT_Normal = 0,
44 BIT_Animated 42 BIT_Animated
45}; 43};
46 44
47class LauncherView : public QVBox 45class LauncherView : public QVBox
48{ 46{
49 Q_OBJECT 47 Q_OBJECT
50 48
51public: 49public:
52 LauncherView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 50 LauncherView( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
53 ~LauncherView(); 51 ~LauncherView();
@@ -73,25 +71,25 @@ public:
73 void setViewMode( ViewMode m ); 71 void setViewMode( ViewMode m );
74 ViewMode viewMode() const { return vmode; } 72 ViewMode viewMode() const { return vmode; }
75 73
76 enum BackgroundType { Ruled, SolidColor, Image }; 74 enum BackgroundType { Ruled, SolidColor, Image };
77 void setBackgroundType( BackgroundType t, const QString & ); 75 void setBackgroundType( BackgroundType t, const QString & );
78 BackgroundType backgroundType() const { return bgType; } 76 BackgroundType backgroundType() const { return bgType; }
79 77
80 void setTextColor( const QColor & ); 78 void setTextColor( const QColor & );
81 QColor textColor() const { return textCol; } 79 QColor textColor() const { return textCol; }
82 80
83 void setViewFont( const QFont & ); 81 void setViewFont( const QFont & );
84 void clearViewFont(); 82 void clearViewFont();
85 83
86 void setColNumber( int ); 84 void setColNumber( int );
87 85
88 void relayout(void); 86 void relayout(void);
89 87
90signals: 88signals:
91 void clicked( const AppLnk * ); 89 void clicked( const AppLnk * );
92 void rightPressed( AppLnk * ); 90 void rightPressed( AppLnk * );
93 91
94protected slots: 92protected slots:
95 void selectionChanged(); 93 void selectionChanged();
96 void returnPressed( QIconViewItem *item ); 94 void returnPressed( QIconViewItem *item );
97 void itemClicked( int, QIconViewItem * ); 95 void itemClicked( int, QIconViewItem * );
@@ -190,25 +188,25 @@ public:
190 188
191 void setBackgroundOrigin( QWidget::BackgroundOrigin ) {} 189 void setBackgroundOrigin( QWidget::BackgroundOrigin ) {}
192 190
193 void setBackgroundPixmap( const QPixmap &pm ) { 191 void setBackgroundPixmap( const QPixmap &pm ) {
194 bgPixmap = pm; 192 bgPixmap = pm;
195 } 193 }
196 194
197 void setBackgroundColor( const QColor &c ) { 195 void setBackgroundColor( const QColor &c ) {
198 bgColor = c; 196 bgColor = c;
199 } 197 }
200 198
201 void setColNumber( int ); 199 void setColNumber( int );
202 200
203 void drawBackground( QPainter *p, const QRect &r ); 201 void drawBackground( QPainter *p, const QRect &r );
204 void setItemTextPos( ItemTextPos pos ); 202 void setItemTextPos( ItemTextPos pos );
205 void hideOrShowItems(bool resort); 203 void hideOrShowItems(bool resort);
206 204
207 void setTypeFilter(const QString& typefilter, bool resort); 205 void setTypeFilter(const QString& typefilter, bool resort);
208 void setCategoryFilter( int catfilter, bool resort ); 206 void setCategoryFilter( int catfilter, bool resort );
209 207
210 enum SortMethod { Name, Date, Type }; 208 enum SortMethod { Name, Date, Type };
211 209
212 void setSortMethod( SortMethod m ); 210 void setSortMethod( SortMethod m );
213 int compare(const AppLnk* a, const AppLnk* b); 211 int compare(const AppLnk* a, const AppLnk* b);
214 void requestEyePix(const LauncherItem*which); 212 void requestEyePix(const LauncherItem*which);
@@ -241,15 +239,16 @@ private:
241 int busyTimer; 239 int busyTimer;
242 bool ike; 240 bool ike;
243 bool bigIcns; 241 bool bigIcns;
244 QPixmap bgPixmap; 242 QPixmap bgPixmap;
245 QColor bgColor; 243 QColor bgColor;
246 LauncherThumbReceiver*m_EyeCallBack; 244 LauncherThumbReceiver*m_EyeCallBack;
247#ifdef USE_ANIMATED_BUSY_ICON_OVERLAY 245#ifdef USE_ANIMATED_BUSY_ICON_OVERLAY
248 QPixmap busyPix; 246 QPixmap busyPix;
249#endif 247#endif
250 BusyIndicatorType busyType; 248 BusyIndicatorType busyType;
251 QTimer m_eyeTimer; 249 QTimer m_eyeTimer;
252 int numColumns; 250 int numColumns;
251 bool staticBackground;
253}; 252};
254 253
255#endif // LAUNCHERVIEW_H 254#endif // LAUNCHERVIEW_H