~saruneko/umedia/master

« back to all changes in this revision

Viewing changes to songs.cpp

  • Committer: Diego Sarmentero
  • Date: 2012-12-25 11:58:28 UTC
  • Revision ID: git-v1:474b5516ccd8471c97dacbc2e3848dc8664aaf0c
adding folders recursively

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
void Songs::load_songs(const QString &file)
47
47
{
48
48
    QDir musicDir(file);
49
 
    QStringList files_list = musicDir.entryList(QStringList("*.mp3"), QDir::Files, QDir::Name);
 
49
    QStringList files_list = musicDir.entryList(QStringList("*.mp3"), QDir::Files | QDir::Readable, QDir::Name);
 
50
    QStringList dirs = musicDir.entryList(QStringList("*"), QDir::Dirs | QDir::NoDotAndDotDot | QDir::Readable, QDir::Name);
50
51
 
51
52
    int i;
52
53
    for(i = 0; i < files_list.size(); i++){
53
54
        QString path_song = musicDir.filePath(files_list[i]);
54
55
        this->append_song(path_song);
55
56
    }
 
57
    for(i = 0; i < dirs.size(); i++){
 
58
        QString path_folder = musicDir.filePath(dirs[i]);
 
59
        this->load_songs(path_folder);
 
60
    }
56
61
}
57
62
 
58
63
void Songs::load_songs(const QStringList &files)
66
71
void Songs::append_song(const QString& file)
67
72
{
68
73
    QFileInfo info(file);
69
 
    if(info.isFile() && info.isReadable()){
 
74
    if(info.isFile()){
70
75
        QDir dir(file);
71
76
        TagLib::FileRef f(file.toUtf8());
72
77
        QString artist(f.tag()->artist().toCString());
84
89
        this->save_image_for_file(artist, album, file.toUtf8());
85
90
        QMetaObject::invokeMethod(root, "add_song", Q_ARG(QVariant, title), Q_ARG(QVariant, artist),
86
91
                                  Q_ARG(QVariant, album), Q_ARG(QVariant, file));
 
92
    }else if(info.isDir()){
 
93
        this->load_songs(info.absolutePath());
87
94
    }
88
95
}
89
96