summaryrefslogtreecommitdiff
path: root/libopie
Unidiff
Diffstat (limited to 'libopie') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/libopie.control2
-rw-r--r--libopie/ofileselector.cc159
2 files changed, 80 insertions, 81 deletions
diff --git a/libopie/libopie.control b/libopie/libopie.control
index 80bd2fc..e5416bf 100644
--- a/libopie/libopie.control
+++ b/libopie/libopie.control
@@ -1,9 +1,9 @@
1Files: $QTDIR/lib/libopie.so.1.0.0 $QTDIR/lib/libopie.so.1.0 $QTDIR/lib/libopie.so.1 1Files: $QTDIR/lib/libopie.so.1.0.0 $QTDIR/lib/libopie.so.1.0 $QTDIR/lib/libopie.so.1 $QTDIR/pics/opie/*
2Priority: optional 2Priority: optional
3Section: opie/system 3Section: opie/system
4Package: libopie 4Package: libopie
5Maintainer: - 5Maintainer: -
6Architecture: arm 6Architecture: arm
7Version: $QPE_VERSION-$SUB_VERSION 7Version: $QPE_VERSION-$SUB_VERSION
8Depends: qt-embedded (>=$QTE_VERSION) 8Depends: qt-embedded (>=$QTE_VERSION)
9Description: Opie library 9Description: Opie library
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index ea19143..cb18039 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -57,45 +57,45 @@
57 57
58#include "ofileselector.h" 58#include "ofileselector.h"
59 59
60QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; 60QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0;
61 61
62namespace { 62namespace {
63 63
64 int indexByString( const QComboBox *box, const QString &str ){ 64 int indexByString( const QComboBox *box, const QString &str ){
65 int index= -1; 65 int index= -1;
66 for(int i= 0; i < box->count(); i++ ){ 66 for(int i= 0; i < box->count(); i++ ){
67 qWarning("str T%sT boxT%sT", str.latin1(), box->text(i).latin1() ); 67 qWarning("str T%sT boxT%sT", str.latin1(), box->text(i).latin1() );
68 if( str == box->text(i ) ){ 68 if( str == box->text(i ) ){
69 index= i; 69 index= i;
70 break; 70 break;
71 } 71 }
72 } 72 }
73 return index; 73 return index;
74 } 74 }
75 75
76}; 76};
77 77
78 78
79OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, 79OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName,
80 const QString &fileName, const QStringList &mimetypes ) : QWidget( wid ) 80 const QString &fileName, const QStringList &mimetypes ) : QWidget( wid )
81{ 81{
82 if(wid!=0) 82 if(wid!=0)
83 resize(wid->width(),wid->height()); 83 resize(wid->width(),wid->height());
84 m_selector = selector; 84 m_selector = selector;
85 m_currentDir = dirName; 85 m_currentDir = dirName;
86 m_name = fileName; 86 m_name = fileName;
87 m_mimetypes = mimetypes; 87 m_mimetypes = mimetypes;
88 if( mimetypes.isEmpty() ) 88// if( mimetypes.isEmpty() )
89 m_autoMime = true; 89// m_autoMime = true;
90 90
91 m_mode = mode; 91 m_mode = mode;
92 m_shTool = true; 92 m_shTool = true;
93 m_shPerm = true; 93 m_shPerm = true;
94 m_shLne = true; 94 m_shLne = true;
95 m_shChooser = true; 95 m_shChooser = true;
96 m_shYesNo = true; 96 m_shYesNo = true;
97 // for FILESELECTOR only view is interesting 97 // for FILESELECTOR only view is interesting
98 m_location = 0; 98 m_location = 0;
99 m_homeButton = 0; 99 m_homeButton = 0;
100 m_docButton = 0; 100 m_docButton = 0;
101 m_hideButton = 0; 101 m_hideButton = 0;
@@ -130,25 +130,25 @@ OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString
130 if(m_pixmaps == 0 ) // init the pixmaps 130 if(m_pixmaps == 0 ) // init the pixmaps
131 initPics(); 131 initPics();
132 132
133 m_lay = new QVBoxLayout(this); 133 m_lay = new QVBoxLayout(this);
134 init(); 134 init();
135 m_edit->setText( fileName ); 135 m_edit->setText( fileName );
136} 136}
137void OFileSelector::initPics() 137void OFileSelector::initPics()
138{ 138{
139 qWarning("init pics" ); 139 qWarning("init pics" );
140 m_pixmaps = new QMap<QString,QPixmap>; 140 m_pixmaps = new QMap<QString,QPixmap>;
141 QPixmap pm = Resource::loadPixmap( "folder" ); 141 QPixmap pm = Resource::loadPixmap( "folder" );
142 QPixmap lnk = Resource::loadPixmap( "symlink" ); 142 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
143 QPainter painter( &pm ); 143 QPainter painter( &pm );
144 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 144 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
145 pm.setMask( pm.createHeuristicMask( FALSE ) ); 145 pm.setMask( pm.createHeuristicMask( FALSE ) );
146 m_pixmaps->insert("dirsymlink", pm ); 146 m_pixmaps->insert("dirsymlink", pm );
147 147
148 QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); 148 QPixmap pm2 = Resource::loadPixmap( "lockedfolder" );
149 QPainter pen(&pm2 ); 149 QPainter pen(&pm2 );
150 pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); 150 pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk );
151 pm2.setMask( pm2.createHeuristicMask( FALSE ) ); 151 pm2.setMask( pm2.createHeuristicMask( FALSE ) );
152 m_pixmaps->insert("symlinkedlocked", pm2 ); 152 m_pixmaps->insert("symlinkedlocked", pm2 );
153 153
154}; 154};
@@ -409,30 +409,30 @@ void OFileSelector::reparse()
409 // update the mimetype now 409 // update the mimetype now
410 if( m_autoMime ) { 410 if( m_autoMime ) {
411 QDir dir( m_currentDir ); 411 QDir dir( m_currentDir );
412 m_mimetypes.clear(); 412 m_mimetypes.clear();
413 m_mimeCheck->clear(); 413 m_mimeCheck->clear();
414 dir.setFilter( QDir::Files | QDir::Readable ); 414 dir.setFilter( QDir::Files | QDir::Readable );
415 dir.setSorting(QDir::Size ); 415 dir.setSorting(QDir::Size );
416 const QFileInfoList *list = dir.entryInfoList(); 416 const QFileInfoList *list = dir.entryInfoList();
417 QFileInfoListIterator it( *list ); 417 QFileInfoListIterator it( *list );
418 QFileInfo *fi; 418 QFileInfo *fi;
419 while( (fi=it.current()) ){ 419 while( (fi=it.current()) ){
420 if(fi->extension() == QString::fromLatin1("desktop") ){ 420 if(fi->extension() == QString::fromLatin1("desktop") ){
421 ++it; 421 ++it;
422 continue; 422 continue;
423 } 423 }
424 MimeType type(fi->filePath() ); 424 MimeType type(fi->filePath() );
425 if( !m_mimetypes.contains( type.id() ) ) 425 if( !m_mimetypes.contains( type.id() ) )
426 m_mimetypes.append( type.id() ); 426 m_mimetypes.append( type.id() );
427 427
428 ++it; 428 ++it;
429 } 429 }
430 m_mimetypes.prepend("All" ); 430 m_mimetypes.prepend("All" );
431 m_mimeCheck->insertStringList(m_mimetypes ); 431 m_mimeCheck->insertStringList(m_mimetypes );
432 // set it to the current mimetype 432 // set it to the current mimetype
433 m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currMime ) ); 433 m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currMime ) );
434 }; 434 };
435 QDir dir( m_currentDir ); 435 QDir dir( m_currentDir );
436 //dir.setFilter(-1 ); 436 //dir.setFilter(-1 );
437 int sort = QDir::Name | QDir::DirsFirst | QDir::Reversed; 437 int sort = QDir::Name | QDir::DirsFirst | QDir::Reversed;
438 if( m_case ) 438 if( m_case )
@@ -458,44 +458,44 @@ void OFileSelector::reparse()
458 QFileInfo *fi; 458 QFileInfo *fi;
459 while( (fi=it.current()) ){ 459 while( (fi=it.current()) ){
460 if(fi->fileName() == ".." || fi->fileName() == "." ){ 460 if(fi->fileName() == ".." || fi->fileName() == "." ){
461 ++it; 461 ++it;
462 continue; 462 continue;
463 } 463 }
464 qWarning("Test: %s", fi->fileName().latin1() ); 464 qWarning("Test: %s", fi->fileName().latin1() );
465 if(fi->isSymLink() ){ 465 if(fi->isSymLink() ){
466 qWarning("Symlink %s", fi->fileName().latin1() ); 466 qWarning("Symlink %s", fi->fileName().latin1() );
467 QString file = fi->dirPath(true)+"/"+ fi->readLink(); 467 QString file = fi->dirPath(true)+"/"+ fi->readLink();
468 qWarning("File ->%s", file.latin1() ); 468 qWarning("File ->%s", file.latin1() );
469 for(int i=0; i<=4; i++ ){ // prepend from dos 469 for(int i=0; i<=4; i++ ){ // prepend from dos
470 QFileInfo info( file ); 470 QFileInfo info( file );
471 if( !info.exists() ){ 471 if( !info.exists() ){
472 qWarning("does not exist" ); 472 qWarning("does not exist" );
473 addSymlink(currMime, fi, TRUE ); 473 addSymlink(currMime, fi, TRUE );
474 break; 474 break;
475 }else if( info.isDir() ){ 475 }else if( info.isDir() ){
476 qWarning("isDir" ); 476 qWarning("isDir" );
477 addDir(currMime, fi, TRUE ); 477 addDir(currMime, fi, TRUE );
478 break; 478 break;
479 }else if( info.isFile() ){ 479 }else if( info.isFile() ){
480 qWarning("isFile" ); 480 qWarning("isFile" );
481 addFile(currMime, fi, TRUE ); 481 addFile(currMime, fi, TRUE );
482 break; 482 break;
483 }else if( info.isSymLink() ){ 483 }else if( info.isSymLink() ){
484 file = info.dirPath(true)+ "/"+ info.readLink(); 484 file = info.dirPath(true)+ "/"+ info.readLink();
485 qWarning("isSymlink again %s", file.latin1() ); 485 qWarning("isSymlink again %s", file.latin1() );
486 }else if( i == 4 ){ // just insert it and have the symlink symbol 486 }else if( i == 4 ){ // just insert it and have the symlink symbol
487 addSymlink(currMime, fi ); 487 addSymlink(currMime, fi );
488 qWarning("level too deep" ); 488 qWarning("level too deep" );
489 } 489 }
490 } 490 }
491 }else if( fi->isDir() ){ 491 }else if( fi->isDir() ){
492 addDir(currMime, fi ); 492 addDir(currMime, fi );
493 }else if( fi->isFile() ) { // file ? 493 }else if( fi->isFile() ) { // file ?
494 addFile(currMime, fi ); 494 addFile(currMime, fi );
495 } 495 }
496 ++it; 496 ++it;
497 } 497 }
498 m_View->sort(); 498 m_View->sort();
499} 499}
500QString OFileSelector::directory()const 500QString OFileSelector::directory()const
501{ 501{
@@ -527,99 +527,100 @@ void OFileSelector::initializeName()
527 m_lay->addLayout(m_boxName); 527 m_lay->addLayout(m_boxName);
528} 528}
529void OFileSelector::initializeYes() 529void OFileSelector::initializeYes()
530{ 530{
531 m_ok = new QPushButton("&Save", this, "save" ); 531 m_ok = new QPushButton("&Save", this, "save" );
532 m_cancel = new QPushButton("C&ancel", this, "cancel" ); 532 m_cancel = new QPushButton("C&ancel", this, "cancel" );
533 m_boxOk = new QHBoxLayout(this ); 533 m_boxOk = new QHBoxLayout(this );
534 m_boxOk->addWidget( m_ok, Qt::AlignHCenter ); 534 m_boxOk->addWidget( m_ok, Qt::AlignHCenter );
535 m_boxOk->insertSpacing(1, 8 ); 535 m_boxOk->insertSpacing(1, 8 );
536 m_boxOk->addWidget( m_cancel, Qt::AlignHCenter); 536 m_boxOk->addWidget( m_cancel, Qt::AlignHCenter);
537 m_lay->addLayout(m_boxOk ); 537 m_lay->addLayout(m_boxOk );
538 connect(m_ok, SIGNAL(clicked() ), 538 connect(m_ok, SIGNAL(clicked() ),
539 this, SLOT(slotOk() ) ); 539 this, SLOT(slotOk() ) );
540 connect(m_cancel, SIGNAL(clicked() ), 540 connect(m_cancel, SIGNAL(clicked() ),
541 this, SLOT(slotCancel() ) ); 541 this, SLOT(slotCancel() ) );
542 542
543} 543}
544void OFileSelector::initializeChooser() 544void OFileSelector::initializeChooser()
545{ 545{
546 m_boxView = new QHBoxLayout(this ); 546 m_boxView = new QHBoxLayout(this );
547 547
548 m_mimeCheck = new QComboBox(this, "mime check"); 548 m_mimeCheck = new QComboBox(this, "mime check");
549 m_viewCheck = new QComboBox(this, "view check"); 549 m_viewCheck = new QComboBox(this, "view check");
550 m_boxView->addWidget(m_viewCheck, 0 ); 550 m_boxView->addWidget(m_viewCheck, 0 );
551 m_boxView->insertSpacing(1, 8 ); 551 m_boxView->insertSpacing(2, 8 );
552 m_boxView->addWidget(m_mimeCheck, 0 ); 552 m_boxView->addWidget(m_mimeCheck, 0 );
553 m_lay->addLayout(m_boxView ); 553 m_lay->addLayout(m_boxView );
554 m_lay->insertSpacing( 4, 8);
554 555
555 m_viewCheck->insertItem(tr("Documents") ); 556 m_viewCheck->insertItem(tr("Documents") );
556 m_viewCheck->insertItem(tr("Files") ); 557 m_viewCheck->insertItem(tr("Files") );
557 m_viewCheck->insertItem(tr("All Files") ); 558 m_viewCheck->insertItem(tr("All Files") );
558 559
559 if(!m_autoMime ) 560// if(!m_autoMime )
560 m_mimeCheck->insertItem(m_mimetypes.join("," ) ); 561// m_mimeCheck->insertItem(m_mimetypes.join("," ) );
561 else{ // check 562// else{ // check
562 updateMimes(); 563 updateMimes();
563 m_mimeCheck->insertStringList( m_mimetypes ); 564 m_mimeCheck->insertStringList( m_mimetypes );
564 } 565// }
565 566
566 connect( m_viewCheck, SIGNAL(activated(const QString &) ), 567 connect( m_viewCheck, SIGNAL(activated(const QString &) ),
567 this, SLOT(slotViewCheck(const QString & ) ) ); 568 this, SLOT(slotViewCheck(const QString & ) ) );
568 569
569 connect( m_mimeCheck, SIGNAL(activated(const QString &) ), 570 connect( m_mimeCheck, SIGNAL(activated(const QString &) ),
570 this, SLOT(slotMimeCheck(const QString & ) ) ); 571 this, SLOT(slotMimeCheck(const QString & ) ) );
571} 572}
572void OFileSelector::slotMimeCheck(const QString &view ){ 573void OFileSelector::slotMimeCheck(const QString &view ){
573 if(m_selector == NORMAL ){ 574 if(m_selector == NORMAL ){
574 delete m_select; 575 delete m_select;
575 m_select = new FileSelector(view == "All" ? QString::null : view 576 m_select = new FileSelector(view == "All" ? QString::null : view
576 , m_stack, "fileselector", FALSE, FALSE ); 577 , m_stack, "fileselector", FALSE, FALSE );
577 m_stack->addWidget( m_select, NORMAL ); 578 m_stack->addWidget( m_select, NORMAL );
578 m_stack->raiseWidget( NORMAL ); 579 m_stack->raiseWidget( NORMAL );
579 }else{ 580 }else{
580 reparse(); 581 reparse();
581 } 582 }
582} 583}
583 584
584void OFileSelector::slotViewCheck(const QString &view ){ 585void OFileSelector::slotViewCheck(const QString &view ){
585 qWarning("changed: show %s", view.latin1() ); 586 qWarning("changed: show %s", view.latin1() );
586 // if the current view is the one 587 // if the current view is the one
587 QString currMime = m_mimeCheck->currentText(); 588 QString currMime = m_mimeCheck->currentText();
588 if( view == QString::fromLatin1("Documents") ){ 589 if( view == QString::fromLatin1("Documents") ){
589 // get the mimetype now 590 // get the mimetype now
590 // check if we're the current widget and return 591 // check if we're the current widget and return
591 if( m_View != 0) { // delete 0 shouldn't crash but it did :( 592 if( m_View != 0) { // delete 0 shouldn't crash but it did :(
592 delete m_View; 593 delete m_View;
593 delete m_boxToolbar; 594 delete m_boxToolbar;
594 delete m_homeButton; 595 delete m_homeButton;
595 delete m_docButton; 596 delete m_docButton;
596 delete m_location; 597 delete m_location;
597 delete m_up; 598 delete m_up;
598 delete m_pseudo; 599 delete m_pseudo;
599 //if(m_pseudoLayout!=0 ) 600 //if(m_pseudoLayout!=0 )
600 //delete m_pseudoLayout; 601// delete m_pseudoLayout;
601 } 602 }
602 m_View = 0; 603 m_View = 0;
603 m_boxToolbar = 0; 604 m_boxToolbar = 0;
604 m_homeButton = 0; 605 m_homeButton = 0;
605 m_docButton = 0; 606 m_docButton = 0;
606 m_location = 0; 607 m_location = 0;
607 m_up = 0; 608 m_up = 0;
608 m_pseudo = 0; 609 m_pseudo = 0;
609 m_pseudoLayout = 0; 610 m_pseudoLayout = 0;
610 611
611 delete m_select; 612 delete m_select;
612 m_select = new FileSelector( currMime == "All" ? QString::null : currMime, 613 m_select = new FileSelector( currMime == "All" ? QString::null : currMime,
613 m_stack,"fileselector", FALSE, FALSE ); 614 m_stack,"fileselector", FALSE, FALSE );
614 m_stack->addWidget( m_select, NORMAL ); 615 m_stack->addWidget( m_select, NORMAL );
615 m_mimeCheck->clear(); 616 m_mimeCheck->clear();
616 m_selector = NORMAL; 617 m_selector = NORMAL;
617 updateMimes(); 618 updateMimes();
618 m_mimeCheck->insertStringList( m_mimetypes ); 619 m_mimeCheck->insertStringList( m_mimetypes );
619 m_stack->raiseWidget( NORMAL ); 620 m_stack->raiseWidget( NORMAL );
620 connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), this, SLOT(slotFileBridgeSelected(const DocLnk &) ) ); 621 connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), this, SLOT(slotFileBridgeSelected(const DocLnk &) ) );
621 622
622 }else if(view == QString::fromLatin1("Files") ){ 623 }else if(view == QString::fromLatin1("Files") ){
623 // remove from the stack 624 // remove from the stack
624 delete m_select; 625 delete m_select;
625 m_select = 0; 626 m_select = 0;
@@ -685,38 +686,35 @@ void OFileSelector::initializeListView()
685 m_up = 0; 686 m_up = 0;
686 m_pseudo = 0; 687 m_pseudo = 0;
687 m_pseudoLayout = 0; 688 m_pseudoLayout = 0;
688 // time for the toolbar 689 // time for the toolbar
689 m_pseudo = new QWidget(m_stack, "Pseudo Widget"); 690 m_pseudo = new QWidget(m_stack, "Pseudo Widget");
690 m_pseudoLayout = new QVBoxLayout(m_pseudo ); 691 m_pseudoLayout = new QVBoxLayout(m_pseudo );
691 if(m_shTool ){ 692 if(m_shTool ){
692 m_boxToolbar = new QHBoxLayout( ); 693 m_boxToolbar = new QHBoxLayout( );
693 m_boxToolbar->setAutoAdd( true ); 694 m_boxToolbar->setAutoAdd( true );
694 m_location = new QComboBox(m_pseudo ); 695 m_location = new QComboBox(m_pseudo );
695 696
696 m_up = new QPushButton(Resource::loadIconSet("up"),"", m_pseudo,"cdUpButton"); 697 m_up = new QPushButton(Resource::loadIconSet("up"),"", m_pseudo,"cdUpButton");
697 m_up->setMinimumSize( QSize( 20, 20 ) ); 698 m_up->setFixedSize( QSize( 20, 20 ) );
698 m_up->setMaximumSize( QSize( 20, 20 ) );
699 connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) ); 699 connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) );
700 m_up->setFlat(TRUE); 700 m_up->setFlat(TRUE);
701 701
702 m_homeButton = new QPushButton(Resource::loadIconSet("home") , "", m_pseudo); 702 m_homeButton = new QPushButton(Resource::loadIconSet("home") , "", m_pseudo);
703 m_homeButton->setMinimumSize( QSize( 20, 20 ) ); 703 m_homeButton->setFixedSize( QSize( 20, 20 ) );
704 m_homeButton->setMaximumSize( QSize( 20, 20 ) );
705 connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) ); 704 connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) );
706 m_homeButton->setFlat(TRUE); 705 m_homeButton->setFlat(TRUE);
707 706
708 m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", m_pseudo,"docsButton"); 707 m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", m_pseudo,"docsButton");
709 m_docButton->setMinimumSize( QSize( 20, 20 ) ); 708 m_docButton->setFixedSize( QSize( 20, 20 ) );
710 m_docButton->setMaximumSize( QSize( 20, 20 ) );
711 connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); 709 connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) );
712 m_docButton->setFlat(TRUE); 710 m_docButton->setFlat(TRUE);
713 711
714 m_boxToolbar->addWidget(m_location ); 712 m_boxToolbar->addWidget(m_location );
715 m_boxToolbar->addWidget(m_up ); 713 m_boxToolbar->addWidget(m_up );
716 m_boxToolbar->addWidget(m_homeButton ); 714 m_boxToolbar->addWidget(m_homeButton );
717 m_boxToolbar->addWidget(m_docButton ); 715 m_boxToolbar->addWidget(m_docButton );
718 m_pseudoLayout->addLayout(m_boxToolbar ); 716 m_pseudoLayout->addLayout(m_boxToolbar );
719 // lets fill the combobox 717 // lets fill the combobox
720 StorageInfo storage; 718 StorageInfo storage;
721 const QList<FileSystem> &fs = storage.fileSystems(); 719 const QList<FileSystem> &fs = storage.fileSystems();
722 QListIterator<FileSystem> it ( fs ); 720 QListIterator<FileSystem> it ( fs );
@@ -730,38 +728,39 @@ void OFileSelector::initializeListView()
730 m_location->setCurrentItem( count ); 728 m_location->setCurrentItem( count );
731 }; 729 };
732 m_View = new QListView(m_pseudo, "Extended view" ); 730 m_View = new QListView(m_pseudo, "Extended view" );
733 m_stack->addWidget( m_pseudo, EXTENDED ); 731 m_stack->addWidget( m_pseudo, EXTENDED );
734 m_stack->raiseWidget( EXTENDED ); 732 m_stack->raiseWidget( EXTENDED );
735 m_pseudoLayout->addWidget(m_View ); 733 m_pseudoLayout->addWidget(m_View );
736 QPEApplication::setStylusOperation( m_View->viewport(),QPEApplication::RightOnHold); 734 QPEApplication::setStylusOperation( m_View->viewport(),QPEApplication::RightOnHold);
737 // set up the stuff 735 // set up the stuff
738 // Pixmap Name Date Size mime 736 // Pixmap Name Date Size mime
739 //(m_View->header() )->hide(); 737 //(m_View->header() )->hide();
740 //m_View->setRootIsDecorated(false); 738 //m_View->setRootIsDecorated(false);
741 m_View->addColumn(" "); 739 m_View->addColumn(" ");
742 m_View->addColumn(tr("Name") ); 740 m_View->addColumn(tr("Name"),135 );
743 m_View->addColumn(tr("Size") ); 741 m_View->addColumn(tr("Size"),-1 );
744 m_View->addColumn(tr("Date"), 60 ); 742 m_View->addColumn(tr("Date"), 60 );
745 m_View->addColumn(tr("Mime Type") ); 743 m_View->addColumn(tr("Mime Type"),-1 );
746 QHeader *header = m_View->header(); 744 QHeader *header = m_View->header();
747 header->hide(); 745 header->hide();
748 m_View->setSorting(1 ); 746 m_View->setSorting(1 );
747 m_View->setAllColumnsShowFocus( TRUE);
749 // connect now 748 // connect now
750 connect(m_View, SIGNAL(selectionChanged() ), this, SLOT(slotSelectionChanged() ) ); 749 connect(m_View, SIGNAL(selectionChanged() ), this, SLOT(slotSelectionChanged() ) );
751 connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), this, SLOT(slotCurrentChanged(QListViewItem * ) ) ); 750 connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), this, SLOT(slotCurrentChanged(QListViewItem * ) ) );
752 connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ), 751 connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ),
753 this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) ); 752 this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) );
754 connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )), 753 connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )),
755 this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) ); 754 this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) );
756 755
757 756
758}; 757};
759/* If a item is locked depends on the mode 758/* If a item is locked depends on the mode
760 if we're in OPEN !isReadable is locked 759 if we're in OPEN !isReadable is locked
761 if we're in SAVE !isWriteable is locked 760 if we're in SAVE !isWriteable is locked
762 761
763 762
764 */ 763 */
765 764
766 765
767void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink ){ 766void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink ){
@@ -782,73 +781,73 @@ void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink )
782 } 781 }
783 QPixmap pix = type.pixmap(); 782 QPixmap pix = type.pixmap();
784 if(pix.isNull() ) 783 if(pix.isNull() )
785 pix = Resource::loadPixmap( "UnknownDocument-14" ); 784 pix = Resource::loadPixmap( "UnknownDocument-14" );
786 dir = info->dirPath( true ); 785 dir = info->dirPath( true );
787 if( symlink ) { // check if the readLink is readable 786 if( symlink ) { // check if the readLink is readable
788 // do it right later 787 // do it right later
789 name = info->fileName() + " -> " + info->dirPath() + "/" + info->readLink(); 788 name = info->fileName() + " -> " + info->dirPath() + "/" + info->readLink();
790 }else{ // keep track of the icons 789 }else{ // keep track of the icons
791 name = info->fileName(); 790 name = info->fileName();
792 if( m_mode == OPEN ){ 791 if( m_mode == OPEN ){
793 if( !info->isReadable() ){ 792 if( !info->isReadable() ){
794 locked = true; 793 locked = true;
795 pix = Resource::loadPixmap("locked" ); 794 pix = Resource::loadPixmap("locked" );
796 } 795 }
797 }else if( m_mode == SAVE ){ 796 }else if( m_mode == SAVE ){
798 if( !info->isWritable() ){ 797 if( !info->isWritable() ){
799 locked = true; 798 locked = true;
800 pix = Resource::loadPixmap("locked" ); 799 pix = Resource::loadPixmap("locked" );
801 } 800 }
802 } 801 }
803 } 802 }
804 new OFileSelectorItem( m_View, pix, name, 803 new OFileSelectorItem( m_View, pix, name,
805 info->lastModified().toString(), 804 info->lastModified().toString(),
806 QString::number( info->size() ), 805 QString::number( info->size() ),
807 dir, locked ); 806 dir, locked );
808} 807}
809void OFileSelector::addDir(const QString &mime, QFileInfo *info, bool symlink ) 808void OFileSelector::addDir(const QString &mime, QFileInfo *info, bool symlink )
810{ 809{
811 if(!m_dir ) 810 if(!m_dir )
812 return; 811 return;
813 //if( showDirs ) 812 //if( showDirs )
814 { 813 {
815 bool locked=false; 814 bool locked=false;
816 QString name; 815 QString name;
817 QPixmap pix; 816 QPixmap pix;
818 if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){ 817 if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){
819 locked = true; 818 locked = true;
820 if( symlink ){ 819 if( symlink ){
821 pix = (*m_pixmaps)["symlinkedlocked"]; 820 pix = (*m_pixmaps)["symlinkedlocked"];
822 }else{ 821 }else{
823 pix = Resource::loadPixmap("lockedfolder" ); 822 pix = Resource::loadPixmap("lockedfolder" );
824 } 823 }
825 }else{ 824 }else{
826 if( symlink ){ 825 if( symlink ){
827 pix = (*m_pixmaps)["dirsymlink" ]; 826 pix = (*m_pixmaps)["dirsymlink" ];
828 }else{ 827 }else{
829 pix = Resource::loadPixmap("folder" ); 828 pix = Resource::loadPixmap("folder" );
830 } 829 }
831 } 830 }
832 if( symlink){ 831 if( symlink){
833 name = info->fileName()+ "->"+ info->dirPath(true) +"/" +info->readLink(); 832 name = info->fileName()+ "->"+ info->dirPath(true) +"/" +info->readLink();
834 833
835 }else{ 834 }else{
836 //if(info->isReadable() ) 835 //if(info->isReadable() )
837 name = info->fileName(); 836 name = info->fileName();
838 } 837 }
839 838
840 new OFileSelectorItem(m_View, pix, 839 new OFileSelectorItem(m_View, pix,
841 name, info->lastModified().toString(), 840 name, info->lastModified().toString(),
842 QString::number(info->size() ),info->dirPath(true), locked, true ); 841 QString::number(info->size() ),info->dirPath(true), locked, true );
843 842
844 } 843 }
845} 844}
846void OFileSelector::setShowDirs(bool dir ) 845void OFileSelector::setShowDirs(bool dir )
847{ 846{
848 m_dir = dir; 847 m_dir = dir;
849 reparse(); 848 reparse();
850} 849}
851 850
852void OFileSelector::slotFileSelected(const QString &string ) 851void OFileSelector::slotFileSelected(const QString &string )
853{ 852{
854 if(m_shLne ) 853 if(m_shLne )
@@ -869,55 +868,55 @@ void OFileSelector::slotSelectionChanged() // get the current items
869} 868}
870void OFileSelector::slotCurrentChanged(QListViewItem *item ) 869void OFileSelector::slotCurrentChanged(QListViewItem *item )
871{ 870{
872 qWarning("current changed" ); 871 qWarning("current changed" );
873 if( item == 0 ) 872 if( item == 0 )
874 return; 873 return;
875 874
876 if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ 875 if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
877 OFileSelectorItem *sel = (OFileSelectorItem*)item; 876 OFileSelectorItem *sel = (OFileSelectorItem*)item;
878 if(!sel->isDir() ){ 877 if(!sel->isDir() ){
879 qWarning("is not dir" ); 878 qWarning("is not dir" );
880 if(m_shLne ){ 879 if(m_shLne ){
881 m_edit->setText(sel->text(1) ); 880 m_edit->setText(sel->text(1) );
882 qWarning("setTexy" ); 881 qWarning("setTexy" );
883 } 882 }
884 } 883 }
885 }else { 884 }else {
886 qWarning("mode not extended" ); 885 qWarning("mode not extended" );
887 } 886 }
888} 887}
889// either select or change dir 888// either select or change dir
890void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &point, int ) 889void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &point, int )
891{ 890{
892 if( item == 0 ) 891 if( item == 0 )
893 return; 892 return;
894 893
895 if( button != Qt::LeftButton ) 894 if( button != Qt::LeftButton )
896 return; 895 return;
897 896
898 qWarning("clicked" ); 897 qWarning("clicked" );
899 if(m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ 898 if(m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
900 qWarning("inside" ); 899 qWarning("inside" );
901 OFileSelectorItem *sel = (OFileSelectorItem*)item; 900 OFileSelectorItem *sel = (OFileSelectorItem*)item;
902 if(!sel->isLocked() ){ // not locked either changedir or open 901 if(!sel->isLocked() ){ // not locked either changedir or open
903 QStringList str = QStringList::split("->", sel->text(1) ); 902 QStringList str = QStringList::split("->", sel->text(1) );
904 if(sel->isDir() ){ 903 if(sel->isDir() ){
905 cd( sel->directory() + "/" + str[0] ); 904 cd( sel->directory() + "/" + str[0] );
906 }else{ 905 }else{
907 qWarning("file" ); 906 qWarning("file" );
908 if(m_shLne ) 907 if(m_shLne )
909 m_edit->setText(str[0] ); 908 m_edit->setText(str[0] );
910 emit fileSelected(str[0] ); 909 emit fileSelected(str[0] );
911 // emit DocLnk need to do it 910 // emit DocLnk need to do it
912 } 911 }
913 }else{ 912 }else{
914 qWarning( "locked" ); 913 qWarning( "locked" );
915 } 914 }
916 }; 915 };
917} 916}
918void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int ) 917void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int )
919{ 918{
920 if (item == 0 ) 919 if (item == 0 )
921 return; 920 return;
922 921
923 if( button != Qt::RightButton ) 922 if( button != Qt::RightButton )
@@ -930,57 +929,57 @@ void OFileSelector::slotContextMenu(QListViewItem *item)
930 qWarning("context menu" ); 929 qWarning("context menu" );
931 if( item ==0 || !m_showPopup ) 930 if( item ==0 || !m_showPopup )
932 return; 931 return;
933 932
934 if( m_custom !=0){ 933 if( m_custom !=0){
935 m_custom->exec(); 934 m_custom->exec();
936 }else{ 935 }else{
937 QPopupMenu menu; 936 QPopupMenu menu;
938 QAction up; 937 QAction up;
939 up.setText("cd up"); 938 up.setText("cd up");
940 up.addTo( &menu ); 939 up.addTo( &menu );
941 connect(&up, SIGNAL(activated() ), 940 connect(&up, SIGNAL(activated() ),
942 this, SLOT(cdUP() ) ); 941 this, SLOT(cdUP() ) );
943 942
944 QAction act; 943 QAction act;
945 OFileSelectorItem *sel = (OFileSelectorItem*)item; 944 OFileSelectorItem *sel = (OFileSelectorItem*)item;
946 if(sel->isDir() ){ 945 if(sel->isDir() ){
947 act.setText( tr("Change Directory") ); 946 act.setText( tr("Change Directory") );
948 act.addTo(&menu ); 947 act.addTo(&menu );
949 connect(&act, SIGNAL(activated() ), 948 connect(&act, SIGNAL(activated() ),
950 this, SLOT(slotChangedDir() ) ); 949 this, SLOT(slotChangedDir() ) );
951 }else{ 950 }else{
952 act.setText( tr("Open file" ) ); 951 act.setText( tr("Open file" ) );
953 act.addTo( &menu ); 952 act.addTo( &menu );
954 connect(&act, SIGNAL(activated() ), 953 connect(&act, SIGNAL(activated() ),
955 this, SLOT(slotOpen() ) ); 954 this, SLOT(slotOpen() ) );
956 } 955 }
957 QAction rescan; 956 QAction rescan;
958 rescan.setText( tr("Rescan") ); 957 rescan.setText( tr("Rescan") );
959 rescan.addTo( &menu ); 958 rescan.addTo( &menu );
960 connect(&rescan, SIGNAL(activated() ), 959 connect(&rescan, SIGNAL(activated() ),
961 this, SLOT(slotRescan() ) ); 960 this, SLOT(slotRescan() ) );
962 961
963 QAction rename; 962 QAction rename;
964 rename.setText( tr("Rename") ); 963 rename.setText( tr("Rename") );
965 rename.addTo( &menu ); 964 rename.addTo( &menu );
966 connect(&rename, SIGNAL(activated() ), 965 connect(&rename, SIGNAL(activated() ),
967 this, SLOT(slotRename() ) ); 966 this, SLOT(slotRename() ) );
968 967
969 menu.insertSeparator(); 968 menu.insertSeparator();
970 QAction delItem; 969 QAction delItem;
971 delItem.setText( tr("Delete") ); 970 delItem.setText( tr("Delete") );
972 delItem.addTo(&menu ); 971 delItem.addTo(&menu );
973 connect(&delItem, SIGNAL(activated() ), 972 connect(&delItem, SIGNAL(activated() ),
974 this, SLOT(slotDelete() ) ); 973 this, SLOT(slotDelete() ) );
975 974
976 menu.exec(QCursor::pos() ); 975 menu.exec(QCursor::pos() );
977 } 976 }
978} 977}
979bool OFileSelector::cd(const QString &str ) 978bool OFileSelector::cd(const QString &str )
980{ 979{
981 qWarning(" dir %s", str.latin1() ); 980 qWarning(" dir %s", str.latin1() );
982 QDir dir( str); 981 QDir dir( str);
983 if(dir.exists() ){ 982 if(dir.exists() ){
984 m_currentDir = str; 983 m_currentDir = str;
985 reparse(); 984 reparse();
986 if(m_shTool ){ 985 if(m_shTool ){