Changeset View
Changeset View
Standalone View
Standalone View
src/tm/tmscanapi.cpp
Show First 20 Lines • Show All 67 Lines • ▼ Show 20 Line(s) | 66 | { | |||
---|---|---|---|---|---|
68 | setTotalAmount(KJob::Files, jobs.size()); | 68 | setTotalAmount(KJob::Files, jobs.size()); | ||
69 | 69 | | |||
70 | if (!jobs.size()) | 70 | if (!jobs.size()) | ||
71 | kill(KJob::EmitResult); | 71 | kill(KJob::EmitResult); | ||
72 | } | 72 | } | ||
73 | 73 | | |||
74 | void RecursiveScanJob::scanJobFinished(ScanJobFeedingBack* j) | 74 | void RecursiveScanJob::scanJobFinished(ScanJobFeedingBack* j) | ||
75 | { | 75 | { | ||
76 | j->deleteLater(); | | |||
77 | ScanJob* job = static_cast<ScanJob*>(j); | 76 | ScanJob* job = static_cast<ScanJob*>(j); | ||
78 | 77 | | |||
79 | setProcessedAmount(KJob::Files, processedAmount(KJob::Files) + 1); | 78 | setProcessedAmount(KJob::Files, processedAmount(KJob::Files) + 1); | ||
80 | emitPercent(processedAmount(KJob::Files), totalAmount(KJob::Files)); | 79 | emitPercent(processedAmount(KJob::Files), totalAmount(KJob::Files)); | ||
81 | 80 | | |||
82 | setProcessedAmount(KJob::Bytes, processedAmount(KJob::Bytes) + job->m_size); | 81 | setProcessedAmount(KJob::Bytes, processedAmount(KJob::Bytes) + job->m_size); | ||
83 | if (m_time.elapsed()) emitSpeed(1000 * processedAmount(KJob::Bytes) / m_time.elapsed()); | 82 | if (m_time.elapsed()) emitSpeed(1000 * processedAmount(KJob::Bytes) / m_time.elapsed()); | ||
83 | } | ||||
84 | 84 | | |||
85 | 85 | void RecursiveScanJob::scanJobDestroyed() | |||
86 | if (processedAmount(KJob::Files) == totalAmount(KJob::Files)) { | 86 | { | ||
87 | m_destroyedJobs += 1; | ||||
88 | if (m_destroyedJobs == totalAmount(KJob::Files)) { | ||||
87 | emitResult(); | 89 | emitResult(); | ||
88 | qCDebug(LOKALIZE_LOG) << "finished in" << m_time.elapsed() << "msecs"; | | |||
89 | } | 90 | } | ||
90 | } | 91 | } | ||
91 | 92 | | |||
92 | void RecursiveScanJob::start() | 93 | void RecursiveScanJob::start() | ||
93 | { | 94 | { | ||
94 | m_time.start(); | 95 | m_time.start(); | ||
95 | emit description(this, | 96 | emit description(this, | ||
96 | i18n("Adding files to Lokalize translation memory"), | 97 | i18n("Adding files to Lokalize translation memory"), | ||
Show All 12 Lines | 102 | { | |||
109 | int i = filePaths.size(); | 110 | int i = filePaths.size(); | ||
110 | while (--i >= 0) { | 111 | while (--i >= 0) { | ||
111 | const QString& filePath = filePaths.at(i); | 112 | const QString& filePath = filePaths.at(i); | ||
112 | if (filePath.isEmpty()) | 113 | if (filePath.isEmpty()) | ||
113 | continue; | 114 | continue; | ||
114 | if (Catalog::extIsSupported(filePath)) { | 115 | if (Catalog::extIsSupported(filePath)) { | ||
115 | ScanJobFeedingBack* job = new ScanJobFeedingBack(filePath, dbName); | 116 | ScanJobFeedingBack* job = new ScanJobFeedingBack(filePath, dbName); | ||
116 | QObject::connect(job, &ScanJobFeedingBack::done, metaJob, &RecursiveScanJob::scanJobFinished); | 117 | QObject::connect(job, &ScanJobFeedingBack::done, metaJob, &RecursiveScanJob::scanJobFinished); | ||
118 | QObject::connect(job, &QObject::destroyed, metaJob, &RecursiveScanJob::scanJobDestroyed); | ||||
117 | TM::threadPool()->start(job, SCAN); | 119 | TM::threadPool()->start(job, SCAN); | ||
118 | result.append(job); | 120 | result.append(job); | ||
119 | } else | 121 | } else | ||
120 | result += doScanRecursive(QDir(filePath), dbName, metaJob); | 122 | result += doScanRecursive(QDir(filePath), dbName, metaJob); | ||
121 | } | 123 | } | ||
122 | 124 | | |||
123 | metaJob->setJobs(result); | 125 | metaJob->setJobs(result); | ||
124 | DBFilesModel::instance()->openDB(dbName); //update stats after it finishes | 126 | DBFilesModel::instance()->openDB(dbName); //update stats after it finishes | ||
▲ Show 20 Lines • Show All 58 Lines • Show Last 20 Lines |