summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/ofileselector.cpp102
-rw-r--r--libopie/ofileselector/ofileselector.h8
2 files changed, 95 insertions, 15 deletions
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp
index 91a510f..7f38f5b 100644
--- a/libopie/ofileselector/ofileselector.cpp
+++ b/libopie/ofileselector/ofileselector.cpp
@@ -367,13 +367,7 @@ void OFileSelector::slotCancel()
367/* switch the views */ 367/* switch the views */
368void OFileSelector::slotViewCheck(const QString &sel) 368void OFileSelector::slotViewCheck(const QString &sel)
369{ 369{
370 if( sel == tr("Documents" ) ){ 370 setView( sel );
371 initializeOldSelector();
372 m_selector = Normal;
373
374 }else {
375;
376 }
377} 371}
378 372
379QString OFileSelector::currentMimeType() const{ 373QString OFileSelector::currentMimeType() const{
@@ -474,7 +468,6 @@ void OFileSelector::init()
474 initToolbar(); 468 initToolbar();
475 469
476 /* initialize the file lister */ 470 /* initialize the file lister */
477 initLister();
478 if( m_selector == Normal ){ 471 if( m_selector == Normal ){
479 QString mime; 472 QString mime;
480 if (!m_autoMime) { 473 if (!m_autoMime) {
@@ -648,6 +641,7 @@ void OFileSelector::initializeChooser()
648 641
649 642
650 updateMimeCheck(); 643 updateMimeCheck();
644 fillList();
651 645
652 connect( m_viewCheck, SIGNAL( activated(const QString & ) ), 646 connect( m_viewCheck, SIGNAL( activated(const QString & ) ),
653 this, SLOT( slotViewCheck(const QString & ) ) ); 647 this, SLOT( slotViewCheck(const QString & ) ) );
@@ -723,10 +717,6 @@ void OFileSelector::initToolbar() {
723 m_mainView->setToolbar( m_pseudo ); 717 m_mainView->setToolbar( m_pseudo );
724 m_lay->addWidget( m_mainView, 100 ); 718 m_lay->addWidget( m_mainView, 100 );
725} 719}
726/* initialize the OLocalLister */
727void OFileSelector::initLister() {
728 m_lister = new OLocalLister(this);
729}
730/* put default locations into the bar */ 720/* put default locations into the bar */
731void OFileSelector::initLocations () { 721void OFileSelector::initLocations () {
732 722
@@ -939,7 +929,54 @@ void OFileSelector::reparse()
939 } 929 }
940 // reenable painting and updates 930 // reenable painting and updates
941} 931}
942 932/* switch lister to @param lister */
933void OFileSelector::setLister(const QString& lister) {
934 QStringList listerList = factory()->lister();
935
936 if (listerList.contains(lister) ) {
937 delete (OLister*) m_lister;
938 m_lister = factory()->lister( lister, this );
939 }else if (!m_lister ) {
940 /*
941 * if we do not have a lister
942 * we need to take the default one
943 */
944 m_lister = new OLocalLister(this);
945 }
946 m_listerName = lister;
947}
948void OFileSelector::setView( const QString& lis ) {
949 qWarning("setView ");
950 fillList();
951 if ( lis == tr("Documents") ) {
952 m_selector = Normal;
953 delete m_lister;
954 delete m_fileView;
955 m_lister = 0l;
956 m_fileView = 0l;
957 initializeOldSelector();
958 }else {
959 QString list;
960
961 delete m_lister;
962 delete m_fileView;
963 delete m_select;
964 m_lister =0l;
965 m_fileView = 0l;
966 m_select = 0l;
967 if ( lis.startsWith("All") ) {
968 m_selector = ExtendedAll;
969 list = lis.mid(4 ).stripWhiteSpace();
970 } else{
971 list = lis;
972 m_selector = Extended;
973 }
974 setLister(m_listerName);
975 m_fileView = factory()->view( list, this, m_mainView );
976 m_mainView->setWidget( m_fileView->widget() );
977 reparse();
978 }
979}
943/* 980/*
944 * the factory 981 * the factory
945 */ 982 */
@@ -950,6 +987,27 @@ void OFileSelector::initFactory() {
950 /* the factory is just a dummy */ 987 /* the factory is just a dummy */
951 m_fileFactory->addView(tr("Documents"), newFileListView ); 988 m_fileFactory->addView(tr("Documents"), newFileListView );
952} 989}
990void OFileSelector::fillList() {
991 qWarning("fill list");
992 if (!m_viewCheck )
993 return;
994
995 m_viewCheck->clear();
996 QStringList list = factory()->views();
997 qWarning("views: " + list.join(";") );
998 for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
999 qWarning( (*it) );
1000 if ( (*it) == tr("Documents") ) {
1001 m_viewCheck->insertItem( (*it) );
1002 }else{
1003 m_viewCheck->insertItem( (*it) );
1004 m_viewCheck->insertItem( tr("All ") + (*it) );
1005 }
1006 }
1007}
1008OFileFactory* OFileSelector::factory() {
1009 return m_fileFactory;
1010}
953 1011
954 1012
955OFileView* OFileSelector::currentView() { 1013OFileView* OFileSelector::currentView() {
@@ -1022,3 +1080,21 @@ void OFileSelector::initializeOldSelector() {
1022 //connect to close me and other signals as well 1080 //connect to close me and other signals as well
1023 m_mainView->setWidget( m_select ); 1081 m_mainView->setWidget( m_select );
1024} 1082}
1083/*
1084 * initialize the listview
1085 * we will call fillList
1086 * setLister
1087 * with QString::null to get the default
1088 * setView with either Files or All Files
1089 * depending on Extended
1090 */
1091void OFileSelector::initializeView() {
1092 setLister(QString::null);
1093 fillList();
1094 if (m_selector == Extended ) {
1095 setView( tr("Files") );
1096 }else{
1097 setView( tr("All Files") );
1098 }
1099}
1100
diff --git a/libopie/ofileselector/ofileselector.h b/libopie/ofileselector/ofileselector.h
index 3e834fb..76c3ced 100644
--- a/libopie/ofileselector/ofileselector.h
+++ b/libopie/ofileselector/ofileselector.h
@@ -37,6 +37,7 @@
37#include <qpe/fileselector.h> 37#include <qpe/fileselector.h>
38 38
39#include <qdir.h> 39#include <qdir.h>
40#include <qguardedptr.h>
40#include <qwidget.h> 41#include <qwidget.h>
41#include <qstring.h> 42#include <qstring.h>
42#include <qpixmap.h> 43#include <qpixmap.h>
@@ -231,6 +232,8 @@ class OFileSelector : public QWidget {
231 */ 232 */
232 void setMode( int ); 233 void setMode( int );
233 234
235 void setLister( const QString& name );
236 void setView( const QString& all );
234 /** 237 /**
235 * whether or not to show dirs 238 * whether or not to show dirs
236 */ 239 */
@@ -377,6 +380,7 @@ class OFileSelector : public QWidget {
377 OFileFactory* m_fileFactory; 380 OFileFactory* m_fileFactory;
378 OFileSelectorMain* m_mainView; 381 OFileSelectorMain* m_mainView;
379 OLister* m_lister; 382 OLister* m_lister;
383 QString m_listerName;
380 OFileView* m_fileView; 384 OFileView* m_fileView;
381 FileSelector* m_select; 385 FileSelector* m_select;
382 int m_mode, m_selector; 386 int m_mode, m_selector;
@@ -446,10 +450,10 @@ class OFileSelector : public QWidget {
446 void updateMimeCheck(); 450 void updateMimeCheck();
447 451
448 void initializeOldSelector(); 452 void initializeOldSelector();
449 void initLister();
450 void initToolbar(); 453 void initToolbar();
451 void initLocations(); 454 void initLocations();
452 void initializeView() {}; // FIXME 455 void initializeView(); // FIXME
456 void fillList();
453 void initFactory(); 457 void initFactory();
454 /** 458 /**
455 * Returns the current mimetype 459 * Returns the current mimetype