1
0
mirror of https://github.com/chylex/Nextcloud-Desktop.git synced 2026-04-04 12:11:33 +02:00

Compare commits

...

205 Commits

Author SHA1 Message Date
allexzander
3842d306f9 Merge pull request #2939 from nextcloud/bump_to_3.1.3
Bump release to 3.1.3
2021-02-18 12:33:45 +02:00
allexzander
bd675e0b35 Bump release to 3.1.3
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-02-18 12:25:39 +02:00
Nextcloud bot
2ec4220200 [tx-robot] updated from transifex 2021-02-18 03:51:55 +00:00
Nextcloud bot
c54c2069c7 [tx-robot] updated from transifex 2021-02-17 03:45:40 +00:00
Nextcloud bot
dbf8528bbd [tx-robot] updated from transifex 2021-02-16 03:47:08 +00:00
Nextcloud bot
5bd80e8212 [tx-robot] updated from transifex 2021-02-15 03:42:58 +00:00
Nextcloud bot
59efcf17a1 [tx-robot] updated from transifex 2021-02-14 03:40:51 +00:00
Nextcloud bot
1d939529e7 [tx-robot] updated from transifex 2021-02-13 03:43:13 +00:00
Kevin Ottens
b1ddd0e491 Merge pull request #2926 from nextcloud/backport/2919/stable-3.1
[stable-3.1] Validate the providers ssl certificate
2021-02-12 11:05:19 +01:00
Felix Weilbach
142180c0e2 Validate the providers ssl certificate
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-02-12 09:51:29 +00:00
Nextcloud bot
c68975a90f [tx-robot] updated from transifex 2021-02-12 03:43:48 +00:00
Nextcloud bot
baed317b35 [tx-robot] updated from transifex 2021-02-11 03:43:26 +00:00
allexzander
cba745baca Merge pull request #2920 from nextcloud/backport/2906/stable-3.1
[stable-3.1] Validate sensitive URLs to onle allow http(s) schemes.
2021-02-10 14:22:02 +02:00
allexzander
856819a8ac Validate sensitive URLs to onle allow http(s) schemes.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-02-10 11:47:56 +01:00
allexzander
c95436d3c4 Default parameter nullptr widget for openBrowser.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-02-10 11:21:41 +01:00
Nextcloud bot
5173ac5225 [tx-robot] updated from transifex 2021-02-10 03:50:24 +00:00
Nextcloud bot
f8766d16d3 [tx-robot] updated from transifex 2021-02-09 03:43:34 +00:00
Nextcloud bot
e13fe74c64 [tx-robot] updated from transifex 2021-02-08 03:43:41 +00:00
Nextcloud bot
db4fa094d3 [tx-robot] updated from transifex 2021-02-07 03:44:35 +00:00
Nextcloud bot
0ac35a191e [tx-robot] updated from transifex 2021-02-06 03:47:16 +00:00
Nextcloud bot
951d9c9d18 [tx-robot] updated from transifex 2021-02-05 03:47:25 +00:00
Nextcloud bot
2d730f791a [tx-robot] updated from transifex 2021-02-04 03:42:40 +00:00
Nextcloud bot
96e8bae53d [tx-robot] updated from transifex 2021-02-03 03:57:54 +00:00
Nextcloud bot
81f20e26e3 [tx-robot] updated from transifex 2021-02-02 03:39:47 +00:00
Nextcloud bot
d5ac7f84de [tx-robot] updated from transifex 2021-02-01 03:45:58 +00:00
Nextcloud bot
1f3b198963 [tx-robot] updated from transifex 2021-01-31 03:42:50 +00:00
Nextcloud bot
f7322636bc [tx-robot] updated from transifex 2021-01-30 03:49:57 +00:00
Nextcloud bot
9a2485935b [tx-robot] updated from transifex 2021-01-29 03:48:41 +00:00
István Váradi
f537902933 Merge pull request #2884 from nextcloud/backport/2759/stable-3.1
[stable-3.1] Add support for Hirsute
2021-01-28 20:05:46 +01:00
István Váradi
4301fb48b1 Add support for Hirsute
Signed-off-by: István Váradi <ivaradi@varadiistvan.hu>
2021-01-28 18:52:13 +00:00
Kevin Ottens
9398260fb3 Merge pull request #2880 from nextcloud/bump_to_3.1.2
Bump release to 3.1.2
2021-01-28 09:27:09 +01:00
Kevin Ottens
ef3922a899 Bump release to 3.1.2
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-28 08:07:49 +01:00
Nextcloud bot
6bb3db0546 [tx-robot] updated from transifex 2021-01-28 03:58:34 +00:00
Kevin Ottens
71633e78bb Merge pull request #2878 from nextcloud/backport/2872/stable-3.1
[stable-3.1] Use push notifications for Tray activities/notifications fetch trigger.
2021-01-27 19:34:36 +01:00
allexzander
1d3bc4e961 Use push notifications for Tray activities/notifications fetch trigger.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-01-27 18:19:32 +00:00
Kevin Ottens
9f2190bad3 Merge pull request #2871 from nextcloud/backport/2867/stable-3.1
[stable-3.1] Start file conflict resolve dialog asynchronous
2021-01-27 09:22:35 +01:00
Felix Weilbach
aa6615ace6 Start file conflict resolve dialog asynchronous
Fixes #2804

Signed-off-by: Felix Weilbach <felix.weilbach@t-online.de>
2021-01-27 08:11:34 +00:00
Nextcloud bot
6599a93f78 [tx-robot] updated from transifex 2021-01-27 03:46:29 +00:00
Nextcloud bot
044a5ba2c2 [tx-robot] updated from transifex 2021-01-26 03:44:42 +00:00
Felix Weilbach
9eb5bd0192 Merge pull request #2866 from nextcloud/backport/2814/stable-3.1
[stable-3.1] Add push notifications for file changes
2021-01-25 09:48:29 -08:00
Felix Weilbach
38d7e1e98f Add push notifications for file changes
Resolves #2802

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-01-25 18:25:55 +01:00
Nextcloud bot
6eea1322bf [tx-robot] updated from transifex 2021-01-25 03:43:14 +00:00
Nextcloud bot
51d9a9a8ae [tx-robot] updated from transifex 2021-01-24 03:41:07 +00:00
Nextcloud bot
ea14b99d04 [tx-robot] updated from transifex 2021-01-22 03:46:51 +00:00
Kevin Ottens
c94a535e9c Merge pull request #2849 from nextcloud/backport/2845/stable-3.1
[stable-3.1] Default to colored systray on linux
2021-01-21 08:13:37 +01:00
Kevin Ottens
167236b43d Fix the branding detection for monochrome icons on Mac
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-21 07:02:47 +00:00
Kevin Ottens
c89b6b8094 Revert "Make monochrome icons the default on Linux and Mac OS."
This reverts commit 016410dbaa.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-21 07:02:47 +00:00
Nextcloud bot
a18cdf1d12 [tx-robot] updated from transifex 2021-01-21 03:45:52 +00:00
Kevin Ottens
540eed0526 Merge pull request #2846 from nextcloud/backport/2844/stable-3.1
[stable-3.1] Handle SVG branded clients
2021-01-20 16:16:33 +01:00
Kevin Ottens
00fc4807f7 Use APPLICATION_ICON_SET for themed icons
We now favor APPLICATION_ICON_SET to isBranded() regarding the decision
to use PNG or SVG for icons.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-20 15:08:49 +00:00
Kevin Ottens
0b43451008 Use the SVG wizard logo when APPLICATION_ICON_SET says so
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-20 15:08:49 +00:00
Kevin Ottens
4b64603ee3 Add the APPLICATION_ICON_SET option
Also mention the svg possibly used in the wizard

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-20 15:08:49 +00:00
Kevin Ottens
d5966eb385 Reference the wizard_logo.svg file from the resources
Somehow this was missing

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2021-01-20 15:08:48 +00:00
Nextcloud bot
ece0557e43 [tx-robot] updated from transifex 2021-01-20 03:46:08 +00:00
Nextcloud bot
09be96e799 [tx-robot] updated from transifex 2021-01-19 03:44:21 +00:00
Nextcloud bot
39edbd3dd9 [tx-robot] updated from transifex 2021-01-18 03:43:20 +00:00
Nextcloud bot
a98e4fa394 [tx-robot] updated from transifex 2021-01-17 03:42:48 +00:00
Nextcloud bot
2ec4e77e8a [tx-robot] updated from transifex 2021-01-16 03:41:13 +00:00
Nextcloud bot
5b911bfec9 [tx-robot] updated from transifex 2021-01-15 03:48:37 +00:00
Nextcloud bot
e3f9ba1da3 [tx-robot] updated from transifex 2021-01-14 03:46:20 +00:00
Nextcloud bot
111627cd1f [tx-robot] updated from transifex 2021-01-13 03:51:05 +00:00
Nextcloud bot
2e37ab9861 [tx-robot] updated from transifex 2021-01-12 03:47:25 +00:00
Nextcloud bot
d14ab98746 [tx-robot] updated from transifex 2021-01-10 04:01:50 +00:00
Nextcloud bot
cd7dfe81f8 [tx-robot] updated from transifex 2021-01-09 03:57:53 +00:00
Nextcloud bot
f2a8fc46a6 [tx-robot] updated from transifex 2021-01-08 04:01:21 +00:00
Nextcloud bot
75d60213eb [tx-robot] updated from transifex 2021-01-07 03:56:58 +00:00
Nextcloud bot
44dfd9cfda [tx-robot] updated from transifex 2021-01-06 03:56:46 +00:00
Nextcloud bot
7bea176e6f [tx-robot] updated from transifex 2021-01-05 03:52:30 +00:00
Nextcloud bot
8938d5dd0e [tx-robot] updated from transifex 2021-01-04 03:53:57 +00:00
Nextcloud bot
42911da98a [tx-robot] updated from transifex 2021-01-03 03:54:23 +00:00
Nextcloud bot
1cb6145c5d [tx-robot] updated from transifex 2021-01-02 03:51:57 +00:00
Nextcloud bot
d8efb20881 [tx-robot] updated from transifex 2021-01-01 03:52:03 +00:00
Nextcloud bot
5abe4a2c51 [tx-robot] updated from transifex 2020-12-31 04:00:46 +00:00
Nextcloud bot
c7fd312f5c [tx-robot] updated from transifex 2020-12-30 03:47:56 +00:00
Nextcloud bot
dc4ea211da [tx-robot] updated from transifex 2020-12-29 03:47:56 +00:00
Nextcloud bot
be332aa4dd [tx-robot] updated from transifex 2020-12-28 03:45:12 +00:00
Nextcloud bot
db5bfdc4c8 [tx-robot] updated from transifex 2020-12-27 03:51:03 +00:00
Nextcloud bot
aa0632f375 [tx-robot] updated from transifex 2020-12-26 03:44:56 +00:00
Nextcloud bot
be38b10055 [tx-robot] updated from transifex 2020-12-25 03:44:25 +00:00
Nextcloud bot
da54720aec [tx-robot] updated from transifex 2020-12-24 03:45:48 +00:00
Nextcloud bot
83331e5336 [tx-robot] updated from transifex 2020-12-23 03:46:01 +00:00
Kevin Ottens
75c329f4ff Merge pull request #2761 from nextcloud/bump_to_3.1.1
Bump release to 3.1.1
2020-12-22 10:54:32 +01:00
Kevin Ottens
b69c047be1 Bump release to 3.1.1
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-22 10:44:45 +01:00
Nextcloud bot
f0292b15a0 [tx-robot] updated from transifex 2020-12-22 03:47:02 +00:00
Kevin Ottens
e1b0e3474f Merge pull request #2753 from nextcloud/backport/2739/stable-3.1
[stable-3.1] Fixed the autostart for AppImages. See #2504.
2020-12-21 12:15:54 +01:00
Hannah Rittich
98077abfba Fixed the autostart for AppImages. See #2504.
Signed-off-by: Hannah Rittich <hrittich@users.noreply.github.com>
2020-12-21 11:08:29 +00:00
Nextcloud bot
1d265c791b [tx-robot] updated from transifex 2020-12-21 03:44:58 +00:00
Nextcloud bot
f93829afd7 [tx-robot] updated from transifex 2020-12-20 03:47:21 +00:00
Nextcloud bot
68bc4367d2 [tx-robot] updated from transifex 2020-12-19 03:45:53 +00:00
Nextcloud bot
1ead3608f0 [tx-robot] updated from transifex 2020-12-18 03:47:04 +00:00
Kevin Ottens
48dcd9c8f0 Merge pull request #2730 from nextcloud/backport/2725/stable-3.1
[stable-3.1] Make monochrome icons the default on Linux and Mac OS.
2020-12-17 11:00:24 +01:00
Camila
7688d5f607 Make monochrome icons the default on Linux and Mac OS.
Unless it is branded with other icons.

