aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2017-03-09 17:09:15 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2017-03-10 13:12:35 +0000
commit156c4055a09b75543f65572d6315c469f10540a4 (patch)
tree8216222796b0bb37b99c920356beae91b7c49727
parent4b7d2f2f6fd4f028e96e5f7629b9838e0d82b626 (diff)
media_simulator: Fix reporting of state an progress of the indexer
Change-Id: Ie8ace2a3bc2bd814042119a6fb8d5b61f7f8d8cc Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
-rw-r--r--src/plugins/ivimedia/media_simulator/mediaindexerbackend.cpp23
-rw-r--r--src/plugins/ivimedia/media_simulator/mediaindexerbackend.h2
2 files changed, 18 insertions, 7 deletions
diff --git a/src/plugins/ivimedia/media_simulator/mediaindexerbackend.cpp b/src/plugins/ivimedia/media_simulator/mediaindexerbackend.cpp
index 3c59df8..1dd890e 100644
--- a/src/plugins/ivimedia/media_simulator/mediaindexerbackend.cpp
+++ b/src/plugins/ivimedia/media_simulator/mediaindexerbackend.cpp
@@ -64,6 +64,7 @@
MediaIndexerBackend::MediaIndexerBackend(const QSqlDatabase &database, QObject *parent)
: QIviMediaIndexerControlBackendInterface(parent)
, m_db(database)
+ , m_state(QIviMediaIndexerControl::Idle)
{
connect(&m_watcher, SIGNAL(finished()), this, SLOT(onScanFinished()));
@@ -84,6 +85,7 @@ MediaIndexerBackend::MediaIndexerBackend(const QSqlDatabase &database, QObject *
void MediaIndexerBackend::initialize()
{
+ emit stateChanged(m_state);
}
void MediaIndexerBackend::pause()
@@ -118,7 +120,7 @@ void MediaIndexerBackend::removeMediaFolder(const QString &path)
bool MediaIndexerBackend::scanWorker(const QString &mediaDir, bool removeData)
{
- emit stateChanged(QIviMediaIndexerControl::Active);
+ setState(QIviMediaIndexerControl::Active);
if (removeData) {
qInfo() << "Removing content: " << mediaDir;
@@ -127,7 +129,7 @@ bool MediaIndexerBackend::scanWorker(const QString &mediaDir, bool removeData)
bool ret = query.exec(QString("DELETE from track WHERE file LIKE '%1%'").arg(mediaDir));
if (!ret) {
- emit stateChanged(QIviMediaIndexerControl::Error);
+ setState(QIviMediaIndexerControl::Error);
qInfo() << "remove query:" << query.lastError().text();
return false;
}
@@ -151,7 +153,7 @@ bool MediaIndexerBackend::scanWorker(const QString &mediaDir, bool removeData)
"UNIQUE(file))");
if (!ret) {
- emit stateChanged(QIviMediaIndexerControl::Error);
+ setState(QIviMediaIndexerControl::Error);
qInfo() << "create query:" << query.lastError().text();
return false;
}
@@ -216,14 +218,14 @@ bool MediaIndexerBackend::scanWorker(const QString &mediaDir, bool removeData)
bool ret = query.exec();
if (!ret) {
- emit stateChanged(QIviMediaIndexerControl::Error);
+ setState(QIviMediaIndexerControl::Error);
qWarning() << "insert query:" << query.lastQuery() << query.lastError().text();
return false;
} else {
- emit progressChanged(currentFileIndex/totalFileCount);
+ emit progressChanged(qreal(currentFileIndex)/qreal(totalFileCount));
}
#else
- emit progressChanged(currentFileIndex/totalFileCount);
+ emit progressChanged(qreal(currentFileIndex)/qreal(totalFileCount));
#endif
currentFileIndex++;
@@ -240,6 +242,7 @@ void MediaIndexerBackend::onScanFinished()
}
qInfo() << "Scanning done";
+ emit progressChanged(1);
emit indexingDone();
#ifndef QT_TAGLIB
@@ -248,7 +251,7 @@ void MediaIndexerBackend::onScanFinished()
//If the last run didn't succeed we will stay in the Error state
if (m_watcher.future().result())
- emit stateChanged(QIviMediaIndexerControl::Idle);
+ setState(QIviMediaIndexerControl::Idle);
}
void MediaIndexerBackend::scanNext()
@@ -260,3 +263,9 @@ void MediaIndexerBackend::scanNext()
m_currentFolder = data.folder;
m_watcher.setFuture(QtConcurrent::run(this, &MediaIndexerBackend::scanWorker, m_currentFolder, data.remove));
}
+
+void MediaIndexerBackend::setState(QIviMediaIndexerControl::State state)
+{
+ m_state = state;
+ emit stateChanged(state);
+}
diff --git a/src/plugins/ivimedia/media_simulator/mediaindexerbackend.h b/src/plugins/ivimedia/media_simulator/mediaindexerbackend.h
index 7d45e44..23a759a 100644
--- a/src/plugins/ivimedia/media_simulator/mediaindexerbackend.h
+++ b/src/plugins/ivimedia/media_simulator/mediaindexerbackend.h
@@ -72,6 +72,7 @@ private slots:
private:
void scanNext();
+ void setState(QIviMediaIndexerControl::State state);
QSqlDatabase m_db;
struct ScanData {
@@ -79,6 +80,7 @@ private:
QString folder;
};
+ QIviMediaIndexerControl::State m_state;
QQueue<ScanData> m_folderQueue;
QString m_currentFolder;
QFutureWatcher<bool> m_watcher;