+QString SlideshowClip::selectedPath()
+{
+ QStringList list;
+ KUrl url;
+ if (m_view.method_mime->isChecked()) url = m_view.folder_url->url();
+ else url = m_view.pattern_url->url();
+ QString path = selectedPath(url, m_view.method_mime->isChecked(), ".all." + m_view.image_type->itemData(m_view.image_type->currentIndex()).toString(), &list);
+ m_count = list.count();
+ kDebug()<<"// SELECTED PATH: "<<path;
+ return path;
+}
+
+// static
+int SlideshowClip::getFrameNumberFromPath(const KUrl &path)
+{
+ QString filter = path.fileName();
+ filter = filter.section('.', 0, -2);
+ int ix = filter.size() - 1;
+ while (filter.at(ix).isDigit()) {
+ ix--;
+ }
+ return filter.remove(0, ix + 1).toInt();
+}
+
+// static
+QString SlideshowClip::selectedPath(const KUrl &url, bool isMime, QString extension, QStringList *list)
+{
+ 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;
+}
+
+
+QString SlideshowClip::clipName() const
+{