Signed-off-by: Camila <hello@camila.codes>
2020-12-17 07:03:54 +00:00
Nextcloud bot
7957b1b6b7 [tx-robot] updated from transifex 2020-12-17 03:45:10 +00:00
Nextcloud bot
f3957ba72b [tx-robot] updated from transifex 2020-12-16 03:47:14 +00:00
Camila
b391d88ed4 Merge pull request #2717 from nextcloud/backport/2714/stable-3.1
[stable-3.1] Ensure a sync happens after a conflict resolution
2020-12-15 11:18:31 +01:00
Kevin Ottens
9774b6a429 Ensure a sync happens after a conflict resolution
You'd expect that after a conflict resolution the file watcher would
pick up the change and trigger a sync. For some reason it doesn't seem
to happen on at least some Ubuntu systems. In such cases the user would
then still have a stale conflict entry in the activity list and wouldn't
be able to do anything with it.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 10:04:15 +00:00
Camila
2e216c8f29 Merge pull request #2715 from nextcloud/backport/2713/stable-3.1
[stable-3.1] UserModel: check indices are inside the user list
2020-12-15 11:03:12 +01:00
Kevin Ottens
8997d5ced9 UserModel: check indices are inside the user list
The model was just checking for the user list being empty or not which
is overly optimistic. Indeed there might be cases where the id is
actually outside the boundaries so properly check for this.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 09:51:38 +00:00
Camila
c85d12425d Merge pull request #2716 from nextcloud/backport/2698/stable-3.1
[stable-3.1] Use the icon color property to color the icons in the tray window header.
2020-12-15 10:50:34 +01:00
Camila
3fa796e11e Use the icon color property to color the icons in the tray window header.
The icon color is set with APPLICATION_WIZARD_HEADER_TITLE_COLOR in the
theme.

Signed-off-by: Camila <hello@camila.codes>
2020-12-15 09:44:51 +00:00
Nextcloud bot
583c4960d8 [tx-robot] updated from transifex 2020-12-15 03:47:30 +00:00
Kevin Ottens
6a94f0deef Merge pull request #2709 from nextcloud/backport/2708/stable-3.1
[stable-3.1] Have the new account wizard open again
2020-12-14 16:38:24 +01:00
Kevin Ottens
3c9e065170 Have the new account wizard open again
UserModel can't be connected to AccountSettings if the settings dialog
doesn't exist. This is the case now since we delay the creation of that
dialog and free it after use.

Instead it should be properly channeled through the Systray object all
the way up to OwncloudGui which knows how to handle this properly.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-14 15:29:24 +00:00
Nextcloud bot
a0719b782b [tx-robot] updated from transifex 2020-12-14 03:47:59 +00:00
Nextcloud bot
6caff18d7c [tx-robot] updated from transifex 2020-12-13 03:43:55 +00:00
Nextcloud bot
9114419d8e [tx-robot] updated from transifex 2020-12-12 03:46:15 +00:00
Nextcloud bot
3991350c47 [tx-robot] updated from transifex 2020-12-11 03:44:45 +00:00
Kevin Ottens
7f4ffd0f72 Merge pull request #2696 from nextcloud/v.3.1.0
Bump master version to 3.1.0
2020-12-10 12:16:47 +01:00
allexzander
e6b06d0a6b Bump master version to 3.1.0
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-12-10 12:47:51 +02:00
Nextcloud bot
e160788204 [tx-robot] updated from transifex 2020-12-10 03:53:56 +00:00
Nextcloud bot
f5d4ac518f [tx-robot] updated from transifex 2020-12-09 03:44:40 +00:00
allexzander
31d3ce7663 Merge pull request #2685 from nextcloud/fix-slow-sharee-search-in-dialog
Fixed slow sharee search in the share dialog
2020-12-08 15:56:29 +02:00
allexzander
9266ecc2e8 Fixed slow sharee search in the share dialog
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-12-08 13:48:43 +00:00
allexzander
14105d4ec6 Merge pull request #2686 from nextcloud/add-email-sharing
Added sharing via email.
2020-12-08 15:24:08 +02:00
allexzander
6e8658dc2c Added sharing via email.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-12-08 11:08:45 +02:00
Nextcloud bot
1d7b7c26d3 [tx-robot] updated from transifex 2020-12-08 03:48:38 +00:00
Kevin Ottens
b2dfa29325 Merge pull request #2690 from nextcloud/update-documentation
Update documentation on how to generate debug logs.
2020-12-07 16:22:37 +01:00
Camila
09c2279bb5 Update documentation on how to generate debug logs.
Minor change: bypasses => bypass.

Signed-off-by: Camila <hello@camila.codes>
2020-12-07 14:52:51 +01:00
Nextcloud bot
4886525e08 [tx-robot] updated from transifex 2020-12-07 03:48:13 +00:00
Nextcloud bot
f2fd083898 [tx-robot] updated from transifex 2020-12-06 03:43:57 +00:00
Nextcloud bot
8a2eb71c4f [tx-robot] updated from transifex 2020-12-04 03:45:51 +00:00
Kevin Ottens
8e29935195 Merge pull request #2682 from nextcloud/debug-skip
Add debug log to check which folders are being skipped during syncing.
2020-12-03 12:37:38 +01:00
Camila
5517ff2c02 Add debug log to check which folders are being skipped during syncing.
Signed-off-by: Camila <hello@camila.codes>
2020-12-03 12:24:25 +01:00
Nextcloud bot
bd959018a1 [tx-robot] updated from transifex 2020-12-03 03:45:56 +00:00
Camila
a527e85fe6 Merge pull request #2666 from nextcloud/notification_actions_bring_back_from_version_2
Notification action buttons and context menu
2020-12-02 15:42:32 +01:00
allexzander
f04281cb69 Implemented notification action buttons and context menu for confirm/dismiss and other actions.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-12-02 08:08:37 +00:00
Kevin Ottens
7721832ee0 Merge pull request #2677 from briankendall/fix-tray-window-spaces-bug
Fix macOS bug where tray window causes spaces to switch
2020-12-02 08:23:19 +01:00
Brian Kendall
f9991e180c Fix macOS bug where tray window causes spaces to switch
Signed-off-by: Brian Kendall <brian@briankendall.net>
2020-12-02 06:54:16 +00:00
Nextcloud bot
bc38c0ba3f [tx-robot] updated from transifex 2020-12-02 03:46:16 +00:00
Nextcloud bot
9ff8d97647 [tx-robot] updated from transifex 2020-12-01 03:45:58 +00:00
István Váradi
62bf777cda Merge pull request #2652 from ivaradi/debian-version-discrepancy
Handle the case when the release version differs from that in VERSION.cmake
2020-11-30 16:46:20 +01:00
István Váradi
3d9d5f2fe7 Handle the case when the release version differs from that in VERSION.cmake
Signed-off-by: István Váradi <ivaradi@varadiistvan.hu>
2020-11-30 15:33:34 +01:00
allexzander
57e1f2ac07 Merge pull request #2675 from nextcloud/fix-appimage-build
fix AppImage build
2020-11-30 14:20:30 +02:00
allexzander
0fdb423fe0 fix AppImage build by using v0.10.0 for qtkeychain
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-11-30 13:41:12 +02:00
Nextcloud bot
7bfd8ea23c [tx-robot] updated from transifex 2020-11-30 03:43:17 +00:00
Nextcloud bot
57a4cd926d [tx-robot] updated from transifex 2020-11-29 03:42:10 +00:00
Nextcloud bot
de4edb6099 [tx-robot] updated from transifex 2020-11-28 03:39:34 +00:00
Nextcloud bot
70dbbbeaa4 [tx-robot] updated from transifex 2020-11-27 03:40:43 +00:00
Camila
9614d051a5 Merge pull request #2667 from nextcloud/version-bump
Master is now 3.0.82.
2020-11-26 13:08:20 +01:00
Camila
8d1fe8ed3c Master is now 3.0.82.
Signed-off-by: Camila <hello@camila.codes>
2020-11-26 12:52:55 +01:00
Camila
4d133ba9a5 Merge pull request #2540 from nextcloud/fix-issue-1458
Add last / to exclude list file path.
2020-11-26 12:51:53 +01:00
Camila
bdd3465e7b Check if there are patterns associated with a sync exclude file.
The previous check didn't take into the account that .sync-exclude.lst
might be empty which would crash at Q_ASSERT(_allExcludes.contains(basePath))
in the prepare function. It also takes into account that
_allExcludes[basePath] was creating new items in the list.

Signed-off-by: Camila <hello@camila.codes>
2020-11-26 12:12:04 +01:00
Camila
998e93ac13 Add last / to exclude list file path.
This Q_ASSERT(this->endsWith('/')) in BasePathByteArray was the reason
for bug report #1458.

