-rw-r--r-- | libopie/ofileselector/olister.cpp | 72 | ||||
-rw-r--r-- | libopie/ofileselector/olister.cpp~ | 64 | ||||
-rw-r--r-- | libopie/ofileselector/olister.h | 59 | ||||
-rw-r--r-- | libopie/ofileselector/olister.h~ | 57 | ||||
-rw-r--r-- | libopie/ofileselector/olister.o | bin | 0 -> 24852 bytes | |||
-rw-r--r-- | libopie/ofileselector/olocallister.cpp | 118 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.cpp~ | 97 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.h | 14 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.h~ | 14 | ||||
-rw-r--r-- | libopie/ofileselector/olocallister.o | bin | 0 -> 42280 bytes |
10 files changed, 495 insertions, 0 deletions
diff --git a/libopie/ofileselector/olister.cpp b/libopie/ofileselector/olister.cpp new file mode 100644 index 0000000..6c43043 --- a/dev/null +++ b/libopie/ofileselector/olister.cpp | |||
@@ -0,0 +1,72 @@ | |||
1 | #include "olister.h" | ||
2 | #include "ofileview.h" | ||
3 | #include "ofileselector.h" | ||
4 | |||
5 | |||
6 | OLister::OLister( OFileSelector* view) | ||
7 | : m_view( view ) | ||
8 | { | ||
9 | } | ||
10 | OLister::~OLister() { | ||
11 | } | ||
12 | bool OLister::showFiles()const { | ||
13 | return m_view->showFiles(); | ||
14 | } | ||
15 | bool OLister::showDirs()const { | ||
16 | return m_view->showDirs(); | ||
17 | } | ||
18 | void OLister::addFile( const QString& mine, | ||
19 | QFileInfo* info, | ||
20 | bool isSymlink ) { | ||
21 | view()->currentView()->addFile( mine, | ||
22 | info, | ||
23 | isSymlink ); | ||
24 | } | ||
25 | void OLister::addFile( const QString& mine, | ||
26 | const QString& path, | ||
27 | const QString& file, | ||
28 | bool isSymlink ) { | ||
29 | view()->currentView()->addFile( mine, | ||
30 | path, | ||
31 | file, | ||
32 | isSymlink ); | ||
33 | } | ||
34 | void OLister::addDir( const QString& mine, | ||
35 | QFileInfo* info, | ||
36 | bool isSymlink ) { | ||
37 | |||
38 | view()->currentView()->addDir( mine, | ||
39 | info, | ||
40 | isSymlink ); | ||
41 | } | ||
42 | void OLister::addDir( const QString& mine, | ||
43 | const QString& path, | ||
44 | const QString& dir, | ||
45 | bool isSymlink ) { | ||
46 | view()->currentView()->addDir( mine, | ||
47 | path, | ||
48 | dir, | ||
49 | isSymlink ); | ||
50 | } | ||
51 | void OLister::addSymlink( const QString& mine, | ||
52 | QFileInfo* info, | ||
53 | bool isSymlink ) { | ||
54 | view()->currentView()->addSymlink( mine, | ||
55 | info, | ||
56 | isSymlink ); | ||
57 | } | ||
58 | void OLister::addSymlink( const QString& mine, | ||
59 | const QString& path, | ||
60 | const QString& name, | ||
61 | bool isSymlink ) { | ||
62 | view()->currentView()->addSymlink( mine, | ||
63 | path, | ||
64 | name, | ||
65 | isSymlink ); | ||
66 | } | ||
67 | OFileSelector* OLister::view() { | ||
68 | return m_view; | ||
69 | } | ||
70 | bool OLister::compliesMime( const QString& mime ) { | ||
71 | return view()->compliesMime( mime ); | ||
72 | } | ||
diff --git a/libopie/ofileselector/olister.cpp~ b/libopie/ofileselector/olister.cpp~ new file mode 100644 index 0000000..180422a --- a/dev/null +++ b/libopie/ofileselector/olister.cpp~ | |||
@@ -0,0 +1,64 @@ | |||
1 | #include "olister.h" | ||
2 | #include "ofileview.h" | ||
3 | #include "ofileselector.h" | ||
4 | |||
5 | |||
6 | OLister::OLister( OFileSelector* view) | ||
7 | : m_view( view ) | ||
8 | { | ||
9 | } | ||
10 | OLister::~OLister() { | ||
11 | } | ||
12 | void OLister::addFile( const QString& mine, | ||
13 | QFileInfo* info, | ||
14 | bool isSymlink ) { | ||
15 | view()->currentView()->addFile( mine, | ||
16 | info, | ||
17 | isSymlink ); | ||
18 | } | ||
19 | void OLister::addFile( const QString& mine, | ||
20 | const QString& path, | ||
21 | const QString& file, | ||
22 | bool isSymlink ) { | ||
23 | view()->currentView()->addFile( mine, | ||
24 | path, | ||
25 | file, | ||
26 | isSymlink ); | ||
27 | } | ||
28 | void OLister::addDir( const QString& mine, | ||
29 | QFileInfo* info, | ||
30 | bool isSymlink ) { | ||
31 | |||
32 | view()->currentView()->addDir( mine, | ||
33 | info, | ||
34 | isSymlink ); | ||
35 | } | ||
36 | void OLister::addDir( const QString& mine, | ||
37 | const QString& path, | ||
38 | const QString& dir, | ||
39 | bool isSymlink ) { | ||
40 | view()->currentView()->addDir( mine, | ||
41 | path, | ||
42 | dir, | ||
43 | isSymlink ); | ||
44 | } | ||
45 | void OLister::addSymlink( const QString& mine, | ||
46 | QFileInfo* info, | ||
47 | bool isSymlink ) { | ||
48 | view()->currentView()->addSymlink( mine, | ||
49 | info, | ||
50 | isSymlink ); | ||
51 | } | ||
52 | void OLister::addSymlink( const QString& mine, | ||
53 | const QString& path, | ||
54 | const QString& name, | ||
55 | bool isSymlink ) { | ||
56 | view()->currentView()->addSymlink( mine, | ||
57 | path, | ||
58 | name, | ||
59 | isSymlink ); | ||
60 | } | ||
61 | OFileSelector* OLister::view() { | ||
62 | return m_view; | ||
63 | } | ||
64 | |||
diff --git a/libopie/ofileselector/olister.h b/libopie/ofileselector/olister.h new file mode 100644 index 0000000..081b876 --- a/dev/null +++ b/libopie/ofileselector/olister.h | |||
@@ -0,0 +1,59 @@ | |||
1 | #ifndef OPIE_FILE_LISTER_H | ||
2 | #define OPIE_FILE_LISTER_H | ||
3 | |||
4 | #include <qfileinfo.h> | ||
5 | #include <qmap.h> | ||
6 | #include <qstring.h> | ||
7 | |||
8 | class OFileSelector; | ||
9 | /** | ||
10 | * lister is something like KIO but very | ||
11 | * very basic and currently only for | ||
12 | * populating our views. | ||
13 | * This is a base class which needs to be implemented. | ||
14 | * @see OLocalLister for a filesystem based implementation | ||
15 | */ | ||
16 | class OLister { | ||
17 | public: | ||
18 | OLister( OFileSelector* ); | ||
19 | virtual ~OLister(); | ||
20 | virtual void reparse(const QString& path) = 0; | ||
21 | |||
22 | /** | ||
23 | * return a list of available mimetypes | ||
24 | */ | ||
25 | virtual QMap<QString, QStringList> mimeTypes( const QString& dir ) = 0; | ||
26 | |||
27 | protected: | ||
28 | bool showFiles()const; | ||
29 | bool showDirs()const; | ||
30 | bool compliesMime( const QString& mime ); | ||
31 | void addFile( const QString& mine, | ||
32 | QFileInfo*, | ||
33 | bool isSymlink = FALSE ); | ||
34 | void addFile( const QString& mine, | ||
35 | const QString& path, | ||
36 | const QString& file, | ||
37 | bool isSymlink = FALSE ); | ||
38 | void addDir( const QString& mine, | ||
39 | QFileInfo*, | ||
40 | bool isSymlink = FALSE ); | ||
41 | void addDir( const QString& mine, | ||
42 | const QString& path, | ||
43 | const QString& dir, | ||
44 | bool isSymlink = FALSE ); | ||
45 | void addSymlink( const QString& mine, | ||
46 | QFileInfo* info, | ||
47 | bool isSymlink = FALSE); | ||
48 | void addSymlink( const QString& mine, | ||
49 | const QString& path, | ||
50 | const QString& name, | ||
51 | bool isSymlink = FALSE ); | ||
52 | OFileSelector* view(); | ||
53 | private: | ||
54 | OFileSelector* m_view; | ||
55 | |||
56 | |||
57 | }; | ||
58 | |||
59 | #endif | ||
diff --git a/libopie/ofileselector/olister.h~ b/libopie/ofileselector/olister.h~ new file mode 100644 index 0000000..bb6304c --- a/dev/null +++ b/libopie/ofileselector/olister.h~ | |||
@@ -0,0 +1,57 @@ | |||
1 | #ifndef OPIE_FILE_LISTER_H | ||
2 | #define OPIE_FILE_LISTER_H | ||
3 | |||
4 | #include <qfileinfo.h> | ||
5 | #include <qmap.h> | ||
6 | #include <qstring.h> | ||
7 | |||
8 | class OFileSelector; | ||
9 | /** | ||
10 | * lister is something like KIO but very | ||
11 | * very basic and currently only for | ||
12 | * populating our views. | ||
13 | * This is a base class which needs to be implemented. | ||
14 | * @see OLocalLister for a filesystem based implementation | ||
15 | */ | ||
16 | class OLister { | ||
17 | public: | ||
18 | OLister( OFileSelector* ); | ||
19 | virtual ~OLister(); | ||
20 | virtual void reparse(const QString& path) = 0; | ||
21 | |||
22 | /** | ||
23 | * return a list of available mimetypes | ||
24 | */ | ||
25 | virtual QMap<QString, QString> mimeTypes( const QString& dir ) = 0; | ||
26 | |||
27 | protected: | ||
28 | |||
29 | void addFile( const QString& mine, | ||
30 | QFileInfo*, | ||
31 | bool isSymlink = FALSE ); | ||
32 | void addFile( const QString& mine, | ||
33 | const QString& path, | ||
34 | const QString& file, | ||
35 | bool isSymlink = FALSE ); | ||
36 | void addDir( const QString& mine, | ||
37 | QFileInfo*, | ||
38 | bool isSymlink = FALSE ); | ||
39 | void addDir( const QString& mine, | ||
40 | const QString& path, | ||
41 | const QString& dir, | ||
42 | bool isSymlink = FALSE ); | ||
43 | void addSymlink( const QString& mine, | ||
44 | QFileInfo* info, | ||
45 | bool isSymlink = FALSE); | ||
46 | void addSymlink( const QString& mine, | ||
47 | const QString& path, | ||
48 | const QString& name, | ||
49 | bool isSymlink = FALSE ); | ||
50 | OFileSelector* view(); | ||
51 | private: | ||
52 | OFileSelector* m_view; | ||
53 | |||
54 | |||
55 | }; | ||
56 | |||
57 | #endif | ||
diff --git a/libopie/ofileselector/olister.o b/libopie/ofileselector/olister.o new file mode 100644 index 0000000..ca58d6c --- a/dev/null +++ b/libopie/ofileselector/olister.o | |||
Binary files differ | |||
diff --git a/libopie/ofileselector/olocallister.cpp b/libopie/ofileselector/olocallister.cpp new file mode 100644 index 0000000..6ffcf1e --- a/dev/null +++ b/libopie/ofileselector/olocallister.cpp | |||
@@ -0,0 +1,118 @@ | |||
1 | #include <qdir.h> | ||
2 | #include <qfileinfo.h> | ||
3 | #include <qmap.h> | ||
4 | |||
5 | #include <qpe/mimetype.h> | ||
6 | |||
7 | #include "ofileselector.h" | ||
8 | #include "olocallister.h" | ||
9 | |||
10 | OLocalLister::OLocalLister( OFileSelector* file ) | ||
11 | : OLister( file ) | ||
12 | { | ||
13 | } | ||
14 | OLocalLister::~OLocalLister() { | ||
15 | } | ||
16 | |||
17 | QMap<QString, QStringList> OLocalLister::mimeTypes( const QString& curDir ) { | ||
18 | QMap<QString, QStringList> mimes; | ||
19 | |||
20 | // let's find possible mimetypes | ||
21 | QDir dir( curDir ); | ||
22 | dir.setFilter( QDir::Files | QDir::Readable ); | ||
23 | dir.setSorting( QDir::Size ); | ||
24 | |||
25 | const QFileInfoList *list = dir.entryInfoList(); | ||
26 | QFileInfoListIterator it( *list ); | ||
27 | QFileInfo *fi; | ||
28 | |||
29 | while( (fi=it.current() ) ) { | ||
30 | /* skip .desktop */ | ||
31 | if( fi->extension() == QString::fromLatin1("desktop") ){ | ||
32 | ++it; | ||
33 | continue; | ||
34 | } | ||
35 | MimeType type( fi->absFilePath() ); | ||
36 | |||
37 | if( !mimes.contains( type.id() ) ){ | ||
38 | mimes.insert( type.id(), type.id() ); | ||
39 | } | ||
40 | |||
41 | ++it; | ||
42 | } | ||
43 | |||
44 | return mimes; | ||
45 | } | ||
46 | /* FIXME mimecheck | ||
47 | * use mime check for that | ||
48 | * filter dirs | ||
49 | * filter filters | ||
50 | * filter files | ||
51 | * filter mimetypes | ||
52 | */ | ||
53 | void OLocalLister::reparse( const QString& path ) { | ||
54 | QString currentMimeType; | ||
55 | QDir dir( path ); | ||
56 | |||
57 | dir.setSorting( view()->sorting() ); | ||
58 | dir.setFilter( view()->filter() ); | ||
59 | |||
60 | |||
61 | const QFileInfoList *list = dir.entryInfoList(); | ||
62 | QFileInfoListIterator it( *list ); | ||
63 | QFileInfo *fi; | ||
64 | |||
65 | while( (fi=it.current() ) ){ | ||
66 | |||
67 | if( fi->fileName() == QString::fromLatin1("..") || | ||
68 | fi->fileName() == QString::fromLatin1(".") ){ | ||
69 | ++it; | ||
70 | continue; | ||
71 | } | ||
72 | if( fi->isSymLink() ){ | ||
73 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); | ||
74 | /* | ||
75 | * 5 tries to prevent dos attack | ||
76 | */ | ||
77 | for( int i = 0; i<=4; i++) { | ||
78 | QFileInfo info( file ); | ||
79 | if( !info.exists() ){ | ||
80 | addSymlink( currentMimeType, fi, TRUE ); | ||
81 | break; | ||
82 | }else if( info.isDir() ){ | ||
83 | if (!showDirs() ) | ||
84 | break; | ||
85 | |||
86 | addDir( currentMimeType, fi, | ||
87 | TRUE ); | ||
88 | break; | ||
89 | }else if( info.isFile() ){ | ||
90 | /* if not show files skip it */ | ||
91 | if (!showFiles() ) | ||
92 | break; | ||
93 | |||
94 | /* check if we comply to the mimetype */ | ||
95 | MimeType type( info.absFilePath() ); | ||
96 | if (compliesMime( type.id() ) ) | ||
97 | addFile( currentMimeType, fi, TRUE ); | ||
98 | |||
99 | break; | ||
100 | }else if( info.isSymLink() ){ | ||
101 | file = info.dirPath(true ) + "/" + info.readLink() ; | ||
102 | break; | ||
103 | }else if( i == 4){ | ||
104 | addSymlink( currentMimeType, fi ); | ||
105 | } | ||
106 | } | ||
107 | |||
108 | }else if( fi->isDir() ){ | ||
109 | if (showDirs() ) | ||
110 | addDir( currentMimeType, fi ); | ||
111 | }else if( fi->isFile() ){ | ||
112 | if ( showFiles() ) | ||
113 | addFile( currentMimeType, fi ); | ||
114 | } | ||
115 | ++it; | ||
116 | } // of while loop | ||
117 | } | ||
118 | |||
diff --git a/libopie/ofileselector/olocallister.cpp~ b/libopie/ofileselector/olocallister.cpp~ new file mode 100644 index 0000000..b0e5410 --- a/dev/null +++ b/libopie/ofileselector/olocallister.cpp~ | |||
@@ -0,0 +1,97 @@ | |||
1 | #include <qdir.h> | ||
2 | #include <qfileinfo.h> | ||
3 | #include <qmap.h> | ||
4 | |||
5 | #include <qpe/mimetype.h> | ||
6 | |||
7 | #include "ofileselector.h" | ||
8 | #include "olocallister.h" | ||
9 | |||
10 | OLocalLister::OLocalLister( OFileSelector* file ) | ||
11 | : OLister( file ) | ||
12 | { | ||
13 | } | ||
14 | OLocalLister::~OLocalLister() { | ||
15 | } | ||
16 | |||
17 | QMap<QString, QString> OLocalLister::mimeTypes( const QString& curDir ) { | ||
18 | QMap<QString, QString> mimes; | ||
19 | |||
20 | // let's find possible mimetypes | ||
21 | QDir dir( curDir ); | ||
22 | dir.setFilter( QDir::Files | QDir::Readable ); | ||
23 | dir.setSorting( QDir::Size ); | ||
24 | |||
25 | const QFileInfoList *list = dir.entryInfoList(); | ||
26 | QFileInfoListIterator it( *list ); | ||
27 | QFileInfo *fi; | ||
28 | |||
29 | while( (fi=it.current() ) ) { | ||
30 | if( fi->extension() == QString::fromLatin1("desktop") ){ | ||
31 | ++it; | ||
32 | continue; | ||
33 | } | ||
34 | MimeType type( fi->absFilePath() ); | ||
35 | |||
36 | if( !mimes.contains( type.id() ) ){ | ||
37 | mimes.insert( type.id(), type.id() ); | ||
38 | } | ||
39 | |||
40 | ++it; | ||
41 | } | ||
42 | |||
43 | return mimes; | ||
44 | } | ||
45 | void OLocalLister::reparse( const QString& path ) { | ||
46 | QString currentMimeType; | ||
47 | QDir dir( path ); | ||
48 | |||
49 | dir.setSorting( view()->sorting() ); | ||
50 | dir.setFilter( view()->filter() ); | ||
51 | |||
52 | // now go through all files | ||
53 | const QFileInfoList *list = dir.entryInfoList(); | ||
54 | QFileInfoListIterator it( *list ); | ||
55 | QFileInfo *fi; | ||
56 | |||
57 | while( (fi=it.current() ) ){ | ||
58 | |||
59 | if( fi->fileName() == QString::fromLatin1("..") || | ||
60 | fi->fileName() == QString::fromLatin1(".") ){ | ||
61 | ++it; | ||
62 | continue; | ||
63 | } | ||
64 | if( fi->isSymLink() ){ | ||
65 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); | ||
66 | /* | ||
67 | * 5 tries to prevent dos attack | ||
68 | */ | ||
69 | for( int i = 0; i<=4; i++) { | ||
70 | QFileInfo info( file ); | ||
71 | if( !info.exists() ){ | ||
72 | addSymlink( currentMimeType, fi, TRUE ); | ||
73 | break; | ||
74 | }else if( info.isDir() ){ | ||
75 | addDir( currentMimeType, fi, | ||
76 | TRUE ); | ||
77 | break; | ||
78 | }else if( info.isFile() ){ | ||
79 | addFile( currentMimeType, fi, TRUE ); | ||
80 | break; | ||
81 | }else if( info.isSymLink() ){ | ||
82 | file = info.dirPath(true ) + "/" + info.readLink() ; | ||
83 | break; | ||
84 | }else if( i == 4){ | ||
85 | addSymlink( currentMimeType, fi ); | ||
86 | } | ||
87 | } | ||
88 | |||
89 | }else if( fi->isDir() ){ | ||
90 | addDir( currentMimeType, fi ); | ||
91 | }else if( fi->isFile() ){ | ||
92 | addFile( currentMimeType, fi ); | ||
93 | } | ||
94 | ++it; | ||
95 | } // of while loop | ||
96 | } | ||
97 | |||
diff --git a/libopie/ofileselector/olocallister.h b/libopie/ofileselector/olocallister.h new file mode 100644 index 0000000..0a06102 --- a/dev/null +++ b/libopie/ofileselector/olocallister.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef OPIE_LOCAL_LISTER | ||
2 | #define OPIE_LOCAL_LISTER | ||
3 | |||
4 | #include "olister.h" | ||
5 | |||
6 | class OLocalLister : public OLister { | ||
7 | public: | ||
8 | OLocalLister( OFileSelector* ); | ||
9 | ~OLocalLister(); | ||
10 | void reparse( const QString& path ); | ||
11 | QMap<QString, QStringList> mimeTypes(const QString& dir ); | ||
12 | }; | ||
13 | |||
14 | #endif | ||
diff --git a/libopie/ofileselector/olocallister.h~ b/libopie/ofileselector/olocallister.h~ new file mode 100644 index 0000000..a284b6e --- a/dev/null +++ b/libopie/ofileselector/olocallister.h~ | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef OPIE_LOCAL_LISTER | ||
2 | #define OPIE_LOCAL_LISTER | ||
3 | |||
4 | #include "olister.h" | ||
5 | |||
6 | class OLocalLister : public OLister { | ||
7 | public: | ||
8 | OLocalLister( OFileSelector* ); | ||
9 | ~OLocalLister(); | ||
10 | void reparse( const QString& path ); | ||
11 | QMap<QString, QString> mimeTypes(const QString& dir ); | ||
12 | }; | ||
13 | |||
14 | #endif | ||
diff --git a/libopie/ofileselector/olocallister.o b/libopie/ofileselector/olocallister.o new file mode 100644 index 0000000..1a4685d --- a/dev/null +++ b/libopie/ofileselector/olocallister.o | |||
Binary files differ | |||