Show global and local dir status

This commit is contained in:
Martchus 2017-08-24 00:00:57 +02:00
parent 85ac283455
commit af8327ece0
7 changed files with 199 additions and 121 deletions

View File

@ -60,103 +60,103 @@
<translation>Fehler beim Anfordern Gerät zu Pausieren/Fortzusetzen</translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="745"/>
<location filename="../syncthingconnection.cpp" line="748"/>
<source>Unable to request QR-Code: </source>
<translation>Fehler beim Abfragen des QR-Codes: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="765"/>
<location filename="../syncthingconnection.cpp" line="768"/>
<source>Unable to parse Syncthing log: </source>
<translation>Fehler beim Auslesen des Syncthing-Logs: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="780"/>
<location filename="../syncthingconnection.cpp" line="783"/>
<source>Unable to request Syncthing log: </source>
<translation>Fehler beim Abfragen des Syncthing-Logs: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="814"/>
<location filename="../syncthingconnection.cpp" line="817"/>
<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="820"/>
<location filename="../syncthingconnection.cpp" line="823"/>
<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="895"/>
<location filename="../syncthingconnection.cpp" line="898"/>
<source>Unable to parse Syncthing config: </source>
<translation>Fehler beim Auslesen der Syncthing-Konfiguration: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="909"/>
<location filename="../syncthingconnection.cpp" line="912"/>
<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="1008"/>
<source>Unable to parse Syncthing status: </source>
<translation>Fehler beim Auslesen des Syncthing-Status: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1019"/>
<location filename="../syncthingconnection.cpp" line="1022"/>
<source>Unable to request Syncthing status: </source>
<translation>Fehler beim Abfragen des Syncthing-Status: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1060"/>
<location filename="../syncthingconnection.cpp" line="1063"/>
<source>Unable to parse connections: </source>
<translation>Fehler beim Auslesen der Verbindungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1133"/>
<location filename="../syncthingconnection.cpp" line="1136"/>
<source>Unable to request connections: </source>
<translation>Fehler beim Abfragen der Verbindungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1151"/>
<location filename="../syncthingconnection.cpp" line="1154"/>
<source>Unable to parse directory statistics: </source>
<translation>Fehler beim Auslesen der Verzeichnisstatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1197"/>
<location filename="../syncthingconnection.cpp" line="1200"/>
<location filename="../syncthingconnection.cpp" line="1781"/>
<source>Unable to request directory statistics: </source>
<translation>Fehler beim Abfragen der Verzeichnisstatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1215"/>
<location filename="../syncthingconnection.cpp" line="1218"/>
<source>Unable to parse device statistics: </source>
<translation>Fehler beim Auslesen der Gerätestatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1242"/>
<location filename="../syncthingconnection.cpp" line="1245"/>
<source>Unable to request device statistics: </source>
<translation>Fehler beim Abfragen der Gerätestatistiken: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1268"/>
<location filename="../syncthingconnection.cpp" line="1271"/>
<source>Unable to parse errors: </source>
<translation>Fehler beim Auslesen der Syncthing-Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1295"/>
<location filename="../syncthingconnection.cpp" line="1298"/>
<source>Unable to request errors: </source>
<translation>Fehler beim Abfragen der Syncthing-Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1311"/>
<location filename="../syncthingconnection.cpp" line="1314"/>
<source>Unable to request clearing errors: </source>
<translation>Fehler beim Löschen der Fehlermeldungen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1332"/>
<location filename="../syncthingconnection.cpp" line="1335"/>
<source>Unable to parse Syncthing events: </source>
<translation>Fehler beim Auslesen der Syncthing-Ereignisse: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1385"/>
<location filename="../syncthingconnection.cpp" line="1388"/>
<source>Unable to request Syncthing events: </source>
<translation>Fehler beim Abfragen der Syncthing-Ereignisse: </translation>
</message>

View File

