plasmoid: Improve settings

* Configure appearance options via Plasmoid specific
  settings
* Allow to configure the size
* Remember last connection config
This commit is contained in:
Martchus 2017-09-18 20:29:36 +02:00
parent 08373aea7b
commit 2ee7b9af64
17 changed files with 567 additions and 316 deletions

View File

@ -126,7 +126,7 @@
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1223"/>
<location filename="../syncthingconnection.cpp" line="1807"/>
<location filename="../syncthingconnection.cpp" line="1809"/>
<source>Unable to request directory statistics: </source>
<translation>Fehler beim Abfragen der Verzeichnisstatistiken: </translation>
</message>
@ -166,37 +166,37 @@
<translation>Fehler beim Abfragen der Syncthing-Ereignisse: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1693"/>
<location filename="../syncthingconnection.cpp" line="1695"/>
<source>Unable to request rescan: </source>
<translation>Fehler beim Anfordern eines Verzeichnis-Rescans: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1717"/>
<location filename="../syncthingconnection.cpp" line="1719"/>
<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="1738"/>
<location filename="../syncthingconnection.cpp" line="1740"/>
<source>Unable to request directory pause/resume: </source>
<translation>Fehler beim Anfordern Verzeichnis zu Pausieren/Fortzusetzen: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1754"/>
<location filename="../syncthingconnection.cpp" line="1756"/>
<source>Unable to request restart: </source>
<translation>Fehler beim Anfordern eines Neustarts: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1770"/>
<location filename="../syncthingconnection.cpp" line="1772"/>
<source>Unable to request shutdown: </source>
<translation>Fehler beim Anfordern Syncthing zu beenden: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1797"/>
<location filename="../syncthingconnection.cpp" line="1799"/>
<source>Unable to parse status for directory %1: </source>
<translation>Fehler beim Anfordern des Status von Verzeichnis %1: </translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1934"/>
<location filename="../syncthingconnection.cpp" line="1936"/>
<source>at offset %1</source>
<translation>bei Zeichen %1</translation>
</message>

View File

@ -126,7 +126,7 @@
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1223"/>
<location filename="../syncthingconnection.cpp" line="1807"/>
<location filename="../syncthingconnection.cpp" line="1809"/>
<source>Unable to request directory statistics: </source>
<translation type="unfinished"></translation>
</message>
@ -166,37 +166,37 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1693"/>
<location filename="../syncthingconnection.cpp" line="1695"/>
<source>Unable to request rescan: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1717"/>
<location filename="../syncthingconnection.cpp" line="1719"/>
<source>Unable to request device pause/resume: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1738"/>
<location filename="../syncthingconnection.cpp" line="1740"/>
<source>Unable to request directory pause/resume: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1754"/>
<location filename="../syncthingconnection.cpp" line="1756"/>
<source>Unable to request restart: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1770"/>
<location filename="../syncthingconnection.cpp" line="1772"/>
<source>Unable to request shutdown: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1797"/>
<location filename="../syncthingconnection.cpp" line="1799"/>
<source>Unable to parse status for directory %1: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingconnection.cpp" line="1934"/>
<location filename="../syncthingconnection.cpp" line="1936"/>
<source>at offset %1</source>
<translation type="unfinished"></translation>
</message>

View File

