author | kergoth <kergoth> | 2003-01-26 22:45:27 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-01-26 22:45:27 (UTC) |
commit | 954ff2a858b34a8249314340f799f0a74426d59c (patch) (side-by-side diff) | |
tree | f0b738dceaec14bba0347151db4f372d25cdf8e8 | |
parent | 4ce67fbdfb5e82bbde3a8963d3e956567438689d (diff) | |
download | opie-954ff2a858b34a8249314340f799f0a74426d59c.zip opie-954ff2a858b34a8249314340f799f0a74426d59c.tar.gz opie-954ff2a858b34a8249314340f799f0a74426d59c.tar.bz2 |
Added two missing dir.exists() checks, without which a segfault occurs if m_currentDir doesnt exist.
-rw-r--r-- | libopie/ofileselector.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index 6a6a300..7481360 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc @@ -1189,67 +1189,70 @@ void OFileSelector::reparse() else // custom view ; // currentView()->clear(); if( m_shChooser) qWarning("reparse %s", m_mimeCheck->currentText().latin1() ); QString currentMimeType; // let's update the mimetype if( m_autoMime ){ m_mimetypes.clear(); // ok we can change mimetype so we need to be able to give a selection if( m_shChooser ) { currentMimeType = m_mimeCheck->currentText(); m_mimeCheck->clear(); // let's find possible mimetypes QDir dir( m_currentDir ); + if( dir.exists() ){ dir.setFilter( QDir::Files | QDir::Readable ); dir.setSorting( QDir::Size ); const QFileInfoList *list = dir.entryInfoList(); QFileInfoListIterator it( *list ); QFileInfo *fi; while( (fi=it.current() ) ) { if( fi->extension() == QString::fromLatin1("desktop") ){ ++it; continue; } MimeType type( fi->absFilePath() ); if( !m_mimetypes.contains( type.id() ) ){ //qWarning("Type %s", type.id().latin1() ); m_mimetypes.insert( type.id(), type.id() ); } ++it; } // add them to the chooser updateMimeCheck(); m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currentMimeType ) ); currentMimeType = m_mimeCheck->currentText(); } + } }else { // no autoMime // let the mimetype be set from out side the m_mimeCheck FEATURE if( m_shChooser ){ currentMimeType = m_mimeCheck->currentText(); // updateMimeCheck(); } } // now we got our mimetypes we can add the files QDir dir( m_currentDir ); + if( dir.exists() ){ int sort; if ( m_case ) sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed); else sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed); dir.setSorting( sort ); int filter; if( m_selector == EXTENDED_ALL /*|| m_selector ==CUSTOM_ALL */ ){ filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; }else filter = QDir::Files | QDir::Dirs | QDir::All; dir.setFilter( filter ); // now go through all files const QFileInfoList *list = dir.entryInfoList(); @@ -1277,23 +1280,24 @@ void OFileSelector::reparse() break; }else if( info.isSymLink() ){ file = info.dirPath(true ) + "/" + info.readLink() ; break; }else if( i == 4){ addSymlink( currentMimeType, fi ); } } // off for loop }else if( fi->isDir() ){ addDir( currentMimeType, fi ); }else if( fi->isFile() ){ addFile( currentMimeType, fi ); } //qWarning( "%s", fi->fileName().latin1() ); ++it; } // of while loop + } // if ( dir.exists() ) m_View->sort(); if( m_shTool ){ m_location->insertItem( m_currentDir ); } // reenable painting and updates } |