@ -60,103 +60,103 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="745"/>
<location filename="../syncthingconnection.cpp" line="748"/>
<source>Unable to request QR-Code: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="765"/>
<location filename="../syncthingconnection.cpp" line="768"/>
<source>Unable to parse Syncthing log: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="780"/>
<location filename="../syncthingconnection.cpp" line="783"/>
<source>Unable to request Syncthing log: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="814"/>
<location filename="../syncthingconnection.cpp" line="817"/>
<source>Unable to locate certificate used by Syncthing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="820"/>
<location filename="../syncthingconnection.cpp" line="823"/>
<source>Unable to load certificate used by Syncthing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="895"/>
<location filename="../syncthingconnection.cpp" line="898"/>
<source>Unable to parse Syncthing config: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="909"/>
<location filename="../syncthingconnection.cpp" line="912"/>
<source>Unable to request Syncthing config: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1005"/>
<location filename="../syncthingconnection.cpp" line="1008"/>
<source>Unable to parse Syncthing status: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1019"/>
<location filename="../syncthingconnection.cpp" line="1022"/>
<source>Unable to request Syncthing status: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1060"/>
<location filename="../syncthingconnection.cpp" line="1063"/>
<source>Unable to parse connections: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1133"/>
<location filename="../syncthingconnection.cpp" line="1136"/>
<source>Unable to request connections: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1151"/>
<location filename="../syncthingconnection.cpp" line="1154"/>
<source>Unable to parse directory statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1197"/>
<location filename="../syncthingconnection.cpp" line="1200"/>
<location filename="../syncthingconnection.cpp" line="1781"/>
<source>Unable to request directory statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1215"/>
<location filename="../syncthingconnection.cpp" line="1218"/>
<source>Unable to parse device statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1242"/>
<location filename="../syncthingconnection.cpp" line="1245"/>
<source>Unable to request device statistics: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1268"/>
<location filename="../syncthingconnection.cpp" line="1271"/>
<source>Unable to parse errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1295"/>
<location filename="../syncthingconnection.cpp" line="1298"/>
<source>Unable to request errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1311"/>
<location filename="../syncthingconnection.cpp" line="1314"/>
<source>Unable to request clearing errors: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1332"/>
<location filename="../syncthingconnection.cpp" line="1335"/>
<source>Unable to parse Syncthing events: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1385"/>
<location filename="../syncthingconnection.cpp" line="1388"/>
<source>Unable to request Syncthing events: </source>
<translation type="unfinished"></translation>
</message>

View File

