From 1b8140ba59caca788d49eb9be899f358521bd493 Mon Sep 17 00:00:00 2001 From: Doronin Stanislav Date: Wed, 30 Oct 2019 23:37:04 +0300 Subject: [PATCH] namematcher --- mugi-ffmpeg.pro | 4 +- src/lit.cpp | 576 ------------------------------------------- src/lit.h | 88 ------- src/mainwindow.cpp | 4 +- src/namematcher.cpp | 158 ++++++++++++ src/namematcher.h | 13 + src/sourcesmodel.cpp | 114 +++++---- src/sourcesmodel.h | 14 +- src/worker.cpp | 4 +- 9 files changed, 257 insertions(+), 718 deletions(-) delete mode 100644 src/lit.cpp delete mode 100644 src/lit.h create mode 100644 src/namematcher.cpp create mode 100644 src/namematcher.h diff --git a/mugi-ffmpeg.pro b/mugi-ffmpeg.pro index ec57a85..dc2c280 100755 --- a/mugi-ffmpeg.pro +++ b/mugi-ffmpeg.pro @@ -29,7 +29,7 @@ HEADERS += \ src/tasksmodel.h \ src/version.h \ src/worker.h \ - src/lit.h + src/namematcher.h SOURCES += \ src/action.cpp \ @@ -52,7 +52,7 @@ SOURCES += \ src/taskitemdelegate.cpp \ src/tasksmodel.cpp \ src/worker.cpp \ - src/lit.cpp + src/namematcher.cpp FORMS += \ src/mainwindow.ui diff --git a/src/lit.cpp b/src/lit.cpp deleted file mode 100644 index 553a9e2..0000000 --- a/src/lit.cpp +++ /dev/null @@ -1,576 +0,0 @@ -#include "lit.h" - -QList Lit::il() { - QList result; - return result; -} - -QList Lit::il(int v0) { - QList result; - result.append(v0); - return result; -} - -QList Lit::il(int v0, int v1) { - QList result; - result.append(v0); - result.append(v1); - return result; -} - -QList Lit::il(int v0, int v1, int v2) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4, int v5) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4, int v5, int v6) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - return result; -} - -QList Lit::il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - result.append(v9); - return result; -} - -QList Lit::bl() { - QList result; - return result; -} - -QList Lit::bl(bool v0) { - QList result; - result.append(v0); - return result; -} - -QList Lit::bl(bool v0, bool v1) { - QList result; - result.append(v0); - result.append(v1); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7, - bool v8) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - return result; -} - -QList Lit::bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7, bool v8, - bool v9) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - result.append(v9); - return result; -} - -QList Lit::dl() { - QList result; - return result; -} - -QList Lit::dl(double v0) { - QList result; - result.append(v0); - return result; -} - -QList Lit::dl(double v0, double v1) { - QList result; - result.append(v0); - result.append(v1); - return result; -} - -QList Lit::dl(double v0, double v1, double v2) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4, double v5) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7, double v8) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - return result; -} - -QList Lit::dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7, double v8, double v9) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - result.append(v9); - return result; -} - -QList Lit::sl() { - QList result; - return result; -} - -QList Lit::sl(const QString& v0) { - QList result; - result.append(v0); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1) { - QList result; - result.append(v0); - result.append(v1); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7, - const QString& v8) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - return result; -} - -QList Lit::sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7, - const QString& v8, const QString& v9) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - result.append(v9); - return result; -} - -QList Lit::vl() { - QList result; - return result; -} - -QList Lit::vl(const QVariant& v0) { - QList result; - result.append(v0); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1) { - QList result; - result.append(v0); - result.append(v1); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7, const QVariant& v8) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - return result; -} - -QList Lit::vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7, const QVariant& v8, - const QVariant& v9) { - QList result; - result.append(v0); - result.append(v1); - result.append(v2); - result.append(v3); - result.append(v4); - result.append(v5); - result.append(v6); - result.append(v7); - result.append(v8); - result.append(v9); - return result; -} diff --git a/src/lit.h b/src/lit.h deleted file mode 100644 index e51b019..0000000 --- a/src/lit.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef LIT_H -#define LIT_H -#include -#include -#include - -namespace Lit { - QList il(); - QList il(int v0); - QList il(int v0, int v1); - QList il(int v0, int v1, int v2); - QList il(int v0, int v1, int v2, int v3); - QList il(int v0, int v1, int v2, int v3, int v4); - QList il(int v0, int v1, int v2, int v3, int v4, int v5); - QList il(int v0, int v1, int v2, int v3, int v4, int v5, int v6); - QList il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7); - QList il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8); - QList il(int v0, int v1, int v2, int v3, int v4, int v5, int v6, int v7, int v8, int v9); - QList bl(); - QList bl(bool v0); - QList bl(bool v0, bool v1); - QList bl(bool v0, bool v1, bool v2); - QList bl(bool v0, bool v1, bool v2, bool v3); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7, bool v8); - QList bl(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7, bool v8, - bool v9); - QList dl(); - QList dl(double v0); - QList dl(double v0, double v1); - QList dl(double v0, double v1, double v2); - QList dl(double v0, double v1, double v2, double v3); - QList dl(double v0, double v1, double v2, double v3, double v4); - QList dl(double v0, double v1, double v2, double v3, double v4, double v5); - QList dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6); - QList dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7); - QList dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7, double v8); - QList dl(double v0, double v1, double v2, double v3, double v4, double v5, double v6, - double v7, double v8, double v9); - QList sl(); - QList sl(const QString& v0); - QList sl(const QString& v0, const QString& v1); - QList sl(const QString& v0, const QString& v1, const QString& v2); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7, - const QString& v8); - QList sl(const QString& v0, const QString& v1, const QString& v2, const QString& v3, - const QString& v4, const QString& v5, const QString& v6, const QString& v7, - const QString& v8, const QString& v9); - QList vl(); - QList vl(const QVariant& v0); - QList vl(const QVariant& v0, const QVariant& v1); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7, const QVariant& v8); - QList vl(const QVariant& v0, const QVariant& v1, const QVariant& v2, - const QVariant& v3, const QVariant& v4, const QVariant& v5, - const QVariant& v6, const QVariant& v7, const QVariant& v8, - const QVariant& v9); -} // namespace Lit -#endif // LIT_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c6ab384..c1e956b 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -213,12 +213,12 @@ void MainWindow::on_enqueue_clicked() { options = nonEmpty(options); - QStringList checked; + QList checked; for (int i=0;ifiles->count();i++) { QListWidgetItem* item = ui->files->item(i); if (item->checkState() == Qt::Checked) - checked << item->text(); + checked << i; } if (checked.isEmpty()) { diff --git a/src/namematcher.cpp b/src/namematcher.cpp new file mode 100644 index 0000000..0dc91f5 --- /dev/null +++ b/src/namematcher.cpp @@ -0,0 +1,158 @@ +#include "namematcher.h" + +#include + +namespace { + +class match { +public: + int pos1; + int pos2; + int len; + match() : pos1(-1), pos2(-1), len(-1) { + + } + match(int pos1, int pos2, int len) : pos1(pos1), pos2(pos2), len(len) { + + } +}; + +bool operator >(const match& m1, const match& m2) { + return m1.len > m2.len; +} + +int compare(const QString& name1, const QString& name2) { + QString name1_ = name1; + QString name2_ = name2; + + int score = 0; + while (true) { + match best; + for(int i=0;i -1) { + match current(i, p, j); + if (current > best) { + best = current; + } + } else { + break; + } + } + } + if (best.len < 1) { + break; + } + score += best.len; + + //qDebug() << "best" << name1_.mid(best.pos1, best.len); + + name1_ = name1_.mid(0,best.pos1) + name1_.mid(best.pos1 + best.len); + + name2_ = name2_.mid(0,best.pos2) + name2_.mid(best.pos2 + best.len); + + //qDebug() << "reduced" << name1_ << name2_; + } + + return score; +} + +QList > invertPairs(const QList >& pairs) { + QList > result; + for(int i=0;i(pairs[i].second,pairs[i].first); + } + return result; +} + +class score { +public: + int i; + int j; + int points; + score() : i(-1), j(-1), points(-1) { + + } + score(int i, int j, int points) : i(i), j(j), points(points) { + + } +}; + +score bestScore(const QList >& scores, + const QSet& used1, + const QSet& used2) { + score best; + for(int i=0;i& scores_ = scores[i]; + for(int j=0;j best.points) { + best = score(i,j,scores_[j]); + } + } + } + return best; +} + +} + +#if 0 +class CacheItem { + QStringList names1; + QStringList names2; + QList > result; + CacheItem() { + + } + CacheItem(const QStringList& names1, const QStringList& names2, const QList >& result) : + names1(names1), names2(names2), result(result){ + + } +}; +#endif + + +QList > NameMatcher::match(const QStringList& names1, const QStringList& names2) { + + if (names1.size() > names2.size()) { + return invertPairs(match(names2, names1)); + } + + QList > scores; + for(int i=0;i scores_; + for(int j=0;j used1; + QSet used2; + + QList > result; + for(int i=0;i(best.i, best.j); + used1 << best.i; + used2 << best.j; + } + + qSort(result.begin(), result.end(), [](const QPair& v1, const QPair& v2){ + return v1.first < v2.first; + }); + + return result; +} + + diff --git a/src/namematcher.h b/src/namematcher.h new file mode 100644 index 0000000..2be7ff9 --- /dev/null +++ b/src/namematcher.h @@ -0,0 +1,13 @@ +#ifndef STRINGMATCHER_H +#define STRINGMATCHER_H + +#include + +class NameMatcher +{ +public: + NameMatcher(); + static QList > match(const QStringList &names1, const QStringList &names2); +}; + +#endif // STRINGMATCHER_H diff --git a/src/sourcesmodel.cpp b/src/sourcesmodel.cpp index 9a13d43..895b0df 100755 --- a/src/sourcesmodel.cpp +++ b/src/sourcesmodel.cpp @@ -1,11 +1,11 @@ #include "sourcesmodel.h" - #include #include #include #include "fileext.h" +#include "namematcher.h" SourcesModel::SourcesModel(QObject *parent) : QStandardItemModel(0,2,parent) @@ -28,6 +28,7 @@ QStringList SourcesModel::findFiles(const QString& path, const QStringList& exts } } } + qSort(result.begin(), result.end()); return result; } @@ -41,31 +42,23 @@ QStringList SourcesModel::findFiles(const QString& path, Type type) { return QStringList(); } -QMap SourcesModel::mapBaseNamePath(const QStringList& files) { - QMap res; - QString path; - foreach(path,files) { - res[QFileInfo(path).completeBaseName()] = path; - } - return res; -} - - bool SourcesModel::removeRows(int row, int count, const QModelIndex &parent) { for(int i=0;i()); + mFiles.insert(row,QStringList()); } return QStandardItemModel::insertRows(row,count,parent); } @@ -100,61 +93,94 @@ void SourcesModel::addSource(SourcesModel::Type type, const QString &path) appendRow(type, path); } -void SourcesModel::appendRow(Type type, const QString& path) { +void SourcesModel::appendRow(Type type, const QString& path, const QStringList& files) { int row = rowCount(); insertRow(row); setData(this->index(rowCount()-1,ColumnType),type); setData(this->index(rowCount()-1,ColumnPath),path); - mFiles[row] = mapBaseNamePath(findFiles(path,type)); + mFiles[row] = files; + updateMapping(); } -QStringList SourcesModel::files() const -{ - if (mFiles.size() == 0) - return QStringList(); +void SourcesModel::appendRow(Type type, const QString& path) { - QStringList keys = mFiles[0].keys(); - if (mFiles.size() == 1) { - qSort(keys); - return keys; + QStringList files = findFiles(path,type); + appendRow(type, path, files); +} + +QMap toMap(const QList >& vs) { + QMap result; + for(int i=0;i SourcesModel::tasks(const QStringList &checked, +QList SourcesModel::tasks(const QList &checked, const QStringList &options, const QString &output) const { QList res; - QString item; - foreach(item,checked) { + foreach (int i, checked) { + int index = mIndexes[i]; QStringList cmd; - QString output_ = output; cmd << "ffmpeg"; - for(int i=0;i +#include class SourcesModel : public QStandardItemModel { @@ -28,15 +29,16 @@ class SourcesModel : public QStandardItemModel QStringList files() const; - QList tasks(const QStringList &checked, + QList tasks(const QList &checked, const QStringList& options, const QString& output) const; void appendRow(Type type, const QString &path); + void appendRow(Type type, const QString &path, const QStringList &files); static QStringList findFiles(const QString &path, const QStringList &exts); static QStringList findFiles(const QString& path, Type type); - static QMap mapBaseNamePath(const QStringList &files); + //static QMap mapBaseNamePath(const QStringList &files); bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); @@ -45,10 +47,16 @@ class SourcesModel : public QStandardItemModel Type type(int row); + + protected: - QList< QMap > mFiles; + QList mFiles; + QList > mMapping; + QList mIndexes; + void updateMapping(); + void updateIndexes(); signals: void sourceRemoved(); diff --git a/src/worker.cpp b/src/worker.cpp index bf07c7c..b4b2da6 100755 --- a/src/worker.cpp +++ b/src/worker.cpp @@ -4,8 +4,6 @@ #include #include -#include "lit.h" - #include Worker::Worker(QObject *parent) : @@ -99,7 +97,7 @@ void Worker::onProbe(QString path) QProcess p; QString cmd = mProbe; - QStringList args = Lit::sl("-i",path); + QStringList args = {"-i",path}; //p.setReadChannel(QProcess::StandardError);