Show names for the devs a dir is shared with

(previously only the IDs were shown)
This commit is contained in:
Martchus 2017-08-22 19:45:07 +02:00
parent 3ff4f69180
commit 9b45c49b97
13 changed files with 118 additions and 94 deletions

View File

@ -442,7 +442,7 @@ void Application::printDir(const SyncthingDir *dir)
printProperty("Last file time", dir->lastFileTime);
printProperty("Last file name", dir->lastFileName);
printProperty("Download progress", dir->downloadLabel);
printProperty("Devices", dir->devices);
printProperty("Shared with", dir->deviceNames.isEmpty() ? dir->deviceIds : dir->deviceNames);
printProperty("Read-only", dir->readOnly);
printProperty("Ignore permissions", dir->ignorePermissions);
printProperty("Auto-normalize", dir->autoNormalize);

View File

@ -500,7 +500,7 @@ SyncthingDir *SyncthingConnection::findDirInfo(const QString &dirId, int &row)
/*!
* \brief Appends a directory info object with the specified \a dirId to \a dirs.
*
* If such an object already exists, it is recycled by moving it do \a dirs.
* If such an object already exists, it is recycled by moving it to \a dirs.
* Otherwise a new, empty object is created.
*
* \returns Returns the directory info object or nullptr if \a dirId is invalid.
@ -566,7 +566,7 @@ QStringList SyncthingConnection::deviceIds() const
/*!
* \brief Appends a device info object with the specified \a devId to \a devs.
*
* If such an object already exists, it is recycled by moving it do \a dirs.
* If such an object already exists, it is recycled by moving it to \a devs.
* Otherwise a new, empty object is created.
*
* \returns Returns the device info object or nullptr if \a devId is invalid.
@ -878,8 +878,8 @@ void SyncthingConnection::readConfig()
if (jsonError.error == QJsonParseError::NoError) {
m_rawConfig = replyDoc.object();
emit newConfig(m_rawConfig);
readDirs(m_rawConfig.value(QStringLiteral("folders")).toArray());
readDevs(m_rawConfig.value(QStringLiteral("devices")).toArray());
readDirs(m_rawConfig.value(QStringLiteral("folders")).toArray());
m_hasConfig = true;
if (!isConnected()) {
continueConnecting();
@ -902,21 +902,28 @@ void SyncthingConnection::readConfig()
/*!
* \brief Reads directory results of requestConfig(); called by readConfig().
* \remarks The devs are required to resolve the names of the devices a directory is shared with.
* So when parsing the config, readDevs() should be called first.
*/
void SyncthingConnection::readDirs(const QJsonArray &dirs)
{
std::vector<SyncthingDir> newDirs;
newDirs.reserve(static_cast<size_t>(dirs.size()));
int dummy;
for (const QJsonValue &dirVal : dirs) {
const QJsonObject dirObj(dirVal.toObject());
if (SyncthingDir *dirItem = addDirInfo(newDirs, dirObj.value(QStringLiteral("id")).toString())) {
dirItem->label = dirObj.value(QStringLiteral("label")).toString();
dirItem->path = dirObj.value(QStringLiteral("path")).toString();
dirItem->devices.clear();
dirItem->deviceIds.clear();
dirItem->deviceNames.clear();
for (const QJsonValue &dev : dirObj.value(QStringLiteral("devices")).toArray()) {
const QString devId = dev.toObject().value(QStringLiteral("deviceID")).toString();
if (!devId.isEmpty()) {
dirItem->devices << devId;
dirItem->deviceIds << devId;
if (const SyncthingDev *const dev = findDevInfo(devId, dummy)) {
dirItem->deviceNames << dev->name;
}
}
}
dirItem->readOnly = dirObj.value(QStringLiteral("readOnly")).toBool(false);

View File

@ -50,7 +50,7 @@ bool SyncthingDir::finalizeStatusUpdate(SyncthingDirStatus newStatus)
case SyncthingDirStatus::Unshared:
if (!itemErrors.empty()) {
newStatus = SyncthingDirStatus::OutOfSync;
} else if (devices.size() < 2) {
} else if (deviceIds.size() < 2) {
// FIXME: we can assume only own device is assigned, correct?
newStatus = SyncthingDirStatus::Unshared;
}

View File

@ -70,7 +70,8 @@ struct LIB_SYNCTHING_CONNECTOR_EXPORT SyncthingDir {
QString id;
QString label;
QString path;
QStringList devices;
QStringList deviceIds;
QStringList deviceNames;
bool readOnly = false;
bool ignorePermissions = false;
bool autoNormalize = false;

View File

@ -96,6 +96,7 @@ private:
SyncthingConnection m_connection;
QString m_ownDevId;
QString m_ownDevName;
};
CPPUNIT_TEST_SUITE_REGISTRATION(ConnectionTests);
@ -342,6 +343,7 @@ void ConnectionTests::checkDevices()
&& dev.id != QStringLiteral("6EIS2PN-J2IHWGS-AXS3YUL-HC5FT3K-77ZXTLL-AKQLJ4C-7SWVPUS-AZW4RQ4")) {
CPPUNIT_ASSERT_EQUAL_MESSAGE("own device", QStringLiteral("own device"), dev.statusString());
m_ownDevId = dev.id;
m_ownDevName = dev.name;
}
}
const SyncthingDev *dev1 = nullptr, *dev2 = nullptr;
@ -388,8 +390,10 @@ void ConnectionTests::checkDirectories() const
CPPUNIT_ASSERT_EQUAL(QStringLiteral("idle"), dir1.statusString());
CPPUNIT_ASSERT(!dir1.readOnly);
CPPUNIT_ASSERT(!dir1.paused);
CPPUNIT_ASSERT_EQUAL(dir1.devices.toSet(), QSet<QString>({ QStringLiteral("MMGUI6U-WUEZQCP-XZZ6VYB-LCT4TVC-ER2HAVX-QYT6X7D-S6ZSG2B-323KLQ7"),
QStringLiteral("6EIS2PN-J2IHWGS-AXS3YUL-HC5FT3K-77ZXTLL-AKQLJ4C-7SWVPUS-AZW4RQ4"), m_ownDevId }));
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 }),
dir1.deviceIds.toSet());
CPPUNIT_ASSERT_EQUAL(QSet<QString>({ QStringLiteral("Test dev 2"), QStringLiteral("Test dev 1"), m_ownDevName }), dir1.deviceNames.toSet());
const SyncthingDir &dir2 = dirInfo.back();
CPPUNIT_ASSERT_EQUAL(QStringLiteral("test2"), dir2.id);
CPPUNIT_ASSERT_EQUAL(QStringLiteral("Test dir 2"), dir2.label);
@ -400,7 +404,8 @@ void ConnectionTests::checkDirectories() const
CPPUNIT_ASSERT(!dir2.readOnly);
CPPUNIT_ASSERT(dir2.paused);
CPPUNIT_ASSERT_EQUAL(
dir2.devices.toSet(), QSet<QString>({ QStringLiteral("MMGUI6U-WUEZQCP-XZZ6VYB-LCT4TVC-ER2HAVX-QYT6X7D-S6ZSG2B-323KLQ7"), m_ownDevId }));
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());
}
void ConnectionTests::testReconnecting()

