-rw-r--r-- | core/launcher/launcher.cpp | 14 | ||||
-rw-r--r-- | core/launcher/launcher.h | 2 | ||||
-rw-r--r-- | core/launcher/launcherview.cpp | 23 | ||||
-rw-r--r-- | core/launcher/launcherview.h | 3 |
4 files changed, 39 insertions, 3 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index 6948976..66cc3e6 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp @@ -244,12 +244,15 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, setTabAppearance( "Documents", cfg ); // No tr connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); ((LauncherView*)stack->widget(0))->setFocus(); + cfg. setGroup ( "GUI" ); + setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); + categoryBar->show(); stack->show(); } void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) { @@ -368,12 +371,18 @@ void CategoryTabWidget::setBusy(bool on) LauncherView *CategoryTabWidget::view( const QString &id ) { int idx = ids.findIndex( id ); return (LauncherView *)stack->widget(idx); } +void CategoryTabWidget::setBusyIndicatorType ( const QString &type ) +{ + for ( QStringList::Iterator it = ids. begin ( ); it != ids. end ( ); ++it ) + view ( *it )-> setBusyIndicatorType ( type ); +} + //=========================================================================== CategoryTabBar::CategoryTabBar( QWidget *parent, const char *name ) : QTabBar( parent, name ) { setFocusPolicy( NoFocus ); @@ -1164,12 +1173,17 @@ void Launcher::launcherMessage( const QCString &msg, const QByteArray &data) int italic; stream >> italic; if ( tabs->view(id) ) tabs->view(id)->setViewFont( QFont(fam, size, weight, italic!=0) ); qDebug( "setFont: %s, %d, %d, %d", fam.latin1(), size, weight, italic ); } + else if ( msg == "setBusyIndicatorType(QString)" ) { + QString type; + stream >> type; + tabs->setBusyIndicatorType(type); + } } void Launcher::storageChanged() { if ( in_lnk_props ) { got_lnk_change = TRUE; diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h index e3881ea..89bf6f3 100644 --- a/core/launcher/launcher.h +++ b/core/launcher/launcher.h @@ -60,13 +60,13 @@ public: const QList<FileSystem> &); void updateDocs(AppLnkSet* docFolder, const QList<FileSystem> &fs); void updateLink(const QString& linkfile); void setBusy(bool on); QString getAllDocLinkInfo() const; LauncherView *view( const QString &id ); - + void setBusyIndicatorType ( const QString &type ); signals: void selected(const QString&); void clicked(const AppLnk*); void rightPressed(AppLnk*); public slots: diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp index e15b150..fa46543 100644 --- a/core/launcher/launcherview.cpp +++ b/core/launcher/launcherview.cpp @@ -49,12 +49,17 @@ class BgPixmap public: BgPixmap( const QPixmap &p ) : pm(p), ref(1) {} QPixmap pm; int ref; }; +enum BusyIndicatorType { + BIT_Normal = 0, + BIT_Blinking +}; + static QMap<QString,BgPixmap*> *bgCache = 0; class LauncherIconView : public QIconView { public: LauncherIconView( QWidget* parent, const char* name=0 ) : QIconView(parent,name), @@ -80,12 +85,14 @@ public: ++it; //qDebug("%p: hidden (should remove)",l); } #endif } + void setBusyIndicatorType ( BusyIndicatorType t ) { busyType = t; } + QPixmap* busyPixmap() const { return (QPixmap*)&bpm[::abs(busystate)]; } QIconViewItem* busyItem() const { return bsy; } void setBigIcons( bool bi ) { bigIcns = bi; } void updateCategoriesAndMimeTypes(); @@ -94,13 +101,12 @@ public: // We don't want rubberbanding (yet) } void setBusy(bool on) { QIconViewItem *c = on ? currentItem() : 0; - qDebug ( "set busy %d -> %s", on, c ? c-> text ().latin1() : "(null)" ); if ( bsy != c ) { QIconViewItem *oldbsy = bsy; bsy = c; if ( oldbsy ) @@ -133,18 +139,22 @@ public: int ai = qAlpha ( *rgb ); *rgb = qRgba ( ri, gi, bi, ai ); } bpm [i].convertFromImage( img ); } + if ( busyType == BIT_Blinking ) { busystate = 0; if ( busytimer ) killTimer ( busytimer ); - timerEvent ( 0 ); busytimer = startTimer ( 200 ); } + else + busystate = 3; + timerEvent ( 0 ); + } else { killTimer ( busytimer ); busytimer = 0; } } } @@ -334,12 +344,13 @@ private: bool bigIcns; QPixmap bgPixmap; QPixmap bpm [6]; QColor bgColor; int busytimer; int busystate; + BusyIndicatorType busyType; }; bool LauncherView::bsy=FALSE; void LauncherView::setBusy(bool on) @@ -910,6 +921,14 @@ void LauncherView::paletteChange( const QPalette &p ) setBackgroundType( Ruled, QString::null ); QColorGroup cg = icons->colorGroup(); cg.setColor( QColorGroup::Text, textCol ); icons->setPalette( QPalette(cg,cg,cg) ); } + +void LauncherView::setBusyIndicatorType ( const QString &type ) +{ + if ( type. lower ( ) == "blink" ) + icons-> setBusyIndicatorType ( BIT_Blinking ); + else + icons-> setBusyIndicatorType ( BIT_Normal ); +} diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h index 2fb37b6..194e4a2 100644 --- a/core/launcher/launcherview.h +++ b/core/launcher/launcherview.h @@ -62,12 +62,14 @@ public: void setTextColor( const QColor & ); QColor textColor() const { return textCol; } void setViewFont( const QFont & ); + void setBusyIndicatorType ( const QString &type ); + public slots: void populate( AppLnkSet *folder, const QString& categoryfilter ); signals: void clicked( const AppLnk * ); void rightPressed( AppLnk * ); @@ -94,9 +96,10 @@ private: QStringList typelist; CategorySelect *catmb; ViewMode vmode; BackgroundType bgType; QString bgName; QColor textCol; + int busyType; }; #endif // LAUNCHERVIEW_H |