Support "Waiting to scan"

This state has been introduced
with https://github.com/syncthing/syncthing/pull/4888
This commit is contained in:
Martchus 2019-09-27 16:41:24 +02:00
parent 6243a4c2fd
commit 31e7e4e79e
7 changed files with 17 additions and 2 deletions

View File

@ -805,6 +805,7 @@ void SyncthingConnection::setStatus(SyncthingStatus status)
case SyncthingDirStatus::Synchronizing:
synchronizing = true;
break;
case SyncthingDirStatus::WaitingToScan:
case SyncthingDirStatus::Scanning:
scanning = true;
break;

View File

@ -1962,7 +1962,7 @@ void SyncthingConnection::readLocalFolderCompletion(DateTime eventTime, const QJ
dirInfo.completionPercentage = globalStats.bytes ? static_cast<int>((globalStats.bytes - neededStats.bytes) * 100 / globalStats.bytes) : 100;
emit dirStatusChanged(dirInfo, index);
if (neededStats.isNull() && previouslyUpdated && (neededStats != previouslyNeeded || globalStats != previouslyGlobal)
&& dirInfo.status != SyncthingDirStatus::Scanning) {
&& dirInfo.status != SyncthingDirStatus::WaitingToScan && dirInfo.status != SyncthingDirStatus::Scanning) {
emit dirCompleted(eventTime, dirInfo, index);
}
}

View File

@ -17,6 +17,8 @@ QString statusString(SyncthingDirStatus status)
return QCoreApplication::translate("SyncthingDirStatus", "unknown");
case SyncthingDirStatus::Idle:
return QCoreApplication::translate("SyncthingDirStatus", "idle");
case SyncthingDirStatus::WaitingToScan:
return QCoreApplication::translate("SyncthingDirStatus", "waiting to scan");
case SyncthingDirStatus::Scanning:
return QCoreApplication::translate("SyncthingDirStatus", "scanning");
case SyncthingDirStatus::PreparingToSync:
@ -101,6 +103,8 @@ bool SyncthingDir::assignStatus(const QString &statusStr, CppUtilities::DateTime
if (statusStr == QLatin1String("idle")) {
completionPercentage = 0;
newStatus = SyncthingDirStatus::Idle;
} else if (statusStr == QLatin1String("scan-waiting")) {
newStatus = SyncthingDirStatus::WaitingToScan;
} else if (statusStr == QLatin1String("scanning")) {
newStatus = SyncthingDirStatus::Scanning;
} else if (statusStr == QLatin1String("sync-preparing")) {

View File

@ -12,7 +12,7 @@
namespace Data {
enum class SyncthingDirStatus { Unknown, Idle, Scanning, PreparingToSync, Synchronizing, OutOfSync };
enum class SyncthingDirStatus { Unknown, Idle, WaitingToScan, Scanning, PreparingToSync, Synchronizing, OutOfSync };
QString LIB_SYNCTHING_CONNECTOR_EXPORT statusString(SyncthingDirStatus status);

View File

@ -203,6 +203,10 @@ void MiscTests::testSyncthingDir()
const DateTime lastScanTime(DateTime::now());
updateTime += TimeSpan::fromSeconds(5);
CPPUNIT_ASSERT(dir.assignStatus(SyncthingDirStatus::WaitingToScan, updateTime));
CPPUNIT_ASSERT(dir.lastScanTime.isNull());
CPPUNIT_ASSERT_EQUAL(QStringLiteral("waiting to scan"), dir.statusString());
updateTime += TimeSpan::fromSeconds(5);
CPPUNIT_ASSERT(dir.assignStatus(SyncthingDirStatus::Scanning, updateTime));
CPPUNIT_ASSERT(dir.lastScanTime.isNull());
CPPUNIT_ASSERT_EQUAL(QStringLiteral("scanning"), dir.statusString());

View File

@ -51,6 +51,7 @@ bool SyncthingDirActions::updateStatus(const SyncthingDir &dir)
case SyncthingDirStatus::Idle:
m_statusAction.setIcon(statusIcons().idling);
break;
case SyncthingDirStatus::WaitingToScan:
case SyncthingDirStatus::Scanning:
m_statusAction.setIcon(statusIcons().scanninig);
break;

View File

@ -314,6 +314,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
return statusIcons().disconnected;
case SyncthingDirStatus::Idle:
return statusIcons().idling;
case SyncthingDirStatus::WaitingToScan:
case SyncthingDirStatus::Scanning:
return statusIcons().scanninig;
case SyncthingDirStatus::PreparingToSync:
@ -459,6 +460,8 @@ QString SyncthingDirectoryModel::dirStatusString(const SyncthingDir &dir)
return dir.rawStatus.isEmpty() ? tr("Unknown status") : QString(dir.rawStatus);
case SyncthingDirStatus::Idle:
return tr("Idle");
case SyncthingDirStatus::WaitingToScan:
return tr("Waiting to scan");
case SyncthingDirStatus::Scanning:
if (dir.scanningPercentage > 0) {
if (dir.scanningRate != 0.0) {
@ -490,6 +493,8 @@ QVariant SyncthingDirectoryModel::dirStatusColor(const SyncthingDir &dir) const
break;
case SyncthingDirStatus::Idle:
return Colors::green(m_brightColors);
case SyncthingDirStatus::WaitingToScan:
return Colors::orange(m_brightColors);
case SyncthingDirStatus::Scanning:
case SyncthingDirStatus::PreparingToSync:
case SyncthingDirStatus::Synchronizing: