diff options
author | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-09 17:09:15 +0100 |
---|---|---|
committer | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-10 13:12:35 +0000 |
commit | 156c4055a09b75543f65572d6315c469f10540a4 (patch) | |
tree | 8216222796b0bb37b99c920356beae91b7c49727 | |
parent | 4b7d2f2f6fd4f028e96e5f7629b9838e0d82b626 (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.cpp | 23 | ||||
-rw-r--r-- | src/plugins/ivimedia/media_simulator/mediaindexerbackend.h | 2 |
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; |