mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-11 20:57:41 +02:00
Compare commits
88 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b37cbea5cc | ||
|
|
fc18fd9a06 | ||
|
|
07116707e5 | ||
|
|
0f935b06e9 | ||
|
|
a0d6f5fb60 | ||
|
|
4ddfc04534 | ||
|
|
9fb5b4a92d | ||
|
|
b97d8ba6db | ||
|
|
7d8bba6786 | ||
|
|
f0c6825746 | ||
|
|
1490b186f9 | ||
|
|
8b64db6344 | ||
|
|
ab85dfcd67 | ||
|
|
13fdb32d4f | ||
|
|
558d3ad492 | ||
|
|
0a04419180 | ||
|
|
fdbc523f85 | ||
|
|
287d78ffd3 | ||
|
|
8418507483 | ||
|
|
d1b9d100b4 | ||
|
|
b93c762205 | ||
|
|
528e1bef37 | ||
|
|
73aed1d630 | ||
|
|
7b446eef93 | ||
|
|
1afaa22ddb | ||
|
|
bdd5d423ed | ||
|
|
44b5e07a80 | ||
|
|
d8c0fb856c | ||
|
|
6cc496633f | ||
|
|
1d0bf08a1c | ||
|
|
a3d1bd3a42 | ||
|
|
1c0fbba98e | ||
|
|
2d6c5f393f | ||
|
|
eaf339b11d | ||
|
|
3a50b57b5a | ||
|
|
6c0cd4bd3a | ||
|
|
d6170271e9 | ||
|
|
6f145e3a80 | ||
|
|
3c193143f2 | ||
|
|
b25e15347b | ||
|
|
a8cce41f35 | ||
|
|
f0f691fffc | ||
|
|
847706432b | ||
|
|
bd93489b14 | ||
|
|
96d0059ca4 | ||
|
|
df802472cb | ||
|
|
94750a5ea1 | ||
|
|
fae1c0dbdd | ||
|
|
b546e7c224 | ||
|
|
cd58850f5b | ||
|
|
7d3242077b | ||
|
|
3f2ff2e6ba | ||
|
|
433a059223 | ||
|
|
d6feb984c3 | ||
|
|
41f2864ac9 | ||
|
|
b1a2683e62 | ||
|
|
4febf7c70b | ||
|
|
b8f0721fcb | ||
|
|
8f95f68f06 | ||
|
|
c9b7078fb7 | ||
|
|
f0b96445d2 | ||
|
|
bcb4b44c69 | ||
|
|
82f9ec78dc | ||
|
|
5a26e7dabe | ||
|
|
6718f5ad58 | ||
|
|
88c738dd21 | ||
|
|
2d79ea5262 | ||
|
|
cc7abc02f4 | ||
|
|
e2c813bfca | ||
|
|
5695aba5d7 | ||
|
|
0f9e32d49c | ||
|
|
0d9d942ab7 | ||
|
|
9de32d2cb7 | ||
|
|
53c89e2196 | ||
|
|
b0959a6292 | ||
|
|
1af9bf8abc | ||
|
|
0d1c15a768 | ||
|
|
48acaec66f | ||
|
|
9f6bb617e9 | ||
|
|
c5a4694c74 | ||
|
|
0f2294cef4 | ||
|
|
778489d445 | ||
|
|
ba53a01339 | ||
|
|
8217c44ee5 | ||
|
|
fff64e8aa5 | ||
|
|
8e38e2ac86 | ||
|
|
fb5ff96ed6 | ||
|
|
91602574a9 |
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
|
||||||
Icon[ca]=@APPLICATION_ICON_NAME@
|
Icon[ca]=@APPLICATION_ICON_NAME@
|
||||||
Name[ca]=@APPLICATION_NAME@ client de sincro d'escriptori
|
Name[ca]=@APPLICATION_NAME@ client de sincro d'escriptori
|
||||||
|
Comment[ca]=@APPLICATION_NAME@ client de sincronització d'escriptori
|
||||||
GenericName[ca]=Directori de sincronització
|
GenericName[ca]=Directori de sincronització
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
|
||||||
Icon[cs_CZ]=@NAZEV_IKONY_APLIKACE@
|
Icon[cs_CZ]=@NAZEV_IKONY_APLIKACE@
|
||||||
Name[cs_CZ]=@APPLICATION_NAME@ synchronizační klient pro desktop
|
Name[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
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
Icon[de]=@APPLICATION_ICON_NAME@
|
||||||
Icon[de_DE]=@APPLICATION_ICON_NAME@
|
Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||||
Name[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisation
|
||||||
GenericName[de_DE]=Synchronisationsordner
|
GenericName[de]=Synchronisationsordner
|
||||||
|
|||||||
201
.tx/nextcloud.client-desktop/el_translation
Normal file
201
.tx/nextcloud.client-desktop/el_translation
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
GenericName[el]=Συγχρονισμός φακέλου
|
||||||
@@ -198,6 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client
|
Icon[en_GB]=@APPLICATION_ICON_NAME@
|
||||||
Name[en_GB]=@APPLICATION_NAME@ desktop sync client
|
Name[en_GB]=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment[en_GB]=@APPLICATION_NAME@ desktop synchronisation client
|
||||||
GenericName[en_GB]=Folder Sync
|
GenericName[en_GB]=Folder Sync
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_CL]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_CO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_CR]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_EC]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_GT]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_MX]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
|
||||||
Name[es_SV]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
|
Name[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
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
|
||||||
Icon[es]=@APPLICATION_ICON_NAME@
|
Icon[es]=@APPLICATION_ICON_NAME@
|
||||||
Name[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
Name[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
||||||
|
Comment[es]=Cliente de sincronización de escritorio @APPLICATION_NAME@
|
||||||
GenericName[es]=Sincronización de carpetas
|
GenericName[es]=Sincronización de carpetas
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[fr]=Client de synchronisation @APPLICATION_NAME@ desktop
|
|
||||||
Icon[fr]=@APPLICATION_ICON_NAME@
|
Icon[fr]=@APPLICATION_ICON_NAME@
|
||||||
Name[fr]=Client desktop de synchronisation @APPLICATION_NAME@
|
Name[fr]=Client desktop de synchronisation @APPLICATION_NAME@
|
||||||
|
Comment[fr]=Client de synchronisation @APPLICATION_NAME@ desktop
|
||||||
GenericName[fr]=Synchronisation du dossier
|
GenericName[fr]=Synchronisation du dossier
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
|
||||||
Icon[gl]=@APPLICATION_ICON_NAME@
|
Icon[gl]=@APPLICATION_ICON_NAME@
|
||||||
Name[gl]=@APPLICATION_NAME@ cliente de sincr escritorio
|
Name[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
||||||
GenericName[gl]=Sincr. de cartafol
|
Comment[gl]=@APPLICATION_NAME@ cliente de sincronización para escritorio
|
||||||
|
GenericName[gl]=Sincronización de cartafol
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
|
||||||
Name[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
Name[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
||||||
|
Comment[he]=@APPLICATION_NAME@ לקוח סנכרון לשולחן העבודה
|
||||||
GenericName[he]=סנכרון תיקיות
|
GenericName[he]=סנכרון תיקיות
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[hr]=klijent za sinkronizaciju računala
|
|
||||||
Name[hr]=sinkronizacija računala
|
Name[hr]=sinkronizacija računala
|
||||||
|
Comment[hr]=klijent za sinkronizaciju računala
|
||||||
GenericName[hr]=Sinkronizacija mapa
|
GenericName[hr]=Sinkronizacija mapa
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[hu_HU]=@APPLICATION_NAME@ deszktop szinkronizációs kliens
|
|
||||||
Icon[hu_HU]=@APPLICATION_ICON_NAME@
|
Icon[hu_HU]=@APPLICATION_ICON_NAME@
|
||||||
Name[hu_HU]=@APPLICATION_NAME@ deszktop szinkronizációs kliens
|
Name[hu_HU]=@APPLICATION_NAME@ deszktop szinkronizációs kliens
|
||||||
|
Comment[hu_HU]=@APPLICATION_NAME@ deszktop szinkronizációs kliens
|
||||||
GenericName[hu_HU]=Mappa szinkronizáció
|
GenericName[hu_HU]=Mappa szinkronizáció
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu
|
|
||||||
Icon[is]=@APPLICATION_ICON_NAME@
|
Icon[is]=@APPLICATION_ICON_NAME@
|
||||||
Name[is]=@APPLICATION_NAME@ forrit til samstillingar við tölvu
|
Name[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
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@
|
|
||||||
Icon[it]=@APPLICATION_ICON_NAME@
|
Icon[it]=@APPLICATION_ICON_NAME@
|
||||||
Name[it]=Client di sincronizzazione desktop di @APPLICATION_NAME@
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
Icon[ja_JP]=@APPLICATION_ICON_NAME@
|
||||||
Name[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
Name[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
||||||
|
Comment[ja_JP]=@APPLICATION_NAME@ デスクトップ同期クライアント
|
||||||
GenericName[ja_JP]=フォルダーを同期する
|
GenericName[ja_JP]=フォルダーを同期する
|
||||||
|
|||||||
201
.tx/nextcloud.client-desktop/ko_translation
Normal file
201
.tx/nextcloud.client-desktop/ko_translation
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
|
||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa
|
|
||||||
Icon[lt_LT]=@APPLICATION_ICON_NAME@
|
Icon[lt_LT]=@APPLICATION_ICON_NAME@
|
||||||
Name[lt_LT]=@APPLICATION_NAME@ darbalaukio sinchronizavimo kliento programa
|
Name[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
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients
|
|
||||||
Icon[lv]=@APPLICATION_ICON_NAME@
|
Icon[lv]=@APPLICATION_ICON_NAME@
|
||||||
Name[lv]=@APPLICATION_NAME@ darbavirsmas sinhronizešanas klients
|
Name[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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering
|
|
||||||
Name[nb_NO]=@APPLICATION_NAME@ klient for synkroinisering
|
Name[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
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[nl]=@APPLICATION_NAME@ desktopsynchronisatieclient
|
|
||||||
Icon[nl]=@APPLICATION_ICON_NAME@
|
Icon[nl]=@APPLICATION_ICON_NAME@
|
||||||
Name[nl]=@APPLICATION_NAME@ desktop sync client
|
Name[nl]=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment[nl]=@APPLICATION_NAME@ desktopsynchronisatieclient
|
||||||
GenericName[nl]=Map synchronisatie
|
GenericName[nl]=Map synchronisatie
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
|
||||||
Icon[pl]=@APPLICATION_ICON_NAME@
|
Icon[pl]=@APPLICATION_ICON_NAME@
|
||||||
Name[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
Name[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
||||||
|
Comment[pl]=@APPLICATION_NAME@ desktopowy klient synchronizacji
|
||||||
GenericName[pl]=Katalog synchronizacji
|
GenericName[pl]=Katalog synchronizacji
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[pt_BR]=@APPLICATION_NAME@ cliente de sincronização desktop
|
|
||||||
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@ 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
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho
|
|
||||||
Name[pt_PT]=@APPLICATION_NAME@ - Cliente de Sincronização da Área de Trabalho
|
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
|
||||||
GenericName[pt_PT]=Sincronização de Pasta
|
GenericName[pt_PT]=Sincronização de Pasta
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[ru]=Клиент синхронизации @APPLICATION_NAME@ для ПК
|
|
||||||
Icon[ru]=@APPLICATION_ICON_NAME@
|
Icon[ru]=@APPLICATION_ICON_NAME@
|
||||||
Name[ru]=@APPLICATION_NAME@ клиент для ПК
|
Name[ru]=@APPLICATION_NAME@ для ПК
|
||||||
|
Comment[ru]=Клиент синхронизации @APPLICATION_NAME@ для ПК
|
||||||
GenericName[ru]=Синхронизация папок
|
GenericName[ru]=Синхронизация папок
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[sk_SK]=@APPLICATION_NAME@ Synchronizačný klient pre PC
|
|
||||||
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
Icon[sk_SK]=@APPLICATION_ICON_NAME@
|
||||||
Name[sk_SK]=@APPLICATION_NAME@ Synchronizačný klient pre PC
|
Name[sk_SK]=@APPLICATION_NAME@ Synchronizačný klient pre PC
|
||||||
|
Comment[sk_SK]=@APPLICATION_NAME@ Synchronizačný klient pre PC
|
||||||
GenericName[sk_SK]=Synchnonizácia priečinka
|
GenericName[sk_SK]=Synchnonizácia priečinka
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
|
||||||
Icon[sl]=@APPLICATION_ICON_NAME@
|
Icon[sl]=@APPLICATION_ICON_NAME@
|
||||||
Name[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
Name[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
||||||
|
Comment[sl]=@APPLICATION_NAME@ odjemalec za usklajevanje
|
||||||
GenericName[sl]=Usklajevanje map
|
GenericName[sl]=Usklajevanje map
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
|
||||||
Icon[sr]=@APPLICATION_ICON_NAME@
|
Icon[sr]=@APPLICATION_ICON_NAME@
|
||||||
Name[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
Name[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
||||||
|
Comment[sr]=@APPLICATION_NAME@ десктоп клијент за синхронизацију
|
||||||
GenericName[sr]=Синхронизација фасцикли
|
GenericName[sr]=Синхронизација фасцикли
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
|
|
||||||
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ü eşiteme istemcisi
|
||||||
|
Comment[tr]=@APPLICATION_NAME@ masaüstü eşitleme istemcisi
|
||||||
GenericName[tr]=Klasör Eşitleme
|
GenericName[tr]=Klasör Eşitleme
|
||||||
|
|||||||
204
.tx/nextcloud.client-desktop/uk_translation
Normal file
204
.tx/nextcloud.client-desktop/uk_translation
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=@APPLICATION_EXECUTABLE@
|
||||||
|
Name=@APPLICATION_NAME@ desktop sync client
|
||||||
|
Comment=@APPLICATION_NAME@ desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=@APPLICATION_ICON_NAME@
|
||||||
|
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Icon[uk]=@APPLICATION_ICON_NAME@
|
||||||
|
Name[uk]=@APPLICATION_NAME@ клієнт для ПК
|
||||||
|
Comment[uk]=Клієнт синхронізації @APPLICATION_NAME@ для ПК
|
||||||
|
GenericName[uk]=Синхронізація каталогів
|
||||||
@@ -198,7 +198,7 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[zh_CN]=@APPLICATION_NAME@ 桌面同步客户端
|
|
||||||
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@ 桌面同步客户端
|
||||||
GenericName[zh_CN]=文件夹同步
|
GenericName[zh_CN]=文件夹同步
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ X-GNOME-Autostart-Delay=3
|
|||||||
|
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
|
||||||
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
Name[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
|
Comment[zh_TW]=@APPLICATION_NAME@ 桌面同步客戶端
|
||||||
GenericName[zh_TW]=資料夾同步
|
GenericName[zh_TW]=資料夾同步
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
set( MIRALL_VERSION_MAJOR 2 )
|
set( MIRALL_VERSION_MAJOR 2 )
|
||||||
set( MIRALL_VERSION_MINOR 5 )
|
set( MIRALL_VERSION_MINOR 5 )
|
||||||
set( MIRALL_VERSION_PATCH 0 )
|
set( MIRALL_VERSION_PATCH 1 )
|
||||||
set( MIRALL_VERSION_YEAR 2018 )
|
set( MIRALL_VERSION_YEAR 2018 )
|
||||||
set( MIRALL_SOVERSION 0 )
|
set( MIRALL_SOVERSION 0 )
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
set -xe
|
set -xe
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
PPA=ppa:nextcloud-devs/client-beta
|
PPA=ppa:nextcloud-devs/client
|
||||||
PPA_BETA=ppa:nextcloud-devs/client-alpha
|
PPA_BETA=ppa:nextcloud-devs/client-beta
|
||||||
|
|
||||||
OBS_PROJECT=home:ivaradi:beta
|
OBS_PROJECT=home:ivaradi
|
||||||
OBS_PROJECT_BETA=home:ivaradi:alpha
|
OBS_PROJECT_BETA=home:ivaradi:beta
|
||||||
OBS_PACKAGE=nextcloud-client
|
OBS_PACKAGE=nextcloud-client
|
||||||
|
|
||||||
pull_request=${DRONE_PULL_REQUEST:=master}
|
pull_request=${DRONE_PULL_REQUEST:=master}
|
||||||
@@ -36,12 +36,11 @@ read basever kind <<<$(admin/linux/debian/scripts/git2changelog.py /tmp/tmpchang
|
|||||||
cd "${DRONE_DIR}"
|
cd "${DRONE_DIR}"
|
||||||
|
|
||||||
echo "$kind" > kind
|
echo "$kind" > kind
|
||||||
kind="release"
|
|
||||||
|
|
||||||
if test "$kind" = "beta"; then
|
if test "$kind" = "beta"; then
|
||||||
repo=nextcloud-devs/client-alpha
|
|
||||||
else
|
|
||||||
repo=nextcloud-devs/client-beta
|
repo=nextcloud-devs/client-beta
|
||||||
|
else
|
||||||
|
repo=nextcloud-devs/client
|
||||||
fi
|
fi
|
||||||
|
|
||||||
origsourceopt=""
|
origsourceopt=""
|
||||||
|
|||||||
@@ -73,11 +73,13 @@ def collectEntries(baseCommit, baseVersion, kind):
|
|||||||
(commit, name, email, date, revdate, subject) = line.split("\t")
|
(commit, name, email, date, revdate, subject) = line.split("\t")
|
||||||
revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
revdate = datetime.datetime.utcfromtimestamp(long(revdate)).strftime("%Y%m%d.%H%M%S")
|
||||||
|
|
||||||
|
kind = "beta"
|
||||||
|
|
||||||
if commit==newVersionCommit:
|
if commit==newVersionCommit:
|
||||||
result = processVersionTag(newVersionTag)
|
result = processVersionTag(newVersionTag)
|
||||||
if result:
|
if result:
|
||||||
newVersionOrigTag = lastVersionTag
|
newVersionOrigTag = lastVersionTag
|
||||||
(baseVersion, kind) = result
|
(baseVersion, _kind) = result
|
||||||
|
|
||||||
|
|
||||||
version=getCommitVersion(commit)
|
version=getCommitVersion(commit)
|
||||||
@@ -88,7 +90,7 @@ def collectEntries(baseCommit, baseVersion, kind):
|
|||||||
if result:
|
if result:
|
||||||
lastVersionTag = tag
|
lastVersionTag = tag
|
||||||
lastCMAKEVersion = version
|
lastCMAKEVersion = version
|
||||||
(baseVersion, kind) = result
|
(baseVersion, _kind) = result
|
||||||
|
|
||||||
for tag in subprocess.check_output(["git", "tag",
|
for tag in subprocess.check_output(["git", "tag",
|
||||||
"--points-at",
|
"--points-at",
|
||||||
@@ -132,7 +134,7 @@ if __name__ == "__main__":
|
|||||||
distribution = sys.argv[2]
|
distribution = sys.argv[2]
|
||||||
|
|
||||||
#entries = collectEntries("8aade24147b5313f8241a8b42331442b7f40eef9", "2.2.4", "release")
|
#entries = collectEntries("8aade24147b5313f8241a8b42331442b7f40eef9", "2.2.4", "release")
|
||||||
entries = collectEntries("f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1", "2.4.0", "release")
|
entries = collectEntries("f9b1c724d6ab5431e0cd56b7cd834f2dd48cebb1", "2.4.0", "beta")
|
||||||
|
|
||||||
|
|
||||||
with open(sys.argv[1], "wt") as f:
|
with open(sys.argv[1], "wt") as f:
|
||||||
|
|||||||
33
man/nextcloud.1.rst
Normal file
33
man/nextcloud.1.rst
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
:orphan:
|
||||||
|
|
||||||
|
nextcloud(1)
|
||||||
|
————
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
========
|
||||||
|
*nextcloud* [`OPTIONS`...]
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
===========
|
||||||
|
The nextCloud Client is a file synchronization desktop utility. It synchronizes files on your local computer, tablet, or handheld device with an nextCloud Server. If you make a change to the files on one device, the change is propagated to all other synchronized devices using the desktop synchronization clients.
|
||||||
|
|
||||||
|
Normally, you start the client by clicking on the desktop icon or by starting it from the client application menu. After starting, an nextCloud icon appears in the computer system tray or on your tablet or handheld device.
|
||||||
|
|
||||||
|
Options
|
||||||
|
=======
|
||||||
|
.. include:: ../doc/options.rst
|
||||||
|
|
||||||
|
Config File
|
||||||
|
===========
|
||||||
|
.. include:: ../doc/conffile.rst
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
====
|
||||||
|
|
||||||
|
Please report bugs at https://github.com/nextcloud/client/issues.
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
========
|
||||||
|
:manpage:`nextcloudcmd(1)`
|
||||||
@@ -1,30 +1,30 @@
|
|||||||
:orphan:
|
:orphan:
|
||||||
|
|
||||||
owncloudcmd(1)
|
nextcloudcmd(1)
|
||||||
—————
|
—————
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
========
|
========
|
||||||
*owncloudcmd* [`OPTIONS`...] sourcedir owncloudurl
|
*nextcloudcmd* [`OPTIONS`...] sourcedir nextcloudurl
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
===========
|
===========
|
||||||
owncloudcmd is the command line tool used for the ownCloud file synchronization
|
nextcloudcmd is the command line tool used for the nextCloud file synchronization
|
||||||
desktop utility.
|
desktop utility.
|
||||||
|
|
||||||
Contrary to the :manpage:`owncloud(1)` GUI client, `owncloudcmd` only performs
|
Contrary to the :manpage:`nextcloud(1)` GUI client, `nextcloudcmd` only performs
|
||||||
a single sync run and then exits. In so doing, `owncloudcmd` replaces the
|
a single sync run and then exits. In so doing, `nextcloudcmd` replaces the
|
||||||
`ocsync` binary used for the same purpose in earlier releases.
|
`ocsync` binary used for the same purpose in earlier releases.
|
||||||
|
|
||||||
A *sync run* synchronizes a single local directory using a WebDAV share on a
|
A *sync run* synchronizes a single local directory using a WebDAV share on a
|
||||||
remote ownCloud server.
|
remote nextCloud server.
|
||||||
|
|
||||||
To invoke the command line client, provide the local and the remote repository:
|
To invoke the command line client, provide the local and the remote repository:
|
||||||
The first parameter is the local directory. The second parameter is
|
The first parameter is the local directory. The second parameter is
|
||||||
the server URL.
|
the server URL.
|
||||||
|
|
||||||
.. note:: Prior to the 1.6 release of owncloudcmd, the tool only accepted
|
.. note:: Prior to the 1.6 release of nextcloudcmd, the tool only accepted
|
||||||
``owncloud://`` or ``ownclouds://`` in place of ``http://`` and ``https://`` as
|
``nextcloud://`` or ``nextclouds://`` in place of ``http://`` and ``https://`` as
|
||||||
a scheme. See ``Examples`` for details.
|
a scheme. See ``Examples`` for details.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
@@ -70,28 +70,28 @@ OPTIONS
|
|||||||
|
|
||||||
Example
|
Example
|
||||||
=======
|
=======
|
||||||
To synchronize the ownCloud directory ``Music`` to the local directory ``media/music``
|
To synchronize the nextCloud directory ``Music`` to the local directory ``media/music``
|
||||||
through a proxy listening on port ``8080`` on the gateway machine ``192.168.178.1``,
|
through a proxy listening on port ``8080`` on the gateway machine ``192.168.178.1``,
|
||||||
the command line would be::
|
the command line would be::
|
||||||
|
|
||||||
$ owncloudcmd —httpproxy http://192.168.178.1:8080 \
|
$ nextcloudcmd —httpproxy http://192.168.178.1:8080 \
|
||||||
$HOME/media/music \
|
$HOME/media/music \
|
||||||
https://server/owncloud/remote.php/webdav/Music
|
https://server/nextcloud/remote.php/webdav/Music
|
||||||
|
|
||||||
``owncloudcmd`` will enquire user name and password, unless they have
|
``nextcloudcmd`` will enquire user name and password, unless they have
|
||||||
been specified on the command line or ``-n`` (see `netrc(5)`) has been passed.
|
been specified on the command line or ``-n`` (see `netrc(5)`) has been passed.
|
||||||
|
|
||||||
Using the legacy scheme, it would be::
|
Using the legacy scheme, it would be::
|
||||||
|
|
||||||
$ owncloudcmd —httpproxy http://192.168.178.1:8080 \
|
$ nextcloudcmd —httpproxy http://192.168.178.1:8080 \
|
||||||
$HOME/media/music \
|
$HOME/media/music \
|
||||||
ownclouds://server/owncloud/remote.php/webdav/Music
|
nextclouds://server/nextcloud/remote.php/webdav/Music
|
||||||
|
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
====
|
====
|
||||||
Please report bugs at https://github.com/owncloud/client/issues.
|
Please report bugs at https://github.com/nextcloud/client/issues.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
========
|
========
|
||||||
:manpage:`owncloud(1)`
|
:manpage:`nextcloud(1)`
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
:orphan:
|
|
||||||
|
|
||||||
owncloud(1)
|
|
||||||
————
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
========
|
|
||||||
*owncloud* [`OPTIONS`...]
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
===========
|
|
||||||
The ownCloud Client is a file synchronization desktop utility. It synchronizes files on your local computer, tablet, or handheld device with an ownCloud Server. If you make a change to the files on one device, the change is propagated to all other synchronized devices using the desktop synchronization clients.
|
|
||||||
|
|
||||||
Normally, you start the client by clicking on the desktop icon or by starting it from the client application menu. After starting, an ownCloud icon appears in the computer system tray or on your tablet or handheld device.
|
|
||||||
|
|
||||||
Options
|
|
||||||
=======
|
|
||||||
.. include:: ../doc/options.rst
|
|
||||||
|
|
||||||
Config File
|
|
||||||
===========
|
|
||||||
.. include:: ../doc/conffile.rst
|
|
||||||
|
|
||||||
BUGS
|
|
||||||
====
|
|
||||||
|
|
||||||
Please report bugs at https://github.com/owncloud/client/issues.
|
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
|
||||||
========
|
|
||||||
:manpage:`owncloudcmd(1)`
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# this script replaces the line
|
# this script replaces the line
|
||||||
# appname = 'ownCloud'
|
# appname = 'Nextcloud'
|
||||||
# with the correct branding name in the syncstate.py script
|
# with the correct branding name in the syncstate.py script
|
||||||
sed -i.org -e 's/appname\s*=\s*'"'"'ownCloud'"'/appname = '$1'/" syncstate.py
|
sed -i.org -e 's/appname\s*=\s*'"'"'Nextcloud'"'/appname = '$1'/" syncstate.py
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ from gi.repository import GObject, Nautilus
|
|||||||
# The reason is that we use a script to adopt this file for branding
|
# The reason is that we use a script to adopt this file for branding
|
||||||
# by replacing this line with the branding app name. If the following
|
# by replacing this line with the branding app name. If the following
|
||||||
# line is changed, the script can not match the pattern and fails.
|
# line is changed, the script can not match the pattern and fails.
|
||||||
appname = 'ownCloud'
|
appname = 'Nextcloud'
|
||||||
|
|
||||||
print("Initializing "+appname+"-client-nautilus extension")
|
print("Initializing "+appname+"-client-nautilus extension")
|
||||||
print("Using python version {}".format(sys.version_info))
|
print("Using python version {}".format(sys.version_info))
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ void AccountManager::displayMnemonic(const QString& mnemonic)
|
|||||||
Ui_Dialog ui;
|
Ui_Dialog ui;
|
||||||
ui.setupUi(widget);
|
ui.setupUi(widget);
|
||||||
widget->setWindowTitle(tr("End to end encryption mnemonic"));
|
widget->setWindowTitle(tr("End to end encryption mnemonic"));
|
||||||
ui.label->setText(tr("To protect your Cryptocraphic Identity, we encrypt it with a mnemonic of 12 dictionary words. "
|
ui.label->setText(tr("To protect your Cryptographic Identity, we encrypt it with a mnemonic of 12 dictionary words. "
|
||||||
"Please note these down and keep them safe. "
|
"Please note these down and keep them safe. "
|
||||||
"They will be needed to add other devices to your account (like your mobile phone or laptop)."));
|
"They will be needed to add other devices to your account (like your mobile phone or laptop)."));
|
||||||
ui.textEdit->setText(mnemonic);
|
ui.textEdit->setText(mnemonic);
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ void AccountSettings::slotOpenAccountWizard()
|
|||||||
qFatal("nope");
|
qFatal("nope");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), 0);
|
OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountSettings::slotToggleSignInState()
|
void AccountSettings::slotToggleSignInState()
|
||||||
@@ -808,7 +808,7 @@ void AccountSettings::slotEnableCurrentFolder()
|
|||||||
QWidget *parent = this;
|
QWidget *parent = this;
|
||||||
Qt::WindowFlags flags = Qt::Sheet;
|
Qt::WindowFlags flags = Qt::Sheet;
|
||||||
#else
|
#else
|
||||||
QWidget *parent = 0;
|
QWidget *parent = nullptr;
|
||||||
Qt::WindowFlags flags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint; // default flags
|
Qt::WindowFlags flags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint; // default flags
|
||||||
#endif
|
#endif
|
||||||
QMessageBox msgbox(QMessageBox::Question, tr("Sync Running"),
|
QMessageBox msgbox(QMessageBox::Question, tr("Sync Running"),
|
||||||
@@ -1152,7 +1152,7 @@ void AccountSettings::slotDeleteAccount()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Else it might access during destruction. This should be better handled by it having a QSharedPointer
|
// Else it might access during destruction. This should be better handled by it having a QSharedPointer
|
||||||
_model->setAccountState(0);
|
_model->setAccountState(nullptr);
|
||||||
|
|
||||||
auto manager = AccountManager::instance();
|
auto manager = AccountManager::instance();
|
||||||
manager->deleteAccount(_accountState);
|
manager->deleteAccount(_accountState);
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ class AccountSettings : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AccountSettings(AccountState *accountState, QWidget *parent = 0);
|
explicit AccountSettings(AccountState *accountState, QWidget *parent = nullptr);
|
||||||
~AccountSettings();
|
~AccountSettings();
|
||||||
QSize sizeHint() const Q_DECL_OVERRIDE { return ownCloudGui::settingsDialogSize(); }
|
QSize sizeHint() const override { return ownCloudGui::settingsDialogSize(); }
|
||||||
bool canEncryptOrDecrypt(const FolderStatusModel::SubFolderInfo* folderInfo);
|
bool canEncryptOrDecrypt(const FolderStatusModel::SubFolderInfo* folderInfo);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -122,7 +122,7 @@ protected slots:
|
|||||||
private:
|
private:
|
||||||
void showConnectionLabel(const QString &message,
|
void showConnectionLabel(const QString &message,
|
||||||
QStringList errors = QStringList());
|
QStringList errors = QStringList());
|
||||||
bool event(QEvent *) Q_DECL_OVERRIDE;
|
bool event(QEvent *) override;
|
||||||
void createAccountToolbox();
|
void createAccountToolbox();
|
||||||
|
|
||||||
/// Returns the alias of the selected folder, empty string if none
|
/// Returns the alias of the selected folder, empty string if none
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ void AccountState::slotCredentialsAsked(AbstractCredentials *credentials)
|
|||||||
// When new credentials become available we always want to restart the
|
// When new credentials become available we always want to restart the
|
||||||
// connection validation, even if it's currently running.
|
// connection validation, even if it's currently running.
|
||||||
_connectionValidator->deleteLater();
|
_connectionValidator->deleteLater();
|
||||||
_connectionValidator = 0;
|
_connectionValidator = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkConnectivity();
|
checkConnectivity();
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ public:
|
|||||||
AccountConnectedRole,
|
AccountConnectedRole,
|
||||||
SyncFileStatusRole };
|
SyncFileStatusRole };
|
||||||
|
|
||||||
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const Q_DECL_OVERRIDE;
|
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||||
QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const Q_DECL_OVERRIDE;
|
QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||||
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option,
|
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option,
|
||||||
const QModelIndex &index) Q_DECL_OVERRIDE;
|
const QModelIndex &index) override;
|
||||||
|
|
||||||
static int rowHeight();
|
static int rowHeight();
|
||||||
static int iconHeight();
|
static int iconHeight();
|
||||||
|
|||||||
@@ -150,16 +150,12 @@ int ActivityListModel::rowCount(const QModelIndex &) const
|
|||||||
return _finalList.count();
|
return _finalList.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
// current strategy: Fetch 100 items per Account
|
|
||||||
// ATTENTION: This method is const and thus it is not possible to modify
|
|
||||||
// the _activityLists hash or so. Doesn't make it easier...
|
|
||||||
bool ActivityListModel::canFetchMore(const QModelIndex &) const
|
bool ActivityListModel::canFetchMore(const QModelIndex &) const
|
||||||
{
|
{
|
||||||
if (_activityLists.count() == 0)
|
// We need to be connected to be able to fetch more
|
||||||
return true;
|
|
||||||
|
|
||||||
if (_accountState && _accountState->isConnected()) {
|
if (_accountState && _accountState->isConnected()) {
|
||||||
if (_activityLists.count() == 0 && !_currentlyFetching) {
|
// If the fetching is reported to be done or we are currently fetching we can't fetch more
|
||||||
|
if (!_doneFetching && !_currentlyFetching) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -177,8 +173,8 @@ void ActivityListModel::startFetchJob()
|
|||||||
this, &ActivityListModel::slotActivitiesReceived);
|
this, &ActivityListModel::slotActivitiesReceived);
|
||||||
|
|
||||||
QUrlQuery params;
|
QUrlQuery params;
|
||||||
params.addQueryItem(QLatin1String("page"), QLatin1String("0"));
|
params.addQueryItem(QLatin1String("start"), QString::number(_currentItem));
|
||||||
params.addQueryItem(QLatin1String("pagesize"), QLatin1String("100"));
|
params.addQueryItem(QLatin1String("count"), QString::number(100));
|
||||||
job->addQueryParams(params);
|
job->addQueryParams(params);
|
||||||
|
|
||||||
_currentlyFetching = true;
|
_currentlyFetching = true;
|
||||||
@@ -192,10 +188,16 @@ void ActivityListModel::slotActivitiesReceived(const QJsonDocument &json, int st
|
|||||||
|
|
||||||
ActivityList list;
|
ActivityList list;
|
||||||
auto ast = _accountState;
|
auto ast = _accountState;
|
||||||
if (!ast)
|
if (!ast) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_currentlyFetching = 0;
|
if (activities.size() == 0) {
|
||||||
|
_doneFetching = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentlyFetching = false;
|
||||||
|
_currentItem += activities.size();
|
||||||
|
|
||||||
foreach (auto activ, activities) {
|
foreach (auto activ, activities) {
|
||||||
auto json = activ.toObject();
|
auto json = activ.toObject();
|
||||||
@@ -212,7 +214,7 @@ void ActivityListModel::slotActivitiesReceived(const QJsonDocument &json, int st
|
|||||||
list.append(a);
|
list.append(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
_activityLists = list;
|
_activityLists.append(list);
|
||||||
|
|
||||||
emit activityJobStatusCode(statusCode);
|
emit activityJobStatusCode(statusCode);
|
||||||
|
|
||||||
@@ -234,6 +236,7 @@ void ActivityListModel::addNotificationToActivityList(Activity activity) {
|
|||||||
void ActivityListModel::removeActivityFromActivityList(int row) {
|
void ActivityListModel::removeActivityFromActivityList(int row) {
|
||||||
Activity activity = _finalList.at(row);
|
Activity activity = _finalList.at(row);
|
||||||
removeActivityFromActivityList(activity);
|
removeActivityFromActivityList(activity);
|
||||||
|
combineActivityLists();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActivityListModel::addSyncFileItemToActivityList(Activity activity) {
|
void ActivityListModel::addSyncFileItemToActivityList(Activity activity) {
|
||||||
@@ -291,18 +294,32 @@ void ActivityListModel::combineActivityLists()
|
|||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ActivityListModel::canFetchActivities() const {
|
||||||
|
return _accountState->isConnected() && _accountState->account()->capabilities().hasActivities();
|
||||||
|
}
|
||||||
|
|
||||||
void ActivityListModel::fetchMore(const QModelIndex &)
|
void ActivityListModel::fetchMore(const QModelIndex &)
|
||||||
{
|
{
|
||||||
if (_accountState->isConnected()) {
|
if (canFetchActivities()) {
|
||||||
_activityLists = ActivityList();
|
|
||||||
startFetchJob();
|
startFetchJob();
|
||||||
|
} else {
|
||||||
|
_doneFetching = true;
|
||||||
|
combineActivityLists();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActivityListModel::slotRefreshActivity()
|
void ActivityListModel::slotRefreshActivity()
|
||||||
{
|
{
|
||||||
_activityLists.clear();
|
_activityLists.clear();
|
||||||
startFetchJob();
|
_doneFetching = false;
|
||||||
|
_currentItem = 0;
|
||||||
|
|
||||||
|
if (canFetchActivities()) {
|
||||||
|
startFetchJob();
|
||||||
|
} else {
|
||||||
|
_doneFetching = true;
|
||||||
|
combineActivityLists();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActivityListModel::slotRemoveAccount()
|
void ActivityListModel::slotRemoveAccount()
|
||||||
@@ -310,5 +327,7 @@ void ActivityListModel::slotRemoveAccount()
|
|||||||
_finalList.clear();
|
_finalList.clear();
|
||||||
_activityLists.clear();
|
_activityLists.clear();
|
||||||
_currentlyFetching = false;
|
_currentlyFetching = false;
|
||||||
|
_doneFetching = false;
|
||||||
|
_currentItem = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,13 +38,13 @@ class ActivityListModel : public QAbstractListModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ActivityListModel(AccountState *accountState, QWidget *parent = 0);
|
explicit ActivityListModel(AccountState *accountState, QWidget *parent = nullptr);
|
||||||
|
|
||||||
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
QVariant data(const QModelIndex &index, int role) const override;
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
|
|
||||||
bool canFetchMore(const QModelIndex &) const Q_DECL_OVERRIDE;
|
bool canFetchMore(const QModelIndex &) const override;
|
||||||
void fetchMore(const QModelIndex &) Q_DECL_OVERRIDE;
|
void fetchMore(const QModelIndex &) override;
|
||||||
|
|
||||||
ActivityList activityList() { return _finalList; }
|
ActivityList activityList() { return _finalList; }
|
||||||
ActivityList errorsList() { return _notificationErrorsLists; }
|
ActivityList errorsList() { return _notificationErrorsLists; }
|
||||||
@@ -67,6 +67,7 @@ signals:
|
|||||||
private:
|
private:
|
||||||
void startFetchJob();
|
void startFetchJob();
|
||||||
void combineActivityLists();
|
void combineActivityLists();
|
||||||
|
bool canFetchActivities() const;
|
||||||
|
|
||||||
ActivityList _activityLists;
|
ActivityList _activityLists;
|
||||||
ActivityList _syncFileItemLists;
|
ActivityList _syncFileItemLists;
|
||||||
@@ -74,7 +75,9 @@ private:
|
|||||||
ActivityList _notificationErrorsLists;
|
ActivityList _notificationErrorsLists;
|
||||||
ActivityList _finalList;
|
ActivityList _finalList;
|
||||||
AccountState *_accountState;
|
AccountState *_accountState;
|
||||||
bool _currentlyFetching = true;
|
bool _currentlyFetching = false;
|
||||||
|
bool _doneFetching = false;
|
||||||
|
int _currentItem = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif // ACTIVITYLISTMODEL_H
|
#endif // ACTIVITYLISTMODEL_H
|
||||||
|
|||||||
@@ -56,9 +56,9 @@ class ActivityWidget : public QWidget
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ActivityWidget(AccountState *accountState, QWidget *parent = 0);
|
explicit ActivityWidget(AccountState *accountState, QWidget *parent = nullptr);
|
||||||
~ActivityWidget();
|
~ActivityWidget();
|
||||||
QSize sizeHint() const Q_DECL_OVERRIDE { return ownCloudGui::settingsDialogSize(); }
|
QSize sizeHint() const override { return ownCloudGui::settingsDialogSize(); }
|
||||||
void storeActivityList(QTextStream &ts);
|
void storeActivityList(QTextStream &ts);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -128,10 +128,10 @@ class ActivitySettings : public QWidget
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ActivitySettings(AccountState *accountState, QWidget *parent = 0);
|
explicit ActivitySettings(AccountState *accountState, QWidget *parent = nullptr);
|
||||||
|
|
||||||
~ActivitySettings();
|
~ActivitySettings();
|
||||||
QSize sizeHint() const Q_DECL_OVERRIDE { return ownCloudGui::settingsDialogSize(); }
|
QSize sizeHint() const override { return ownCloudGui::settingsDialogSize(); }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slotRefresh();
|
void slotRefresh();
|
||||||
@@ -146,7 +146,7 @@ signals:
|
|||||||
void guiLog(const QString &, const QString &);
|
void guiLog(const QString &, const QString &);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool event(QEvent *e) Q_DECL_OVERRIDE;
|
bool event(QEvent *e) override;
|
||||||
|
|
||||||
ActivityWidget *_activityWidget;
|
ActivityWidget *_activityWidget;
|
||||||
QProgressIndicator *_progressIndicator;
|
QProgressIndicator *_progressIndicator;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class AddCertificateDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit AddCertificateDialog(QWidget *parent = 0);
|
explicit AddCertificateDialog(QWidget *parent = nullptr);
|
||||||
~AddCertificateDialog();
|
~AddCertificateDialog();
|
||||||
QString getCertificatePath();
|
QString getCertificatePath();
|
||||||
QString getCertificatePasswd();
|
QString getCertificatePasswd();
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ namespace {
|
|||||||
|
|
||||||
Application::Application(int &argc, char **argv)
|
Application::Application(int &argc, char **argv)
|
||||||
: SharedTools::QtSingleApplication(Theme::instance()->appName(), argc, argv)
|
: SharedTools::QtSingleApplication(Theme::instance()->appName(), argc, argv)
|
||||||
, _gui(0)
|
, _gui(nullptr)
|
||||||
, _theme(Theme::instance())
|
, _theme(Theme::instance())
|
||||||
, _helpOnly(false)
|
, _helpOnly(false)
|
||||||
, _versionOnly(false)
|
, _versionOnly(false)
|
||||||
@@ -186,12 +186,12 @@ Application::Application(int &argc, char **argv)
|
|||||||
if (!AccountManager::instance()->restore()) {
|
if (!AccountManager::instance()->restore()) {
|
||||||
qCCritical(lcApplication) << "Could not read the account settings, quitting";
|
qCCritical(lcApplication) << "Could not read the account settings, quitting";
|
||||||
QMessageBox::critical(
|
QMessageBox::critical(
|
||||||
0,
|
nullptr,
|
||||||
tr("Error accessing the configuration file"),
|
tr("Error accessing the configuration file"),
|
||||||
tr("There was an error while accessing the configuration "
|
tr("There was an error while accessing the configuration "
|
||||||
"file at %1.")
|
"file at %1. Please make sure the file can be accessed by your user.")
|
||||||
.arg(ConfigFile().configFile()),
|
.arg(ConfigFile().configFile()),
|
||||||
tr("Quit Nextcloud"));
|
tr("Quit %1").arg(Theme::instance()->appNameGUI()));
|
||||||
QTimer::singleShot(0, qApp, SLOT(quit()));
|
QTimer::singleShot(0, qApp, SLOT(quit()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class AuthenticationDialog : public QDialog
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
AuthenticationDialog(const QString &realm, const QString &domain, QWidget *parent = 0);
|
AuthenticationDialog(const QString &realm, const QString &domain, QWidget *parent = nullptr);
|
||||||
|
|
||||||
QString user() const;
|
QString user() const;
|
||||||
QString password() const;
|
QString password() const;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class ClientProxy : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ClientProxy(QObject *parent = 0);
|
explicit ClientProxy(QObject *parent = nullptr);
|
||||||
|
|
||||||
static bool isUsingSystemDefault();
|
static bool isUsingSystemDefault();
|
||||||
static void lookupSystemProxyAsync(const QUrl &url, QObject *dst, const char *slot);
|
static void lookupSystemProxyAsync(const QUrl &url, QObject *dst, const char *slot);
|
||||||
@@ -53,7 +53,7 @@ class SystemProxyRunnable : public QObject, public QRunnable
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
SystemProxyRunnable(const QUrl &url);
|
SystemProxyRunnable(const QUrl &url);
|
||||||
void run();
|
void run() override;
|
||||||
signals:
|
signals:
|
||||||
void systemProxyLookedUp(const QNetworkProxy &url);
|
void systemProxyLookedUp(const QNetworkProxy &url);
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ CloudProviderManager::CloudProviderManager(QObject *parent) : QObject(parent)
|
|||||||
{
|
{
|
||||||
_map = new QMap<QString, CloudProviderWrapper*>();
|
_map = new QMap<QString, CloudProviderWrapper*>();
|
||||||
QString busName = QString(LIBCLOUDPROVIDERS_DBUS_BUS_NAME);
|
QString busName = QString(LIBCLOUDPROVIDERS_DBUS_BUS_NAME);
|
||||||
g_bus_own_name (G_BUS_TYPE_SESSION, busName.toAscii().data(), G_BUS_NAME_OWNER_FLAGS_NONE, on_bus_acquired, NULL, NULL, this, NULL);
|
g_bus_own_name (G_BUS_TYPE_SESSION, busName.toAscii().data(), G_BUS_NAME_OWNER_FLAGS_NONE, on_bus_acquired, nullptr, nullptr, this, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloudProviderManager::slotFolderListChanged(const Folder::Map &folderMap)
|
void CloudProviderManager::slotFolderListChanged(const Folder::Map &folderMap)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ extern "C" {
|
|||||||
|
|
||||||
using namespace OCC;
|
using namespace OCC;
|
||||||
|
|
||||||
GSimpleActionGroup *actionGroup = NULL;
|
GSimpleActionGroup *actionGroup = nullptr;
|
||||||
|
|
||||||
static
|
static
|
||||||
gchar* qstring_to_gchar(const QString &string)
|
gchar* qstring_to_gchar(const QString &string)
|
||||||
@@ -55,7 +55,7 @@ CloudProviderWrapper::CloudProviderWrapper(QObject *parent, Folder *folder, Clou
|
|||||||
gchar* folderName = qstring_to_gchar(folder->shortGuiLocalPath());
|
gchar* folderName = qstring_to_gchar(folder->shortGuiLocalPath());
|
||||||
gchar* folderPath = qstring_to_gchar(folder->cleanPath());
|
gchar* folderPath = qstring_to_gchar(folder->cleanPath());
|
||||||
cloud_providers_account_exporter_set_name (_cloudProviderAccount, folderName);
|
cloud_providers_account_exporter_set_name (_cloudProviderAccount, folderName);
|
||||||
cloud_providers_account_exporter_set_icon (_cloudProviderAccount, g_icon_new_for_string(APPLICATION_ICON_NAME, NULL));
|
cloud_providers_account_exporter_set_icon (_cloudProviderAccount, g_icon_new_for_string(APPLICATION_ICON_NAME, nullptr));
|
||||||
cloud_providers_account_exporter_set_path (_cloudProviderAccount, folderPath);
|
cloud_providers_account_exporter_set_path (_cloudProviderAccount, folderPath);
|
||||||
cloud_providers_account_exporter_set_status (_cloudProviderAccount, CLOUD_PROVIDERS_ACCOUNT_STATUS_IDLE);
|
cloud_providers_account_exporter_set_status (_cloudProviderAccount, CLOUD_PROVIDERS_ACCOUNT_STATUS_IDLE);
|
||||||
cloud_providers_account_exporter_set_menu_model (_cloudProviderAccount, getMenuModel());
|
cloud_providers_account_exporter_set_menu_model (_cloudProviderAccount, getMenuModel());
|
||||||
@@ -163,7 +163,7 @@ void CloudProviderWrapper::slotUpdateProgress(const QString &folder, const Progr
|
|||||||
g_menu_append_item(_recentMenu, item);
|
g_menu_append_item(_recentMenu, item);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item = g_menu_item_new("No recently changed files", NULL);
|
item = g_menu_item_new("No recently changed files", nullptr);
|
||||||
g_menu_append_item(_recentMenu, item);
|
g_menu_append_item(_recentMenu, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,20 +223,20 @@ GMenuModel* CloudProviderWrapper::getMenuModel() {
|
|||||||
section = g_menu_new();
|
section = g_menu_new();
|
||||||
item = g_menu_item_new("Open website", "cloudprovider.openwebsite");
|
item = g_menu_item_new("Open website", "cloudprovider.openwebsite");
|
||||||
g_menu_append_item(section, item);
|
g_menu_append_item(section, item);
|
||||||
g_menu_append_section(_mainMenu, NULL, G_MENU_MODEL(section));
|
g_menu_append_section(_mainMenu, nullptr, G_MENU_MODEL(section));
|
||||||
|
|
||||||
_recentMenu = g_menu_new();
|
_recentMenu = g_menu_new();
|
||||||
item = g_menu_item_new("No recently changed files", NULL);
|
item = g_menu_item_new("No recently changed files", nullptr);
|
||||||
g_menu_append_item(_recentMenu, item);
|
g_menu_append_item(_recentMenu, item);
|
||||||
section = g_menu_new();
|
section = g_menu_new();
|
||||||
item = g_menu_item_new_submenu("Recently changed", G_MENU_MODEL(_recentMenu));
|
item = g_menu_item_new_submenu("Recently changed", G_MENU_MODEL(_recentMenu));
|
||||||
g_menu_append_item(section, item);
|
g_menu_append_item(section, item);
|
||||||
g_menu_append_section(_mainMenu, NULL, G_MENU_MODEL(section));
|
g_menu_append_section(_mainMenu, nullptr, G_MENU_MODEL(section));
|
||||||
|
|
||||||
section = g_menu_new();
|
section = g_menu_new();
|
||||||
item = g_menu_item_new("Pause synchronization", "cloudprovider.pause");
|
item = g_menu_item_new("Pause synchronization", "cloudprovider.pause");
|
||||||
g_menu_append_item(section, item);
|
g_menu_append_item(section, item);
|
||||||
g_menu_append_section(_mainMenu, NULL, G_MENU_MODEL(section));
|
g_menu_append_section(_mainMenu, nullptr, G_MENU_MODEL(section));
|
||||||
|
|
||||||
section = g_menu_new();
|
section = g_menu_new();
|
||||||
item = g_menu_item_new("Help", "cloudprovider.openhelp");
|
item = g_menu_item_new("Help", "cloudprovider.openhelp");
|
||||||
@@ -247,7 +247,7 @@ GMenuModel* CloudProviderWrapper::getMenuModel() {
|
|||||||
g_menu_append_item(section, item);
|
g_menu_append_item(section, item);
|
||||||
item = g_menu_item_new("Quit sync client", "cloudprovider.quit");
|
item = g_menu_item_new("Quit sync client", "cloudprovider.quit");
|
||||||
g_menu_append_item(section, item);
|
g_menu_append_item(section, item);
|
||||||
g_menu_append_section(_mainMenu, NULL, G_MENU_MODEL(section));
|
g_menu_append_section(_mainMenu, nullptr, G_MENU_MODEL(section));
|
||||||
|
|
||||||
return G_MENU_MODEL(_mainMenu);
|
return G_MENU_MODEL(_mainMenu);
|
||||||
}
|
}
|
||||||
@@ -318,15 +318,15 @@ activate_action_pause (GSimpleAction *action,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static GActionEntry actions[] = {
|
static GActionEntry actions[] = {
|
||||||
{ "openwebsite", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "openwebsite", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "quit", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "quit", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "logout", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "logout", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "openfolder", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "openfolder", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "showfile", activate_action_open, "s", NULL, NULL, {0,0,0}},
|
{ "showfile", activate_action_open, "s", nullptr, nullptr, {0,0,0}},
|
||||||
{ "openhelp", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "openhelp", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "opensettings", activate_action_open, NULL, NULL, NULL, {0,0,0}},
|
{ "opensettings", activate_action_open, nullptr, nullptr, nullptr, {0,0,0}},
|
||||||
{ "openrecentfile", activate_action_openrecentfile, "s", NULL, NULL, {0,0,0}},
|
{ "openrecentfile", activate_action_openrecentfile, "s", nullptr, nullptr, {0,0,0}},
|
||||||
{ "pause", activate_action_pause, NULL, "false", NULL, {0,0,0}}
|
{ "pause", activate_action_pause, nullptr, "false", nullptr, {0,0,0}}
|
||||||
};
|
};
|
||||||
|
|
||||||
GActionGroup* CloudProviderWrapper::getActionGroup()
|
GActionGroup* CloudProviderWrapper::getActionGroup()
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ private:
|
|||||||
CloudProvidersAccountExporter *_cloudProviderAccount;
|
CloudProvidersAccountExporter *_cloudProviderAccount;
|
||||||
QList<QPair<QString, QString>> *_recentlyChanged;
|
QList<QPair<QString, QString>> *_recentlyChanged;
|
||||||
bool _paused;
|
bool _paused;
|
||||||
GMenu* _mainMenu = NULL;
|
GMenu* _mainMenu = nullptr;
|
||||||
GMenu* _recentMenu = NULL;
|
GMenu* _recentMenu = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CLOUDPROVIDER_H
|
#endif // CLOUDPROVIDER_H
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class ConnectionValidator : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ConnectionValidator(AccountPtr account, QObject *parent = 0);
|
explicit ConnectionValidator(AccountPtr account, QObject *parent = nullptr);
|
||||||
|
|
||||||
enum Status {
|
enum Status {
|
||||||
Undefined,
|
Undefined,
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ void HttpCredentialsGui::asyncAuthResult(OAuth::Result r, const QString &user,
|
|||||||
case OAuth::NotSupported:
|
case OAuth::NotSupported:
|
||||||
// We will re-enter the event loop, so better wait the next iteration
|
// We will re-enter the event loop, so better wait the next iteration
|
||||||
QMetaObject::invokeMethod(this, "showDialog", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(this, "showDialog", Qt::QueuedConnection);
|
||||||
_asyncAuth.reset(0);
|
_asyncAuth.reset(nullptr);
|
||||||
return;
|
return;
|
||||||
case OAuth::Error:
|
case OAuth::Error:
|
||||||
_asyncAuth.reset(0);
|
_asyncAuth.reset(nullptr);
|
||||||
emit asked();
|
emit asked();
|
||||||
return;
|
return;
|
||||||
case OAuth::LoggedIn:
|
case OAuth::LoggedIn:
|
||||||
@@ -91,7 +91,7 @@ void HttpCredentialsGui::asyncAuthResult(OAuth::Result r, const QString &user,
|
|||||||
_refreshToken = refreshToken;
|
_refreshToken = refreshToken;
|
||||||
_ready = true;
|
_ready = true;
|
||||||
persist();
|
persist();
|
||||||
_asyncAuth.reset(0);
|
_asyncAuth.reset(nullptr);
|
||||||
emit asked();
|
emit asked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public:
|
|||||||
* This will query the server and either uses OAuth via _asyncAuth->start()
|
* This will query the server and either uses OAuth via _asyncAuth->start()
|
||||||
* or call showDialog to ask the password
|
* or call showDialog to ask the password
|
||||||
*/
|
*/
|
||||||
void askFromUser() Q_DECL_OVERRIDE;
|
void askFromUser() override;
|
||||||
/**
|
/**
|
||||||
* In case of oauth, return an URL to the link to open the browser.
|
* In case of oauth, return an URL to the link to open the browser.
|
||||||
* An invalid URL otherwise
|
* An invalid URL otherwise
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class ShibbolethUserJob : public JsonApiJob
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ShibbolethUserJob(AccountPtr account, QObject *parent = 0);
|
explicit ShibbolethUserJob(AccountPtr account, QObject *parent = nullptr);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
// is always emitted when the job is finished. user is empty in case of error.
|
// is always emitted when the job is finished. user is empty in case of error.
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public:
|
|||||||
settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
|
settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QString userAgentForUrl(const QUrl &url) const
|
QString userAgentForUrl(const QUrl &url) const override
|
||||||
{
|
{
|
||||||
return QWebPage::userAgentForUrl(url) + " " + Utility::userAgentString();
|
return QWebPage::userAgentForUrl(url) + " " + Utility::userAgentString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ class ShibbolethWebView : public QWebView
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ShibbolethWebView(AccountPtr account, QWidget *parent = 0);
|
ShibbolethWebView(AccountPtr account, QWidget *parent = nullptr);
|
||||||
ShibbolethWebView(AccountPtr account, ShibbolethCookieJar *jar, QWidget *parent = 0);
|
ShibbolethWebView(AccountPtr account, ShibbolethCookieJar *jar, QWidget *parent = nullptr);
|
||||||
~ShibbolethWebView();
|
~ShibbolethWebView();
|
||||||
|
|
||||||
void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void shibbolethCookieReceived(const QNetworkCookie &cookie);
|
void shibbolethCookieReceived(const QNetworkCookie &cookie);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ ShibbolethCredentials::ShibbolethCredentials()
|
|||||||
, _url()
|
, _url()
|
||||||
, _ready(false)
|
, _ready(false)
|
||||||
, _stillValid(false)
|
, _stillValid(false)
|
||||||
, _browser(0)
|
, _browser(nullptr)
|
||||||
, _keychainMigration(false)
|
, _keychainMigration(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ ShibbolethCredentials::ShibbolethCredentials()
|
|||||||
ShibbolethCredentials::ShibbolethCredentials(const QNetworkCookie &cookie)
|
ShibbolethCredentials::ShibbolethCredentials(const QNetworkCookie &cookie)
|
||||||
: _ready(true)
|
: _ready(true)
|
||||||
, _stillValid(true)
|
, _stillValid(true)
|
||||||
, _browser(0)
|
, _browser(nullptr)
|
||||||
, _shibCookie(cookie)
|
, _shibCookie(cookie)
|
||||||
, _keychainMigration(false)
|
, _keychainMigration(false)
|
||||||
{
|
{
|
||||||
@@ -161,7 +161,7 @@ void ShibbolethCredentials::askFromUser()
|
|||||||
} else if (type == DetermineAuthTypeJob::OAuth) {
|
} else if (type == DetermineAuthTypeJob::OAuth) {
|
||||||
// Hack: upgrade to oauth
|
// Hack: upgrade to oauth
|
||||||
auto newCred = new HttpCredentialsGui;
|
auto newCred = new HttpCredentialsGui;
|
||||||
job->setParent(0);
|
job->setParent(nullptr);
|
||||||
job->deleteLater();
|
job->deleteLater();
|
||||||
auto account = this->_account;
|
auto account = this->_account;
|
||||||
auto user = this->_user;
|
auto user = this->_user;
|
||||||
|
|||||||
@@ -50,17 +50,17 @@ public:
|
|||||||
/* create credentials for an already connected account */
|
/* create credentials for an already connected account */
|
||||||
ShibbolethCredentials(const QNetworkCookie &cookie);
|
ShibbolethCredentials(const QNetworkCookie &cookie);
|
||||||
|
|
||||||
void setAccount(Account *account) Q_DECL_OVERRIDE;
|
void setAccount(Account *account) override;
|
||||||
QString authType() const Q_DECL_OVERRIDE;
|
QString authType() const override;
|
||||||
QString user() const Q_DECL_OVERRIDE;
|
QString user() const override;
|
||||||
QNetworkAccessManager *createQNAM() const Q_DECL_OVERRIDE;
|
QNetworkAccessManager *createQNAM() const override;
|
||||||
bool ready() const Q_DECL_OVERRIDE;
|
bool ready() const override;
|
||||||
void fetchFromKeychain() Q_DECL_OVERRIDE;
|
void fetchFromKeychain() override;
|
||||||
void askFromUser() Q_DECL_OVERRIDE;
|
void askFromUser() override;
|
||||||
bool stillValid(QNetworkReply *reply) Q_DECL_OVERRIDE;
|
bool stillValid(QNetworkReply *reply) override;
|
||||||
void persist() Q_DECL_OVERRIDE;
|
void persist() override;
|
||||||
void invalidateToken() Q_DECL_OVERRIDE;
|
void invalidateToken() override;
|
||||||
void forgetSensitiveData() Q_DECL_OVERRIDE;
|
void forgetSensitiveData() override;
|
||||||
|
|
||||||
void showLoginWindow();
|
void showLoginWindow();
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) Q_DECL_OVERRIDE
|
QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) override
|
||||||
{
|
{
|
||||||
QNetworkRequest req(request);
|
QNetworkRequest req(request);
|
||||||
if (!req.attribute(HttpCredentials::DontAddCredentialsAttribute).toBool()) {
|
if (!req.attribute(HttpCredentials::DontAddCredentialsAttribute).toBool()) {
|
||||||
@@ -160,7 +160,7 @@ void WebFlowCredentials::slotAskFromUserCredentialsProvided(const QString &user,
|
|||||||
|
|
||||||
_askDialog->close();
|
_askDialog->close();
|
||||||
delete _askDialog;
|
delete _askDialog;
|
||||||
_askDialog = NULL;
|
_askDialog = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class WebFlowCredentialsDialog : public QDialog
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
WebFlowCredentialsDialog(QWidget *parent = 0);
|
WebFlowCredentialsDialog(QWidget *parent = nullptr);
|
||||||
|
|
||||||
void setUrl(const QUrl &url);
|
void setUrl(const QUrl &url);
|
||||||
void setInfo(const QString &msg);
|
void setInfo(const QString &msg);
|
||||||
|
|||||||
@@ -18,6 +18,12 @@
|
|||||||
|
|
||||||
namespace OCC {
|
namespace OCC {
|
||||||
|
|
||||||
|
ElidedLabel::ElidedLabel(QWidget *parent)
|
||||||
|
: QLabel(parent)
|
||||||
|
, _elideMode(Qt::ElideNone)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
ElidedLabel::ElidedLabel(const QString &text, QWidget *parent)
|
ElidedLabel::ElidedLabel(const QString &text, QWidget *parent)
|
||||||
: QLabel(text, parent)
|
: QLabel(text, parent)
|
||||||
, _text(text)
|
, _text(text)
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ class ElidedLabel : public QLabel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ElidedLabel(const QString &text, QWidget *parent = 0);
|
explicit ElidedLabel(QWidget *parent = nullptr);
|
||||||
|
explicit ElidedLabel(const QString &text, QWidget *parent = nullptr);
|
||||||
|
|
||||||
void setText(const QString &text);
|
void setText(const QString &text);
|
||||||
const QString &text() const { return _text; }
|
const QString &text() const { return _text; }
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class Folder : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Folder(const FolderDefinition &definition, AccountState *accountState, QObject *parent = 0L);
|
Folder(const FolderDefinition &definition, AccountState *accountState, QObject *parent = nullptr);
|
||||||
|
|
||||||
~Folder();
|
~Folder();
|
||||||
|
|
||||||
|
|||||||
@@ -43,11 +43,11 @@ namespace OCC {
|
|||||||
|
|
||||||
Q_LOGGING_CATEGORY(lcFolderMan, "nextcloud.gui.folder.manager", QtInfoMsg)
|
Q_LOGGING_CATEGORY(lcFolderMan, "nextcloud.gui.folder.manager", QtInfoMsg)
|
||||||
|
|
||||||
FolderMan *FolderMan::_instance = 0;
|
FolderMan *FolderMan::_instance = nullptr;
|
||||||
|
|
||||||
FolderMan::FolderMan(QObject *parent)
|
FolderMan::FolderMan(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, _currentSyncFolder(0)
|
, _currentSyncFolder(nullptr)
|
||||||
, _syncEnabled(true)
|
, _syncEnabled(true)
|
||||||
, _lockWatcher(new LockWatcher)
|
, _lockWatcher(new LockWatcher)
|
||||||
, _navigationPaneHelper(this)
|
, _navigationPaneHelper(this)
|
||||||
@@ -90,7 +90,7 @@ FolderMan *FolderMan::instance()
|
|||||||
FolderMan::~FolderMan()
|
FolderMan::~FolderMan()
|
||||||
{
|
{
|
||||||
qDeleteAll(_folderMap);
|
qDeleteAll(_folderMap);
|
||||||
_instance = 0;
|
_instance = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
OCC::Folder::Map FolderMan::map()
|
OCC::Folder::Map FolderMan::map()
|
||||||
@@ -137,8 +137,8 @@ int FolderMan::unloadAndDeleteAllFolders()
|
|||||||
}
|
}
|
||||||
ASSERT(_folderMap.isEmpty());
|
ASSERT(_folderMap.isEmpty());
|
||||||
|
|
||||||
_lastSyncFolder = 0;
|
_lastSyncFolder = nullptr;
|
||||||
_currentSyncFolder = 0;
|
_currentSyncFolder = nullptr;
|
||||||
_scheduledFolders.clear();
|
_scheduledFolders.clear();
|
||||||
emit folderListChanged(_folderMap);
|
emit folderListChanged(_folderMap);
|
||||||
emit scheduleQueueChanged();
|
emit scheduleQueueChanged();
|
||||||
@@ -271,7 +271,7 @@ bool FolderMan::ensureJournalGone(const QString &journalDbFile)
|
|||||||
// remove the old journal file
|
// remove the old journal file
|
||||||
while (QFile::exists(journalDbFile) && !QFile::remove(journalDbFile)) {
|
while (QFile::exists(journalDbFile) && !QFile::remove(journalDbFile)) {
|
||||||
qCWarning(lcFolderMan) << "Could not remove old db file at" << journalDbFile;
|
qCWarning(lcFolderMan) << "Could not remove old db file at" << journalDbFile;
|
||||||
int ret = QMessageBox::warning(0, tr("Could not reset folder state"),
|
int ret = QMessageBox::warning(nullptr, tr("Could not reset folder state"),
|
||||||
tr("An old sync journal '%1' was found, "
|
tr("An old sync journal '%1' was found, "
|
||||||
"but could not be removed. Please make sure "
|
"but could not be removed. Please make sure "
|
||||||
"that no application is currently using it.")
|
"that no application is currently using it.")
|
||||||
@@ -346,7 +346,7 @@ QString FolderMan::unescapeAlias(const QString &alias)
|
|||||||
// WARNING: Do not remove this code, it is used for predefined/automated deployments (2016)
|
// WARNING: Do not remove this code, it is used for predefined/automated deployments (2016)
|
||||||
Folder *FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountState *accountState)
|
Folder *FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountState *accountState)
|
||||||
{
|
{
|
||||||
Folder *folder = 0;
|
Folder *folder = nullptr;
|
||||||
|
|
||||||
qCInfo(lcFolderMan) << " ` -> setting up:" << file;
|
qCInfo(lcFolderMan) << " ` -> setting up:" << file;
|
||||||
QString escapedAlias(file);
|
QString escapedAlias(file);
|
||||||
@@ -387,7 +387,7 @@ Folder *FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountStat
|
|||||||
|
|
||||||
if (backend.isEmpty() || backend != QLatin1String("owncloud")) {
|
if (backend.isEmpty() || backend != QLatin1String("owncloud")) {
|
||||||
qCWarning(lcFolderMan) << "obsolete configuration of type" << backend;
|
qCWarning(lcFolderMan) << "obsolete configuration of type" << backend;
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// cut off the leading slash, oCUrl always has a trailing.
|
// cut off the leading slash, oCUrl always has a trailing.
|
||||||
@@ -397,7 +397,7 @@ Folder *FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountStat
|
|||||||
|
|
||||||
if (!accountState) {
|
if (!accountState) {
|
||||||
qCCritical(lcFolderMan) << "can't create folder without an account";
|
qCCritical(lcFolderMan) << "can't create folder without an account";
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
FolderDefinition folderDefinition;
|
FolderDefinition folderDefinition;
|
||||||
@@ -471,7 +471,7 @@ Folder *FolderMan::folder(const QString &alias)
|
|||||||
return _folderMap[alias];
|
return _folderMap[alias];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FolderMan::scheduleAllFolders()
|
void FolderMan::scheduleAllFolders()
|
||||||
@@ -575,7 +575,7 @@ void FolderMan::slotRunOneEtagJob()
|
|||||||
//qCDebug(lcFolderMan) << "No more remote ETag check jobs to schedule.";
|
//qCDebug(lcFolderMan) << "No more remote ETag check jobs to schedule.";
|
||||||
|
|
||||||
/* now it might be a good time to check for restarting... */
|
/* now it might be a good time to check for restarting... */
|
||||||
if (_currentSyncFolder == NULL && _appRestartRequired) {
|
if (_currentSyncFolder == nullptr && _appRestartRequired) {
|
||||||
restartApplication();
|
restartApplication();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -633,7 +633,7 @@ void FolderMan::setSyncEnabled(bool enabled)
|
|||||||
}
|
}
|
||||||
_syncEnabled = enabled;
|
_syncEnabled = enabled;
|
||||||
// force a redraw in case the network connect status changed
|
// force a redraw in case the network connect status changed
|
||||||
emit(folderSyncStateChange(0));
|
emit(folderSyncStateChange(nullptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FolderMan::startScheduledSyncSoon()
|
void FolderMan::startScheduledSyncSoon()
|
||||||
@@ -698,7 +698,7 @@ void FolderMan::slotStartScheduledFolderSync()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find the first folder in the queue that can be synced.
|
// Find the first folder in the queue that can be synced.
|
||||||
Folder *folder = 0;
|
Folder *folder = nullptr;
|
||||||
while (!_scheduledFolders.isEmpty()) {
|
while (!_scheduledFolders.isEmpty()) {
|
||||||
Folder *g = _scheduledFolders.dequeue();
|
Folder *g = _scheduledFolders.dequeue();
|
||||||
if (g->canSync()) {
|
if (g->canSync()) {
|
||||||
@@ -862,7 +862,7 @@ void FolderMan::slotFolderSyncFinished(const SyncResult &)
|
|||||||
qPrintable(_currentSyncFolder->remoteUrl().toString()));
|
qPrintable(_currentSyncFolder->remoteUrl().toString()));
|
||||||
|
|
||||||
_lastSyncFolder = _currentSyncFolder;
|
_lastSyncFolder = _currentSyncFolder;
|
||||||
_currentSyncFolder = 0;
|
_currentSyncFolder = nullptr;
|
||||||
|
|
||||||
startScheduledSyncSoon();
|
startScheduledSyncSoon();
|
||||||
}
|
}
|
||||||
@@ -874,7 +874,7 @@ Folder *FolderMan::addFolder(AccountState *accountState, const FolderDefinition
|
|||||||
definition.journalPath = definition.defaultJournalPath(accountState->account());
|
definition.journalPath = definition.defaultJournalPath(accountState->account());
|
||||||
|
|
||||||
if (!ensureJournalGone(definition.absoluteJournalPath())) {
|
if (!ensureJournalGone(definition.absoluteJournalPath())) {
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto folder = addFolderInternal(definition, accountState);
|
auto folder = addFolderInternal(definition, accountState);
|
||||||
@@ -947,7 +947,7 @@ Folder *FolderMan::folderForPath(const QString &path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList FolderMan::findFileInLocalFolders(const QString &relPath, const AccountPtr acc)
|
QStringList FolderMan::findFileInLocalFolders(const QString &relPath, const AccountPtr acc)
|
||||||
@@ -955,7 +955,7 @@ QStringList FolderMan::findFileInLocalFolders(const QString &relPath, const Acco
|
|||||||
QStringList re;
|
QStringList re;
|
||||||
|
|
||||||
foreach (Folder *folder, this->map().values()) {
|
foreach (Folder *folder, this->map().values()) {
|
||||||
if (acc != 0 && folder->accountState()->account() != acc) {
|
if (acc != nullptr && folder->accountState()->account() != acc) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
QString path = folder->cleanPath();
|
QString path = folder->cleanPath();
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ private:
|
|||||||
bool _appRestartRequired;
|
bool _appRestartRequired;
|
||||||
|
|
||||||
static FolderMan *_instance;
|
static FolderMan *_instance;
|
||||||
explicit FolderMan(QObject *parent = 0);
|
explicit FolderMan(QObject *parent = nullptr);
|
||||||
friend class OCC::Application;
|
friend class OCC::Application;
|
||||||
friend class ::TestFolderMan;
|
friend class ::TestFolderMan;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -47,10 +47,10 @@ public:
|
|||||||
|
|
||||||
AddButton // 1 = enabled; 2 = disabled
|
AddButton // 1 = enabled; 2 = disabled
|
||||||
};
|
};
|
||||||
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const Q_DECL_OVERRIDE;
|
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||||
QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const Q_DECL_OVERRIDE;
|
QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||||
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option,
|
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option,
|
||||||
const QModelIndex &index) Q_DECL_OVERRIDE;
|
const QModelIndex &index) override;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ static QString removeTrailingSlash(const QString &s)
|
|||||||
|
|
||||||
FolderStatusModel::FolderStatusModel(QObject *parent)
|
FolderStatusModel::FolderStatusModel(QObject *parent)
|
||||||
: QAbstractItemModel(parent)
|
: QAbstractItemModel(parent)
|
||||||
, _accountState(0)
|
, _accountState(nullptr)
|
||||||
, _dirty(false)
|
, _dirty(false)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ void FolderStatusModel::setAccountState(const AccountState *accountState)
|
|||||||
Qt::ItemFlags FolderStatusModel::flags(const QModelIndex &index) const
|
Qt::ItemFlags FolderStatusModel::flags(const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
if (!_accountState) {
|
if (!_accountState) {
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
switch (classify(index)) {
|
switch (classify(index)) {
|
||||||
case AddButton: {
|
case AddButton: {
|
||||||
@@ -124,7 +124,7 @@ Qt::ItemFlags FolderStatusModel::flags(const QModelIndex &index) const
|
|||||||
case SubFolder:
|
case SubFolder:
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable;
|
return Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable;
|
||||||
}
|
}
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FolderStatusModel::data(const QModelIndex &index, int role) const
|
QVariant FolderStatusModel::data(const QModelIndex &index, int role) const
|
||||||
@@ -387,19 +387,19 @@ FolderStatusModel::ItemType FolderStatusModel::classify(const QModelIndex &index
|
|||||||
FolderStatusModel::SubFolderInfo *FolderStatusModel::infoForIndex(const QModelIndex &index) const
|
FolderStatusModel::SubFolderInfo *FolderStatusModel::infoForIndex(const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return 0;
|
return nullptr;
|
||||||
if (auto parentInfo = static_cast<SubFolderInfo *>(index.internalPointer())) {
|
if (auto parentInfo = static_cast<SubFolderInfo *>(index.internalPointer())) {
|
||||||
if (parentInfo->hasLabel()) {
|
if (parentInfo->hasLabel()) {
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
if (index.row() >= parentInfo->_subs.size()) {
|
if (index.row() >= parentInfo->_subs.size()) {
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
return &parentInfo->_subs[index.row()];
|
return &parentInfo->_subs[index.row()];
|
||||||
} else {
|
} else {
|
||||||
if (index.row() >= _folders.count()) {
|
if (index.row() >= _folders.count()) {
|
||||||
// AddButton
|
// AddButton
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
return const_cast<SubFolderInfo *>(&_folders[index.row()]);
|
return const_cast<SubFolderInfo *>(&_folders[index.row()]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,25 +41,25 @@ class FolderStatusModel : public QAbstractItemModel
|
|||||||
public:
|
public:
|
||||||
enum {FileIdRole = Qt::UserRole+1};
|
enum {FileIdRole = Qt::UserRole+1};
|
||||||
|
|
||||||
FolderStatusModel(QObject *parent = 0);
|
FolderStatusModel(QObject *parent = nullptr);
|
||||||
~FolderStatusModel();
|
~FolderStatusModel();
|
||||||
void setAccountState(const AccountState *accountState);
|
void setAccountState(const AccountState *accountState);
|
||||||
|
|
||||||
Qt::ItemFlags flags(const QModelIndex &) const Q_DECL_OVERRIDE;
|
Qt::ItemFlags flags(const QModelIndex &) const override;
|
||||||
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
QVariant data(const QModelIndex &index, int role) const override;
|
||||||
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
||||||
int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const override;
|
||||||
QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
|
QModelIndex parent(const QModelIndex &child) const override;
|
||||||
bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE;
|
bool canFetchMore(const QModelIndex &parent) const override;
|
||||||
void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE;
|
void fetchMore(const QModelIndex &parent) override;
|
||||||
bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
bool hasChildren(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
|
|
||||||
struct SubFolderInfo
|
struct SubFolderInfo
|
||||||
{
|
{
|
||||||
SubFolderInfo()
|
SubFolderInfo()
|
||||||
: _folder(0)
|
: _folder(nullptr)
|
||||||
, _size(0)
|
, _size(0)
|
||||||
, _isExternal(false)
|
, _isExternal(false)
|
||||||
, _fetched(false)
|
, _fetched(false)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class FolderWatcher : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
// Construct, connect signals, call init()
|
// Construct, connect signals, call init()
|
||||||
explicit FolderWatcher(Folder *folder = 0L);
|
explicit FolderWatcher(Folder *folder = nullptr);
|
||||||
virtual ~FolderWatcher();
|
virtual ~FolderWatcher();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ void FolderWatcherPrivate::slotReceivedNotification(int fd)
|
|||||||
while (i + sizeof(struct inotify_event) < static_cast<unsigned int>(len)) {
|
while (i + sizeof(struct inotify_event) < static_cast<unsigned int>(len)) {
|
||||||
// cast an inotify_event
|
// cast an inotify_event
|
||||||
event = (struct inotify_event *)&buffer[i];
|
event = (struct inotify_event *)&buffer[i];
|
||||||
if (event == NULL) {
|
if (event == nullptr) {
|
||||||
qCDebug(lcFolderWatcher) << "NULL event";
|
qCDebug(lcFolderWatcher) << "NULL event";
|
||||||
i += sizeof(struct inotify_event);
|
i += sizeof(struct inotify_event);
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ static QTreeWidgetItem *findFirstChild(QTreeWidgetItem *parent, const QString &t
|
|||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FolderWizardRemotePath::recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path)
|
void FolderWizardRemotePath::recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path)
|
||||||
@@ -534,7 +534,7 @@ void FolderWizardSelectiveSync::cleanupPage()
|
|||||||
FolderWizard::FolderWizard(AccountPtr account, QWidget *parent)
|
FolderWizard::FolderWizard(AccountPtr account, QWidget *parent)
|
||||||
: QWizard(parent)
|
: QWizard(parent)
|
||||||
, _folderWizardSourcePage(new FolderWizardLocalPath(account))
|
, _folderWizardSourcePage(new FolderWizardLocalPath(account))
|
||||||
, _folderWizardTargetPage(0)
|
, _folderWizardTargetPage(nullptr)
|
||||||
, _folderWizardSelectiveSyncPage(new FolderWizardSelectiveSync(account))
|
, _folderWizardSelectiveSyncPage(new FolderWizardSelectiveSync(account))
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ public:
|
|||||||
explicit FolderWizardLocalPath(const AccountPtr &account);
|
explicit FolderWizardLocalPath(const AccountPtr &account);
|
||||||
~FolderWizardLocalPath();
|
~FolderWizardLocalPath();
|
||||||
|
|
||||||
virtual bool isComplete() const Q_DECL_OVERRIDE;
|
bool isComplete() const override;
|
||||||
void initializePage() Q_DECL_OVERRIDE;
|
void initializePage() override;
|
||||||
void cleanupPage() Q_DECL_OVERRIDE;
|
void cleanupPage() override;
|
||||||
|
|
||||||
void setFolderMap(const Folder::Map &fm) { _folderMap = fm; }
|
void setFolderMap(const Folder::Map &fm) { _folderMap = fm; }
|
||||||
protected slots:
|
protected slots:
|
||||||
@@ -80,10 +80,10 @@ public:
|
|||||||
explicit FolderWizardRemotePath(const AccountPtr &account);
|
explicit FolderWizardRemotePath(const AccountPtr &account);
|
||||||
~FolderWizardRemotePath();
|
~FolderWizardRemotePath();
|
||||||
|
|
||||||
virtual bool isComplete() const Q_DECL_OVERRIDE;
|
bool isComplete() const override;
|
||||||
|
|
||||||
virtual void initializePage() Q_DECL_OVERRIDE;
|
void initializePage() override;
|
||||||
virtual void cleanupPage() Q_DECL_OVERRIDE;
|
void cleanupPage() override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
|
||||||
@@ -123,10 +123,10 @@ public:
|
|||||||
explicit FolderWizardSelectiveSync(const AccountPtr &account);
|
explicit FolderWizardSelectiveSync(const AccountPtr &account);
|
||||||
~FolderWizardSelectiveSync();
|
~FolderWizardSelectiveSync();
|
||||||
|
|
||||||
virtual bool validatePage() Q_DECL_OVERRIDE;
|
bool validatePage() override;
|
||||||
|
|
||||||
virtual void initializePage() Q_DECL_OVERRIDE;
|
void initializePage() override;
|
||||||
virtual void cleanupPage() Q_DECL_OVERRIDE;
|
void cleanupPage() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SelectiveSyncWidget *_selectiveSync;
|
SelectiveSyncWidget *_selectiveSync;
|
||||||
@@ -146,7 +146,7 @@ public:
|
|||||||
Page_SelectiveSync
|
Page_SelectiveSync
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit FolderWizard(AccountPtr account, QWidget *parent = 0);
|
explicit FolderWizard(AccountPtr account, QWidget *parent = nullptr);
|
||||||
~FolderWizard();
|
~FolderWizard();
|
||||||
|
|
||||||
bool eventFilter(QObject *watched, QEvent *event) override;
|
bool eventFilter(QObject *watched, QEvent *event) override;
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ void GeneralSettings::slotUpdateInfo()
|
|||||||
// Note: the sparkle-updater is not an OCUpdater
|
// Note: the sparkle-updater is not an OCUpdater
|
||||||
OCUpdater *updater = qobject_cast<OCUpdater *>(Updater::instance());
|
OCUpdater *updater = qobject_cast<OCUpdater *>(Updater::instance());
|
||||||
if (ConfigFile().skipUpdateCheck()) {
|
if (ConfigFile().skipUpdateCheck()) {
|
||||||
updater = 0; // don't show update info if updates are disabled
|
updater = nullptr; // don't show update info if updates are disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updater) {
|
if (updater) {
|
||||||
|
|||||||
@@ -35,9 +35,9 @@ class GeneralSettings : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit GeneralSettings(QWidget *parent = 0);
|
explicit GeneralSettings(QWidget *parent = nullptr);
|
||||||
~GeneralSettings();
|
~GeneralSettings();
|
||||||
QSize sizeHint() const;
|
QSize sizeHint() const override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void saveMiscSettings();
|
void saveMiscSettings();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class IconJob : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit IconJob(const QUrl &url, QObject *parent = 0);
|
explicit IconJob(const QUrl &url, QObject *parent = nullptr);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void jobFinished(QByteArray iconData);
|
void jobFinished(QByteArray iconData);
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class IgnoreListEditor : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit IgnoreListEditor(QWidget *parent = 0);
|
explicit IgnoreListEditor(QWidget *parent = nullptr);
|
||||||
~IgnoreListEditor();
|
~IgnoreListEditor();
|
||||||
|
|
||||||
bool ignoreHiddenFiles();
|
bool ignoreHiddenFiles();
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class LegalNotice : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit LegalNotice(QDialog *parent = 0);
|
explicit LegalNotice(QDialog *parent = nullptr);
|
||||||
~LegalNotice();
|
~LegalNotice();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class LockWatcher : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit LockWatcher(QObject *parent = 0);
|
explicit LockWatcher(QObject *parent = nullptr);
|
||||||
|
|
||||||
/** Start watching a file.
|
/** Start watching a file.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class LogWidget : public QPlainTextEdit
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit LogWidget(QWidget *parent = 0);
|
explicit LogWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
};
|
};
|
||||||
@@ -50,14 +50,14 @@ class LogBrowser : public QDialog
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit LogBrowser(QWidget *parent = 0);
|
explicit LogBrowser(QWidget *parent = nullptr);
|
||||||
~LogBrowser();
|
~LogBrowser();
|
||||||
|
|
||||||
void setLogFile(const QString &, bool);
|
void setLogFile(const QString &, bool);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
|
void showEvent(QShowEvent *) override;
|
||||||
void closeEvent(QCloseEvent *) Q_DECL_OVERRIDE;
|
void closeEvent(QCloseEvent *) override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void slotNewLog(const QString &msg);
|
void slotNewLog(const QString &msg);
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ using namespace OCC;
|
|||||||
|
|
||||||
void warnSystray()
|
void warnSystray()
|
||||||
{
|
{
|
||||||
QMessageBox::critical(0, qApp->translate("main.cpp", "System Tray not available"),
|
QMessageBox::critical(nullptr, qApp->translate("main.cpp", "System Tray not available"),
|
||||||
qApp->translate("main.cpp", "%1 requires on a working system tray. "
|
qApp->translate("main.cpp", "%1 requires on a working system tray. "
|
||||||
"If you are running XFCE, please follow "
|
"If you are running XFCE, please follow "
|
||||||
"<a href=\"http://docs.xfce.org/xfce/xfce4-panel/systray\">these instructions</a>. "
|
"<a href=\"http://docs.xfce.org/xfce/xfce4-panel/systray\">these instructions</a>. "
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class NetworkSettings : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit NetworkSettings(QWidget *parent = 0);
|
explicit NetworkSettings(QWidget *parent = nullptr);
|
||||||
~NetworkSettings();
|
~NetworkSettings();
|
||||||
QSize sizeHint() const override;
|
QSize sizeHint() const override;
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* @brief Start the OCS request
|
* @brief Start the OCS request
|
||||||
*/
|
*/
|
||||||
void start() Q_DECL_OVERRIDE;
|
void start() override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ signals:
|
|||||||
void jobFinished(QString reply, int replyCode);
|
void jobFinished(QString reply, int replyCode);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
virtual bool finished() Q_DECL_OVERRIDE;
|
bool finished() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QByteArray _verb;
|
QByteArray _verb;
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ protected slots:
|
|||||||
/**
|
/**
|
||||||
* Start the OCS request
|
* Start the OCS request
|
||||||
*/
|
*/
|
||||||
void start() Q_DECL_OVERRIDE;
|
void start() override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ signals:
|
|||||||
void etagResponseHeaderReceived(const QByteArray &value, int statusCode);
|
void etagResponseHeaderReceived(const QByteArray &value, int statusCode);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
virtual bool finished() Q_DECL_OVERRIDE;
|
bool finished() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QByteArray _verb;
|
QByteArray _verb;
|
||||||
|
|||||||
@@ -61,17 +61,17 @@ const char propertyAccountC[] = "oc_account";
|
|||||||
|
|
||||||
ownCloudGui::ownCloudGui(Application *parent)
|
ownCloudGui::ownCloudGui(Application *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, _tray(0)
|
, _tray(nullptr)
|
||||||
#if defined(Q_OS_MAC)
|
#if defined(Q_OS_MAC)
|
||||||
, _settingsDialog(new SettingsDialogMac(this))
|
, _settingsDialog(new SettingsDialogMac(this))
|
||||||
#else
|
#else
|
||||||
, _settingsDialog(new SettingsDialog(this))
|
, _settingsDialog(new SettingsDialog(this))
|
||||||
#endif
|
#endif
|
||||||
, _logBrowser(0)
|
, _logBrowser(nullptr)
|
||||||
#ifdef WITH_LIBCLOUDPROVIDERS
|
#ifdef WITH_LIBCLOUDPROVIDERS
|
||||||
, _bus(QDBusConnection::sessionBus())
|
, _bus(QDBusConnection::sessionBus())
|
||||||
#endif
|
#endif
|
||||||
, _recentActionsMenu(0)
|
, _recentActionsMenu(nullptr)
|
||||||
, _app(parent)
|
, _app(parent)
|
||||||
{
|
{
|
||||||
_tray = new Systray();
|
_tray = new Systray();
|
||||||
@@ -794,7 +794,7 @@ void ownCloudGui::setupActions()
|
|||||||
_actionCrash = new QAction(tr("Crash now", "Only shows in debug mode to allow testing the crash handler"), this);
|
_actionCrash = new QAction(tr("Crash now", "Only shows in debug mode to allow testing the crash handler"), this);
|
||||||
connect(_actionCrash, &QAction::triggered, _app, &Application::slotCrash);
|
connect(_actionCrash, &QAction::triggered, _app, &Application::slotCrash);
|
||||||
} else {
|
} else {
|
||||||
_actionCrash = 0;
|
_actionCrash = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1129,7 +1129,7 @@ void ownCloudGui::slotHelp()
|
|||||||
|
|
||||||
void ownCloudGui::raiseDialog(QWidget *raiseWidget)
|
void ownCloudGui::raiseDialog(QWidget *raiseWidget)
|
||||||
{
|
{
|
||||||
if (raiseWidget && raiseWidget->parentWidget() == 0) {
|
if (raiseWidget && raiseWidget->parentWidget() == nullptr) {
|
||||||
// Qt has a bug which causes parent-less dialogs to pop-under.
|
// Qt has a bug which causes parent-less dialogs to pop-under.
|
||||||
raiseWidget->showNormal();
|
raiseWidget->showNormal();
|
||||||
raiseWidget->raise();
|
raiseWidget->raise();
|
||||||
@@ -1199,11 +1199,11 @@ void ownCloudGui::slotShowShareDialog(const QString &sharePath, const QString &l
|
|||||||
| SharePermissionUpdate | SharePermissionCreate | SharePermissionDelete
|
| SharePermissionUpdate | SharePermissionCreate | SharePermissionDelete
|
||||||
| SharePermissionShare;
|
| SharePermissionShare;
|
||||||
if (!resharingAllowed) {
|
if (!resharingAllowed) {
|
||||||
maxSharingPermissions = 0;
|
maxSharingPermissions = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ShareDialog *w = 0;
|
ShareDialog *w = nullptr;
|
||||||
if (_shareDialogs.contains(localPath) && _shareDialogs[localPath]) {
|
if (_shareDialogs.contains(localPath) && _shareDialogs[localPath]) {
|
||||||
qCInfo(lcApplication) << "Raising share dialog" << sharePath << localPath;
|
qCInfo(lcApplication) << "Raising share dialog" << sharePath << localPath;
|
||||||
w = _shareDialogs[localPath];
|
w = _shareDialogs[localPath];
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class ownCloudGui : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit ownCloudGui(Application *parent = 0);
|
explicit ownCloudGui(Application *parent = nullptr);
|
||||||
|
|
||||||
bool checkAccountExists(bool openSettings);
|
bool checkAccountExists(bool openSettings);
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ OwncloudSetupWizard::~OwncloudSetupWizard()
|
|||||||
_ocWizard->deleteLater();
|
_ocWizard->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
static QPointer<OwncloudSetupWizard> wiz = 0;
|
static QPointer<OwncloudSetupWizard> wiz = nullptr;
|
||||||
|
|
||||||
void OwncloudSetupWizard::runWizard(QObject *obj, const char *amember, QWidget *parent)
|
void OwncloudSetupWizard::runWizard(QObject *obj, const char *amember, QWidget *parent)
|
||||||
{
|
{
|
||||||
@@ -582,7 +582,7 @@ bool OwncloudSetupWizard::ensureStartFromScratch(const QString &localFolder)
|
|||||||
renameOk = FolderMan::instance()->startFromScratch(localFolder);
|
renameOk = FolderMan::instance()->startFromScratch(localFolder);
|
||||||
if (!renameOk) {
|
if (!renameOk) {
|
||||||
QMessageBox::StandardButton but;
|
QMessageBox::StandardButton but;
|
||||||
but = QMessageBox::question(0, tr("Folder rename failed"),
|
but = QMessageBox::question(nullptr, tr("Folder rename failed"),
|
||||||
tr("Can't remove and back up the folder because the folder or a file in it is open in another program."
|
tr("Can't remove and back up the folder because the folder or a file in it is open in another program."
|
||||||
" Please close the folder or file and hit retry or cancel the setup."),
|
" Please close the folder or file and hit retry or cancel the setup."),
|
||||||
QMessageBox::Retry | QMessageBox::Abort, QMessageBox::Retry);
|
QMessageBox::Retry | QMessageBox::Abort, QMessageBox::Retry);
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class OwncloudSetupWizard : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
/** Run the wizard */
|
/** Run the wizard */
|
||||||
static void runWizard(QObject *obj, const char *amember, QWidget *parent = 0);
|
static void runWizard(QObject *obj, const char *amember, QWidget *parent = nullptr);
|
||||||
static bool bringWizardToFrontIfVisible();
|
static bool bringWizardToFrontIfVisible();
|
||||||
signals:
|
signals:
|
||||||
// overall dialog close signal.
|
// overall dialog close signal.
|
||||||
@@ -70,7 +70,7 @@ private slots:
|
|||||||
void slotSkipFolderConfiguration();
|
void slotSkipFolderConfiguration();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit OwncloudSetupWizard(QObject *parent = 0);
|
explicit OwncloudSetupWizard(QObject *parent = nullptr);
|
||||||
~OwncloudSetupWizard();
|
~OwncloudSetupWizard();
|
||||||
void startWizard();
|
void startWizard();
|
||||||
void testOwnCloudConnect();
|
void testOwnCloudConnect();
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class ProxyAuthDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ProxyAuthDialog(QWidget *parent = 0);
|
explicit ProxyAuthDialog(QWidget *parent = nullptr);
|
||||||
~ProxyAuthDialog();
|
~ProxyAuthDialog();
|
||||||
|
|
||||||
void setProxyAddress(const QString &address);
|
void setProxyAddress(const QString &address);
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ void ProxyAuthHandler::handleProxyAuthenticationRequired(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find the responsible QNAM if possible.
|
// Find the responsible QNAM if possible.
|
||||||
QNetworkAccessManager *sending_qnam = 0;
|
QNetworkAccessManager *sending_qnam = nullptr;
|
||||||
QWeakPointer<QNetworkAccessManager> qnam_alive;
|
QWeakPointer<QNetworkAccessManager> qnam_alive;
|
||||||
if (Account *account = qobject_cast<Account *>(sender())) {
|
if (Account *account = qobject_cast<Account *>(sender())) {
|
||||||
// Since we go into an event loop, it's possible for the account's qnam
|
// Since we go into an event loop, it's possible for the account's qnam
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user