author | zecke <zecke> | 2002-10-06 15:40:28 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-06 15:40:28 (UTC) |
commit | 8d3e63d01c9a37dfd27f3b6bd9429c8a0274d90f (patch) (unidiff) | |
tree | fb73b4dd7035b56fd7271a689e80bc2c2067c719 | |
parent | 24393565a48df6bb65516c25c124280724af9a75 (diff) | |
download | opie-8d3e63d01c9a37dfd27f3b6bd9429c8a0274d90f.zip opie-8d3e63d01c9a37dfd27f3b6bd9429c8a0274d90f.tar.gz opie-8d3e63d01c9a37dfd27f3b6bd9429c8a0274d90f.tar.bz2 |
As promised here is the switching
It's working as expected
I'll clean up it a bit fix some UI bugs
and then put it into the libopie.pro
-rw-r--r-- | libopie/ofileselector/ofileselector.cpp | 102 | ||||
-rw-r--r-- | libopie/ofileselector/ofileselector.h | 8 |
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 | |||
@@ -364,19 +364,13 @@ void OFileSelector::slotCancel() | |||
364 | { | 364 | { |
365 | emit cancel(); | 365 | emit cancel(); |
366 | } | 366 | } |
367 | /* switch the views */ | 367 | /* switch the views */ |
368 | void OFileSelector::slotViewCheck(const QString &sel) | 368 | void 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 | ||
379 | QString OFileSelector::currentMimeType() const{ | 373 | QString OFileSelector::currentMimeType() const{ |
380 | QString mime; | 374 | QString mime; |
381 | QString currentText; | 375 | QString currentText; |
382 | if (m_shChooser && m_mimeCheck ) | 376 | if (m_shChooser && m_mimeCheck ) |
@@ -471,13 +465,12 @@ void OFileSelector::init() | |||
471 | m_lay->setSpacing(0 ); | 465 | m_lay->setSpacing(0 ); |
472 | 466 | ||
473 | /* take care of the main view... */ | 467 | /* take care of the main view... */ |
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) { |
481 | if (!m_mimetypes.isEmpty() ) { | 474 | if (!m_mimetypes.isEmpty() ) { |
482 | QMap<QString, QStringList>::Iterator it; | 475 | QMap<QString, QStringList>::Iterator it; |
483 | it = m_mimetypes.begin(); // cause we're in the init | 476 | it = m_mimetypes.begin(); // cause we're in the init |
@@ -645,12 +638,13 @@ void OFileSelector::initializeChooser() | |||
645 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); | 638 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); |
646 | m_boxView->setSpacing( 8 ); | 639 | m_boxView->setSpacing( 8 ); |
647 | m_lay->addWidget(m_boxView, 0 ); | 640 | m_lay->addWidget(m_boxView, 0 ); |
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 & ) ) ); |
654 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), | 648 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), |
655 | this, SLOT( slotMimeCheck( const QString & ) ) ); | 649 | this, SLOT( slotMimeCheck( const QString & ) ) ); |
656 | } | 650 | } |
@@ -720,16 +714,12 @@ void OFileSelector::initToolbar() { | |||
720 | if(!m_shClose ) | 714 | if(!m_shClose ) |
721 | m_close->hide(); | 715 | m_close->hide(); |
722 | 716 | ||
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 */ | ||
727 | void OFileSelector::initLister() { | ||
728 | m_lister = new OLocalLister(this); | ||
729 | } | ||
730 | /* put default locations into the bar */ | 720 | /* put default locations into the bar */ |
731 | void OFileSelector::initLocations () { | 721 | void OFileSelector::initLocations () { |
732 | 722 | ||
733 | // let;s fill the Location ComboBox | 723 | // let;s fill the Location ComboBox |
734 | StorageInfo storage; | 724 | StorageInfo storage; |
735 | const QList<FileSystem> &fs = storage.fileSystems(); | 725 | const QList<FileSystem> &fs = storage.fileSystems(); |
@@ -936,23 +926,91 @@ void OFileSelector::reparse() | |||
936 | if( m_shTool ){ | 926 | if( m_shTool ){ |
937 | m_location->insertItem( m_currentDir ); | 927 | m_location->insertItem( m_currentDir ); |
938 | 928 | ||
939 | } | 929 | } |
940 | // reenable painting and updates | 930 | // reenable painting and updates |
941 | } | 931 | } |
942 | 932 | /* switch lister to @param lister */ | |
933 | void 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 | } | ||
948 | void 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 | */ |
946 | void OFileSelector::initFactory() { | 983 | void OFileSelector::initFactory() { |
947 | m_fileFactory = new OFileFactory(); | 984 | m_fileFactory = new OFileFactory(); |
948 | m_fileFactory->addLister(tr("Files"), newLocalLister ); | 985 | m_fileFactory->addLister(tr("Files"), newLocalLister ); |
949 | m_fileFactory->addView(tr("List View"), newFileListView ); | 986 | m_fileFactory->addView(tr("List View"), newFileListView ); |
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 | } |
990 | void 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 | } | ||
1008 | OFileFactory* OFileSelector::factory() { | ||
1009 | return m_fileFactory; | ||
1010 | } | ||
953 | 1011 | ||
954 | 1012 | ||
955 | OFileView* OFileSelector::currentView() { | 1013 | OFileView* OFileSelector::currentView() { |
956 | return m_fileView; | 1014 | return m_fileView; |
957 | } | 1015 | } |
958 | OFileView* OFileSelector::currentView() const{ | 1016 | OFileView* OFileSelector::currentView() const{ |
@@ -1019,6 +1077,24 @@ void OFileSelector::initializeOldSelector() { | |||
1019 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 1077 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
1020 | connect(m_select, SIGNAL(closeMe() ), | 1078 | connect(m_select, SIGNAL(closeMe() ), |
1021 | this, SIGNAL(closeMe() ) ); | 1079 | this, SIGNAL(closeMe() ) ); |
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 | */ | ||
1091 | void 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 | |||
@@ -34,12 +34,13 @@ | |||
34 | #ifndef opiefileselector_h | 34 | #ifndef opiefileselector_h |
35 | #define opiefileselector_h | 35 | #define opiefileselector_h |
36 | 36 | ||
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> |
43 | #include <qstringlist.h> | 44 | #include <qstringlist.h> |
44 | #include <qmap.h> | 45 | #include <qmap.h> |
45 | #include <qvaluelist.h> | 46 | #include <qvaluelist.h> |
@@ -228,12 +229,14 @@ class OFileSelector : public QWidget { | |||
228 | 229 | ||
229 | /** | 230 | /** |
230 | * set the Selector Mode | 231 | * set the Selector Mode |
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 | */ |
237 | bool showDirs()const { return m_dir; } | 240 | bool showDirs()const { return m_dir; } |
238 | 241 | ||
239 | /** | 242 | /** |
@@ -374,12 +377,13 @@ class OFileSelector : public QWidget { | |||
374 | 377 | ||
375 | private: | 378 | private: |
376 | 379 | ||
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; |
383 | QComboBox *m_location, | 387 | QComboBox *m_location, |
384 | *m_mimeCheck, | 388 | *m_mimeCheck, |
385 | *m_viewCheck; | 389 | *m_viewCheck; |
@@ -443,16 +447,16 @@ class OFileSelector : public QWidget { | |||
443 | /** | 447 | /** |
444 | * Updates the QComboBox with the current mimetypes | 448 | * Updates the QComboBox with the current mimetypes |
445 | */ | 449 | */ |
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 |
456 | */ | 460 | */ |
457 | QString currentMimeType()const; | 461 | QString currentMimeType()const; |
458 | class OFileSelectorPrivate; | 462 | class OFileSelectorPrivate; |