View File

@ -152,7 +152,7 @@ void MiscTests::testConnectionSettingsAndLoadingSelfSignedCert()
void MiscTests::testSyncthingDir()
{
SyncthingDir dir;
dir.devices << QStringLiteral("dev1") << QStringLiteral("dev2");
dir.deviceIds << QStringLiteral("dev1") << QStringLiteral("dev2");
DateTime updateTime(DateTime::fromDate(2005, 2, 3));
CPPUNIT_ASSERT(dir.assignStatus(SyncthingDirStatus::Unshared, updateTime));
@ -195,7 +195,7 @@ void MiscTests::testSyncthingDir()
CPPUNIT_ASSERT_EQUAL(QStringLiteral("out of sync"), dir.statusString());
dir.itemErrors.clear();
dir.devices.removeLast();
dir.deviceIds.removeLast();
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(!dir.assignStatus(SyncthingDirStatus::Idle, updateTime += TimeSpan::fromMinutes(1.5)));

View File

@ -95,92 +95,92 @@
<translation>Fehler beim Abfragen der Syncthing-Konfiguration: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="998"/>
<location filename="../syncthingconnection.cpp" line="1005"/>
<source>Unable to parse Syncthing status: </source>
<translation>Fehler beim Auslesen des Syncthing-Status: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1005"/>
<location filename="../syncthingconnection.cpp" line="1012"/>
<source>Unable to request Syncthing status: </source>
<translation>Fehler beim Abfragen des Syncthing-Status: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1087"/>
<location filename="../syncthingconnection.cpp" line="1094"/>
<source>Unable to parse connections: </source>
<translation>Fehler beim Auslesen der Verbindungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1094"/>
<location filename="../syncthingconnection.cpp" line="1101"/>
<source>Unable to request connections: </source>
<translation>Fehler beim Abfragen der Verbindungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1153"/>
<location filename="../syncthingconnection.cpp" line="1156"/>
<source>Unable to parse directory statistics: </source>
<translation>Fehler beim Auslesen der Verzeichnisstatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1160"/>
<location filename="../syncthingconnection.cpp" line="1163"/>
<source>Unable to request directory statistics: </source>
<translation>Fehler beim Abfragen der Verzeichnisstatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1197"/>
<location filename="../syncthingconnection.cpp" line="1200"/>
<source>Unable to parse device statistics: </source>
<translation>Fehler beim Auslesen der Gerätestatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1204"/>
<location filename="../syncthingconnection.cpp" line="1207"/>
<source>Unable to request device statistics: </source>
<translation>Fehler beim Abfragen der Gerätestatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1243"/>
<location filename="../syncthingconnection.cpp" line="1246"/>
<source>Unable to parse errors: </source>
<translation>Fehler beim Auslesen der Syncthing-Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1255"/>
<location filename="../syncthingconnection.cpp" line="1258"/>
<source>Unable to request errors: </source>
<translation>Fehler beim Abfragen der Syncthing-Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1271"/>
<location filename="../syncthingconnection.cpp" line="1274"/>
<source>Unable to request clearing errors: </source>
<translation>Fehler beim Löschen der Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1325"/>
<location filename="../syncthingconnection.cpp" line="1328"/>
<source>Unable to parse Syncthing events: </source>
<translation>Fehler beim Auslesen der Syncthing-Ereignisse: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1348"/>
<location filename="../syncthingconnection.cpp" line="1351"/>
<source>Unable to request Syncthing events: </source>
<translation>Fehler beim Abfragen der Syncthing-Ereignisse: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1633"/>
<location filename="../syncthingconnection.cpp" line="1636"/>
<source>Unable to request rescan: </source>
<translation>Fehler beim Anfordern eines Verzeichnis-Rescans: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1657"/>
<location filename="../syncthingconnection.cpp" line="1660"/>
<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="1678"/>
<location filename="../syncthingconnection.cpp" line="1681"/>
<source>Unable to request directory pause/resume: </source>
<translation>Fehler beim Anfordern Verzeichnis zu Pausieren/Fortzusetzen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1694"/>
<location filename="../syncthingconnection.cpp" line="1697"/>
<source>Unable to request restart: </source>
<translation>Fehler beim Anfordern eines Neustarts: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1710"/>
<location filename="../syncthingconnection.cpp" line="1713"/>
<source>Unable to request shutdown: </source>
<translation>Fehler beim Anfordern Syncthing zu beenden: </translation>
</message>

View File

@ -95,92 +95,92 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="998"/>
<location filename="../syncthingconnection.cpp" line="1005"/>
<source>Unable to parse Syncthing status: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1005"/>
<location filename="../syncthingconnection.cpp" line="1012"/>
<source>Unable to request Syncthing status: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1087"/>
<location filename="../syncthingconnection.cpp" line="1094"/>
<source>Unable to parse connections: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1094"/>
<location filename="../syncthingconnection.cpp" line="1101"/>
<source>Unable to request connections: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1153"/>
<location filename="../syncthingconnection.cpp" line="1156"/>
<source>Unable to parse directory statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1160"/>
<location filename="../syncthingconnection.cpp" line="1163"/>
<source>Unable to request directory statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1197"/>
<location filename="../syncthingconnection.cpp" line="1200"/>
<source>Unable to parse device statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1204"/>
<location filename="../syncthingconnection.cpp" line="1207"/>
<source>Unable to request device statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1243"/>
<location filename="../syncthingconnection.cpp" line="1246"/>
<source>Unable to parse errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1255"/>
<location filename="../syncthingconnection.cpp" line="1258"/>
<source>Unable to request errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1271"/>
<location filename="../syncthingconnection.cpp" line="1274"/>
<source>Unable to request clearing errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1325"/>
<location filename="../syncthingconnection.cpp" line="1328"/>
<source>Unable to parse Syncthing events: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1348"/>
<location filename="../syncthingconnection.cpp" line="1351"/>
<source>Unable to request Syncthing events: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1633"/>
<location filename="../syncthingconnection.cpp" line="1636"/>
<source>Unable to request rescan: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1657"/>
<location filename="../syncthingconnection.cpp" line="1660"/>
<source>Unable to request device pause/resume: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1678"/>
<location filename="../syncthingconnection.cpp" line="1681"/>
<source>Unable to request directory pause/resume: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1694"/>
<location filename="../syncthingconnection.cpp" line="1697"/>
<source>Unable to request restart: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1710"/>
<location filename="../syncthingconnection.cpp" line="1713"/>
<source>Unable to request shutdown: </source>
<translation type="unfinished"></translation>
</message>

View File

@ -88,7 +88,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
case 1:
return tr("Path");
case 2:
return tr("Devices");
return tr("Shared with");
case 3:
return tr("Read-only");
case 4:
@ -109,7 +109,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
case 1:
return dir.path;
case 2:
return dir.devices.join(QStringLiteral(", "));
return (dir.deviceNames.isEmpty() ? dir.deviceIds : dir.deviceNames).join(QStringLiteral(", "));
case 3:
return dir.readOnly ? tr("yes") : tr("no");
case 4:
@ -162,6 +162,13 @@ 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.deviceNames.isEmpty()) {
return dir.deviceIds.join(QChar('\n'));
} else {
return QString(dir.deviceNames.join(QStringLiteral(", ")) % QChar('\n') % QChar('(') % dir.deviceIds.join(QChar('\n'))
% QChar(')'));
}
case 5:
if (!dir.lastScanTime.isNull()) {
return agoString(dir.lastScanTime);

View File

@ -124,9 +124,8 @@
<translation>Pfad</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<source>Devices</source>
<translation>Geräte</translation>
<translation type="vanished">Geräte</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="93"/>
@ -191,67 +190,72 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="173"/>
<location filename="../syncthingdirectorymodel.cpp" line="180"/>
<source>Deleted at %1</source>
<translation>Gelöscht am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="176"/>
<location filename="../syncthingdirectorymodel.cpp" line="183"/>
<source>Updated at %1</source>
<translation>Aktualisiert am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="189"/>
<location filename="../syncthingdirectorymodel.cpp" line="196"/>
<source>Click for details</source>
<translation>Für details klicken</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="188"/>
<location filename="../syncthingdirectorymodel.cpp" line="195"/>
<source>Failed items</source>
<translation>Fehlgeschlagene Elemente</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="211"/>
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
<source>Unknown status</source>
<translation>Unbekannter Status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="215"/>
<location filename="../syncthingdirectorymodel.cpp" line="222"/>
<source>Idle</source>
<translation>Leerlauf</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="213"/>
<location filename="../syncthingdirectorymodel.cpp" line="220"/>
<source>Unshared</source>
<translation>Nicht geteilt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<source>Shared with</source>
<translation>Geteilt mit</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
<source>Scanning (%1 %)</source>
<translation>Scannen (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
<source>Scanning</source>
<translation>Scannen</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="219"/>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<source>Synchronizing (%1 %)</source>
<translation>Synchronisieren (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="219"/>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<source>Synchronizing</source>
<translation>Synchronisieren</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
<location filename="../syncthingdirectorymodel.cpp" line="214"/>
<source>Paused</source>
<translation>Pausiert</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="221"/>
<location filename="../syncthingdirectorymodel.cpp" line="228"/>
<source>Out of sync</source>
<translation>Nicht synchronisiert</translation>
</message>

View File

@ -123,11 +123,6 @@
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<source>Devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="93"/>
<source>Read-only</source>
@ -182,6 +177,11 @@
<numerusform>%1 items out of sync</numerusform>
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<source>Shared with</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="132"/>
<source>%1 and %2 item(s) out of sync</source>
@ -191,67 +191,67 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="173"/>
<location filename="../syncthingdirectorymodel.cpp" line="180"/>
<source>Deleted at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="176"/>
<location filename="../syncthingdirectorymodel.cpp" line="183"/>
<source>Updated at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="188"/>
<location filename="../syncthingdirectorymodel.cpp" line="195"/>
<source>Failed items</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="189"/>
<location filename="../syncthingdirectorymodel.cpp" line="196"/>
<source>Click for details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
<location filename="../syncthingdirectorymodel.cpp" line="214"/>
<source>Paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="211"/>
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
<source>Unknown status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="213"/>
<location filename="../syncthingdirectorymodel.cpp" line="220"/>
<source>Unshared</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="215"/>
<location filename="../syncthingdirectorymodel.cpp" line="222"/>
<source>Idle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
<source>Scanning (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<location filename="../syncthingdirectorymodel.cpp" line="224"/>
<source>Scanning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="219"/>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<source>Synchronizing (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="219"/>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<source>Synchronizing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="221"/>
<location filename="../syncthingdirectorymodel.cpp" line="228"/>
<source>Out of sync</source>
<translation type="unfinished"></translation>
</message>

View File

@ -329,22 +329,22 @@
<context>
<name>QtGui::ErrorViewDialog</name>
<message>
<location filename="../misc/errorviewdialog.cpp" line="24"/>
<location filename="../misc/errorviewdialog.cpp" line="25"/>
<source>Internal errors</source>
<translation>Interne Fehler</translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="25"/>
<location filename="../misc/errorviewdialog.cpp" line="26"/>
<source>Request URL:</source>
<translation>URL der Anfrage:</translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="26"/>
<location filename="../misc/errorviewdialog.cpp" line="27"/>
<source>Response:</source>
<translation>Antwort:</translation>
</message>
<message numerus="yes">
<location filename="../misc/errorviewdialog.cpp" line="88"/>
<location filename="../misc/errorviewdialog.cpp" line="100"/>
<source>%1 error(s) occured</source>
<translation type="unfinished">
<numerusform>%1 interner Fehler</numerusform>
@ -352,7 +352,7 @@
</translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="52"/>
<location filename="../misc/errorviewdialog.cpp" line="53"/>
<source>Clear errors</source>
<translation>Liste der Fehler löschen</translation>
</message>

View File

@ -329,22 +329,22 @@
<context>
<name>QtGui::ErrorViewDialog</name>
<message>
<location filename="../misc/errorviewdialog.cpp" line="24"/>
<location filename="../misc/errorviewdialog.cpp" line="25"/>
<source>Internal errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="25"/>
<location filename="../misc/errorviewdialog.cpp" line="26"/>
<source>Request URL:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="26"/>
<location filename="../misc/errorviewdialog.cpp" line="27"/>
<source>Response:</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../misc/errorviewdialog.cpp" line="88"/>
<location filename="../misc/errorviewdialog.cpp" line="100"/>
<source>%1 error(s) occured</source>
<translation type="unfinished">
<numerusform>%1 error occured</numerusform>
@ -352,7 +352,7 @@
</translation>
</message>
<message>
<location filename="../misc/errorviewdialog.cpp" line="52"/>
<location filename="../misc/errorviewdialog.cpp" line="53"/>
<source>Clear errors</source>
<translation type="unfinished"></translation>
</message>