Don't show own dev in shared devs of dir
This commit is contained in:
parent
9b45c49b97
commit
be6d0cbf5d
|
@ -878,12 +878,8 @@ void SyncthingConnection::readConfig()
|
|||
if (jsonError.error == QJsonParseError::NoError) {
|
||||
m_rawConfig = replyDoc.object();
|
||||
emit newConfig(m_rawConfig);
|
||||
readDevs(m_rawConfig.value(QStringLiteral("devices")).toArray());
|
||||
readDirs(m_rawConfig.value(QStringLiteral("folders")).toArray());
|
||||
m_hasConfig = true;
|
||||
if (!isConnected()) {
|
||||
continueConnecting();
|
||||
}
|
||||
concludeReadingConfigAndStatus();
|
||||
} else {
|
||||
emitError(tr("Unable to parse Syncthing config: "), jsonError, reply, response);
|
||||
}
|
||||
|
@ -919,7 +915,7 @@ void SyncthingConnection::readDirs(const QJsonArray &dirs)
|
|||
dirItem->deviceNames.clear();
|
||||
for (const QJsonValue &dev : dirObj.value(QStringLiteral("devices")).toArray()) {
|
||||
const QString devId = dev.toObject().value(QStringLiteral("deviceID")).toString();
|
||||
if (!devId.isEmpty()) {
|
||||
if (!devId.isEmpty() && devId != m_myId) {
|
||||
dirItem->deviceIds << devId;
|
||||
if (const SyncthingDev *const dev = findDevInfo(devId, dummy)) {
|
||||
dirItem->deviceNames << dev->name;
|
||||
|
@ -982,25 +978,10 @@ void SyncthingConnection::readStatus()
|
|||
QJsonParseError jsonError;
|
||||
const QJsonDocument replyDoc = QJsonDocument::fromJson(response, &jsonError);
|
||||
if (jsonError.error == QJsonParseError::NoError) {
|
||||
const QJsonObject replyObj(replyDoc.object());
|
||||
const QString myId(replyObj.value(QStringLiteral("myID")).toString());
|
||||
if (myId != m_myId) {
|
||||
emit myIdChanged(m_myId = myId);
|
||||
int index = 0;
|
||||
for (SyncthingDev &dev : m_devs) {
|
||||
if (dev.id == m_myId) {
|
||||
dev.status = SyncthingDevStatus::OwnDevice;
|
||||
emit devStatusChanged(dev, index);
|
||||
break;
|
||||
}
|
||||
++index;
|
||||
}
|
||||
}
|
||||
emitMyIdChanged(replyDoc.object().value(QStringLiteral("myID")).toString());
|
||||
// other values are currently not interesting
|
||||
m_hasStatus = true;
|
||||
if (!isConnected()) {
|
||||
continueConnecting();
|
||||
}
|
||||
concludeReadingConfigAndStatus();
|
||||
} else {
|
||||
emitError(tr("Unable to parse Syncthing status: "), jsonError, reply, response);
|
||||
}
|
||||
|
@ -1013,6 +994,25 @@ void SyncthingConnection::readStatus()
|
|||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Reads results of requestConfig() and requestStatus().
|
||||
* \remarks Called in readConfig() or readStatus() to conclude reading parts requiring config *and* status
|
||||
* being available. Does nothing if this is not the case (yet).
|
||||
*/
|
||||
void SyncthingConnection::concludeReadingConfigAndStatus()
|
||||
{
|
||||
if (!m_hasConfig || !m_hasStatus) {
|
||||
return;
|
||||
}
|
||||
|
||||
readDevs(m_rawConfig.value(QStringLiteral("devices")).toArray());
|
||||
readDirs(m_rawConfig.value(QStringLiteral("folders")).toArray());
|
||||
|
||||
if (!isConnected()) {
|
||||
continueConnecting();
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Reads results of requestConnections().
|
||||
*/
|
||||
|
@ -1369,14 +1369,11 @@ void SyncthingConnection::readEvents()
|
|||
*/
|
||||
void SyncthingConnection::readStartingEvent(const QJsonObject &eventData)
|
||||
{
|
||||
QString strValue = eventData.value(QStringLiteral("home")).toString();
|
||||
if (strValue != m_configDir) {
|
||||
emit configDirChanged(m_configDir = strValue);
|
||||
}
|
||||
strValue = eventData.value(QStringLiteral("myID")).toString();
|
||||
if (strValue != m_myId) {
|
||||
emit configDirChanged(m_myId = strValue);
|
||||
const QString configDir(eventData.value(QStringLiteral("home")).toString());
|
||||
if (configDir != m_configDir) {
|
||||
emit configDirChanged(m_configDir = configDir);
|
||||
}
|
||||
emitMyIdChanged(eventData.value(QStringLiteral("myID")).toString());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -1810,6 +1807,33 @@ void SyncthingConnection::emitError(const QString &message, SyncthingErrorCatego
|
|||
emit error(message + reply->errorString(), category, reply->error(), reply->request(), reply->readAll());
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Internally called to emit myIdChanged() signal.
|
||||
*/
|
||||
void SyncthingConnection::emitMyIdChanged(const QString &newId)
|
||||
{
|
||||
if (newId.isEmpty() || m_myId == newId) {
|
||||
return;
|
||||
}
|
||||
|
||||
// adjust device status
|
||||
int row = 0;
|
||||
for (SyncthingDev &dev : m_devs) {
|
||||
if (dev.id == newId) {
|
||||
if (dev.status != SyncthingDevStatus::OwnDevice) {
|
||||
dev.status = SyncthingDevStatus::OwnDevice;
|
||||
emit devStatusChanged(dev, row);
|
||||
}
|
||||
} else if (dev.status == SyncthingDevStatus::OwnDevice) {
|
||||
dev.status = SyncthingDevStatus::Unknown;
|
||||
emit devStatusChanged(dev, row);
|
||||
}
|
||||
++row;
|
||||
}
|
||||
|
||||
emit myIdChanged(m_myId = newId);
|
||||
}
|
||||
|
||||
/*!
|
||||
* \fn SyncthingConnection::newConfig()
|
||||
* \brief Indicates new configuration (dirs, devs, ...) is available.
|
||||
|
|
|
@ -182,6 +182,7 @@ private Q_SLOTS:
|
|||
void readDirs(const QJsonArray &dirs);
|
||||
void readDevs(const QJsonArray &devs);
|
||||
void readStatus();
|
||||
void concludeReadingConfigAndStatus();
|
||||
void readConnections();
|
||||
void readDirStatistics();
|
||||
void readDeviceStatistics();
|
||||
|
@ -208,6 +209,7 @@ private Q_SLOTS:
|
|||
void emitNotification(ChronoUtilities::DateTime when, const QString &message);
|
||||
void emitError(const QString &message, const QJsonParseError &jsonError, QNetworkReply *reply, const QByteArray &response = QByteArray());
|
||||
void emitError(const QString &message, SyncthingErrorCategory category, QNetworkReply *reply);
|
||||
void emitMyIdChanged(const QString &newId);
|
||||
|
||||
private:
|
||||
QNetworkRequest prepareRequest(const QString &path, const QUrlQuery &query, bool rest = true);
|
||||
|
|
|
@ -50,8 +50,7 @@ bool SyncthingDir::finalizeStatusUpdate(SyncthingDirStatus newStatus)
|
|||
case SyncthingDirStatus::Unshared:
|
||||
if (!itemErrors.empty()) {
|
||||
newStatus = SyncthingDirStatus::OutOfSync;
|
||||
} else if (deviceIds.size() < 2) {
|
||||
// FIXME: we can assume only own device is assigned, correct?
|
||||
} else if (deviceIds.empty()) {
|
||||
newStatus = SyncthingDirStatus::Unshared;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -391,9 +391,9 @@ void ConnectionTests::checkDirectories() const
|
|||
CPPUNIT_ASSERT(!dir1.readOnly);
|
||||
CPPUNIT_ASSERT(!dir1.paused);
|
||||
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("MMGUI6U-WUEZQCP-XZZ6VYB-LCT4TVC-ER2HAVX-QYT6X7D-S6ZSG2B-323KLQ7"),
|
||||
QStringLiteral("6EIS2PN-J2IHWGS-AXS3YUL-HC5FT3K-77ZXTLL-AKQLJ4C-7SWVPUS-AZW4RQ4"), m_ownDevId }),
|
||||
QStringLiteral("6EIS2PN-J2IHWGS-AXS3YUL-HC5FT3K-77ZXTLL-AKQLJ4C-7SWVPUS-AZW4RQ4") }),
|
||||
dir1.deviceIds.toSet());
|
||||
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("Test dev 2"), QStringLiteral("Test dev 1"), m_ownDevName }), dir1.deviceNames.toSet());
|
||||
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("Test dev 2"), QStringLiteral("Test dev 1") }), dir1.deviceNames.toSet());
|
||||
const SyncthingDir &dir2 = dirInfo.back();
|
||||
CPPUNIT_ASSERT_EQUAL(QStringLiteral("test2"), dir2.id);
|
||||
CPPUNIT_ASSERT_EQUAL(QStringLiteral("Test dir 2"), dir2.label);
|
||||
|
@ -404,8 +404,8 @@ void ConnectionTests::checkDirectories() const
|
|||
CPPUNIT_ASSERT(!dir2.readOnly);
|
||||
CPPUNIT_ASSERT(dir2.paused);
|
||||
CPPUNIT_ASSERT_EQUAL(
|
||||
QSet<QString>({ QStringLiteral("MMGUI6U-WUEZQCP-XZZ6VYB-LCT4TVC-ER2HAVX-QYT6X7D-S6ZSG2B-323KLQ7"), m_ownDevId }), dir2.deviceIds.toSet());
|
||||
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("Test dev 2"), m_ownDevName }), dir2.deviceNames.toSet());
|
||||
QSet<QString>({ QStringLiteral("MMGUI6U-WUEZQCP-XZZ6VYB-LCT4TVC-ER2HAVX-QYT6X7D-S6ZSG2B-323KLQ7") }), dir2.deviceIds.toSet());
|
||||
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("Test dev 2") }), dir2.deviceNames.toSet());
|
||||
}
|
||||
|
||||
void ConnectionTests::testReconnecting()
|
||||
|
|
|
@ -195,11 +195,11 @@ void MiscTests::testSyncthingDir()
|
|||
CPPUNIT_ASSERT_EQUAL(QStringLiteral("out of sync"), dir.statusString());
|
||||
|
||||
dir.itemErrors.clear();
|
||||
dir.deviceIds.removeLast();
|
||||
dir.deviceIds.clear();
|
||||
CPPUNIT_ASSERT(dir.assignStatus(QStringLiteral("idle"), updateTime += TimeSpan::fromMinutes(1.5)));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("dir considered unshared when only one dev present", QStringLiteral("unshared"), dir.statusString());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("dir considered unshared when no devs present", QStringLiteral("unshared"), dir.statusString());
|
||||
CPPUNIT_ASSERT(!dir.assignStatus(SyncthingDirStatus::Idle, updateTime += TimeSpan::fromMinutes(1.5)));
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("dir considered unshared when only one dev present", QStringLiteral("unshared"), dir.statusString());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("dir considered unshared when no devs present", QStringLiteral("unshared"), dir.statusString());
|
||||
|
||||
updateTime += TimeSpan::fromMinutes(1.5);
|
||||
CPPUNIT_ASSERT_MESSAGE("same status again not considered an update", !dir.assignStatus(QStringLiteral("idle"), updateTime));
|
||||
|
|
|
@ -85,22 +85,22 @@
|
|||
<translation>Das SSL-Zertifikat von Syncthing kann nicht ausgelesen werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="888"/>
|
||||
<location filename="../syncthingconnection.cpp" line="884"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation>Fehler beim Auslesen der Syncthing-Konfiguration: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="895"/>
|
||||
<location filename="../syncthingconnection.cpp" line="891"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation>Fehler beim Abfragen der Syncthing-Konfiguration: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1005"/>
|
||||
<location filename="../syncthingconnection.cpp" line="986"/>
|
||||
<source>Unable to parse Syncthing status: </source>
|
||||
<translation>Fehler beim Auslesen des Syncthing-Status: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1012"/>
|
||||
<location filename="../syncthingconnection.cpp" line="993"/>
|
||||
<source>Unable to request Syncthing status: </source>
|
||||
<translation>Fehler beim Abfragen des Syncthing-Status: </translation>
|
||||
</message>
|
||||
|
@ -160,27 +160,27 @@
|
|||
<translation>Fehler beim Abfragen der Syncthing-Ereignisse: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1636"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1633"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation>Fehler beim Anfordern eines Verzeichnis-Rescans: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1660"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1657"/>
|
||||
<source>Unable to request device pause/resume: </source>
|
||||
<translation>Fehler beim Anfordern Gerät zu Pausieren/Fortzusetzen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1681"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1678"/>
|
||||
<source>Unable to request directory pause/resume: </source>
|
||||
<translation>Fehler beim Anfordern Verzeichnis zu Pausieren/Fortzusetzen: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1697"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1694"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation>Fehler beim Anfordern eines Neustarts: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1713"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1710"/>
|
||||
<source>Unable to request shutdown: </source>
|
||||
<translation>Fehler beim Anfordern Syncthing zu beenden: </translation>
|
||||
</message>
|
||||
|
@ -270,7 +270,7 @@
|
|||
<context>
|
||||
<name>SyncthingDir</name>
|
||||
<message>
|
||||
<location filename="../syncthingdir.cpp" line="117"/>
|
||||
<location filename="../syncthingdir.cpp" line="116"/>
|
||||
<source>paused</source>
|
||||
<translation>pausiert</translation>
|
||||
</message>
|
||||
|
|
|
@ -85,22 +85,22 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="888"/>
|
||||
<location filename="../syncthingconnection.cpp" line="884"/>
|
||||
<source>Unable to parse Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="895"/>
|
||||
<location filename="../syncthingconnection.cpp" line="891"/>
|
||||
<source>Unable to request Syncthing config: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1005"/>
|
||||
<location filename="../syncthingconnection.cpp" line="986"/>
|
||||
<source>Unable to parse Syncthing status: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1012"/>
|
||||
<location filename="../syncthingconnection.cpp" line="993"/>
|
||||
<source>Unable to request Syncthing status: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -160,27 +160,27 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1636"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1633"/>
|
||||
<source>Unable to request rescan: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1660"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1657"/>
|
||||
<source>Unable to request device pause/resume: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1681"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1678"/>
|
||||
<source>Unable to request directory pause/resume: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1697"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1694"/>
|
||||
<source>Unable to request restart: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingconnection.cpp" line="1713"/>
|
||||
<location filename="../syncthingconnection.cpp" line="1710"/>
|
||||
<source>Unable to request shutdown: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -270,7 +270,7 @@
|
|||
<context>
|
||||
<name>SyncthingDir</name>
|
||||
<message>
|
||||
<location filename="../syncthingdir.cpp" line="117"/>
|
||||
<location filename="../syncthingdir.cpp" line="116"/>
|
||||
<source>paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -109,7 +109,13 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
|
|||
case 1:
|
||||
return dir.path;
|
||||
case 2:
|
||||
return (dir.deviceNames.isEmpty() ? dir.deviceIds : dir.deviceNames).join(QStringLiteral(", "));
|
||||
if (!dir.deviceNames.isEmpty()) {
|
||||
return dir.deviceNames.join(QStringLiteral(", "));
|
||||
} else if (!dir.deviceIds.isEmpty()) {
|
||||
return dir.deviceIds.join(QStringLiteral(", "));
|
||||
} else {
|
||||
return tr("not shared");
|
||||
}
|
||||
case 3:
|
||||
return dir.readOnly ? tr("yes") : tr("no");
|
||||
case 4:
|
||||
|
@ -144,6 +150,11 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
|
|||
case 1:
|
||||
const SyncthingDir &dir = m_dirs[static_cast<size_t>(index.parent().row())];
|
||||
switch (index.row()) {
|
||||
case 2:
|
||||
if (dir.deviceIds.isEmpty()) {
|
||||
return Colors::gray(m_brightColors);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (dir.lastScanTime.isNull()) {
|
||||
return Colors::gray(m_brightColors);
|
||||
|
|
|
@ -153,23 +153,28 @@
|
|||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="114"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
|
||||
<source>not shared</source>
|
||||
<translation>nicht geteilt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<source>yes</source>
|
||||
<translation>ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="114"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<source>no</source>
|
||||
<translation>nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="123"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
|
||||
<source>unknown</source>
|
||||
<translation>unbekannt</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="132"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="138"/>
|
||||
<source>%1 and %2 item(s) out of sync</source>
|
||||
<translation>
|
||||
<numerusform>"%1" und %2 Element nicht synchronisiert</numerusform>
|
||||
|
@ -177,12 +182,12 @@
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="142"/>
|
||||
<source>none</source>
|
||||
<translation>keine</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="130"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
|
||||
<source>%1 item(s) out of sync</source>
|
||||
<translation>
|
||||
<numerusform>%1 Element nicht synchronisiert</numerusform>
|
||||
|
@ -190,37 +195,37 @@
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="180"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="191"/>
|
||||
<source>Deleted at %1</source>
|
||||
<translation>Gelöscht am %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="183"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="194"/>
|
||||
<source>Updated at %1</source>
|
||||
<translation>Aktualisiert am %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="196"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
|
||||
<source>Click for details</source>
|
||||
<translation>Für details klicken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="195"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="206"/>
|
||||
<source>Failed items</source>
|
||||
<translation>Fehlgeschlagene Elemente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
|
||||
<source>Unknown status</source>
|
||||
<translation>Unbekannter Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="222"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
|
||||
<source>Idle</source>
|
||||
<translation>Leerlauf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="220"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="231"/>
|
||||
<source>Unshared</source>
|
||||
<translation>Nicht geteilt</translation>
|
||||
</message>
|
||||
|
@ -230,32 +235,32 @@
|
|||
<translation>Geteilt mit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
|
||||
<source>Scanning (%1 %)</source>
|
||||
<translation>Scannen (%1 %)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
|
||||
<source>Scanning</source>
|
||||
<translation>Scannen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
|
||||
<source>Synchronizing (%1 %)</source>
|
||||
<translation>Synchronisieren (%1 %)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
|
||||
<source>Synchronizing</source>
|
||||
<translation>Synchronisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="214"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="225"/>
|
||||
<source>Paused</source>
|
||||
<translation>Pausiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="228"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="239"/>
|
||||
<source>Out of sync</source>
|
||||
<translation>Nicht synchronisiert</translation>
|
||||
</message>
|
||||
|
|
|
@ -149,28 +149,28 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="114"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<source>yes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="114"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<source>no</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="123"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
|
||||
<source>unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="142"/>
|
||||
<source>none</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="130"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
|
||||
<source>%1 item(s) out of sync</source>
|
||||
<translation>
|
||||
<numerusform>%1 item out of sync</numerusform>
|
||||
|
@ -182,8 +182,13 @@
|
|||
<source>Shared with</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
|
||||
<source>not shared</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="132"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="138"/>
|
||||
<source>%1 and %2 item(s) out of sync</source>
|
||||
<translation>
|
||||
<numerusform>%1 and %2 item out of sync</numerusform>
|
||||
|
@ -191,67 +196,67 @@
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="180"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="191"/>
|
||||
<source>Deleted at %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="183"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="194"/>
|
||||
<source>Updated at %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="195"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="206"/>
|
||||
<source>Failed items</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="196"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
|
||||
<source>Click for details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="214"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="225"/>
|
||||
<source>Paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
|
||||
<source>Unknown status</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="220"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="231"/>
|
||||
<source>Unshared</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="222"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
|
||||
<source>Idle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
|
||||
<source>Scanning (%1 %)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
|
||||
<source>Scanning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
|
||||
<source>Synchronizing (%1 %)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
|
||||
<source>Synchronizing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="228"/>
|
||||
<location filename="../syncthingdirectorymodel.cpp" line="239"/>
|
||||
<source>Out of sync</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in New Issue