author | mickeyl <mickeyl> | 2005-02-17 14:26:43 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-02-17 14:26:43 (UTC) |
commit | faaa7b79330fe3c5647182fafdb2bb584dc70638 (patch) (unidiff) | |
tree | ffa63faf248cf20f363b80b579855b124d34032f | |
parent | 766ac02e5586cd67b75b320fe1abee513384860c (diff) | |
download | opie-faaa7b79330fe3c5647182fafdb2bb584dc70638.zip opie-faaa7b79330fe3c5647182fafdb2bb584dc70638.tar.gz opie-faaa7b79330fe3c5647182fafdb2bb584dc70638.tar.bz2 |
The response to the static background pixmap was overwhelmingly positive, hence:
* fix static background pixmap also for tiled pixmaps
* make it customizable via LauncherSettings
* enable it per default
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | core/launcher/launcher.cpp | 8 | ||||
-rw-r--r-- | core/launcher/launcherview.cpp | 28 | ||||
-rw-r--r-- | core/launcher/launcherview.h | 3 | ||||
-rw-r--r-- | core/settings/launcher/tabssettings.cpp | 13 | ||||
-rw-r--r-- | core/settings/launcher/tabssettings.h | 2 |
6 files changed, 43 insertions, 13 deletions
@@ -1,12 +1,14 @@ | |||
1 | 2005-??-??Opie 1.2.0 | 1 | 2005-??-??Opie 1.2.0 |
2 | 2 | ||
3 | New Features | 3 | New Features |
4 | ------------ | 4 | ------------ |
5 | * Launcher: Support a static background pixmap (mickeyl) | ||
6 | * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) | ||
5 | 7 | ||
6 | Fixed Bugs | 8 | Fixed Bugs |
7 | ---------- | 9 | ---------- |
8 | * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) | 10 | * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) |
9 | * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) | 11 | * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) |
10 | * #1482 - Fix double '/' in paths (zecke) | 12 | * #1482 - Fix double '/' in paths (zecke) |
11 | * #1536 - Autosave of custom locations in opie backup (ar) | 13 | * #1536 - Autosave of custom locations in opie backup (ar) |
12 | * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) | 14 | * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) |
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index 4255b44..4ec5f4c 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp | |||
@@ -451,16 +451,24 @@ void LauncherTabWidget::launcherMessage( const QCString &msg, const QByteArray & | |||
451 | categoryBar->nextTab(); | 451 | categoryBar->nextTab(); |
452 | }else { | 452 | }else { |
453 | static_cast<QWidget*>(parent())->raise(); | 453 | static_cast<QWidget*>(parent())->raise(); |
454 | } | 454 | } |
455 | } else if (msg=="doctabEnabled(int)") { | 455 | } else if (msg=="doctabEnabled(int)") { |
456 | int id; stream >> id; | 456 | int id; stream >> id; |
457 | odebug << "Doctab enabled " << id << oendl; | 457 | odebug << "Doctab enabled " << id << oendl; |
458 | reCheckDoctab(id); | 458 | reCheckDoctab(id); |
459 | } else if ( msg == "setStaticBackground(bool)" ) { | ||
460 | int set; stream >> set; | ||
461 | odebug << "setStaticBackground " << set << oendl; | ||
462 | for (int i = 0; i < categoryBar->count(); i++ ) | ||
463 | { | ||
464 | LauncherView* view = static_cast<LauncherTab*>( categoryBar->tab(i) )->view; | ||
465 | view->iconView()->setStaticBackgroundPicture( set ); | ||
466 | } | ||
459 | } | 467 | } |
460 | } | 468 | } |
461 | 469 | ||
462 | void LauncherTabWidget::reCheckDoctab(int how) | 470 | void LauncherTabWidget::reCheckDoctab(int how) |
463 | { | 471 | { |
464 | if ((bool)how == docTabEnabled) { | 472 | if ((bool)how == docTabEnabled) { |
465 | /* nothing to do */ | 473 | /* nothing to do */ |
466 | return; | 474 | return; |
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp index e7229ee..a4c7561 100644 --- a/core/launcher/launcherview.cpp +++ b/core/launcher/launcherview.cpp | |||
@@ -289,37 +289,47 @@ LauncherIconView::LauncherIconView( QWidget* parent, const char* name ) | |||
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" ); | 295 | Config config( "Launcher" ); |
296 | config.setGroup( "GUI" ); | 296 | config.setGroup( "GUI" ); |
297 | staticBackground = config.readEntry( "StaticBackground", false ); | 297 | setStaticBackgroundPicture( config.readBoolEntry( "StaticBackground", true ) ); |
298 | if ( staticBackground ) | ||
299 | { | ||
300 | setStaticBackground( true ); | ||
301 | verticalScrollBar()->setTracking( false ); | ||
302 | } | ||
303 | } | 298 | } |
304 | 299 | ||
305 | LauncherIconView::~LauncherIconView() | 300 | LauncherIconView::~LauncherIconView() |
306 | { | 301 | { |
307 | odebug << "LauncherIconView::~LauncherIconView()" << oendl; | 302 | odebug << "LauncherIconView::~LauncherIconView()" << oendl; |
308 | #if 0 // debuggery | 303 | #if 0 // debuggery |
309 | QListIterator<AppLnk> it(hidden); | 304 | QListIterator<AppLnk> it(hidden); |
310 | AppLnk* l; | 305 | AppLnk* l; |
311 | while ((l=it.current())) { | 306 | while ((l=it.current())) { |
312 | ++it; | 307 | ++it; |
313 | //odebug << "" << l << ": hidden (should remove)" << oendl; | 308 | //odebug << "" << l << ": hidden (should remove)" << oendl; |
314 | } | 309 | } |
315 | #endif | 310 | #endif |
316 | } | 311 | } |
317 | 312 | ||
313 | void LauncherIconView::setStaticBackgroundPicture( bool enable ) | ||
314 | { | ||
315 | staticBackground = enable; | ||
316 | if ( staticBackground ) | ||
317 | { | ||
318 | setStaticBackground( true ); | ||
319 | verticalScrollBar()->setTracking( false ); | ||
320 | } | ||
321 | else | ||
322 | { | ||
323 | setStaticBackground( false ); | ||
324 | verticalScrollBar()->setTracking( true ); | ||
325 | } | ||
326 | } | ||
327 | |||
318 | int LauncherIconView::compare(const AppLnk* a, const AppLnk* b) | 328 | int LauncherIconView::compare(const AppLnk* a, const AppLnk* b) |
319 | { | 329 | { |
320 | switch (sortmeth) { | 330 | switch (sortmeth) { |
321 | case Name: | 331 | case Name: |
322 | return a->name().lower().compare(b->name().lower()); | 332 | return a->name().lower().compare(b->name().lower()); |
323 | case Date: { | 333 | case Date: { |
324 | QFileInfo fa(a->linkFileKnown() ? a->linkFile() : a->file()); | 334 | QFileInfo fa(a->linkFileKnown() ? a->linkFile() : a->file()); |
325 | QFileInfo fb(b->linkFileKnown() ? b->linkFile() : b->file()); | 335 | QFileInfo fb(b->linkFileKnown() ? b->linkFile() : b->file()); |
@@ -365,22 +375,22 @@ void LauncherIconView::drawBackground( QPainter *p, const QRect &r ) | |||
365 | if ( bgPixmap.isNull() ) | 375 | if ( bgPixmap.isNull() ) |
366 | { | 376 | { |
367 | p->fillRect( r, bgColor ); | 377 | p->fillRect( r, bgColor ); |
368 | } | 378 | } |
369 | else | 379 | else |
370 | { | 380 | { |
371 | if ( staticBackground ) | 381 | if ( staticBackground ) |
372 | { | 382 | { |
373 | p->drawPixmap( r.x(), r.y(), bgPixmap, r.x(), r.y(), r.width(), r.height() ); | 383 | p->drawTiledPixmap( r, bgPixmap, QPoint( r.x() % bgPixmap.width(), r.y() % bgPixmap.height() ) ); |
374 | } | 384 | } |
375 | else | 385 | else |
376 | { | 386 | { |
377 | p->drawTiledPixmap( r, bgPixmap, QPoint( (r.x() + contentsX()) % bgPixmap.width(), | 387 | p->drawTiledPixmap( r, bgPixmap, QPoint( (r.x() + contentsX()) % bgPixmap.width(), |
378 | (r.y() + contentsY()) % bgPixmap.height() ) ); | 388 | (r.y() + contentsY()) % bgPixmap.height() ) ); |
379 | } | 389 | } |
380 | } | 390 | } |
381 | } | 391 | } |
382 | 392 | ||
383 | void LauncherIconView::addCatsAndMimes(AppLnk* app) | 393 | void LauncherIconView::addCatsAndMimes(AppLnk* app) |
384 | { | 394 | { |
385 | // QStringList c = app->categories(); | 395 | // QStringList c = app->categories(); |
386 | // for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) { | 396 | // for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) { |
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h index 97b1dea..6a2d197 100644 --- a/core/launcher/launcherview.h +++ b/core/launcher/launcherview.h | |||
@@ -77,18 +77,18 @@ public: | |||
77 | 77 | ||
78 | void setTextColor( const QColor & ); | 78 | void setTextColor( const QColor & ); |
79 | QColor textColor() const { return textCol; } | 79 | QColor textColor() const { return textCol; } |
80 | 80 | ||
81 | void setViewFont( const QFont & ); | 81 | void setViewFont( const QFont & ); |
82 | void clearViewFont(); | 82 | void clearViewFont(); |
83 | 83 | ||
84 | void setColNumber( int ); | 84 | void setColNumber( int ); |
85 | |||
86 | void relayout(void); | 85 | void relayout(void); |
86 | LauncherIconView* iconView() { return icons; }; | ||
87 | 87 | ||
88 | signals: | 88 | signals: |
89 | void clicked( const AppLnk * ); | 89 | void clicked( const AppLnk * ); |
90 | void rightPressed( AppLnk * ); | 90 | void rightPressed( AppLnk * ); |
91 | 91 | ||
92 | protected slots: | 92 | protected slots: |
93 | void selectionChanged(); | 93 | void selectionChanged(); |
94 | void returnPressed( QIconViewItem *item ); | 94 | void returnPressed( QIconViewItem *item ); |
@@ -164,16 +164,17 @@ public: | |||
164 | QIconViewItem* busyItem() const; | 164 | QIconViewItem* busyItem() const; |
165 | 165 | ||
166 | #ifdef USE_ANIMATED_BUSY_ICON_OVERLAY | 166 | #ifdef USE_ANIMATED_BUSY_ICON_OVERLAY |
167 | QPixmap busyPixmap() const { return busyPix; } | 167 | QPixmap busyPixmap() const { return busyPix; } |
168 | #endif | 168 | #endif |
169 | void setBigIcons( bool bi ); | 169 | void setBigIcons( bool bi ); |
170 | void updateCategoriesAndMimeTypes(); | 170 | void updateCategoriesAndMimeTypes(); |
171 | void setBusyIndicatorType ( BusyIndicatorType t ); | 171 | void setBusyIndicatorType ( BusyIndicatorType t ); |
172 | void setStaticBackgroundPicture( bool enable ); | ||
172 | void doAutoScroll() | 173 | void doAutoScroll() |
173 | { | 174 | { |
174 | // We don't want rubberbanding (yet) | 175 | // We don't want rubberbanding (yet) |
175 | } | 176 | } |
176 | 177 | ||
177 | void setBusy(bool on); | 178 | void setBusy(bool on); |
178 | bool inKeyEvent() const { return ike; } | 179 | bool inKeyEvent() const { return ike; } |
179 | 180 | ||
diff --git a/core/settings/launcher/tabssettings.cpp b/core/settings/launcher/tabssettings.cpp index 42f0568..fca6b20 100644 --- a/core/settings/launcher/tabssettings.cpp +++ b/core/settings/launcher/tabssettings.cpp | |||
@@ -78,28 +78,32 @@ TabsSettings::TabsSettings ( QWidget *parent, const char *name ) | |||
78 | 78 | ||
79 | lay-> setRowStretch ( 4, 10 ); | 79 | lay-> setRowStretch ( 4, 10 ); |
80 | 80 | ||
81 | m_bigbusy = new QCheckBox( tr( "Enable big busy indicator" ), this ); | 81 | m_bigbusy = new QCheckBox( tr( "Enable big busy indicator" ), this ); |
82 | lay-> addMultiCellWidget ( m_bigbusy, 5, 5, 0, 1 ); | 82 | lay-> addMultiCellWidget ( m_bigbusy, 5, 5, 0, 1 ); |
83 | 83 | ||
84 | m_busyani = new QCheckBox ( tr( "Enable animated busy indicator" ), this ); | 84 | m_busyani = new QCheckBox ( tr( "Enable animated busy indicator" ), this ); |
85 | lay-> addMultiCellWidget ( m_busyani, 6, 6, 0, 1 ); | 85 | lay-> addMultiCellWidget ( m_busyani, 6, 6, 0, 1 ); |
86 | |||
87 | m_staticbackground = new QCheckBox( tr( "Enable static background pixmap" ), this ); | ||
88 | lay->addMultiCellWidget( m_staticbackground, 7, 7, 0, 1 ); | ||
86 | 89 | ||
87 | p1-> setEnabled ( false ); | 90 | p1-> setEnabled ( false ); |
88 | p3-> setEnabled ( false ); | 91 | p3-> setEnabled ( false ); |
89 | 92 | ||
90 | init ( ); | 93 | init ( ); |
91 | 94 | ||
92 | QWhatsThis::add ( m_list, tr( "Select the Launcher Tab you want to edit or delete." )); | 95 | QWhatsThis::add ( m_list, tr( "Select the Launcher Tab you want to edit or delete." )); |
93 | QWhatsThis::add ( p1, tr( "Adds a new Tab to the Launcher." ) + QString ( "<center><br><i>not yet implemented</i><br>Please use the tabmanager</center>." )); | 96 | QWhatsThis::add ( p1, tr( "Adds a new Tab to the Launcher." ) + QString ( "<center><br><i>not yet implemented</i><br>Please use the tabmanager</center>." )); |
94 | QWhatsThis::add ( p2, tr( "Opens a new dialog to customize the select Tab." )); | 97 | QWhatsThis::add ( p2, tr( "Opens a new dialog to customize the select Tab." )); |
95 | QWhatsThis::add ( p3, tr( "Deletes a Tab from the Launcher." ) + QString ( "<center><br><i>not yet implemented</i><br>Please use the tabmanager</center>." )); | 98 | QWhatsThis::add ( p3, tr( "Deletes a Tab from the Launcher." ) + QString ( "<center><br><i>not yet implemented</i><br>Please use the tabmanager</center>." )); |
96 | QWhatsThis::add ( m_bigbusy, tr( "Activate this, if you want a big busy indicator in the middle of the screen instead of the one in taskbar." )); | 99 | QWhatsThis::add ( m_bigbusy, tr( "Activate this, if you want a big busy indicator in the middle of the screen instead of the one in taskbar." )); |
97 | QWhatsThis::add ( m_busyani, tr( "Activate this, if you want an animatedbusy indicator for starting applications in the Launcher." )); | 100 | QWhatsThis::add ( m_busyani, tr( "Activate this, if you want an animatedbusy indicator for starting applications in the Launcher." )); |
101 | QWhatsThis::add ( m_staticbackground, tr( "Activate this, if you want the background pixmap not to scroll with the icons." )); | ||
98 | } | 102 | } |
99 | 103 | ||
100 | void TabsSettings::init ( ) | 104 | void TabsSettings::init ( ) |
101 | { | 105 | { |
102 | AppLnkSet rootFolder( MimeType::appsFolderName ( )); | 106 | AppLnkSet rootFolder( MimeType::appsFolderName ( )); |
103 | QStringList types = rootFolder. types ( ); | 107 | QStringList types = rootFolder. types ( ); |
104 | 108 | ||
105 | m_list-> insertItem ( tr( "All Tabs" )); | 109 | m_list-> insertItem ( tr( "All Tabs" )); |
@@ -117,16 +121,17 @@ void TabsSettings::init ( ) | |||
117 | 121 | ||
118 | Config cfg ( "Launcher" ); | 122 | Config cfg ( "Launcher" ); |
119 | 123 | ||
120 | readTabSettings ( cfg ); | 124 | readTabSettings ( cfg ); |
121 | 125 | ||
122 | cfg. setGroup ( "GUI" ); | 126 | cfg. setGroup ( "GUI" ); |
123 | m_busyani-> setChecked ( cfg. readEntry ( "BusyType" ). lower ( ) == "animated" ); | 127 | m_busyani-> setChecked ( cfg. readEntry ( "BusyType" ). lower ( ) == "animated" ); |
124 | m_bigbusy->setChecked( cfg. readBoolEntry ( "BigBusy" ) ); | 128 | m_bigbusy->setChecked( cfg. readBoolEntry ( "BigBusy" ) ); |
129 | m_staticbackground->setChecked( cfg.readBoolEntry( "StaticBackground", true ) ); | ||
125 | } | 130 | } |
126 | 131 | ||
127 | 132 | ||
128 | void TabsSettings::readTabSettings ( Config &cfg ) | 133 | void TabsSettings::readTabSettings ( Config &cfg ) |
129 | { | 134 | { |
130 | QString grp ( "Tab %1" ); // No tr | 135 | QString grp ( "Tab %1" ); // No tr |
131 | m_tabs. clear ( ); | 136 | m_tabs. clear ( ); |
132 | 137 | ||
@@ -274,23 +279,27 @@ void TabsSettings::accept ( ) | |||
274 | fe << tc. m_font_weight; | 279 | fe << tc. m_font_weight; |
275 | fe << ( tc. m_font_italic ? 1 : 0 ); | 280 | fe << ( tc. m_font_italic ? 1 : 0 ); |
276 | 281 | ||
277 | tc. m_changed = false; | 282 | tc. m_changed = false; |
278 | } | 283 | } |
279 | cfg. setGroup ( "GUI" ); | 284 | cfg. setGroup ( "GUI" ); |
280 | QString busytype = QString ( m_busyani-> isChecked ( ) ? "Animated" : "" ); | 285 | QString busytype = QString ( m_busyani-> isChecked ( ) ? "Animated" : "" ); |
281 | cfg. writeEntry ( "BusyType", busytype ); | 286 | cfg. writeEntry ( "BusyType", busytype ); |
282 | 287 | cfg. writeEntry ( "BigBusy", m_bigbusy->isChecked( ) ); | |
283 | cfg. writeEntry ( "BigBusy", m_bigbusy->isChecked( ) ); | 288 | cfg. writeEntry ( "StaticBackground", m_staticbackground->isChecked( ) ); |
284 | 289 | ||
285 | { | 290 | { |
286 | QCopEnvelope e ( "QPE/Launcher", "setBusyIndicatorType(QString)" ); | 291 | QCopEnvelope e ( "QPE/Launcher", "setBusyIndicatorType(QString)" ); |
287 | e << busytype; | 292 | e << busytype; |
288 | } | 293 | } |
294 | { | ||
295 | QCopEnvelope e ( "QPE/Launcher", "setStaticBackground(bool)" ); | ||
296 | e << m_staticbackground->isChecked(); | ||
297 | } | ||
289 | } | 298 | } |
290 | 299 | ||
291 | void TabsSettings::newClicked ( ) | 300 | void TabsSettings::newClicked ( ) |
292 | { | 301 | { |
293 | QMessageBox::information ( this, tr( "Error" ), tr( "Not implemented yet" )); | 302 | QMessageBox::information ( this, tr( "Error" ), tr( "Not implemented yet" )); |
294 | } | 303 | } |
295 | 304 | ||
296 | void TabsSettings::deleteClicked ( ) | 305 | void TabsSettings::deleteClicked ( ) |
diff --git a/core/settings/launcher/tabssettings.h b/core/settings/launcher/tabssettings.h index 600c65c..bbe1e72 100644 --- a/core/settings/launcher/tabssettings.h +++ b/core/settings/launcher/tabssettings.h | |||
@@ -54,15 +54,15 @@ protected: | |||
54 | void init ( ); | 54 | void init ( ); |
55 | void readTabSettings ( Config & ); | 55 | void readTabSettings ( Config & ); |
56 | 56 | ||
57 | private: | 57 | private: |
58 | QListBox *m_list; | 58 | QListBox *m_list; |
59 | //QString currentTab; | 59 | //QString currentTab; |
60 | QStringList m_ids; | 60 | QStringList m_ids; |
61 | QMap <QString, TabConfig> m_tabs; | 61 | QMap <QString, TabConfig> m_tabs; |
62 | QCheckBox *m_busyani, *m_bigbusy; | 62 | QCheckBox *m_busyani, *m_bigbusy, *m_staticbackground; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | 65 | ||
66 | 66 | ||
67 | 67 | ||
68 | #endif | 68 | #endif |