Compare commits
140 Commits
v3.2.0-rc2
...
v3.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04afaa1fe6 | ||
|
|
60f3b7781e | ||
|
|
c626033445 | ||
|
|
76687ce8fd | ||
|
|
7c987281cc | ||
|
|
91dd481f1a | ||
|
|
7b725f04e0 | ||
|
|
0b776d2be2 | ||
|
|
7960aca617 | ||
|
|
da4b016b7c | ||
|
|
c82491ebe3 | ||
|
|
025e4a600a | ||
|
|
cb52e36e08 | ||
|
|
f8b7d5bc84 | ||
|
|
0b703ed518 | ||
|
|
19aa80116f | ||
|
|
faa5b2ef54 | ||
|
|
0778b2178f | ||
|
|
4f0a8995c2 | ||
|
|
b5e5985fcb | ||
|
|
705990291b | ||
|
|
364e02bdb0 | ||
|
|
981d94c139 | ||
|
|
14ccfe831a | ||
|
|
0e31d6fe57 | ||
|
|
79128c51b7 | ||
|
|
abf75cc80d | ||
|
|
dd3e6a6ad0 | ||
|
|
aaf4b1d2be | ||
|
|
9c6c6d82f0 | ||
|
|
a559513912 | ||
|
|
741231f3df | ||
|
|
6cb5bdf2d1 | ||
|
|
104941e4bb | ||
|
|
d7fb1ebc51 | ||
|
|
c4fec24b23 | ||
|
|
59595152c7 | ||
|
|
5644fcb332 | ||
|
|
d4322ed003 | ||
|
|
046e19465f | ||
|
|
28ccaff866 | ||
|
|
0a36214189 | ||
|
|
5901a0f983 | ||
|
|
7825cf7f86 | ||
|
|
d65611bcb7 | ||
|
|
c5f17a7f77 | ||
|
|
4637ce7526 | ||
|
|
c3ed9a9d65 | ||
|
|
6da0650c61 | ||
|
|
031f7c48a3 | ||
|
|
abb57d6202 | ||
|
|
1e309b71a6 | ||
|
|
5a159d49d0 | ||
|
|
1cc082cec5 | ||
|
|
149bfa9001 | ||
|
|
f660f923a3 | ||
|
|
f7c4030463 | ||
|
|
55c0cbde36 | ||
|
|
3deb08a7fc | ||
|
|
594b13ed6a | ||
|
|
9cda48e0a6 | ||
|
|
03117c0dcf | ||
|
|
96dab4ff84 | ||
|
|
7dfb6c300f | ||
|
|
9a75fa5db5 | ||
|
|
2272cb6c3a | ||
|
|
e909add969 | ||
|
|
33ea9ba00e | ||
|
|
f86fcc94d8 | ||
|
|
443d8baf3a | ||
|
|
c2e217352f | ||
|
|
555c157cda | ||
|
|
03466431be | ||
|
|
9b8115558d | ||
|
|
8344969549 | ||
|
|
eed7fd73a3 | ||
|
|
4c50ba294e | ||
|
|
ec5be0f29a | ||
|
|
f79f4f6783 | ||
|
|
89919b6b33 | ||
|
|
86e0ad4ec6 | ||
|
|
328877c70b | ||
|
|
14fbf1b106 | ||
|
|
5f6236bd73 | ||
|
|
a3968bcc87 | ||
|
|
5e6c31b262 | ||
|
|
8550bfa8f1 | ||
|
|
f6afb62a53 | ||
|
|
1ca0ea49dd | ||
|
|
29f4a3857b | ||
|
|
050bd49373 | ||
|
|
8986975a17 | ||
|
|
50de12b3c3 | ||
|
|
163015492a | ||
|
|
c8ac99c8cf | ||
|
|
e51dad79a2 | ||
|
|
d2b762aa66 | ||
|
|
98cfc362f7 | ||
|
|
835a61c5ee | ||
|
|
5eb6834167 | ||
|
|
4b58c2b7b7 | ||
|
|
82953d0601 | ||
|
|
de85b79bb8 | ||
|
|
cb8b6ccd9b | ||
|
|
13f4bb541d | ||
|
|
3906ae0922 | ||
|
|
7235c708dc | ||
|
|
d5b6d93978 | ||
|
|
4a7145f1f3 | ||
|
|
d6752c96b1 | ||
|
|
77681ff5b5 | ||
|
|
4c8378030d | ||
|
|
0a33e99053 | ||
|
|
454226b3ea | ||
|
|
e15045977e | ||
|
|
a599cd2c3f | ||
|
|
487f29cf80 | ||
|
|
2268facd9d | ||
|
|
57aeeca172 | ||
|
|
962bbf3043 | ||
|
|
6e147a7a8c | ||
|
|
b2377ff64f | ||
|
|
be6e0f26df | ||
|
|
8741f4386c | ||
|
|
ac6b62e19d | ||
|
|
044b5a33e9 | ||
|
|
dde9eb645e | ||
|
|
354f4c02ee | ||
|
|
58dd076b2b | ||
|
|
7faa80c1e1 | ||
|
|
f7dd4bbf69 | ||
|
|
a7ac7991b8 | ||
|
|
8eb5ed07bf | ||
|
|
4ce2e79e90 | ||
|
|
28771b25e3 | ||
|
|
ab128cc4aa | ||
|
|
cafa475398 | ||
|
|
9d15334813 | ||
|
|
003e56f4e6 | ||
|
|
99309ab33b |
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
Icon[bg_BG]=@APPLICATION_ICON_NAME@
|
||||||
Name[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
|
||||||
Comment[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
Comment[bg_BG]=@APPLICATION_NAME@ десктоп клиент за синхронизиране
|
||||||
GenericName[bg_BG]=Синхронизиране на папка
|
GenericName[bg_BG]=Синхронизиране на папка
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[br]=@APPLICATION_ICON_NAME@
|
Icon[br]=@APPLICATION_ICON_NAME@
|
||||||
Name[br]=@APPLICATION_NAME@ burev kempreet an implijer
|
|
||||||
Comment[br]=@APPLICATION_NAME@ burev kempreet an implijer
|
Comment[br]=@APPLICATION_NAME@ burev kempreet an implijer
|
||||||
GenericName[br]=Tuliad kemprenan
|
GenericName[br]=Tuliad kemprenan
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ca]=@APPLICATION_ICON_NAME@
|
Icon[ca]=@APPLICATION_ICON_NAME@
|
||||||
Name[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
Name[ca]=@APPLICATION_NAME@ per a escriptori
|
||||||
Comment[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
Comment[ca]=Client de sincronització d'escriptori del @APPLICATION_NAME@
|
||||||
GenericName[ca]=Sincronització de carpetes
|
GenericName[ca]=Sincronització de carpetes
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[cs_CZ]=@APPLICATION_ICON_NAME@
|
Icon[cs_CZ]=@APPLICATION_ICON_NAME@
|
||||||
Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
Name[cs_CZ]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
Comment[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
||||||
GenericName[cs_CZ]=Synchronizace složek
|
GenericName[cs_CZ]=Synchronizace složek
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[cy_GB]=@APPLICATION_ICON_NAME@
|
Icon[cy_GB]=@APPLICATION_ICON_NAME@
|
||||||
Name[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith
|
|
||||||
Comment[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith
|
Comment[cy_GB]=@APPLICATION_NAME@ cleient cydweddu bwrdd gwaith
|
||||||
GenericName[cy_GB]=Cydweddu Ffolder
|
GenericName[cy_GB]=Cydweddu Ffolder
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[da]=@APPLICATION_ICON_NAME@
|
Icon[da]=@APPLICATION_ICON_NAME@
|
||||||
Name[da]=@APPLICATION_NAME@ Arbejdsstationsssynkroniseringsklient
|
|
||||||
Comment[da]=@APPLICATION_NAME@ Arbejdsstationsssynkroniseringsklient
|
Comment[da]=@APPLICATION_NAME@ Arbejdsstationsssynkroniseringsklient
|
||||||
GenericName[da]=Mappesynkronisering
|
GenericName[da]=Mappesynkronisering
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[el]=@APPLICATION_ICON_NAME@
|
Icon[el]=@APPLICATION_ICON_NAME@
|
||||||
Name[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού
|
|
||||||
Comment[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού
|
Comment[el]=@APPLICATION_NAME@ πρόγραμμα συγχρονισμού
|
||||||
GenericName[el]=Συγχρονισμός φακέλου
|
GenericName[el]=Συγχρονισμός φακέλου
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[en_GB]=@APPLICATION_ICON_NAME@
|
Icon[en_GB]=@APPLICATION_ICON_NAME@
|
||||||
Name[en_GB]=@APPLICATION_NAME@ desktop sync client
|
|
||||||
Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client
|
Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client
|
||||||
GenericName[en_GB]=Folder Sync
|
GenericName[en_GB]=Folder Sync
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[eo]=@APPLICATION_ICON_NAME@
|
Icon[eo]=@APPLICATION_ICON_NAME@
|
||||||
Name[eo]=@APPLICATION_NAME@ sinkroniga kliento
|
|
||||||
Comment[eo]=@APPLICATION_NAME@ sinkroniga kliento
|
Comment[eo]=@APPLICATION_NAME@ sinkroniga kliento
|
||||||
GenericName[eo]=Dosieruja sinkronigo
|
GenericName[eo]=Dosieruja sinkronigo
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[es_AR]=@APPLICATION_ICON_NAME@
|
Icon[es_AR]=@APPLICATION_ICON_NAME@
|
||||||
Name[es_AR]=@APPLICATION_NAME@ cliente de sincronización de escritorio
|
|
||||||
Comment[es_AR]=@APPLICATION_NAME@ cliente de sincronización de escritorio
|
Comment[es_AR]=@APPLICATION_NAME@ cliente de sincronización de escritorio
|
||||||
GenericName[es_AR]=Sincronización de carpetas
|
GenericName[es_AR]=Sincronización de carpetas
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_CL]=Sincronización de carpeta
|
GenericName[es_CL]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_CO]=Sincronización de carpeta
|
GenericName[es_CO]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_CR]=Sincronización de carpeta
|
GenericName[es_CR]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[es_DO]=@APPLICATION_ICON_NAME@
|
Icon[es_DO]=@APPLICATION_ICON_NAME@
|
||||||
Name[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_DO]=Sincronización de carpeta
|
GenericName[es_DO]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_EC]=Sincronización de carpeta
|
GenericName[es_EC]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_GT]=Sincronización de carpeta
|
GenericName[es_GT]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_MX]=Sincronización de carpeta
|
GenericName[es_MX]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -21,6 +21,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Name[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Comment[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Comment[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
||||||
GenericName[es_SV]=Sincronización de carpeta
|
GenericName[es_SV]=Sincronización de carpeta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[es]=@APPLICATION_ICON_NAME@
|
Icon[es]=@APPLICATION_ICON_NAME@
|
||||||
Name[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
Name[es]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
Comment[es]=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName[es]=Sincronización de carpetas
|
GenericName[es]=Sincronización de carpetas
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[et_EE]=@APPLICATION_ICON_NAME@
|
Icon[et_EE]=@APPLICATION_ICON_NAME@
|
||||||
Name[et_EE]=@APPLICATION_NAME@ töölaua sünkimise klient
|
|
||||||
Comment[et_EE]=@APPLICATION_NAME@ töölaua sünkroniseerimise klient
|
Comment[et_EE]=@APPLICATION_NAME@ töölaua sünkroniseerimise klient
|
||||||
GenericName[et_EE]=Kausta Sünkroonimine
|
GenericName[et_EE]=Kausta Sünkroonimine
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[eu]=@APPLICATION_ICON_NAME@
|
Icon[eu]=@APPLICATION_ICON_NAME@
|
||||||
Name[eu]=@APPLICATION_NAME@ mahaigainerako sinkronizazio bezeroa
|
Name[eu]=@APPLICATION_NAME@ Mahaigaina
|
||||||
Comment[eu]=@APPLICATION_NAME@ mahaigainerako sinkronizazio bezeroa
|
Comment[eu]=@APPLICATION_NAME@ mahaigainerako sinkronizazio bezeroa
|
||||||
GenericName[eu]=Karpeta-sinkronizazioa
|
GenericName[eu]=Karpeta-sinkronizazioa
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[fi_FI]=@APPLICATION_ICON_NAME@
|
Icon[fi_FI]=@APPLICATION_ICON_NAME@
|
||||||
Name[fi_FI]=@APPLICATION_NAME@ työpöydän synkronointipääte
|
|
||||||
Comment[fi_FI]=@APPLICATION_NAME@ työpöydän synkronointipääte
|
Comment[fi_FI]=@APPLICATION_NAME@ työpöydän synkronointipääte
|
||||||
GenericName[fi_FI]=Kansio synkronointi
|
GenericName[fi_FI]=Kansio synkronointi
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[fr]=@APPLICATION_ICON_NAME@
|
Icon[fr]=@APPLICATION_ICON_NAME@
|
||||||
Name[fr]=Client de synchro @APPLICATION_NAME@
|
|
||||||
Comment[fr]=Client de synchronisation @APPLICATION_NAME@
|
Comment[fr]=Client de synchronisation @APPLICATION_NAME@
|
||||||
GenericName[fr]=Synchronisation du dossier
|
GenericName[fr]=Synchronisation du dossier
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[gl]=@APPLICATION_ICON_NAME@
|
Icon[gl]=@APPLICATION_ICON_NAME@
|
||||||
Name[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
|
||||||
Comment[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
Comment[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
||||||
GenericName[gl]=Sincronización de cartafol
|
GenericName[gl]=Sincronización de cartafol
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[he]=@APPLICATION_ICON_NAME@
|
Icon[he]=@APPLICATION_ICON_NAME@
|
||||||
Name[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
|
||||||
Comment[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
Comment[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
||||||
GenericName[he]=סנכרון תיקיות
|
GenericName[he]=סנכרון תיקיות
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[hr]=@APPLICATION_ICON_NAME@
|
Icon[hr]=@APPLICATION_ICON_NAME@
|
||||||
Name[hr]=@APPLICATION_NAME@ klijent za sink. računala
|
|
||||||
Comment[hr]=@APPLICATION_NAME@ klijent za sinkronizaciju računala
|
Comment[hr]=@APPLICATION_NAME@ klijent za sinkronizaciju računala
|
||||||
GenericName[hr]=Sinkronizacija mapa
|
GenericName[hr]=Sinkronizacija mapa
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[hu_HU]=@APPLICATION_ICON_NAME@
|
Icon[hu_HU]=@APPLICATION_ICON_NAME@
|
||||||
Name[hu_HU]=@APPLICATION_NAME@ asztali szinkronizálási kliens
|
|
||||||
Comment[hu_HU]=@APPLICATION_NAME@ asztali szinkronizálási kliens
|
Comment[hu_HU]=@APPLICATION_NAME@ asztali szinkronizálási kliens
|
||||||
GenericName[hu_HU]=Mappaszinkronizálás
|
GenericName[hu_HU]=Mappaszinkronizálás
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[is]=@APPLICATION_ICON_NAME@
|
Icon[is]=@APPLICATION_ICON_NAME@
|
||||||
Name[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu
|
|
||||||
Comment[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu
|
Comment[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu
|
||||||
GenericName[is]=Samstilling á möppum
|
GenericName[is]=Samstilling á möppum
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[it]=@APPLICATION_ICON_NAME@
|
Icon[it]=@APPLICATION_ICON_NAME@
|
||||||
Name[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@
|
Name[it]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@
|
Comment[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@
|
||||||
GenericName[it]=Sincronizzazione cartelle
|
GenericName[it]=Sincronizzazione cartelle
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ja_JP]=@APPLICATION_ICON_NAME@
|
Icon[ja_JP]=@APPLICATION_ICON_NAME@
|
||||||
Name[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
Name[ja_JP]=@APPLICATION_NAME@ デスクトップ
|
||||||
Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
||||||
GenericName[ja_JP]=フォルダーを同期する
|
GenericName[ja_JP]=フォルダーを同期する
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ko]=@APPLICATION_ICON_NAME@
|
Icon[ko]=@APPLICATION_ICON_NAME@
|
||||||
Name[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
|
|
||||||
Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
|
Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
|
||||||
GenericName[ko]=폴더 동기화
|
GenericName[ko]=폴더 동기화
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[lt_LT]=@APPLICATION_ICON_NAME@
|
Icon[lt_LT]=@APPLICATION_ICON_NAME@
|
||||||
Name[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa
|
|
||||||
Comment[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa
|
Comment[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa
|
||||||
GenericName[lt_LT]=Aplankų sinchronizavimas
|
GenericName[lt_LT]=Aplankų sinchronizavimas
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[lv]=@APPLICATION_ICON_NAME@
|
Icon[lv]=@APPLICATION_ICON_NAME@
|
||||||
Name[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients
|
|
||||||
Comment[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients
|
Comment[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients
|
||||||
GenericName[lv]=Mapju Sinhronizēšana
|
GenericName[lv]=Mapju Sinhronizēšana
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[mk]=@APPLICATION_ICON_NAME@
|
Icon[mk]=@APPLICATION_ICON_NAME@
|
||||||
Name[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер
|
|
||||||
Comment[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер
|
Comment[mk]=@APPLICATION_NAME@ клиент за синхронизација на компјутер
|
||||||
GenericName[mk]=Папка за синхронизација
|
GenericName[mk]=Папка за синхронизација
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[nb_NO]=@APPLICATION_ICON_NAME@
|
Icon[nb_NO]=@APPLICATION_ICON_NAME@
|
||||||
Name[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering
|
|
||||||
Comment[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering
|
Comment[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering
|
||||||
GenericName[nb_NO]=Mappe synkroinisering
|
GenericName[nb_NO]=Mappe synkroinisering
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[nl]=@APPLICATION_ICON_NAME@
|
Icon[nl]=@APPLICATION_ICON_NAME@
|
||||||
Name[nl]=@APPLICATION_NAME@ desktop sync client
|
Name[nl]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[nl]=@APPLICATION_NAME@ desktopsynchronisatieclient
|
Comment[nl]=@APPLICATION_NAME@ desktopsynchronisatieclient
|
||||||
GenericName[nl]=Map synchronisatie
|
GenericName[nl]=Map synchronisatie
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[oc]=@APPLICATION_ICON_NAME@
|
Icon[oc]=@APPLICATION_ICON_NAME@
|
||||||
Name[oc]=@APPLICATION_NAME@ client de sincronizacion
|
|
||||||
Comment[oc]=@APPLICATION_NAME@ client de sincronizacion
|
Comment[oc]=@APPLICATION_NAME@ client de sincronizacion
|
||||||
GenericName[oc]=Sincro. dossièr
|
GenericName[oc]=Sincro. dossièr
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[pl]=@APPLICATION_ICON_NAME@
|
Icon[pl]=@APPLICATION_ICON_NAME@
|
||||||
Name[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
Name[pl]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
Comment[pl]=Desktopowy klient synchronizacji @APPLICATION_NAME@
|
||||||
GenericName[pl]=Katalog synchronizacji
|
GenericName[pl]=Katalog synchronizacji
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[pt_BR]=@APPLICATION_ICON_NAME@
|
Icon[pt_BR]=@APPLICATION_ICON_NAME@
|
||||||
Name[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop
|
Name[pt_BR]=@APPLICATION_NAME@ Desktop
|
||||||
Comment[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop
|
Comment[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop
|
||||||
GenericName[pt_BR]=Sincronizar pasta
|
GenericName[pt_BR]=Sincronizar pasta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[pt_PT]=@APPLICATION_ICON_NAME@
|
Icon[pt_PT]=@APPLICATION_ICON_NAME@
|
||||||
Name[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho
|
|
||||||
Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho
|
Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho
|
||||||
GenericName[pt_PT]=Sincronização de Pasta
|
GenericName[pt_PT]=Sincronização de Pasta
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ro]=@APPLICATION_ICON_NAME@
|
Icon[ro]=@APPLICATION_ICON_NAME@
|
||||||
Name[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
|
||||||
Comment[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
Comment[ro]=@APPLICATION_NAME@ client de sincronizare pentru desktop
|
||||||
GenericName[ro]=Sincronizare director
|
GenericName[ro]=Sincronizare director
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[ru]=@APPLICATION_ICON_NAME@
|
Icon[ru]=@APPLICATION_ICON_NAME@
|
||||||
Name[ru]=@APPLICATION_NAME@ для ПК
|
|
||||||
Comment[ru]=Клиент синхронизации @APPLICATION_NAME@ для ПК
|
Comment[ru]=Клиент синхронизации @APPLICATION_NAME@ для ПК
|
||||||
GenericName[ru]=Синхронизация папок
|
GenericName[ru]=Синхронизация папок
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sc]=@NÙMENE_ICONA_APLICATZIONE@
|
Icon[sc]=@NÙMENE_ICONA_APLICATZIONE@
|
||||||
Name[sc]=@NÙMENE_APLICATZIONE@ cliente sicronizadore de iscrivania
|
|
||||||
Comment[sc]=@NÙMENE_APLICATZIONE@ cliente de sincronizatzione iscrivania
|
Comment[sc]=@NÙMENE_APLICATZIONE@ cliente de sincronizatzione iscrivania
|
||||||
GenericName[sc]=Sincronizadore de cartellas
|
GenericName[sc]=Sincronizadore de cartellas
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
||||||
Name[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
|
||||||
Comment[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
Comment[sk_SK]=@APPLICATION_NAME@ synchronizačný klient pre PC
|
||||||
GenericName[sk_SK]=Synchronizácia priečinkov
|
GenericName[sk_SK]=Synchronizácia priečinkov
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sl]=@APPLICATION_ICON_NAME@
|
Icon[sl]=@APPLICATION_ICON_NAME@
|
||||||
Name[sl]=@APPLICATION_NAME@ program za usklajevanje
|
Name[sl]=Namizni program @APPLICATION_NAME@
|
||||||
Comment[sl]=@APPLICATION_NAME@ program za usklajevanje
|
Comment[sl]=Program za usklajevanje @APPLICATION_NAME@
|
||||||
GenericName[sl]=Usklajevanje map
|
GenericName[sl]=Usklajevanje map
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sr]=@APPLICATION_ICON_NAME@
|
Icon[sr]=@APPLICATION_ICON_NAME@
|
||||||
Name[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
|
||||||
Comment[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
Comment[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
||||||
GenericName[sr]=Синхронизација фасцикли
|
GenericName[sr]=Синхронизација фасцикли
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sv]=@APPLICATION_ICON_NAME@
|
Icon[sv]=@APPLICATION_ICON_NAME@
|
||||||
Name[sv]=@APPLICATION_NAME@ desktopssynkklient
|
|
||||||
Comment[sv]=@APPLICATION_NAME@ desktopssynkroniseringsklient
|
Comment[sv]=@APPLICATION_NAME@ desktopssynkroniseringsklient
|
||||||
GenericName[sv]=Mappsynkronisering
|
GenericName[sv]=Mappsynkronisering
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[sw]=@APPLICATION_ICON_NAME@
|
Icon[sw]=@APPLICATION_ICON_NAME@
|
||||||
Name[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa
|
|
||||||
Comment[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa
|
Comment[sw]=Teja ya @APPLICATION_NAME@ ya kufanana faili kwa seva na faili ziko hapa
|
||||||
GenericName[sw]=Fanana Kabrasha
|
GenericName[sw]=Fanana Kabrasha
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[tr]=@APPLICATION_ICON_NAME@
|
Icon[tr]=@APPLICATION_ICON_NAME@
|
||||||
Name[tr]=@APPLICATION_NAME@ masaüstü eşiteme istemcisi
|
Name[tr]=@APPLICATION_NAME@ Masaüstü
|
||||||
Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
|
Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
|
||||||
GenericName[tr]=Klasör Eşitleme
|
GenericName[tr]=Klasör Eşitleme
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,5 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[uk]=@APPLICATION_ICON_NAME@
|
Icon[uk]=@APPLICATION_ICON_NAME@
|
||||||
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
|
||||||
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
||||||
GenericName[uk]=Синхронізація тек
|
GenericName[uk]=Синхронізація тек
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[zh_CN]=@APPLICATION_ICON_NAME@
|
Icon[zh_CN]=@APPLICATION_ICON_NAME@
|
||||||
Name[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端
|
Name[zh_CN]=@APPLICATION_NAME@ 桌面
|
||||||
Comment[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端
|
Comment[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端
|
||||||
GenericName[zh_CN]=文件夹同步
|
GenericName[zh_CN]=文件夹同步
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[zh_HK]=@APPLICATION_ICON_NAME@
|
Icon[zh_HK]=@APPLICATION_ICON_NAME@
|
||||||
Name[zh_HK]= @APPLICATION_NAME@ 桌面同步客戶端
|
Name[zh_HK]=@APPLICATION_NAME@ 桌面電腦
|
||||||
Comment[zh_HK]= @APPLICATION_NAME@ 桌面同步客戶端
|
Comment[zh_HK]= @APPLICATION_NAME@ 桌面同步客戶端
|
||||||
GenericName[zh_HK]=資料夾同步
|
GenericName[zh_HK]=資料夾同步
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Categories=Utility;X-SuSE-SyncUtility;
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
Type=Application
|
Type=Application
|
||||||
Exec=@APPLICATION_EXECUTABLE@
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
Name=@APPLICATION_NAME@ desktop sync client
|
Name=@APPLICATION_NAME@ Desktop
|
||||||
Comment=@APPLICATION_NAME@ desktop synchronization client
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
GenericName=Folder Sync
|
GenericName=Folder Sync
|
||||||
Icon=@APPLICATION_ICON_NAME@
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
@@ -22,6 +22,6 @@ Icon=@APPLICATION_EXECUTABLE@
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Icon[zh_TW]=@APPLICATION_ICON_NAME@
|
Icon[zh_TW]=@APPLICATION_ICON_NAME@
|
||||||
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Name[zh_TW]=@APPLICATION_NAME@ 桌面版
|
||||||
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
GenericName[zh_TW]=資料夾同步
|
GenericName[zh_TW]=資料夾同步
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
set( MIRALL_VERSION_MAJOR 3 )
|
set( MIRALL_VERSION_MAJOR 3 )
|
||||||
set( MIRALL_VERSION_MINOR 1 )
|
set( MIRALL_VERSION_MINOR 2 )
|
||||||
set( MIRALL_VERSION_PATCH 82 )
|
set( MIRALL_VERSION_PATCH 2 )
|
||||||
set( MIRALL_VERSION_YEAR 2020 )
|
set( MIRALL_VERSION_YEAR 2021 )
|
||||||
set( MIRALL_SOVERSION 0 )
|
set( MIRALL_SOVERSION 0 )
|
||||||
|
|
||||||
# Minimum supported server version according to https://docs.nextcloud.com/server/latest/admin_manual/release_schedule.html
|
# Minimum supported server version according to https://docs.nextcloud.com/server/latest/admin_manual/release_schedule.html
|
||||||
|
|||||||
@@ -52,6 +52,9 @@
|
|||||||
<Property Id="INSTALLDIR">
|
<Property Id="INSTALLDIR">
|
||||||
<RegistrySearch Id="RegistryInstallDir" Type="raw" Root="HKLM" Key="Software\$(var.AppVendor)\$(var.AppName)" Win64="no" />
|
<RegistrySearch Id="RegistryInstallDir" Type="raw" Root="HKLM" Key="Software\$(var.AppVendor)\$(var.AppName)" Win64="no" />
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property Id="WINDOWSRELEASEID">
|
||||||
|
<RegistrySearch Id="RegistryWindowsReleaseId" Type="raw" Root="HKLM" Key="Software\Microsoft\Windows NT\CurrentVersion" Name="ReleaseId"/>
|
||||||
|
</Property>
|
||||||
|
|
||||||
<!-- Detect legacy NSIS installation -->
|
<!-- Detect legacy NSIS installation -->
|
||||||
<Property Id="NSIS_UNINSTALLEXE">
|
<Property Id="NSIS_UNINSTALLEXE">
|
||||||
@@ -77,8 +80,8 @@
|
|||||||
<!-- Uninstall: Remove sync folders from Explorer's Navigation Pane, only effective for the current user (home users) -->
|
<!-- Uninstall: Remove sync folders from Explorer's Navigation Pane, only effective for the current user (home users) -->
|
||||||
<Custom Action="RemoveNavigationPaneEntries" After="RemoveFiles">(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
|
<Custom Action="RemoveNavigationPaneEntries" After="RemoveFiles">(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
|
||||||
|
|
||||||
<!-- Schedule Reboot for the Shell Extensions -->
|
<!-- Schedule Reboot for the Shell Extensions (in silent installation mode only, or if SCHEDULE_REBOOT argument is set-->
|
||||||
<ScheduleReboot After="InstallFinalize">NOT (DO_NOT_SCHEDULE_REBOOT=1)</ScheduleReboot>
|
<ScheduleReboot After="InstallFinalize">(SCHEDULE_REBOOT=1) OR NOT (UILevel=2)</ScheduleReboot>
|
||||||
</InstallExecuteSequence>
|
</InstallExecuteSequence>
|
||||||
|
|
||||||
<!-- "Add or Remove" Programs Entries -->
|
<!-- "Add or Remove" Programs Entries -->
|
||||||
@@ -214,6 +217,6 @@
|
|||||||
<Condition Level="0">(NO_DESKTOP_SHORTCUT=1)</Condition>
|
<Condition Level="0">(NO_DESKTOP_SHORTCUT=1)</Condition>
|
||||||
</Feature>
|
</Feature>
|
||||||
</Feature>
|
</Feature>
|
||||||
|
<Condition Message="This application only runs on Windows 10, version 1709 or higher!">(VersionNT>=603 AND WINDOWSRELEASEID>=1709)</Condition>
|
||||||
</Product>
|
</Product>
|
||||||
</Wix>
|
</Wix>
|
||||||
|
|||||||
@@ -41,16 +41,16 @@ master_doc = 'index'
|
|||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'Nextcloud Client Manual'
|
project = u'Nextcloud Client Manual'
|
||||||
copyright = u'2013-2020, The Nextcloud developers'
|
copyright = u'2013-2021, The Nextcloud developers'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '3.0'
|
version = '3.2'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '3.0'
|
release = '3.2.2'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 31 KiB |
BIN
doc/images/wizard_advanced.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
doc/images/wizard_flow2.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
doc/images/wizard_setup.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
doc/images/wizard_welcome.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -6,6 +6,10 @@ You can download the latest version of the Nextcloud Desktop Synchronization
|
|||||||
Client from the `Nextcloud download page`_.
|
Client from the `Nextcloud download page`_.
|
||||||
There are clients for Linux, macOs, and Microsoft Windows.
|
There are clients for Linux, macOs, and Microsoft Windows.
|
||||||
|
|
||||||
|
The currently supported server releases are the latest three stable versions
|
||||||
|
at time of publication. It means that the |version| release series is supporting
|
||||||
|
server major version 19, 20 and 21.
|
||||||
|
|
||||||
Installation on Mac OS X and Windows is the same as for any software
|
Installation on Mac OS X and Windows is the same as for any software
|
||||||
application: download the program and then double-click it to launch the
|
application: download the program and then double-click it to launch the
|
||||||
installation, and then follow the installation wizard. After it is installed and
|
installation, and then follow the installation wizard. After it is installed and
|
||||||
@@ -27,7 +31,7 @@ download page.
|
|||||||
System Requirements
|
System Requirements
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
- Windows 8.1+
|
- Windows 10+
|
||||||
- macOS 10.12+ (**64-bit only**)
|
- macOS 10.12+ (**64-bit only**)
|
||||||
- macOS 10.10 & 10.11 (**64-bit and up to client legacy version 2.6.5 only**)
|
- macOS 10.10 & 10.11 (**64-bit and up to client legacy version 2.6.5 only**)
|
||||||
- CentOS 6 & 7 (64-bit only)
|
- CentOS 6 & 7 (64-bit only)
|
||||||
@@ -169,36 +173,49 @@ Installation Wizard
|
|||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The installation wizard takes you step-by-step through configuration options and
|
The installation wizard takes you step-by-step through configuration options and
|
||||||
account setup. First you need to enter the URL of your Nextcloud server.
|
account setup. First, you need to enter the URL of your Nextcloud server.
|
||||||
|
|
||||||
.. image:: images/client-1.png
|
.. image:: images/wizard_welcome.png
|
||||||
|
:alt: form for choosing between login and registering
|
||||||
|
|
||||||
|
If you already have an account on a Nextcloud instance, you want to
|
||||||
|
press the button ``Login to your Nextcloud``. If you don't have a
|
||||||
|
Nextcloud instance and an account there, you might want to register an
|
||||||
|
account with a provider. Press ``Create account with Provider`` in
|
||||||
|
that case. Please keep in mind that the desktop client might have
|
||||||
|
built without provider support. In that case, you won't see this
|
||||||
|
page. Instead, you will be prompted with the next page.
|
||||||
|
|
||||||
|
.. image:: images/wizard_setup.png
|
||||||
:alt: form for entering Nextcloud server URL
|
:alt: form for entering Nextcloud server URL
|
||||||
|
|
||||||
Enter your Nextcloud login on the next screen.
|
Enter the URL for your Nextcloud instance. The URL is the same URL that
|
||||||
|
you type into your browser when you try to access your Nextcloud
|
||||||
|
instance.
|
||||||
|
|
||||||
.. image:: images/client-2.png
|
.. image:: images/wizard_flow2.png
|
||||||
:alt: form for entering your Nextcloud login
|
:alt: form waiting for authorization
|
||||||
|
|
||||||
On the Local Folder Option screen you may sync
|
Now your web browser should open and prompt you to login into your
|
||||||
all of your files on the Nextcloud server, or select individual folders. The
|
Nextcloud instance. Enter your username and password in your web
|
||||||
default local sync folder is ``Nextcloud``, in your home directory. You may
|
browser and grant access. After you did that, go back to the
|
||||||
change this as well.
|
wizard. Please keep in mind that you might not need to enter your
|
||||||
|
username and password if you are already logged in to your browser.
|
||||||
|
|
||||||
.. image:: images/client-3.png
|
.. image:: images/wizard_advanced.png
|
||||||
:alt: Select which remote folders to sync, and which local folder to store
|
:alt: Select which remote folders to sync, and which local folder to store
|
||||||
them in.
|
them in.
|
||||||
|
|
||||||
When you have completed selecting your sync folders, click the Connect button
|
On the local folder options screen, you may sync all of your files on
|
||||||
at the bottom right. The client will attempt to connect to your Nextcloud
|
the Nextcloud server, or select individual folders. The default local
|
||||||
server, and when it is successful you'll see two buttons: one to connect to
|
sync folder is ``Nextcloud``, in your home directory. You may change
|
||||||
your Nextcloud Web GUI, and one to open your local folder. It will also start
|
this as well.
|
||||||
synchronizing your files.
|
|
||||||
|
|
||||||
.. image:: images/client-4.png
|
When you have completed selecting your sync folders, click the Connect
|
||||||
:alt: A successful server connection, showing a button to connect to your
|
button at the bottom right. The client will attempt to connect to your
|
||||||
Web GUI, and one to open your local Nextcloud folder
|
Nextcloud server, and when it is successful, the wizard closes
|
||||||
|
itself. You can now observe the sync activity if you open the main
|
||||||
Click the Finish button, and you're all done.
|
dialogue by clicking on the tray icon.
|
||||||
|
|
||||||
.. Links
|
.. Links
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,8 @@ Improvements and New Features
|
|||||||
The |version| release of the Nextcloud desktop sync client has many new features and
|
The |version| release of the Nextcloud desktop sync client has many new features and
|
||||||
improvements.
|
improvements.
|
||||||
|
|
||||||
* Show server notifications on the client
|
* Virtual Files on Windows
|
||||||
* Improved sync speed
|
* Support for the user status from the server
|
||||||
* Improved handling of Win32 file locks and network files
|
* Many improvements to the sync engine
|
||||||
* Improved user notifications about ignored files and conflicts
|
* Make the end-to-end encryption work more reliable
|
||||||
* Add warnings for old server versions
|
* Improve sync performance
|
||||||
* Update of QtKeyChain to support Windows credential store
|
|
||||||
* Packaging of dolphin overlay icon module for bleeding edge distributions
|
|
||||||
|
|||||||
53344
src/3rdparty/sqlite3/sqlite3.c
vendored
2338
src/3rdparty/sqlite3/sqlite3.h
vendored
@@ -163,7 +163,8 @@ std::unique_ptr<csync_file_stat_t> csync_vio_local_readdir(csync_vio_handle_t *h
|
|||||||
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||||
file_stat->type = ItemTypeDirectory;
|
file_stat->type = ItemTypeDirectory;
|
||||||
} else {
|
} else {
|
||||||
file_stat->type = ItemTypeFile;
|
// exclude ".lnk" files as they are not essential, but, causing troubles when enabling the VFS due to QFileInfo::isDir() and other methods are freezing, which causes the ".lnk" files to start hydrating and freezing the app eventually.
|
||||||
|
file_stat->type = !OCC::FileSystem::isLnkFile(path) ? ItemTypeFile : ItemTypeSoftLink;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for the hidden flag */
|
/* Check for the hidden flag */
|
||||||
|
|||||||
@@ -223,8 +223,6 @@ set( final_src
|
|||||||
${MIRALL_RC_SRC}
|
${MIRALL_RC_SRC}
|
||||||
${client_SRCS}
|
${client_SRCS}
|
||||||
${client_UI_SRCS}
|
${client_UI_SRCS}
|
||||||
${client_version}
|
|
||||||
${client_manifest}
|
|
||||||
${guiMoc}
|
${guiMoc}
|
||||||
${client_I18N}
|
${client_I18N}
|
||||||
${3rdparty_SRC}
|
${3rdparty_SRC}
|
||||||
@@ -253,7 +251,7 @@ if(APPLE)
|
|||||||
file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*")
|
file(GLOB_RECURSE OWNCLOUD_SIDEBAR_ICONS "${theme_dir}/colored/*-${APPLICATION_ICON_NAME}-sidebar*")
|
||||||
MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}")
|
MESSAGE(STATUS "OWNCLOUD_SIDEBAR_ICONS: ${APPLICATION_ICON_NAME}: ${OWNCLOUD_SIDEBAR_ICONS}")
|
||||||
endif()
|
endif()
|
||||||
ecm_add_app_icon(final_src ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}")
|
ecm_add_app_icon(APP_ICON ICONS "${OWNCLOUD_ICONS}" SIDEBAR_ICONS "${OWNCLOUD_SIDEBAR_ICONS}" OUTFILE_BASENAME "${APPLICATION_ICON_NAME}")
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
|
||||||
@@ -315,13 +313,13 @@ if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# we may not add MACOSX_BUNDLE here, if not building one
|
# we may not add MACOSX_BUNDLE here, if not building one
|
||||||
add_executable(${APPLICATION_EXECUTABLE} WIN32 main.cpp)
|
add_executable(${APPLICATION_EXECUTABLE} WIN32 main.cpp ${client_version} ${client_manifest} ${APP_ICON})
|
||||||
else()
|
else()
|
||||||
# set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf.
|
# set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf.
|
||||||
set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns")
|
set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns")
|
||||||
|
|
||||||
# we must add MACOSX_BUNDLE only if building a bundle
|
# we must add MACOSX_BUNDLE only if building a bundle
|
||||||
add_executable(${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp)
|
add_executable(${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp ${APP_ICON})
|
||||||
|
|
||||||
set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations)
|
set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations)
|
||||||
install(FILES ${client_I18N} DESTINATION ${QM_DIR})
|
install(FILES ${client_I18N} DESTINATION ${QM_DIR})
|
||||||
@@ -430,11 +428,13 @@ if(BUILD_OWNCLOUD_OSX_BUNDLE AND NOT BUILD_LIBRARIES_ONLY)
|
|||||||
|
|
||||||
add_custom_command(TARGET ${APPLICATION_EXECUTABLE} POST_BUILD
|
add_custom_command(TARGET ${APPLICATION_EXECUTABLE} POST_BUILD
|
||||||
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
|
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
|
||||||
"$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/../.."
|
"$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/../.."
|
||||||
-qmldir=${CMAKE_SOURCE_DIR}/src/gui
|
-qmldir=${CMAKE_SOURCE_DIR}/src/gui
|
||||||
-always-overwrite
|
-always-overwrite
|
||||||
-executable="$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/${cmd_NAME}"
|
-executable="$<TARGET_FILE_DIR:${APPLICATION_EXECUTABLE}>/${cmd_NAME}"
|
||||||
${NO_STRIP}
|
${NO_STRIP}
|
||||||
|
COMMAND "${CMAKE_COMMAND}"
|
||||||
|
-E rm -rf "${BIN_OUTPUT_DIRECTORY}/${OWNCLOUD_OSX_BUNDLE}/Contents/PlugIns/bearer"
|
||||||
COMMENT "Running macdeployqt..."
|
COMMENT "Running macdeployqt..."
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -385,8 +385,7 @@ void AccountSettings::slotEditCurrentLocalIgnoredFiles()
|
|||||||
|
|
||||||
void AccountSettings::openIgnoredFilesDialog(const QString & absFolderPath)
|
void AccountSettings::openIgnoredFilesDialog(const QString & absFolderPath)
|
||||||
{
|
{
|
||||||
Q_ASSERT(absFolderPath.startsWith('/'));
|
Q_ASSERT(QFileInfo(absFolderPath).isAbsolute());
|
||||||
Q_ASSERT(absFolderPath.endsWith('/'));
|
|
||||||
|
|
||||||
const QString ignoreFile = absFolderPath + ".sync-exclude.lst";
|
const QString ignoreFile = absFolderPath + ".sync-exclude.lst";
|
||||||
auto layout = new QVBoxLayout();
|
auto layout = new QVBoxLayout();
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ bool AccountState::isDesktopNotificationsAllowed() const
|
|||||||
return _isDesktopNotificationsAllowed;
|
return _isDesktopNotificationsAllowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountState::setDesktopNotificationsAllowed(const bool isAllowed)
|
void AccountState::setDesktopNotificationsAllowed(bool isAllowed)
|
||||||
{
|
{
|
||||||
_isDesktopNotificationsAllowed = isAllowed;
|
_isDesktopNotificationsAllowed = isAllowed;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ public:
|
|||||||
|
|
||||||
/** Set desktop notifications status retrieved by the notificatons endpoint
|
/** Set desktop notifications status retrieved by the notificatons endpoint
|
||||||
*/
|
*/
|
||||||
void setDesktopNotificationsAllowed(const bool isAllowed);
|
void setDesktopNotificationsAllowed(bool isAllowed);
|
||||||
|
|
||||||
/** Fetch the user status (status, icon, message)
|
/** Fetch the user status (status, icon, message)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -86,9 +86,6 @@ void NavigationPaneHelper::updateCloudStorageRegistry()
|
|||||||
// We currently don't distinguish between new and existing CLSIDs, if it's there we just
|
// We currently don't distinguish between new and existing CLSIDs, if it's there we just
|
||||||
// save over it. We at least need to update the tile in case we are suddently using multiple accounts.
|
// save over it. We at least need to update the tile in case we are suddently using multiple accounts.
|
||||||
foreach (Folder *folder, _folderMan->map()) {
|
foreach (Folder *folder, _folderMan->map()) {
|
||||||
if (folder->vfs().mode() == Vfs::WindowsCfApi) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!folder->navigationPaneClsid().isNull()) {
|
if (!folder->navigationPaneClsid().isNull()) {
|
||||||
// If it already exists, unmark it for removal, this is a valid sync root.
|
// If it already exists, unmark it for removal, this is a valid sync root.
|
||||||
entriesToRemove.removeOne(folder->navigationPaneClsid());
|
entriesToRemove.removeOne(folder->navigationPaneClsid());
|
||||||
|
|||||||
@@ -180,11 +180,11 @@ Q_LOGGING_CATEGORY(lcPublicLink, "nextcloud.gui.socketapi.publiclink", QtInfoMsg
|
|||||||
void SocketListener::sendMessage(const QString &message, bool doWait) const
|
void SocketListener::sendMessage(const QString &message, bool doWait) const
|
||||||
{
|
{
|
||||||
if (!socket) {
|
if (!socket) {
|
||||||
qCInfo(lcSocketApi) << "Not sending message to dead socket:" << message;
|
qCWarning(lcSocketApi) << "Not sending message to dead socket:" << message;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qCInfo(lcSocketApi) << "Sending SocketAPI message -->" << message << "to" << socket;
|
qCDebug(lcSocketApi) << "Sending SocketAPI message -->" << message << "to" << socket;
|
||||||
QString localMessage = message;
|
QString localMessage = message;
|
||||||
if (!localMessage.endsWith(QLatin1Char('\n'))) {
|
if (!localMessage.endsWith(QLatin1Char('\n'))) {
|
||||||
localMessage.append(QLatin1Char('\n'));
|
localMessage.append(QLatin1Char('\n'));
|
||||||
@@ -313,6 +313,7 @@ void SocketApi::slotNewConnection()
|
|||||||
foreach (Folder *f, FolderMan::instance()->map()) {
|
foreach (Folder *f, FolderMan::instance()->map()) {
|
||||||
if (f->canSync()) {
|
if (f->canSync()) {
|
||||||
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
||||||
|
qCInfo(lcSocketApi) << "Trying to send SocketAPI Register Path Message -->" << message << "to" << listener.socket;
|
||||||
listener.sendMessage(message);
|
listener.sendMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -417,6 +418,7 @@ void SocketApi::slotRegisterPath(const QString &alias)
|
|||||||
if (f) {
|
if (f) {
|
||||||
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
||||||
foreach (auto &listener, _listeners) {
|
foreach (auto &listener, _listeners) {
|
||||||
|
qCInfo(lcSocketApi) << "Trying to send SocketAPI Register Path Message -->" << message << "to" << listener.socket;
|
||||||
listener.sendMessage(message);
|
listener.sendMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ void ServerNotificationHandler::slotEtagResponseHeaderReceived(const QByteArray
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerNotificationHandler::slotAllowDesktopNotificationsChanged(const bool isAllowed)
|
void ServerNotificationHandler::slotAllowDesktopNotificationsChanged(bool isAllowed)
|
||||||
{
|
{
|
||||||
auto *account = qvariant_cast<AccountState *>(sender()->property(propertyAccountStateC));
|
auto *account = qvariant_cast<AccountState *>(sender()->property(propertyAccountStateC));
|
||||||
if (account != nullptr) {
|
if (account != nullptr) {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ private slots:
|
|||||||
void slotNotificationsReceived(const QJsonDocument &json, int statusCode);
|
void slotNotificationsReceived(const QJsonDocument &json, int statusCode);
|
||||||
void slotEtagResponseHeaderReceived(const QByteArray &value, int statusCode);
|
void slotEtagResponseHeaderReceived(const QByteArray &value, int statusCode);
|
||||||
void slotIconDownloaded(QByteArray iconData);
|
void slotIconDownloaded(QByteArray iconData);
|
||||||
void slotAllowDesktopNotificationsChanged(const bool isAllowed);
|
void slotAllowDesktopNotificationsChanged(bool isAllowed);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPointer<JsonApiJob> _notificationJob;
|
QPointer<JsonApiJob> _notificationJob;
|
||||||
|
|||||||
@@ -219,7 +219,8 @@ void User::slotRefreshActivities()
|
|||||||
_activityModel->slotRefreshActivity();
|
_activityModel->slotRefreshActivity();
|
||||||
}
|
}
|
||||||
|
|
||||||
void User::slotRefreshUserStatus() {
|
void User::slotRefreshUserStatus()
|
||||||
|
{
|
||||||
// TODO: check for _account->account()->capabilities().userStatus()
|
// TODO: check for _account->account()->capabilities().userStatus()
|
||||||
if (_account.data() && _account.data()->isConnected()) {
|
if (_account.data() && _account.data()->isConnected()) {
|
||||||
_account.data()->fetchUserStatus();
|
_account.data()->fetchUserStatus();
|
||||||
@@ -698,7 +699,7 @@ Q_INVOKABLE bool UserModel::isUserConnected(const int &id)
|
|||||||
return _users[id]->isConnected();
|
return _users[id]->isConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_INVOKABLE QUrl UserModel::statusIcon(const int &id)
|
Q_INVOKABLE QUrl UserModel::statusIcon(int id)
|
||||||
{
|
{
|
||||||
if (id < 0 || id >= _users.size()) {
|
if (id < 0 || id >= _users.size()) {
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ public:
|
|||||||
Q_INVOKABLE bool currentUserHasLocalFolder();
|
Q_INVOKABLE bool currentUserHasLocalFolder();
|
||||||
int currentUserId() const;
|
int currentUserId() const;
|
||||||
Q_INVOKABLE bool isUserConnected(const int &id);
|
Q_INVOKABLE bool isUserConnected(const int &id);
|
||||||
Q_INVOKABLE QUrl statusIcon(const int &id);
|
Q_INVOKABLE QUrl statusIcon(int id);
|
||||||
Q_INVOKABLE void switchCurrentUser(const int &id);
|
Q_INVOKABLE void switchCurrentUser(const int &id);
|
||||||
Q_INVOKABLE void login(const int &id);
|
Q_INVOKABLE void login(const int &id);
|
||||||
Q_INVOKABLE void logout(const int &id);
|
Q_INVOKABLE void logout(const int &id);
|
||||||
|
|||||||
@@ -403,67 +403,57 @@ Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filler between account dropdown and header app buttons
|
RowLayout {
|
||||||
Item {
|
id: openLocalFolderRowLayout
|
||||||
id: trayWindowHeaderSpacer
|
spacing: 0
|
||||||
Layout.fillWidth: true
|
Layout.preferredWidth: Style.trayWindowHeaderHeight
|
||||||
}
|
Layout.preferredHeight: Style.trayWindowHeaderHeight
|
||||||
|
|
||||||
|
HeaderButton {
|
||||||
|
id: openLocalFolderButton
|
||||||
|
visible: UserModel.currentUser.hasLocalFolder
|
||||||
|
icon.source: "qrc:///client/theme/white/folder.svg"
|
||||||
|
onClicked: UserModel.openCurrentAccountLocalFolder()
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: folderStateIndicatorBackground
|
||||||
|
width: Style.folderStateIndicatorSize
|
||||||
|
height: width
|
||||||
|
anchors.top: openLocalFolderButton.verticalCenter
|
||||||
|
anchors.left: openLocalFolderButton.horizontalCenter
|
||||||
|
color: Style.ncBlue
|
||||||
|
radius: width*0.5
|
||||||
|
z: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
HeaderButton {
|
Image {
|
||||||
id: openLocalFolderButton
|
id: folderStateIndicator
|
||||||
|
source: UserModel.isUserConnected(UserModel.currentUserId)
|
||||||
visible: UserModel.currentUser.hasLocalFolder
|
? Style.stateOnlineImageSource
|
||||||
icon.source: "qrc:///client/theme/white/folder.svg"
|
: Style.stateOfflineImageSource
|
||||||
onClicked: UserModel.openCurrentAccountLocalFolder()
|
cache: false
|
||||||
|
anchors.top: openLocalFolderButton.verticalCenter
|
||||||
|
anchors.left: openLocalFolderButton.horizontalCenter
|
||||||
|
|
||||||
|
sourceSize.width: Style.folderStateIndicatorSize
|
||||||
|
sourceSize.height: Style.folderStateIndicatorSize
|
||||||
|
|
||||||
|
Accessible.role: Accessible.Indicator
|
||||||
|
Accessible.name: UserModel.isUserConnected(UserModel.currentUserId()) ? qsTr("Connected") : qsTr("Disconnected")
|
||||||
|
}
|
||||||
|
|
||||||
Accessible.role: Accessible.Button
|
Accessible.role: Accessible.Button
|
||||||
Accessible.name: qsTr("Open local folder of current account")
|
Accessible.name: qsTr("Open local folder of current account")
|
||||||
Accessible.onPressAction: openLocalFolderButton.clicked()
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: folderStateIndicatorBackground
|
|
||||||
width: Style.folderStateIndicatorSize
|
|
||||||
height: width
|
|
||||||
anchors.top: openLocalFolderButton.verticalCenter
|
|
||||||
anchors.left: openLocalFolderButton.horizontalCenter
|
|
||||||
color: Style.ncBlue
|
|
||||||
radius: width*0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: folderStateRectangle
|
|
||||||
width: Style.folderStateIndicatorSize
|
|
||||||
height: width
|
|
||||||
anchors.bottom: openLocalFolderButton.bottom
|
|
||||||
anchors.right: openLocalFolderButton.right
|
|
||||||
color: openLocalFolderButton.containsMouse ? "white" : "transparent"
|
|
||||||
opacity: 0.2
|
|
||||||
radius: width*0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: folderStateIndicator
|
|
||||||
source: UserModel.isUserConnected(UserModel.currentUserId)
|
|
||||||
? Style.stateOnlineImageSource
|
|
||||||
: Style.stateOfflineImageSource
|
|
||||||
cache: false
|
|
||||||
x: folderStateIndicatorBackground.x
|
|
||||||
y: folderStateIndicatorBackground.y
|
|
||||||
sourceSize.width: Style.folderStateIndicatorSize
|
|
||||||
sourceSize.height: Style.folderStateIndicatorSize
|
|
||||||
|
|
||||||
Accessible.role: Accessible.Indicator
|
|
||||||
Accessible.name: UserModel.isUserConnected(UserModel.currentUserId()) ? qsTr("Connected") : qsTr("Disconnected")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HeaderButton {
|
HeaderButton {
|
||||||
id: trayWindowTalkButton
|
id: trayWindowTalkButton
|
||||||
|
|
||||||
visible: UserModel.currentUser.serverHasTalk
|
visible: UserModel.currentUser.serverHasTalk
|
||||||
icon.source: "qrc:///client/theme/white/talk-app.svg"
|
icon.source: "qrc:///client/theme/white/talk-app.svg"
|
||||||
onClicked: UserModel.openCurrentAccountTalk()
|
onClicked: UserModel.openCurrentAccountTalk()
|
||||||
|
|
||||||
Accessible.role: Accessible.Button
|
Accessible.role: Accessible.Button
|
||||||
Accessible.name: qsTr("Open Nextcloud Talk in browser")
|
Accessible.name: qsTr("Open Nextcloud Talk in browser")
|
||||||
Accessible.onPressAction: trayWindowTalkButton.clicked()
|
Accessible.onPressAction: trayWindowTalkButton.clicked()
|
||||||
@@ -472,6 +462,7 @@ Window {
|
|||||||
HeaderButton {
|
HeaderButton {
|
||||||
id: trayWindowAppsButton
|
id: trayWindowAppsButton
|
||||||
icon.source: "qrc:///client/theme/white/more-apps.svg"
|
icon.source: "qrc:///client/theme/white/more-apps.svg"
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if(appsMenu.count <= 0) {
|
if(appsMenu.count <= 0) {
|
||||||
UserModel.openCurrentAccountServer()
|
UserModel.openCurrentAccountServer()
|
||||||
|
|||||||
@@ -149,11 +149,11 @@ QString OCUpdater::statusString() const
|
|||||||
case DownloadComplete:
|
case DownloadComplete:
|
||||||
return tr("%1 available. Restart application to start the update.").arg(updateVersion);
|
return tr("%1 available. Restart application to start the update.").arg(updateVersion);
|
||||||
case DownloadFailed:
|
case DownloadFailed:
|
||||||
return tr("Could not download update. Please click <a href='%1'>here</a> to download the update manually.").arg(_updateInfo.web());
|
return tr("Could not download update. Please open %1 to download the update manually.").arg(_updateInfo.web());
|
||||||
case DownloadTimedOut:
|
case DownloadTimedOut:
|
||||||
return tr("Could not check for new updates.");
|
return tr("Could not check for new updates.");
|
||||||
case UpdateOnlyAvailableThroughSystem:
|
case UpdateOnlyAvailableThroughSystem:
|
||||||
return tr("New %1 is available. Please click <a href='%2'>here</a> to download the update.").arg(updateVersion, _updateInfo.web());
|
return tr("New %1 is available. Please open %2 to download the update.").arg(updateVersion, _updateInfo.web());
|
||||||
case CheckingServer:
|
case CheckingServer:
|
||||||
return tr("Checking update server …");
|
return tr("Checking update server …");
|
||||||
case Unknown:
|
case Unknown:
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "configfile.h"
|
#include "configfile.h"
|
||||||
|
|
||||||
|
#include <QSysInfo>
|
||||||
|
|
||||||
namespace OCC {
|
namespace OCC {
|
||||||
|
|
||||||
Q_LOGGING_CATEGORY(lcUpdater, "nextcloud.gui.updater", QtInfoMsg)
|
Q_LOGGING_CATEGORY(lcUpdater, "nextcloud.gui.updater", QtInfoMsg)
|
||||||
@@ -88,6 +90,9 @@ QUrlQuery Updater::getQueryParams()
|
|||||||
}
|
}
|
||||||
query.addQueryItem(QStringLiteral("version"), clientVersion());
|
query.addQueryItem(QStringLiteral("version"), clientVersion());
|
||||||
query.addQueryItem(QStringLiteral("platform"), platform);
|
query.addQueryItem(QStringLiteral("platform"), platform);
|
||||||
|
query.addQueryItem(QStringLiteral("osRelease"), QSysInfo::productType());
|
||||||
|
query.addQueryItem(QStringLiteral("osVersion"), QSysInfo::productVersion());
|
||||||
|
query.addQueryItem(QStringLiteral("kernelVersion"), QSysInfo::kernelVersion());
|
||||||
query.addQueryItem(QStringLiteral("oem"), theme->appName());
|
query.addQueryItem(QStringLiteral("oem"), theme->appName());
|
||||||
query.addQueryItem(QStringLiteral("buildArch"), QSysInfo::buildCpuArchitecture());
|
query.addQueryItem(QStringLiteral("buildArch"), QSysInfo::buildCpuArchitecture());
|
||||||
query.addQueryItem(QStringLiteral("currentArch"), QSysInfo::currentCpuArchitecture());
|
query.addQueryItem(QStringLiteral("currentArch"), QSysInfo::currentCpuArchitecture());
|
||||||
|
|||||||
@@ -30,16 +30,37 @@ Q_LOGGING_CATEGORY(lcUserStatus, "nextcloud.gui.userstatus", QtInfoMsg)
|
|||||||
|
|
||||||
UserStatus::UserStatus(QObject *parent)
|
UserStatus::UserStatus(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, _message("")
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
UserStatus::Status UserStatus::stringToEnum(const QString &status) const
|
UserStatus::Status UserStatus::stringToEnum(const QString &status) const
|
||||||
{
|
{
|
||||||
|
// it needs to match the Status enum
|
||||||
|
const QHash<QString, Status> preDefinedStatus{{"online", Status::Online},
|
||||||
|
{"dnd", Status::DoNotDisturb}, //DoNotDisturb
|
||||||
|
{"away", Status::Away},
|
||||||
|
{"offline", Status::Offline},
|
||||||
|
{"invisible", Status::Invisible}};
|
||||||
|
|
||||||
// api should return invisible, dnd,... toLower() it is to make sure
|
// api should return invisible, dnd,... toLower() it is to make sure
|
||||||
// it matches _preDefinedStatus, otherwise the default is online (0)
|
// it matches _preDefinedStatus, otherwise the default is online (0)
|
||||||
const auto statusEnum = _preDefinedStatus.value(status.isEmpty()? "online" : status.toLower(), 0);
|
const auto statusKey = status.isEmpty() ? QStringLiteral("online") : status.toLower();
|
||||||
return static_cast<Status>(statusEnum);
|
return preDefinedStatus.value(statusKey, Status::Online);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString UserStatus::enumToString(Status status) const
|
||||||
|
{
|
||||||
|
switch (status) {
|
||||||
|
case Status::Away:
|
||||||
|
return tr("Away");
|
||||||
|
case Status::DoNotDisturb:
|
||||||
|
return tr("Do not disturb");
|
||||||
|
case Status::Invisible:
|
||||||
|
case Status::Offline:
|
||||||
|
return tr("Offline");
|
||||||
|
default:
|
||||||
|
return tr("Online");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserStatus::fetchUserStatus(AccountPtr account)
|
void UserStatus::fetchUserStatus(AccountPtr account)
|
||||||
@@ -53,10 +74,9 @@ void UserStatus::fetchUserStatus(AccountPtr account)
|
|||||||
_job->start();
|
_job->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserStatus::slotFetchUserStatusFinished(const QJsonDocument &json, const int statusCode)
|
void UserStatus::slotFetchUserStatusFinished(const QJsonDocument &json, int statusCode)
|
||||||
{
|
{
|
||||||
const QJsonObject defaultValues
|
const QJsonObject defaultValues {
|
||||||
{
|
|
||||||
{"icon", ""},
|
{"icon", ""},
|
||||||
{"message", ""},
|
{"message", ""},
|
||||||
{"status", "online"}
|
{"status", "online"}
|
||||||
@@ -66,19 +86,13 @@ void UserStatus::slotFetchUserStatusFinished(const QJsonDocument &json, const in
|
|||||||
qCInfo(lcUserStatus) << "Slot fetch UserStatus finished with status code" << statusCode;
|
qCInfo(lcUserStatus) << "Slot fetch UserStatus finished with status code" << statusCode;
|
||||||
qCInfo(lcUserStatus) << "Using then default values as if user has not set any status" << defaultValues;
|
qCInfo(lcUserStatus) << "Using then default values as if user has not set any status" << defaultValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto retrievedData = json.object().value("ocs").toObject().value("data").toObject(defaultValues);
|
const auto retrievedData = json.object().value("ocs").toObject().value("data").toObject(defaultValues);
|
||||||
const auto emoji = retrievedData.value("icon").toString();
|
const auto emoji = retrievedData.value("icon").toString();
|
||||||
const auto message = retrievedData.value("message").toString();
|
const auto message = retrievedData.value("message").toString();
|
||||||
auto statusString = retrievedData.value("status").toString();
|
|
||||||
_status = stringToEnum(statusString);
|
|
||||||
|
|
||||||
// to display it to the user like 'Invisible' instead of 'invisible'
|
_status = stringToEnum(retrievedData.value("status").toString());
|
||||||
statusString.replace(0, 1, statusString.at(0).toUpper());
|
const auto visibleStatusText = message.isEmpty() ? enumToString(_status) : message;
|
||||||
|
|
||||||
const auto visibleStatusText = message.isEmpty()
|
|
||||||
? _status == DoNotDisturb? tr("Do not disturb")
|
|
||||||
: tr(qPrintable(statusString))
|
|
||||||
: message;
|
|
||||||
|
|
||||||
_message = QString("%1 %2").arg(emoji, visibleStatusText);
|
_message = QString("%1 %2").arg(emoji, visibleStatusText);
|
||||||
emit fetchUserStatusFinished();
|
emit fetchUserStatusFinished();
|
||||||
@@ -91,20 +105,18 @@ UserStatus::Status UserStatus::status() const
|
|||||||
|
|
||||||
QString UserStatus::message() const
|
QString UserStatus::message() const
|
||||||
{
|
{
|
||||||
return _message;
|
return _message.trimmed();
|
||||||
}
|
}
|
||||||
|
|
||||||
QUrl UserStatus::icon() const
|
QUrl UserStatus::icon() const
|
||||||
{
|
{
|
||||||
switch (_status) {
|
switch (_status) {
|
||||||
case Online:
|
case Status::Away:
|
||||||
return Theme::instance()->statusOnlineImageSource();
|
|
||||||
case Away:
|
|
||||||
return Theme::instance()->statusAwayImageSource();
|
return Theme::instance()->statusAwayImageSource();
|
||||||
case DoNotDisturb:
|
case Status::DoNotDisturb:
|
||||||
return Theme::instance()->statusDoNotDisturbImageSource();
|
return Theme::instance()->statusDoNotDisturbImageSource();
|
||||||
case Invisible:
|
case Status::Invisible:
|
||||||
case Offline:
|
case Status::Offline:
|
||||||
return Theme::instance()->statusInvisibleImageSource();
|
return Theme::instance()->statusInvisibleImageSource();
|
||||||
default:
|
default:
|
||||||
return Theme::instance()->statusOnlineImageSource();
|
return Theme::instance()->statusOnlineImageSource();
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class UserStatus : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit UserStatus(QObject *parent = nullptr);
|
explicit UserStatus(QObject *parent = nullptr);
|
||||||
enum Status {
|
enum class Status {
|
||||||
Online,
|
Online,
|
||||||
DoNotDisturb,
|
DoNotDisturb,
|
||||||
Away,
|
Away,
|
||||||
@@ -42,23 +42,16 @@ public:
|
|||||||
QUrl icon() const;
|
QUrl icon() const;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slotFetchUserStatusFinished(const QJsonDocument &json, const int statusCode);
|
void slotFetchUserStatusFinished(const QJsonDocument &json, int statusCode);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void fetchUserStatusFinished();
|
void fetchUserStatusFinished();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Status stringToEnum(const QString &status) const;
|
Status stringToEnum(const QString &status) const;
|
||||||
|
QString enumToString(Status status) const;
|
||||||
// it needs to match the Status enum
|
|
||||||
const QHash<QString, int> _preDefinedStatus{{"online", 0},
|
|
||||||
{"dnd", 1}, //DoNotDisturb
|
|
||||||
{"away", 2},
|
|
||||||
{"offline", 3},
|
|
||||||
{"invisible", 4}};
|
|
||||||
|
|
||||||
QPointer<JsonApiJob> _job; // the currently running job
|
QPointer<JsonApiJob> _job; // the currently running job
|
||||||
Status _status{Status::Online};
|
Status _status = Status::Online;
|
||||||
QString _message;
|
QString _message;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,10 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
|
|||||||
void OwncloudWizard::centerWindow()
|
void OwncloudWizard::centerWindow()
|
||||||
{
|
{
|
||||||
const auto wizardWindow = window();
|
const auto wizardWindow = window();
|
||||||
const auto screenGeometry = QGuiApplication::screenAt(wizardWindow->pos())->geometry();
|
const auto screen = QGuiApplication::screenAt(wizardWindow->pos())
|
||||||
|
? QGuiApplication::screenAt(wizardWindow->pos())
|
||||||
|
: QGuiApplication::primaryScreen();
|
||||||
|
const auto screenGeometry = screen->geometry();
|
||||||
const auto windowGeometry = wizardWindow->geometry();
|
const auto windowGeometry = wizardWindow->geometry();
|
||||||
const auto newWindowPosition = screenGeometry.center() - QPoint(windowGeometry.width() / 2, windowGeometry.height() / 2);
|
const auto newWindowPosition = screenGeometry.center() - QPoint(windowGeometry.width() / 2, windowGeometry.height() / 2);
|
||||||
wizardWindow->move(newWindowPosition);
|
wizardWindow->move(newWindowPosition);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "discovery.h"
|
#include "discovery.h"
|
||||||
|
#include "common/filesystembase.h"
|
||||||
#include "common/syncjournaldb.h"
|
#include "common/syncjournaldb.h"
|
||||||
#include "syncfileitem.h"
|
#include "syncfileitem.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -177,9 +178,15 @@ void ProcessDirectoryJob::process()
|
|||||||
// local stat function.
|
// local stat function.
|
||||||
// Recall file shall not be ignored (#4420)
|
// Recall file shall not be ignored (#4420)
|
||||||
bool isHidden = e.localEntry.isHidden || (f.first[0] == '.' && f.first != QLatin1String(".sys.admin#recall#"));
|
bool isHidden = e.localEntry.isHidden || (f.first[0] == '.' && f.first != QLatin1String(".sys.admin#recall#"));
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
// exclude ".lnk" files as they are not essential, but, causing troubles when enabling the VFS due to QFileInfo::isDir() and other methods are freezing, which causes the ".lnk" files to start hydrating and freezing the app eventually.
|
||||||
|
const bool isServerEntryWindowsShortcut = !e.localEntry.isValid() && e.serverEntry.isValid() && !e.serverEntry.isDirectory && FileSystem::isLnkFile(e.serverEntry.name);
|
||||||
|
#else
|
||||||
|
const bool isServerEntryWindowsShortcut = false;
|
||||||
|
#endif
|
||||||
if (handleExcluded(path._target, e.localEntry.name,
|
if (handleExcluded(path._target, e.localEntry.name,
|
||||||
e.localEntry.isDirectory || e.serverEntry.isDirectory, isHidden,
|
e.localEntry.isDirectory || e.serverEntry.isDirectory, isHidden,
|
||||||
e.localEntry.isSymLink))
|
e.localEntry.isSymLink || isServerEntryWindowsShortcut))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (_queryServer == InBlackList || _discoveryData->isInSelectiveSyncBlackList(path._original)) {
|
if (_queryServer == InBlackList || _discoveryData->isInSelectiveSyncBlackList(path._original)) {
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ signals:
|
|||||||
* @brief desktopNotificationStatusReceived - signal to report if notifications are allowed
|
* @brief desktopNotificationStatusReceived - signal to report if notifications are allowed
|
||||||
* @param status - set desktop notifications allowed status
|
* @param status - set desktop notifications allowed status
|
||||||
*/
|
*/
|
||||||
void allowDesktopNotificationsChanged(const bool isAllowed);
|
void allowDesktopNotificationsChanged(bool isAllowed);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QUrlQuery _additionalParams;
|
QUrlQuery _additionalParams;
|
||||||
|
|||||||
@@ -427,6 +427,12 @@ void PropagateDownloadFile::startAfterIsEncryptedIsChecked()
|
|||||||
}
|
}
|
||||||
propagator()->_journal->deleteFileRecord(_item->_originalFile);
|
propagator()->_journal->deleteFileRecord(_item->_originalFile);
|
||||||
updateMetadata(false);
|
updateMetadata(false);
|
||||||
|
|
||||||
|
if (!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite)) {
|
||||||
|
// make sure ReadOnly flag is preserved for placeholder, similarly to regular files
|
||||||
|
FileSystem::setFileReadOnly(propagator()->fullLocalPath(_item->_file), true);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (vfs->mode() == Vfs::Off && _item->_type == ItemTypeVirtualFile) {
|
if (vfs->mode() == Vfs::Off && _item->_type == ItemTypeVirtualFile) {
|
||||||
@@ -434,6 +440,11 @@ void PropagateDownloadFile::startAfterIsEncryptedIsChecked()
|
|||||||
_item->_type = ItemTypeFile;
|
_item->_type = ItemTypeFile;
|
||||||
}
|
}
|
||||||
if (_item->_type == ItemTypeVirtualFile) {
|
if (_item->_type == ItemTypeVirtualFile) {
|
||||||
|
if (propagator()->localFileNameClash(_item->_file)) {
|
||||||
|
done(SyncFileItem::NormalError, tr("File %1 cannot be downloaded because of a local file name clash!").arg(QDir::toNativeSeparators(_item->_file)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
qCDebug(lcPropagateDownload) << "creating virtual file" << _item->_file;
|
qCDebug(lcPropagateDownload) << "creating virtual file" << _item->_file;
|
||||||
auto r = vfs->createPlaceholder(*_item);
|
auto r = vfs->createPlaceholder(*_item);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
@@ -441,6 +452,12 @@ void PropagateDownloadFile::startAfterIsEncryptedIsChecked()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
updateMetadata(false);
|
updateMetadata(false);
|
||||||
|
|
||||||
|
if (!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite)) {
|
||||||
|
// make sure ReadOnly flag is preserved for placeholder, similarly to regular files
|
||||||
|
FileSystem::setFileReadOnly(propagator()->fullLocalPath(_item->_file), true);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -795,8 +795,55 @@ void SyncEngine::slotPropagationFinished(bool success)
|
|||||||
_anotherSyncNeeded = ImmediateFollowUp;
|
_anotherSyncNeeded = ImmediateFollowUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Remove this when the file restoration problem is fixed for a user
|
||||||
|
bool shouldStartSyncAgain = false;
|
||||||
|
const auto checkAndOverrideSetDataFingerprint = [this, &shouldStartSyncAgain] {
|
||||||
|
const int dataFingerprintOverrideThreshold = 9;
|
||||||
|
const QString dataFingerprintOverrideHostHash = QStringLiteral("63debc9ef6d217649ea70632ca573a1db7a237ba61c48cdd2bf797f7060233db");
|
||||||
|
const auto accountHost = account()->url().host();
|
||||||
|
const auto accountDisplayName = account()->displayName();
|
||||||
|
|
||||||
|
if (_dataFingerprintSetFailCount >= 0) {
|
||||||
|
qCWarning(lcEngine) << "setDataFingerprint has failed for account" << accountDisplayName << "on host" << accountHost << "due to sync errors. Checking the possibility for override...";
|
||||||
|
|
||||||
|
if (_dataFingerprintSetFailCount > 0) {
|
||||||
|
if (_dataFingerprintSetFailCount >= dataFingerprintOverrideThreshold) {
|
||||||
|
qCWarning(lcEngine) << "All sync attempts failed for account" << accountDisplayName << "on host" << accountHost << "setting the dataFingerprint anyway.";
|
||||||
|
_journal->setDataFingerprint(_discoveryPhase->_dataFingerprint);
|
||||||
|
// this mechanism should only run once per app launch
|
||||||
|
_dataFingerprintSetFailCount = -1;
|
||||||
|
} else {
|
||||||
|
++_dataFingerprintSetFailCount;
|
||||||
|
// request to start sync again as it won't happen by itself unless the file has changed on the server or in the local folder
|
||||||
|
shouldStartSyncAgain = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// only compare hash once
|
||||||
|
// if it matches - we don't need to calculate it again while _dataFingerprintSetFailCount is greater than 0
|
||||||
|
const auto accountHostHash = QString::fromUtf8(QCryptographicHash::hash(accountHost.toUtf8(), QCryptographicHash::Sha256).toHex());
|
||||||
|
|
||||||
|
if (accountHostHash == dataFingerprintOverrideHostHash) {
|
||||||
|
qCInfo(lcEngine) << "accountHostHash" << accountHostHash << "equals to dataFingerprintOverrideHostHash" << dataFingerprintOverrideHostHash << "_dataFingerprintSetFailCount" << _dataFingerprintSetFailCount;
|
||||||
|
++_dataFingerprintSetFailCount;
|
||||||
|
// request to start sync again as it won't happen by itself unless the file has changed on the server or in the local folder
|
||||||
|
shouldStartSyncAgain = true;
|
||||||
|
} else {
|
||||||
|
qCInfo(lcEngine) << "accountHostHash" << accountHostHash << "differs from dataFingerprintOverrideHostHash" << dataFingerprintOverrideHostHash;
|
||||||
|
// give up on calculating the has next time, as it's not the host we are looking for
|
||||||
|
_dataFingerprintSetFailCount = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
qCWarning(lcEngine) << "setDataFingerprint was overridden already for account" << accountDisplayName << "on host" << accountHost << "but is failing again! Or, it's not the host that we are looking for.";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//
|
||||||
|
|
||||||
if (success && _discoveryPhase) {
|
if (success && _discoveryPhase) {
|
||||||
_journal->setDataFingerprint(_discoveryPhase->_dataFingerprint);
|
_journal->setDataFingerprint(_discoveryPhase->_dataFingerprint);
|
||||||
|
} else if (_discoveryPhase) {
|
||||||
|
// TODO: Remove this when the file restoration problem is fixed for a user
|
||||||
|
checkAndOverrideSetDataFingerprint();
|
||||||
}
|
}
|
||||||
|
|
||||||
conflictRecordMaintenance();
|
conflictRecordMaintenance();
|
||||||
@@ -812,6 +859,12 @@ void SyncEngine::slotPropagationFinished(bool success)
|
|||||||
emit transmissionProgress(*_progressInfo);
|
emit transmissionProgress(*_progressInfo);
|
||||||
|
|
||||||
finalize(success);
|
finalize(success);
|
||||||
|
|
||||||
|
if (shouldStartSyncAgain) {
|
||||||
|
// TODO: Remove this when the file restoration problem is fixed for a user
|
||||||
|
qCWarning(lcEngine) << "Starting sync again for account" << account()->displayName() << "on host" << account()->url().host() << "due to setDataFingerprint override is running.";
|
||||||
|
startSync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SyncEngine::finalize(bool success)
|
void SyncEngine::finalize(bool success)
|
||||||
|
|||||||
@@ -289,6 +289,9 @@ private:
|
|||||||
LocalDiscoveryStyle _lastLocalDiscoveryStyle = LocalDiscoveryStyle::FilesystemOnly;
|
LocalDiscoveryStyle _lastLocalDiscoveryStyle = LocalDiscoveryStyle::FilesystemOnly;
|
||||||
LocalDiscoveryStyle _localDiscoveryStyle = LocalDiscoveryStyle::FilesystemOnly;
|
LocalDiscoveryStyle _localDiscoveryStyle = LocalDiscoveryStyle::FilesystemOnly;
|
||||||
std::set<QString> _localDiscoveryPaths;
|
std::set<QString> _localDiscoveryPaths;
|
||||||
|
|
||||||
|
// TODO: Remove this when the file restoration problem is fixed for a user
|
||||||
|
int _dataFingerprintSetFailCount = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QLocalSocket>
|
#include <QLocalSocket>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
|
#include <QUuid>
|
||||||
|
|
||||||
#include <sddl.h>
|
#include <sddl.h>
|
||||||
#include <cfapi.h>
|
#include <cfapi.h>
|
||||||
@@ -58,6 +59,11 @@ void cfApiSendTransferInfo(const CF_CONNECTION_KEY &connectionKey, const CF_TRAN
|
|||||||
qCCritical(lcCfApiWrapper) << "Couldn't send transfer info" << QString::number(transferKey.QuadPart, 16) << ":" << cfExecuteresult << QString::fromWCharArray(_com_error(cfExecuteresult).ErrorMessage());
|
qCCritical(lcCfApiWrapper) << "Couldn't send transfer info" << QString::number(transferKey.QuadPart, 16) << ":" << cfExecuteresult << QString::fromWCharArray(_com_error(cfExecuteresult).ErrorMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto isDownloadFinished = ((offset + currentBlockLength) == totalLength);
|
||||||
|
if (isDownloadFinished) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// refresh Windows Copy Dialog progress
|
// refresh Windows Copy Dialog progress
|
||||||
LARGE_INTEGER progressTotal;
|
LARGE_INTEGER progressTotal;
|
||||||
progressTotal.QuadPart = totalLength;
|
progressTotal.QuadPart = totalLength;
|
||||||
@@ -460,19 +466,24 @@ OCC::Result<void, QString> OCC::CfApiWrapper::registerSyncRoot(const QString &pa
|
|||||||
qCWarning(lcCfApiWrapper) << "Failed to create the registry key for path:" << path;
|
qCWarning(lcCfApiWrapper) << "Failed to create the registry key for path:" << path;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto p = path.toStdWString();
|
// API is somehow keeping the pointers for longer than one would expect or freeing them itself
|
||||||
const auto name = providerName.toStdWString();
|
// the internal format of QString is likely the right one for wstring on Windows so there's in fact not necessarily a need to copy
|
||||||
const auto version = providerVersion.toStdWString();
|
const auto p = std::wstring(path.toStdWString().data());
|
||||||
|
const auto name = std::wstring(providerName.toStdWString().data());
|
||||||
|
const auto version = std::wstring(providerVersion.toStdWString().data());
|
||||||
|
|
||||||
CF_SYNC_REGISTRATION info;
|
CF_SYNC_REGISTRATION info;
|
||||||
|
info.StructSize = sizeof(info) + (name.length() + version.length()) * sizeof(wchar_t);
|
||||||
info.ProviderName = name.data();
|
info.ProviderName = name.data();
|
||||||
info.ProviderVersion = version.data();
|
info.ProviderVersion = version.data();
|
||||||
info.SyncRootIdentity = nullptr;
|
info.SyncRootIdentity = nullptr;
|
||||||
info.SyncRootIdentityLength = 0;
|
info.SyncRootIdentityLength = 0;
|
||||||
info.FileIdentity = nullptr;
|
info.FileIdentity = nullptr;
|
||||||
info.FileIdentityLength = 0;
|
info.FileIdentityLength = 0;
|
||||||
|
info.ProviderId = QUuid::createUuid();
|
||||||
|
|
||||||
CF_SYNC_POLICIES policies;
|
CF_SYNC_POLICIES policies;
|
||||||
|
policies.StructSize = sizeof(policies);
|
||||||
policies.Hydration.Primary = CF_HYDRATION_POLICY_FULL;
|
policies.Hydration.Primary = CF_HYDRATION_POLICY_FULL;
|
||||||
policies.Hydration.Modifier = CF_HYDRATION_POLICY_MODIFIER_NONE;
|
policies.Hydration.Modifier = CF_HYDRATION_POLICY_MODIFIER_NONE;
|
||||||
policies.Population.Primary = CF_POPULATION_POLICY_ALWAYS_FULL;
|
policies.Population.Primary = CF_POPULATION_POLICY_ALWAYS_FULL;
|
||||||
@@ -692,7 +703,7 @@ OCC::Result<void, QString> OCC::CfApiWrapper::convertToPlaceholder(const FileHan
|
|||||||
|
|
||||||
const auto fileIdentity = QString::fromUtf8(fileId).toStdWString();
|
const auto fileIdentity = QString::fromUtf8(fileId).toStdWString();
|
||||||
const auto fileIdentitySize = (fileIdentity.length() + 1) * sizeof(wchar_t);
|
const auto fileIdentitySize = (fileIdentity.length() + 1) * sizeof(wchar_t);
|
||||||
const qint64 result = CfConvertToPlaceholder(handle.get(), fileIdentity.data(), sizeToDWORD(fileIdentitySize), CF_CONVERT_FLAG_NONE, nullptr, nullptr);
|
const qint64 result = CfConvertToPlaceholder(handle.get(), fileIdentity.data(), sizeToDWORD(fileIdentitySize), CF_CONVERT_FLAG_MARK_IN_SYNC, nullptr, nullptr);
|
||||||
Q_ASSERT(result == S_OK);
|
Q_ASSERT(result == S_OK);
|
||||||
if (result != S_OK) {
|
if (result != S_OK) {
|
||||||
qCCritical(lcCfApiWrapper) << "Couldn't convert to placeholder" << pathForHandle(handle) << ":" << _com_error(result).ErrorMessage();
|
qCCritical(lcCfApiWrapper) << "Couldn't convert to placeholder" << pathForHandle(handle) << ":" << _com_error(result).ErrorMessage();
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ Result<void, QString> VfsCfApi::dehydratePlaceholder(const SyncFileItem &item)
|
|||||||
{
|
{
|
||||||
const auto previousPin = pinState(item._file);
|
const auto previousPin = pinState(item._file);
|
||||||
|
|
||||||
if (!QFile::remove(_setupParams.filesystemPath + item._file)) {
|
if (!FileSystem::remove(_setupParams.filesystemPath + item._file)) {
|
||||||
return QStringLiteral("Couldn't remove %1 to fulfill dehydration").arg(item._file);
|
return QStringLiteral("Couldn't remove %1 to fulfill dehydration").arg(item._file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,6 +184,8 @@ bool VfsCfApi::statTypeVirtualFile(csync_file_stat_t *stat, void *statData)
|
|||||||
const auto hasReparsePoint = (ffd->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0;
|
const auto hasReparsePoint = (ffd->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0;
|
||||||
const auto hasCloudTag = (ffd->dwReserved0 & IO_REPARSE_TAG_CLOUD) != 0;
|
const auto hasCloudTag = (ffd->dwReserved0 & IO_REPARSE_TAG_CLOUD) != 0;
|
||||||
|
|
||||||
|
const auto isWindowsShortcut = !isDirectory && FileSystem::isLnkFile(stat->path);
|
||||||
|
|
||||||
// It's a dir with a reparse point due to the placeholder info (hence the cloud tag)
|
// It's a dir with a reparse point due to the placeholder info (hence the cloud tag)
|
||||||
// if we don't remove the reparse point flag the discovery will end up thinking
|
// if we don't remove the reparse point flag the discovery will end up thinking
|
||||||
// it is a file... let's prevent it
|
// it is a file... let's prevent it
|
||||||
@@ -195,7 +197,7 @@ bool VfsCfApi::statTypeVirtualFile(csync_file_stat_t *stat, void *statData)
|
|||||||
} else if (isSparseFile && isPinned) {
|
} else if (isSparseFile && isPinned) {
|
||||||
stat->type = ItemTypeVirtualFileDownload;
|
stat->type = ItemTypeVirtualFileDownload;
|
||||||
return true;
|
return true;
|
||||||
} else if (!isSparseFile && isUnpinned){
|
} else if (!isSparseFile && isUnpinned && !isWindowsShortcut){
|
||||||
stat->type = ItemTypeVirtualFileDehydration;
|
stat->type = ItemTypeVirtualFileDehydration;
|
||||||
return true;
|
return true;
|
||||||
} else if (isSparseFile) {
|
} else if (isSparseFile) {
|
||||||
|
|||||||