-rw-r--r-- | core/launcher/launcher.cpp | 8 | ||||
-rw-r--r-- | core/launcher/launcherview.cpp | 28 | ||||
-rw-r--r-- | core/launcher/launcherview.h | 3 |
3 files changed, 29 insertions, 10 deletions
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 @@ -447,24 +447,32 @@ void LauncherTabWidget::launcherMessage( const QCString &msg, const QByteArray & setBusyIndicatorType( type ); }else if ( msg == "home()" ) { if ( isVisibleWindow( static_cast<QWidget*>(parent())->winId() ) ) { if (categoryBar) categoryBar->nextTab(); }else { static_cast<QWidget*>(parent())->raise(); } } else if (msg=="doctabEnabled(int)") { int id; stream >> id; odebug << "Doctab enabled " << id << oendl; reCheckDoctab(id); + } else if ( msg == "setStaticBackground(bool)" ) { + int set; stream >> set; + odebug << "setStaticBackground " << set << oendl; + for (int i = 0; i < categoryBar->count(); i++ ) + { + LauncherView* view = static_cast<LauncherTab*>( categoryBar->tab(i) )->view; + view->iconView()->setStaticBackgroundPicture( set ); + } } } void LauncherTabWidget::reCheckDoctab(int how) { if ((bool)how == docTabEnabled) { /* nothing to do */ return; } if (docLoadingWidget) { stack->removeWidget(docLoadingWidget); delete docLoadingWidget; 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 @@ -285,45 +285,55 @@ 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),numColumns(0) { m_EyeCallBack = 0; if (!sm_EyeCache) sm_EyeCache = new QMap<QString,QPixmap>(); sortmeth = Name; hidden.setAutoDelete(TRUE); ike = FALSE; calculateGrid( Bottom ); connect(&m_eyeTimer,SIGNAL(timeout()),this,SLOT(stopEyeTimer())); Config config( "Launcher" ); config.setGroup( "GUI" ); - staticBackground = config.readEntry( "StaticBackground", false ); - if ( staticBackground ) - { - setStaticBackground( true ); - verticalScrollBar()->setTracking( false ); - } + setStaticBackgroundPicture( config.readBoolEntry( "StaticBackground", true ) ); } LauncherIconView::~LauncherIconView() { odebug << "LauncherIconView::~LauncherIconView()" << oendl; #if 0 // debuggery QListIterator<AppLnk> it(hidden); AppLnk* l; while ((l=it.current())) { ++it; //odebug << "" << l << ": hidden (should remove)" << oendl; } #endif } +void LauncherIconView::setStaticBackgroundPicture( bool enable ) +{ + staticBackground = enable; + if ( staticBackground ) + { + setStaticBackground( true ); + verticalScrollBar()->setTracking( false ); + } + else + { + setStaticBackground( false ); + verticalScrollBar()->setTracking( true ); + } +} + int LauncherIconView::compare(const AppLnk* a, const AppLnk* b) { switch (sortmeth) { case Name: return a->name().lower().compare(b->name().lower()); case Date: { QFileInfo fa(a->linkFileKnown() ? a->linkFile() : a->file()); QFileInfo fb(b->linkFileKnown() ? b->linkFile() : b->file()); return fa.lastModified().secsTo(fb.lastModified()); } case Type: return a->type().compare(b->type()); @@ -361,30 +371,30 @@ void LauncherIconView::setItemTextPos( ItemTextPos pos ) } void LauncherIconView::drawBackground( QPainter *p, const QRect &r ) { if ( bgPixmap.isNull() ) { p->fillRect( r, bgColor ); } else { if ( staticBackground ) { - p->drawPixmap( r.x(), r.y(), bgPixmap, r.x(), r.y(), r.width(), r.height() ); + p->drawTiledPixmap( r, bgPixmap, QPoint( r.x() % bgPixmap.width(), r.y() % bgPixmap.height() ) ); } else { - p->drawTiledPixmap( r, bgPixmap, QPoint( (r.x() + contentsX()) % bgPixmap.width(), - (r.y() + contentsY()) % bgPixmap.height() ) ); + p->drawTiledPixmap( r, bgPixmap, QPoint( (r.x() + contentsX()) % bgPixmap.width(), + (r.y() + contentsY()) % bgPixmap.height() ) ); } } } void LauncherIconView::addCatsAndMimes(AppLnk* app) { // QStringList c = app->categories(); // for (QStringList::ConstIterator cit=c.begin(); cit!=c.end(); ++cit) { // cats.replace(*cit,(void*)1); // } QString maj=app->type(); int sl=maj.find('/'); 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 @@ -73,26 +73,26 @@ public: enum BackgroundType { Ruled, SolidColor, Image }; void setBackgroundType( BackgroundType t, const QString & ); BackgroundType backgroundType() const { return bgType; } void setTextColor( const QColor & ); QColor textColor() const { return textCol; } void setViewFont( const QFont & ); void clearViewFont(); void setColNumber( int ); - void relayout(void); + LauncherIconView* iconView() { return icons; }; signals: void clicked( const AppLnk * ); void rightPressed( AppLnk * ); protected slots: void selectionChanged(); void returnPressed( QIconViewItem *item ); void itemClicked( int, QIconViewItem * ); void itemPressed( int, QIconViewItem * ); void sortBy(int); void showType(int); @@ -160,24 +160,25 @@ class LauncherIconView : public QIconView { Q_OBJECT public: LauncherIconView( QWidget* parent, const char* name=0 ); ~LauncherIconView(); QIconViewItem* busyItem() const; #ifdef USE_ANIMATED_BUSY_ICON_OVERLAY QPixmap busyPixmap() const { return busyPix; } #endif void setBigIcons( bool bi ); void updateCategoriesAndMimeTypes(); void setBusyIndicatorType ( BusyIndicatorType t ); + void setStaticBackgroundPicture( bool enable ); void doAutoScroll() { // We don't want rubberbanding (yet) } void setBusy(bool on); bool inKeyEvent() const { return ike; } void addItem(AppLnk* app, bool resort=TRUE); bool removeLink(const QString& linkfile,bool removeCache = true); void changeItem(const AppLnk&old,AppLnk*nlink); |