summaryrefslogtreecommitdiff
path: root/libopie/ofileselector
authorzecke <zecke>2002-10-28 19:55:18 (UTC)
committer zecke <zecke>2002-10-28 19:55:18 (UTC)
commit3ba494eb02e72e1f9a732c46ec8085e843f01eca (patch) (unidiff)
treecdc0e7af342cd0e205ed4ae1c1da92ced3fd5774 /libopie/ofileselector
parente9d8023028b7c996d8ff2a68b87dfde19fcfa892 (diff)
downloadopie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.zip
opie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.tar.gz
opie-3ba494eb02e72e1f9a732c46ec8085e843f01eca.tar.bz2
This will probably not compile.. i did not even try to compile it
on my machine I changed the data flow to be more extandable the Olister class is now playing a bigger role it's dependant on doing some assembly of the filepath and changedirs. It now has also to take care of the location bar
Diffstat (limited to 'libopie/ofileselector') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector/ofilelistview.cpp20
-rw-r--r--libopie/ofileselector/ofilelistview.h15
-rw-r--r--libopie/ofileselector/ofileselector.cpp25
-rw-r--r--libopie/ofileselector/ofileselectoritem.cpp5
-rw-r--r--libopie/ofileselector/ofileselectoritem.h5
-rw-r--r--libopie/ofileselector/ofileview.cpp14
-rw-r--r--libopie/ofileselector/ofileview.h33
-rw-r--r--libopie/ofileselector/olister.cpp58
-rw-r--r--libopie/ofileselector/olister.h61
-rw-r--r--libopie/ofileselector/olocallister.cpp3
10 files changed, 199 insertions, 40 deletions
diff --git a/libopie/ofileselector/ofilelistview.cpp b/libopie/ofileselector/ofilelistview.cpp
index 691bf42..9cfdc48 100644
--- a/libopie/ofileselector/ofilelistview.cpp
+++ b/libopie/ofileselector/ofilelistview.cpp
@@ -43,12 +43,13 @@ OFileListView::~OFileListView() {
43void OFileListView::clear() { 43void OFileListView::clear() {
44 QListView::clear(); 44 QListView::clear();
45} 45}
46void OFileListView::addFile( const QPixmap& pix, 46void OFileListView::addFile( const QPixmap& pix,
47 const QString&, 47 const QString&,
48 QFileInfo* info, 48 QFileInfo* info,
49 const QString& /*extra*/,
49 bool isSymlink ) { 50 bool isSymlink ) {
50 QString dir; 51 QString dir;
51 QString name; 52 QString name;
52 bool locked = false; 53 bool locked = false;
53 54
54 dir = info->dirPath( true ); 55 dir = info->dirPath( true );
@@ -67,17 +68,21 @@ void OFileListView::addFile( const QPixmap& pix,
67 info->lastModified().toString(), 68 info->lastModified().toString(),
68 QString::number( info->size() ), 69 QString::number( info->size() ),
69 dir, locked ); 70 dir, locked );
70} 71}
71void OFileListView::addFile( const QPixmap&, 72void OFileListView::addFile( const QPixmap&,
72 const QString& /*mime*/, const QString& /*dir*/, 73 const QString& /*mime*/, const QString& /*dir*/,
73 const QString& /*file*/, bool /*isSyml*/ ) { 74 const QString& /*file*/,
75 const QString& /*extra*/,
76 bool /*isSyml*/ ) {
74 77
75} 78}
76void OFileListView::addDir( const QPixmap& pix, const QString&, 79void OFileListView::addDir( const QPixmap& pix, const QString&,
77 QFileInfo* info, bool symlink ) { 80 QFileInfo* info,
81 const QString& /*extra */,
82 bool symlink ) {
78 83
79 bool locked = false; 84 bool locked = false;
80 QString name; 85 QString name;
81 86
82 name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ; 87 name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ;
83 88
@@ -87,24 +92,29 @@ void OFileListView::addDir( const QPixmap& pix, const QString&,
87 info->dirPath( true ), locked, 92 info->dirPath( true ), locked,
88 true ); 93 true );
89 94
90} 95}
91void OFileListView::addDir( const QPixmap&, 96void OFileListView::addDir( const QPixmap&,
92 const QString& /*mime*/, const QString& /*dir*/, 97 const QString& /*mime*/, const QString& /*dir*/,
93 const QString& /*file*/, bool ) { 98 const QString& /*file*/,
99 const QString& /*extra*/,
100 bool ) {
94 101
95} 102}
96void OFileListView::addSymlink( const QPixmap&, 103void OFileListView::addSymlink( const QPixmap&,
97 const QString& /*mime*/, 104 const QString& /*mime*/,
98 QFileInfo* /*info*/, 105 QFileInfo* /*info*/,
106 const QString& /*extra*/,
99 bool /*isSym*/ ) { 107 bool /*isSym*/ ) {
100 108
101} 109}
102void OFileListView::addSymlink(const QPixmap&, 110void OFileListView::addSymlink(const QPixmap&,
103 const QString& /*m*/, const QString& /*path*/, 111 const QString& /*m*/, const QString& /*path*/,
104 const QString& /*file*/, bool /*isSym*/ ) { 112 const QString& /*file*/,
113 const QString& /*extra*/,
114 bool /*isSym*/ ) {
105 115
106} 116}
107void OFileListView::cd( const QString& ) { 117void OFileListView::cd( const QString& ) {
108 118
109} 119}
110QWidget* OFileListView::widget() { 120QWidget* OFileListView::widget() {
@@ -124,13 +134,13 @@ QStringList OFileListView::selectedNames()const {
124} 134}
125QString OFileListView::selectedPath()const { 135QString OFileListView::selectedPath()const {
126 return QString::null; 136 return QString::null;
127} 137}
128QStringList OFileListView::selectedPaths()const { 138QStringList OFileListView::selectedPaths()const {
129 QStringList list; 139 QStringList list;
130 list << selectedPath(); 140b list << selectedPath();
131 return list; 141 return list;
132} 142}
133int OFileListView::fileCount() { 143int OFileListView::fileCount() {
134 return childCount(); 144 return childCount();
135} 145}
136void OFileListView::sort() { 146void OFileListView::sort() {
diff --git a/libopie/ofileselector/ofilelistview.h b/libopie/ofileselector/ofilelistview.h
index c8cdfd1..0f625ec 100644
--- a/libopie/ofileselector/ofilelistview.h
+++ b/libopie/ofileselector/ofilelistview.h
@@ -13,34 +13,43 @@ public:
13 ~OFileListView(); 13 ~OFileListView();
14 14
15 void clear(); 15 void clear();
16 void addFile( const QPixmap&, 16 void addFile( const QPixmap&,
17 const QString& mine, 17 const QString& mine,
18 QFileInfo* info, 18 QFileInfo* info,
19 const QString& extra = QString::null,
19 bool isSymlink = FALSE ); 20 bool isSymlink = FALSE );
20 21
21 void addFile( const QPixmap&, 22 void addFile( const QPixmap&,
22 const QString& mime, 23 const QString& mime,
23 const QString& dir, 24 const QString& dir,
24 const QString& file, 25 const QString& file,
26 const QString& extra = QString::null,
25 bool = false ); 27 bool = false );
26 28
27 void addDir( const QPixmap&, 29 void addDir( const QPixmap&,
28 const QString& mime, 30 const QString& mime,
31 const QString& extra = QString::null,
29 QFileInfo* info, bool = FALSE ); 32 QFileInfo* info, bool = FALSE );
30 33
31 void addDir( const QPixmap&, 34 void addDir( const QPixmap&,
32 const QString& mime, const QString& dir, 35 const QString& mime, const QString& dir,
33 const QString& file, bool = FALSE ); 36 const QString& file,
37 const QString& extra = QString::null,
38 bool = FALSE );
34 39
35 void addSymlink( const QPixmap&, 40 void addSymlink( const QPixmap&,
36 const QString& mime, 41 const QString& mime,
37 QFileInfo* info, bool = FALSE ); 42 QFileInfo* info,
43 const QString& extra = QString::null,
44 bool = FALSE );
38 void addSymlink( const QPixmap&, 45 void addSymlink( const QPixmap&,
39 const QString& mine, const QString& path, 46 const QString& mine, const QString& path,
40 const QString& file, bool isSymlink = FALSE ); 47 const QString& file,
48 const QString& extra,
49 bool isSymlink = FALSE );
41 void cd( const QString& path ); 50 void cd( const QString& path );
42 QWidget* widget(); 51 QWidget* widget();
43 void sort(); 52 void sort();
44 53
45 QString selectedName()const ; 54 QString selectedName()const ;
46 QStringList selectedNames()const; 55 QStringList selectedNames()const;
diff --git a/libopie/ofileselector/ofileselector.cpp b/libopie/ofileselector/ofileselector.cpp
index 4ab744c..0ccb3cb 100644
--- a/libopie/ofileselector/ofileselector.cpp
+++ b/libopie/ofileselector/ofileselector.cpp
@@ -390,27 +390,26 @@ QString OFileSelector::currentMimeType() const{
390 } 390 }
391 } 391 }
392 return mime; 392 return mime;
393} 393}
394void OFileSelector::slotMimeCheck(const QString &mime) 394void OFileSelector::slotMimeCheck(const QString &mime)
395{ 395{
396 if( m_selector == Normal ){ 396 if( m_selector == Normal ){
397 initializeOldSelector(); 397 initializeOldSelector();
398 398
399 updateMimes(); 399 updateMimes();
400 updateMimeCheck(); 400 updateMimeCheck();
401 m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); 401 m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
402 }else{ // others 402 }else{ // others
403 qWarning("Mime %s", mime.latin1() ); 403 qWarning("Mime %s", mime.latin1() );
404 if(m_shChooser ){ 404 if(m_shChooser ){
405 qWarning("Current Text %s", m_mimeCheck->currentText().latin1() ); 405 qWarning("Current Text %s", m_mimeCheck->currentText().latin1() );
406 //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); 406 //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) );
407 }
408 reparse();
407 } 409 }
408 reparse();
409 }
410
411} 410}
412/* 411/*
413 * Ok if a non dir gets inserted into this combobox 412 * Ok if a non dir gets inserted into this combobox
414 * we need to change it 413 * we need to change it
415 * QFileInfo and dirPath will give us the right Dir 414 * QFileInfo and dirPath will give us the right Dir
416 */ 415 */
diff --git a/libopie/ofileselector/ofileselectoritem.cpp b/libopie/ofileselector/ofileselectoritem.cpp
index 1e745a1..d31046b 100644
--- a/libopie/ofileselector/ofileselectoritem.cpp
+++ b/libopie/ofileselector/ofileselectoritem.cpp
@@ -3,23 +3,25 @@
3OFileSelectorItem::OFileSelectorItem( QListView*view, 3OFileSelectorItem::OFileSelectorItem( QListView*view,
4 const QPixmap& pix, 4 const QPixmap& pix,
5 const QString& path, 5 const QString& path,
6 const QString& date, 6 const QString& date,
7 const QString& size, 7 const QString& size,
8 const QString& dir, 8 const QString& dir,
9 const QString& extra,
9 bool isLocked, 10 bool isLocked,
10 bool isDir ) 11 bool isDir )
11 : QListViewItem( view ) 12 : QListViewItem( view )
12{ 13{
13 setPixmap( 0, pix ); 14 setPixmap( 0, pix );
14 setText( 1, path ); 15 setText( 1, path );
15 setText( 2, size ); 16 setText( 2, size );
16 setText( 3, date ); 17 setText( 3, date );
17 m_dir = isDir; 18 m_dir = isDir;
18 m_locked = isLocked; 19 m_locked = isLocked;
19 m_dirStr = dir; 20 m_dirStr = dir;
21 m_extra = extra;
20} 22}
21OFileSelectorItem::~OFileSelectorItem() { 23OFileSelectorItem::~OFileSelectorItem() {
22} 24}
23bool OFileSelectorItem::isLocked()const { 25bool OFileSelectorItem::isLocked()const {
24 return m_locked; 26 return m_locked;
25} 27}
@@ -48,6 +50,9 @@ QString OFileSelectorItem::key( int id, bool ) {
48 }else if( id == 3 ){ // date 50 }else if( id == 3 ){ // date
49 return text(3); 51 return text(3);
50 } 52 }
51 53
52 return ke; 54 return ke;
53} 55}
56QString OFileSelector::extra()const {
57 return m_extra;
58}
diff --git a/libopie/ofileselector/ofileselectoritem.h b/libopie/ofileselector/ofileselectoritem.h
index 21460c4..81966ae 100644
--- a/libopie/ofileselector/ofileselectoritem.h
+++ b/libopie/ofileselector/ofileselectoritem.h
@@ -9,22 +9,27 @@ public:
9 const QPixmap&, 9 const QPixmap&,
10 const QString& path, 10 const QString& path,
11 const QString& date, 11 const QString& date,
12 const QString& size, 12 const QString& size,
13 const QString& dir, 13 const QString& dir,
14 bool isLocked, 14 bool isLocked,
15 const QString& extra,
15 bool isDir = false); 16 bool isDir = false);
16 ~OFileSelectorItem(); 17 ~OFileSelectorItem();
17 bool isLocked() const; 18 bool isLocked() const;
18 QString directory()const; 19 QString directory()const;
19 bool isDir()const; 20 bool isDir()const;
20 QString path()const; 21 QString path()const;
21 QString key(int id, bool ); 22 QString key(int id, bool );
23 QString extra()const;
22 24
23private: 25private:
24 bool m_locked : 1; 26 bool m_locked : 1;
25 bool m_dir : 1; 27 bool m_dir : 1;
26 QString m_dirStr; 28 QString m_dirStr;
29 QString m_extra;
27 30
31 class Private;
32 Private* d;
28}; 33};
29 34
30#endif 35#endif
diff --git a/libopie/ofileselector/ofileview.cpp b/libopie/ofileselector/ofileview.cpp
index 38f722c..72d2f60 100644
--- a/libopie/ofileselector/ofileview.cpp
+++ b/libopie/ofileselector/ofileview.cpp
@@ -9,26 +9,20 @@
9OFileView::OFileView( OFileSelector* sel) 9OFileView::OFileView( OFileSelector* sel)
10 : m_sel( sel ) 10 : m_sel( sel )
11{ 11{
12} 12}
13OFileView::~OFileView() { 13OFileView::~OFileView() {
14} 14}
15void OFileView::fileSelected( const QString& s ) { 15void OFileView::fileSelected( const QString& dir,const QString& file,const QString& extra ) {
16 m_sel->internFileSelected( s ); 16 m_sel->currentLister()->fileSelected( dir,file,extra );
17}
18void OFileView::fileSelected( const DocLnk& s) {
19 m_sel->internFileSelected( s );
20} 17}
21void OFileView::contextMenu() { 18void OFileView::contextMenu() {
22 m_sel->internContextMenu(); 19 m_sel->internContextMenu();
23} 20}
24void OFileView::changedDir( const QString& s) { 21void OFileView::changedDir( const QString& s, const QString& file, const QString& extra) {
25 m_sel->internChangedDir( s ); 22 m_sel->currentLister()->changedDir( s, file,extra );
26}
27void OFileView::changedDir( const QDir& d ) {
28 m_sel->internChangedDir( d );
29} 23}
30OFileSelector* OFileView::selector() const { 24OFileSelector* OFileView::selector() const {
31 return m_sel; 25 return m_sel;
32} 26}
33void OFileView::updateLine( const QString& str ) { 27void OFileView::updateLine( const QString& str ) {
34 if (m_sel->m_shLne ) 28 if (m_sel->m_shLne )
diff --git a/libopie/ofileselector/ofileview.h b/libopie/ofileselector/ofileview.h
index d7ea4a2..808587f 100644
--- a/libopie/ofileselector/ofileview.h
+++ b/libopie/ofileselector/ofileview.h
@@ -53,35 +53,43 @@ public:
53 virtual ~OFileView(); 53 virtual ~OFileView();
54 54
55 virtual void clear() = 0; 55 virtual void clear() = 0;
56 virtual void addFile(const QPixmap&, 56 virtual void addFile(const QPixmap&,
57 const QString &mine, 57 const QString &mine,
58 QFileInfo *info, 58 QFileInfo *info,
59 const QString& extra = QString::null,
59 bool isSymlink = FALSE ) = 0; 60 bool isSymlink = FALSE ) = 0;
60 61
61 virtual void addFile(const QPixmap&, 62 virtual void addFile(const QPixmap&,
62 const QString& mine, const QString& dir, 63 const QString& mine, const QString& dir,
63 const QString& file, bool = FALSE ) = 0; 64 const QString& file,
65 const QString& extra = QString::null,
66 bool = FALSE ) = 0;
64 67
65 virtual void addDir (const QPixmap&, 68 virtual void addDir (const QPixmap&,
66 const QString &mine, 69 const QString &mine,
67 QFileInfo *info, 70 QFileInfo *info,
71 const QString& extra = QString::null,
68 bool isSymlink = FALSE ) = 0; 72 bool isSymlink = FALSE ) = 0;
69 virtual void addDir (const QPixmap&, 73 virtual void addDir (const QPixmap&,
70 const QString& mine, const QString& dir, 74 const QString& mine, const QString& dir,
71 const QString& file, bool = FALSE) = 0; 75 const QString& file,
76 const QString& extra = QString::null,
77 bool = FALSE) = 0;
72 78
73 virtual void addSymlink(const QPixmap&, 79 virtual void addSymlink(const QPixmap&,
74 const QString &mime, 80 const QString &mime,
75 QFileInfo *info, 81 QFileInfo *info,
82 const QString& extra = QString::null,
76 bool isSymlink = FALSE ) = 0; 83 bool isSymlink = FALSE ) = 0;
77 84
78 virtual void addSymlink(const QPixmap&, 85 virtual void addSymlink(const QPixmap&,
79 const QString& mine, 86 const QString& mine,
80 const QString& path, 87 const QString& path,
81 const QString& file, 88 const QString& file,
89 const QString& extra = QString::null,
82 bool isSymlink = FALSE ) = 0; 90 bool isSymlink = FALSE ) = 0;
83 91
84 virtual void cd(const QString &path ) = 0; 92 virtual void cd(const QString &path ) = 0;
85 virtual QWidget* widget() = 0; 93 virtual QWidget* widget() = 0;
86 94
87 virtual QString selectedName()const = 0; 95 virtual QString selectedName()const = 0;
@@ -91,17 +99,28 @@ public:
91 virtual int fileCount() = 0; 99 virtual int fileCount() = 0;
92 virtual void sort() =0; 100 virtual void sort() =0;
93 101
94/*signals:*/ 102/*signals:*/
95protected: 103protected:
96 104
97 void fileSelected(const QString &); 105 /**
98 void fileSelected(const DocLnk & ); 106 * @param dir The dir name
99 void contextMenu(); 107 * @param file The file name
100 void changedDir(const QString &); 108 * @param extra The extra information
101 void changedDir(const QDir & ); 109 */
110 void fileSelected(const QString &dir, const QString& file, const QString& extra = QString::nulll);
111 void contextMenu();
112
113 /**
114 *
115 * @param dir The dir name
116 * @param file The file name
117 * @param extra The extra informations
118 */
119 void changedDir(const QString &dir, const QString& file, const QString& extra = QString::null);
120 void changedDir(const QDir & );
102 121
103 /* updates the file name line of the FileSelector */ 122 /* updates the file name line of the FileSelector */
104 void updateLine( const QString& ); 123 void updateLine( const QString& );
105 OFileSelector* selector()const; 124 OFileSelector* selector()const;
106 125
107private: 126private:
diff --git a/libopie/ofileselector/olister.cpp b/libopie/ofileselector/olister.cpp
index b6b03cd..378c69d 100644
--- a/libopie/ofileselector/olister.cpp
+++ b/libopie/ofileselector/olister.cpp
@@ -1,14 +1,16 @@
1#include <qcombobox.h>
2
1#include "olister.h" 3#include "olister.h"
2#include "ofileview.h" 4#include "ofileview.h"
3#include "opixmapprovider.h" 5#include "opixmapprovider.h"
4#include "ofileselector.h" 6#include "ofileselector.h"
5 7
6 8
7OLister::OLister( OFileSelector* view) 9OLister::OLister( OFileSelector* view)
8 : m_view( view ) 10 : m_view( view ), m_acc( 0l )
9{ 11{
10 m_prov = new OPixmapProvider( view ); 12 m_prov = new OPixmapProvider( view );
11} 13}
12OLister::~OLister() { 14OLister::~OLister() {
13 delete m_prov; 15 delete m_prov;
14} 16}
@@ -21,86 +23,140 @@ bool OLister::showFiles()const {
21} 23}
22bool OLister::showDirs()const { 24bool OLister::showDirs()const {
23 return m_view->showDirs(); 25 return m_view->showDirs();
24} 26}
25void OLister::addFile( const QString& mine, 27void OLister::addFile( const QString& mine,
26 QFileInfo* info, 28 QFileInfo* info,
29 const QString& extra,
27 bool isSymlink ) { 30 bool isSymlink ) {
28 int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink : 31 int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink :
29 OPixmapProvider::File; 32 OPixmapProvider::File;
30 QPixmap pix = provider()->pixmap(t, mine, 33 QPixmap pix = provider()->pixmap(t, mine,
31 info); 34 info);
32 view()->currentView()->addFile( pix, 35 view()->currentView()->addFile( pix,
33 mine, 36 mine,
34 info, 37 info,
38 extra,
35 isSymlink ); 39 isSymlink );
36} 40}
37void OLister::addFile( const QString& mine, 41void OLister::addFile( const QString& mine,
38 const QString& path, 42 const QString& path,
39 const QString& file, 43 const QString& file,
44 const QString& extra,
40 bool isSymlink ) { 45 bool isSymlink ) {
41 int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink : 46 int t = isSymlink ? OPixmapProvider::File | OPixmapProvider::Symlink :
42 OPixmapProvider::File; 47 OPixmapProvider::File;
43 48
44 QPixmap pix = provider()->pixmap(t, mine, path, file ); 49 QPixmap pix = provider()->pixmap(t, mine, path, file );
45 view()->currentView()->addFile( pix, 50 view()->currentView()->addFile( pix,
46 mine, 51 mine,
47 path, 52 path,
48 file, 53 file,
54 extra,
49 isSymlink ); 55 isSymlink );
50} 56}
51void OLister::addDir( const QString& mine, 57void OLister::addDir( const QString& mine,
52 QFileInfo* info, 58 QFileInfo* info,
59 const QString& extra,
53 bool isSymlink ) { 60 bool isSymlink ) {
54 int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink : 61 int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink :
55 OPixmapProvider::Dir; 62 OPixmapProvider::Dir;
56 QPixmap pix = provider()->pixmap(t, mine, info ); 63 QPixmap pix = provider()->pixmap(t, mine, info );
57 view()->currentView()->addDir( pix, 64 view()->currentView()->addDir( pix,
58 mine, 65 mine,
59 info, 66 info,
67 extra,
60 isSymlink ); 68 isSymlink );
61} 69}
62void OLister::addDir( const QString& mine, 70void OLister::addDir( const QString& mine,
63 const QString& path, 71 const QString& path,
64 const QString& dir, 72 const QString& dir,
73 const QString& extra,
65 bool isSymlink ) { 74 bool isSymlink ) {
66 75
67 int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink : 76 int t = isSymlink ? OPixmapProvider::Dir | OPixmapProvider::Symlink :
68 OPixmapProvider::Dir; 77 OPixmapProvider::Dir;
69 QPixmap pix = provider()->pixmap(t, mine, path, dir ); 78 QPixmap pix = provider()->pixmap(t, mine, path, dir );
70 79
71 view()->currentView()->addDir( pix, 80 view()->currentView()->addDir( pix,
72 mine, 81 mine,
73 path, 82 path,
74 dir, 83 dir,
84 extra,
75 isSymlink ); 85 isSymlink );
76} 86}
77void OLister::addSymlink( const QString& mine, 87void OLister::addSymlink( const QString& mine,
78 QFileInfo* info, 88 QFileInfo* info,
89 const QString& extra,
79 bool isSymlink ) { 90 bool isSymlink ) {
80 QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine, info ); 91 QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine, info );
81 view()->currentView()->addSymlink( pix, 92 view()->currentView()->addSymlink( pix,
82 mine, 93 mine,
83 info, 94 info,
95 extra,
84 isSymlink ); 96 isSymlink );
85} 97}
86void OLister::addSymlink( const QString& mine, 98void OLister::addSymlink( const QString& mine,
87 const QString& path, 99 const QString& path,
88 const QString& name, 100 const QString& name,
101 const QString& extra,
89 bool isSymlink ) { 102 bool isSymlink ) {
90 QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine, 103 QPixmap pix = provider()->pixmap( OPixmapProvider::Symlink, mine,
91 path, name ); 104 path, name );
92 view()->currentView()->addSymlink( pix, 105 view()->currentView()->addSymlink( pix,
93 mine, 106 mine,
94 path, 107 path,
95 name, 108 name,
109 extra,
96 isSymlink ); 110 isSymlink );
97} 111}
98OFileSelector* OLister::view() { 112OFileSelector* OLister::view() {
99 return m_view; 113 return m_view;
100} 114}
101OPixmapProvider* OLister::provider() { 115OPixmapProvider* OLister::provider() {
102 return m_prov; 116 return m_prov;
103} 117}
104bool OLister::compliesMime( const QString& mime ) { 118bool OLister::compliesMime( const QString& mime ) {
105 return view()->compliesMime( mime ); 119 return view()->compliesMime( mime );
106} 120}
121OListerCmbAccess* OLister::comboBox() {
122 if (!m_acc )
123 m_acc = new OListerCmbAccess( view()->m_location );
124
125 return m_acc;
126}
127
128
129OListerCmbAccess::OListerCmbAccess(QComboBox* box )
130 : m_cmb( cmb )
131{}
132OListerCmbAccess::~OListerCmbAccess() {
133}
134void OListerCmbAccess::clear() {
135 if ( m_cmb )
136 m_cmb->clear();
137}
138void OListerCmbAccess::setCurrentItem( const QString& add, bool FORCE_ADD) {
139 if ( !m_cmb ) return;
140
141
142 int c = m_cmb->count();
143 for ( int i = 0; i < m_cmb->count(); i++ ) {
144 if ( m_cmb->text(i) == add ) {
145 bo->setCurrentItem( i );
146 return;
147 }
148 }
149 m_cmb->insertItem(add );
150 m_cmb->setCurrentItem( c );
151}
152void OListerCmbAccess::insert( const QString& str ) {
153 if ( m_cmb )
154 m_cmb->insertItem( str );
155}
156QString OListerCmbAccess::currentText()const {
157 QString str;
158 if (m_cmb )
159 str = m_cmb->currentText();
160
161 return str;
162}
diff --git a/libopie/ofileselector/olister.h b/libopie/ofileselector/olister.h
index 0885525..79d5409 100644
--- a/libopie/ofileselector/olister.h
+++ b/libopie/ofileselector/olister.h
@@ -3,62 +3,123 @@
3 3
4#include <qfileinfo.h> 4#include <qfileinfo.h>
5#include <qmap.h> 5#include <qmap.h>
6#include <qstring.h> 6#include <qstring.h>
7#include <qstringlist.h> 7#include <qstringlist.h>
8 8
9class QComboBox;
9class OPixmapProvider; 10class OPixmapProvider;
10class OFileSelector; 11class OFileSelector;
12
13class OListerCmbAccess;
11/** 14/**
12 * lister is something like KIO but very 15 * lister is something like KIO but very
13 * very basic and currently only for 16 * very basic and currently only for
14 * populating our views. 17 * populating our views.
15 * This is a base class which needs to be implemented. 18 * This is a base class which needs to be implemented.
16 * @see OLocalLister for a filesystem based implementation 19 * @see OLocalLister for a filesystem based implementation
17 */ 20 */
21
18class OLister { 22class OLister {
19public: 23public:
20 OLister( OFileSelector* ); 24 OLister( OFileSelector* );
21 virtual ~OLister(); 25 virtual ~OLister();
22 virtual void reparse(const QString& path) = 0; 26 virtual void reparse(const QString& path) = 0;
23 27
24 /** 28 /**
25 * return a list of available mimetypes 29 * return a list of available mimetypes
26 */ 30 */
27 virtual QMap<QString, QStringList> mimeTypes( const QString& dir ) = 0; 31 virtual QMap<QString, QStringList> mimeTypes( const QString& dir ) = 0;
28 void setPixmapProvider( OPixmapProvider* ); 32 void setPixmapProvider( OPixmapProvider* );
29 33
34
35 /* some way a slot */
36 void fileSelected( const QString& dir, const QString& file, const QString& extra ) = 0;
37 void changeDir( const QString& dir, const QString& file, const QString& extra ) = 0;
30protected: 38protected:
39 /**
40 * I hate too big classes
41 * this is a way to group
42 * access to a ComboBox
43 * which might exist or
44 * not in a secure way
45 */
46 OListerCmbAccess* comboBox();
47
31 bool showFiles()const; 48 bool showFiles()const;
32 bool showDirs()const; 49 bool showDirs()const;
33 bool compliesMime( const QString& mime ); 50 bool compliesMime( const QString& mime );
34 void addFile( const QString& mine, 51 void addFile( const QString& mine,
35 QFileInfo*, 52 QFileInfo*,
53 const QString& extra = QString::null,
36 bool isSymlink = FALSE ); 54 bool isSymlink = FALSE );
55
37 void addFile( const QString& mine, 56 void addFile( const QString& mine,
38 const QString& path, 57 const QString& path,
39 const QString& file, 58 const QString& file,
59 const QString& extra = QString::null,
40 bool isSymlink = FALSE ); 60 bool isSymlink = FALSE );
41 void addDir( const QString& mine, 61 void addDir( const QString& mine,
42 QFileInfo*, 62 QFileInfo*,
43 bool isSymlink = FALSE ); 63 bool isSymlink = FALSE );
44 void addDir( const QString& mine, 64 void addDir( const QString& mine,
45 const QString& path, 65 const QString& path,
46 const QString& dir, 66 const QString& dir,
67 const QString& extra = QString::null,
47 bool isSymlink = FALSE ); 68 bool isSymlink = FALSE );
48 void addSymlink( const QString& mine, 69 void addSymlink( const QString& mine,
49 QFileInfo* info, 70 QFileInfo* info,
71 const QString& extra = QString::null,
50 bool isSymlink = FALSE); 72 bool isSymlink = FALSE);
51 void addSymlink( const QString& mine, 73 void addSymlink( const QString& mine,
52 const QString& path, 74 const QString& path,
53 const QString& name, 75 const QString& name,
76 const QString& extra = QString::null,
54 bool isSymlink = FALSE ); 77 bool isSymlink = FALSE );
55 OFileSelector* view(); 78 OFileSelector* view();
56 OPixmapProvider* provider(); 79 OPixmapProvider* provider();
57private: 80private:
58 OFileSelector* m_view; 81 OFileSelector* m_view;
59 OPixmapProvider* m_prov; 82 OPixmapProvider* m_prov;
83 OListerCmbAccess* m_acc;
84
85 class Private;
86 Private *d;
87};
88
89class OListerCmbAccess {
90 friend class OLister;
91public:
92 OListerCmbAccess( QComboBox* = 0l);
93 ~OListerCmbAccess();
94
95 /**
96 * clears the combobox
97 */
98 void clear();
99
100 /**
101 * set's @param add to be the current Item
102 * if the item is not present it'll be removed
103 */
104 void setCurrentItem( const QString& add, bool FORECE_ADD = TRUE );
105
106 /**
107 * inserts the the String at
108 * a non predictable position... The position is determined
109 * by the QComboBox code
110 */
111 void insert( const QString& );
112
113 /**
114 *
115 */
116 QString currentText()const;
60 117
118private:
119 class Private;
120 Private* d;
121 QComboBox* m_cmb;
61 122
62}; 123};
63 124
64#endif 125#endif
diff --git a/libopie/ofileselector/olocallister.cpp b/libopie/ofileselector/olocallister.cpp
index 6ffcf1e..2306b14 100644
--- a/libopie/ofileselector/olocallister.cpp
+++ b/libopie/ofileselector/olocallister.cpp
@@ -40,13 +40,14 @@ QMap<QString, QStringList> OLocalLister::mimeTypes( const QString& curDir ) {
40 40
41 ++it; 41 ++it;
42 } 42 }
43 43
44 return mimes; 44 return mimes;
45} 45}
46/* FIXME mimecheck 46/**
47 * FIXME mimecheck
47 * use mime check for that 48 * use mime check for that
48 * filter dirs 49 * filter dirs
49 * filter filters 50 * filter filters
50 * filter files 51 * filter files
51 * filter mimetypes 52 * filter mimetypes
52 */ 53 */