Signed-off-by: Camila <hello@camila.codes>
2020-11-26 12:11:57 +01:00
Nextcloud bot
820ab12561 [tx-robot] updated from transifex 2020-11-26 03:45:21 +00:00
Kevin Ottens
c38189e981 Merge pull request #2665 from nextcloud/sparkle_build_fixes
Sparkle build fixes
2020-11-25 18:00:34 +01:00
Dominik Schmidt
a50c665051 Simplify Sparkle handling in CMake 2020-11-25 09:43:59 +01:00
Chih-Hsuan Yen
6962cbf582 Fix build without Sparkle.framework
(PR #6567)
2020-11-25 09:40:20 +01:00
Christian Kamm
60d3696ccd Settings: Add warning when switching update channel 2020-11-25 09:39:16 +01:00
Nextcloud bot
c4987aa641 [tx-robot] updated from transifex 2020-11-25 03:42:43 +00:00
Camila
104d3c0661 Merge pull request #2647 from nextcloud/cherry_pick_updater_fixes_and_improvements
Cherry pick updater fixes and improvements
2020-11-24 20:58:26 +01:00
Kevin Ottens
4906353f2e Please the clang-tidy overlord
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-11-24 18:22:33 +00:00
Hannah von Reth
038644f378 Don't scare users with critical parser log messages 2020-11-24 18:22:33 +00:00
Hannah von Reth
d30cd0f0fd Include architecture in updater query
Fixes: #8074
2020-11-24 18:22:33 +00:00
Hannah von Reth
c76095859a Cleanup stirngs 2020-11-24 18:22:33 +00:00
Olivier Goffart
a7f010c370 Updater: Fix crash when there is an XML error
The problem was accessing the lines with an off by one error, while printing
the log.

Other problem included the fact that QDebug added spaces, quotes, and other
things which made the error lot look right in the console.

Issue #7545
2020-11-24 18:22:33 +00:00
Olivier Goffart
1bf895cadc Updater: Fix Version numer not shown in the user visible string
There was one argument too many in the string.
Bug was introduced in commit 21ac396b

Issue: #7288
2020-11-24 18:22:33 +00:00
Christian Kamm
c58f00abc7 Updater: Improved logging output #7388 2020-11-24 18:22:33 +00:00
Hannah von Reth
1df3f5b6df NSISUpdater: Improve logging for version comparison 2020-11-24 18:22:33 +00:00
Hannah von Reth
1aca005267 Updater: Log parsing issues in autoupdatLog parsing issues in autoupdatee 2020-11-24 18:22:33 +00:00
Markus Goetz
9a375211d7 Autoupdater: Log the URL #3475 2020-11-24 18:22:33 +00:00
Christian Kamm
d2991210c5 Updater: Preserve target version string
For #7217
2020-11-24 18:22:33 +00:00
Christian Kamm
aa7409f401 Updater: Make "Update manually" not also "skip this version"
See #7217
2020-11-24 18:22:33 +00:00
Christian Kamm
0b3512f49c WinUpdater: More useful options on update failure #7217
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-11-24 18:22:33 +00:00
Olivier Goffart
9596eb7f20 Updater: show the human readable version in the settings
The xml looks like this:

   <version>2.5.0.328</version>
   <versionstring>ownCloud Client 2.5.0 alpha1 (build 238)</versionstring>

And we should show the version string

Issue #6602
2020-11-24 18:22:33 +00:00
Olivier Goffart
f2c3ef741b Updater: remove unused function 2020-11-24 18:22:33 +00:00
Dominik Schmidt
ae38b88d1c Remove unused installers before copying new ones into the appdata dir 2020-11-24 18:22:33 +00:00
Olivier Goffart
e93972824d MSI: Fix crash in the auto updater
'auto' here is a QStringBuilder referencing a temporary

Ammend commit 150d4f5935
(MSI: Always with logfile #6609)

Found in the crash reporter:
https://sentry.io/owncloud/desktop-win-and-mac/issues/623245771/
2020-11-24 18:22:33 +00:00
Markus Goetz
5e518419de MSI: Always with logfile #6609 2020-11-24 18:22:33 +00:00
Dominik Schmidt
d069fda9ab Extract filename of updateFile without leading slash 2020-11-24 18:22:33 +00:00
Dominik Schmidt
dfac8c0e59 Escape msi and owncloud.exe path (who knows...) 2020-11-24 18:22:33 +00:00
Dominik Schmidt
ed0dc68db2 Run msi properly and restart client after update 2020-11-24 18:22:33 +00:00
Dominik Schmidt
08b5981fb6 Implement basic .msi support in updater 2020-11-24 18:22:33 +00:00
Markus Goetz
412e43b696 Updater: Comments 2020-11-24 18:22:33 +00:00
Christian Kamm
4b39731c27 Updater: Make sparkle updater respect release channel 2020-11-24 18:22:33 +00:00
Markus Goetz
311e3a3bd8 Auto Updater: Show UI element also on macOS
(cherry picked from commit dfdc2e1e87f99d387a042f4983c999fbb7fcf3d9)
2020-11-24 18:22:33 +00:00
Christian Kamm
a8ad946758 Settings: Add update channel combobox #6259 2020-11-24 18:22:33 +00:00
Markus Goetz
65035d1990 Sparkle: Delegate calls work now with 1.18.1 (maybe even before)
We can extend on this to give UI feedback.
2020-11-24 18:22:33 +00:00
Camila
c24b81c081 Merge pull request #2660 from nextcloud/folder-watcher
FolderWatcher: fixes and improvements
2020-11-24 19:19:08 +01:00
Christian Kamm
08014b6dc3 FolderWatcher: Disable test on OSX #7305 2020-11-24 16:56:49 +00:00
Olivier Goffart
5a432a193f FolderWatcher: Usage of QTime for elapsed time is deprecated 2020-11-24 16:56:49 +00:00
Christian Kamm
28e4fc54a1 FolderWatcher: Wait for ready before testing #7305 2020-11-24 16:56:49 +00:00
Christian Kamm
e97fc430bf FolderWatcher: Become unreliable if test notification fails #7241
Necessary for some filesystems on windows that don't have full file
watching capabilities.
2020-11-24 16:56:49 +00:00
Christian Kamm
74382ddcc0 FolderWatcher linux: Make automatically recursive #7068
Previously it depended on addFolder() / removeFolder() calls to adjust
watchers when new folders were added or removed. There also needed to be
complex move handling.

Now, any folder creation/move-in notifications automatically trigger
watcher additions and folder deletion/move-out triggers removal.
2020-11-24 16:56:49 +00:00
Christian Kamm
21b931dc6b FolderWatcher: Always notify about conflict files #7073
This makes sure that the conflict list can be updated if a user resolves
a conflict by deleting the local conflict file. Previously one had to
wait for the next sync run.
2020-11-24 16:56:49 +00:00
Christian Kamm
351bada552 Folderwatcher: On linux, fix paths after dir renames #6808
If a folder was renamed A -> B, the folder watcher for the inode
would be unaware and still report changes for A/foo. Now directory
renames in the watched folders are tracked and paths are updated
accordingly.
2020-11-24 16:56:49 +00:00
allexzander
fe29290564 Merge pull request #2663 from nextcloud/fix-windows-compilation
Fix Windows compilation broken after QML debugging fix.
2020-11-24 18:34:04 +02:00
allexzander
29ca1404cc Fix Windows compilation broken after QML debugging fix.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-11-24 16:50:16 +02:00
allexzander
d4c14f8f4f Merge pull request #2662 from nextcloud/fix-qml-debugging
Fix QML debugging by removing incorrect dependency
2020-11-24 16:24:17 +02:00
allexzander
92733e9069 Fix QML debugging by removing incorrect dependency
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-11-24 15:19:17 +02:00
Nextcloud bot
2aa3d17e5c [tx-robot] updated from transifex 2020-11-24 03:41:57 +00:00
Kevin Ottens
7cf3f14f78 Merge pull request #2658 from nextcloud/enable_qml_debugger_on_debug_builds
Enable the QML debugger on debug builds
2020-11-23 18:59:52 +01:00
Kevin Ottens
922b322337 Enable the QML debugger on debug builds
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-11-23 17:39:50 +00:00
allexzander
f530758f78 Merge pull request #2655 from nextcloud/use-dinamyc-path-for-account-state-icons
Use dynamic path for account online/offline state icon. Refresh GUI on connection state change.
2020-11-23 18:01:13 +02:00
allexzander
665a8c4217 Use dynamic path for account online/offline state icon. Refresh GUI on connection state change.
Signed-off-by: Alex Zolotov <alex.zolotov.nextcloud.com>
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-11-23 17:49:25 +02:00
Nextcloud bot
10cb0a71eb [tx-robot] updated from transifex 2020-11-23 03:38:35 +00:00
Nextcloud bot
e6ea3878a9 [tx-robot] updated from transifex 2020-11-21 03:44:21 +00:00
Nextcloud bot
8faa103ebf [tx-robot] updated from transifex 2020-11-20 03:43:18 +00:00
Nextcloud bot
d0004230b9 [tx-robot] updated from transifex 2020-11-19 03:43:51 +00:00
Kevin Ottens
44f2bc24ff Merge pull request #2648 from nextcloud/debian_packages_should_not_block_ci
Issue a warning for Debian pipeline failures but don't fail the CI
2020-11-18 16:32:29 +01:00
Kevin Ottens
6f25840ec9 Issue a warning for Debian pipeline failures but don't fail the CI
Since this fails every time we bump the version number and takes time to
catch up while failing every following PRs, let's prevent this pipeline
from failing the CI.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-11-18 16:05:19 +01:00
Nextcloud bot
1950efcfff [tx-robot] updated from transifex 2020-11-18 03:41:49 +00:00
Nextcloud bot
d026aa9301 [tx-robot] updated from transifex 2020-11-16 03:43:48 +00:00
Nextcloud bot
0d7865e6f8 [tx-robot] updated from transifex 2020-11-15 03:41:36 +00:00
Nextcloud bot
fa1f20ca8e [tx-robot] updated from transifex 2020-11-14 03:44:00 +00:00
Nextcloud bot
771bac2279 [tx-robot] updated from transifex 2020-11-13 03:43:12 +00:00
202 changed files with 78580 additions and 41986 deletions

View File

@@ -122,7 +122,7 @@ steps:
- name: build
image: nextcloudci/client-debian-ci:client-debian-ci-2
commands:
- /bin/bash -c "./admin/linux/debian/drone-build.sh"
- /bin/bash -c "./admin/linux/debian/drone-build.sh" || echo "[WARNING] Debian build failed but this is a non-blocking CI event"
environment:
DEBIAN_SECRET_KEY:
from_secret: DEBIAN_SECRET_KEY

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,197 +8,20 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# Translations
# Translations
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# 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[de_DE]=@APPLICATION_ICON_NAME@
Name[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
Comment[de_DE]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
GenericName[de_DE]=Ordnersynchronisierung
Icon[de]=@APPLICATION_ICON_NAME@
Name[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
Comment[de]=@APPLICATION_NAME@ Client zur Desktop-Synchronisierung
GenericName[de]=Ordner-Synchronisation

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,196 +8,20 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations
Icon[es_DO]=@APPLICATION_ICON_NAME@
Name[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
Comment[es_DO]=@APPLICATION_NAME@ Cliente de sincronización de escritorio
GenericName[es_DO]=Sincronización de carpeta

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,196 +8,20 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations
Icon[ko]=@APPLICATION_ICON_NAME@
Name[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
Comment[ko]=@APPLICATION_NAME@ 데스크톱 동기화 클라이언트
GenericName[ko]=폴더 동기화

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -0,0 +1,27 @@
[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
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# Translations
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations
Icon[sc]=@NÙMENE_ICONA_APLICATZIONE@
Name[sc]=@NÙMENE_APLICATZIONE@ cliente sicronizadore de iscrivania
Comment[sc]=@NÙMENE_APLICATZIONE@ cliente de sincronizatzione iscrivania
GenericName[sc]=Sincronizadore de cartellas

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -0,0 +1,27 @@
[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
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# Translations
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations
Icon[zh_HK]=@APPLICATION_ICON_NAME@
Name[zh_HK]= @APPLICATION_NAME@ 桌面同步客戶端
Comment[zh_HK]= @APPLICATION_NAME@ 桌面同步客戶端
GenericName[zh_HK]=資料夾同步

View File

@@ -8,193 +8,16 @@ GenericName=Folder Sync
Icon=@APPLICATION_ICON_NAME@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;
X-GNOME-Autostart-Delay=3
# Translations
MimeType=application/vnd.@APPLICATION_EXECUTABLE@;
Actions=Quit;
# 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
[Desktop Action Quit]
Exec=@APPLICATION_EXECUTABLE@ --quit
Name=Quit @APPLICATION_NAME@
Icon=@APPLICATION_EXECUTABLE@
# Translations

View File

@@ -6,6 +6,7 @@ set( APPLICATION_VENDOR "Nextcloud GmbH" )
set( APPLICATION_UPDATE_URL "https://updates.nextcloud.org/client/" CACHE STRING "URL for updater" )
set( APPLICATION_HELP_URL "" CACHE STRING "URL for the help menu" )
set( APPLICATION_ICON_NAME "Nextcloud" )
set( APPLICATION_ICON_SET "SVG" )
set( APPLICATION_SERVER_URL "" CACHE STRING "URL for the server to use. If entered, the UI field will be pre-filled with it" )
set( APPLICATION_SERVER_URL_ENFORCE ON ) # If set and APPLICATION_SERVER_URL is defined, the server can only connect to the pre-defined URL
set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" )
@@ -34,7 +35,7 @@ option( WITH_PROVIDERS "Build with providers list" ON )
## Theming options
set( APPLICATION_WIZARD_HEADER_BACKGROUND_COLOR "#0082c9" CACHE STRING "Hex color of the wizard header background")
set( APPLICATION_WIZARD_HEADER_TITLE_COLOR "#ffffff" CACHE STRING "Hex color of the text in the wizard header")
option( APPLICATION_WIZARD_USE_CUSTOM_LOGO "Use the logo from ':/client/theme/colored/wizard_logo.png' else the default application icon is used" ON )
option( APPLICATION_WIZARD_USE_CUSTOM_LOGO "Use the logo from ':/client/theme/colored/wizard_logo.(png|svg)' else the default application icon is used" ON )
#

View File

@@ -1,6 +1,6 @@
set( MIRALL_VERSION_MAJOR 3 )
set( MIRALL_VERSION_MINOR 0 )
set( MIRALL_VERSION_PATCH 81 )
set( MIRALL_VERSION_MINOR 1 )
set( MIRALL_VERSION_PATCH 3 )
set( MIRALL_VERSION_YEAR 2020 )
set( MIRALL_SOVERSION 0 )

View File

@@ -21,11 +21,11 @@ if [ $SUFFIX != "master" ]; then
SUFFIX="PR-$SUFFIX"
fi
#QtKeyChain master
#QtKeyChain v0.10.0
cd /build
git clone https://github.com/frankosterfeld/qtkeychain.git
cd qtkeychain
git checkout master
git checkout v0.10.0
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr ../

View File

@@ -15,10 +15,10 @@ OBS_PROJECT_BETA=home:ivaradi:beta
OBS_PACKAGE=nextcloud-desktop
if test "${DRONE_TARGET_BRANCH}" = "stable-2.6"; then
UBUNTU_DISTRIBUTIONS="bionic focal groovy"
UBUNTU_DISTRIBUTIONS="bionic focal groovy hirsute"
DEBIAN_DISTRIBUTIONS="buster stretch testing"
else
UBUNTU_DISTRIBUTIONS="focal groovy"
UBUNTU_DISTRIBUTIONS="focal groovy hirsute"
DEBIAN_DISTRIBUTIONS="testing"
fi
@@ -76,7 +76,7 @@ for distribution in ${UBUNTU_DISTRIBUTIONS} ${DEBIAN_DISTRIBUTIONS}; do
git merge ${DRONE_COMMIT}
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution} ${revdate}
admin/linux/debian/scripts/git2changelog.py /tmp/tmpchangelog ${distribution} ${revdate} ${basever}
cat /tmp/tmpchangelog debian/changelog > debian/changelog.new
mv debian/changelog.new debian/changelog

View File

@@ -31,7 +31,7 @@ def getCommitVersion(commit):
try:
for line in subprocess.check_output(["git", "show",
commit + ":VERSION.cmake"]).splitlines():
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9])+ *\)", line)
m = re.match("set\( MIRALL_VERSION_([A-Z]+) +([0-9]+) *\)", line)
if m is not None:
kind=m.group(1)
version=m.group(2)
@@ -48,7 +48,7 @@ def getCommitVersion(commit):
except:
return None
def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
def collectEntries(baseCommit, baseVersion, kind, finalBaseVersion, finalRevDate, config):
newVersionCommit = None
newVersionTag = None
@@ -89,7 +89,6 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
newVersionOrigTag = lastVersionTag
(baseVersion, _kind) = result
version=getCommitVersion(commit)
if version and version!=lastCMAKEVersion:
tag = "v" + version
@@ -119,6 +118,8 @@ def collectEntries(baseCommit, baseVersion, kind, finalRevDate, config):
revdate = datetime.datetime.now().strftime("%Y%m%d.%H%M%S")+ "." + commit
else:
revdate = finalRevDate
if finalBaseVersion is not None:
baseVersion = finalBaseVersion
entries[-1] = (commit, name, email, date, revdate, subject, baseVersion, kind)
entries.reverse()
@@ -167,8 +168,10 @@ if __name__ == "__main__":
distribution = sys.argv[2]
finalRevDate = sys.argv[3] if len(sys.argv)>3 else None
finalBaseVersion = sys.argv[4] if len(sys.argv)>4 else None
entries = collectEntries(baseCommit, baseVersion, "alpha", finalRevDate, config)
entries = collectEntries(baseCommit, baseVersion, "alpha",
finalBaseVersion, finalRevDate, config)
with open(sys.argv[1], "wt") as f:
(baseVersion, revdate, kind) = genChangeLogEntries(f, entries, distribution)

View File

@@ -2,8 +2,7 @@
#
# Once done this will define
# SPARKLE_FOUND - system has Sparkle
# SPARKLE_INCLUDE_DIR - the Sparkle include directory
# SPARKLE_LIBRARY - The library needed to use Sparkle
# SPARKLE_LIBRARY - The framework needed to use Sparkle
# Copyright (c) 2009, Vittorio Giovara <vittorio.giovara@gmail.com>
#
# Distributed under the OSI-approved BSD License (the "License");
@@ -15,9 +14,8 @@
include(FindPackageHandleStandardArgs)
find_path(SPARKLE_INCLUDE_DIR Sparkle.h)
find_library(SPARKLE_LIBRARY NAMES Sparkle)
find_package_handle_standard_args(Sparkle DEFAULT_MSG SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY)
mark_as_advanced(SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY)
find_package_handle_standard_args(Sparkle DEFAULT_MSG SPARKLE_LIBRARY)
mark_as_advanced(SPARKLE_LIBRARY)

View File

@@ -20,6 +20,7 @@
#cmakedefine APPLICATION_UPDATE_URL "@APPLICATION_UPDATE_URL@"
#cmakedefine APPLICATION_HELP_URL "@APPLICATION_HELP_URL@"
#cmakedefine APPLICATION_ICON_NAME "@APPLICATION_ICON_NAME@"
#cmakedefine APPLICATION_ICON_SET "@APPLICATION_ICON_SET@"
#cmakedefine APPLICATION_SERVER_URL "@APPLICATION_SERVER_URL@"
#cmakedefine APPLICATION_SERVER_URL_ENFORCE "@APPLICATION_SERVER_URL_ENFORCE@"
#cmakedefine LINUX_APPLICATION_ID "@LINUX_APPLICATION_ID@"

View File

@@ -153,10 +153,42 @@ Saving Files Directly
The Nextcloud client enables you to save log files directly to a predefined file
or directory. This is a useful option for troubleshooting sporadic issues as
it enables you to log large amounts of data and bypasses the limited buffer
it enables you to log large amounts of data and bypass the limited buffer
settings associated with the log window.
To save log files to a file or a directory:
To enable logging to a directory, stop the client and add the following to the General section in the configuration file:
```
[General]
logDebug=true
logExpire=<hours>
logDir=<dir>
```
.. note:: Independent of platform you must use slash (/) as a path reparator:
* Correct: C:/Temp
* Not correct: C:\Temp
As an example, to keep log data for two days in a directory called temp:
```
[General]
logDebug=true
logExpire=48
logDir=C:/Temp
```
Once you restart the client, you will find the log file in the ``<dir>`` defined in ``logDir``.
.. note:: You will find the configuration file in the following locations:
* Microsoft Windows systems: ``%APPDATA%\Nextcloud\nextcloud.cfg``
* macOS systems: ``$HOME/Library/Preferences/Nextcloud/nextcloud.cfg``
* Linux distributions: ``$HOME/.config/Nextcloud/nextcloud.cfg``
Alternatively, you can start the client in the command line with parameters:
1. To save to a file, start the client using the ``--logfile <file>`` command,
where ``<file>`` is the filename to which you want to save the file.
@@ -177,21 +209,6 @@ issue the following command:
nextcloud --logdir /tmp/nextcloud_logs --logexpire 48
```
Alternatively, you can add the following to the configuration file:
```
logDebug=true
logExpire=<hours>
logDir=<dir>
```
Once you restart the client, you will find the log file in the ``<dir>`` defined in ``logDir``.
.. note:: You will find the configuration file in the following locations:
* Microsoft Windows systems: ``%APPDATA%\Nextcloud\nextcloud.cfg``
* macOS systems: ``$HOME/Library/Preferences/Nextcloud/nextcloud.cfg``
* Linux distributions: ``$HOME/.config/Nextcloud/nextcloud.cfg``
Nextcloud server Log File
~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -5,5 +5,6 @@
<file>src/gui/tray/HeaderButton.qml</file>
<file>theme/Style/Style.qml</file>
<file>theme/Style/qmldir</file>
<file>src/gui/tray/ActivityActionButton.qml</file>
</qresource>
</RCC>

View File

@@ -30,11 +30,11 @@
#include <QMap>
#include <QUrl>
#include <QUrlQuery>
#include <QtQuick/QQuickImageProvider>
#include <functional>
#include <memory>
#ifdef Q_OS_WIN
#include <QRect>
#include <windows.h>
#endif

View File

@@ -18,6 +18,7 @@
*/
#include <QStandardPaths>
#include <QtGlobal>
namespace OCC {
@@ -71,12 +72,18 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
qCWarning(lcUtility) << "Could not write auto start entry" << desktopFileLocation;
return;
}
// When running inside an AppImage, we need to set the path to the
// AppImage instead of the path to the executable
const QString appImagePath = qEnvironmentVariable("APPIMAGE");
const bool runningInsideAppImage = !appImagePath.isNull() && QFile::exists(appImagePath);
const QString executablePath = runningInsideAppImage ? appImagePath : QCoreApplication::applicationFilePath();
QTextStream ts(&iniFile);
ts.setCodec("UTF-8");
ts << QLatin1String("[Desktop Entry]") << endl
<< QLatin1String("Name=") << guiName << endl
<< QLatin1String("GenericName=") << QLatin1String("File Synchronizer") << endl
<< QLatin1String("Exec=") << QCoreApplication::applicationFilePath() << " --background" << endl
<< QLatin1String("Exec=\"") << executablePath << "\" --background" << endl
<< QLatin1String("Terminal=") << "false" << endl
<< QLatin1String("Icon=") << APPLICATION_ICON_NAME << endl
<< QLatin1String("Categories=") << QLatin1String("Network") << endl

View File

@@ -317,17 +317,20 @@ bool ExcludedFiles::loadExcludeFile(const QByteArray & basePath, const QString &
if (!f.open(QIODevice::ReadOnly))
return false;
QList<QByteArray> patterns;
while (!f.atEnd()) {
QByteArray line = f.readLine().trimmed();
if (line.isEmpty() || line.startsWith('#'))
continue;
csync_exclude_expand_escapes(line);
_allExcludes[basePath].append(line);
patterns.append(line);
}
_allExcludes.insert(basePath, patterns);
// nothing to prepare if the user decided to not exclude anything
if(_allExcludes.size())
if (!_allExcludes.value(basePath).isEmpty()){
prepare(basePath);
}
return true;
}
@@ -411,10 +414,12 @@ CSYNC_EXCLUDE_TYPE ExcludedFiles::traversalPatternMatch(const char *path, ItemTy
// Directories are guaranteed to be visited before their files
if (filetype == ItemTypeDirectory) {
QFileInfo fi = QFileInfo(_localPath + path + "/.sync-exclude.lst");
const auto basePath = QString(_localPath + path + QLatin1Char('/')).toUtf8();
const auto fi = QFileInfo(basePath + QStringLiteral(".sync-exclude.lst"));
if (fi.isReadable()) {
addInTreeExcludeFilePath(fi.absoluteFilePath());
loadExcludeFile(fi.absolutePath().toUtf8(), fi.absoluteFilePath());
loadExcludeFile(basePath, fi.absoluteFilePath());
}
}

View File

@@ -4,6 +4,10 @@ set(CMAKE_AUTOMOC TRUE)
set(CMAKE_AUTOUIC TRUE)
set(CMAKE_AUTORCC TRUE)
if(CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-DQT_QML_DEBUG)
endif()
IF(BUILD_UPDATER)
add_subdirectory(updater)
endif()
@@ -39,6 +43,7 @@ set(client_UI_SRCS
addcertificatedialog.ui
proxyauthdialog.ui
mnemonicdialog.ui
tray/ActivityActionButton.qml
tray/Window.qml
tray/UserLine.qml
wizard/flow2authwidget.ui
@@ -157,9 +162,16 @@ IF( APPLE )
list(APPEND client_SRCS systray.mm)
if(SPARKLE_FOUND AND BUILD_UPDATER)
# Define this, we need to check in updater.cpp
add_definitions( -DHAVE_SPARKLE )
list(APPEND updater_SRCS updater/sparkleupdater_mac.mm)
# Define this, we need to check in updater.cpp
add_definitions(-DHAVE_SPARKLE)
list(APPEND updater_SRCS updater/sparkleupdater_mac.mm updater/sparkleupdater.h)
list(APPEND updater_DEPS ${SPARKLE_LIBRARY})
# Sparkle.framework is installed from here because macdeployqt's CopyFramework breaks on this bundle
# as its logic is tightly tailored around Qt5 frameworks
install(DIRECTORY "${SPARKLE_LIBRARY}"
DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS)
endif()
ENDIF()
@@ -305,7 +317,7 @@ endif()
IF(BUILD_UPDATER)
add_library(updater STATIC ${updater_SRCS})
target_link_libraries(updater ${synclib_NAME} Qt5::Widgets Qt5::Svg Qt5::Network Qt5::Xml)
target_link_libraries(updater ${synclib_NAME} ${updater_DEPS} Qt5::Widgets Qt5::Svg Qt5::Network Qt5::Xml)
target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
endif()

View File

@@ -22,6 +22,7 @@
#include "folderstatusmodel.h"
#include "folderstatusdelegate.h"
#include "common/utility.h"
#include "guiutility.h"
#include "application.h"
#include "configfile.h"
#include "account.h"
@@ -208,9 +209,6 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
_ui->encryptionMessage->hide();
}
connect(UserModel::instance(), &UserModel::addAccount,
this, &AccountSettings::slotOpenAccountWizard);
customizeStyle();
}
@@ -246,17 +244,6 @@ QString AccountSettings::selectedFolderAlias() const
return _model->data(selected, FolderStatusDelegate::FolderAliasRole).toString();
}
void AccountSettings::slotOpenAccountWizard()
{
// We can't call isSystemTrayAvailable with appmenu-qt5 because it breaks the systemtray
// (issue #4693, #4944)
if (qgetenv("QT_QPA_PLATFORMTHEME") == "appmenu-qt5" || QSystemTrayIcon::isSystemTrayAvailable()) {
topLevelWidget()->close();
}
OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), nullptr);
}
void AccountSettings::slotToggleSignInState()
{
if (_accountState->isSignedOut()) {
@@ -719,8 +706,9 @@ void AccountSettings::slotForceSyncCurrentFolder()
void AccountSettings::slotOpenOC()
{
if (_OCUrl.isValid())
QDesktopServices::openUrl(_OCUrl);
if (_OCUrl.isValid()) {
Utility::openBrowser(_OCUrl);
}
}
void AccountSettings::slotUpdateQuota(qint64 total, qint64 used)

View File

@@ -89,7 +89,6 @@ protected slots:
void slotFolderWizardRejected();
void slotDeleteAccount();
void slotToggleSignInState();
void slotOpenAccountWizard();
void refreshSelectiveSyncStatus();
void slotMarkSubfolderEncrypted(const FolderStatusModel::SubFolderInfo* folderInfo);
void slotSubfolderContextMenuRequested(const QModelIndex& idx, const QPoint& point);

View File

@@ -25,6 +25,7 @@
#include "theme.h"
#include "networkjobs.h"
#include "configfile.h"
#include "guiutility.h"
namespace OCC {
@@ -146,7 +147,7 @@ void Flow2Auth::fetchNewToken(const TokenAction action)
{
case actionOpenBrowser:
// Try to open Browser
if (!QDesktopServices::openUrl(authorisationLink())) {
if (!Utility::openBrowser(authorisationLink())) {
// We cannot open the browser, then we claim we don't support Flow2Auth.
// Our UI callee will ask the user to copy and open the link.
emit result(NotSupported);

View File

@@ -22,6 +22,7 @@
#include <QJsonDocument>
#include "theme.h"
#include "networkjobs.h"
#include "guiutility.h"
namespace OCC {
@@ -165,7 +166,7 @@ QUrl OAuth::authorisationLink() const
bool OAuth::openBrowser()
{
if (!QDesktopServices::openUrl(authorisationLink())) {
if (!Utility::openBrowser(authorisationLink())) {
// We cannot open the browser, then we claim we don't support OAuth.
emit result(NotSupported, QString());
return false;

View File

@@ -898,43 +898,6 @@ void Folder::slotItemCompleted(const SyncFileItemPtr &item)
return;
}
// add new directories or remove gone away dirs to the watcher
if (_folderWatcher && item->isDirectory()) {
switch (item->_instruction) {
case CSYNC_INSTRUCTION_NEW:
_folderWatcher->addPath(path() + item->_file);
break;
case CSYNC_INSTRUCTION_REMOVE:
_folderWatcher->removePath(path() + item->_file);
break;
case CSYNC_INSTRUCTION_RENAME:
_folderWatcher->removePath(path() + item->_file);
_folderWatcher->addPath(path() + item->destination());
break;
default:
break;
}
}
// Success and failure of sync items adjust what the next sync is
// supposed to do.
//
// For successes, we want to wipe the file from the list to ensure we don't
// rediscover it even if this overall sync fails.
//
// For failures, we want to add the file to the list so the next sync
// will be able to retry it.
if (item->_status == SyncFileItem::Success
|| item->_status == SyncFileItem::FileIgnored
|| item->_status == SyncFileItem::Restoration
|| item->_status == SyncFileItem::Conflict) {
if (_previousLocalDiscoveryPaths.erase(item->_file.toUtf8()))
qCDebug(lcFolder) << "local discovery: wiped" << item->_file;
} else {
_localDiscoveryPaths.insert(item->_file.toUtf8());
qCDebug(lcFolder) << "local discovery: inserted" << item->_file << "due to sync failure";
}
_syncResult.processCompletedItem(item);
_fileLog->logItem(*item);
@@ -1077,6 +1040,7 @@ void Folder::registerFolderWatcher()
connect(_folderWatcher.data(), &FolderWatcher::becameUnreliable,
this, &Folder::slotWatcherUnreliable);
_folderWatcher->init(path());
_folderWatcher->startNotificatonTest(path() + QLatin1String(".owncloudsync.log"));
}
void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction dir, bool *cancel)

View File

@@ -24,6 +24,7 @@
#include "filesystem.h"
#include "lockwatcher.h"
#include "common/asserts.h"
#include <pushnotifications.h>
#include <syncengine.h>
#ifdef Q_OS_MAC
@@ -77,6 +78,8 @@ FolderMan::FolderMan(QObject *parent)
connect(_lockWatcher.data(), &LockWatcher::fileUnlocked,
this, &FolderMan::slotWatchedFileUnlocked);
connect(this, &FolderMan::folderListChanged, this, &FolderMan::slotSetupPushNotifications);
}
FolderMan *FolderMan::instance()
@@ -753,34 +756,82 @@ void FolderMan::slotStartScheduledFolderSync()
}
}
bool FolderMan::pushNotificationsFilesReady(Account *account)
{
const auto pushNotifications = account->pushNotifications();
const auto pushFilesAvailable = account->capabilities().availablePushNotifications() & PushNotificationType::Files;
return pushFilesAvailable && pushNotifications && pushNotifications->isReady();
}
void FolderMan::slotEtagPollTimerTimeout()
{
ConfigFile cfg;
auto polltime = cfg.remotePollInterval();
qCInfo(lcFolderMan) << "Etag poll timer timeout";
for (Folder *f : qAsConst(_folderMap)) {
if (!f) {
continue;
}
if (_currentSyncFolder == f) {
continue;
}
if (_scheduledFolders.contains(f)) {
continue;
}
if (_disabledFolders.contains(f)) {
continue;
}
if (f->etagJob() || f->isBusy() || !f->canSync()) {
continue;
}
if (f->msecSinceLastSync() < polltime) {
continue;
}
QMetaObject::invokeMethod(f, "slotRunEtagJob", Qt::QueuedConnection);
const auto folderMapValues = _folderMap.values();
qCInfo(lcFolderMan) << "Folders to sync:" << folderMapValues.size();
QList<Folder *> foldersToRun;
// Some folders need not to be checked because they use the push notifications
std::copy_if(folderMapValues.begin(), folderMapValues.end(), std::back_inserter(foldersToRun), [this](Folder *folder) -> bool {
const auto account = folder->accountState()->account();
const auto capabilities = account->capabilities();
const auto pushNotifications = account->pushNotifications();
return !pushNotificationsFilesReady(account.data());
});
qCInfo(lcFolderMan) << "Number of folders that don't use push notifications:" << foldersToRun.size();
runEtagJobsIfPossible(foldersToRun);
}
void FolderMan::runEtagJobsIfPossible(const QList<Folder *> &folderMap)
{
for (auto folder : folderMap) {
runEtagJobIfPossible(folder);
}
}
void FolderMan::runEtagJobIfPossible(Folder *folder)
{
const ConfigFile cfg;
const auto polltime = cfg.remotePollInterval();
qCInfo(lcFolderMan) << "Run etag job on folder" << folder;
if (!folder) {
return;
}
if (_currentSyncFolder == folder) {
qCInfo(lcFolderMan) << "Can not run etag job: Sync is running";
return;
}
if (_scheduledFolders.contains(folder)) {
qCInfo(lcFolderMan) << "Can not run etag job: Folder is alreday scheduled";
return;
}
if (_disabledFolders.contains(folder)) {
qCInfo(lcFolderMan) << "Can not run etag job: Folder is disabled";
return;
}
if (folder->etagJob() || folder->isBusy() || !folder->canSync()) {
qCInfo(lcFolderMan) << "Can not run etag job: Folder is busy";
return;
}
// When not using push notifications, make sure polltime is reached
if (!pushNotificationsFilesReady(folder->accountState()->account().data())) {
if (folder->msecSinceLastSync() < polltime) {
qCInfo(lcFolderMan) << "Can not run etag job: Polltime not reached";
return;
}
}
QMetaObject::invokeMethod(folder, "slotRunEtagJob", Qt::QueuedConnection);
}
void FolderMan::slotRemoveFoldersForAccount(AccountState *accountState)
{
QVarLengthArray<Folder *, 16> foldersToRemove;
@@ -1505,4 +1556,42 @@ void FolderMan::restartApplication()
}
}
void FolderMan::slotSetupPushNotifications(const Folder::Map &folderMap)
{
for (auto folder : folderMap) {
const auto account = folder->accountState()->account();
// See if the account already provides the PushNotifications object and if yes connect to it.
// If we can't connect at this point, the signals will be connected in slotPushNotificationsReady()
// after the PushNotification object emitted the ready signal
slotConnectToPushNotifications(account.data());
connect(account.data(), &Account::pushNotificationsReady, this, &FolderMan::slotConnectToPushNotifications, Qt::UniqueConnection);
}
}
void FolderMan::slotProcessFilesPushNotification(Account *account)
{
qCInfo(lcFolderMan) << "Got files push notification for account" << account;
for (auto folder : _folderMap) {
// Just run on the folders that belong to this account
if (folder->accountState()->account() != account) {
continue;
}
qCInfo(lcFolderMan) << "Schedule folder" << folder << "for sync";
scheduleFolder(folder);
}
}
void FolderMan::slotConnectToPushNotifications(Account *account)
{
const auto pushNotifications = account->pushNotifications();
if (pushNotificationsFilesReady(account)) {
qCInfo(lcFolderMan) << "Push notifications ready";
connect(pushNotifications, &PushNotifications::filesChanged, this, &FolderMan::slotProcessFilesPushNotification, Qt::UniqueConnection);
}
}
} // namespace OCC

View File

@@ -276,6 +276,10 @@ private slots:
*/
void slotScheduleFolderByTime();
void slotSetupPushNotifications(const Folder::Map &);
void slotProcessFilesPushNotification(Account *account);
void slotConnectToPushNotifications(Account *account);
private:
/** Adds a new folder, does not add it to the account settings and
* does not set an account on the new folder.
@@ -301,6 +305,11 @@ private:
void setupFoldersHelper(QSettings &settings, AccountStatePtr account, bool backwardsCompatible);
void runEtagJobsIfPossible(const QList<Folder *> &folderMap);
void runEtagJobIfPossible(Folder *folder);
bool pushNotificationsFilesReady(Account *account);
QSet<Folder *> _disabledFolders;
Folder::Map _folderMap;
QString _folderConfigPath;

View File

@@ -33,6 +33,7 @@
#endif
#include "folder.h"
#include "filesystem.h"
namespace OCC {
@@ -60,7 +61,7 @@ bool FolderWatcher::pathIsIgnored(const QString &path)
return false;
#ifndef OWNCLOUD_TEST
if (_folder->isFileExcludedAbsolute(path)) {
if (_folder->isFileExcludedAbsolute(path) && !Utility::isConflictFile(path)) {
qCDebug(lcFolderWatcher) << "* Ignoring file" << path;
return true;
}
@@ -86,6 +87,57 @@ void FolderWatcher::appendSubPaths(QDir dir, QStringList& subPaths) {
}
}
void FolderWatcher::startNotificatonTest(const QString &path)
{
#ifdef Q_OS_MAC
// Testing the folder watcher on OSX is harder because the watcher
// automatically discards changes that were performed by our process.
// It would still be useful to test but the OSX implementation
// is deferred until later.
return;
#endif
Q_ASSERT(_testNotificationPath.isEmpty());
_testNotificationPath = path;
// Don't do the local file modification immediately:
// wait for FolderWatchPrivate::_ready
startNotificationTestWhenReady();
}
void FolderWatcher::startNotificationTestWhenReady()
{
if (!_d->_ready) {
QTimer::singleShot(1000, this, &FolderWatcher::startNotificationTestWhenReady);
return;
}
auto path = _testNotificationPath;
if (QFile::exists(path)) {
auto mtime = FileSystem::getModTime(path);
FileSystem::setModTime(path, mtime + 1);
} else {
QFile f(path);
f.open(QIODevice::WriteOnly | QIODevice::Append);
}
QTimer::singleShot(5000, this, [this]() {
if (!_testNotificationPath.isEmpty())
emit becameUnreliable(tr("The watcher did not receive a test notification."));
_testNotificationPath.clear();
});
}
int FolderWatcher::testLinuxWatchCount() const
{
#ifdef Q_OS_LINUX
return _d->testWatchCount();
#else
return -1;
#endif
}
void FolderWatcher::changeDetected(const QString &path)
{
QFileInfo fileInfo(path);
@@ -118,6 +170,10 @@ void FolderWatcher::changeDetected(const QStringList &paths)
// ------- handle ignores:
for (int i = 0; i < paths.size(); ++i) {
QString path = paths[i];
if (!_testNotificationPath.isEmpty()
&& Utility::fileNamesEqual(path, _testNotificationPath)) {
_testNotificationPath.clear();
}
if (pathIsIgnored(path)) {
continue;
}
@@ -134,15 +190,4 @@ void FolderWatcher::changeDetected(const QStringList &paths)
}
}
void FolderWatcher::addPath(const QString &path)
{
_d->addPath(path);
}
void FolderWatcher::removePath(const QString &path)
{
_d->removePath(path);
}
} // namespace OCC

View File

@@ -22,7 +22,7 @@
#include <QObject>
#include <QString>
#include <QStringList>
#include <QTime>
#include <QElapsedTimer>
#include <QHash>
#include <QScopedPointer>
#include <QSet>
@@ -44,11 +44,6 @@ class Folder;
* for changes in the local file system. Changes are signalled
* through the pathChanged() signal.
*
* Note that if new folders are created, this folderwatcher class
* does not automatically add them to the list of monitored
* dirs. That is the responsibility of the user of this class to
* call addPath() with the new dir.
*
* @ingroup gui
*/
@@ -65,14 +60,6 @@ public:
*/
void init(const QString &root);
/**
* Not all backends are recursive by default.
* Those need to be notified when a directory is added or removed while the watcher is disabled.
* This is a no-op for backends that are recursive
*/
void addPath(const QString &);
void removePath(const QString &);
/* Check if the path is ignored. */
bool pathIsIgnored(const QString &path);
@@ -85,6 +72,17 @@ public:
*/
bool isReliable() const;
/**
* Triggers a change in the path and verifies a notification arrives.
*
* If no notification is seen, the folderwatcher marks itself as unreliable.
* The path must be ignored by the watcher.
*/
void startNotificatonTest(const QString &path);
/// For testing linux behavior only
int testLinuxWatchCount() const;
signals:
/** Emitted when one of the watched directories or one
* of the contained files is changed. */
@@ -111,18 +109,24 @@ protected slots:
void changeDetected(const QString &path);
void changeDetected(const QStringList &paths);
private slots:
void startNotificationTestWhenReady();
protected:
QHash<QString, int> _pendingPathes;
private:
QScopedPointer<FolderWatcherPrivate> _d;
QTime _timer;
QElapsedTimer _timer;
QSet<QString> _lastPaths;
Folder *_folder;
bool _isReliable = true;
void appendSubPaths(QDir dir, QStringList& subPaths);
/** Path of the expected test notification */
QString _testNotificationPath;
friend class FolderWatcherPrivate;
};
}

View File

@@ -71,34 +71,37 @@ bool FolderWatcherPrivate::findFoldersBelow(const QDir &dir, QStringList &fullLi
void FolderWatcherPrivate::inotifyRegisterPath(const QString &path)
{
if (!path.isEmpty()) {
int wd = inotify_add_watch(_fd, path.toUtf8().constData(),
IN_CLOSE_WRITE | IN_ATTRIB | IN_MOVE | IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | IN_ONLYDIR);
if (wd > -1) {
_watches.insert(wd, path);
} else {
// If we're running out of memory or inotify watches, become
// unreliable.
if (_parent->_isReliable && (errno == ENOMEM || errno == ENOSPC)) {
_parent->_isReliable = false;
emit _parent->becameUnreliable(
tr("This problem usually happens when the inotify watches are exhausted. "
"Check the FAQ for details."));
}
if (path.isEmpty())
return;
int wd = inotify_add_watch(_fd, path.toUtf8().constData(),
IN_CLOSE_WRITE | IN_ATTRIB | IN_MOVE | IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | IN_ONLYDIR);
if (wd > -1) {
_watchToPath.insert(wd, path);
_pathToWatch.insert(path, wd);
} else {
// If we're running out of memory or inotify watches, become
// unreliable.
if (_parent->_isReliable && (errno == ENOMEM || errno == ENOSPC)) {
_parent->_isReliable = false;
emit _parent->becameUnreliable(
tr("This problem usually happens when the inotify watches are exhausted. "
"Check the FAQ for details."));
}
}
}
void FolderWatcherPrivate::slotAddFolderRecursive(const QString &path)
{
if (_pathToWatch.contains(path))
return;
int subdirs = 0;
qCDebug(lcFolderWatcher) << "(+) Watcher:" << path;
QDir inPath(path);
inotifyRegisterPath(inPath.absolutePath());
const QStringList watchedFolders = _watches.values();
QStringList allSubfolders;
if (!findFoldersBelow(QDir(path), allSubfolders)) {
qCWarning(lcFolderWatcher) << "Could not traverse all sub folders";
@@ -107,7 +110,7 @@ void FolderWatcherPrivate::slotAddFolderRecursive(const QString &path)
while (subfoldersIt.hasNext()) {
QString subfolder = subfoldersIt.next();
QDir folder(subfolder);
if (folder.exists() && !watchedFolders.contains(folder.absolutePath())) {
if (folder.exists() && !_pathToWatch.contains(folder.absolutePath())) {
subdirs++;
if (_parent->pathIsIgnored(subfolder)) {
qCDebug(lcFolderWatcher) << "* Not adding" << folder.path();
@@ -152,57 +155,65 @@ void FolderWatcherPrivate::slotReceivedNotification(int fd)
error = errno;
}
// reset counter
i = 0;
// while there are enough events in the buffer
while (i + sizeof(struct inotify_event) < static_cast<unsigned int>(len)) {
// iterate events in buffer
unsigned int ulen = len;
for (i = 0; i + sizeof(inotify_event) < ulen; i += sizeof(inotify_event) + (event ? event->len : 0)) {
// cast an inotify_event
event = (struct inotify_event *)&buffer[i];
if (!event) {
qCDebug(lcFolderWatcher) << "NULL event";
i += sizeof(struct inotify_event);
continue;
}
// Fire event for the path that was changed.
if (event->len > 0 && event->wd > -1) {
QByteArray fileName(event->name);
if (fileName.startsWith("._sync_")
|| fileName.startsWith(".csync_journal.db")
|| fileName.startsWith(".owncloudsync.log")
|| fileName.startsWith(".sync_")) {
} else {
const QString p = _watches[event->wd] + '/' + fileName;
_parent->changeDetected(p);
}
if (event->len == 0 || event->wd <= -1)
continue;
QByteArray fileName(event->name);
// Filter out journal changes - redundant with filtering in
// FolderWatcher::pathIsIgnored.
if (fileName.startsWith("._sync_")
|| fileName.startsWith(".csync_journal.db")
|| fileName.startsWith(".sync_")) {
continue;
}
const QString p = _watchToPath[event->wd] + '/' + fileName;
_parent->changeDetected(p);
// increment counter
i += sizeof(struct inotify_event) + event->len;
if ((event->mask & (IN_MOVED_TO | IN_CREATE))
&& QFileInfo(p).isDir()
&& !_parent->pathIsIgnored(p)) {
slotAddFolderRecursive(p);
}
if (event->mask & (IN_MOVED_FROM | IN_DELETE)) {
removeFoldersBelow(p);
}
}
}
void FolderWatcherPrivate::addPath(const QString &path)
void FolderWatcherPrivate::removeFoldersBelow(const QString &path)
{
slotAddFolderRecursive(path);
}
auto it = _pathToWatch.find(path);
if (it == _pathToWatch.end())
return;
void FolderWatcherPrivate::removePath(const QString &path)
{
int wid = -1;
// Remove the inotify watch.
QHash<int, QString>::const_iterator i = _watches.constBegin();
QString pathSlash = path + '/';
while (i != _watches.constEnd()) {
if (i.value() == path) {
wid = i.key();
// Remove the entry and all subentries
while (it != _pathToWatch.end()) {
auto itPath = it.key();
if (!itPath.startsWith(path))
break;
if (itPath != path && !itPath.startsWith(pathSlash)) {
// order is 'foo', 'foo bar', 'foo/bar'
++it;
continue;
}
++i;
}
if (wid > -1) {
auto wid = it.value();
inotify_rm_watch(_fd, wid);
_watches.remove(wid);
_watchToPath.remove(wid);
it = _pathToWatch.erase(it);
qCDebug(lcFolderWatcher) << "Removed watch for" << itPath;
}
}

View File

@@ -23,6 +23,8 @@
#include "folderwatcher.h"
class QTimer;
namespace OCC {
/**
@@ -37,8 +39,10 @@ public:
FolderWatcherPrivate(FolderWatcher *p, const QString &path);
~FolderWatcherPrivate();
void addPath(const QString &path);
void removePath(const QString &);
int testWatchCount() const { return _pathToWatch.size(); }
/// On linux the watcher is ready when the ctor finished.
bool _ready = true;
protected slots:
void slotReceivedNotification(int fd);
@@ -47,12 +51,14 @@ protected slots:
protected:
bool findFoldersBelow(const QDir &dir, QStringList &fullList);
void inotifyRegisterPath(const QString &path);
void removeFoldersBelow(const QString &path);
private:
FolderWatcher *_parent;
QString _folder;
QHash<int, QString> _watches;
QHash<int, QString> _watchToPath;
QMap<QString, int> _pathToWatch;
QScopedPointer<QSocketNotifier> _socket;
int _fd;
};

View File

@@ -33,13 +33,13 @@ public:
FolderWatcherPrivate(FolderWatcher *p, const QString &path);
~FolderWatcherPrivate();
void addPath(const QString &) {}
void removePath(const QString &) {}
void startWatching();
QStringList addCoalescedPaths(const QStringList &) const;
void doNotifyParent(const QStringList &);
/// On OSX the watcher is ready when the ctor finished.
bool _ready = true;
private:
FolderWatcher *_parent;

View File

@@ -84,6 +84,8 @@ void WatcherThread::watchChanges(size_t fileNotifyBufferSize,
break;
}
emit ready();
HANDLE handles[] = { _resultEvent, _stopEvent };
DWORD result = WaitForMultipleObjects(
2, handles,
@@ -139,6 +141,8 @@ void WatcherThread::watchChanges(size_t fileNotifyBufferSize,
if (!skip) {
emit changed(longfile);
} else {
qCDebug(lcFolderWatcher) << "Skipping syncing of" << longfile;
}
if (curEntry->NextEntryOffset == 0) {
@@ -204,6 +208,8 @@ FolderWatcherPrivate::FolderWatcherPrivate(FolderWatcher *p, const QString &path
_parent, SLOT(changeDetected(const QString &)));
connect(_thread, SIGNAL(lostChanges()),
_parent, SIGNAL(lostChanges()));
connect(_thread, &WatcherThread::ready,
this, [this]() { _ready = 1; });
_thread->start();
}

View File

@@ -54,6 +54,7 @@ protected:
signals:
void changed(const QString &path);
void lostChanges();
void ready();
private:
QString _path;
@@ -74,8 +75,8 @@ public:
FolderWatcherPrivate(FolderWatcher *p, const QString &path);
~FolderWatcherPrivate();
void addPath(const QString &) {}
void removePath(const QString &) {}
/// Set to non-zero once the WatcherThread is capturing events.
QAtomicInt _ready;
private:
FolderWatcher *_parent;

View File

@@ -26,6 +26,10 @@
#if defined(BUILD_UPDATER)
#include "updater/updater.h"
#include "updater/ocupdater.h"
#ifdef Q_OS_MAC
// FIXME We should unify those, but Sparkle does everything behind the scene transparently
#include "updater/sparkleupdater.h"
#endif
#endif
#include "ignorelisteditor.h"
@@ -41,6 +45,7 @@
#include <QNetworkProxy>
#include <QDir>
#include <QScopedValueRollback>
#include <QMessageBox>
#include <private/qzipwriter_p.h>
@@ -248,34 +253,88 @@ void GeneralSettings::loadMiscSettings()
#if defined(BUILD_UPDATER)
void GeneralSettings::slotUpdateInfo()
{
// Note: the sparkle-updater is not an OCUpdater
auto *updater = qobject_cast<OCUpdater *>(Updater::instance());
if (ConfigFile().skipUpdateCheck()) {
updater = nullptr; // don't show update info if updates are disabled
if (ConfigFile().skipUpdateCheck() || !Updater::instance()) {
// updater disabled on compile
_ui->updatesGroupBox->setVisible(false);
return;
}
if (updater) {
connect(updater, &OCUpdater::downloadStateChanged, this, &GeneralSettings::slotUpdateInfo, Qt::UniqueConnection);
connect(_ui->restartButton, &QAbstractButton::clicked, updater, &OCUpdater::slotStartInstaller, Qt::UniqueConnection);
// Note: the sparkle-updater is not an OCUpdater
auto *ocupdater = qobject_cast<OCUpdater *>(Updater::instance());
if (ocupdater) {
connect(ocupdater, &OCUpdater::downloadStateChanged, this, &GeneralSettings::slotUpdateInfo, Qt::UniqueConnection);
connect(_ui->restartButton, &QAbstractButton::clicked, ocupdater, &OCUpdater::slotStartInstaller, Qt::UniqueConnection);
connect(_ui->restartButton, &QAbstractButton::clicked, qApp, &QApplication::quit, Qt::UniqueConnection);
connect(_ui->updateButton, &QAbstractButton::clicked, this, &GeneralSettings::slotUpdateCheckNow, Qt::UniqueConnection);
connect(_ui->autoCheckForUpdatesCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleAutoUpdateCheck);
QString status = updater->statusString();
QString status = ocupdater->statusString();
Theme::replaceLinkColorStringBackgroundAware(status);
_ui->updateStateLabel->setText(status);
_ui->restartButton->setVisible(updater->downloadState() == OCUpdater::DownloadComplete);
_ui->restartButton->setVisible(ocupdater->downloadState() == OCUpdater::DownloadComplete);
_ui->updateButton->setEnabled(updater->downloadState() != OCUpdater::CheckingServer &&
updater->downloadState() != OCUpdater::Downloading &&
updater->downloadState() != OCUpdater::DownloadComplete);
_ui->updateButton->setEnabled(ocupdater->downloadState() != OCUpdater::CheckingServer &&
ocupdater->downloadState() != OCUpdater::Downloading &&
ocupdater->downloadState() != OCUpdater::DownloadComplete);
_ui->autoCheckForUpdatesCheckBox->setChecked(ConfigFile().autoUpdateCheck());
} else {
// can't have those infos from sparkle currently
_ui->updatesGroupBox->setVisible(false);
}
#if defined(Q_OS_MAC) && defined(HAVE_SPARKLE)
else if (auto sparkleUpdater = qobject_cast<SparkleUpdater *>(Updater::instance())) {
_ui->updateStateLabel->setText(sparkleUpdater->statusString());
_ui->restartButton->setVisible(false);
}
#endif
// Channel selection
_ui->updateChannel->setCurrentIndex(ConfigFile().updateChannel() == "beta" ? 1 : 0);
connect(_ui->updateChannel, &QComboBox::currentTextChanged,
this, &GeneralSettings::slotUpdateChannelChanged, Qt::UniqueConnection);
}
void GeneralSettings::slotUpdateChannelChanged(const QString &channel)
{
if (channel == ConfigFile().updateChannel())
return;
auto msgBox = new QMessageBox(
QMessageBox::Warning,
tr("Change update channel?"),
tr("The update channel determines which client updates will be offered "
"for installation. The \"stable\" channel contains only upgrades that "
"are considered reliable, while the versions in the \"beta\" channel "
"may contain newer features and bugfixes, but have not yet been tested "
"thoroughly."
"\n\n"
"Note that this selects only what pool upgrades are taken from, and that "
"there are no downgrades: So going back from the beta channel to "
"the stable channel usually cannot be done immediately and means waiting "
"for a stable version that is newer than the currently installed beta "
"version."),
QMessageBox::NoButton,
this);
msgBox->addButton(tr("Change update channel"), QMessageBox::AcceptRole);
msgBox->addButton(tr("Cancel"), QMessageBox::RejectRole);
connect(msgBox, &QMessageBox::finished, msgBox, [this, channel, msgBox](int result) {
msgBox->deleteLater();
if (result == QMessageBox::AcceptRole) {
ConfigFile().setUpdateChannel(channel);
if (auto updater = qobject_cast<OCUpdater *>(Updater::instance())) {
updater->setUpdateUrl(Updater::updateUrl());
updater->checkForUpdate();
}
#if defined(Q_OS_MAC) && defined(HAVE_SPARKLE)
else if (auto updater = qobject_cast<SparkleUpdater *>(Updater::instance())) {
updater->setUpdateUrl(Updater::updateUrl());
updater->checkForUpdate();
}
#endif
} else {
_ui->updateChannel->setCurrentText(ConfigFile().updateChannel());
}
});
msgBox->open();
}
void GeneralSettings::slotUpdateCheckNow()

View File

@@ -53,6 +53,7 @@ private slots:
void slotShowLegalNotice();
#if defined(BUILD_UPDATER)
void slotUpdateInfo();
void slotUpdateChannelChanged(const QString &channel);
void slotUpdateCheckNow();
void slotToggleAutoUpdateCheck();
#endif

View File

@@ -124,26 +124,46 @@
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="updateChannelLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&amp;Channel</string>
</property>
<property name="buddy">
<cstring>updateChannel</cstring>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="updateChannel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>stable</string>
</property>
</item>
<item>
<property name="text">
<string>beta</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="updateStateLabel">
<property name="text">
@@ -170,22 +190,6 @@
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>

View File

@@ -27,6 +27,17 @@ Q_LOGGING_CATEGORY(lcUtility, "nextcloud.gui.utility", QtInfoMsg)
bool Utility::openBrowser(const QUrl &url, QWidget *errorWidgetParent)
{
const QStringList allowedUrlSchemes = {
"http",
"https",
"oauthtest"
};
if (!allowedUrlSchemes.contains(url.scheme())) {
qCWarning(lcUtility) << "URL format is not supported, or it has been compromised for:" << url.toString();
return false;
}
if (!QDesktopServices::openUrl(url)) {
if (errorWidgetParent) {
QMessageBox::warning(

View File

@@ -26,7 +26,7 @@ namespace Utility {
*
* If launching the browser fails, display a message.
*/
bool openBrowser(const QUrl &url, QWidget *errorWidgetParent);
bool openBrowser(const QUrl &url, QWidget *errorWidgetParent = nullptr);
/** Start composing a new email message.
*

View File

@@ -28,7 +28,8 @@ OcsShareeJob::OcsShareeJob(AccountPtr account)
void OcsShareeJob::getSharees(const QString &search,
const QString &itemType,
int page,
int perPage)
int perPage,
bool lookup)
{
setVerb("GET");
@@ -36,6 +37,7 @@ void OcsShareeJob::getSharees(const QString &search,
addParam(QString::fromLatin1("itemType"), itemType);
addParam(QString::fromLatin1("page"), QString::number(page));
addParam(QString::fromLatin1("perPage"), QString::number(perPage));
addParam(QString::fromLatin1("lookup"), QVariant(lookup).toString());
start();
}

View File

@@ -38,7 +38,7 @@ public:
*
* @param path Path to request shares for (default all shares)
*/
void getSharees(const QString &search, const QString &itemType, int page = 1, int perPage = 50);
void getSharees(const QString &search, const QString &itemType, int page = 1, int perPage = 50, bool lookup = false);
signals:
/**
* Result of the OCS request

View File

@@ -28,6 +28,7 @@
#include "accountmanager.h"
#include "common/syncjournalfilerecord.h"
#include "creds/abstractcredentials.h"
#include "guiutility.h"
#ifdef WITH_LIBCLOUDPROVIDERS
#include "cloudproviders/cloudprovidermanager.h"
#endif
@@ -570,7 +571,7 @@ void ownCloudGui::slotToggleLogBrowser()
void ownCloudGui::slotOpenOwnCloud()
{
if (auto account = qvariant_cast<AccountPtr>(sender()->property(propertyAccountC))) {
QDesktopServices::openUrl(account->url());
Utility::openBrowser(account->url());
}
}

View File

@@ -38,10 +38,14 @@ QString Sharee::format() const
if (_type == Type::Group) {
formatted += QLatin1String(" (group)");
} else if (_type == Type::Email) {
formatted += QLatin1String(" (email)");
} else if (_type == Type::Federated) {
formatted += QLatin1String(" (remote)");
} else if (_type == Type::Circle) {
formatted += QLatin1String(" (circle)");
} else if (_type == Type::Room) {
formatted += QLatin1String(" (conversation)");
}
return formatted;
@@ -69,71 +73,34 @@ ShareeModel::ShareeModel(const AccountPtr &account, const QString &type, QObject
{
}
void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist)
void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist, LookupMode lookupMode)
{
_search = search;
_shareeBlacklist = blacklist;
auto *job = new OcsShareeJob(_account);
connect(job, &OcsShareeJob::shareeJobFinished, this, &ShareeModel::shareesFetched);
connect(job, &OcsJob::ocsError, this, &ShareeModel::displayErrorMessage);
job->getSharees(_search, _type, 1, 50);
job->getSharees(_search, _type, 1, 50, lookupMode == GlobalSearch ? true : false);
}
void ShareeModel::shareesFetched(const QJsonDocument &reply)
{
auto data = reply.object().value("ocs").toObject().value("data").toObject();
QVector<QSharedPointer<Sharee>> newSharees;
/*
* Todo properly loop all of this
*/
auto exact = data.value("exact").toObject();
{
auto users = exact.value("users").toArray();
foreach (auto user, users) {
newSharees.append(parseSharee(user.toObject()));
}
const QStringList shareeTypes {"users", "groups", "emails", "remotes", "circles", "rooms"};
auto groups = exact.value("groups").toArray();
foreach (auto group, groups) {
newSharees.append(parseSharee(group.toObject()));
}
const auto appendSharees = [this, &shareeTypes](const QJsonObject &data, QVector<QSharedPointer<Sharee>>& out) {
for (const auto &shareeType : shareeTypes) {
const auto category = data.value(shareeType).toArray();
for (const auto &sharee : category) {
out.append(parseSharee(sharee.toObject()));
}
}
};
auto remotes = exact.value("remotes").toArray();
foreach (auto remote, remotes) {
newSharees.append(parseSharee(remote.toObject()));
}
auto circles = exact.value("circles").toArray();
foreach (auto circle, circles) {
newSharees.append(parseSharee(circle.toObject()));
}
}
{
auto users = data.value("users").toArray();
foreach (auto user, users) {
newSharees.append(parseSharee(user.toObject()));
}
}
{
auto groups = data.value("groups").toArray();
foreach (auto group, groups) {
newSharees.append(parseSharee(group.toObject()));
}
}
{
auto remotes = data.value("remotes").toArray();
foreach (auto remote, remotes) {
newSharees.append(parseSharee(remote.toObject()));
}
}
{
auto circles = data.value("circles").toArray();
foreach (auto circle, circles) {
newSharees.append(parseSharee(circle.toObject()));
}
appendSharees(reply.object().value("ocs").toObject().value("data").toObject(), newSharees);
appendSharees(reply.object().value("ocs").toObject().value("data").toObject().value("exact").toObject(), newSharees);
}
// Filter sharees that we have already shared with

View File

@@ -40,8 +40,10 @@ public:
enum Type {
User = 0,
Group = 1,
Email = 4,
Federated = 6,
Circle = 7
Circle = 7,
Room = 10
};
explicit Sharee(const QString shareWith,
@@ -64,10 +66,15 @@ class ShareeModel : public QAbstractListModel
{
Q_OBJECT
public:
enum LookupMode {
LocalSearch = 0,
GlobalSearch = 1
};
explicit ShareeModel(const AccountPtr &account, const QString &type, QObject *parent = nullptr);
using ShareeSet = QVector<QSharedPointer<Sharee>>; // FIXME: make it a QSet<Sharee> when Sharee can be compared
void fetch(const QString &search, const ShareeSet &blacklist);
void fetch(const QString &search, const ShareeSet &blacklist, LookupMode lookupMode);
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role) const override;

View File

@@ -44,8 +44,10 @@ public:
TypeUser = Sharee::User,
TypeGroup = Sharee::Group,
TypeLink = 3,
TypeEmail = Sharee::Email,
TypeRemote = Sharee::Federated,
TypeCircle = Sharee::Circle
TypeCircle = Sharee::Circle,
TypeRoom = Sharee::Room
};
using Permissions = SharePermissions;

View File

@@ -24,7 +24,6 @@
#include "capabilities.h"
#include "guiutility.h"
#include "thumbnailjob.h"
#include "sharee.h"
#include "sharemanager.h"
#include "theme.h"
@@ -85,6 +84,16 @@ ShareUserGroupWidget::ShareUserGroupWidget(AccountPtr account,
_completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
_ui->shareeLineEdit->setCompleter(_completer);
auto searchGloballyAction = new QAction(_ui->shareeLineEdit);
searchGloballyAction->setIcon(QIcon(":/client/theme/magnifying-glass.svg"));
searchGloballyAction->setToolTip(tr("Search globally"));
connect(searchGloballyAction, &QAction::triggered, this, [this]() {
searchForSharees(ShareeModel::GlobalSearch);
});
_ui->shareeLineEdit->addAction(searchGloballyAction, QLineEdit::LeadingPosition);
_manager = new ShareManager(_account, this);
connect(_manager, &ShareManager::sharesFetched, this, &ShareUserGroupWidget::slotSharesFetched);
connect(_manager, &ShareManager::shareCreated, this, &ShareUserGroupWidget::getShares);
@@ -104,7 +113,9 @@ ShareUserGroupWidget::ShareUserGroupWidget(AccountPtr account,
connect(_ui->shareeLineEdit, &QLineEdit::textEdited,
this, &ShareUserGroupWidget::slotLineEditTextEdited, Qt::QueuedConnection);
_ui->shareeLineEdit->installEventFilter(this);
connect(&_completionTimer, &QTimer::timeout, this, &ShareUserGroupWidget::searchForSharees);
connect(&_completionTimer, &QTimer::timeout, this, [this]() {
searchForSharees(ShareeModel::LocalSearch);
});
_completionTimer.setSingleShot(true);
_completionTimer.setInterval(600);
@@ -163,9 +174,13 @@ void ShareUserGroupWidget::slotLineEditReturn()
_completionTimer.start();
}
void ShareUserGroupWidget::searchForSharees()
void ShareUserGroupWidget::searchForSharees(ShareeModel::LookupMode lookupMode)
{
if (_ui->shareeLineEdit->text().isEmpty()) {
return;
}
_ui->shareeLineEdit->setEnabled(false);
_completionTimer.stop();
_pi_sharee.startAnimation();
ShareeModel::ShareeSet blacklist;
@@ -178,7 +193,7 @@ void ShareUserGroupWidget::searchForSharees()
blacklist << sw->share()->getShareWith();
}
_ui->errorLabel->hide();
_completerModel->fetch(_ui->shareeLineEdit->text(), blacklist);
_completerModel->fetch(_ui->shareeLineEdit->text(), blacklist, lookupMode);
}
void ShareUserGroupWidget::getShares()
@@ -246,7 +261,7 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
scrollArea->setWidget(newViewPort);
_disableCompleterActivated = false;
_ui->shareeLineEdit->setEnabled(true);
activateShareeLineEdit();
}
void ShareUserGroupWidget::slotAdjustScrollWidgetSize()
@@ -275,11 +290,14 @@ void ShareUserGroupWidget::slotPrivateLinkShare()
void ShareUserGroupWidget::slotShareesReady()
{
activateShareeLineEdit();
_pi_sharee.stopAnimation();
if (_completerModel->rowCount() == 0) {
displayError(0, tr("No results for '%1'").arg(_completerModel->currentSearch()));
return;
}
// if no rows are present in the model - complete() will hide the completer
_completer->complete();
}
@@ -349,7 +367,7 @@ void ShareUserGroupWidget::displayError(int code, const QString &message)
qCWarning(lcSharing) << "Sharing error from server" << code << message;
_ui->errorLabel->setText(message);
_ui->errorLabel->show();
_ui->shareeLineEdit->setEnabled(true);
activateShareeLineEdit();
}
void ShareUserGroupWidget::slotPrivateLinkOpenBrowser()
@@ -389,6 +407,12 @@ void ShareUserGroupWidget::customizeStyle()
}
}
void ShareUserGroupWidget::activateShareeLineEdit()
{
_ui->shareeLineEdit->setEnabled(true);
_ui->shareeLineEdit->setFocus();
}
ShareUserLine::ShareUserLine(QSharedPointer<Share> share,
SharePermissions maxSharingPermissions,
bool isFile,

View File

@@ -17,6 +17,7 @@
#include "accountfwd.h"
#include "sharepermissions.h"
#include "sharee.h"
#include "QProgressIndicator.h"
#include <QDialog>
#include <QWidget>
@@ -40,9 +41,7 @@ namespace Ui {
class AbstractCredentials;
class SyncResult;
class Share;
class Sharee;
class ShareManager;
class ShareeModel;
/**
* @brief The ShareDialog (user/group) class
@@ -73,7 +72,7 @@ private slots:
void slotSharesFetched(const QList<QSharedPointer<Share>> &shares);
void on_shareeLineEdit_textChanged(const QString &text);
void searchForSharees();
void searchForSharees(ShareeModel::LookupMode lookupMode);
void slotLineEditTextEdited(const QString &text);
void slotLineEditReturn();
@@ -91,6 +90,8 @@ private slots:
private:
void customizeStyle();
void activateShareeLineEdit();
Ui::ShareUserGroupWidget *_ui;
QScrollArea *_parentScrollArea;
AccountPtr _account;

View File

@@ -499,7 +499,7 @@ void SocketApi::command_EDIT(const QString &localFile, SocketListener *listener)
auto url = QUrl(data.value("url").toString());
if(!url.isEmpty())
Utility::openBrowser(url, nullptr);
Utility::openBrowser(url);
});
job->start();
}
@@ -711,7 +711,9 @@ void SocketApi::command_RESOLVE_CONFLICT(const QString &localFile, SocketListene
dialog.setBaseFilename(baseName);
dialog.setLocalVersionFilename(conflictedPath);
dialog.setRemoteVersionFilename(basePath);
dialog.exec();
if (dialog.exec() == ConflictDialog::Accepted) {
fileData.folder->scheduleThisFolderSoon();
}
#endif
}
@@ -770,7 +772,7 @@ void SocketApi::emailPrivateLink(const QString &link)
void OCC::SocketApi::openPrivateLink(const QString &link)
{
Utility::openBrowser(link, nullptr);
Utility::openBrowser(link);
}
void SocketApi::command_GET_STRINGS(const QString &argument, SocketListener *listener)

View File

@@ -119,6 +119,8 @@ Systray::Systray()
connect(UserModel::instance(), &UserModel::newUserSelected,
this, &Systray::slotNewUserSelected);
connect(UserModel::instance(), &UserModel::addAccount,
this, &Systray::openAccountWizard);
connect(AccountManager::instance(), &AccountManager::accountAdded,
this, &Systray::showWindow);
@@ -267,6 +269,14 @@ void Systray::forceWindowInit(QQuickWindow *window) const
// this shouldn't flicker
window->show();
window->hide();
#ifdef Q_OS_MAC
// On macOS we need to designate the tray window as visible on all spaces and
// at the menu bar level, otherwise showing it can cause the current spaces to
// change, or the window could be obscured by another window that shouldn't
// normally cover a menu.
OCC::setTrayWindowLevelAndVisibleOnAllSpaces(window);
#endif
}
QScreen *Systray::currentScreen() const

View File

@@ -23,12 +23,14 @@
class QScreen;
class QQmlApplicationEngine;
class QQuickWindow;
class QWindow;
namespace OCC {
#ifdef Q_OS_OSX
bool canOsXSendUserNotification();
void sendOsXUserNotification(const QString &title, const QString &message);
void setTrayWindowLevelAndVisibleOnAllSpaces(QWindow *window);
#endif
/**

Some files were not shown because too many files have changed in this diff Show More