@ -4,103 +4,103 @@
<context>
<name>Data::SyncthingDeviceModel</name>
<message>
<location filename="../syncthingdevicemodel.cpp" line="79"/>
<location filename="../syncthingdevicemodel.cpp" line="105"/>
<location filename="../syncthingdevicemodel.cpp" line="86"/>
<location filename="../syncthingdevicemodel.cpp" line="112"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="81"/>
<location filename="../syncthingdevicemodel.cpp" line="88"/>
<source>Status</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="107"/>
<location filename="../syncthingdevicemodel.cpp" line="114"/>
<source>Addresses</source>
<translation>Adressen</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="109"/>
<location filename="../syncthingdevicemodel.cpp" line="116"/>
<source>Last seen</source>
<translation>Zuletzt gesehen</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="111"/>
<location filename="../syncthingdevicemodel.cpp" line="118"/>
<source>Compression</source>
<translation>Kompression</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="113"/>
<location filename="../syncthingdevicemodel.cpp" line="120"/>
<source>Certificate</source>
<translation>Zertifikat</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="115"/>
<location filename="../syncthingdevicemodel.cpp" line="122"/>
<source>Introducer</source>
<translation>Verteilergerät</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="130"/>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<source>unknown or own device</source>
<translation>unbekannt oder eigenes Gerät</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="135"/>
<location filename="../syncthingdevicemodel.cpp" line="142"/>
<source>none</source>
<translation>keines</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<location filename="../syncthingdevicemodel.cpp" line="144"/>
<source>yes</source>
<translation>ja</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<location filename="../syncthingdevicemodel.cpp" line="144"/>
<source>no</source>
<translation>nein</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="299"/>
<location filename="../syncthingdevicemodel.cpp" line="306"/>
<source>Paused</source>
<translation>Pausiert</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="303"/>
<location filename="../syncthingdevicemodel.cpp" line="310"/>
<source>Unknown status</source>
<translation>Unbekannter Status</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="305"/>
<location filename="../syncthingdevicemodel.cpp" line="312"/>
<source>Own device</source>
<translation>Eigenes Gerät</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="307"/>
<location filename="../syncthingdevicemodel.cpp" line="314"/>
<source>Idle</source>
<translation>Leerlauf</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="309"/>
<location filename="../syncthingdevicemodel.cpp" line="316"/>
<source>Disconnected</source>
<translation>Getrennt</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="311"/>
<location filename="../syncthingdevicemodel.cpp" line="318"/>
<source>Synchronizing (%1 %)</source>
<translation>Synchronisiert (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="311"/>
<location filename="../syncthingdevicemodel.cpp" line="318"/>
<source>Synchronizing</source>
<translation>Synchronisiert</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="313"/>
<location filename="../syncthingdevicemodel.cpp" line="320"/>
<source>Out of sync</source>
<translation>Nicht synchronisiert</translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="315"/>
<location filename="../syncthingdevicemodel.cpp" line="322"/>
<source>Rejected</source>
<translation>Zurückgewiesen</translation>
</message>
@ -108,69 +108,69 @@
<context>
<name>Data::SyncthingDirectoryModel</name>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="85"/>
<location filename="../syncthingdirectorymodel.cpp" line="111"/>
<location filename="../syncthingdirectorymodel.cpp" line="92"/>
<location filename="../syncthingdirectorymodel.cpp" line="118"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="87"/>
<location filename="../syncthingdirectorymodel.cpp" line="94"/>
<source>Status</source>
<translation></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="113"/>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<source>Path</source>
<translation>Pfad</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="121"/>
<location filename="../syncthingdirectorymodel.cpp" line="128"/>
<source>Read-only</source>
<translation>Schreibgeschützt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="123"/>
<location filename="../syncthingdirectorymodel.cpp" line="130"/>
<source>Rescan interval</source>
<translation>Scanintervall</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="125"/>
<location filename="../syncthingdirectorymodel.cpp" line="132"/>
<source>Last scan</source>
<translation>Letzter Scan</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="127"/>
<location filename="../syncthingdirectorymodel.cpp" line="134"/>
<source>Last file</source>
<translation>Letzte Datei</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
<source>Errors</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="153"/>
<location filename="../syncthingdirectorymodel.cpp" line="160"/>
<source>not shared</source>
<translation>nicht geteilt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="156"/>
<location filename="../syncthingdirectorymodel.cpp" line="163"/>
<source>yes</source>
<translation>ja</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="156"/>
<location filename="../syncthingdirectorymodel.cpp" line="163"/>
<source>no</source>
<translation>nein</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="162"/>
<location filename="../syncthingdirectorymodel.cpp" line="165"/>
<location filename="../syncthingdirectorymodel.cpp" line="169"/>
<location filename="../syncthingdirectorymodel.cpp" line="172"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="174"/>
<location filename="../syncthingdirectorymodel.cpp" line="181"/>
<source>%1 and %2 item(s) out of sync</source>
<translation>
<numerusform>&quot;%1&quot; und %2 Element nicht synchronisiert</numerusform>
@ -178,12 +178,12 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="178"/>
<location filename="../syncthingdirectorymodel.cpp" line="185"/>
<source>none</source>
<translation>keine</translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="172"/>
<location filename="../syncthingdirectorymodel.cpp" line="179"/>
<source>%1 item(s) out of sync</source>
<translation>
<numerusform>%1 Element nicht synchronisiert</numerusform>
@ -191,82 +191,82 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
<source>Deleted at %1</source>
<translation>Gelöscht am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
<location filename="../syncthingdirectorymodel.cpp" line="236"/>
<source>Updated at %1</source>
<translation>Aktualisiert am %1</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="242"/>
<location filename="../syncthingdirectorymodel.cpp" line="249"/>
<source>Click for details</source>
<translation>Für details klicken</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="241"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Failed items</source>
<translation>Fehlgeschlagene Elemente</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="380"/>
<location filename="../syncthingdirectorymodel.cpp" line="387"/>
<source>Unknown status</source>
<translation>Unbekannter Status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="384"/>
<location filename="../syncthingdirectorymodel.cpp" line="391"/>
<source>Idle</source>
<translation>Leerlauf</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="382"/>
<location filename="../syncthingdirectorymodel.cpp" line="389"/>
<source>Unshared</source>
<translation>Nicht geteilt</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="115"/>
<location filename="../syncthingdirectorymodel.cpp" line="122"/>
<source>Global status</source>
<translation>Globaler status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
<location filename="../syncthingdirectorymodel.cpp" line="124"/>
<source>Local status</source>
<translation>Lokaler status</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="119"/>
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
<source>Shared with</source>
<translation>Geteilt mit</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="386"/>
<location filename="../syncthingdirectorymodel.cpp" line="393"/>
<source>Scanning (%1 %)</source>
<translation>Scannen (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="386"/>
<location filename="../syncthingdirectorymodel.cpp" line="393"/>
<source>Scanning</source>
<translation>Scannen</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="388"/>
<location filename="../syncthingdirectorymodel.cpp" line="395"/>
<source>Synchronizing (%1 %)</source>
<translation>Synchronisieren (%1 %)</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="388"/>
<location filename="../syncthingdirectorymodel.cpp" line="395"/>
<source>Synchronizing</source>
<translation>Synchronisieren</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="376"/>
<location filename="../syncthingdirectorymodel.cpp" line="383"/>
<source>Paused</source>
<translation>Pausiert</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="390"/>
<location filename="../syncthingdirectorymodel.cpp" line="397"/>
<source>Out of sync</source>
<translation>Nicht synchronisiert</translation>
</message>
@ -274,12 +274,12 @@
<context>
<name>Data::SyncthingDownloadModel</name>
<message>
<location filename="../syncthingdownloadmodel.cpp" line="91"/>
<location filename="../syncthingdownloadmodel.cpp" line="92"/>
<source>Dir/item</source>
<translation>Verzeichnis/Element</translation>
</message>
<message>
<location filename="../syncthingdownloadmodel.cpp" line="93"/>
<location filename="../syncthingdownloadmodel.cpp" line="94"/>
<source>Progress</source>
<translation>Fortschritt</translation>
</message>

View File

@ -4,103 +4,103 @@
<context>
<name>Data::SyncthingDeviceModel</name>
<message>
<location filename="../syncthingdevicemodel.cpp" line="79"/>
<location filename="../syncthingdevicemodel.cpp" line="105"/>
<location filename="../syncthingdevicemodel.cpp" line="86"/>
<location filename="../syncthingdevicemodel.cpp" line="112"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="81"/>
<location filename="../syncthingdevicemodel.cpp" line="88"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="107"/>
<location filename="../syncthingdevicemodel.cpp" line="114"/>
<source>Addresses</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="109"/>
<location filename="../syncthingdevicemodel.cpp" line="116"/>
<source>Last seen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="111"/>
<location filename="../syncthingdevicemodel.cpp" line="118"/>
<source>Compression</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="113"/>
<location filename="../syncthingdevicemodel.cpp" line="120"/>
<source>Certificate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="115"/>
<location filename="../syncthingdevicemodel.cpp" line="122"/>
<source>Introducer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="130"/>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<source>unknown or own device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="135"/>
<location filename="../syncthingdevicemodel.cpp" line="142"/>
<source>none</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<location filename="../syncthingdevicemodel.cpp" line="144"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="137"/>
<location filename="../syncthingdevicemodel.cpp" line="144"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="299"/>
<location filename="../syncthingdevicemodel.cpp" line="306"/>
<source>Paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="303"/>
<location filename="../syncthingdevicemodel.cpp" line="310"/>
<source>Unknown status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="305"/>
<location filename="../syncthingdevicemodel.cpp" line="312"/>
<source>Own device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="307"/>
<location filename="../syncthingdevicemodel.cpp" line="314"/>
<source>Idle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="309"/>
<location filename="../syncthingdevicemodel.cpp" line="316"/>
<source>Disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="311"/>
<location filename="../syncthingdevicemodel.cpp" line="318"/>
<source>Synchronizing (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="311"/>
<location filename="../syncthingdevicemodel.cpp" line="318"/>
<source>Synchronizing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="313"/>
<location filename="../syncthingdevicemodel.cpp" line="320"/>
<source>Out of sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdevicemodel.cpp" line="315"/>
<location filename="../syncthingdevicemodel.cpp" line="322"/>
<source>Rejected</source>
<translation type="unfinished"></translation>
</message>
@ -108,69 +108,69 @@
<context>
<name>Data::SyncthingDirectoryModel</name>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="85"/>
<location filename="../syncthingdirectorymodel.cpp" line="111"/>
<location filename="../syncthingdirectorymodel.cpp" line="92"/>
<location filename="../syncthingdirectorymodel.cpp" line="118"/>
<source>ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="87"/>
<location filename="../syncthingdirectorymodel.cpp" line="94"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="113"/>
<location filename="../syncthingdirectorymodel.cpp" line="120"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="121"/>
<location filename="../syncthingdirectorymodel.cpp" line="128"/>
<source>Read-only</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="123"/>
<location filename="../syncthingdirectorymodel.cpp" line="130"/>
<source>Rescan interval</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="125"/>
<location filename="../syncthingdirectorymodel.cpp" line="132"/>
<source>Last scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="127"/>
<location filename="../syncthingdirectorymodel.cpp" line="134"/>
<source>Last file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="129"/>
<location filename="../syncthingdirectorymodel.cpp" line="136"/>
<source>Errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="156"/>
<location filename="../syncthingdirectorymodel.cpp" line="163"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="156"/>
<location filename="../syncthingdirectorymodel.cpp" line="163"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="162"/>
<location filename="../syncthingdirectorymodel.cpp" line="165"/>
<location filename="../syncthingdirectorymodel.cpp" line="169"/>
<location filename="../syncthingdirectorymodel.cpp" line="172"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="178"/>
<location filename="../syncthingdirectorymodel.cpp" line="185"/>
<source>none</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="172"/>
<location filename="../syncthingdirectorymodel.cpp" line="179"/>
<source>%1 item(s) out of sync</source>
<translation>
<numerusform>%1 item out of sync</numerusform>
@ -178,27 +178,27 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="115"/>
<location filename="../syncthingdirectorymodel.cpp" line="122"/>
<source>Global status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="117"/>
<location filename="../syncthingdirectorymodel.cpp" line="124"/>
<source>Local status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="119"/>
<location filename="../syncthingdirectorymodel.cpp" line="126"/>
<source>Shared with</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="153"/>
<location filename="../syncthingdirectorymodel.cpp" line="160"/>
<source>not shared</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../syncthingdirectorymodel.cpp" line="174"/>
<location filename="../syncthingdirectorymodel.cpp" line="181"/>
<source>%1 and %2 item(s) out of sync</source>
<translation>
<numerusform>%1 and %2 item out of sync</numerusform>
@ -206,67 +206,67 @@
</translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="226"/>
<location filename="../syncthingdirectorymodel.cpp" line="233"/>
<source>Deleted at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="229"/>
<location filename="../syncthingdirectorymodel.cpp" line="236"/>
<source>Updated at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="241"/>
<location filename="../syncthingdirectorymodel.cpp" line="248"/>
<source>Failed items</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="242"/>
<location filename="../syncthingdirectorymodel.cpp" line="249"/>
<source>Click for details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="376"/>
<location filename="../syncthingdirectorymodel.cpp" line="383"/>
<source>Paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="380"/>
<location filename="../syncthingdirectorymodel.cpp" line="387"/>
<source>Unknown status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="382"/>
<location filename="../syncthingdirectorymodel.cpp" line="389"/>
<source>Unshared</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="384"/>
<location filename="../syncthingdirectorymodel.cpp" line="391"/>
<source>Idle</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="386"/>
<location filename="../syncthingdirectorymodel.cpp" line="393"/>
<source>Scanning (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="386"/>
<location filename="../syncthingdirectorymodel.cpp" line="393"/>
<source>Scanning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="388"/>
<location filename="../syncthingdirectorymodel.cpp" line="395"/>
<source>Synchronizing (%1 %)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="388"/>
<location filename="../syncthingdirectorymodel.cpp" line="395"/>
<source>Synchronizing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdirectorymodel.cpp" line="390"/>
<location filename="../syncthingdirectorymodel.cpp" line="397"/>
<source>Out of sync</source>
<translation type="unfinished"></translation>
</message>
@ -274,12 +274,12 @@
<context>
<name>Data::SyncthingDownloadModel</name>
<message>
<location filename="../syncthingdownloadmodel.cpp" line="91"/>
<location filename="../syncthingdownloadmodel.cpp" line="92"/>
<source>Dir/item</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../syncthingdownloadmodel.cpp" line="93"/>
<location filename="../syncthingdownloadmodel.cpp" line="94"/>
<source>Progress</source>
<translation type="unfinished"></translation>
</message>

View File

@ -7,6 +7,9 @@ set(SRC_FILES
syncthingapplet.cpp
settingsdialog.cpp
)
set(WIDGETS_UI_FILES
appearanceoptionpage.ui
)
set(PLASMOID_FILES
../package/metadata.desktop
../package/contents/ui/CompactRepresentation.qml

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Plasmoid::AppearanceOptionPage</class>
<widget class="QWidget" name="Plasmoid::AppearanceOptionPage">
<property name="windowTitle">
<string>Appearance</string>
</property>
<property name="windowIcon">
<iconset theme="preferences-desktop">
<normaloff>.</normaloff>.</iconset>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="verticalSpacing">
<number>4</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="sizeLabel">
<property name="text">
<string>Minimum size of full representation</string>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QSpinBox" name="widthSpinBox">
<property name="minimum">
<number>20</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>25</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="sizeTimesLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string> x </string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="heightSpinBox">
<property name="minimum">
<number>15</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>25</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="sizePxLabel">
<property name="text">
<string> grid units</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="colorsLabel">
<property name="text">
<string>Colors</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="brightTextColorsCheckBox">
<property name="text">
<string>Bright custom text colors (use for dark color scheme)</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,12 +1,16 @@
#include "./settingsdialog.h"
#include "./syncthingapplet.h"
#include "ui_appearanceoptionpage.h"
#include "../../widgets/settings/settingsdialog.h"
#include <qtutilities/settingsdialog/optioncategory.h>
#include <qtutilities/settingsdialog/optionpage.h>
#include <qtutilities/settingsdialog/settingsdialog.h>
#include <KConfigGroup>
#include <QCoreApplication>
#include <QFormLayout>
#include <QKeySequenceEdit>
@ -58,6 +62,41 @@ QWidget *ShortcutOptionPage::setupWidget()
return widget;
}
// AppearanceOptionPage
AppearanceOptionPage::AppearanceOptionPage(SyncthingApplet &applet, QWidget *parentWidget)
: AppearanceOptionPageBase(parentWidget)
, m_applet(&applet)
{
}
AppearanceOptionPage::~AppearanceOptionPage()
{
}
bool AppearanceOptionPage::apply()
{
if (hasBeenShown()) {
KConfigGroup config = m_applet->config();
config.writeEntry<QSize>("size", QSize(ui()->widthSpinBox->value(), ui()->heightSpinBox->value()));
config.writeEntry<bool>("brightColors", ui()->brightTextColorsCheckBox->isChecked());
}
return true;
}
void AppearanceOptionPage::reset()
{
if (hasBeenShown()) {
const KConfigGroup config = m_applet->config();
const QSize size(config.readEntry<QSize>("size", QSize(25, 25)));
ui()->widthSpinBox->setValue(size.width());
ui()->heightSpinBox->setValue(size.height());
ui()->brightTextColorsCheckBox->setChecked(config.readEntry<bool>("brightColors", false));
}
}
QtGui::SettingsDialog *setupSettingsDialog(SyncthingApplet &applet)
{
// setup categories
@ -67,8 +106,8 @@ QtGui::SettingsDialog *setupSettingsDialog(SyncthingApplet &applet)
category = new OptionCategory;
category->setDisplayName(QCoreApplication::translate("Plasmoid::SettingsDialog", "Plasmoid"));
category->assignPages(QList<Dialogs::OptionPage *>()
<< new ConnectionOptionPage(applet.connection()) << new NotificationsOptionPage(GuiType::Plasmoid)
<< new AppearanceOptionPage(GuiType::Plasmoid) << new ShortcutOptionPage(applet));
<< new ConnectionOptionPage(applet.connection()) << new NotificationsOptionPage(GuiType::Plasmoid) << new AppearanceOptionPage(applet)
<< new ShortcutOptionPage(applet));
category->setIcon(QIcon::fromTheme(QStringLiteral("plasma")));
categories << category;

View File

@ -22,6 +22,14 @@ SyncthingApplet *m_applet;
QKeySequenceEdit *m_globalShortcutEdit;
END_DECLARE_OPTION_PAGE
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(AppearanceOptionPage)
public:
AppearanceOptionPage(SyncthingApplet &applet, QWidget *parentWidget = nullptr);
private:
SyncthingApplet *m_applet;
END_DECLARE_OPTION_PAGE
QtGui::SettingsDialog *setupSettingsDialog(Plasmoid::SyncthingApplet &applet);
} // namespace Plasmoid

View File

@ -21,6 +21,8 @@
#include <qtutilities/misc/dialogutils.h>
#include <qtutilities/resources/resources.h>
#include <KConfigGroup>
#include <QDesktopServices>
#include <QNetworkReply>
#include <QQmlEngine>
@ -85,7 +87,7 @@ void SyncthingApplet::init()
handleSettingsChanged();
// load primary connection config
setCurrentConnectionConfigIndex(0);
setCurrentConnectionConfigIndex(config().readEntry<int>("selectedConfig", 0));
// initialize systemd service support
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD
@ -155,6 +157,7 @@ void SyncthingApplet::setCurrentConnectionConfigIndex(int index)
m_webViewDlg->applySettings(selectedConfig);
}
#endif
config().writeEntry<int>("selectedConfig", index);
emit currentConnectionConfigIndexChanged(m_currentConnectionConfig = index);
emit localChanged();
}
@ -169,7 +172,12 @@ void SyncthingApplet::showSettingsDlg()
{
if (!m_settingsDlg) {
m_settingsDlg = setupSettingsDialog(*this);
// ensure settings take effect when applied
connect(m_settingsDlg, &Dialogs::SettingsDialog::applied, this, &SyncthingApplet::handleSettingsChanged);
// save plasmoid specific settings to disk when applied
connect(m_settingsDlg, &Dialogs::SettingsDialog::applied, this, &SyncthingApplet::configChanged);
// save global/general settings to disk when applied
connect(m_settingsDlg, &Dialogs::SettingsDialog::applied, &Settings::save);
}
Dialogs::centerWidget(m_settingsDlg);
m_settingsDlg->show();
@ -263,13 +271,20 @@ void SyncthingApplet::showDirectoryErrors(unsigned int directoryIndex) const
}
}
/*!
* \brief Ensures settings take effect when applied via the settings dialog.
* \remarks Does not save the settings to disk. This is done in Settings::save() and Applet::configChanged().
*/
void SyncthingApplet::handleSettingsChanged()
{
const KConfigGroup config(this->config());
// apply appearance settings
const auto &appearanceSettings = Settings::values().appearance;
m_dirModel.setBrightColors(appearanceSettings.brightTextColors);
m_devModel.setBrightColors(appearanceSettings.brightTextColors);
m_downloadModel.setBrightColors(appearanceSettings.brightTextColors);
setSize(config.readEntry<QSize>("size", QSize(25, 25)));
const bool brightColors = config.readEntry<bool>("brightColors", false);
m_dirModel.setBrightColors(brightColors);
m_devModel.setBrightColors(brightColors);
m_downloadModel.setBrightColors(brightColors);
// apply connection config
const int currentConfig = m_currentConnectionConfig;
@ -277,9 +292,6 @@ void SyncthingApplet::handleSettingsChanged()
setCurrentConnectionConfigIndex(currentConfig);
emit settingsChanged();
// actually save the settings on the disk
Settings::save();
}
void SyncthingApplet::handleConnectionStatusChanged(SyncthingStatus status)

