From cb1d684a68565ff70fedd184eedf1ef4f2b71079 Mon Sep 17 00:00:00 2001 From: bipolar Date: Sat, 09 Mar 2002 03:09:15 +0000 Subject: ljp: hopefully took care of doclnk creating zero size files, while maintaining what was going on. --- (limited to 'core/launcher/launcherview.cpp') 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 @@ -43,25 +43,25 @@ 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 it(hidden); - AppLnk* l; - while ((l=it.current())) { - ++it; - //qDebug("%p: hidden (should remove)",l); - } + QListIterator it(hidden); + AppLnk* l; + while ((l=it.current())) { + ++it; + //qDebug("%p: hidden (should remove)",l); + } #endif } @@ -71,30 +71,30 @@ public: 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); @@ -105,141 +105,141 @@ public: 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: @@ -268,10 +268,10 @@ 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; } @@ -281,22 +281,22 @@ public: 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: @@ -306,7 +306,7 @@ protected: LauncherItem::LauncherItem( QIconView *parent, AppLnk *applnk ) : QIconViewItem( parent, applnk->name(), applnk->bigPixmap() ), - app(applnk) // Takes ownership + app(applnk) // Takes ownership { } @@ -321,8 +321,8 @@ QStringList LauncherIconView::mimeTypes() const QStringList r; QDictIterator it(mimes); while (it.current()) { - r.append(it.currentKey()); - ++it; + r.append(it.currentKey()); + ++it; } r.sort(); return r; @@ -333,13 +333,13 @@ 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() @@ -348,14 +348,14 @@ void LauncherIconView::updateCategoriesAndMimeTypes() cats.clear(); LauncherItem* item = (LauncherItem*)firstItem(); while (item) { - addCatsAndMimes(item->appLnk()); - item = (LauncherItem*)item->nextItem(); + addCatsAndMimes(item->appLnk()); + item = (LauncherItem*)item->nextItem(); } QListIterator it(hidden); AppLnk* l; while ((l=it.current())) { - addCatsAndMimes(l); - ++it; + addCatsAndMimes(l); + ++it; } } @@ -367,8 +367,8 @@ void LauncherIconView::hideOrShowItems(bool resort) 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 ); @@ -376,11 +376,11 @@ void LauncherIconView::hideOrShowItems(bool resort) QListIterator it(links); AppLnk* l; while ((l=it.current())) { - addItem(l,FALSE); - ++it; + addItem(l,FALSE); + ++it; } if ( resort ) - sort(); + sort(); setAutoArrange( oldAutoArrange ); } @@ -391,23 +391,20 @@ bool LauncherIconView::removeLink(const QString& linkfile) 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 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; } @@ -432,13 +429,13 @@ LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl ) 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; } @@ -450,33 +447,33 @@ 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(); @@ -511,9 +508,9 @@ void LauncherView::sortBy(int 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); } } @@ -526,7 +523,7 @@ 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 ) @@ -539,45 +536,45 @@ 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); } } @@ -589,15 +586,15 @@ void LauncherView::internalPopulate( AppLnkSet *folder, const QString& typefilte 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(); -- cgit v0.9.0.2