Diffstat (limited to 'libopie/ofileselector/ofileselector.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie/ofileselector/ofileselector.cpp | 249 |
1 files changed, 110 insertions, 139 deletions
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp index 98b61f7..c52aa62 100644 --- a/libopie/ofileselector/ofileselector.cpp +++ b/libopie/ofileselector/ofileselector.cpp | |||
@@ -32,3 +32,5 @@ | |||
32 | #include "ofileview.h" | 32 | #include "ofileview.h" |
33 | #include "ofileselectormain.h" | ||
33 | #include "ofileselector.h" | 34 | #include "ofileselector.h" |
35 | #include "olocallister.h" | ||
34 | #include "olister.h" | 36 | #include "olister.h" |
@@ -103,20 +105,5 @@ void OFileSelector::setNewVisible( bool visible ) | |||
103 | m_shNew = visible; | 105 | m_shNew = visible; |
104 | if( m_selector == Normal ){ | 106 | if (m_new ) |
105 | delete m_select; | ||
106 | // we need to initialize but keep the selected mimetype | ||
107 | QString mime = currentMimeType(); | ||
108 | m_select = new FileSelector( mime , | ||
109 | m_stack, "fileselector", | ||
110 | m_shNew, m_shClose); | ||
111 | |||
112 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | ||
113 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | ||
114 | connect(m_select, SIGNAL(closeMe() ), | ||
115 | this, SIGNAL(closeMe() ) ); | ||
116 | //connect to close me and other signals as well | ||
117 | m_stack->addWidget( m_select, Normal ); | ||
118 | }else{ | ||
119 | m_new->show(); | 107 | m_new->show(); |
120 | } | 108 | } |
121 | } | ||
122 | void OFileSelector::setCloseVisible( bool visible ) | 109 | void OFileSelector::setCloseVisible( bool visible ) |
@@ -124,16 +111,13 @@ void OFileSelector::setCloseVisible( bool visible ) | |||
124 | m_shClose = visible; | 111 | m_shClose = visible; |
125 | if( m_selector == Normal ){ | 112 | |
126 | setNewVisible( m_shNew ); // yeah baby | 113 | if( m_close ) |
127 | }else{ | ||
128 | m_close->show(); | 114 | m_close->show(); |
129 | } | 115 | } |
130 | } | ||
131 | void OFileSelector::reread() | 116 | void OFileSelector::reread() |
132 | { | 117 | { |
133 | if( m_selector == Normal ){ | 118 | if( m_selector == Normal ) |
134 | setNewVisible( m_shNew ); // make it a initializeSelector | 119 | initializeOldSelector(); |
135 | }else { | 120 | else |
136 | reparse(); | 121 | reparse(); |
137 | } | 122 | } |
138 | } | ||
139 | 123 | ||
@@ -149,2 +133,3 @@ void OFileSelector::setYesCancelVisible( bool show ) | |||
149 | m_shYesNo = show; | 133 | m_shYesNo = show; |
134 | |||
150 | if( m_shYesNo ) | 135 | if( m_shYesNo ) |
@@ -158,3 +143,2 @@ void OFileSelector::setToolbarVisible( bool show ) | |||
158 | m_shTool = show; | 143 | m_shTool = show; |
159 | initializeListView(); // FIXME see above waste of memory | ||
160 | 144 | ||
@@ -176,2 +160,3 @@ void OFileSelector::setPermissionBarVisible( bool show ) | |||
176 | initializePerm(); | 160 | initializePerm(); |
161 | |||
177 | if( m_shPerm ) | 162 | if( m_shPerm ) |
@@ -187,6 +172,6 @@ void OFileSelector::setLineEditVisible( bool show ) | |||
187 | }else{ | 172 | }else{ |
188 | if( m_shLne && m_boxName != 0 ){ // check if we showed before this is the way to go | 173 | // check if we showed before this is the way to go |
174 | if( m_shLne && m_boxName != 0 ) | ||
189 | m_boxName->hide(); | 175 | m_boxName->hide(); |
190 | } | 176 | } |
191 | } | ||
192 | m_shLne = show; | 177 | m_shLne = show; |
@@ -198,7 +183,8 @@ void OFileSelector::setChooserVisible( bool show ) | |||
198 | initializeChooser(); | 183 | initializeChooser(); |
199 | if( m_shChooser ){ | 184 | |
185 | if( m_shChooser ) | ||
200 | m_boxView->hide(); | 186 | m_boxView->hide(); |
201 | }else{ | 187 | else |
202 | m_boxView->show(); | 188 | m_boxView->show(); |
203 | } | 189 | |
204 | } | 190 | } |
@@ -228,5 +214,6 @@ void OFileSelector::setMode(int mode) // FIXME do direct raising | |||
228 | } | 214 | } |
229 | void OFileSelector::setShowDirs(bool ) | 215 | void OFileSelector::setShowDirs(bool dir) |
230 | { | 216 | { |
231 | m_dir = true; | 217 | m_dir = dir; |
218 | if ( m_selector != Fileselector ) | ||
232 | reparse(); | 219 | reparse(); |
@@ -236,2 +223,4 @@ void OFileSelector::setCaseSensetive(bool caSe ) | |||
236 | m_case = caSe; | 223 | m_case = caSe; |
224 | |||
225 | if ( m_selector != Fileselector ) | ||
237 | reparse(); | 226 | reparse(); |
@@ -382,29 +371,14 @@ void OFileSelector::slotViewCheck(const QString &sel) | |||
382 | if( sel == tr("Documents" ) ){ | 371 | if( sel == tr("Documents" ) ){ |
383 | if( m_select == 0 ){ | 372 | initializeOldSelector(); |
384 | // autMime? fix cause now we use All and not the current | ||
385 | // yes currentMime fixes that for us | ||
386 | QString mime = currentMimeType(); | ||
387 | m_select = new FileSelector(mime, | ||
388 | m_stack, "fileselector", | ||
389 | m_shNew, m_shClose); | ||
390 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | ||
391 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | ||
392 | connect(m_select, SIGNAL(closeMe() ), | ||
393 | this, SIGNAL(closeMe() ) ); | ||
394 | //connect to close me and other signals as well | ||
395 | |||
396 | m_stack->addWidget( m_select, Normal ); | ||
397 | } | ||
398 | m_stack->raiseWidget( Normal ); | ||
399 | m_selector = Normal; | 373 | m_selector = Normal; |
374 | |||
400 | }else if( sel == tr("Files") ){ | 375 | }else if( sel == tr("Files") ){ |
401 | m_selector = Extended; | 376 | m_selector = Extended; |
402 | initializeListView(); | 377 | |
403 | reparse(); | 378 | // FIXME call the factory |
404 | m_stack->raiseWidget( Extended ); | 379 | //reparse(); |
405 | }else if( sel == tr("All Files") ){ | 380 | }else if( sel == tr("All Files") ){ |
406 | m_selector = ExtendedAll; | 381 | m_selector = ExtendedAll; |
407 | initializeListView(); | 382 | /* see above |
408 | reparse(); | 383 | reparse(); */ |
409 | m_stack->raiseWidget( Extended ); // same widget other QFileFilter | ||
410 | } | 384 | } |
@@ -415,5 +389,6 @@ QString OFileSelector::currentMimeType() const{ | |||
415 | QString currentText; | 389 | QString currentText; |
416 | if (m_shChooser ) | 390 | if (m_shChooser && m_mimeCheck ) |
417 | currentText = m_mimeCheck->currentText(); | 391 | currentText = m_mimeCheck->currentText(); |
418 | 392 | ||
393 | qWarning("CurrentText" + currentText ); | ||
419 | if (tr("All") == currentText ) return QString::null; | 394 | if (tr("All") == currentText ) return QString::null; |
@@ -424,3 +399,3 @@ QString OFileSelector::currentMimeType() const{ | |||
424 | it = m_mimetypes.find( currentText ); | 399 | it = m_mimetypes.find( currentText ); |
425 | if ( it == m_mimetypes.end() ) { | 400 | if ( it != m_mimetypes.end() ) { |
426 | mime = it.data().join(";"); | 401 | mime = it.data().join(";"); |
@@ -435,25 +410,4 @@ void OFileSelector::slotMimeCheck(const QString &mime) | |||
435 | if( m_selector == Normal ){ | 410 | if( m_selector == Normal ){ |
436 | //if( m_autoMime ){ | 411 | initializeOldSelector(); |
437 | QString newMimeType; | ||
438 | if (mime != tr("All") ) { | ||
439 | QMap<QString, QStringList>::Iterator it; | ||
440 | it = m_mimetypes.find(mime); | ||
441 | if ( it != m_mimetypes.end() ) { | ||
442 | newMimeType = it.data().join(";"); | ||
443 | }else{ | ||
444 | newMimeType = mime; | ||
445 | } | ||
446 | } | ||
447 | delete m_select; | ||
448 | m_select = new FileSelector( newMimeType, | ||
449 | m_stack, "fileselector", | ||
450 | m_shNew, m_shClose); | ||
451 | 412 | ||
452 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | ||
453 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | ||
454 | connect(m_select, SIGNAL(closeMe() ), | ||
455 | this, SIGNAL(closeMe() ) ); | ||
456 | //connect to close me and other signals as well | ||
457 | m_stack->addWidget( m_select, Normal ); | ||
458 | m_stack->raiseWidget( Normal ); | ||
459 | updateMimes(); | 413 | updateMimes(); |
@@ -461,3 +415,2 @@ void OFileSelector::slotMimeCheck(const QString &mime) | |||
461 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); | 415 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); |
462 | //} | ||
463 | }else{ // others | 416 | }else{ // others |
@@ -526,3 +479,7 @@ void OFileSelector::init() | |||
526 | 479 | ||
527 | m_stack = new QWidgetStack( this ); | 480 | /* take care of the main view... */ |
481 | initToolbar(); | ||
482 | |||
483 | /* initialize the file lister */ | ||
484 | initLister(); | ||
528 | if( m_selector == Normal ){ | 485 | if( m_selector == Normal ){ |
@@ -536,21 +493,6 @@ void OFileSelector::init() | |||
536 | } | 493 | } |
537 | m_select = new FileSelector(mime, | 494 | initializeOldSelector(); |
538 | m_stack, "fileselector", | 495 | }else{ |
539 | m_shNew, m_shClose); | 496 | initializeView(); |
540 | |||
541 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | ||
542 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | ||
543 | connect(m_select, SIGNAL(closeMe() ), | ||
544 | this, SIGNAL( closeMe() ) ); | ||
545 | //connect to close me and other signals as well | ||
546 | |||
547 | m_stack->addWidget( m_select, Normal ); | ||
548 | m_stack->raiseWidget( Normal ); | ||
549 | }else{ // we're in init so it will be EXTENDED or EXTENDED_ALL | ||
550 | // and initializeListview will take care of those | ||
551 | // toolbar get's generade in initializeListView | ||
552 | initializeListView( ); // will raise the widget as well | ||
553 | m_stack->raiseWidget( Extended ); | ||
554 | } | 497 | } |
555 | m_lay->addWidget( m_stack, 100 ); // add to the layout 10 = stretch | ||
556 | 498 | ||
@@ -605,2 +547,5 @@ void OFileSelector::initVars() | |||
605 | m_showPopup = false; | 547 | m_showPopup = false; |
548 | m_mainView = 0l; | ||
549 | m_fileView = 0l; | ||
550 | m_lister = 0l; | ||
606 | 551 | ||
@@ -625,3 +570,2 @@ void OFileSelector::initVars() | |||
625 | m_select = 0; | 570 | m_select = 0; |
626 | m_stack = 0; | ||
627 | m_lay = 0; | 571 | m_lay = 0; |
@@ -632,3 +576,2 @@ void OFileSelector::initVars() | |||
632 | m_boxView = 0; | 576 | m_boxView = 0; |
633 | m_custom = 0; | ||
634 | m_edit = 0; | 577 | m_edit = 0; |
@@ -716,2 +659,3 @@ void OFileSelector::initializeChooser() | |||
716 | /* update to custom views */ | 659 | /* update to custom views */ |
660 | |||
717 | updateMimeCheck(); | 661 | updateMimeCheck(); |
@@ -724,16 +668,15 @@ void OFileSelector::initializeChooser() | |||
724 | } | 668 | } |
725 | void OFileSelector::initializeListView() | 669 | /* generate the buttons for the toolbar */ |
726 | { | 670 | void OFileSelector::initToolbar() { |
727 | qWarning("initializeListView"); | 671 | m_mainView = new OFileSelectorMain( this ); |
728 | if( m_pseudo == 0 ){ | 672 | |
729 | qWarning("init"); | 673 | /* now generate the tool bar */ |
730 | m_pseudo = new QWidget( m_stack, "Pseudo Widget"); | 674 | qWarning( "toolbar" ); |
675 | m_pseudo = new QWidget( m_mainView, "Pseudo Widget" ); | ||
731 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); | 676 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); |
732 | // toolbar | 677 | |
733 | m_boxToolbar = new QHBox( m_pseudo ); | 678 | m_boxToolbar = new QHBox( m_pseudo ); |
734 | m_boxToolbar->setSpacing(0 ); // next to each other please | 679 | m_boxToolbar->setSpacing( 0 ); |
735 | 680 | ||
736 | // toolbar members | 681 | // tool bar members now |
737 | { | ||
738 | // location QComboBox | ||
739 | m_location = new QComboBox( m_boxToolbar ); | 682 | m_location = new QComboBox( m_boxToolbar ); |
@@ -745,4 +688,5 @@ void OFileSelector::initializeListView() | |||
745 | this, SLOT(locationComboChanged() ) ); | 688 | this, SLOT(locationComboChanged() ) ); |
689 | |||
746 | // UP Button | 690 | // UP Button |
747 | m_up = new QPushButton(Resource::loadIconSet("up"),"", | 691 | m_up = new QPushButton( Resource::loadIconSet("up"), QString::null, |
748 | m_boxToolbar,"cdUpButton"); | 692 | m_boxToolbar,"cdUpButton"); |
@@ -754,3 +698,3 @@ void OFileSelector::initializeListView() | |||
754 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , | 698 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , |
755 | "", m_boxToolbar); | 699 | QString::null, m_boxToolbar ); |
756 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); | 700 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); |
@@ -758,10 +702,13 @@ void OFileSelector::initializeListView() | |||
758 | m_homeButton->setFlat(TRUE); | 702 | m_homeButton->setFlat(TRUE); |
703 | |||
759 | // Documents Button | 704 | // Documents Button |
760 | m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", | 705 | m_docButton = new QPushButton( Resource::loadIconSet("DocsIcon"), |
761 | m_boxToolbar,"docsButton"); | 706 | QString::null, m_boxToolbar, |
707 | "docsButton" ); | ||
762 | m_docButton->setFixedSize( QSize( 20, 20 ) ); | 708 | m_docButton->setFixedSize( QSize( 20, 20 ) ); |
763 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); | 709 | m_docButton->setFlat( true ); |
764 | m_docButton->setFlat(TRUE); | 710 | connect( m_docButton, SIGNAL(clicked() ), |
711 | this, SLOT(slotDoc() ) ); | ||
765 | 712 | ||
766 | // Close button | 713 | // close button |
767 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", | 714 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", |
@@ -774,2 +721,24 @@ void OFileSelector::initializeListView() | |||
774 | 721 | ||
722 | /* init the locations */ | ||
723 | initLocations(); | ||
724 | |||
725 | if( !m_shTool ){ | ||
726 | m_location->hide( ); | ||
727 | m_up->hide( ); | ||
728 | m_homeButton->hide( ); | ||
729 | m_docButton->hide( ); | ||
730 | } | ||
731 | if(!m_shClose ) | ||
732 | m_close->hide(); | ||
733 | |||
734 | m_mainView->setToolbar( m_pseudo ); | ||
735 | m_lay->addWidget( m_mainView, 100 ); | ||
736 | } | ||
737 | /* initialize the OLocalLister */ | ||
738 | void OFileSelector::initLister() { | ||
739 | m_lister = new OLocalLister(this); | ||
740 | } | ||
741 | /* put default locations into the bar */ | ||
742 | void OFileSelector::initLocations () { | ||
743 | |||
775 | // let;s fill the Location ComboBox | 744 | // let;s fill the Location ComboBox |
@@ -786,21 +755,3 @@ void OFileSelector::initializeListView() | |||
786 | m_location->setCurrentItem( count ); | 755 | m_location->setCurrentItem( count ); |
787 | // due to the New and Close button we can not simply hide m_boxToolBar to not show it | ||
788 | if( !m_shTool ){ | ||
789 | m_location->hide( ); | ||
790 | m_up->hide( ); | ||
791 | m_homeButton->hide( ); | ||
792 | m_docButton->hide( ); | ||
793 | } | ||
794 | if(!m_shClose ) | ||
795 | m_close->hide(); | ||
796 | //if(!m_shNew) | ||
797 | //m_close->hide(); | ||
798 | |||
799 | } // off toolbar | ||
800 | // the Main ListView | ||
801 | // make a QWidgetStack first so Views can share the Toolbar | ||
802 | 756 | ||
803 | // m_pseudoLayout->addWidget( m_View, 288 ); | ||
804 | m_stack->addWidget( m_pseudo, Extended ); | ||
805 | } | ||
806 | } | 757 | } |
@@ -1004,6 +955,6 @@ void OFileSelector::reparse() | |||
1004 | OFileView* OFileSelector::currentView() { | 955 | OFileView* OFileSelector::currentView() { |
1005 | return 0l; | 956 | return m_fileView; |
1006 | } | 957 | } |
1007 | OFileView* OFileSelector::currentView() const{ | 958 | OFileView* OFileSelector::currentView() const{ |
1008 | return 0l; | 959 | return m_fileView; |
1009 | } | 960 | } |
@@ -1049,3 +1000,23 @@ QPixmap OFileSelector::pixmap( const QString& s ) { | |||
1049 | OLister* OFileSelector::currentLister()const { | 1000 | OLister* OFileSelector::currentLister()const { |
1050 | return 0l; | 1001 | return m_lister; |
1002 | } | ||
1003 | void OFileSelector::initializeOldSelector() { | ||
1004 | qWarning("initializeOldSelector"); | ||
1005 | |||
1006 | delete m_select; | ||
1007 | |||
1008 | // we need to initialize but keep the selected mimetype | ||
1009 | /* we default not to show close and new buttons */ | ||
1010 | QString mime = currentMimeType(); | ||
1011 | qWarning("MimeType " + mime ); | ||
1012 | m_select = new FileSelector( mime , | ||
1013 | m_mainView, "fileselector", | ||
1014 | FALSE, FALSE); | ||
1015 | |||
1016 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | ||
1017 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | ||
1018 | connect(m_select, SIGNAL(closeMe() ), | ||
1019 | this, SIGNAL(closeMe() ) ); | ||
1020 | //connect to close me and other signals as well | ||
1021 | m_mainView->setWidget( m_select ); | ||
1051 | } | 1022 | } |