-rw-r--r-- | core/launcher/launcher.cpp | 664 | ||||
-rw-r--r-- | core/launcher/launcherview.cpp | 449 |
2 files changed, 555 insertions, 558 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index 0573330..8fe41f7 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp @@ -75,57 +75,57 @@ CategoryTabWidget::CategoryTabWidget( QWidget* parent ) : stack = 0; } void CategoryTabWidget::prevTab() { if ( categoryBar ) { - int n = categoryBar->count(); - int tab = categoryBar->currentTab(); - if ( tab >= 0 ) + int n = categoryBar->count(); + int tab = categoryBar->currentTab(); + if ( tab >= 0 ) categoryBar->setCurrentTab( (tab - 1 + n)%n ); } } void CategoryTabWidget::nextTab() { if ( categoryBar ) { - int n = categoryBar->count(); + int n = categoryBar->count(); int tab = categoryBar->currentTab(); - categoryBar->setCurrentTab( (tab + 1)%n ); + categoryBar->setCurrentTab( (tab + 1)%n ); } } void CategoryTabWidget::addItem( const QString& linkfile ) { int i=0; AppLnk *app = new AppLnk(linkfile); if ( !app->isValid() ) { - delete app; - return; + delete app; + return; } if ( !app->file().isEmpty() ) { - // A document - delete app; - app = new DocLnk(linkfile); - ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); - return; + // A document + delete app; + app = new DocLnk(linkfile); + ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); + return; } for ( QStringList::Iterator it=ids.begin(); it!=ids.end(); ++it) { - if ( !(*it).isEmpty() ) { - QRegExp tf(*it,FALSE,TRUE); - if ( tf.match(app->type()) >= 0 ) { - ((LauncherView*)stack->widget(i))->addItem(app); - return; - } - i++; - } + if ( !(*it).isEmpty() ) { + QRegExp tf(*it,FALSE,TRUE); + if ( tf.match(app->type()) >= 0 ) { + ((LauncherView*)stack->widget(i))->addItem(app); + return; + } + i++; + } } } void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, - AppLnkSet* docFolder, const QList<FileSystem> &fs) + AppLnkSet* docFolder, const QList<FileSystem> &fs) { delete categoryBar; categoryBar = new CategoryTabBar( this ); QPalette pal = categoryBar->palette(); pal.setColor( QColorGroup::Light, pal.color(QPalette::Active,QColorGroup::Shadow) ); pal.setColor( QColorGroup::Background, pal.active().background().light(110) ); @@ -136,35 +136,35 @@ void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, tabs=0; ids.clear(); QStringList types = rootFolder->types(); for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { - if ( !(*it).isEmpty() ) { - newView(*it,rootFolder->typePixmap(*it),rootFolder->typeName(*it)); - } + if ( !(*it).isEmpty() ) { + newView(*it,rootFolder->typePixmap(*it),rootFolder->typeName(*it)); + } } QListIterator<AppLnk> it( rootFolder->children() ); AppLnk* l; while ( (l=it.current()) ) { - if ( l->type() == "Separator" ) { - rootFolder->remove(l); - delete l; - } else { - int i=0; - for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { - if ( *it == l->type() ) - ((LauncherView*)stack->widget(i))->addItem(l,FALSE); - i++; - } - } - ++it; + if ( l->type() == "Separator" ) { + rootFolder->remove(l); + delete l; + } else { + int i=0; + for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { + if ( *it == l->type() ) + ((LauncherView*)stack->widget(i))->addItem(l,FALSE); + i++; + } + } + ++it; } rootFolder->detachChildren(); for (int i=0; i<tabs; i++) - ((LauncherView*)stack->widget(i))->sort(); + ((LauncherView*)stack->widget(i))->sort(); // all documents docview = newView( QString::null, Resource::loadPixmap("DocsIcon"), tr("Documents")); docview->populate( docFolder, QString::null ); docFolder->detachChildren(); docview->setFileSystems(fs); @@ -187,28 +187,28 @@ void CategoryTabWidget::updateDocs(AppLnkSet* docFolder, const QList<FileSystem> } LauncherView* CategoryTabWidget::newView( const QString& id, const QPixmap& pm, const QString& label ) { LauncherView* view = new LauncherView( stack ); connect( view, SIGNAL(clicked(const AppLnk*)), - this, SIGNAL(clicked(const AppLnk*))); + this, SIGNAL(clicked(const AppLnk*))); connect( view, SIGNAL(rightPressed(AppLnk*)), - this, SIGNAL(rightPressed(AppLnk*))); + this, SIGNAL(rightPressed(AppLnk*))); ids.append(id); categoryBar->addTab( new QTab( pm, label ) ); stack->addWidget( view, tabs++ ); return view; } void CategoryTabWidget::updateLink(const QString& linkfile) { int i=0; LauncherView* view; while ((view = (LauncherView*)stack->widget(i++))) { - if ( view->removeLink(linkfile) ) - break; + if ( view->removeLink(linkfile) ) + break; } addItem(linkfile); docview->updateTools(); } void CategoryTabWidget::paletteChange( const QPalette &p ) @@ -221,16 +221,16 @@ void CategoryTabWidget::paletteChange( const QPalette &p ) categoryBar->update(); } void CategoryTabWidget::setBusy(bool on) { if ( on ) - ((LauncherView*)stack->visibleWidget())->setBusy(TRUE); + ((LauncherView*)stack->visibleWidget())->setBusy(TRUE); else - for (int i=0; i<tabs; i++) - ((LauncherView*)stack->widget(i))->setBusy(FALSE); + for (int i=0; i<tabs; i++) + ((LauncherView*)stack->widget(i))->setBusy(FALSE); } CategoryTabBar::CategoryTabBar( QWidget *parent, const char *name ) : QTabBar( parent, name ) { @@ -242,13 +242,13 @@ CategoryTabBar::~CategoryTabBar() { } void CategoryTabBar::layoutTabs() { if ( !count() ) - return; + return; // int percentFalloffTable[] = { 100, 70, 40, 12, 6, 3, 1, 0 }; int hiddenTabWidth = -12; int middleTab = currentTab(); int hframe, vframe, overlap; style().tabbarMetrics( this, hframe, vframe, overlap ); @@ -256,62 +256,62 @@ void CategoryTabBar::layoutTabs() int x = 0; QRect r; QTab *t; int available = width()-1; int required = 0; for ( int i = 0; i < count(); i++ ) { - t = tab(i); - // if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) { - if ( i != middleTab ) { - // required += hiddenTabWidth + hframe - overlap; - available -= hiddenTabWidth + hframe - overlap; - if ( t->iconSet() != 0 ) - available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - } else { - required += fm.width( t->text() ) + hframe - overlap; - if ( t->iconSet() != 0 ) - required += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - } + t = tab(i); + // if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) { + if ( i != middleTab ) { + // required += hiddenTabWidth + hframe - overlap; + available -= hiddenTabWidth + hframe - overlap; + if ( t->iconSet() != 0 ) + available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + } else { + required += fm.width( t->text() ) + hframe - overlap; + if ( t->iconSet() != 0 ) + required += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + } } for ( int i = 0; i < count(); i++ ) { - t = tab(i); - // if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) { - if ( i != middleTab ) { - int w = hiddenTabWidth; - int ih = 0; - if ( t->iconSet() != 0 ) { - w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); - } - int h = QMAX( fm.height(), ih ); - h = QMAX( h, QApplication::globalStrut().height() ); - - h += vframe; - w += hframe; - - t->setRect( QRect(x, 0, w, h) ); - x += t->rect().width() - overlap; - r = r.unite( t->rect() ); - } else { - int w = fm.width( t->text() ); - int ih = 0; - if ( t->iconSet() != 0 ) { - w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); - } - int h = QMAX( fm.height(), ih ); - h = QMAX( h, QApplication::globalStrut().height() ); - - h += vframe; - w += hframe; - - // t->setRect( QRect(x, 0, w * available/required, h) ); - t->setRect( QRect(x, 0, available, h) ); - x += t->rect().width() - overlap; - r = r.unite( t->rect() ); - } + t = tab(i); + // if (( i < (middleTab - 1) ) || ( i > (middleTab + 1) )) { + if ( i != middleTab ) { + int w = hiddenTabWidth; + int ih = 0; + if ( t->iconSet() != 0 ) { + w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + } + int h = QMAX( fm.height(), ih ); + h = QMAX( h, QApplication::globalStrut().height() ); + + h += vframe; + w += hframe; + + t->setRect( QRect(x, 0, w, h) ); + x += t->rect().width() - overlap; + r = r.unite( t->rect() ); + } else { + int w = fm.width( t->text() ); + int ih = 0; + if ( t->iconSet() != 0 ) { + w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + } + int h = QMAX( fm.height(), ih ); + h = QMAX( h, QApplication::globalStrut().height() ); + + h += vframe; + w += hframe; + + // t->setRect( QRect(x, 0, w * available/required, h) ); + t->setRect( QRect(x, 0, available, h) ); + x += t->rect().width() - overlap; + r = r.unite( t->rect() ); + } } QRect rr = tab(count()-1)->rect(); rr.setRight(width()-1); tab(count()-1)->setRect( rr ); @@ -337,71 +337,71 @@ void CategoryTabBar::paint( QPainter * p, QTab * t, bool selected ) const style().drawTab( p, this, t, selected ); #endif QRect r( t->rect() ); QFont f( font() ); if ( selected ) - f.setBold( TRUE ); + f.setBold( TRUE ); p->setFont( f ); int iw = 0; int ih = 0; if ( t->iconSet() != 0 ) { - iw = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 2; - ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); + iw = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 2; + ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); } int w = iw + p->fontMetrics().width( t->text() ) + 4; int h = QMAX(p->fontMetrics().height() + 4, ih ); paintLabel( p, QRect( r.left() + (r.width()-w)/2 - 3, - r.top() + (r.height()-h)/2, w, h ), t, + r.top() + (r.height()-h)/2, w, h ), t, #if QT_VERSION >= 300 - t->identifier() == keyboardFocusTab() + t->identifier() == keyboardFocusTab() #else - t->identitifer() == keyboardFocusTab() + t->identitifer() == keyboardFocusTab() #endif - ); + ); } void CategoryTabBar::paintLabel( QPainter* p, const QRect&, - QTab* t, bool has_focus ) const + QTab* t, bool has_focus ) const { QRect r = t->rect(); // if ( t->id != currentTab() ) //r.moveBy( 1, 1 ); // if ( t->iconSet() ) { - // the tab has an iconset, draw it in the right mode - QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; - if ( mode == QIconSet::Normal && has_focus ) - mode = QIconSet::Active; - QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, mode ); - int pixw = pixmap.width(); - int pixh = pixmap.height(); - p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); - r.setLeft( r.left() + pixw + 5 ); + // the tab has an iconset, draw it in the right mode + QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; + if ( mode == QIconSet::Normal && has_focus ) + mode = QIconSet::Active; + QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, mode ); + int pixw = pixmap.width(); + int pixh = pixmap.height(); + p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); + r.setLeft( r.left() + pixw + 5 ); } QRect tr = r; if ( r.width() < 20 ) - return; + return; if ( t->isEnabled() && isEnabled() ) { #if defined(_WS_WIN32_) - if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) - p->setPen( colorGroup().buttonText() ); - else - p->setPen( colorGroup().foreground() ); + if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) + p->setPen( colorGroup().buttonText() ); + else + p->setPen( colorGroup().foreground() ); #else - p->setPen( colorGroup().foreground() ); + p->setPen( colorGroup().foreground() ); #endif - p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); + p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); } else { - p->setPen( palette().disabled().foreground() ); - p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); + p->setPen( palette().disabled().foreground() ); + p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); } } //--------------------------------------------------------------------------- Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) @@ -420,17 +420,17 @@ Launcher::Launcher( QWidget* parent, const char* name, WFlags fl ) tabs = new CategoryTabWidget( this ); tabs->setMaximumWidth( qApp->desktop()->width() ); setCentralWidget( tabs ); connect( tabs, SIGNAL(selected(const QString&)), - this, SLOT(viewSelected(const QString&)) ); + this, SLOT(viewSelected(const QString&)) ); connect( tabs, SIGNAL(clicked(const AppLnk*)), - this, SLOT(select(const AppLnk*))); + this, SLOT(select(const AppLnk*))); connect( tabs, SIGNAL(rightPressed(AppLnk*)), - this, SLOT(properties(AppLnk*))); + this, SLOT(properties(AppLnk*))); #if defined(Q_WS_QWS) && !defined(QT_NO_COP) QCopChannel* sysChannel = new QCopChannel( "QPE/System", this ); connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(systemMessage( const QCString &, const QByteArray &)) ); #endif @@ -452,24 +452,24 @@ Launcher::~Launcher() static bool isVisibleWindow(int wid) { const QList<QWSWindow> &list = qwsServer->clientWindows(); QWSWindow* w; for (QListIterator<QWSWindow> it(list); (w=it.current()); ++it) { - if ( w->winId() == wid ) - return !w->isFullyObscured(); + if ( w->winId() == wid ) + return !w->isFullyObscured(); } return FALSE; } void Launcher::showMaximized() { if ( isVisibleWindow( winId() ) ) - doMaximize(); + doMaximize(); else - QTimer::singleShot( 20, this, SLOT(doMaximize()) ); + QTimer::singleShot( 20, this, SLOT(doMaximize()) ); } void Launcher::doMaximize() { QMainWindow::showMaximized(); } @@ -480,18 +480,18 @@ void Launcher::updateMimeTypes() updateMimeTypes(rootFolder); } void Launcher::updateMimeTypes(AppLnkSet* folder) { for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) { - AppLnk *app = it.current(); - if ( app->type() == "Folder" ) - updateMimeTypes((AppLnkSet *)app); - else { - MimeType::registerApp(*app); - } + AppLnk *app = it.current(); + if ( app->type() == "Folder" ) + updateMimeTypes((AppLnkSet *)app); + else { + MimeType::registerApp(*app); + } } } void Launcher::loadDocs() { delete docsFolder; @@ -528,313 +528,313 @@ void Launcher::nextView() } void Launcher::select( const AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { - // Not supported: flat is simpler for the user + // Not supported: flat is simpler for the user } else { - if ( appLnk->exec().isNull() ) { - QMessageBox::information(this,tr("No application"), - tr("<p>No application is defined for this document." - "<p>Type is %1.").arg(appLnk->type())); - return; - } - tabs->setBusy(TRUE); - emit executing( appLnk ); - appLnk->execute(); + if ( appLnk->exec().isNull() ) { + QMessageBox::information(this,tr("No application"), + tr("<p>No application is defined for this document." + "<p>Type is %1.").arg(appLnk->type())); + return; + } + tabs->setBusy(TRUE); + emit executing( appLnk ); + appLnk->execute(); } } void Launcher::externalSelected(const AppLnk *appLnk) { tabs->setBusy(TRUE); emit executing( appLnk ); } void Launcher::properties( AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { - // Not supported: flat is simpler for the user + // Not supported: flat is simpler for the user } else { - in_lnk_props = TRUE; - got_lnk_change = FALSE; - LnkProperties prop(appLnk); - connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); - prop.showMaximized(); - prop.exec(); - in_lnk_props = FALSE; - if ( got_lnk_change ) { - updateLink(lnk_change); - } + in_lnk_props = TRUE; + got_lnk_change = FALSE; + LnkProperties prop(appLnk); + connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); + prop.showMaximized(); + prop.exec(); + in_lnk_props = FALSE; + if ( got_lnk_change ) { + updateLink(lnk_change); + } } } void Launcher::updateLink(const QString& link) { if (link.isNull()) - updateTabs(); + updateTabs(); else if (link.isEmpty()) - updateDocs(); + updateDocs(); else - tabs->updateLink(link); + tabs->updateLink(link); } void Launcher::systemMessage( const QCString &msg, const QByteArray &data) { QDataStream stream( data, IO_ReadOnly ); if ( msg == "linkChanged(QString)" ) { - QString link; - stream >> link; - if ( in_lnk_props ) { - got_lnk_change = TRUE; - lnk_change = link; - } else { - updateLink(link); - } + QString link; + stream >> link; + if ( in_lnk_props ) { + got_lnk_change = TRUE; + lnk_change = link; + } else { + updateLink(link); + } } else if ( msg == "busy()" ) { - emit busy(); + emit busy(); } else if ( msg == "notBusy(QString)" ) { - QString app; - stream >> app; - tabs->setBusy(FALSE); - emit notBusy(app); + QString app; + stream >> app; + tabs->setBusy(FALSE); + emit notBusy(app); } else if ( msg == "mkdir(QString)" ) { - QString dir; - stream >> dir; - if ( !dir.isEmpty() ) - mkdir( dir ); + QString dir; + stream >> dir; + if ( !dir.isEmpty() ) + mkdir( dir ); } else if ( msg == "rdiffGenSig(QString,QString)" ) { - QString baseFile, sigFile; - stream >> baseFile >> sigFile; - QRsync::generateSignature( baseFile, sigFile ); + QString baseFile, sigFile; + stream >> baseFile >> sigFile; + QRsync::generateSignature( baseFile, sigFile ); } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { - QString baseFile, sigFile, deltaFile; - stream >> baseFile >> sigFile >> deltaFile; - QRsync::generateDiff( baseFile, sigFile, deltaFile ); + QString baseFile, sigFile, deltaFile; + stream >> baseFile >> sigFile >> deltaFile; + QRsync::generateDiff( baseFile, sigFile, deltaFile ); } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { - QString baseFile, deltaFile; - stream >> baseFile >> deltaFile; - if ( !QFile::exists( baseFile ) ) { - QFile f( baseFile ); - f.open( IO_WriteOnly ); - f.close(); - } - QRsync::applyDiff( baseFile, deltaFile ); - QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); - e << baseFile; + QString baseFile, deltaFile; + stream >> baseFile >> deltaFile; + if ( !QFile::exists( baseFile ) ) { + QFile f( baseFile ); + f.open( IO_WriteOnly ); + f.close(); + } + QRsync::applyDiff( baseFile, deltaFile ); + QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); + e << baseFile; } else if ( msg == "rdiffCleanup()" ) { - mkdir( "/tmp/rdiff" ); - QDir dir; - dir.setPath( "/tmp/rdiff" ); - QStringList entries = dir.entryList(); - for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) - dir.remove( *it ); + mkdir( "/tmp/rdiff" ); + QDir dir; + dir.setPath( "/tmp/rdiff" ); + QStringList entries = dir.entryList(); + for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) + dir.remove( *it ); } else if ( msg == "sendHandshakeInfo()" ) { - QString home = getenv( "HOME" ); - QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); - e << home; - int locked = (int) Desktop::screenLocked(); - e << locked; - // register an app for autostart - // if clear is send the list is cleared. + QString home = getenv( "HOME" ); + QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); + e << home; + int locked = (int) Desktop::screenLocked(); + e << locked; + // register an app for autostart + // if clear is send the list is cleared. } else if ( msg == "autoStart(QString)" ) { QString appName; stream >> appName; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( appName.compare("clear") == 0){ - cfg.writeEntry("Apps", ""); + cfg.writeEntry("Apps", ""); } } else if ( msg == "autoStart(QString,QString)" ) { QString modifier, appName; stream >> modifier >> appName; Config cfg( "autostart" ); cfg.setGroup( "AutoStart" ); if ( modifier.compare("add") == 0 ){ - // only add it appname is entered - if (!appName.isEmpty()) { - cfg.writeEntry("Apps", appName); - } + // only add it appname is entered + if (!appName.isEmpty()) { + cfg.writeEntry("Apps", appName); + } } else if (modifier.compare("remove") == 0 ) { - // need to change for multiple entries - // actually remove is right now simular to clear, but in future there - // should be multiple apps in autostart possible. - QString checkName; - checkName = cfg.readEntry("Apps", ""); - if (checkName == appName) { - cfg.writeEntry("Apps", ""); - } + // need to change for multiple entries + // actually remove is right now simular to clear, but in future there + // should be multiple apps in autostart possible. + QString checkName; + checkName = cfg.readEntry("Apps", ""); + if (checkName == appName) { + cfg.writeEntry("Apps", ""); + } } } else if ( msg == "sendCardInfo()" ) { QCopEnvelope e( "QPE/Desktop", "cardInfo(QString)" ); const QList<FileSystem> &fs = storage->fileSystems(); - QListIterator<FileSystem> it ( fs ); - QString s; - QString homeDir = getenv("HOME"); - QString hardDiskHome; - for ( ; it.current(); ++it ) { - if ( (*it)->isRemovable() ) - s += (*it)->name() + "=" + (*it)->path() + "/Documents " - + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) - + " " + (*it)->options() + ";"; - else if ( (*it)->disk() == "/dev/mtdblock1" || - (*it)->disk() == "/dev/mtdblock/1" ) - s += (*it)->name() + "=" + homeDir + "/Documents " - + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) - + " " + (*it)->options() + ";"; - else if ( (*it)->name().contains( "Hard Disk") && - homeDir.contains( (*it)->path() ) && - (*it)->path().length() > hardDiskHome.length() ) - hardDiskHome = - (*it)->name() + "=" + homeDir + "/Documents " - + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) - + " " + (*it)->options() + ";"; - } - if ( !hardDiskHome.isEmpty() ) - s += hardDiskHome; - - e << s; + QListIterator<FileSystem> it ( fs ); + QString s; + QString homeDir = getenv("HOME"); + QString hardDiskHome; + for ( ; it.current(); ++it ) { + if ( (*it)->isRemovable() ) + s += (*it)->name() + "=" + (*it)->path() + "/Documents " + + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) + + " " + (*it)->options() + ";"; + else if ( (*it)->disk() == "/dev/mtdblock1" || + (*it)->disk() == "/dev/mtdblock/1" ) + s += (*it)->name() + "=" + homeDir + "/Documents " + + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) + + " " + (*it)->options() + ";"; + else if ( (*it)->name().contains( "Hard Disk") && + homeDir.contains( (*it)->path() ) && + (*it)->path().length() > hardDiskHome.length() ) + hardDiskHome = + (*it)->name() + "=" + homeDir + "/Documents " + + QString::number( (*it)->availBlocks() * (*it)->blockSize() ) + + " " + (*it)->options() + ";"; + } + if ( !hardDiskHome.isEmpty() ) + s += hardDiskHome; + + e << s; } else if ( msg == "sendSyncDate(QString)" ) { - QString app; - stream >> app; - Config cfg( "qpe" ); - cfg.setGroup("SyncDate"); - QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" ); - e << app << cfg.readEntry( app ); - //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(), - //cfg.readEntry( app ).latin1() ); + QString app; + stream >> app; + Config cfg( "qpe" ); + cfg.setGroup("SyncDate"); + QCopEnvelope e( "QPE/Desktop", "syncDate(QString,QString)" ); + e << app << cfg.readEntry( app ); + //qDebug("QPE/System sendSyncDate for %s: response %s", app.latin1(), + //cfg.readEntry( app ).latin1() ); } else if ( msg == "setSyncDate(QString,QString)" ) { - QString app, date; - stream >> app >> date; - Config cfg( "qpe" ); - cfg.setGroup("SyncDate"); - cfg.writeEntry( app, date ); - //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); + QString app, date; + stream >> app >> date; + Config cfg( "qpe" ); + cfg.setGroup("SyncDate"); + cfg.writeEntry( app, date ); + //qDebug("setSyncDate(QString,QString) %s %s", app.latin1(), date.latin1()); } else if ( msg == "startSync(QString)" ) { - QString what; - stream >> what; - delete syncDialog; syncDialog = 0; - syncDialog = new SyncDialog( this, "syncProgress", FALSE, - WStyle_Tool | WStyle_Customize | - Qt::WStyle_StaysOnTop ); - syncDialog->showMaximized(); - syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); - connect( syncDialog->buttonCancel, SIGNAL( clicked() ), - SLOT( cancelSync() ) ); + QString what; + stream >> what; + delete syncDialog; syncDialog = 0; + syncDialog = new SyncDialog( this, "syncProgress", FALSE, + WStyle_Tool | WStyle_Customize | + Qt::WStyle_StaysOnTop ); + syncDialog->showMaximized(); + syncDialog->whatLabel->setText( "<b>" + what + "</b>" ); + connect( syncDialog->buttonCancel, SIGNAL( clicked() ), + SLOT( cancelSync() ) ); } else if ( msg == "stopSync()") { - delete syncDialog; syncDialog = 0; + delete syncDialog; syncDialog = 0; } else if ( msg == "getAllDocLinks()" ) { - loadDocs(); - - QString contents; - - for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { - DocLnk *doc = it.current(); - QFileInfo fi( doc->file() ); - if ( !fi.exists() ) - continue; - - bool fake = !doc->linkFileKnown(); - if ( !fake ) { - QFile f( doc->linkFile() ); - if ( f.open( IO_ReadOnly ) ) { - QTextStream ts( &f ); - ts.setEncoding( QTextStream::UnicodeUTF8 ); - contents += ts.read(); - f.close(); - } else - fake = TRUE; - } - if (fake) { - contents += "[Desktop Entry]\n"; - contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n"; - contents += "File = "+doc->file()+"\n"; - contents += "Name = "+doc->name()+"\n"; - contents += "Type = "+doc->type()+"\n"; - } - contents += QString("Size = %1\n").arg( fi.size() ); - } - - //qDebug( "sending length %d", contents.length() ); - QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); - e << contents; - - //qDebug( "================ \n\n%s\n\n===============", - //contents.latin1() ); - - delete docsFolder; - docsFolder = 0; + loadDocs(); + + QString contents; + + for ( QListIterator<DocLnk> it( docsFolder->children() ); it.current(); ++it ) { + DocLnk *doc = it.current(); + QFileInfo fi( doc->file() ); + if ( !fi.exists() ) + continue; + + bool fake = !doc->linkFileKnown(); + if ( !fake ) { + QFile f( doc->linkFile() ); + if ( f.open( IO_ReadOnly ) ) { + QTextStream ts( &f ); + ts.setEncoding( QTextStream::UnicodeUTF8 ); + contents += ts.read(); + f.close(); + } else + fake = TRUE; + } + if (fake) { + contents += "[Desktop Entry]\n"; + contents += "Categories = " + Qtopia::Record::idsToString( doc->categories() ) + "\n"; + contents += "File = "+doc->file()+"\n"; + contents += "Name = "+doc->name()+"\n"; + contents += "Type = "+doc->type()+"\n"; + } + contents += QString("Size = %1\n").arg( fi.size() ); + } + + //qDebug( "sending length %d", contents.length() ); + QCopEnvelope e( "QPE/Desktop", "docLinks(QString)" ); + e << contents; + + qDebug( "================ \n\n%s\n\n===============", + contents.latin1() ); + + delete docsFolder; + docsFolder = 0; } } void Launcher::cancelSync() { QCopEnvelope e( "QPE/Desktop", "cancelSync()" ); } void Launcher::storageChanged() { if ( in_lnk_props ) { - got_lnk_change = TRUE; - lnk_change = ""; + got_lnk_change = TRUE; + lnk_change = ""; } else { - updateDocs(); + updateDocs(); } } bool Launcher::mkdir(const QString &localPath) { QDir fullDir(localPath); if (fullDir.exists()) - return true; + return true; // at this point the directory doesn't exist // go through the directory tree and start creating the direcotories // that don't exist; if we can't create the directories, return false QString dirSeps = "/"; int dirIndex = localPath.find(dirSeps); QString checkedPath; // didn't find any seps; weird, use the cur dir instead if (dirIndex == -1) { - //qDebug("No seperators found in path %s", localPath.latin1()); - checkedPath = QDir::currentDirPath(); + //qDebug("No seperators found in path %s", localPath.latin1()); + checkedPath = QDir::currentDirPath(); } while (checkedPath != localPath) { - // no more seperators found, use the local path - if (dirIndex == -1) - checkedPath = localPath; - else { - // the next directory to check - checkedPath = localPath.left(dirIndex) + "/"; - // advance the iterator; the next dir seperator - dirIndex = localPath.find(dirSeps, dirIndex+1); - } - - QDir checkDir(checkedPath); - if (!checkDir.exists()) { - //qDebug("mkdir making dir %s", checkedPath.latin1()); - - if (!checkDir.mkdir(checkedPath)) { - qDebug("Unable to make directory %s", checkedPath.latin1()); - return FALSE; - } - } + // no more seperators found, use the local path + if (dirIndex == -1) + checkedPath = localPath; + else { + // the next directory to check + checkedPath = localPath.left(dirIndex) + "/"; + // advance the iterator; the next dir seperator + dirIndex = localPath.find(dirSeps, dirIndex+1); + } + + QDir checkDir(checkedPath); + if (!checkDir.exists()) { + //qDebug("mkdir making dir %s", checkedPath.latin1()); + + if (!checkDir.mkdir(checkedPath)) { + qDebug("Unable to make directory %s", checkedPath.latin1()); + return FALSE; + } + } } return TRUE; } void Launcher::preloadApps() { Config cfg("Launcher"); cfg.setGroup("Preload"); QStringList apps = cfg.readListEntry("Apps",','); for (QStringList::ConstIterator it=apps.begin(); it!=apps.end(); ++it) { - QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); + QCopEnvelope e("QPE/Application/"+(*it).local8Bit(), "enablePreload()"); } } diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp index 764f088..538ad79 100644 --- a/core/launcher/launcherview.cpp +++ b/core/launcher/launcherview.cpp @@ -40,209 +40,209 @@ #include <qregexp.h> #include <qtoolbutton.h> class LauncherIconView : public QIconView { public: LauncherIconView( QWidget* parent, const char* name=0 ) : - QIconView(parent,name), - tf(""), - cf(0), - bsy(0) + QIconView(parent,name), + tf(""), + cf(0), + bsy(0) { - sortmeth = Name; - hidden.setAutoDelete(TRUE); - ike = FALSE; + sortmeth = Name; + hidden.setAutoDelete(TRUE); + ike = FALSE; } ~LauncherIconView() { #if 0 // debuggery - QListIterator<AppLnk> it(hidden); - AppLnk* l; - while ((l=it.current())) { - ++it; - //qDebug("%p: hidden (should remove)",l); - } + QListIterator<AppLnk> it(hidden); + AppLnk* l; + while ((l=it.current())) { + ++it; + //qDebug("%p: hidden (should remove)",l); + } #endif } QIconViewItem* busyItem() const { return bsy; } void updateCategoriesAndMimeTypes(); void doAutoScroll() { - // We don't want rubberbanding (yet) + // We don't want rubberbanding (yet) } void setBusy(bool on) { - QIconViewItem *c = on ? currentItem() : 0; - if ( bsy != c ) { - QIconViewItem* o = bsy; - bsy = c; - if ( o ) o->repaint(); - if ( c ) c->repaint(); - } + QIconViewItem *c = on ? currentItem() : 0; + if ( bsy != c ) { + QIconViewItem* o = bsy; + bsy = c; + if ( o ) o->repaint(); + if ( c ) c->repaint(); + } } bool inKeyEvent() const { return ike; } void keyPressEvent(QKeyEvent* e) { - ike = TRUE; - if ( e->key() == Key_F33 ) { - // "OK" button - returnPressed(currentItem()); - } - QIconView::keyPressEvent(e); - ike = FALSE; + ike = TRUE; + if ( e->key() == Key_F33 ) { + // "OK" button + returnPressed(currentItem()); + } + QIconView::keyPressEvent(e); + ike = FALSE; } void addItem(AppLnk* app, bool resort=TRUE); bool removeLink(const QString& linkfile); QStringList mimeTypes() const; QStringList categories() const; void clear() { - mimes.clear(); - cats.clear(); - QIconView::clear(); - hidden.clear(); + mimes.clear(); + cats.clear(); + QIconView::clear(); + hidden.clear(); } void 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('/'); - if (sl>=0) { - QString k = maj.left(sl); - mimes.replace(k,(void*)1); - } + // 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('/'); + if (sl>=0) { + QString k = maj.left(sl); + mimes.replace(k,(void*)1); + } } void drawBackground( QPainter *p, const QRect &r ) { - Config config("qpe"); - config.setGroup("Appearance"); - QString backgroundImage = config.readEntry("BackgroundImage"); + Config config("qpe"); + config.setGroup("Appearance"); + QString backgroundImage = config.readEntry("BackgroundImage"); - if (backgroundImage.isNull()) backgroundImage="qpe-background"; - int backgroundMode = QPixmap::defaultDepth() >= 12 ? 1 : 0; - //int backgroundMode = 2; + if (backgroundImage.isNull()) backgroundImage="qpe-background"; + int backgroundMode = QPixmap::defaultDepth() >= 12 ? 1 : 0; + //int backgroundMode = 2; - if ( backgroundMode == 1 ) { + if ( backgroundMode == 1 ) { - // Double buffer the background - static QPixmap *bg = NULL; - static QColor bgColor; + // Double buffer the background + static QPixmap *bg = NULL; + static QColor bgColor; - if ( (bg == NULL) || (bgColor != colorGroup().button()) ) { - // Create a new background double buffer - if (bg == NULL) - bg = new QPixmap( width(), height() ); - bgColor = colorGroup().button(); - QPainter painter( bg ); + if ( (bg == NULL) || (bgColor != colorGroup().button()) ) { + // Create a new background double buffer + if (bg == NULL) + bg = new QPixmap( width(), height() ); + bgColor = colorGroup().button(); + QPainter painter( bg ); - painter.fillRect( QRect( 0, 0, width(), height() ), colorGroup().background().light(110)); + painter.fillRect( QRect( 0, 0, width(), height() ), colorGroup().background().light(110)); // Overlay the Qtopia logo in the center QImage logo; - if (QFile::exists(backgroundImage)) { + if (QFile::exists(backgroundImage)) { logo = QImage(backgroundImage); - } else { - logo = Resource::loadImage(backgroundImage ); - } - if ( !logo.isNull() ) - painter.drawImage( (width() - logo.width()) / 2, - (height() - logo.height()) / 2, logo ); - } - - // Draw the double buffer to the widget (it is tiled for when the icon view is large) - p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(), - (r.y() + contentsY()) % bg->height() ) ); - } else if ( backgroundMode == 2 ) { - static QPixmap *bg = 0; - static QColor bgColor; - if ( !bg || (bgColor != colorGroup().background()) ) { - bgColor = colorGroup().background(); - bg = new QPixmap( width(), 9 ); - QPainter painter( bg ); - for ( int i = 0; i < 3; i++ ) { - painter.setPen( colorGroup().background().light(130) ); - painter.drawLine( 0, i*3, width()-1, i*3 ); - painter.drawLine( 0, i*3+1, width()-1, i*3+1 ); - painter.setPen( colorGroup().background().light(105) ); - painter.drawLine( 0, i*3+2, width()-1, i*3+2 ); - } - } - p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(), - (r.y() + contentsY()) % bg->height() ) ); - } else { - p->fillRect( r, QBrush( colorGroup().background().light(110) ) ); - } + } else { + logo = Resource::loadImage(backgroundImage ); + } + if ( !logo.isNull() ) + painter.drawImage( (width() - logo.width()) / 2, + (height() - logo.height()) / 2, logo ); + } + + // Draw the double buffer to the widget (it is tiled for when the icon view is large) + p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(), + (r.y() + contentsY()) % bg->height() ) ); + } else if ( backgroundMode == 2 ) { + static QPixmap *bg = 0; + static QColor bgColor; + if ( !bg || (bgColor != colorGroup().background()) ) { + bgColor = colorGroup().background(); + bg = new QPixmap( width(), 9 ); + QPainter painter( bg ); + for ( int i = 0; i < 3; i++ ) { + painter.setPen( colorGroup().background().light(130) ); + painter.drawLine( 0, i*3, width()-1, i*3 ); + painter.drawLine( 0, i*3+1, width()-1, i*3+1 ); + painter.setPen( colorGroup().background().light(105) ); + painter.drawLine( 0, i*3+2, width()-1, i*3+2 ); + } + } + p->drawTiledPixmap( r, *bg, QPoint( (r.x() + contentsX()) % bg->width(), + (r.y() + contentsY()) % bg->height() ) ); + } else { + p->fillRect( r, QBrush( colorGroup().background().light(110) ) ); + } } void hideOrShowItems(bool resort); void setTypeFilter(const QString& typefilter, bool resort) { - tf = QRegExp(typefilter,FALSE,TRUE); - hideOrShowItems(resort); + tf = QRegExp(typefilter,FALSE,TRUE); + hideOrShowItems(resort); } void setCategoryFilter( int catfilter, bool resort ) { - Categories cat; - cat.load( categoryFileName() ); - QString str; - if ( catfilter == -2 ) - cf = 0; - else - cf = catfilter; - hideOrShowItems(resort); + Categories cat; + cat.load( categoryFileName() ); + QString str; + if ( catfilter == -2 ) + cf = 0; + else + cf = catfilter; + hideOrShowItems(resort); } enum SortMethod { Name, Date, Type }; void setSortMethod( SortMethod m ) { - if ( sortmeth != m ) { - sortmeth = m; - sort(); - } + if ( sortmeth != m ) { + sortmeth = m; + sort(); + } } int compare(const AppLnk* a, const AppLnk* b) { - switch (sortmeth) { - case Name: - return a->name().compare(b->name()); - 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()); - } - return 0; + switch (sortmeth) { + case Name: + return a->name().compare(b->name()); + 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()); + } + return 0; } protected: void styleChange( QStyle &old ) { - QIconView::styleChange( old ); - //### duplicated code from LauncherView constructor - int dw = QApplication::desktop()->width(); - setGridX( (dw-13-style().scrollBarExtent().width())/3 ); // tweaked for 8pt+dw=176 and 10pt+dw=240 + QIconView::styleChange( old ); + //### duplicated code from LauncherView constructor + int dw = QApplication::desktop()->width(); + setGridX( (dw-13-style().scrollBarExtent().width())/3 ); // tweaked for 8pt+dw=176 and 10pt+dw=240 } private: QList<AppLnk> hidden; QDict<void> mimes; QDict<void> cats; @@ -265,51 +265,51 @@ void LauncherView::setBusy(bool on) class LauncherItem : public QIconViewItem { public: LauncherItem( QIconView *parent, AppLnk* applnk ); ~LauncherItem() { - LauncherIconView* liv = (LauncherIconView*)iconView(); - if ( liv->busyItem() == this ) - liv->setBusy(FALSE); - delete app; + LauncherIconView* liv = (LauncherIconView*)iconView(); + if ( liv->busyItem() == this ) + liv->setBusy(FALSE); + delete app; } AppLnk* appLnk() const { return app; } AppLnk* takeAppLnk() { AppLnk* r=app; app=0; return r; } virtual int compare ( QIconViewItem * i ) const; void paintItem( QPainter *p, const QColorGroup &cg ) { - LauncherIconView* liv = (LauncherIconView*)iconView(); - QBrush oldBrush( liv->itemTextBackground() ); - QColorGroup mycg( cg ); - if ( liv->currentItem() == this ) { - liv->setItemTextBackground( cg.brush( QColorGroup::Highlight ) ); - mycg.setColor( QColorGroup::Text, cg.color( QColorGroup::HighlightedText ) ); - } - QIconViewItem::paintItem(p,mycg); - if ( liv->currentItem() == this ) - liv->setItemTextBackground( oldBrush ); - if ( liv->busyItem() == this ) { - static QPixmap* busypm=0; - if ( !busypm ) - busypm = new QPixmap(Resource::loadPixmap("launching")); - p->drawPixmap(x()+(width()-busypm->width())/2, y(),*busypm); - } + LauncherIconView* liv = (LauncherIconView*)iconView(); + QBrush oldBrush( liv->itemTextBackground() ); + QColorGroup mycg( cg ); + if ( liv->currentItem() == this ) { + liv->setItemTextBackground( cg.brush( QColorGroup::Highlight ) ); + mycg.setColor( QColorGroup::Text, cg.color( QColorGroup::HighlightedText ) ); + } + QIconViewItem::paintItem(p,mycg); + if ( liv->currentItem() == this ) + liv->setItemTextBackground( oldBrush ); + if ( liv->busyItem() == this ) { + static QPixmap* busypm=0; + if ( !busypm ) + busypm = new QPixmap(Resource::loadPixmap("launching")); + p->drawPixmap(x()+(width()-busypm->width())/2, y(),*busypm); + } } protected: AppLnk* app; }; LauncherItem::LauncherItem( QIconView *parent, AppLnk *applnk ) : QIconViewItem( parent, applnk->name(), applnk->bigPixmap() ), - app(applnk) // Takes ownership + app(applnk) // Takes ownership { } int LauncherItem::compare ( QIconViewItem * i ) const { LauncherIconView* view = (LauncherIconView*)iconView(); @@ -318,99 +318,96 @@ int LauncherItem::compare ( QIconViewItem * i ) const QStringList LauncherIconView::mimeTypes() const { QStringList r; QDictIterator<void> it(mimes); while (it.current()) { - r.append(it.currentKey()); - ++it; + r.append(it.currentKey()); + ++it; } r.sort(); return r; } void LauncherIconView::addItem(AppLnk* app, bool resort) { addCatsAndMimes(app); if ( (tf.isEmpty() || tf.match(app->type()) >= 0) - && (cf == 0 || app->categories().contains(cf) - || cf == -1 && app->categories().count() == 0 ) ) - (void) new LauncherItem( this, app ); + && (cf == 0 || app->categories().contains(cf) + || cf == -1 && app->categories().count() == 0 ) ) + (void) new LauncherItem( this, app ); else - hidden.append(app); + hidden.append(app); if ( resort ) - sort(); + sort(); } void LauncherIconView::updateCategoriesAndMimeTypes() { mimes.clear(); cats.clear(); LauncherItem* item = (LauncherItem*)firstItem(); while (item) { - addCatsAndMimes(item->appLnk()); - item = (LauncherItem*)item->nextItem(); + addCatsAndMimes(item->appLnk()); + item = (LauncherItem*)item->nextItem(); } QListIterator<AppLnk> it(hidden); AppLnk* l; while ((l=it.current())) { - addCatsAndMimes(l); - ++it; + addCatsAndMimes(l); + ++it; } } void LauncherIconView::hideOrShowItems(bool resort) { hidden.setAutoDelete(FALSE); QList<AppLnk> links=hidden; hidden.clear(); hidden.setAutoDelete(TRUE); LauncherItem* item = (LauncherItem*)firstItem(); while (item) { - links.append(item->takeAppLnk()); - item = (LauncherItem*)item->nextItem(); + links.append(item->takeAppLnk()); + item = (LauncherItem*)item->nextItem(); } bool oldAutoArrange = autoArrange(); setAutoArrange( FALSE ); clear(); QListIterator<AppLnk> it(links); AppLnk* l; while ((l=it.current())) { - addItem(l,FALSE); - ++it; + addItem(l,FALSE); + ++it; } if ( resort ) - sort(); + sort(); setAutoArrange( oldAutoArrange ); } bool LauncherIconView::removeLink(const QString& linkfile) { LauncherItem* item = (LauncherItem*)firstItem(); AppLnk* l; bool did = FALSE; DocLnk dl(linkfile); while (item) { - l = item->appLnk(); - if ( l->linkFileKnown() && l->linkFile() == linkfile || l->file() == linkfile - || dl.isValid() && dl.file() == l->file() ) { - delete item; - did = TRUE; - } - item = (LauncherItem*)item->nextItem(); + l = item->appLnk(); + if ( l->linkFileKnown() && l->linkFile() == linkfile/* || l->file() == linkfile || dl.isValid() && dl.file() == l->file()*/ ) { + delete item; + did = TRUE; + } + item = (LauncherItem*)item->nextItem(); } QListIterator<AppLnk> it(hidden); while ((l=it.current())) { - ++it; - if ( l->linkFileKnown() && l->linkFile() == linkfile - || l->file() == linkfile - || dl.isValid() && dl.file() == l->file() ) { - hidden.removeRef(l); - did = TRUE; - } + ++it; + if ( l->linkFileKnown() && l->linkFile() == linkfile/* || l->file() == linkfile || dl.isValid() && dl.file() == l->file()*/ ) { + hidden.removeRef(l); + did = TRUE; + } } return did; } LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl ) : QVBox( parent, name, fl ) @@ -429,57 +426,57 @@ LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl ) icons->setSpacing( 4 ); icons->setMargin( 0 ); icons->setSelectionMode( QIconView::Multi ); icons->setBackgroundMode( PaletteBase ); connect( icons, SIGNAL(mouseButtonClicked(int, QIconViewItem *, const QPoint&)), - SLOT(itemClicked(int, QIconViewItem *)) ); + SLOT(itemClicked(int, QIconViewItem *)) ); connect( icons, SIGNAL(selectionChanged()), - SLOT(selectionChanged()) ); + SLOT(selectionChanged()) ); connect( icons, SIGNAL(returnPressed(QIconViewItem *)), - SLOT(returnPressed(QIconViewItem *)) ); + SLOT(returnPressed(QIconViewItem *)) ); connect( icons, SIGNAL(mouseButtonPressed(int, QIconViewItem *, const QPoint&)), - SLOT(itemPressed(int, QIconViewItem *)) ); + SLOT(itemPressed(int, QIconViewItem *)) ); tools = 0; } LauncherView::~LauncherView() { } void LauncherView::setToolsEnabled(bool y) { if ( !y != !tools ) { - if ( y ) { - tools = new QHBox(this); - - // Type filter - typemb = new MenuButton(tools); - typemb->setLabel(tr("Type: %1")); - typemb->setFixedHeight ( 20 ); - - // Category filter - catmb = new CategorySelect(tools); - catmb->setFixedHeight ( 20 ); - - updateTools(); - tools->show(); - } else { - delete tools; - tools = 0; - } + if ( y ) { + tools = new QHBox(this); + + // Type filter + typemb = new MenuButton(tools); + typemb->setLabel(tr("Type: %1")); + typemb->setFixedHeight ( 20 ); + + // Category filter + catmb = new CategorySelect(tools); + catmb->setFixedHeight ( 20 ); + + updateTools(); + tools->show(); + } else { + delete tools; + tools = 0; + } } } void LauncherView::updateTools() { disconnect( typemb, SIGNAL(selected(const QString&)), - this, SLOT(showType(const QString&)) ); + this, SLOT(showType(const QString&)) ); disconnect( catmb, SIGNAL(signalSelected(int)), - this, SLOT(showCategory(int)) ); + this, SLOT(showCategory(int)) ); icons->updateCategoriesAndMimeTypes(); QString prev; // Type filter @@ -508,99 +505,99 @@ void LauncherView::sortBy(int s) icons->setSortMethod((LauncherIconView::SortMethod)s); } void LauncherView::showType(const QString& t) { if ( t == tr("All") ) { - icons->setTypeFilter("",TRUE); + icons->setTypeFilter("",TRUE); } else { - icons->setTypeFilter(t+"/*",TRUE); + icons->setTypeFilter(t+"/*",TRUE); } } void LauncherView::showCategory( int c ) { icons->setCategoryFilter( c, TRUE ); } void LauncherView::resizeEvent(QResizeEvent *e) { QVBox::resizeEvent( e ); if ( e->size().width() != e->oldSize().width() ) - sort(); + sort(); } void LauncherView::populate( AppLnkSet *folder, const QString& typefilter ) { icons->clear(); internalPopulate( folder, typefilter ); } void LauncherView::selectionChanged() { QIconViewItem* item = icons->currentItem(); if ( item && item->isSelected() ) { - AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); - if ( icons->inKeyEvent() ) // not for mouse press - emit clicked( appLnk ); - item->setSelected(FALSE); + AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); + if ( icons->inKeyEvent() ) // not for mouse press + emit clicked( appLnk ); + item->setSelected(FALSE); } } void LauncherView::returnPressed( QIconViewItem *item ) { if ( item ) { - AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); - emit clicked( appLnk ); + AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); + emit clicked( appLnk ); } } void LauncherView::itemClicked( int btn, QIconViewItem *item ) { if ( item ) { - AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); - if ( btn == LeftButton ) { - // Make sure it's the item we execute that gets highlighted - icons->setCurrentItem( item ); - emit clicked( appLnk ); - } - item->setSelected(FALSE); + AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); + if ( btn == LeftButton ) { + // Make sure it's the item we execute that gets highlighted + icons->setCurrentItem( item ); + emit clicked( appLnk ); + } + item->setSelected(FALSE); } } void LauncherView::itemPressed( int btn, QIconViewItem *item ) { if ( item ) { - AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); - if ( btn == RightButton ) - emit rightPressed( appLnk ); + AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); + if ( btn == RightButton ) + emit rightPressed( appLnk ); /* - else if ( btn == LeftButton ) - emit clicked( appLnk ); + else if ( btn == LeftButton ) + emit clicked( appLnk ); */ - item->setSelected(FALSE); + item->setSelected(FALSE); } } void LauncherView::internalPopulate( AppLnkSet *folder, const QString& typefilter ) { QListIterator<AppLnk> it( folder->children() ); icons->setTypeFilter(typefilter,FALSE); while ( it.current() ) { // show only the icons for existing files if (!QFile(it.current()->file()).exists() ) - { - //maybe insert some .desktop file deletion code later - //maybe dir specific - } + { + //maybe insert some .desktop file deletion code later + //maybe dir specific + } else - { - icons->addItem(*it,FALSE); - } - ++it; + { + icons->addItem(*it,FALSE); + } + ++it; } icons->sort(); } bool LauncherView::removeLink(const QString& linkfile) |