--- src/helper.cpp.orig 2009-01-05 03:32:14.000000000 +0200 +++ src/helper.cpp 2009-09-12 22:37:01.000000000 +0300 @@ -205,31 +205,48 @@ QString extension = fi.suffix(); QString path = fi.absolutePath(); - QRegExp rx("^.*(\\d+)"); + QRegExp rx; - if ( rx.indexIn(basename) > -1) { - int digits = rx.cap(1).length(); - int current_number = rx.cap(1).toInt(); - - //qDebug("Helper::searchForConsecutiveFiles: filename ends with a number (%s)", rx.cap(1).toUtf8().constData()); - qDebug("Helper::searchForConsecutiveFiles: filename ends with a number (%d)", current_number); - qDebug("Helper::searchForConsecutiveFiles: trying to find consecutive files"); - - QString template_name = path + "/" + basename.left(basename.length() - digits); - //qDebug("BaseGui::newMediaLoaded: name without digits: '%s'", template_name.toUtf8().constData()); - - current_number++; - QString next_name = template_name + QString("%1").arg(current_number, digits, 10, QLatin1Char('0')) +"."+ extension; - qDebug("Helper::searchForConsecutiveFiles: looking for '%s'", next_name.toUtf8().constData()); - - while (QFile::exists(next_name)) { - qDebug("Helper::searchForConsecutiveFiles: '%s' exists, added to the list", next_name.toUtf8().constData()); - files_to_add.append(next_name); - current_number++; - next_name = template_name + QString("%1").arg(current_number, digits, 10, QLatin1Char('0')) +"."+ extension; - qDebug("Helper::searchForConsecutiveFiles: looking for '%s'", next_name.toUtf8().constData()); - } - } + rx.setPattern("\\d"); + int npos = rx.indexIn(basename); + int tpos = 0; + int blength; + + if(npos > -1){ + rx.setPattern("[a-zA-Z]"); + tpos = rx.indexIn(basename,npos); + if(tpos > npos) + blength = tpos; + else + blength = npos; + }else{ + blength = basename.length() / 2; + } + QString rxPattern = basename.left(blength); + + rxPattern = QRegExp::escape(rxPattern); + //make whitespace vary + rxPattern.replace(" ","\\s+"); + rxPattern.insert(0,QLatin1Char('^')); + rxPattern += QLatin1String(".*\\.") + extension + QLatin1Char('$'); + rx.setPattern(rxPattern); + qDebug("Regex: %s",rxPattern.toUtf8().constData()); + + QString searchPattern("*."); + searchPattern += extension; + + QDir d(path, searchPattern, QDir::Name | QDir::IgnoreCase, QDir::Files | QDir::Hidden); + QFileInfoList list = d.entryInfoList(); + QFileInfo fileinfo; + + + for(int x = 0; x < list.size(); ++x){ + fileinfo = list.at(x); + if( rx.exactMatch(fileinfo.fileName()) ){ + files_to_add << fileinfo.absoluteFilePath(); + } + + } return files_to_add; }