Don't record file changes on dir level by default

This commit is contained in:
Martchus 2020-01-18 16:57:03 +01:00
parent dab3fd7e31
commit f9100bb0b4
3 changed files with 30 additions and 3 deletions

View File

@ -100,6 +100,7 @@ SyncthingConnection::SyncthingConnection(const QString &syncthingUrl, const QByt
, m_hasDiskEvents(false)
, m_lastFileDeleted(false)
, m_dirStatsAltered(false)
, m_recordFileChanges(false)
{
m_trafficPollTimer.setInterval(SyncthingConnectionSettings::defaultTrafficPollInterval);
m_trafficPollTimer.setTimerType(Qt::VeryCoarseTimer);

View File

@ -76,6 +76,7 @@ class LIB_SYNCTHING_CONNECTOR_EXPORT SyncthingConnection : public QObject {
Q_PROPERTY(unsigned int autoReconnectTries READ autoReconnectTries)
Q_PROPERTY(int trafficPollInterval READ trafficPollInterval WRITE setTrafficPollInterval)
Q_PROPERTY(int devStatsPollInterval READ devStatsPollInterval WRITE setDevStatsPollInterval)
Q_PROPERTY(bool recordFileChanges READ recordFileChanges WRITE setRecordFileChanges)
Q_PROPERTY(QString myId READ myId NOTIFY myIdChanged)
Q_PROPERTY(QString configDir READ configDir NOTIFY configDirChanged)
Q_PROPERTY(int totalIncomingTraffic READ totalIncomingTraffic NOTIFY trafficChanged)
@ -129,6 +130,8 @@ public:
unsigned int autoReconnectTries() const;
void setAutoReconnectInterval(int interval);
void disablePolling();
bool recordFileChanges() const;
void setRecordFileChanges(bool recordFileChanges);
// getter for information retrieved from Syncthing
const QString &configDir() const;
@ -366,6 +369,7 @@ private:
QList<QSslError> m_expectedSslErrors;
QJsonObject m_rawConfig;
bool m_dirStatsAltered;
bool m_recordFileChanges;
};
/*!
@ -596,6 +600,24 @@ inline void SyncthingConnection::setAutoReconnectInterval(int interval)
m_autoReconnectTimer.setInterval(interval);
}
/*!
* \brief Returns whether file changes are recorded for each directory so SyncthingDir::recentChanges is being populated.
* \remarks The fileChanged() signal is unaffected.
*/
inline bool SyncthingConnection::recordFileChanges() const
{
return m_recordFileChanges;
}
/*!
* \brief Returns whether file changes are recorded for each directory so SyncthingDir::recentChanges is being populated.
* \remarks The fileChanged() signal is unaffected.
*/
inline void SyncthingConnection::setRecordFileChanges(bool recordFileChanges)
{
m_recordFileChanges = recordFileChanges;
}
/*!
* \brief Returns the Syncthing home/configuration directory.
*/

View File

@ -1486,9 +1486,13 @@ void SyncthingConnection::readChangeEvent(DateTime eventTime, const QString &eve
change.type = eventData.value(QLatin1String("type")).toString();
change.modifiedBy = eventData.value(QLatin1String("modifiedBy")).toString();
change.path = eventData.value(QLatin1String("path")).toString();
dirInfo->recentChanges.emplace_back(move(change));
emit dirStatusChanged(*dirInfo, index);
emit fileChanged(*dirInfo, index, dirInfo->recentChanges.back());
if (m_recordFileChanges) {
dirInfo->recentChanges.emplace_back(move(change));
emit dirStatusChanged(*dirInfo, index);
emit fileChanged(*dirInfo, index, dirInfo->recentChanges.back());
} else {
emit fileChanged(*dirInfo, index, change);
}
}
// events / long polling API