author | llornkcor <llornkcor> | 2003-07-14 18:49:16 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2003-07-14 18:49:16 (UTC) |
commit | ab28f35bc3c9c184862ac19462322eed2be0f541 (patch) (side-by-side diff) | |
tree | 99bff20a6ca5c4b19d972d72ca2ec9abbaaa0e9d | |
parent | a62dda249a0b823e1aa006bbc502f72e9af7da95 (diff) | |
download | opie-ab28f35bc3c9c184862ac19462322eed2be0f541.zip opie-ab28f35bc3c9c184862ac19462322eed2be0f541.tar.gz opie-ab28f35bc3c9c184862ac19462322eed2be0f541.tar.bz2 |
try to fix crash when insert drive. please test.
-rw-r--r-- | core/launcher/launcher.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index d9fc8e4..5f050aa 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp @@ -48,264 +48,264 @@ #include <qpushbutton.h> #include <qtabbar.h> #include <qwidgetstack.h> #include <qlayout.h> #include <qregexp.h> #include <qmessagebox.h> #include <qframe.h> #include <qpainter.h> #include <qlabel.h> #include <qtextstream.h> #include <qpopupmenu.h> #include <opie/owait.h> #include "launcherview.h" #include "launcher.h" #include "syncdialog.h" #include "desktop.h" #include <qpe/lnkproperties.h> //#include "mrulist.h" #include "qrsync.h" #include <stdlib.h> #include <unistd.h> #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) #include <stdio.h> #include <sys/vfs.h> #include <mntent.h> #endif #include <qpe/storage.h> #include "mediummountgui.h" namespace { QStringList configToMime( Config *cfg ){ QStringList mimes; bool tmpMime = true; cfg->setGroup("mimetypes" ); tmpMime = cfg->readBoolEntry("all" ,true); if( tmpMime ){ mimes << QString::null; return mimes; }else{ tmpMime = cfg->readBoolEntry("audio", true ); if(tmpMime ) mimes.append("audio/*" ); tmpMime = cfg->readBoolEntry("image", true ); if(tmpMime ) mimes.append("image/*" ); tmpMime = cfg->readBoolEntry("text", true ); if(tmpMime ) mimes.append("text/*"); tmpMime = cfg->readBoolEntry("video", true ); if(tmpMime ) mimes.append("video/*" ); } return mimes; } } //#define SHOW_ALL class CategoryTab : public QTab { public: CategoryTab( const QIconSet &icon, const QString &text=QString::null ) : QTab( icon, text ) { } QColor bgColor; QColor fgColor; }; //=========================================================================== CategoryTabWidget::CategoryTabWidget( QWidget* parent ) : QVBox( parent ) { categoryBar = 0; stack = 0; } void CategoryTabWidget::prevTab() { if ( categoryBar ) { 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 tab = categoryBar->currentTab(); categoryBar->setCurrentTab( (tab + 1)%n ); } } void CategoryTabWidget::showTab(const QString& id) { if ( categoryBar ) { int idx = ids.findIndex( id ); categoryBar->setCurrentTab( idx ); } } void CategoryTabWidget::addItem( const QString& linkfile ) { int i=0; AppLnk *app = new AppLnk(linkfile); if ( !app->isValid() ) { delete app; app=0; } if ( !app || !app->file().isEmpty() ) { // A document - delete app; - app = new DocLnk(linkfile); - if ( app->fileKnown() ) { - ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); - } else { - ((LauncherView*)(stack->widget(ids.count()-1)))->sort(); - delete app; - } +// delete app; +// app = new DocLnk(linkfile); +// if ( app->fileKnown() ) { +// ((LauncherView*)(stack->widget(ids.count()-1)))->addItem(app); +// } else { +// ((LauncherView*)(stack->widget(ids.count()-1)))->sort(); +// delete app; +// } return; } // An application 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++; } } QCopEnvelope e("QPE/TaskBar","reloadApps()"); } void CategoryTabWidget::initializeCategories(AppLnkSet* rootFolder, AppLnkSet* /*docFolder*/, const QList<FileSystem> & /*fs*/) { QString current; if ( categoryBar ) { int c = categoryBar->currentTab(); if ( c >= 0 ) current = ids[c]; } 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) ); categoryBar->setPalette( pal ); delete stack; stack = new QWidgetStack(this); tabs=0; ids.clear(); Config cfg("Launcher"); QStringList types = rootFolder->types(); for ( QStringList::Iterator it=types.begin(); it!=types.end(); ++it) { if ( !(*it).isEmpty() ) { (void)newView(*it,rootFolder->typePixmap(*it),rootFolder->typeName(*it)); setTabAppearance( *it, cfg ); } } QListIterator<AppLnk> it( rootFolder->children() ); AppLnk* l; while ( (l=it.current()) ) { if ( l->type() == "Separator" ) { // No tr 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(); // all documents QImage img( Resource::loadImage( "DocsIcon" ) ); QPixmap pm; pm = img.smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ); //ljpotter CategoryTab *catTab ; catTab = new CategoryTab( pm, "Documents" ); categoryBar->addTab( catTab ); fileSel = new DocumentTab( stack, 4, 0, "/",""); stack->addWidget( fileSel, tabs++ ); // fileSel->hide(); connect( fileSel, SIGNAL( fileSelected( const DocLnk & )), this, SLOT(clickie(const DocLnk&)) ); // connect( fileSel, SIGNAL( fileSelected( const QString & )), // this, SLOT(clickie(const QString&)) ); connect( categoryBar, SIGNAL(selected(int)), stack, SLOT(raiseWidget(int)) ); ((LauncherView*)stack->widget(0))->setFocus(); cfg. setGroup ( "GUI" ); setBusyIndicatorType ( cfg. readEntry ( "BusyType", QString::null )); if ( !current.isNull() ) { showTab(current); } categoryBar->show(); stack->show(); QCopEnvelope e("QPE/TaskBar","reloadApps()"); } void CategoryTabWidget::clickie(const DocLnk &lnk) { lnk.execute(); // fileSel->reparse(); } void CategoryTabWidget::clickie(const QString &appStr) { // DocLnk lnk(appStr); // lnk.execute(); } void CategoryTabWidget::setTabAppearance( const QString &id, Config &cfg ) { QString grp( "Tab %1" ); // No tr cfg.setGroup( grp.arg(id) ); LauncherView *v = view( id ); int idx = ids.findIndex( id ); CategoryTab *tab = (CategoryTab *)categoryBar->tab( idx ); // View QString view = cfg.readEntry( "View", "Icon" ); |