+ QString folder;
+ if (isMime) {
+ folder = url.path(KUrl::AddTrailingSlash);
+ // Check how many files we have
+ QDir dir(folder);
+ QStringList filters;
+ filters << "*." + extension.section('.', -1);
+ dir.setNameFilters(filters);
+ *list = dir.entryList(QDir::Files);
+ } else {
+ folder = url.directory(KUrl::AppendTrailingSlash);
+ QString filter = url.fileName();
+ QString ext = '.' + filter.section('.', -1);
+ filter = filter.section('.', 0, -2);
+ int fullSize = filter.size();
+ QString firstFrameData = filter;
+
+ while (filter.at(filter.size() - 1).isDigit()) {
+ filter.chop(1);
+ }
+
+ // Find number of digits in sequence
+ int precision = fullSize - filter.size();
+ int firstFrame = firstFrameData.right(precision).toInt();
+
+ // Check how many files we have
+ QDir dir(folder);
+ QString path;
+ int gap = 0;
+ for (int i = firstFrame; gap < 100; ++i) {
+ path = filter + QString::number(i).rightJustified(precision, '0', false) + ext;
+ if (dir.exists(path)) {
+ (*list).append(folder + path);
+ gap = 0;
+ } else {
+ gap++;
+ }
+ }
+ extension = filter + "%0" + QString::number(precision) + 'd' + ext;
+ if (firstFrame > 0) extension.append(QString("?begin:%1").arg(firstFrame));
+ }
+ kDebug() << "// FOUND " << (*list).count() << " items for " << url.path();
+ return folder + extension;