@ -6,6 +6,8 @@
#include <QJsonValue>
#include <QStringList>
#include <limits>
QT_FORWARD_DECLARE_CLASS(QUrl)
QT_FORWARD_DECLARE_CLASS(QJsonObject)
@ -25,6 +27,11 @@ inline quint64 LIB_SYNCTHING_CONNECTOR_EXPORT toUInt64(const QJsonValue &value,
return static_cast<quint64>(value.toDouble(defaultValue));
}
constexpr int LIB_SYNCTHING_CONNECTOR_EXPORT trQuandity(quint64 quandity)
{
return quandity > std::numeric_limits<int>::max() ? std::numeric_limits<int>::max() : static_cast<int>(quandity);
}
template <class Objects> QStringList LIB_SYNCTHING_CONNECTOR_EXPORT ids(const Objects &objects)
{
QStringList ids;

View File

@ -5,9 +5,12 @@
#include "../connector/syncthingconnection.h"
#include "../connector/utils.h"
#include <c++utilities/conversion/stringconversion.h>
#include <QStringBuilder>
using namespace ChronoUtilities;
using namespace ConversionUtilities;
namespace Data {
@ -88,16 +91,20 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
case 1:
return tr("Path");
case 2:
return tr("Shared with");
return tr("Global status");
case 3:
return tr("Read-only");
return tr("Local status");
case 4:
return tr("Rescan interval");
return tr("Shared with");
case 5:
return tr("Last scan");
return tr("Read-only");
case 6:
return tr("Last file");
return tr("Rescan interval");
case 7:
return tr("Last scan");
case 8:
return tr("Last file");
case 9:
return tr("Errors");
}
break;
@ -109,6 +116,10 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
case 1:
return dir.path;
case 2:
return statusLabel(dir.globalFiles, dir.globalDirs, dir.globalBytes);
case 3:
return statusLabel(dir.localFiles, dir.localDirs, dir.localBytes);
case 4:
if (!dir.deviceNames.isEmpty()) {
return dir.deviceNames.join(QStringLiteral(", "));
} else if (!dir.deviceIds.isEmpty()) {
@ -116,18 +127,18 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
} else {
return tr("not shared");
}
case 3:
case 5:
return dir.readOnly ? tr("yes") : tr("no");
case 4:
case 6:
return QString::fromLatin1(
TimeSpan::fromSeconds(dir.rescanInterval).toString(TimeSpanOutputFormat::WithMeasures, true).data());
case 5:
case 7:
return dir.lastScanTime.isNull()
? tr("unknown")
: QString::fromLatin1(dir.lastScanTime.toString(DateTimeOutputFormat::DateAndTime, true).data());
case 6:
case 8:
return dir.lastFileName.isEmpty() ? tr("unknown") : dir.lastFileName;
case 7:
case 9:
if (!dir.globalError.isEmpty() || !dir.itemErrors.empty()) {
if (dir.itemErrors.empty()) {
return dir.globalError;
@ -150,20 +161,20 @@ 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:
case 4:
if (dir.deviceIds.isEmpty()) {
return Colors::gray(m_brightColors);
}
break;
case 5:
case 7:
if (dir.lastScanTime.isNull()) {
return Colors::gray(m_brightColors);
}
break;
case 6:
case 8:
return dir.lastFileName.isEmpty() ? Colors::gray(m_brightColors)
: (dir.lastFileDeleted ? Colors::red(m_brightColors) : QVariant());
case 7:
case 9:
return dir.globalError.isEmpty() && dir.itemErrors.empty() ? Colors::gray(m_brightColors) : Colors::red(m_brightColors);
}
}
@ -173,19 +184,19 @@ 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:
case 3:
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:
case 7:
if (!dir.lastScanTime.isNull()) {
return agoString(dir.lastScanTime);
}
break;
case 6:
case 8:
if (!dir.lastFileTime.isNull()) {
if (dir.lastFileDeleted) {
return tr("Deleted at %1")
@ -196,7 +207,7 @@ QVariant SyncthingDirectoryModel::data(const QModelIndex &index, int role) const
}
}
break;
case 7:
case 9:
if (!dir.itemErrors.empty()) {
QStringList errors;
errors.reserve(static_cast<int>(dir.itemErrors.size()));
@ -319,7 +330,7 @@ int SyncthingDirectoryModel::rowCount(const QModelIndex &parent) const
if (!parent.isValid()) {
return static_cast<int>(m_dirs.size());
} else if (!parent.parent().isValid()) {
return 8;
return 10;
} else {
return 0;
}
@ -355,4 +366,10 @@ void SyncthingDirectoryModel::dirStatusChanged(const SyncthingDir &, int index)
emit dataChanged(this->index(0, 1, modelIndex1), this->index(7, 1, modelIndex1), QVector<int>() << Qt::DisplayRole);
}
QString SyncthingDirectoryModel::statusLabel(quint64 files, quint64 dirs, quint64 size)
{
return tr("%1 file(s)", nullptr, trQuandity(files)).arg(files) % QChar(',') % QChar(' ') % tr("%1 dir(s)", nullptr, trQuandity(dirs)).arg(dirs)
% QChar(',') % QChar(' ') % QString::fromUtf8(dataSizeToString(size).data());
}
} // namespace Data

View File

@ -34,6 +34,8 @@ private Q_SLOTS:
void dirStatusChanged(const SyncthingDir &, int index);
private:
static QString statusLabel(quint64 files, quint64 dirs, quint64 size);
const std::vector<SyncthingDir> &m_dirs;
};

View File

