-rw-r--r-- | libopie/ofileselector.cc | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index 824acf2..3c3a6c4 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc @@ -330,9 +330,13 @@ QString OFileSelector::selectedName() const name = lnk->file(); delete lnk; }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ + if ( m_shLne ) { + name = m_currentDir + "/" +m_edit->text(); + }else{ QListViewItem *item = m_View->currentItem(); if( item != 0 ) name = m_currentDir + "/" + item->text( 1 ); + } }else { // installed view ; } @@ -521,9 +525,20 @@ void OFileSelector::slotMimeCheck(const QString &mime) } } +/* + * Ok if a non dir gets inserted into this combobox + * we need to change it + * QFileInfo and dirPath will give us the right Dir + */ void OFileSelector::slotLocationActivated(const QString &file) { - cd(file.left(file.find("<-",0,TRUE))); + qWarning("slotLocationActivated"); + QString name = file.left( file.find("<-", 0, TRUE ) ); + QFileInfo info( name ); + if ( info.isFile() ) + cd(info.dirPath( TRUE ) ); //absolute + else + cd(name ); reparse(); } void OFileSelector::slotInsertLocationPath(const QString ¤tPath, int count) @@ -544,9 +559,19 @@ void OFileSelector::slotInsertLocationPath(const QString ¤tPath, int count m_location->insertStringList( pathList,-1); } } +/* + * Do not crash anymore + * don't try to change dir to a file + */ void OFileSelector::locationComboChanged() { + QFileInfo info( m_location->lineEdit()->text() ); + qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() ); + if (info.isFile() ) + cd(info.dirPath(TRUE) ); //absolute path + else cd( m_location->lineEdit()->text()); + reparse(); } void OFileSelector::init() |