summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector.cc39
1 files changed, 32 insertions, 7 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index 824acf2..3c3a6c4 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -332,5 +332,9 @@ QString OFileSelector::selectedName() const
}else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
- QListViewItem *item = m_View->currentItem();
- if( item != 0 )
- name = m_currentDir + "/" + item->text( 1 );
+ 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
@@ -523,6 +527,17 @@ 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)));
- reparse();
+ 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();
}
@@ -546,6 +561,16 @@ void OFileSelector::slotInsertLocationPath(const QString &currentPath, int count
}
+/*
+ * Do not crash anymore
+ * don't try to change dir to a file
+ */
void OFileSelector::locationComboChanged()
{
- cd( m_location->lineEdit()->text());
- reparse();
+ 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();
}