@ -108,18 +108,18 @@
<context>
<name>Data::SyncthingDirectoryModel</name>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="61"/>
<location filename="../syncthingdirectorymodel.cpp" line="87"/>
<location filename="../syncthingdirectorymodel.cpp" line="64"/>
<location filename="../syncthingdirectorymodel.cpp" line="90"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="63"/>
<location filename="../syncthingdirectorymodel.cpp" line="66"/>
<source>Status</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="89"/>
<location filename="../syncthingdirectorymodel.cpp" line="92"/>
<source>Path</source>
<translation>Pfad</translation>
</message>
@ -128,53 +128,53 @@
<translation type="vanished">Geräte</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="93"/>
<location filename="../syncthingdirectorymodel.cpp" line="100"/>
<source>Read-only</source>
<translation>Schreibgeschützt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="95"/>
<location filename="../syncthingdirectorymodel.cpp" line="102"/>
<source>Rescan interval</source>
<translation>Scanintervall</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="97"/>
<location filename="../syncthingdirectorymodel.cpp" line="104"/>
<source>Last scan</source>
<translation>Letzter Scan</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="99"/>
<location filename="../syncthingdirectorymodel.cpp" line="106"/>
<source>Last file</source>
<translation>Letzte Datei</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="101"/>
<location filename="../syncthingdirectorymodel.cpp" line="108"/>
<source>Errors</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
<location filename="../syncthingdirectorymodel.cpp" line="128"/>
<source>not shared</source>
<translation>nicht geteilt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<location filename="../syncthingdirectorymodel.cpp" line="131"/>
<source>yes</source>
<translation>ja</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<location filename="../syncthingdirectorymodel.cpp" line="131"/>
<source>no</source>
<translation>nein</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
<location filename="../syncthingdirectorymodel.cpp" line="137"/>
<location filename="../syncthingdirectorymodel.cpp" line="140"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="138"/>
<location filename="../syncthingdirectorymodel.cpp" line="149"/>
<source>%1 and %2 item(s) out of sync</source>
<translation>
<numerusform>&quot;%1&quot; und %2 Element nicht synchronisiert</numerusform>
@ -182,12 +182,28 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="142"/>
<location filename="../syncthingdirectorymodel.cpp" line="153"/>
<source>none</source>
<translation>keine</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
<location filename="../syncthingdirectorymodel.cpp" line="371"/>
<source>%1 file(s)</source>
<translation>
<numerusform>%1 Datei</numerusform>
<numerusform>%1 Dateien</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="371"/>
<source>%1 dir(s)</source>
<translation type="unfinished">
<numerusform>%1 Verz.</numerusform>
<numerusform>%1 Verz.</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="147"/>
<source>%1 item(s) out of sync</source>
<translation>
<numerusform>%1 Element nicht synchronisiert</numerusform>
@ -195,72 +211,82 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="191"/>
<location filename="../syncthingdirectorymodel.cpp" line="202"/>
<source>Deleted at %1</source>
<translation>Gelöscht am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="194"/>
<location filename="../syncthingdirectorymodel.cpp" line="205"/>
<source>Updated at %1</source>
<translation>Aktualisiert am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
<source>Click for details</source>
<translation>Für details klicken</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="206"/>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<source>Failed items</source>
<translation>Fehlgeschlagene Elemente</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
<location filename="../syncthingdirectorymodel.cpp" line="240"/>
<source>Unknown status</source>
<translation>Unbekannter Status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
<location filename="../syncthingdirectorymodel.cpp" line="244"/>
<source>Idle</source>
<translation>Leerlauf</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="231"/>
<location filename="../syncthingdirectorymodel.cpp" line="242"/>
<source>Unshared</source>
<translation>Nicht geteilt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<location filename="../syncthingdirectorymodel.cpp" line="94"/>
<source>Global status</source>
<translation>Globaler status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="96"/>
<source>Local status</source>
<translation>Lokaler status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="98"/>
<source>Shared with</source>
<translation>Geteilt mit</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
<location filename="../syncthingdirectorymodel.cpp" line="246"/>
<source>Scanning (%1 %)</source>
<translation>Scannen (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
<location filename="../syncthingdirectorymodel.cpp" line="246"/>
<source>Scanning</source>
<translation>Scannen</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Synchronizing (%1 %)</source>
<translation>Synchronisieren (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Synchronizing</source>
<translation>Synchronisieren</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="225"/>
<location filename="../syncthingdirectorymodel.cpp" line="236"/>
<source>Paused</source>
<translation>Pausiert</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="239"/>
<location filename="../syncthingdirectorymodel.cpp" line="250"/>
<source>Out of sync</source>
<translation>Nicht synchronisiert</translation>
</message>

View File

@ -108,69 +108,69 @@
<context>
<name>Data::SyncthingDirectoryModel</name>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="61"/>
<location filename="../syncthingdirectorymodel.cpp" line="87"/>
<location filename="../syncthingdirectorymodel.cpp" line="64"/>
<location filename="../syncthingdirectorymodel.cpp" line="90"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="63"/>
<location filename="../syncthingdirectorymodel.cpp" line="66"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="89"/>
<location filename="../syncthingdirectorymodel.cpp" line="92"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="93"/>
<location filename="../syncthingdirectorymodel.cpp" line="100"/>
<source>Read-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="95"/>
<location filename="../syncthingdirectorymodel.cpp" line="102"/>
<source>Rescan interval</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="97"/>
<location filename="../syncthingdirectorymodel.cpp" line="104"/>
<source>Last scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="99"/>
<location filename="../syncthingdirectorymodel.cpp" line="106"/>
<source>Last file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="101"/>
<location filename="../syncthingdirectorymodel.cpp" line="108"/>
<source>Errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<location filename="../syncthingdirectorymodel.cpp" line="131"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<location filename="../syncthingdirectorymodel.cpp" line="131"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
<location filename="../syncthingdirectorymodel.cpp" line="137"/>
<location filename="../syncthingdirectorymodel.cpp" line="140"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="142"/>
<location filename="../syncthingdirectorymodel.cpp" line="153"/>
<source>none</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
<location filename="../syncthingdirectorymodel.cpp" line="147"/>
<source>%1 item(s) out of sync</source>
<translation>
<numerusform>%1 item out of sync</numerusform>
@ -178,17 +178,27 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="91"/>
<location filename="../syncthingdirectorymodel.cpp" line="94"/>
<source>Global status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="96"/>
<source>Local status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="98"/>
<source>Shared with</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
<location filename="../syncthingdirectorymodel.cpp" line="128"/>
<source>not shared</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="138"/>
<location filename="../syncthingdirectorymodel.cpp" line="149"/>
<source>%1 and %2 item(s) out of sync</source>
<translation>
<numerusform>%1 and %2 item out of sync</numerusform>
@ -196,70 +206,86 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="191"/>
<location filename="../syncthingdirectorymodel.cpp" line="202"/>
<source>Deleted at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="194"/>
<location filename="../syncthingdirectorymodel.cpp" line="205"/>
<source>Updated at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="206"/>
<location filename="../syncthingdirectorymodel.cpp" line="217"/>
<source>Failed items</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="207"/>
<location filename="../syncthingdirectorymodel.cpp" line="218"/>
<source>Click for details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="225"/>
<location filename="../syncthingdirectorymodel.cpp" line="236"/>
<source>Paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
<location filename="../syncthingdirectorymodel.cpp" line="240"/>
<source>Unknown status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="231"/>
<location filename="../syncthingdirectorymodel.cpp" line="242"/>
<source>Unshared</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
<location filename="../syncthingdirectorymodel.cpp" line="244"/>
<source>Idle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
<location filename="../syncthingdirectorymodel.cpp" line="246"/>
<source>Scanning (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="235"/>
<location filename="../syncthingdirectorymodel.cpp" line="246"/>
<source>Scanning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Synchronizing (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="237"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Synchronizing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="239"/>
<location filename="../syncthingdirectorymodel.cpp" line="250"/>
<source>Out of sync</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="371"/>
<source>%1 file(s)</source>
<translation>
<numerusform>%1 file</numerusform>
<numerusform>%1 files</numerusform>
</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="371"/>
<source>%1 dir(s)</source>
<translation>
<numerusform>%1 dir</numerusform>
<numerusform>%1 dirs</numerusform>
</translation>
</message>
</context>
<context>
<name>Data::SyncthingDownloadModel</name>