Diffstat (limited to 'libopie/ofileselector/opixmapprovider.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/ofileselector/opixmapprovider.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/libopie/ofileselector/opixmapprovider.cpp b/libopie/ofileselector/opixmapprovider.cpp new file mode 100644 index 0000000..b363e01 --- a/dev/null +++ b/libopie/ofileselector/opixmapprovider.cpp | |||
@@ -0,0 +1,83 @@ | |||
1 | #include <qfileinfo.h> | ||
2 | |||
3 | #include <qpe/mimetype.h> | ||
4 | #include <qpe/resource.h> | ||
5 | |||
6 | #include "opixmapprovider.h" | ||
7 | |||
8 | |||
9 | |||
10 | OPixmapProvider::OPixmapProvider( OFileSelector* sel ) | ||
11 | : m_sel( sel ){ | ||
12 | } | ||
13 | OPixmapProvider::~OPixmapProvider() { | ||
14 | } | ||
15 | QPixmap OPixmapProvider::pixmap( int t, const QString& , | ||
16 | QFileInfo* info, bool isL ) { | ||
17 | QPixmap pix; | ||
18 | bool sy = t & Symlink ? true : false; | ||
19 | switch (t ) { | ||
20 | case File: | ||
21 | pix = file( info, sy, isL ); | ||
22 | break; | ||
23 | case Dir: | ||
24 | pix = dir( info, sy, isL ); | ||
25 | break; | ||
26 | case Symlink: | ||
27 | pix = sym( info, isL ); | ||
28 | break; | ||
29 | } | ||
30 | return pix; | ||
31 | |||
32 | } | ||
33 | QPixmap OPixmapProvider::pixmap( int t, const QString& mime, | ||
34 | const QString& dir, const QString& file, | ||
35 | bool isL) { | ||
36 | QFileInfo *inf = new QFileInfo( dir + "/" + file ); | ||
37 | QPixmap pix = pixmap( t, mime, inf, isL ); | ||
38 | delete inf; | ||
39 | return pix; | ||
40 | } | ||
41 | OFileSelector* OPixmapProvider::selector() { | ||
42 | return m_sel; | ||
43 | } | ||
44 | QPixmap OPixmapProvider::file( QFileInfo* inf, bool , bool ) { | ||
45 | MimeType type( inf->absFilePath() ); | ||
46 | QPixmap pix = type.pixmap(); | ||
47 | |||
48 | if ( pix.isNull() ) | ||
49 | pix = Resource::loadPixmap( "UnknownDocument-14"); | ||
50 | |||
51 | if ( (selector()->mode() == OFileSelector::Open && | ||
52 | !inf->isReadable() ) || | ||
53 | (selector()->mode() == OFileSelector::Save && | ||
54 | !inf->isWritable() ) ) { | ||
55 | pix = Resource::loadPixmap( "locked" ); | ||
56 | } | ||
57 | return pix; | ||
58 | |||
59 | } | ||
60 | QPixmap OPixmapProvider::dir( QFileInfo* inf, bool sym, bool ) { | ||
61 | QPixmap pix; | ||
62 | /* | ||
63 | * look at selector()->mode() and determine | ||
64 | * if a dir is locked | ||
65 | */ | ||
66 | if ( (selector()->mode() == OFileSelector::Open && | ||
67 | !inf->isReadable() ) || | ||
68 | (selector()->mode() == OFileSelector::Save && | ||
69 | !inf->isWritable() ) ) { | ||
70 | if ( sym ) | ||
71 | pix = selector()->pixmap("symlinkedlocked"); | ||
72 | else | ||
73 | pix = Resource::loadPixmap("lockedfolder"); | ||
74 | }else { | ||
75 | pix = sym ? selector()->pixmap("lockedfolder") : | ||
76 | Resource::loadPixmap("folder"); | ||
77 | |||
78 | } | ||
79 | return pix; | ||
80 | } | ||
81 | QPixmap OPixmapProvider::sym( QFileInfo* , bool ) { | ||
82 | return Resource::loadPixmap("opie/symlink"); | ||
83 | } | ||