summaryrefslogtreecommitdiff
authorzecke <zecke>2002-06-29 10:19:59 (UTC)
committer zecke <zecke>2002-06-29 10:19:59 (UTC)
commitd8508c23608ad28e0b37f26807ee35055fcabe38 (patch) (unidiff)
tree916888a027aa6312d5521c9018ff16d0432a004f
parent0252b90a4b2e7be6186518eaa12ea03ef26ae08c (diff)
downloadopie-d8508c23608ad28e0b37f26807ee35055fcabe38.zip
opie-d8508c23608ad28e0b37f26807ee35055fcabe38.tar.gz
opie-d8508c23608ad28e0b37f26807ee35055fcabe38.tar.bz2
Fix bugs #94 and #96
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
@@ -327,15 +327,19 @@ QString OFileSelector::selectedName() const
327 QString name; 327 QString name;
328 if( m_selector == NORMAL ){ 328 if( m_selector == NORMAL ){
329 const DocLnk *lnk = m_select->selected(); 329 const DocLnk *lnk = m_select->selected();
330 name = lnk->file(); 330 name = lnk->file();
331 delete lnk; 331 delete lnk;
332 }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ 332 }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
333 QListViewItem *item = m_View->currentItem(); 333 if ( m_shLne ) {
334 if( item != 0 ) 334 name = m_currentDir + "/" +m_edit->text();
335 name = m_currentDir + "/" + item->text( 1 ); 335 }else{
336 QListViewItem *item = m_View->currentItem();
337 if( item != 0 )
338 name = m_currentDir + "/" + item->text( 1 );
339 }
336 }else { // installed view 340 }else { // installed view
337 ; 341 ;
338 } 342 }
339 return name; 343 return name;
340} 344}
341QStringList OFileSelector::selectedNames()const 345QStringList OFileSelector::selectedNames()const
@@ -518,16 +522,27 @@ void OFileSelector::slotMimeCheck(const QString &mime)
518 //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); 522 //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
519 } 523 }
520 reparse(); 524 reparse();
521 } 525 }
522 526
523} 527}
528/*
529 * Ok if a non dir gets inserted into this combobox
530 * we need to change it
531 * QFileInfo and dirPath will give us the right Dir
532 */
524void OFileSelector::slotLocationActivated(const QString &file) 533void OFileSelector::slotLocationActivated(const QString &file)
525{ 534{
526 cd(file.left(file.find("<-",0,TRUE))); 535 qWarning("slotLocationActivated");
527 reparse(); 536 QString name = file.left( file.find("<-", 0, TRUE ) );
537 QFileInfo info( name );
538 if ( info.isFile() )
539 cd(info.dirPath( TRUE ) ); //absolute
540 else
541 cd(name );
542 reparse();
528} 543}
529void OFileSelector::slotInsertLocationPath(const QString &currentPath, int count) 544void OFileSelector::slotInsertLocationPath(const QString &currentPath, int count)
530{ 545{
531 QStringList pathList; 546 QStringList pathList;
532 bool underDog = FALSE; 547 bool underDog = FALSE;
533 for(int i=0;i<count;i++) { 548 for(int i=0;i<count;i++) {
@@ -541,16 +556,26 @@ void OFileSelector::slotInsertLocationPath(const QString &currentPath, int count
541 pathList.append( currentPath.right(currentPath.length()-1) ); 556 pathList.append( currentPath.right(currentPath.length()-1) );
542 else 557 else
543 pathList.append( currentPath ); 558 pathList.append( currentPath );
544 m_location->insertStringList( pathList,-1); 559 m_location->insertStringList( pathList,-1);
545 } 560 }
546} 561}
562/*
563 * Do not crash anymore
564 * don't try to change dir to a file
565 */
547void OFileSelector::locationComboChanged() 566void OFileSelector::locationComboChanged()
548{ 567{
549 cd( m_location->lineEdit()->text()); 568 QFileInfo info( m_location->lineEdit()->text() );
550 reparse(); 569 qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() );
570 if (info.isFile() )
571 cd(info.dirPath(TRUE) ); //absolute path
572 else
573 cd( m_location->lineEdit()->text() );
574
575 reparse();
551} 576}
552void OFileSelector::init() 577void OFileSelector::init()
553{ 578{
554 m_lay = new QVBoxLayout( this ); 579 m_lay = new QVBoxLayout( this );
555 m_lay->setSpacing(0 ); 580 m_lay->setSpacing(0 );
556 581