View File

@ -15,6 +15,8 @@
#include <Plasma/Applet>
#include <QSize>
namespace Dialogs {
class SettingsDialog;
}
@ -53,6 +55,7 @@ class SyncthingApplet : public Plasma::Applet {
Q_PROPERTY(int currentConnectionConfigIndex READ currentConnectionConfigIndex WRITE setCurrentConnectionConfigIndex NOTIFY
currentConnectionConfigIndexChanged)
Q_PROPERTY(bool startStopForServiceEnabled READ isStartStopForServiceEnabled NOTIFY settingsChanged)
Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY sizeChanged)
public:
SyncthingApplet(QObject *parent, const QVariantList &data);
@ -77,6 +80,8 @@ public:
Data::SyncthingConnectionSettings *connectionConfig(int index);
void setCurrentConnectionConfigIndex(int index);
bool isStartStopForServiceEnabled() const;
QSize size() const;
void setSize(const QSize &size);
public Q_SLOTS:
void init() Q_DECL_OVERRIDE;
@ -106,6 +111,7 @@ Q_SIGNALS:
void trafficChanged();
void settingsChanged();
void currentConnectionConfigIndexChanged(int index);
void sizeChanged(const QSize &size);
private Q_SLOTS:
void handleSettingsChanged();
@ -136,6 +142,7 @@ private:
int m_currentConnectionConfig;
Data::SyncthingStatus m_status;
bool m_initialized;
QSize m_size;
};
inline Data::SyncthingConnection *SyncthingApplet::connection() const
@ -191,6 +198,18 @@ inline Data::SyncthingConnectionSettings *SyncthingApplet::currentConnectionConf
{
return connectionConfig(m_currentConnectionConfig);
}
inline QSize SyncthingApplet::size() const
{
return m_size;
}
inline void SyncthingApplet::setSize(const QSize &size)
{
if (size != m_size) {
emit sizeChanged(m_size = size);
}
}
} // namespace Plasmoid
#endif // SYNCTHINGAPPLET_H

