Show number of connected devs in tool tip
This commit is contained in:
parent
e92eb389ea
commit
b2aab9eb16
|
@ -24,6 +24,7 @@ QString statusString(SyncthingDevStatus status);
|
|||
struct LIB_SYNCTHING_CONNECTOR_EXPORT SyncthingDev {
|
||||
SyncthingDev(const QString &id = QString(), const QString &name = QString());
|
||||
QString statusString() const;
|
||||
bool isConnected() const;
|
||||
|
||||
QString id;
|
||||
QString name;
|
||||
|
@ -49,6 +50,18 @@ inline SyncthingDev::SyncthingDev(const QString &id, const QString &name)
|
|||
{
|
||||
}
|
||||
|
||||
inline bool SyncthingDev::isConnected() const
|
||||
{
|
||||
switch (status) {
|
||||
case SyncthingDevStatus::Unknown:
|
||||
case SyncthingDevStatus::Disconnected:
|
||||
case SyncthingDevStatus::OwnDevice:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Data
|
||||
|
||||
Q_DECLARE_METATYPE(Data::SyncthingDev)
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <QCoreApplication>
|
||||
#include <QPainter>
|
||||
#include <QPixmap>
|
||||
#include <QStringBuilder>
|
||||
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
|
||||
#include <QNetworkReply>
|
||||
#endif
|
||||
|
@ -179,7 +180,11 @@ void TrayIcon::showSyncthingNotification(ChronoUtilities::DateTime when, const Q
|
|||
void TrayIcon::updateStatusIconAndText()
|
||||
{
|
||||
const StatusInfo statusInfo(trayMenu().widget()->connection());
|
||||
setToolTip(statusInfo.statusText());
|
||||
if (statusInfo.additionalStatusText().isEmpty()) {
|
||||
setToolTip(statusInfo.statusText());
|
||||
} else {
|
||||
setToolTip(statusInfo.statusText() % QChar('\n') % statusInfo.additionalStatusText());
|
||||
}
|
||||
setIcon(statusInfo.statusIcon());
|
||||
}
|
||||
|
||||
|
|
|
@ -459,37 +459,37 @@
|
|||
<translation type="vanished">Syncthing-Benachrichtigung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="45"/>
|
||||
<location filename="../gui/trayicon.cpp" line="46"/>
|
||||
<source>Web UI</source>
|
||||
<translation>Weboberfäche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="49"/>
|
||||
<location filename="../gui/trayicon.cpp" line="50"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="53"/>
|
||||
<location filename="../gui/trayicon.cpp" line="54"/>
|
||||
<source>Rescan all</source>
|
||||
<translation>Alle neu scannen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="61"/>
|
||||
<location filename="../gui/trayicon.cpp" line="62"/>
|
||||
<source>About</source>
|
||||
<translation>Über Syncthing Tray</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="66"/>
|
||||
<location filename="../gui/trayicon.cpp" line="67"/>
|
||||
<source>Close</source>
|
||||
<translation>Beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="155"/>
|
||||
<location filename="../gui/trayicon.cpp" line="157"/>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="172"/>
|
||||
<location filename="../gui/trayicon.cpp" line="174"/>
|
||||
<source>Syncthing notification - click to dismiss</source>
|
||||
<translation>Neue Syncthing-Benachrichtigung</translation>
|
||||
</message>
|
||||
|
@ -502,12 +502,12 @@
|
|||
<translation type="vanished">Nicht mit Syncthing verbunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="203"/>
|
||||
<location filename="../gui/trayicon.cpp" line="209"/>
|
||||
<source>Disconnected from Syncthing</source>
|
||||
<translation>Verbindung zu Syncthing getrennt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="57"/>
|
||||
<location filename="../gui/trayicon.cpp" line="58"/>
|
||||
<source>Log</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
|
@ -556,12 +556,12 @@
|
|||
<translation type="vanished">Syncthing synchronisiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="223"/>
|
||||
<location filename="../gui/trayicon.cpp" line="229"/>
|
||||
<source>Synchronization of %1 complete</source>
|
||||
<translation>%1 wurde synchronisiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="230"/>
|
||||
<location filename="../gui/trayicon.cpp" line="236"/>
|
||||
<source>Synchronization of the following devices complete:
|
||||
</source>
|
||||
<translation>Folgende Verzeichnisse wurden synchronisiert:
|
||||
|
|
|
@ -58,57 +58,57 @@
|
|||
<context>
|
||||
<name>QtGui::TrayIcon</name>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="45"/>
|
||||
<location filename="../gui/trayicon.cpp" line="46"/>
|
||||
<source>Web UI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="49"/>
|
||||
<location filename="../gui/trayicon.cpp" line="50"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="53"/>
|
||||
<location filename="../gui/trayicon.cpp" line="54"/>
|
||||
<source>Rescan all</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="57"/>
|
||||
<location filename="../gui/trayicon.cpp" line="58"/>
|
||||
<source>Log</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="61"/>
|
||||
<location filename="../gui/trayicon.cpp" line="62"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="66"/>
|
||||
<location filename="../gui/trayicon.cpp" line="67"/>
|
||||
<source>Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="203"/>
|
||||
<location filename="../gui/trayicon.cpp" line="209"/>
|
||||
<source>Disconnected from Syncthing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="155"/>
|
||||
<location filename="../gui/trayicon.cpp" line="157"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="172"/>
|
||||
<location filename="../gui/trayicon.cpp" line="174"/>
|
||||
<source>Syncthing notification - click to dismiss</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="223"/>
|
||||
<location filename="../gui/trayicon.cpp" line="229"/>
|
||||
<source>Synchronization of %1 complete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/trayicon.cpp" line="230"/>
|
||||
<location filename="../gui/trayicon.cpp" line="236"/>
|
||||
<source>Synchronization of the following devices complete:
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "./statusinfo.h"
|
||||
|
||||
#include "../../connector/syncthingconnection.h"
|
||||
#include "../../connector/syncthingdev.h"
|
||||
#include "../../model/syncthingicons.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
@ -71,5 +72,26 @@ void StatusInfo::update(const SyncthingConnection &connection)
|
|||
}
|
||||
}
|
||||
}
|
||||
size_t connectedDevices = 0;
|
||||
switch (connection.status()) {
|
||||
case SyncthingStatus::Idle:
|
||||
case SyncthingStatus::OutOfSync:
|
||||
case SyncthingStatus::Scanning:
|
||||
case SyncthingStatus::Synchronizing:
|
||||
for (const SyncthingDev &dev : connection.devInfo()) {
|
||||
if (dev.isConnected()) {
|
||||
++connectedDevices;
|
||||
}
|
||||
}
|
||||
if (connectedDevices) {
|
||||
m_additionalStatusText
|
||||
= QCoreApplication::translate("QtGui::StatusInfo", "Conntected to %1 devices", nullptr, connectedDevices).arg(connectedDevices);
|
||||
} else {
|
||||
m_additionalStatusText = QCoreApplication::translate("QtGui::StatusInfo", "Not connected to other devices");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
m_additionalStatusText.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,12 +18,14 @@ public:
|
|||
explicit StatusInfo();
|
||||
explicit StatusInfo(const Data::SyncthingConnection &connection);
|
||||
|
||||
QString statusText() const;
|
||||
const QString &statusText() const;
|
||||
const QString &additionalStatusText() const;
|
||||
const QIcon &statusIcon() const;
|
||||
void update(const Data::SyncthingConnection &connection);
|
||||
|
||||
private:
|
||||
QString m_statusText;
|
||||
QString m_additionalStatusText;
|
||||
const QIcon *m_statusIcon;
|
||||
};
|
||||
|
||||
|
@ -32,11 +34,16 @@ inline StatusInfo::StatusInfo(const Data::SyncthingConnection &connection)
|
|||
update(connection);
|
||||
}
|
||||
|
||||
inline QString StatusInfo::statusText() const
|
||||
inline const QString &StatusInfo::statusText() const
|
||||
{
|
||||
return m_statusText;
|
||||
}
|
||||
|
||||
inline const QString &StatusInfo::additionalStatusText() const
|
||||
{
|
||||
return m_additionalStatusText;
|
||||
}
|
||||
|
||||
inline const QIcon &StatusInfo::statusIcon() const
|
||||
{
|
||||
return *m_statusIcon;
|
||||
|
|
|
@ -582,65 +582,78 @@
|
|||
<context>
|
||||
<name>QtGui::StatusInfo</name>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="14"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="15"/>
|
||||
<source>Initializing ...</source>
|
||||
<translation>Initialisierung ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="24"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="25"/>
|
||||
<source>Not connected to Syncthing - trying to reconnect every %1 ms</source>
|
||||
<translation>Nicht mit Syncthing verbunden - versuche alle %1 ms zu verbinden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="27"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="28"/>
|
||||
<source>Not connected to Syncthing</source>
|
||||
<translation>Nicht mit Syncthing verbunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="32"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="33"/>
|
||||
<source>Reconnecting ...</source>
|
||||
<translation>Neu verbinden ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="40"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="41"/>
|
||||
<source>Synchronization is ongoing but at least one directory is out of sync</source>
|
||||
<translation>Synchronisiert, aber mind. ein Verzeichnis hat Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="44"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="45"/>
|
||||
<source>At least one directory is out of sync</source>
|
||||
<translation>Mind. ein Verzeichnis hat Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="48"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="49"/>
|
||||
<source>Notifications available</source>
|
||||
<translation>Es gibt neue Benachrichtigungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="53"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="54"/>
|
||||
<source>Syncthing is idling</source>
|
||||
<translation>Syncthing ist im Leerlauf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="57"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="58"/>
|
||||
<source>Syncthing is scanning</source>
|
||||
<translation>Syncthing scannt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="61"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="62"/>
|
||||
<source>At least one device is paused</source>
|
||||
<translation>Mind. ein Gerät ist pausiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="65"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="66"/>
|
||||
<source>Synchronization is ongoing</source>
|
||||
<translation>Syncthing synchronisiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="69"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="70"/>
|
||||
<source>Status is unknown</source>
|
||||
<translation>Status ist unbekannt</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../misc/statusinfo.cpp" line="88"/>
|
||||
<source>Conntected to %1 devices</source>
|
||||
<translation>
|
||||
<numerusform>Mit %1 Gerät verbunden</numerusform>
|
||||
<numerusform>Mit %1 Geräten verbunden</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="90"/>
|
||||
<source>Not connected to other devices</source>
|
||||
<translation>Nicht mit anderen Geräten verbunden</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtGui::SystemdOptionPage</name>
|
||||
|
|
|
@ -500,65 +500,78 @@
|
|||
<context>
|
||||
<name>QtGui::StatusInfo</name>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="14"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="15"/>
|
||||
<source>Initializing ...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="24"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="25"/>
|
||||
<source>Not connected to Syncthing - trying to reconnect every %1 ms</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="27"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="28"/>
|
||||
<source>Not connected to Syncthing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="32"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="33"/>
|
||||
<source>Reconnecting ...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="40"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="41"/>
|
||||
<source>Synchronization is ongoing but at least one directory is out of sync</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="44"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="45"/>
|
||||
<source>At least one directory is out of sync</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="48"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="49"/>
|
||||
<source>Notifications available</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="53"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="54"/>
|
||||
<source>Syncthing is idling</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="57"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="58"/>
|
||||
<source>Syncthing is scanning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="61"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="62"/>
|
||||
<source>At least one device is paused</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="65"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="66"/>
|
||||
<source>Synchronization is ongoing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="69"/>
|
||||
<location filename="../misc/statusinfo.cpp" line="70"/>
|
||||
<source>Status is unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../misc/statusinfo.cpp" line="88"/>
|
||||
<source>Conntected to %1 devices</source>
|
||||
<translation>
|
||||
<numerusform>Conntected to %1 device</numerusform>
|
||||
<numerusform>Conntected to %1 devices</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../misc/statusinfo.cpp" line="90"/>
|
||||
<source>Not connected to other devices</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QtGui::SystemdOptionPage</name>
|
||||
|
|
Loading…
Reference in New Issue