From ce7a4421fafe88399f0b527b6bfd20a70d4f7e7e Mon Sep 17 00:00:00 2001 From: Martchus Date: Mon, 2 Apr 2018 20:50:59 +0200 Subject: [PATCH] Consider isActiveFor() for process also when systemd unavailable --- connector/syncthingnotifier.cpp | 16 ++++++++++++++-- widgets/misc/internalerror.cpp | 12 ++++++++++-- widgets/settings/notificationsoptionpage.ui | 4 ++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/connector/syncthingnotifier.cpp b/connector/syncthingnotifier.cpp index 8587642..b4401da 100644 --- a/connector/syncthingnotifier.cpp +++ b/connector/syncthingnotifier.cpp @@ -57,6 +57,10 @@ void SyncthingNotifier::handleStatusChangedEvent(SyncthingStatus newStatus) m_previousStatus = newStatus; } +/*! + * \brief Returns whether a "disconnected" notification should be shown. + * \todo Unify with InternalError::isRelevant(). + */ bool SyncthingNotifier::isDisconnectRelevant() const { // skip disconnect if not initialized @@ -74,20 +78,28 @@ bool SyncthingNotifier::isDisconnectRelevant() const return false; } #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD + const SyncthingService &service(syncthingService()); if (m_service.isManuallyStopped()) { return false; } +#endif // ignore inavailability after start or standby-wakeup if (m_ignoreInavailabilityAfterStart) { - if (m_process.isRunning() && !m_service.isActiveWithoutSleepFor(m_process.activeSince(), m_ignoreInavailabilityAfterStart)) { + if (m_process.isRunning() +#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD + && ((m_service.isSystemdAvailable() && !service.isActiveWithoutSleepFor(m_process.activeSince(), m_ignoreInavailabilityAfterStart)) + || !m_process.isActiveFor(m_ignoreInavailabilityAfterStart)) +#else + && !m_process.isActiveFor(m_ignoreInavailabilityAfterStart) +#endif + ) { return false; } if (m_service.isRunning() && !m_service.isActiveWithoutSleepFor(m_ignoreInavailabilityAfterStart)) { return false; } } -#endif return true; } diff --git a/widgets/misc/internalerror.cpp b/widgets/misc/internalerror.cpp index 5a7d320..96a9622 100644 --- a/widgets/misc/internalerror.cpp +++ b/widgets/misc/internalerror.cpp @@ -14,6 +14,7 @@ namespace QtGui { /*! * \brief Returns whether the error is relevant. Only in this case a notification for the error should be shown. + * \todo Unify with SyncthingNotifier::isDisconnectRelevant(). */ bool InternalError::isRelevant(const SyncthingConnection &connection, SyncthingErrorCategory category, int networkError) { @@ -45,17 +46,24 @@ bool InternalError::isRelevant(const SyncthingConnection &connection, SyncthingE if (settings.systemd.considerForReconnect && remoteHostClosed && service.isManuallyStopped()) { return false; } +#endif // ignore inavailability after start or standby-wakeup if (settings.ignoreInavailabilityAfterStart && networkError == QNetworkReply::ConnectionRefusedError) { - if (process.isRunning() && !service.isActiveWithoutSleepFor(process.activeSince(), settings.ignoreInavailabilityAfterStart)) { + if (process.isRunning() +#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD + && ((service.isSystemdAvailable() && !service.isActiveWithoutSleepFor(process.activeSince(), settings.ignoreInavailabilityAfterStart)) + || !process.isActiveFor(settings.ignoreInavailabilityAfterStart)) +#else + && !process.isActiveFor(settings.ignoreInavailabilityAfterStart) +#endif + ) { return false; } if (service.isRunning() && !service.isActiveWithoutSleepFor(settings.ignoreInavailabilityAfterStart)) { return false; } } -#endif return true; } diff --git a/widgets/settings/notificationsoptionpage.ui b/widgets/settings/notificationsoptionpage.ui index aff1a67..7ba83cf 100644 --- a/widgets/settings/notificationsoptionpage.ui +++ b/widgets/settings/notificationsoptionpage.ui @@ -63,7 +63,7 @@ - D-Bus notifi&cations (org.freedesktop.Notifications) + D-Bus &notifications (org.freedesktop.Notifications) @@ -86,7 +86,7 @@ - Ignore inavailability of Syncthing the specified number of seconds after Syncthing has been started; has only effect if the Syncthing start can be determined which is currently only supported for the local instance by checking Systemd unit status + Ignore inavailability of Syncthing the specified number of seconds after Syncthing has been started; has only effect if the Syncthing start can be determined which is currently only supported for the local instance started via Systemd or the internal launcher. true