summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
blob: 3717297bae356e8837ad95546c5518ce63a1e499 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*
 * GPLv2 zecke@handhelds.org
 */

#include "dir_lister.h"

#include <lib/slavemaster.h>

/* OPIE */
#include <opie2/odebug.h>
#include <qpe/config.h>
#include <qpe/qpeapplication.h>
using namespace Opie::Core;

/* QT */
#include <qdir.h>
#include <qfileinfo.h>

Dir_DirLister::Dir_DirLister( bool list )
    : PDirLister( "dir_dir_lister" )
{
    m_allFiles = list;
    owarn << "All Files " << m_allFiles << "" << oendl;

    SlaveMaster* master = SlaveMaster::self();
    connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) );
    connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) );
    connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)),
             this, SIGNAL(sig_thumbInfo(const QString&, const QString&)) );
    connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)),
             this, SIGNAL(sig_fullInfo(const QString&, const QString&)) );
    connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)),
             this, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)) );

}

QString Dir_DirLister::defaultPath()const {
    return QPEApplication::documentDir();
}

QString Dir_DirLister::setStartPath( const QString& path ) {
    m_currentDir.cd( path );
    if (!m_currentDir.exists() )
        m_currentDir.cd(defaultPath());


    return m_currentDir.absPath();
}

QString Dir_DirLister::currentPath()const {
    return m_currentDir.absPath();
}


QStringList Dir_DirLister::folders()const {
    return m_currentDir.entryList( QDir::Dirs );
}

QStringList Dir_DirLister::files()const {
    if ( m_allFiles )
        return m_currentDir.entryList( QDir::Files );
    else {
        QStringList out;
        QStringList list = m_currentDir.entryList(  QDir::Files | QDir::Readable );
        for (QStringList::Iterator it = list.begin(); it != list.end();++it ) {
            QFileInfo inf( *it );
            QString ext = inf.extension(false).lower();
            if( ext == QString::fromLatin1("jpg") ||
                ext == QString::fromLatin1("jpeg" ) ||
                ext == QString::fromLatin1("png" ) ||
                ext == QString::fromLatin1("bmp" ) ||
                ext == QString::fromLatin1("gif" ) )
                out.append( *it );
        }
        return out;
    }
}

void Dir_DirLister::deleteImage( const QString& fl) {
    QFile::remove( fl );
}

void Dir_DirLister::thumbNail( const QString& str, int w, int h) {
    SlaveMaster::self()->thumbNail( str, w, h );
}

QImage Dir_DirLister::image( const QString& str, Factor f, int m) {
    return SlaveMaster::self()->image( str, f, m );
}

void Dir_DirLister::imageInfo( const QString& str) {
    SlaveMaster::self()->thumbInfo( str );
}

void Dir_DirLister::fullImageInfo( const QString& str) {
    SlaveMaster::self()->imageInfo( str );
}

QString Dir_DirLister::nameToFname(const QString&name)const
{
    return name;
}