Determine systemd unit activation timestamp
This commit is contained in:
parent
bbac12f9e9
commit
d1b61ba24a
|
@ -36,6 +36,8 @@ set(TS_FILES
|
|||
# find c++utilities
|
||||
find_package(c++utilities 4.0.0 REQUIRED)
|
||||
use_cpp_utilities()
|
||||
set(META_PUBLIC_SHARED_LIB_DEPENDS c++utilities)
|
||||
set(META_PUBLIC_STATIC_LIB_DEPENDS c++utilities_static)
|
||||
|
||||
# find qtutilities (only headers and CMake modules used)
|
||||
find_package(qtutilities 5.0.0 REQUIRED)
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
using namespace std;
|
||||
using namespace std::placeholders;
|
||||
using namespace ChronoUtilities;
|
||||
|
||||
namespace Data {
|
||||
|
||||
|
@ -36,6 +37,11 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, ManagerDBusUnitFi
|
|||
return argument;
|
||||
}
|
||||
|
||||
constexpr DateTime dateTimeFromSystemdTimeStamp(qulonglong timeStamp)
|
||||
{
|
||||
return DateTime(621355968000000000 + timeStamp * 10);
|
||||
}
|
||||
|
||||
OrgFreedesktopSystemd1ManagerInterface *SyncthingService::s_manager = nullptr;
|
||||
|
||||
SyncthingService::SyncthingService(QObject *parent) :
|
||||
|
@ -140,10 +146,12 @@ void SyncthingService::handleUnitGet(QDBusPendingCallWatcher *watcher)
|
|||
void SyncthingService::handlePropertiesChanged(const QString &interface, const QVariantMap &changedProperties, const QStringList &invalidatedProperties)
|
||||
{
|
||||
if(interface == m_unit->interface()) {
|
||||
handlePropertyChanged(m_activeSince, QStringLiteral("ActiveEnterTimestamp"), changedProperties, invalidatedProperties);
|
||||
|
||||
const bool wasRunningBefore = isRunning();
|
||||
if(handlePropertyChanged(m_activeState, &SyncthingService::activeStateChanged, QStringLiteral("ActiveState"), changedProperties, invalidatedProperties)
|
||||
| handlePropertyChanged(m_subState, &SyncthingService::subStateChanged, QStringLiteral("SubState"), changedProperties, invalidatedProperties)) {
|
||||
emit stateChanged(m_activeState, m_subState);
|
||||
emit stateChanged(m_activeState, m_subState, m_activeSince);
|
||||
}
|
||||
const bool currentlyRunning = isRunning();
|
||||
if(currentlyRunning) {
|
||||
|
@ -196,6 +204,23 @@ bool SyncthingService::handlePropertyChanged(QString &variable, void (SyncthingS
|
|||
return false;
|
||||
}
|
||||
|
||||
bool SyncthingService::handlePropertyChanged(DateTime &variable, const QString &propertyName, const QVariantMap &changedProperties, const QStringList &invalidatedProperties)
|
||||
{
|
||||
const QVariant valueVariant(changedProperties[propertyName]);
|
||||
if(valueVariant.isValid()) {
|
||||
bool ok;
|
||||
const qulonglong valueInt = valueVariant.toULongLong(&ok);
|
||||
if(ok) {
|
||||
variable = dateTimeFromSystemdTimeStamp(valueInt);
|
||||
return true;
|
||||
}
|
||||
} else if(invalidatedProperties.contains(propertyName) && !variable.isNull()) {
|
||||
variable = DateTime();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void SyncthingService::registerErrorHandler(const QDBusPendingCall &call, const char *context)
|
||||
{
|
||||
connect(new QDBusPendingCallWatcher(call, this), &QDBusPendingCallWatcher::finished, bind(&SyncthingService::handleError, this, context, _1));
|
||||
|
@ -215,6 +240,7 @@ void SyncthingService::setUnit(const QDBusObjectPath &objectPath)
|
|||
|
||||
// init unit
|
||||
m_unit = new OrgFreedesktopSystemd1UnitInterface(s_manager->service(), path, s_manager->connection());
|
||||
m_activeSince = dateTimeFromSystemdTimeStamp(m_unit->activeEnterTimestamp());
|
||||
setProperties(m_unit->activeState(), m_unit->subState(), m_unit->unitFileState(), m_unit->description());
|
||||
|
||||
// init properties
|
||||
|
@ -235,7 +261,7 @@ void SyncthingService::setProperties(const QString &activeState, const QString &
|
|||
anyStateChanged = true;
|
||||
}
|
||||
if(anyStateChanged) {
|
||||
emit stateChanged(m_activeState, m_subState);
|
||||
emit stateChanged(m_activeState, m_subState, m_activeSince);
|
||||
}
|
||||
if(running != isRunning()) {
|
||||
emit runningChanged(isRunning());
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef DATA_SYNCTHINGSERVICE_H
|
||||
#define DATA_SYNCTHINGSERVICE_H
|
||||
|
||||
#include <c++utilities/chrono/datetime.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariantMap>
|
||||
|
||||
|
@ -36,6 +38,7 @@ class SyncthingService : public QObject
|
|||
Q_PROPERTY(bool unitAvailable READ isUnitAvailable)
|
||||
Q_PROPERTY(QString activeState READ activeState NOTIFY activeStateChanged)
|
||||
Q_PROPERTY(QString subState READ subState NOTIFY subStateChanged)
|
||||
Q_PROPERTY(ChronoUtilities::DateTime activeSince READ activeSince NOTIFY activeStateChanged)
|
||||
Q_PROPERTY(QString unitFileState READ unitFileState NOTIFY unitFileStateChanged)
|
||||
Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
|
||||
Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged)
|
||||
|
@ -50,6 +53,8 @@ public:
|
|||
bool isUnitAvailable() const;
|
||||
const QString &activeState() const;
|
||||
const QString &subState() const;
|
||||
ChronoUtilities::DateTime activeSince() const;
|
||||
bool isActiveFor(unsigned int atleastSeconds) const;
|
||||
const QString &unitFileState() const;
|
||||
const QString &description() const;
|
||||
bool isRunning() const;
|
||||
|
@ -68,7 +73,7 @@ public Q_SLOTS:
|
|||
|
||||
Q_SIGNALS:
|
||||
void systemdAvailableChanged(bool available);
|
||||
void stateChanged(const QString &activeState, const QString &subState);
|
||||
void stateChanged(const QString &activeState, const QString &subState, ChronoUtilities::DateTime activeSince);
|
||||
void activeStateChanged(const QString &activeState);
|
||||
void subStateChanged(const QString &subState);
|
||||
void unitFileStateChanged(const QString &unitFileState);
|
||||
|
@ -89,6 +94,7 @@ private Q_SLOTS:
|
|||
|
||||
private:
|
||||
bool handlePropertyChanged(QString &variable, void(SyncthingService::*signal)(const QString &), const QString &propertyName, const QVariantMap &changedProperties, const QStringList &invalidatedProperties);
|
||||
bool handlePropertyChanged(ChronoUtilities::DateTime &variable, const QString &propertyName, const QVariantMap &changedProperties, const QStringList &invalidatedProperties);
|
||||
void registerErrorHandler(const QDBusPendingCall &call, const char *context);
|
||||
|
||||
static OrgFreedesktopSystemd1ManagerInterface *s_manager;
|
||||
|
@ -102,6 +108,7 @@ private:
|
|||
QString m_subState;
|
||||
QString m_unitFileState;
|
||||
bool m_manuallyStopped;
|
||||
ChronoUtilities::DateTime m_activeSince;
|
||||
};
|
||||
|
||||
inline const QString &SyncthingService::unitName() const
|
||||
|
@ -159,6 +166,16 @@ inline bool SyncthingService::isManuallyStopped() const
|
|||
return m_manuallyStopped;
|
||||
}
|
||||
|
||||
inline ChronoUtilities::DateTime SyncthingService::activeSince() const
|
||||
{
|
||||
return m_activeSince;
|
||||
}
|
||||
|
||||
inline bool SyncthingService::isActiveFor(unsigned int atleastSeconds) const
|
||||
{
|
||||
return !m_activeSince.isNull() && (ChronoUtilities::DateTime::now() - m_activeSince).totalSeconds() > atleastSeconds;
|
||||
}
|
||||
|
||||
inline void SyncthingService::enable()
|
||||
{
|
||||
setEnabled(true);
|
||||
|
|
|
@ -4,153 +4,158 @@
|
|||
<context>
|
||||
<name>Data::SyncthingConnection</name>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="95"/>
|
||||
<location filename="../syncthingconnection.cpp" line="104"/>
|
||||
<source>disconnected</source>
|
||||
<translation>Verbindung getrennt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="97"/>
|
||||
<location filename="../syncthingconnection.cpp" line="106"/>
|
||||
<source>reconnecting</source>
|
||||
<translation>Verbindung wird hergestellt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="99"/>
|
||||
<location filename="../syncthingconnection.cpp" line="108"/>
|
||||
<source>connected</source>
|
||||
<translation>verbunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="101"/>
|
||||
<location filename="../syncthingconnection.cpp" line="110"/>
|
||||
<source>connected, paused</source>
|
||||
<translation>verbunden, pausiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="103"/>
|
||||
<location filename="../syncthingconnection.cpp" line="112"/>
|
||||
<source>connected, synchronizing</source>
|
||||
<translation>verbunden, am Synchronisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="105"/>
|
||||
<location filename="../syncthingconnection.cpp" line="114"/>
|
||||
<source>unknown</source>
|
||||
<translation>Verbindungsstatus unbekannt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="132"/>
|
||||
<location filename="../syncthingconnection.cpp" line="219"/>
|
||||
<location filename="../syncthingconnection.cpp" line="141"/>
|
||||
<location filename="../syncthingconnection.cpp" line="228"/>
|
||||
<source>Connection configuration is insufficient.</source>
|
||||
<translation>Verbindungskonfiguration is ungenügend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="589"/>
|
||||
<location filename="../syncthingconnection.cpp" line="608"/>
|
||||
<source>Unable to request QR-Code: </source>
|
||||
<translation>Fehler beim Abfragen des QR-Codes: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="618"/>
|
||||
<location filename="../syncthingconnection.cpp" line="637"/>
|
||||
<source>Unable to parse Syncthing log: </source>
|
||||
<translation>Fehler beim Auslesen des Syncthing-Logs: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="622"/>
|
||||
<location filename="../syncthingconnection.cpp" line="641"/>
|
||||
<source>Unable to request Syncthing log: </source>
|
||||
<translation>Fehler beim Abfragen des Syncthing-Logs: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="656"/>
|
||||
<location filename="../syncthingconnection.cpp" line="675"/>
|
||||
<source>Unable to locate certificate used by Syncthing.</source>
|
||||
<translation>Das SSL-Zertifikat von Syncthing kann nicht gefunden werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="662"/>
|
||||
<location filename="../syncthingconnection.cpp" line="681"/>
|
||||
<source>Unable to load certificate used by Syncthing.</source>
|
||||
<translation>Das SSL-Zertifikat von Syncthing kann nicht ausgelesen werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="746"/>
|
||||
<location filename="../syncthingconnection.cpp" line="766"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation>Fehler beim Auslesen der Syncthing-Konfiguration: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="752"/>
|
||||
<location filename="../syncthingconnection.cpp" line="772"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation>Fehler beim Abfragen der Syncthing-Konfiguration: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="850"/>
|
||||
<location filename="../syncthingconnection.cpp" line="870"/>
|
||||
<source>Unable to parse Syncthing status: </source>
|
||||
<translation>Fehler beim Auslesen des Syncthing-Status: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="856"/>
|
||||
<location filename="../syncthingconnection.cpp" line="876"/>
|
||||
<source>Unable to request Syncthing status: </source>
|
||||
<translation>Fehler beim Abfragen des Syncthing-Status: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="931"/>
|
||||
<location filename="../syncthingconnection.cpp" line="951"/>
|
||||
<source>Unable to parse connections: </source>
|
||||
<translation>Fehler beim Auslesen der Verbindungen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="937"/>
|
||||
<location filename="../syncthingconnection.cpp" line="957"/>
|
||||
<source>Unable to request connections: </source>
|
||||
<translation>Fehler beim Abfragen der Verbindungen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="991"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1011"/>
|
||||
<source>Unable to parse directory statistics: </source>
|
||||
<translation>Fehler beim Auslesen der Verzeichnisstatistiken: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="997"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1017"/>
|
||||
<source>Unable to request directory statistics: </source>
|
||||
<translation>Fehler beim Abfragen der Verzeichnisstatistiken: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1033"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1053"/>
|
||||
<source>Unable to parse device statistics: </source>
|
||||
<translation>Fehler beim Auslesen der Gerätestatistiken: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1039"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1059"/>
|
||||
<source>Unable to request device statistics: </source>
|
||||
<translation>Fehler beim Abfragen der Gerätestatistiken: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1077"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1097"/>
|
||||
<source>Unable to parse errors: </source>
|
||||
<translation>Fehler beim Auslesen der Syncthing-Fehlermeldungen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1088"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1108"/>
|
||||
<source>Unable to request errors: </source>
|
||||
<translation>Fehler beim Abfragen der Syncthing-Fehlermeldungen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1141"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1124"/>
|
||||
<source>Unable to request clearing errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1177"/>
|
||||
<source>Unable to parse Syncthing events: </source>
|
||||
<translation>Fehler beim Auslesen der Syncthing-Ereignisse: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1163"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1199"/>
|
||||
<source>Unable to request Syncthing events: </source>
|
||||
<translation>Fehler beim Abfragen der Syncthing-Ereignisse: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1426"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1462"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation>Fehler beim Anfordern eines Verzeichnis-Rescans: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1446"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1482"/>
|
||||
<source>Unable to request pause/resume: </source>
|
||||
<translation>Fehler beim Anfordern Gerät zu Pausieren/Fortzusetzen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1462"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1498"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation>Fehler beim Anfordern eines Neustarts: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1478"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1514"/>
|
||||
<source>Unable to request shutdown: </source>
|
||||
<translation>Fehler beim Anfordern Syncthing zu beenden: </translation>
|
||||
</message>
|
||||
|
@ -158,22 +163,22 @@
|
|||
<context>
|
||||
<name>Data::SyncthingService</name>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="96"/>
|
||||
<location filename="../syncthingservice.cpp" line="104"/>
|
||||
<source>start unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="98"/>
|
||||
<location filename="../syncthingservice.cpp" line="106"/>
|
||||
<source>stop unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="105"/>
|
||||
<location filename="../syncthingservice.cpp" line="113"/>
|
||||
<source>enable unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="107"/>
|
||||
<location filename="../syncthingservice.cpp" line="115"/>
|
||||
<source>disable unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -4,153 +4,158 @@
|
|||
<context>
|
||||
<name>Data::SyncthingConnection</name>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="95"/>
|
||||
<location filename="../syncthingconnection.cpp" line="104"/>
|
||||
<source>disconnected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="97"/>
|
||||
<location filename="../syncthingconnection.cpp" line="106"/>
|
||||
<source>reconnecting</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="99"/>
|
||||
<location filename="../syncthingconnection.cpp" line="108"/>
|
||||
<source>connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="101"/>
|
||||
<location filename="../syncthingconnection.cpp" line="110"/>
|
||||
<source>connected, paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="103"/>
|
||||
<location filename="../syncthingconnection.cpp" line="112"/>
|
||||
<source>connected, synchronizing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="105"/>
|
||||
<location filename="../syncthingconnection.cpp" line="114"/>
|
||||
<source>unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="132"/>
|
||||
<location filename="../syncthingconnection.cpp" line="219"/>
|
||||
<location filename="../syncthingconnection.cpp" line="141"/>
|
||||
<location filename="../syncthingconnection.cpp" line="228"/>
|
||||
<source>Connection configuration is insufficient.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="589"/>
|
||||
<location filename="../syncthingconnection.cpp" line="608"/>
|
||||
<source>Unable to request QR-Code: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="618"/>
|
||||
<location filename="../syncthingconnection.cpp" line="637"/>
|
||||
<source>Unable to parse Syncthing log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="622"/>
|
||||
<location filename="../syncthingconnection.cpp" line="641"/>
|
||||
<source>Unable to request Syncthing log: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="656"/>
|
||||
<location filename="../syncthingconnection.cpp" line="675"/>
|
||||
<source>Unable to locate certificate used by Syncthing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="662"/>
|
||||
<location filename="../syncthingconnection.cpp" line="681"/>
|
||||
<source>Unable to load certificate used by Syncthing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="746"/>
|
||||
<location filename="../syncthingconnection.cpp" line="766"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="752"/>
|
||||
<location filename="../syncthingconnection.cpp" line="772"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="850"/>
|
||||
<location filename="../syncthingconnection.cpp" line="870"/>
|
||||
<source>Unable to parse Syncthing status: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="856"/>
|
||||
<location filename="../syncthingconnection.cpp" line="876"/>
|
||||
<source>Unable to request Syncthing status: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="931"/>
|
||||
<location filename="../syncthingconnection.cpp" line="951"/>
|
||||
<source>Unable to parse connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="937"/>
|
||||
<location filename="../syncthingconnection.cpp" line="957"/>
|
||||
<source>Unable to request connections: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="991"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1011"/>
|
||||
<source>Unable to parse directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="997"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1017"/>
|
||||
<source>Unable to request directory statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1033"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1053"/>
|
||||
<source>Unable to parse device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1039"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1059"/>
|
||||
<source>Unable to request device statistics: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1077"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1097"/>
|
||||
<source>Unable to parse errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1088"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1108"/>
|
||||
<source>Unable to request errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1141"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1124"/>
|
||||
<source>Unable to request clearing errors: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1177"/>
|
||||
<source>Unable to parse Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1163"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1199"/>
|
||||
<source>Unable to request Syncthing events: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1426"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1462"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1446"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1482"/>
|
||||
<source>Unable to request pause/resume: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1462"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1498"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1478"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1514"/>
|
||||
<source>Unable to request shutdown: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -158,22 +163,22 @@
|
|||
<context>
|
||||
<name>Data::SyncthingService</name>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="96"/>
|
||||
<location filename="../syncthingservice.cpp" line="104"/>
|
||||
<source>start unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="98"/>
|
||||
<location filename="../syncthingservice.cpp" line="106"/>
|
||||
<source>stop unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="105"/>
|
||||
<location filename="../syncthingservice.cpp" line="113"/>
|
||||
<source>enable unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingservice.cpp" line="107"/>
|
||||
<location filename="../syncthingservice.cpp" line="115"/>
|
||||
<source>disable unit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
# include <qtutilities/misc/dbusnotification.h>
|
||||
#endif
|
||||
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
|
||||
# include <c++utilities/chrono/datetime.h>
|
||||
# include <qtutilities/misc/dialogutils.h>
|
||||
#endif
|
||||
|
||||
|
@ -42,6 +43,7 @@
|
|||
#include <QTextCursor>
|
||||
#include <QApplication>
|
||||
#include <QStyle>
|
||||
#include <QStringBuilder>
|
||||
|
||||
#include <functional>
|
||||
|
||||
|
@ -590,7 +592,7 @@ QWidget *SystemdOptionPage::setupWidget()
|
|||
QObject::connect(ui()->enablePushButton, &QPushButton::clicked, &m_service, &SyncthingService::enable);
|
||||
QObject::connect(ui()->disablePushButton, &QPushButton::clicked, &m_service, &SyncthingService::disable);
|
||||
QObject::connect(&m_service, &SyncthingService::descriptionChanged, bind(&SystemdOptionPage::handleDescriptionChanged, this, _1));
|
||||
QObject::connect(&m_service, &SyncthingService::stateChanged, bind(&SystemdOptionPage::handleStatusChanged, this, _1, _2));
|
||||
QObject::connect(&m_service, &SyncthingService::stateChanged, bind(&SystemdOptionPage::handleStatusChanged, this, _1, _2, _3));
|
||||
QObject::connect(&m_service, &SyncthingService::unitFileStateChanged, bind(&SystemdOptionPage::handleEnabledChanged, this, _1));
|
||||
return widget;
|
||||
}
|
||||
|
@ -614,7 +616,7 @@ void SystemdOptionPage::reset()
|
|||
ui()->showButtonCheckBox->setChecked(settings.showButton);
|
||||
ui()->considerForReconnectCheckBox->setChecked(settings.considerForReconnect);
|
||||
handleDescriptionChanged(m_service.description());
|
||||
handleStatusChanged(m_service.activeState(), m_service.subState());
|
||||
handleStatusChanged(m_service.activeState(), m_service.subState(), m_service.activeSince());
|
||||
handleEnabledChanged(m_service.unitFileState());
|
||||
}
|
||||
}
|
||||
|
@ -629,7 +631,7 @@ void setIndicatorColor(QWidget *indicator, const QColor &color)
|
|||
indicator->setStyleSheet(QStringLiteral("border-radius:8px;background-color:") + color.name());
|
||||
}
|
||||
|
||||
void SystemdOptionPage::handleStatusChanged(const QString &activeState, const QString &subState)
|
||||
void SystemdOptionPage::handleStatusChanged(const QString &activeState, const QString &subState, ChronoUtilities::DateTime activeSince)
|
||||
{
|
||||
QStringList status;
|
||||
if(!activeState.isEmpty()) {
|
||||
|
@ -638,11 +640,18 @@ void SystemdOptionPage::handleStatusChanged(const QString &activeState, const QS
|
|||
if(!subState.isEmpty()) {
|
||||
status << subState;
|
||||
}
|
||||
|
||||
const bool isRunning = m_service.isRunning();
|
||||
QString timeStamp;
|
||||
if(isRunning && !activeSince.isNull()) {
|
||||
timeStamp = QLatin1Char('\n')
|
||||
% QCoreApplication::translate("QtGui::SystemdOptionPage", "since ")
|
||||
% QString::fromUtf8(activeSince.toString(ChronoUtilities::DateTimeOutputFormat::DateAndTime).data());
|
||||
}
|
||||
|
||||
ui()->statusValueLabel->setText(status.isEmpty()
|
||||
? QCoreApplication::translate("QtGui::SystemdOptionPage", "unknown")
|
||||
: status.join(QStringLiteral(" - ")));
|
||||
: status.join(QStringLiteral(" - ")) + timeStamp);
|
||||
setIndicatorColor(ui()->statusIndicator, status.isEmpty()
|
||||
? Colors::gray(values().appearance.brightTextColors)
|
||||
: (isRunning
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
#include <QWidget>
|
||||
#include <QProcess>
|
||||
|
||||
namespace ChronoUtilities {
|
||||
class DateTime;
|
||||
}
|
||||
|
||||
namespace Data {
|
||||
class SyncthingConnection;
|
||||
class SyncthingService;
|
||||
|
@ -58,7 +62,7 @@ BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(SystemdOptionPage)
|
|||
private:
|
||||
DECLARE_SETUP_WIDGETS
|
||||
void handleDescriptionChanged(const QString &description);
|
||||
void handleStatusChanged(const QString &activeState, const QString &subState);
|
||||
void handleStatusChanged(const QString &activeState, const QString &subState, ChronoUtilities::DateTime activeSince);
|
||||
void handleEnabledChanged(const QString &unitFileState);
|
||||
Data::SyncthingService &m_service;
|
||||
END_DECLARE_OPTION_PAGE
|
||||
|
|
|
@ -127,22 +127,22 @@
|
|||
<translation>Tray-Icon beim Starten der Desktopumgebung automatisch starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="363"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="365"/>
|
||||
<source>This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user.</source>
|
||||
<translation>Durch das Hinzufügen einer *.desktop-Datei unter <i>~/.config/autostart</i> realisiert - betrifft also nur den aktuellen Benutzer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="365"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="367"/>
|
||||
<source>This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>.</source>
|
||||
<translation>Durch das Hinzufügen eines Registry-Schlüssels unter <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> realisiert - betrifft also nur den aktuellen Benutzer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="367"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="369"/>
|
||||
<source>This feature has not been implemented for your platform (yet).</source>
|
||||
<translation>Diese Funktion wurde für die aktuelle Plattform nicht nicht implementiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="454"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="456"/>
|
||||
<source>unable to modify startup entry</source>
|
||||
<translation>Fehler beim aktualisieren des Auto-Start-Eintrags</translation>
|
||||
</message>
|
||||
|
@ -263,27 +263,27 @@
|
|||
<translation>nicht neu verbinden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="73"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="75"/>
|
||||
<source>Auto-detected for local instance</source>
|
||||
<translation>Kann für lokale Instanz automatisch ermittelt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="91"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="93"/>
|
||||
<source>Select Syncthing config file</source>
|
||||
<translation>Wähle die Syncthing-Konfigurationsdatei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="98"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="100"/>
|
||||
<source>Unable to parse the Syncthing config file.</source>
|
||||
<translation>Fehler beim Auslesen der Syncthing-Konfigurationsdatei.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="169"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="171"/>
|
||||
<source>Unable to load specified certificate "%1".</source>
|
||||
<translation>Fehler beim Auslesen des angegebenen Zertifikats: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="193"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="195"/>
|
||||
<source>Instance %1</source>
|
||||
<translation>Instanz %1</translation>
|
||||
</message>
|
||||
|
@ -390,13 +390,13 @@
|
|||
<translation>Log folgen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="536"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="538"/>
|
||||
<source>Syncthing exited with exit code %1
|
||||
</source>
|
||||
<translation>Syncthing wurde mit dem Statuscode %1 beendet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="539"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="541"/>
|
||||
<source>Syncthing crashed with exit code %1
|
||||
</source>
|
||||
<translation>Syncthing ist mit dem Statuscode %1 abgestürzt</translation>
|
||||
|
@ -450,7 +450,7 @@
|
|||
<translation>Methode die von Qt verwendet wird (kann vom QPA-Plugin überschrieben werden)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="265"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="267"/>
|
||||
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
|
||||
<translation>Benachrichtigungen via D-Bus wurden eingestellt, aber es scheint kein Daemon zu laufen der den Dienst bereitstellt.</translation>
|
||||
</message>
|
||||
|
@ -458,22 +458,22 @@
|
|||
<context>
|
||||
<name>QtGui::SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="720"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="729"/>
|
||||
<source>Tray</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="726"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="735"/>
|
||||
<source>Web view</source>
|
||||
<translation>Weboberfläche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="732"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="741"/>
|
||||
<source>Startup</source>
|
||||
<translation>Starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="746"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="755"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
|
@ -514,8 +514,8 @@
|
|||
<location filename="../gui/systemdoptionpage.ui" line="99"/>
|
||||
<location filename="../gui/systemdoptionpage.ui" line="154"/>
|
||||
<location filename="../gui/systemdoptionpage.ui" line="231"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="644"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="659"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="653"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="668"/>
|
||||
<source>unknown</source>
|
||||
<translation>unbekannt</translation>
|
||||
</message>
|
||||
|
@ -549,10 +549,15 @@
|
|||
<translation>Stoppen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="624"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="626"/>
|
||||
<source>specified unit is either inactive or doesn't exist</source>
|
||||
<translation>angegebene Unit ist entweder nicht geladen oder existiert nicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="648"/>
|
||||
<source>since </source>
|
||||
<translation>seit </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtGui::TrayIcon</name>
|
||||
|
@ -904,7 +909,7 @@ For <i>all</i> notifications, checkout the log</source>
|
|||
<name>QtGui::WebViewOptionPage</name>
|
||||
<message>
|
||||
<location filename="../gui/webviewoptionpage.ui" line="14"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="680"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="689"/>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
|
@ -934,7 +939,7 @@ For <i>all</i> notifications, checkout the log</source>
|
|||
<translation>Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="682"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="691"/>
|
||||
<source>Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine.
|
||||
The Web UI will be opened in the default web browser instead.</source>
|
||||
<translation>Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut.
|
||||
|
|
|
@ -127,22 +127,22 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="363"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="365"/>
|
||||
<source>This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="365"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="367"/>
|
||||
<source>This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="367"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="369"/>
|
||||
<source>This feature has not been implemented for your platform (yet).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="454"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="456"/>
|
||||
<source>unable to modify startup entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -263,27 +263,27 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="73"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="75"/>
|
||||
<source>Auto-detected for local instance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="91"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="93"/>
|
||||
<source>Select Syncthing config file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="98"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="100"/>
|
||||
<source>Unable to parse the Syncthing config file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="169"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="171"/>
|
||||
<source>Unable to load specified certificate "%1".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="193"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="195"/>
|
||||
<source>Instance %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -390,13 +390,13 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="536"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="538"/>
|
||||
<source>Syncthing exited with exit code %1
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="539"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="541"/>
|
||||
<source>Syncthing crashed with exit code %1
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -450,7 +450,7 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="265"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="267"/>
|
||||
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -458,22 +458,22 @@
|
|||
<context>
|
||||
<name>QtGui::SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="720"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="729"/>
|
||||
<source>Tray</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="726"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="735"/>
|
||||
<source>Web view</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="732"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="741"/>
|
||||
<source>Startup</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="746"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="755"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -514,8 +514,8 @@
|
|||
<location filename="../gui/systemdoptionpage.ui" line="99"/>
|
||||
<location filename="../gui/systemdoptionpage.ui" line="154"/>
|
||||
<location filename="../gui/systemdoptionpage.ui" line="231"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="644"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="659"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="653"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="668"/>
|
||||
<source>unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -547,10 +547,15 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="624"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="626"/>
|
||||
<source>specified unit is either inactive or doesn't exist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="648"/>
|
||||
<source>since </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtGui::TrayIcon</name>
|
||||
|
@ -900,7 +905,7 @@ For <i>all</i> notifications, checkout the log</source>
|
|||
<name>QtGui::WebViewOptionPage</name>
|
||||
<message>
|
||||
<location filename="../gui/webviewoptionpage.ui" line="14"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="680"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="689"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -930,7 +935,7 @@ For <i>all</i> notifications, checkout the log</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/settingsdialog.cpp" line="682"/>
|
||||
<location filename="../gui/settingsdialog.cpp" line="691"/>
|
||||
<source>Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine.
|
||||
The Web UI will be opened in the default web browser instead.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
Loading…
Reference in New Issue