View File

@ -10,11 +10,39 @@ import martchus.syncthingplasmoid 0.6 as SyncthingPlasmoid
ColumnLayout {
id: root
Layout.minimumWidth: units.gridUnit * 25
Layout.preferredWidth: units.gridUnit * 30
Layout.minimumHeight: units.gridUnit * 20
Layout.preferredHeight: units.gridUnit * 30
// define minimum size
Layout.minimumWidth: units.gridUnit * 20
Layout.minimumHeight: units.gridUnit * 15
// define function to update the size according to the settings
// when "floating" (shown as popup)
function updateSize() {
switch (plasmoid.location) {
case PlasmaCore.Types.Floating:
var size = plasmoid.nativeInterface.size
parent.width = units.gridUnit * size.width
parent.height = units.gridUnit * size.height
break
default:
;
}
}
// update the size when becoming visible
onVisibleChanged: {
if (visible) {
updateSize()
}
}
// update the size when settings changed
Connections {
target: plasmoid.nativeInterface
onSizeChanged: updateSize()
}
// shortcut handling
Keys.onPressed: {
// FIXME: currently only works after clicking the tab buttons
// TODO: add more shortcuts

View File

@ -54,80 +54,113 @@
<context>
<name>FullRepresentation</name>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="71"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="121"/>
<source>Connect</source>
<translation>Verbinden</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="79"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="129"/>
<source>Resume</source>
<translation>Fortsetzen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="87"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="137"/>
<source>Pause</source>
<translation>Pausieren</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="130"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="180"/>
<source>Stop</source>
<translation>Stoppen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="141"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="191"/>
<source>Start</source>
<translation>Starten</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="176"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="227"/>
<source>Show own device ID</source>
<translation>Eigene Geräte-ID anzeigen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="184"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="235"/>
<source>Show Syncthing log</source>
<translation>Syncthing-Log anzeigen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="192"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="243"/>
<source>Rescan all directories</source>
<translation>Alle Verzeichnisse neu scannen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="197"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="248"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="205"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="256"/>
<source>Web UI</source>
<translation>Weboberfläche</translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="238"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="289"/>
<source>In</source>
<translation></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="241"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="292"/>
<source>Out</source>
<translation></translation>
</message>
</context>
<context>
<name>Plasmoid::AppearanceOptionPage</name>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="6"/>
<source>Appearance</source>
<translation>Erscheinungsbild</translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="50"/>
<source> x </source>
<translation></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="76"/>
<source> grid units</source>
<translation> Rastereinheiten</translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="19"/>
<source>Minimum size of full representation</source>
<translation type="unfinished">Minimale Größe</translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="88"/>
<source>Colors</source>
<translation>Farben</translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="95"/>
<source>Bright custom text colors (use for dark color scheme)</source>
<translation>Helle benutzerdefinierte Schriftfarben (für dunkles Farbschema gedacht)</translation>
</message>
</context>
<context>
<name>Plasmoid::SettingsDialog</name>
<message>
<location filename="../lib/settingsdialog.cpp" line="68"/>
<location filename="../lib/settingsdialog.cpp" line="107"/>
<source>Plasmoid</source>
<translation></translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="76"/>
<location filename="../lib/settingsdialog.cpp" line="116"/>
<source>Web view</source>
<translation>Weboberfläche</translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="86"/>
<location filename="../lib/settingsdialog.cpp" line="126"/>
<source>Extras</source>
<translation></translation>
</message>
@ -135,12 +168,12 @@
<context>
<name>Plasmoid::ShortcutOptionPage</name>
<message>
<location filename="../lib/settingsdialog.cpp" line="50"/>
<location filename="../lib/settingsdialog.cpp" line="54"/>
<source>Shortcuts</source>
<translation>Kurzbefehle</translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="55"/>
<location filename="../lib/settingsdialog.cpp" line="59"/>
<source>Global shortcut</source>
<translation>Globales Tastenkürzel</translation>
</message>
@ -148,29 +181,29 @@
<context>
<name>Plasmoid::SyncthingApplet</name>
<message>
<location filename="../lib/syncthingapplet.cpp" line="223"/>
<location filename="../lib/syncthingapplet.cpp" line="230"/>
<source>About</source>
<translation>Über Syncthing Plasmoid</translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="235"/>
<location filename="../lib/syncthingapplet.cpp" line="242"/>
<source>New notifications</source>
<translation>Neue Benachrichtigungen</translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="310"/>
<location filename="../lib/syncthingapplet.cpp" line="332"/>
<source>Synchronization of %1 complete</source>
<translation>%1 wurde synchronisiert</translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="317"/>
<location filename="../lib/syncthingapplet.cpp" line="339"/>
<source>Synchronization of the following devices complete:
</source>
<translation>Die folgenden Geräte wurden synchronisiert:
</translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="363"/>
<location filename="../lib/syncthingapplet.cpp" line="385"/>
<source>D-Bus error - unable to </source>
<translation type="unfinished"></translation>
</message>

View File

@ -54,80 +54,113 @@
<context>
<name>FullRepresentation</name>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="71"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="121"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="79"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="129"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="87"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="137"/>
<source>Pause</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="130"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="180"/>
<source>Stop</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="141"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="191"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="176"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="227"/>
<source>Show own device ID</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="184"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="235"/>
<source>Show Syncthing log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="192"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="243"/>
<source>Rescan all directories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="197"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="248"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="205"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="256"/>
<source>Web UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="238"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="289"/>
<source>In</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../package/contents/ui/FullRepresentation.qml" line="241"/>
<location filename="../package/contents/ui/FullRepresentation.qml" line="292"/>
<source>Out</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Plasmoid::AppearanceOptionPage</name>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="6"/>
<source>Appearance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="50"/>
<source> x </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="76"/>
<source> grid units</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="19"/>
<source>Minimum size of full representation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="88"/>
<source>Colors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/appearanceoptionpage.ui" line="95"/>
<source>Bright custom text colors (use for dark color scheme)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Plasmoid::SettingsDialog</name>
<message>
<location filename="../lib/settingsdialog.cpp" line="68"/>
<location filename="../lib/settingsdialog.cpp" line="107"/>
<source>Plasmoid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="76"/>
<location filename="../lib/settingsdialog.cpp" line="116"/>
<source>Web view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="86"/>
<location filename="../lib/settingsdialog.cpp" line="126"/>
<source>Extras</source>
<translation type="unfinished"></translation>
</message>
@ -135,12 +168,12 @@
<context>
<name>Plasmoid::ShortcutOptionPage</name>
<message>
<location filename="../lib/settingsdialog.cpp" line="50"/>
<location filename="../lib/settingsdialog.cpp" line="54"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/settingsdialog.cpp" line="55"/>
<location filename="../lib/settingsdialog.cpp" line="59"/>
<source>Global shortcut</source>
<translation type="unfinished"></translation>
</message>
@ -148,28 +181,28 @@
<context>
<name>Plasmoid::SyncthingApplet</name>
<message>
<location filename="../lib/syncthingapplet.cpp" line="223"/>
<location filename="../lib/syncthingapplet.cpp" line="230"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="235"/>
<location filename="../lib/syncthingapplet.cpp" line="242"/>
<source>New notifications</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="310"/>
<location filename="../lib/syncthingapplet.cpp" line="332"/>
<source>Synchronization of %1 complete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="317"/>
<location filename="../lib/syncthingapplet.cpp" line="339"/>
<source>Synchronization of the following devices complete:
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../lib/syncthingapplet.cpp" line="363"/>
<location filename="../lib/syncthingapplet.cpp" line="385"/>
<source>D-Bus error - unable to </source>
<translation type="unfinished"></translation>
</message>

View File

@ -400,9 +400,8 @@ void NotificationsOptionPage::reset()
}
// AppearanceOptionPage
AppearanceOptionPage::AppearanceOptionPage(GuiType guiType, QWidget *parentWidget)
AppearanceOptionPage::AppearanceOptionPage(QWidget *parentWidget)
: AppearanceOptionPageBase(parentWidget)
, m_guiType(guiType)
{
}
@ -410,58 +409,41 @@ AppearanceOptionPage::~AppearanceOptionPage()
{
}
QWidget *AppearanceOptionPage::setupWidget()
{
auto *w = AppearanceOptionPageBase::setupWidget();
switch (m_guiType) {
case GuiType::TrayWidget:
break;
case GuiType::Plasmoid:
for (unsigned char i = 0; i != 6; ++i) {
ui()->formLayout->removeRow(0);
}
break;
}
return w;
}
bool AppearanceOptionPage::apply()
{
if (!hasBeenShown()) {
return true;
}
auto &settings = values().appearance;
if (m_guiType == GuiType::TrayWidget) {
settings.trayMenuSize.setWidth(ui()->widthSpinBox->value());
settings.trayMenuSize.setHeight(ui()->heightSpinBox->value());
settings.showTraffic = ui()->showTrafficCheckBox->isChecked();
int style;
switch (ui()->frameShapeComboBox->currentIndex()) {
case 0:
style = QFrame::NoFrame;
break;
case 1:
style = QFrame::Box;
break;
case 2:
style = QFrame::Panel;
break;
default:
style = QFrame::StyledPanel;
}
switch (ui()->frameShadowComboBox->currentIndex()) {
case 0:
style |= QFrame::Plain;
break;
case 1:
style |= QFrame::Raised;
break;
default:
style |= QFrame::Sunken;
}
settings.frameStyle = style;
settings.tabPosition = ui()->tabPosComboBox->currentIndex();
settings.trayMenuSize.setWidth(ui()->widthSpinBox->value());
settings.trayMenuSize.setHeight(ui()->heightSpinBox->value());
settings.showTraffic = ui()->showTrafficCheckBox->isChecked();
int style;
switch (ui()->frameShapeComboBox->currentIndex()) {
case 0:
style = QFrame::NoFrame;
break;
case 1:
style = QFrame::Box;
break;
case 2:
style = QFrame::Panel;
break;
default:
style = QFrame::StyledPanel;
}
switch (ui()->frameShadowComboBox->currentIndex()) {
case 0:
style |= QFrame::Plain;
break;
case 1:
style |= QFrame::Raised;
break;
default:
style |= QFrame::Sunken;
}
settings.frameStyle = style;
settings.tabPosition = ui()->tabPosComboBox->currentIndex();
settings.brightTextColors = ui()->brightTextColorsCheckBox->isChecked();
return true;
@ -473,38 +455,36 @@ void AppearanceOptionPage::reset()
return;
}
const auto &settings = values().appearance;
if (m_guiType == GuiType::TrayWidget) {
ui()->widthSpinBox->setValue(settings.trayMenuSize.width());
ui()->heightSpinBox->setValue(settings.trayMenuSize.height());
ui()->showTrafficCheckBox->setChecked(settings.showTraffic);
int index;
switch (settings.frameStyle & QFrame::Shape_Mask) {
case QFrame::NoFrame:
index = 0;
break;
case QFrame::Box:
index = 1;
break;
case QFrame::Panel:
index = 2;
break;
default:
index = 3;
}
ui()->frameShapeComboBox->setCurrentIndex(index);
switch (settings.frameStyle & QFrame::Shadow_Mask) {
case QFrame::Plain:
index = 0;
break;
case QFrame::Raised:
index = 1;
break;
default:
index = 2;
}
ui()->frameShadowComboBox->setCurrentIndex(index);
ui()->tabPosComboBox->setCurrentIndex(settings.tabPosition);
ui()->widthSpinBox->setValue(settings.trayMenuSize.width());
ui()->heightSpinBox->setValue(settings.trayMenuSize.height());
ui()->showTrafficCheckBox->setChecked(settings.showTraffic);
int index;
switch (settings.frameStyle & QFrame::Shape_Mask) {
case QFrame::NoFrame:
index = 0;
break;
case QFrame::Box:
index = 1;
break;
case QFrame::Panel:
index = 2;
break;
default:
index = 3;
}
ui()->frameShapeComboBox->setCurrentIndex(index);
switch (settings.frameStyle & QFrame::Shadow_Mask) {
case QFrame::Plain:
index = 0;
break;
case QFrame::Raised:
index = 1;
break;
default:
index = 2;
}
ui()->frameShadowComboBox->setCurrentIndex(index);
ui()->tabPosComboBox->setCurrentIndex(settings.tabPosition);
ui()->brightTextColorsCheckBox->setChecked(settings.brightTextColors);
}

View File

@ -65,14 +65,7 @@ DECLARE_SETUP_WIDGETS
const GuiType m_guiType;
END_DECLARE_OPTION_PAGE
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(AppearanceOptionPage)
public:
AppearanceOptionPage(GuiType guiType = GuiType::TrayWidget, QWidget *parentWidget = nullptr);
private:
DECLARE_SETUP_WIDGETS
const GuiType m_guiType;
END_DECLARE_OPTION_PAGE
DECLARE_UI_FILE_BASED_OPTION_PAGE(AppearanceOptionPage)
DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_SETUP(AutostartOptionPage)

View File

@ -127,22 +127,22 @@
<translation>Tray-Icon beim Starten der Desktopumgebung automatisch starten</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="498"/>
<location filename="../settings/settingsdialog.cpp" line="508"/>
<source>This is achieved by adding a *.desktop file under &lt;i&gt;~/.config/autostart&lt;/i&gt; so the setting only affects the current user.</source>
<translation>Durch das Hinzufügen einer *.desktop-Datei unter &lt;i&gt;~/.config/autostart&lt;/i&gt; realisiert - betrifft also nur den aktuellen Benutzer.</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="501"/>
<location filename="../settings/settingsdialog.cpp" line="511"/>
<source>This is achieved by adding a registry key under &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; so the setting only affects the current user. Note that the startup entry is invalidated when moving &lt;i&gt;syncthingtray.exe&lt;/i&gt;.</source>
<translation>Durch das Hinzufügen eines Registry-Schlüssels unter &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; realisiert - betrifft also nur den aktuellen Benutzer.</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="506"/>
<location filename="../settings/settingsdialog.cpp" line="516"/>
<source>This feature has not been implemented for your platform (yet).</source>
<translation>Diese Funktion wurde für die aktuelle Plattform nicht nicht implementiert.</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="593"/>
<location filename="../settings/settingsdialog.cpp" line="603"/>
<source>unable to modify startup entry</source>
<translation>Fehler beim aktualisieren des Auto-Start-Eintrags</translation>
</message>
@ -419,33 +419,33 @@
<translation>Log folgen</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="635"/>
<location filename="../settings/settingsdialog.cpp" line="645"/>
<source>%1-launcher</source>
<translation>%1-Starter</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="636"/>
<location filename="../settings/settingsdialog.cpp" line="646"/>
<source>Launch %1 when starting the tray icon</source>
<translation>Starte %1 beim Starten des Tray-Icons</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="637"/>
<location filename="../settings/settingsdialog.cpp" line="647"/>
<source>%1 executable</source>
<translation>Ausführbare Datei von %1</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="638"/>
<location filename="../settings/settingsdialog.cpp" line="648"/>
<source>%1 log (interleaved stdout/stderr)</source>
<translation>%1-Log (stdout/stderr)</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="710"/>
<location filename="../settings/settingsdialog.cpp" line="720"/>
<source>%1 exited with exit code %2
</source>
<translation>%1 wurde mit dem Statuscode %2 beendet</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="714"/>
<location filename="../settings/settingsdialog.cpp" line="724"/>
<source>%1 crashed with exit code %2
</source>
<translation>%1 ist mit dem Statuscode %2 abgestürzt</translation>
@ -519,7 +519,7 @@
<translation></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="368"/>
<location filename="../settings/settingsdialog.cpp" line="374"/>
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
<translation>Benachrichtigungen via D-Bus wurden eingestellt, aber es scheint kein Daemon zu laufen der den Dienst bereitstellt.</translation>
</message>
@ -545,22 +545,22 @@
<context>
<name>QtGui::SettingsDialog</name>
<message>
<location filename="../settings/settingsdialog.cpp" line="917"/>
<location filename="../settings/settingsdialog.cpp" line="927"/>
<source>Tray</source>
<translation></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="924"/>
<location filename="../settings/settingsdialog.cpp" line="934"/>
<source>Web view</source>
<translation>Weboberfläche</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="931"/>
<location filename="../settings/settingsdialog.cpp" line="941"/>
<source>Startup</source>
<translation>Starten</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="953"/>
<location filename="../settings/settingsdialog.cpp" line="963"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
@ -677,8 +677,8 @@
<location filename="../settings/systemdoptionpage.ui" line="99"/>
<location filename="../settings/systemdoptionpage.ui" line="154"/>
<location filename="../settings/systemdoptionpage.ui" line="231"/>
<location filename="../settings/settingsdialog.cpp" line="834"/>
<location filename="../settings/settingsdialog.cpp" line="846"/>
<location filename="../settings/settingsdialog.cpp" line="844"/>
<location filename="../settings/settingsdialog.cpp" line="856"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
@ -712,12 +712,12 @@
<translation>Stoppen</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="807"/>
<location filename="../settings/settingsdialog.cpp" line="817"/>
<source>specified unit is either inactive or doesn&apos;t exist</source>
<translation>angegebene Unit ist entweder nicht geladen oder existiert nicht</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="829"/>
<location filename="../settings/settingsdialog.cpp" line="839"/>
<source>since </source>
<translation>seit </translation>
</message>
@ -759,7 +759,7 @@
</message>
<message>
<location filename="../misc/textviewdialog.cpp" line="133"/>
<location filename="../misc/textviewdialog.cpp" line="145"/>
<location filename="../misc/textviewdialog.cpp" line="146"/>
<source>Log</source>
<translation></translation>
</message>
@ -776,7 +776,7 @@
<name>QtGui::WebViewOptionPage</name>
<message>
<location filename="../settings/webviewoptionpage.ui" line="6"/>
<location filename="../settings/settingsdialog.cpp" line="868"/>
<location filename="../settings/settingsdialog.cpp" line="878"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
@ -806,7 +806,7 @@
<translation>Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen</translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="871"/>
<location filename="../settings/settingsdialog.cpp" line="880"/>
<source>Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine.
The Web UI will be opened in the default web browser instead.</source>
<translation>Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut.

View File

@ -127,22 +127,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="498"/>
<location filename="../settings/settingsdialog.cpp" line="508"/>
<source>This is achieved by adding a *.desktop file under &lt;i&gt;~/.config/autostart&lt;/i&gt; so the setting only affects the current user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="501"/>
<location filename="../settings/settingsdialog.cpp" line="511"/>
<source>This is achieved by adding a registry key under &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; so the setting only affects the current user. Note that the startup entry is invalidated when moving &lt;i&gt;syncthingtray.exe&lt;/i&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="506"/>
<location filename="../settings/settingsdialog.cpp" line="516"/>
<source>This feature has not been implemented for your platform (yet).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="593"/>
<location filename="../settings/settingsdialog.cpp" line="603"/>
<source>unable to modify startup entry</source>
<translation type="unfinished"></translation>
</message>
@ -415,33 +415,33 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="635"/>
<location filename="../settings/settingsdialog.cpp" line="645"/>
<source>%1-launcher</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="636"/>
<location filename="../settings/settingsdialog.cpp" line="646"/>
<source>Launch %1 when starting the tray icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="637"/>
<location filename="../settings/settingsdialog.cpp" line="647"/>
<source>%1 executable</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="638"/>
<location filename="../settings/settingsdialog.cpp" line="648"/>
<source>%1 log (interleaved stdout/stderr)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="710"/>
<location filename="../settings/settingsdialog.cpp" line="720"/>
<source>%1 exited with exit code %2
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="714"/>
<location filename="../settings/settingsdialog.cpp" line="724"/>
<source>%1 crashed with exit code %2
</source>
<translation type="unfinished"></translation>
@ -515,7 +515,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="368"/>
<location filename="../settings/settingsdialog.cpp" line="374"/>
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
<translation type="unfinished"></translation>
</message>
@ -541,22 +541,22 @@
<context>
<name>QtGui::SettingsDialog</name>
<message>
<location filename="../settings/settingsdialog.cpp" line="917"/>
<location filename="../settings/settingsdialog.cpp" line="927"/>
<source>Tray</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="924"/>
<location filename="../settings/settingsdialog.cpp" line="934"/>
<source>Web view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="931"/>
<location filename="../settings/settingsdialog.cpp" line="941"/>
<source>Startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="953"/>
<location filename="../settings/settingsdialog.cpp" line="963"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
@ -670,8 +670,8 @@
<location filename="../settings/systemdoptionpage.ui" line="99"/>
<location filename="../settings/systemdoptionpage.ui" line="154"/>
<location filename="../settings/systemdoptionpage.ui" line="231"/>
<location filename="../settings/settingsdialog.cpp" line="834"/>
<location filename="../settings/settingsdialog.cpp" line="846"/>
<location filename="../settings/settingsdialog.cpp" line="844"/>
<location filename="../settings/settingsdialog.cpp" line="856"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
@ -706,12 +706,12 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="807"/>
<location filename="../settings/settingsdialog.cpp" line="817"/>
<source>specified unit is either inactive or doesn&apos;t exist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="829"/>
<location filename="../settings/settingsdialog.cpp" line="839"/>
<source>since </source>
<translation type="unfinished"></translation>
</message>
@ -753,7 +753,7 @@
</message>
<message>
<location filename="../misc/textviewdialog.cpp" line="133"/>
<location filename="../misc/textviewdialog.cpp" line="145"/>
<location filename="../misc/textviewdialog.cpp" line="146"/>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
@ -770,7 +770,7 @@
<name>QtGui::WebViewOptionPage</name>
<message>
<location filename="../settings/webviewoptionpage.ui" line="6"/>
<location filename="../settings/settingsdialog.cpp" line="868"/>
<location filename="../settings/settingsdialog.cpp" line="878"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
@ -800,7 +800,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../settings/settingsdialog.cpp" line="871"/>
<location filename="../settings/settingsdialog.cpp" line="880"/>
<source>Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine.
The Web UI will be opened in the default web browser instead.</source>
<translation type="unfinished"></translation>