Compare commits

...

302 commits

Author SHA1 Message Date
Hylke Bons
86b8ca020a
Update Dockerfile 2023-08-14 13:25:45 +02:00
Hylke Bons
37ce57e12a
Update .travis.yml 2023-08-14 13:04:48 +02:00
Hylke Bons
e2618f793e
Update Dockerfile 2023-08-14 13:04:22 +02:00
Hylke Bons
63fe3710e5
Update SHA-256 for Bitbucket preset 2023-08-14 10:33:30 +02:00
Hylke Bons
6cfd602259
Update SHA-256 for GitHub preset 2023-08-14 10:29:10 +02:00
Hylke Bons
be9e12e0fe
Merge pull request #1959 from jimmac/master
update app icon
2023-01-24 15:01:00 +01:00
Hylke Bons
01c180d588
Merge pull request #1994 from uenz/fix/BuildMacOS
Fixed link errors and pack release
2023-01-24 14:59:39 +01:00
Hylke Bons
54eff3bee1
Merge pull request #1992 from uenz/fix/MacOSAddVentura
Update InstallationInfo.cs
2023-01-24 14:57:58 +01:00
uenz
1fb943b815 Fixed link errors and pack release 2022-11-05 13:05:22 +01:00
uenz
35951f0805 Update InstallationInfo.cs
Added Ventura
2022-11-02 16:46:16 +01:00
Hylke Bons
6ebda3a1d6
Merge pull request #1985 from uenz/fix/AboutController
Define security protocol
2021-11-01 22:22:26 +01:00
Hylke Bons
b65e0fed53
Merge pull request #1980 from uenz/fix/CryptoRepo
Fix for issue #1958
2021-11-01 22:20:23 +01:00
uenz
903382fd29 Undone changes in spaces 2021-11-01 20:37:32 +01:00
uenz
1cdbe02e3d Define security protocol 2021-11-01 20:33:42 +01:00
uenz
347ce97ea7
Update Git.Fetcher.cs
Added comment
2021-11-01 13:32:47 +01:00
Hylke Bons
7c118ee1b0
Merge pull request #1981 from uenz/fix/MacOSSystemVersion
Updated macOS version names
2021-10-31 17:33:35 +01:00
Andre Spahlinger
1c789aba1e Merge branch 'fix/MacOSSystemVersion' of https://github.com/uenz/SparkleShare into fix/MacOSSystemVersion 2021-10-28 12:03:23 +02:00
Andre Spahlinger
02ded513a7 Cleanup 2021-10-28 06:32:13 +02:00
uenz
3f1b02fe0c Create directory if parts of path not exists 2021-10-27 22:21:50 +02:00
uenz
ebc489bcc7 Updated macOS version names 2021-10-25 14:13:18 +02:00
Andre Spahlinger
85a65da878 Fix for issue #1958 2021-10-22 23:22:53 +02:00
Hylke Bons
85f3d449be
Merge pull request #1978 from kjyv/master
Poll for updates when waking up from sleep state (macOS)
2021-09-18 20:37:50 +02:00
Stefan Bethge
5ee0fe016f mac: poll for updates when waking up from sleep state 2021-09-12 18:47:36 +02:00
Hylke Bons
631f56386c
Merge pull request #1975 from uenz/fix/SetupDialogShowFiles
Fix crash when pressing show files
2021-08-03 13:47:56 +02:00
uenz
07f954cc72 Fix crash when pressing show files 2021-07-22 16:37:20 +02:00
Hylke Bons
af8a521aec
Merge pull request #1970 from markusstoll/bugfixes/mac-improve-fswatcher
Mac FileWatcher - reduce load
2021-02-15 19:55:56 +01:00
Markus Stoll
fbd3c79674 Drop changes in .git folder immediately, reduces load 2021-02-15 14:27:40 +01:00
Hylke Bons
cb08a35bf9
Merge pull request #1969 from markusstoll/bugfixes/mac-fix-encodingproblems
Bugfixes/mac fix encodingproblems
2021-02-15 14:10:00 +01:00
Hylke Bons
ba49f81af6
Merge branch 'master' into bugfixes/mac-fix-encodingproblems 2021-02-15 11:59:38 +01:00
Hylke Bons
dac6783a0e
Merge pull request #1967 from markusstoll/bugfixes/macos-increase-gitversion
macOS: increase git version to 29.2-2 and improve handling of download
2021-02-15 10:55:00 +01:00
Hylke Bons
c2fd750ad5
Merge branch 'master' into bugfixes/macos-increase-gitversion 2021-02-15 10:35:06 +01:00
Hylke Bons
948e14fe5e
Merge pull request #1965 from markusstoll/master
Fix problem on renaming HEAD file
2021-02-15 10:33:06 +01:00
Hylke Bons
954f1e6b1b
Merge pull request #1964 from markusstoll/bugfixes/osx_compile
Compile under OSX
2021-02-15 10:29:22 +01:00
Markus Stoll
07bb84318d Set UTF8 encoding for git commands, fixes 2021-02-14 20:16:34 +01:00
Markus Stoll
72603c5bef Improve git update handling 2021-02-14 20:03:21 +01:00
Markus Stoll
741ea0612a Remove conversion for utf8 encoded strings on macOS - with proper settings on git command things are already and would get worse if default encoding is ASCII (which seems to be the case for current VisualStudio 2019) 2021-02-14 19:27:22 +01:00
Markus Stoll
613625c5bf Set UTF8 encoding for git commands 2021-02-14 19:13:17 +01:00
Markus Stoll
37d49a990c Update git to version 2.29.2 2021-02-14 18:58:28 +01:00
Markus Stoll
6ca60c074c Fix to make SparkleShare compile under current OSX and current VisualStudio
Configuration ReleaseMac now works fine again for creating Standalone Release
2021-02-14 10:08:28 +01:00
Markus Stoll
ecd84c6b87 GIT Repostory, dealing with git modules - avoid File conflict on renaming HEAD file 2021-02-04 15:02:30 +01:00
Jakub Steiner
672442b8ab update app icon
- use a single size SVG
- use a commonly used nightly variant
2020-11-30 18:38:14 +01:00
Hylke Bons
23d7166012 Update release notes 2020-11-28 18:17:54 +01:00
Hylke Bons
1a31bc2a5a Update release notes 2020-11-28 18:10:54 +01:00
Hylke Bons
5f8c858658 Add micro bit of version number 2020-11-28 18:10:54 +01:00
Hylke Bons
b0c2c48dd3 ui: More helpful error message when missing AppIndicator 2020-11-28 18:10:54 +01:00
Hylke Bons
c93ec2447c Bump version to 3.38 2020-11-28 18:10:54 +01:00
Hylke Bons
38a7400536
Merge pull request #1955 from MalteKiefer/update-gravatar-cert-fingerprint
updated gravatar cert fingerprint
2020-11-28 18:09:42 +01:00
Hylke Bons
73b849da84
Merge branch 'master' into update-gravatar-cert-fingerprint 2020-11-28 17:37:21 +01:00
Hylke Bons
e9c9cf3f82
Merge pull request #1954 from MalteKiefer/feature-remove-planio
removed planio
2020-10-31 12:26:36 +01:00
Malte Kiefer
8e0b5e4b58 updated gravatar cert fingerprint 2020-10-23 06:04:52 +02:00
Malte Kiefer
c8e398bba2 removed planio 2020-10-23 05:31:34 +02:00
Hylke Bons
55c4e5e32e sparkles git: Replace hardcoded 'master' string 2020-06-23 17:18:11 +02:00
Hylke Bons
c1b62da1c5
Merge pull request #1928 from MalteKiefer/master
added LibRAavatar
2020-02-15 22:41:19 +01:00
Malte Kiefer
959a235799 added myself as Author 2020-02-15 10:14:02 +01:00
Malte Kiefer
a22152e1ab removed fingerprint check for libravatar 2020-02-15 04:31:44 +01:00
Malte Kiefer
9b3e95eff3 added support for libRAvatar 2020-02-14 21:17:56 +01:00
Malte Kiefer
3970c634a6 added libravatar 2020-02-14 20:37:45 +01:00
Malte Kiefer
13ed737818 update Gravatar Fingerprint 2020-02-14 20:04:44 +01:00
Hylke Bons
21c668491e build: Bump minimum macOS version to 10.9 2020-01-25 12:55:07 +01:00
Hylke Bons
a30b223180
Update README.md 2020-01-25 12:51:34 +01:00
Hylke Bons
f1df983b87 build: Bump minimum macOS version to 10.9 2020-01-25 12:42:32 +01:00
Hylke Bons
8d8fb10397
Create FUNDING.yml 2020-01-24 22:42:25 +01:00
Hylke Bons
cf446c00f1
travis: Force non-interactive environment 2019-05-25 11:18:00 +01:00
Hylke Bons
7ae9219fc7
build: Also bump Ubuntu in build script 2019-05-25 10:30:14 +01:00
Hylke Bons
2be2063a36
travis: Always use latest Ubuntu LTS to build 2019-05-25 10:17:36 +01:00
Hylke Bons
c50b1bad25
Merge pull request #1889 from jack1142/master
Update of license links in README.md
2019-01-17 11:53:10 +01:00
jack1142
d9a709ffff
Update AboutController.cs 2019-01-16 15:36:42 +01:00
jack1142
4619f9fbd8
Update README.md 2019-01-16 15:31:11 +01:00
Hylke Bons
c0ed43ff9b
Merge pull request #1884 from City-busz/patch-3
Add X-AppStream-Ignore property to autostart file
2018-12-26 15:22:56 +01:00
Balló György
31d47a7926
Add X-AppStream-Ignore property to autostart file
This makes appstream-generator to ignore this desktop entry.
2018-12-26 15:08:22 +01:00
Hylke Bons
9dac3a27c2
Merge pull request #1883 from City-busz/patch-2
Don't use legacy path for AppStream metainfo file
2018-12-26 12:45:11 +01:00
Hylke Bons
2207328611
Merge pull request #1882 from City-busz/patch-1
Fix AppStream metadata validation
2018-12-25 10:44:48 +01:00
Balló György
e6775a462a
Don't use legacy path for AppStream metainfo file
Metainfo files should be installed into /usr/share/metainfo.
2018-12-25 10:01:04 +01:00
Balló György
e0c4e972d0
Fix AppStream metadata validation 2018-12-25 09:53:41 +01:00
Hylke Bons
cf313dce4d
Merge pull request #1875 from Ppjet6/prevent-interactive-editor
Prevent blocking on interactive $EDITOR
2018-10-05 18:15:39 +01:00
Maxime “pep” Buquet
feb4e3d850
Prevent blocking on interactive $EDITOR
It happens that when merging, git calls out an interactive $EDITOR and
waits for user input. This causes SparkleShare to block as well.

Signed-off-by: Maxime “pep” Buquet <pep@collabora.com>
2018-10-05 17:41:20 +01:00
Hylke Bons
3b4fccd6a2
Update README.md 2018-09-29 20:53:16 +01:00
Hylke Bons
a82644e263 tests: Add simple unit tests 2018-09-01 11:06:54 +01:00
Hylke Bons
76f3326b58
Merge pull request #1867 from hbons/feature/nightly
Prepare for nightly builds
2018-08-05 22:33:12 +01:00
Hylke Bons
3e93fe428c
Merge branch 'master' into feature/nightly 2018-08-05 18:40:53 +01:00
Hylke Bons
21e20afc05 linux: Install correct desktop file for nightlies 2018-08-05 17:55:13 +01:00
Hylke Bons
446b38ba30 linux ui: Remove deprecated set_wmclass calls from windows 2018-08-05 17:46:53 +01:00
Hylke Bons
26c89feaea linux: Keep the normal app id for nightlies 2018-08-05 17:03:12 +01:00
Hylke Bons
eda316eb3c linux statusicon: Use app id variable for icon lookup 2018-08-05 15:58:26 +01:00
Hylke Bons
b944e9d0af linux build: Rename icons using app id 2018-08-05 15:41:41 +01:00
Hylke Bons
a7c182f640 Temporarily change the app id 2018-08-05 15:06:36 +01:00
Hylke Bons
d90e7c9cdd linux ui: Make app id a variable 2018-08-05 15:04:47 +01:00
Hylke Bons
d9a62bb066 linux build: Add .desktop file for Nightly 2018-08-05 13:46:22 +01:00
Hylke Bons
264135ab92 linux: Add nightly app icons to build 2018-08-05 13:39:57 +01:00
Hylke Bons
c316a7839e linux: Add app icons for nightlies 2018-08-05 13:31:00 +01:00
Hylke Bons
c8e4a2b63f
linux appdata: HTTPS website address 2018-08-02 14:20:28 +01:00
Hylke Bons
3653ab0f05
linux appdata: Add url for donations 2018-08-02 14:19:29 +01:00
Hylke Bons
60fa414d9b
Update org.sparkleshare.SparkleShare.appdata.xml 2018-07-16 15:25:33 +01:00
Hylke Bons
ef0ed38639
linux appdata: Add Open Rating Service content rating
https://hughsie.github.io/oars/
2018-07-16 15:25:18 +01:00
Hylke Bons
b09a69e51d
readme linux: Add link to flatpak spec 2018-07-15 15:27:43 +01:00
Hylke Bons
2ec258e664
readme: Add flatpak instructions 2018-07-15 14:51:26 +01:00
Hylke Bons
3176efc8c3 linux appdata: Update date in release notes 2018-07-14 20:38:23 +01:00
Hylke Bons
e2ed80ba92 Update release notes 2018-07-14 20:03:22 +01:00
Hylke Bons
3e3f351c71
Merge pull request #1859 from hbons/fix/appindicator
Fix/appindicator
2018-07-14 19:42:12 +01:00
Hylke Bons
7f029b7a84
Merge branch 'master' into fix/appindicator 2018-07-14 19:31:01 +01:00
Hylke Bons
e2e735afee linux: Update symbolic icons 2018-07-14 19:30:20 +01:00
Hylke Bons
31b627032b linux setup: Adjust window size 2018-07-14 19:30:20 +01:00
Hylke Bons
14b08809a4 linux ui: Fix crash with multiple (crashed) instances 2018-07-14 19:30:20 +01:00
Hylke Bons
75cac6a570 readme: Add note about appindicator extension 2018-07-14 19:30:20 +01:00
Hylke Bons
41208f88b6 linux ui: Remove some debug prints 2018-07-14 19:30:19 +01:00
Hylke Bons
6379e31b3c git repo: Make sure Git LFS is always set up 2018-07-14 19:30:19 +01:00
Hylke Bons
9c1e6d8f7a sparkles: Rename Git source files 2018-07-14 19:30:19 +01:00
Hylke Bons
14759b5fa9 linux: Use 'gio set' instead of deprecated gvfs-set-attribute 2018-07-14 19:30:19 +01:00
Hylke Bons
c42a820909 linux: Update status icons to match new app icon 2018-07-14 19:30:19 +01:00
Hylke Bons
31e5daf720 linux: Rename icons to work in AppIndicator 2018-07-14 19:30:19 +01:00
Hylke Bons
da4f11d1f6 linux ui: Exit if appindicator is not installed but requested 2018-07-14 19:30:19 +01:00
Hylke Bons
ecf1d9df60 linux: Fix icon theme 2018-07-14 19:30:19 +01:00
Hylke Bons
507f9f8a4f linux: Add symbolic status icons 2018-07-14 19:30:19 +01:00
Hylke Bons
9463f3d7fe linux: New gnome-software screenshots 2018-07-14 19:30:19 +01:00
Hylke Bons
ff4195681c Update release notes + appdata 2018-07-14 19:30:19 +01:00
Hylke Bons
e9f324873c Fix appdata 2018-07-14 19:30:19 +01:00
Hylke Bons
95ab5a82a3 Update release notes 2018-07-14 19:30:19 +01:00
Hylke Bons
5a4924e93b linux: Update .appdata.xml with status icon notes 2018-07-14 19:30:19 +01:00
Hylke Bons
75aee1c8ed linux statusicon: Use symbolic icons when using appindicator 2018-07-14 19:30:19 +01:00
Hylke Bons
052181a4d0 linux: Log status icon type 2018-07-14 19:30:19 +01:00
Hylke Bons
b5c3005a8b linux: Move help options to startup script 2018-07-14 19:30:19 +01:00
Hylke Bons
32b46c27fd linux: Move help options to startup script 2018-07-14 19:30:19 +01:00
Hylke Bons
5f6153e8b3 linux: Add options to toggle statusicon type 2018-07-14 19:30:19 +01:00
Hylke Bons
1cf3d6a9f9 ui: Fix DisplayHelp method 2018-07-14 19:30:19 +01:00
Hylke Bons
4ccef836f4 build: Remove old Ubuntu icons 2018-07-14 19:30:19 +01:00
Hylke Bons
8191057748 linux statusicon: Rearrange menu 2018-07-14 19:30:19 +01:00
Hylke Bons
40bda9b126 linux statusicon: Remove notification toggle 2018-07-14 19:30:19 +01:00
Hylke Bons
07c41546bf Fix appindicator 2018-07-14 19:30:19 +01:00
Hylke Bons
a895f2a66c build: Disable appindicator 2018-07-14 19:30:19 +01:00
Hylke Bons
38b377716f linux readme: Separate build/run requirements 2018-07-14 19:27:26 +01:00
Hylke Bons
72f00d38e9
Merge pull request #1858 from olegstepura/patch-1
Fill in some gaps in Readme
2018-07-14 18:37:53 +01:00
Hylke Bons
69b6aeaa1a repo git: Pass commit message by file based on work by Emil Velikov (#1852) 2018-07-14 18:22:05 +01:00
Hylke Bons
f34a33bcdf Update AboutController.cs 2018-07-14 18:22:05 +01:00
Hylke Bons
e33a382707 linux: Update symbolic icons 2018-07-14 12:44:31 +01:00
Oleg Stepura
bd652ae4bc
Update README.md
I actually tested on Ubuntu only
2018-07-13 23:02:42 +02:00
Oleg Stepura
9c7d0dcaa2
Fill in some gaps
Also during some phase of build process I remember a build tool said I can use either `.net` or `mono`. And I tried installing `.net` using [microsoft instruction](https://www.microsoft.com/net/download/linux-package-manager/ubuntu18-04/runtime-2.0.8) but it still complained mono is missing. So I assume mono is the only possible dependency, I suggest to fix this as well.
2018-07-13 11:45:22 +02:00
Hylke Bons
ac06fa3967 linux setup: Adjust window size 2018-07-10 15:11:32 +02:00
Hylke Bons
ae97418566 linux ui: Fix crash with multiple (crashed) instances 2018-07-10 14:50:38 +02:00
Hylke Bons
84a149ad2a
readme: Add note about appindicator extension 2018-07-09 14:54:45 +02:00
Hylke Bons
b72608b3d1 linux ui: Remove some debug prints 2018-07-09 12:13:54 +02:00
Hylke Bons
60e2f0b118 git repo: Make sure Git LFS is always set up 2018-07-09 12:07:40 +02:00
Hylke Bons
03be4c471d sparkles: Rename Git source files 2018-07-09 11:23:21 +02:00
Hylke Bons
ce441a5a95 linux: Use 'gio set' instead of deprecated gvfs-set-attribute 2018-07-09 11:04:36 +02:00
Hylke Bons
f81d8cbded
Merge pull request #1856 from aredridel/mojave
Support for MacOS Mojave
2018-07-07 13:28:18 +02:00
Aria Stewart
584ba2ba51 Support for MacOS Mojave 2018-07-07 00:54:30 -04:00
Hylke Bons
d4536dfd62
repo git: Pass commit message by file based on work by Emil Velikov (#1852) 2018-06-21 09:10:16 +01:00
Hylke Bons
0bcdaac563 linux: Update status icons to match new app icon 2018-06-19 08:59:54 +01:00
Hylke Bons
1b02a87463 linux: Rename icons to work in AppIndicator 2018-06-18 18:54:12 +01:00
Hylke Bons
f4bfef1d08
Update AboutController.cs 2018-06-17 11:31:03 +01:00
Hylke Bons
a264684885 linux ui: Exit if appindicator is not installed but requested 2018-06-16 20:13:00 +01:00
Hylke Bons
f17431a549 linux: Fix icon theme 2018-06-16 20:13:00 +01:00
Hylke Bons
ed9e89374f linux: Add symbolic status icons 2018-06-16 20:13:00 +01:00
Hylke Bons
7fb6b20994 linux: New gnome-software screenshots 2018-06-16 20:13:00 +01:00
Hylke Bons
70b6b35fb2 Update release notes + appdata 2018-06-16 20:13:00 +01:00
Hylke Bons
aa631cd482 Fix appdata 2018-06-16 20:13:00 +01:00
Hylke Bons
fc05a1c8c7 Update release notes 2018-06-16 20:13:00 +01:00
Hylke Bons
4be5b21b16 linux: Update .appdata.xml with status icon notes 2018-06-16 20:13:00 +01:00
Hylke Bons
61c3962ac4 linux statusicon: Use symbolic icons when using appindicator 2018-06-16 20:13:00 +01:00
Hylke Bons
a906be5d39 linux: Log status icon type 2018-06-16 20:13:00 +01:00
Hylke Bons
07e9943f06 linux: Move help options to startup script 2018-06-16 20:13:00 +01:00
Hylke Bons
2ecc9a8a6e linux: Move help options to startup script 2018-06-16 20:13:00 +01:00
Hylke Bons
b39a5c94c5 linux: Add options to toggle statusicon type 2018-06-16 20:13:00 +01:00
Hylke Bons
fc899399f1 ui: Fix DisplayHelp method 2018-06-16 20:12:18 +01:00
Hylke Bons
f36ff660b3 build: Remove old Ubuntu icons 2018-06-16 20:12:18 +01:00
Hylke Bons
bf7dba5e00 linux statusicon: Rearrange menu 2018-06-16 20:12:18 +01:00
Hylke Bons
a269729e23 linux statusicon: Remove notification toggle 2018-06-16 20:12:18 +01:00
Hylke Bons
9f94ad12d3 Fix appindicator 2018-06-16 20:12:18 +01:00
Hylke Bons
08845d165f build: Disable appindicator 2018-06-16 20:12:18 +01:00
Hylke Bons
eb80b4e933
Merge pull request #1853 from hbons/fix/commit-message
Use commit message from file to avoid command line conflicts
2018-06-16 13:27:56 +01:00
Hylke Bons
df6cb3a77d repo git: Remove no longer needed string conversions 2018-06-16 12:45:24 +01:00
Hylke Bons
99e188db8f git fetcher: Chmod pre-push hook after clone 2018-06-16 12:45:24 +01:00
Hylke Bons
bde443481f git fetcher: Update comment 2018-06-16 12:45:24 +01:00
Hylke Bons
e37032b533 git: Don't let Git read other global or local configuration 2018-06-16 12:45:24 +01:00
Hylke Bons
99b6761acf repo git: Only run chmod for pre-push hook on non-Windows 2018-06-16 12:45:24 +01:00
Hylke Bons
214a383923 repo git: Always make sure LFS pre-push hook is executable 2018-06-16 12:45:24 +01:00
Hylke Bons
23b5396130 repo git: Only run chmod for pre-push hook on non-Windows 2018-06-15 22:28:05 +01:00
Hylke Bons
f48d43a75d repo git: Always make sure LFS pre-push hook is executable 2018-06-15 22:25:43 +01:00
Hylke Bons
6f173be21b repo git: Remove no longer needed commit message preparing 2018-06-15 17:45:34 +01:00
Hylke Bons
0813af3494 repo git: Fix whitespace 2018-06-15 17:44:40 +01:00
Hylke Bons
8ba4bfb5e7 repo git: Better variable names 2018-06-15 17:44:12 +01:00
Hylke Bons
f6b413ca8e repo git: Use commit message from file to avoid command line conflicts 2018-06-15 17:42:16 +01:00
Hylke Bons
545d274a8b
Merge pull request #1844 from hbons/fix/misc
repo git: Create size store files when they don't exist yet
2018-05-11 08:23:34 +01:00
Hylke Bons
4e0dff6956 repo git: Create size store files when they don't exist yet 2018-05-11 08:21:27 +01:00
Hylke Bons
f9c60cbd39 linux: Add scripts and data files to the project 2018-04-14 12:24:39 +01:00
Hylke Bons
307ed338c8 mac: Use descriptive arguments for some methods 2018-04-14 12:21:56 +01:00
Hylke Bons
e448362352
Merge pull request #1838 from IvanMalison/removeSomeTrailingWhitespace
Remove (some) trailing whitespace
2018-04-09 10:30:49 +01:00
Ivan Malison
453841d9da
Remove trailing whitespace 2018-04-08 20:41:59 -07:00
Hylke Bons
69b0736fd5 Update release notes for 3.28 2018-03-16 09:16:53 +00:00
Hylke Bons
37c8921a89
Merge pull request #1830 from hbons/fix/gtk-widgets
Fix/gtk widgets
2018-03-16 09:13:22 +00:00
Hylke Bons
bc645e5768
Merge pull request #1829 from hbons/fix/parse-git-log
https://www.youtube.com/watch?v=xxX81WmXjPg
2018-03-15 10:29:52 +00:00
Hylke Bons
4753d62816
Merge pull request #1828 from hbons/fix/appkit-fixes
Fix/appkit fixes
2018-03-15 10:17:13 +00:00
Hylke Bons
036e5369f3
Merge pull request #1827 from hbons/fix/logs-sharing-violation
Fix/logs sharing violation
2018-03-14 23:12:58 +00:00
Hylke Bons
0a847be8bb logger: Fix possible sharing violation on log file 2018-03-14 23:09:43 +00:00
Hylke Bons
e0a2e2a0b6 command: Only log working dir when it's explicitly set 2018-03-14 21:13:47 +00:00
Hylke Bons
33c506e8be
Merge pull request #1825 from hbons/fixes/cleanup
Fixes/cleanup
2018-03-14 16:29:38 +00:00
Hylke Bons
1369ac07b4 More accurate/pretty OS detection 2018-03-14 16:11:49 +00:00
Hylke Bons
62bcad5563 logger: Don't crash when not able to write to log 2018-03-14 16:10:52 +00:00
Hylke Bons
f308216bbc Always collect exceptions instead of swallowing them 2018-03-10 19:22:37 +00:00
Hylke Bons
b341b84894
Merge pull request #1823 from hbons/fixes/cleanup
Fixes/cleanup
2018-03-10 13:03:30 +00:00
Hylke Bons
5bf34b0db4 ssh fetcher: Fix build 2018-03-10 12:35:17 +00:00
Hylke Bons
dfa2cc4fff ssh fetcher: Since MD5 -> SHA256 move Windows FIPS warning is no longer needed 2018-03-10 12:34:18 +00:00
Hylke Bons
30fce55d38 ssh fetcher: Readability 2018-03-10 12:32:33 +00:00
Hylke Bons
05b5a3602d ssh fetcher: Remove broken .onion support 2018-03-10 12:31:29 +00:00
Hylke Bons
45f91bbacd ssh: Fix whitespace 2018-03-10 12:26:48 +00:00
Hylke Bons
dd0e3d36f7 git repo: Make sure to close file stream 2018-03-10 12:25:44 +00:00
Hylke Bons
0783c794ac
readme: Add link to TopIcons extension 2018-03-10 09:42:17 +00:00
Hylke Bons
02d64b1a15 mac eventlog: Move inline delegates to proper methods 2018-03-08 21:54:45 +00:00
Hylke Bons
c18049309a mac eventlog: Replace ugly resizing code with NSAutoResizingMasks 2018-03-08 21:31:58 +00:00
Hylke Bons
d1c9169c14
Merge pull request #1822 from hbons/fix/gtk-widgets
Fix/gtk-widgets
2018-03-08 20:13:03 +00:00
Hylke Bons
fee2151054
Merge pull request #1821 from hbons/fix/freeze-on-quit
Fix/freeze-on-quit
2018-03-08 10:38:40 +00:00
Hylke Bons
3212986ca7 sparkles: Make sure watcher exists befor disposing 2018-03-08 10:29:48 +00:00
Hylke Bons
9b3064684a controller: Allow for platform-specific quit methods and implement on Mac 2018-03-08 10:20:22 +00:00
Hylke Bons
2913e1142d mac controller: Clean up folder icon method 2018-03-08 10:19:00 +00:00
Hylke Bons
76719f5c36 https://www.youtube.com/watch?v=xxX81WmXjPg 2018-03-01 15:51:16 +00:00
Hylke Bons
9c201803bc https://www.youtube.com/watch?v=xxX81WmXjPg 2018-03-01 15:49:01 +00:00
Hylke Bons
f9db4bd7b3 linux eventlog: Remove not needed webview disposal/creation 2018-02-26 16:50:27 +00:00
Hylke Bons
8dbc6af3ef linux eventlog: Fix background color 2018-02-26 16:47:44 +00:00
Hylke Bons
df48c86d98 sparkles: Remove todo that's already a github issue 2018-02-26 16:20:27 +00:00
Hylke Bons
a905e9e155 linux note: Fix crash/warnings due to packing logic 2018-02-26 16:16:01 +00:00
Hylke Bons
a32a8870ee linux note: Fix default avatar image 2018-02-26 16:14:59 +00:00
Hylke Bons
b244cfc7b2 linux note: Make default button blue 2018-02-26 15:42:12 +00:00
Hylke Bons
740bc9b262 build: Fix appindicator detection logic 2018-02-26 09:58:48 +00:00
Hylke Bons
521e83e2a4 build: Correct dep name for appindicator 2018-02-25 18:13:35 +00:00
Hylke Bons
dec2925343
Update README.md 2018-02-25 17:16:42 +00:00
Hylke Bons
1da11c6d3c
Update README.md 2018-02-25 17:14:17 +00:00
Hylke Bons
4cd13d674f
Merge pull request #1818 from hbons/fix/parse-git-log
git repo: Simplify log parsing logic
2018-02-25 16:22:01 +00:00
Hylke Bons
21bca12e36 build: Travis gitter integration 2018-02-25 16:16:51 +00:00
Hylke Bons
dd97d564be git repo: Simplify log parsing logic 2018-02-25 16:12:23 +00:00
Hylke Bons
5fc2287150
Merge pull request #1817 from hbons/fix/parse-git-log
Fix parse-git-log
2018-02-25 08:46:48 +00:00
Hylke Bons
8eb4fdf28f Fix some whitespace 2018-02-24 20:47:42 +00:00
Hylke Bons
65edbd26a6 repo git: Fix and tidy up log parsing 2018-02-24 20:38:46 +00:00
Hylke Bons
c7cc2680aa
Merge pull request #1813 from hbons/fix/event-log
fix/event-log
2018-02-23 20:37:54 +00:00
Hylke Bons
66d7920058 mac eventlog: Fix file action icon paths 2018-02-23 20:28:36 +00:00
Hylke Bons
89849b8014 sparkles git: Fix git log parsing for new versions of git 2018-02-23 20:23:46 +00:00
Hylke Bons
6c67b53241 mac: Bump git version 2018-02-23 20:21:01 +00:00
Hylke Bons
6554f9298b
Update org.sparkleshare.SparkleShare.appdata.xml 2018-02-23 17:07:06 +00:00
Hylke Bons
0e1af867f3
linux: Add screenshots for gnome-software 2018-02-23 17:00:53 +00:00
Hylke Bons
614b12fb83 readme linux: Update build instructions 2018-02-22 01:09:41 +00:00
Hylke Bons
5adac2162a
Merge pull request #1812 from hbons/feature/gnome-release-schedule
Use GNOME version numbers
2018-02-22 22:15:08 +00:00
Hylke Bons
183d9dab83
Merge pull request #1810 from hbons/fix/flatpak-dugite-native
Set exec directory manually when in a flatpak
2018-02-22 17:53:20 +00:00
Hylke Bons
dc44d99f82
Update org.sparkleshare.SparkleShare.appdata.xml 2018-02-22 09:34:41 +00:00
Hylke Bons
33a58eb09a Update release notes for next version 2018-02-21 22:02:45 +00:00
Hylke Bons
6b01821091 Bump version 2018-02-21 22:02:26 +00:00
Hylke Bons
ae7455c886 linux controller: Set exec path to find the right subcommands 2018-02-21 17:45:35 +00:00
Hylke Bons
6c8aaceb65 readme: Add note for status icon 2018-02-21 16:47:01 +00:00
Hylke Bons
646a7ef701
Merge pull request #1808 from hbons/feature/meson
Use Meson build system
2018-02-21 09:05:23 +00:00
Hylke Bons
ec5b70c9be mac: Fix build 2018-02-21 08:55:10 +00:00
Hylke Bons
7108fae2cf build: Fix System.Xml.Linq reference 2018-02-21 08:55:10 +00:00
Hylke Bons
f3b8e74df4 travis: Add System.Xml.Linq deb 2018-02-21 08:55:10 +00:00
Hylke Bons
92dbc7e241 linux ui: Fix exception when there are multiple Run methods 2018-02-21 08:55:10 +00:00
Hylke Bons
2232d22259 build: Fix some hardcoded paths 2018-02-21 08:55:10 +00:00
Hylke Bons
285de02411 build: Fix some hardcoded paths 2018-02-21 08:55:10 +00:00
Hylke Bons
1852c6207c travis: Update build script for meson 2018-02-21 08:55:10 +00:00
Hylke Bons
1a920a6ac7 build: Install icons and finish last meson todo items 2018-02-21 08:55:10 +00:00
Hylke Bons
e7f5d7fb7d linux build: Put app files in right location and run post build script 2018-02-21 08:55:10 +00:00
Hylke Bons
628c18e6d2 linux readme: Update build instructions for Meson 2018-02-21 08:55:10 +00:00
Hylke Bons
73ac14df36 build: Add post install script for Meson 2018-02-21 08:55:10 +00:00
Hylke Bons
fcb1275325 Implement more of the meson build 2018-02-21 08:55:10 +00:00
Hylke Bons
1b20e8f31b Update .gitignore and remove leftover Makefile 2018-02-21 08:55:10 +00:00
Hylke Bons
72f3b5b8f9 Destroy autotools with fire 2018-02-21 08:55:10 +00:00
Hylke Bons
0a144e3fde build: Initial meson files 2018-02-21 08:54:29 +00:00
Hylke Bons
2db852e202
Update build.environment.mk 2018-02-20 22:52:41 +00:00
Hylke Bons
dad6b2dae0
Merge pull request #1807 from hbons/fix/tidy-xml
Tidy XML
2018-02-18 14:46:39 +00:00
Hylke Bons
cddaa86dba presets: Use Xml.Linq to write XML 2018-02-18 14:16:33 +00:00
Hylke Bons
d5a7620683 config: Use Xml.Linq for writing XML 2018-02-18 14:06:14 +00:00
Hylke Bons
30c4d10967 Correctly check for running flatpak 2018-02-18 14:03:56 +00:00
Hylke Bons
6bcc071f9e linux ui: Make note window part of the app 2018-02-18 11:27:47 +00:00
Hylke Bons
2cdeae95c7
Update README.md 2018-02-14 19:36:56 +00:00
Hylke Bons
19a7a63359
Update README.md 2018-02-14 19:33:11 +00:00
Hylke Bons
adbb804164
Merge pull request #1806 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2018-02-14 19:26:11 +00:00
The Gitter Badger
51f730416f Add Gitter badge 2018-02-14 19:19:53 +00:00
Guy Lunardi
2521952812 Changes to adjust for Flatpak seems to have broken local builds (regular packages). Also minor cosmetic fixes. 2018-02-11 23:38:53 +00:00
Hylke Bons
84b3fd1365
Merge pull request #1805 from hbons/fix/xdg-open
Fix/xdg-open
2018-02-12 11:38:38 +00:00
Hylke Bons
6514d71190 linux: Only use Gtk.ShowUri in flatpaks 2018-02-11 19:55:38 +00:00
Hylke Bons
942441696b linux eventlog: Suppress webkit warning 2018-02-11 19:50:58 +00:00
Hylke Bons
0e348b3667 Update .gitignore 2018-02-11 19:49:15 +00:00
Hylke Bons
f104de5138 linux eventlog: Fix whitespace 2018-02-11 16:28:45 +00:00
Hylke Bons
d004956894
Update README.md 2018-02-11 17:54:36 +00:00
Hylke Bons
06a16ff44a
Merge pull request #1803 from hbons/fix/linux-main-loop
Fix/linux main loop
2018-02-11 17:08:21 +00:00
Hylke Bons
1e3e595044
Merge branch 'master' into fix/linux-main-loop 2018-02-11 16:58:57 +00:00
Hylke Bons
44727f31f6
Merge pull request #1802 from hbons/fix/linux-status-icons
linux ui: Fix icon lookup for statusicon
2018-02-11 16:51:51 +00:00
Hylke Bons
972a0a0add Update .gitignore 2018-02-11 14:23:00 +00:00
Hylke Bons
140db317a7 linux ui: Fix icon lookup for statusicon 2018-02-11 14:01:54 +00:00
Hylke Bons
3e74b2cb6f linux: Detect right Run method for installed GTK+ bindings 2018-02-11 13:31:13 +00:00
Hylke Bons
1e799c5ce7 linux: Write GTK+ version to the logs 2018-02-11 13:30:08 +00:00
Hylke Bons
fc447cbdfd linux about: Fix warning 2018-02-11 13:26:09 +00:00
Hylke Bons
dc1fe2d972
readme: Add some Fedora build requirements 2018-02-11 10:39:00 +00:00
Hylke Bons
32901de236 build: Update Mac csproj 2018-01-22 12:33:38 +00:00
Hylke Bons
7e519b793a build: Fix build on newer versions of Xamarin.Mac 2018-01-22 12:04:51 +00:00
Hylke Bons
f46653ed9e logger: Keep a StreamWriter open to log, instead of opening+closing all the time 2018-01-22 12:03:08 +00:00
Hylke Bons
4426b8cd8f
Update ISSUE_TEMPLATE.md 2018-01-20 16:24:23 +00:00
Hylke Bons
a6d1663642
mac readme: typo 2018-01-13 19:25:05 +00:00
Hylke Bons
e93b27d3e2
mac readme: We no longer build Git ourselves 2018-01-13 19:23:22 +00:00
Hylke Bons
e3ca5052f4 presets: Fix local presets path. Closes #1792 2018-01-06 12:24:33 +01:00
Hylke Bons
a602ae7d49
Rename release-notes.txt to RELEASE_NOTES.txt 2018-01-06 12:19:37 +01:00
Hylke Bons
e35f7afbb8 Rearrange licenses and authors 2018-01-06 12:17:18 +01:00
Hylke Bons
a3482c920e
Update ISSUE_TEMPLATE.md 2018-01-06 12:11:51 +01:00
Hylke Bons
ed1e63b603 Update issue template 2018-01-06 12:10:10 +01:00
Hylke Bons
3625f752e7 Add a GitHub issue template 2018-01-06 12:04:07 +01:00
Hylke Bons
4a2e772112 Rearrange docs in line with Github's community guidelines 2018-01-06 11:39:00 +01:00
Hylke Bons
b3f33789f3 build: Warn (but don't stop) on git download SHA256 mismatch. Closes #1701 2018-01-02 15:22:52 +01:00
Hylke Bons
aca6fc29e3 build: Use verbose options downloading git 2018-01-02 14:17:03 +01:00
186 changed files with 4303 additions and 3791 deletions

View file

@ -20,6 +20,7 @@ Code:
Luis Cordova <cordoval@gmail.com>
Łukasz Jernaś <deejay1@srem.org>
Markus Stoll <post@mstoll.de>
Malte Kiefer <malte.kiefer@mailgermania.de>
Michael Monreal <michael.monreal@gmail.com>
Nick Richards <nick@nickr.org>
Oleg Khlystov <pktfag@gmail.com>

14
.github/CONTRIBUTING.md vendored Normal file
View file

@ -0,0 +1,14 @@
Hey there!
I'm Hylke, the creator of this project. It's about time I wrote something up about how to contribute to SparkleShare, so here goes...
Contributions to SparkleShare are always welcome! I'm not a great coder. I like to design icons and interfaces, so there are always bugs or things that can be done better. Take a look at the [list of open issues](https://github.com/hbons/SparkleShare/issues). Smaller issues or places where refactoring is needed are marked with `FIXME` or `TODO` in the source code. If you have a fix for SparkleShare, simply open a pull request against the master branch (keeping in mind the [[coding style]]) and if you think your change is significant enough to be copyrighted, feel free to add your name and email to the `AUTHORS` file. Releases are done at least once a month, so there won't be long waits for bug fixes.
SparkleShare tries to keep things simple and to stay out of people's way. Features are only added if they are essential and helpful to a majority of users. If you have a feature that you'd like to be added, please open an issue first, so there can be a discussion whether the feature is actually needed (or it may be it can be done in some other way); do not waste work on a feature that isn't actually desired. By limiting the amount of features, we can spend more time on making the core features solid in order to help people get things done.
Often requests come in to add preferences. I'm very pleased that we've been able to solve most problems reported and features requested without adding a "preference". Currently SparkleShare has only one preference: enabling/disabling notifications. Hopefully it will stay this way and we can withhold from adding a preference panel of some kind (but I can't rule it out). Figuring out how things can be done without burdening people with a preference is much more challenging and rewarding in my opinion. [Free Software UI](http://ometer.com/free-software-ui.html) is a great article about this topic and I recommend reading it.
Looking forward to your contributions! :)
Hylke

1
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1 @@
github: hbons

20
.github/ISSUE_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,20 @@
You can find session logs by date and version information in:
~/.config/org.sparkleshare.SparkleShare/logs/ on Linux and macOS
C:\Users\YOUR_USERNAME\AppData\Roaming\org.sparkleshare.SparkleShare\logs\ on Windows
To help us help you, please include the logs from around the time the issue occurred, as well as the SparkleShare version and info about your OS (displayed at the top of the log files). Then, tell us roughly in these steps what went wrong:
### What happened:
### What I expected to happen:
### This happens when:
1. …
2. …
3. …
Thanks for reporting your issue or feature request, it helps lots!

32
.gitignore vendored
View file

@ -12,35 +12,14 @@
*.sln.cache
*.user
*.resources
Makefile.in
Makefile
intltool-*
compile
configure
config.guess
config.h
config.h.in
config.log
config.status
config.sub
aclocal.m4
autom4te.cache/
bin/
build/
obj/
git-*
install-sh
libtool
ltmain.sh
lt*.m4
missing
build/m4/shave/shave
build/m4/*.m4
build/m4/shave/shave-libtool
Sparkles/InstallationInfo.Directory.cs
SparkleShare/Linux/sparkleshare
SparkleShare/Mac/git/*
SparkleShare/Mac/git*.gz
gnome-doc-utils.make
SparkleShare/Mac/git*
SparkleShare/Mac/*.tar.gz
/sparkleshare-*
desktop.ini
_ReSharper.*
@ -49,12 +28,13 @@ _ReSharper.*
*.wixpdb
*.wxs
*.dotCover
SparkleShare/Windows/build/
.vs/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/

View file

@ -14,7 +14,7 @@ before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo installer -pkg xamarin.mac*.pkg -target / ; fi
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker build --file build/ci/Dockerfile --tag sparkleshare:nightly . ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker build --file scripts/ci/Dockerfile --tag sparkleshare:nightly . ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then msbuild /p:Configuration=ReleaseMac SparkleShare.sln ; fi
before_deploy:
@ -24,3 +24,11 @@ before_deploy:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mv SparkleShare/Mac/bin/ReleaseMac/SparkleShare.app . ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then zip --recurse-paths sparkleshare-mac-nightly-${TRAVIS_COMMIT}.zip SparkleShare.app ; fi
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/f1a1178baa78d1162385
on_success: change
on_failure: always
on_start: never

View file

@ -1,25 +0,0 @@
ACLOCAL_AMFLAGS = -I build/m4/sparkleshare -I build/m4/shamrock -I build/m4/shave
basedirs = build Sparkles Sparkles/Git
SUBDIRS = $(basedirs) $(GUISUBDIRS)
DIST_SUBDIRS = $(basedirs) SparkleShare
EXTRA_DIST = \
News.txt \
README.md \
legal/License_for_SparkleShare.txt \
legal/License_for_Sparkles.txt \
legal/Authors.txt \
SparkleShare/Linux/README.md \
SparkleShare/Linux/org.sparkleshare.SparkleShare.appdata.xml
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update \
gnome-doc-utils.make
clean-local:
rm -rf $(top_builddir)/bin

View file

@ -1,29 +1,54 @@
# [SparkleShare](https://www.sparkleshare.org/)
[SparkleShare](https://www.sparkleshare.org/) is a file sharing and collaboration app. It works just like Dropbox, and you can run it on your own server. It's available for Linux distributions, macOS, and Windows. [Support the project on Patreon](https://www.patreon.com/SparkleShare).
[SparkleShare](https://www.sparkleshare.org/) is a file sharing and collaboration app. It works just like Dropbox, and you can run it on your own server. It's available for Linux distributions, macOS, and Windows.
![Banner](https://raw.githubusercontent.com/hbons/SparkleShare/master/SparkleShare/Common/Images/readme-banner.png)
You can support this project through [💕 GitHub Sponsors](https://github.com/sponsors/hbons).
## How does it work?
SparkleShare creates a special folder on your computer. You can add remotely hosted folders (or "projects") to this folder. These projects will be automatically kept in sync with both the host and all of your peers when someone adds, removes or edits a file.
## Install on Ubuntu or Fedora
You can install the package from your distribution (likely old and not updated often), but we recommend to get our Flatpak with automatic updates to always enjoy the latest and greatest:
```bash
flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.sparkleshare.SparkleShare
```
Now you can run SparkleShare from the apps menu.
**Note:** by default SparkleShare uses an AppIndicator status icon on Linux. If you use GNOME on a distribution other than Ubuntu, please install the [AppIndicator extension](https://extensions.gnome.org/extension/615/appindicator-support/). If you don't use GNOME, you can start SparkleShare with `--status-icon=gtk`.
## Install on macOS
Download the app from the [releases page](https://github.com/hbons/SparkleShare/releases).
## Set up a host
Under the hood SparkleShare uses the version control system [Git](https://git-scm.com/) and the large files extension [Git LFS](https://git-lfs.github.com), so setting up a host yourself is relatively easy. Using your own host gives you more privacy and control, as well as lots of cheap storage space and higher transfer speeds. We've made a simple [script](https://github.com/hbons/Dazzle) that does the hard work for you. If you need to manage a lot of projects and/or users we recommend hosting a [GitLab Community Edition](https://about.gitlab.com/installation/) instance.
## Build from source
`SparkleShare` is Free and Open Source software and licensed under the [GNU GPLv3 or later](legal/License_for_SparkleShare.txt). You are welcome to change and redistribute it under certain conditions. Its library `Sparkles` is licensed under the [GNU LGPLv3 or later](legal/License_for_Sparkles.txt).
`SparkleShare` is Free and Open Source software and licensed under the [GNU GPLv3 or later](LICENSE.md). You are welcome to change and redistribute it under certain conditions. Its library `Sparkles` is licensed under the [GNU LGPLv3 or later](LICENSE_Sparkles.md).
Here are instructions to build SparkleShare on [Linux distributions](SparkleShare/Linux/README.md), [macOS](SparkleShare/Mac/README.md), and [Windows](SparkleShare/Windows/README.md).
[![Build Status](https://travis-ci.org/hbons/SparkleShare.svg?branch=master)](https://travis-ci.org/hbons/SparkleShare)
[![Build Status](https://travis-ci.org/hbons/SparkleShare.svg?branch=master)](https://travis-ci.org/hbons/SparkleShare)
[![Join the chat at https://gitter.im/hbons/SparkleShare](https://badges.gitter.im/hbons/SparkleShare.svg)](https://gitter.im/hbons/SparkleShare?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## Useful links
[Official website](https://www.sparkleshare.org/), [Twitter](https://www.twitter.com/SparkleShare), [Wiki](https://www.github.com/hbons/SparkleShare/wiki), and [Source Code](https://www.github.com/hbons/SparkleShare).
- [sparkleshare.org](https://www.sparkleshare.org/)
- [@SparkleShare](https://www.twitter.com/SparkleShare), [@hbons](https://www.twitter.com/hbons)
- Community chatroom on [Gitter](https://www.gitter.im/hbons/SparkleShare)
- [Wiki](https://www.github.com/hbons/SparkleShare/wiki)
Have fun, make awesome. :)

View file

@ -1,3 +1,35 @@
3.38.0 (Sun 29 Nov, 2020):
- Added support for LibRAavatar
- Updated Gravatar cert fingerprint
- Removed planio from supported presets
- Support default branches that are not named 'master'
- Added support for nightly Flatpak builds
3.28.0 (Sat 14 Jul, 2018):
Fixed a bunch of crashes and lots of under-the-hood improvements.
SparkleShare will now follow the GNOME release schedule and version
number scheme as much as possible.
Please make sure to install the AppIndicator Support GNOME Shell extension
(https://extensions.gnome.org/extension/615/appindicator-support/) to display
status icons in GNOME 3.26 or later. Or start with --status-icon=gtk.
Linux:
- Use the Meson build system
- Use appindicator as the default status icon
- Fix event log parsing for newer versions of Git
- Flatpak improvements
macOS:
- Fix the system font in eventlog and related crash
- Fix hang when quitting the app
Special thanks to Thiago Santos and Renpytom for supporting the project on Patreon.
2.0.1 (Tue 19 Dec, 2017):
- Fix files created by conflict resolution being moved to the root folder

View file

@ -32,7 +32,7 @@ namespace SparkleShare {
public delegate void UpdateLabelEventDelegate (string text);
public readonly string WebsiteLinkAddress = "https://www.sparkleshare.org/";
public readonly string CreditsLinkAddress = "https://github.com/hbons/SparkleShare/blob/master/legal/Authors.txt";
public readonly string CreditsLinkAddress = "https://github.com/hbons/SparkleShare/blob/master/.github/AUTHORS.md";
public readonly string ReportProblemLinkAddress = "https://www.github.com/hbons/SparkleShare/issues";
public readonly string DebugLogLinkAddress = "file://" + SparkleShare.Controller.Config.LogFilePath;
@ -61,8 +61,10 @@ namespace SparkleShare {
UpdateLabelEvent ("Checking for updates…");
Thread.Sleep (500);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var web_client = new WebClient ();
var uri = new Uri ("http://www.sparkleshare.org/version");
var uri = new Uri ("https://www.sparkleshare.org/version");
try {
string latest_version = web_client.DownloadString (uri);
@ -73,7 +75,8 @@ namespace SparkleShare {
else
UpdateLabelEvent ("✓ You are running the latest version");
} catch {
} catch (Exception e) {
Logger.LogInfo ("UI", "Failed to download " + uri , e);
UpdateLabelEvent ("Couldnt check for updates\t");
}
}

View file

@ -32,17 +32,18 @@ namespace SparkleShare
static List<string> skipped_avatars = new List<string> ();
public static string GetAvatar (string email, int size, string target_path)
public static string GetAvatar (string email, int size, string target_path, string provider)
{
#if __MonoCS__
ServicePointManager.ServerCertificateValidationCallback = GetAvatarValidationCallBack;
if (provider == "gravatar")
ServicePointManager.ServerCertificateValidationCallback = GetGravatarValidationCallBack;
#endif
email = email.ToLower ();
if (skipped_avatars.Contains (email))
return null;
string avatars_path = Path.Combine (Path.GetDirectoryName (target_path), "avatars", size + "x" + size);
// Search avatars by file name, ignore extension
@ -66,10 +67,15 @@ namespace SparkleShare
Logger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
return null;
}
var client = new WebClient ();
string url = "https://gravatar.com/avatar/" + email.MD5 () + ".png?s=" + size + "&d=404";
string url = "";
if (provider == "libravatar")
url = "https://seccdn.libravatar.org/avatar/" + email.MD5 () + ".png?s=" + size + "&d=404";
else
url = "https://secure.gravatar.com/avatar/" + email.MD5 () + ".png?s=" + size + "&d=404";
try {
byte [] buffer = client.DownloadData (url);
@ -78,52 +84,53 @@ namespace SparkleShare
} else if (client.ResponseHeaders ["content-type"].Equals (MediaTypeNames.Image.Gif, StringComparison.InvariantCultureIgnoreCase)) {
avatar_file_path += ".gif";
} else {
avatar_file_path += ".png";
}
if (buffer.Length > 255) {
if (!Directory.Exists (avatars_path)) {
Directory.CreateDirectory (avatars_path);
Logger.LogInfo ("Avatars", "Created '" + avatars_path + "'");
}
File.WriteAllBytes (avatar_file_path, buffer);
Logger.LogInfo ("Avatars", "Fetched " + size + "x" + size + " avatar for " + email);
return avatar_file_path;
} else {
return null;
}
} catch (Exception e) {
Logger.LogInfo ("Avatars", "Error fetching avatar for " + email, e);
skipped_avatars.Add (email);
return null;
}
}
private static bool GetAvatarValidationCallBack (Object sender,
private static bool GetGravatarValidationCallBack (Object sender,
X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
X509Certificate2 certificate2 = new X509Certificate2 (certificate.GetRawCertData ());
// On some systems (mostly Linux) we can't assume the needed certificates are
// available, so we have to check the certificate's SHA-1 fingerprint manually.
//
// SHA1 fingerprinter obtained from https://www.gravatar.com/ on Oct 16 2015
// Set to expire on Oct 14 2018
string gravatar_cert_fingerprint = "1264B3F00814C6077D3853238771EE67FB6321C9";
// SHA1 fingerprinter obtained from https://www.gravatar.com/ on Oct 23 2020
// Set to expire on Nov 16 2022
string gravatar_cert_fingerprint = "846963703FD297724E91BDF47FFE4BC19E93EA15";
if (!certificate2.Thumbprint.Equals (gravatar_cert_fingerprint)) {
Logger.LogInfo ("Avatars", "Invalid certificate for https://www.gravatar.com/");
return false;
}
return true;
}
}

View file

@ -24,17 +24,17 @@ using System.Threading;
using Sparkles;
namespace SparkleShare {
public abstract class BaseController {
public BaseRepository [] Repositories {
get {
lock (this.repo_lock)
return this.repositories.GetRange (0, this.repositories.Count).ToArray ();
}
}
void AddRepository (BaseRepository repo)
{
lock (this.repo_lock) {
@ -42,15 +42,15 @@ namespace SparkleShare {
this.repositories.Sort ((x, y) => string.Compare (x.Name, y.Name));
}
}
void RemoveRepository (BaseRepository repo)
{
lock (this.repo_lock)
this.repositories.Remove (repo);
}
public BaseRepository GetRepoByName (string name)
{
lock (this.repo_lock) {
@ -58,15 +58,15 @@ namespace SparkleShare {
if (repo.Name.Equals (name))
return repo;
}
return null;
}
public Configuration Config { get; private set; }
public bool RepositoriesLoaded { get; private set; }
public string FoldersPath { get; private set; }
public double ProgressPercentage = 0.0;
public double ProgressSpeedUp = 0.0;
public double ProgressSpeedDown = 0.0;
@ -81,37 +81,37 @@ namespace SparkleShare {
public event Action ShowAboutWindowEvent = delegate { };
public event Action ShowEventLogWindowEvent = delegate { };
public event FolderFetchedEventHandler FolderFetched = delegate { };
public delegate void FolderFetchedEventHandler (string remote_url, string [] warnings);
public event FolderFetchErrorHandler FolderFetchError = delegate { };
public delegate void FolderFetchErrorHandler (string remote_url, string [] errors);
public event FolderFetchingHandler FolderFetching = delegate { };
public delegate void FolderFetchingHandler (double percentage, double speed, string information);
public event Action FolderListChanged = delegate { };
public event Action OnIdle = delegate { };
public event Action OnSyncing = delegate { };
public event Action OnError = delegate { };
public event InviteReceivedHandler InviteReceived = delegate { };
public delegate void InviteReceivedHandler (SparkleInvite invite);
public event NotificationRaisedEventHandler NotificationRaised = delegate { };
public delegate void NotificationRaisedEventHandler (ChangeSet change_set);
public event AlertNotificationRaisedEventHandler AlertNotificationRaised = delegate { };
public delegate void AlertNotificationRaisedEventHandler (string title, string message);
public bool FirstRun {
get { return Config.User.Email.Equals ("Unknown"); }
}
public List<string> Folders {
get {
List<string> folders = Config.Folders;
@ -131,32 +131,42 @@ namespace SparkleShare {
public bool NotificationsEnabled {
get {
string notifications_enabled = Config.GetConfigOption ("notifications");
if (string.IsNullOrEmpty (notifications_enabled)) {
Config.SetConfigOption ("notifications", bool.TrueString);
return true;
} else {
return notifications_enabled.Equals (bool.TrueString);
}
}
}
public bool AvatarsEnabled {
get {
string fetch_avatars_option = Config.GetConfigOption ("fetch_avatars");
if (fetch_avatars_option == null || fetch_avatars_option.Equals (bool.FalseString))
return false;
return true;
}
}
public string AvatarsProvider {
get {
string avatars_provider_string = Config.GetConfigOption ("avatars_provider");
if (avatars_provider_string == null)
return "gravatar";
return avatars_provider_string;
}
}
// Path where the plugins are kept
public abstract string PresetsPath { get; }
// Enables SparkleShare to start automatically at login
public abstract void CreateStartupItem ();
@ -168,62 +178,60 @@ namespace SparkleShare {
// Creates the SparkleShare folder in the user's home folder
public abstract void CreateSparkleShareFolder ();
// Opens the SparkleShare folder or an (optional) subfolder
public abstract void OpenFolder (string path);
// Opens a file with the appropriate application
public abstract void OpenFile (string path);
// Opens a file with the appropriate application
public virtual void OpenWebsite (string url) { }
// Copies text to the clipboard
public abstract void CopyToClipboard (string text);
// Allows for platform-specific quit and cleanup methods to be called on exit
public abstract void PlatformQuit ();
public abstract string EventLogHTML { get; }
public abstract string DayEntryHTML { get; }
public abstract string EventEntryHTML { get; }
BaseFetcher fetcher;
FileSystemWatcher watcher;
object repo_lock = new object ();
object check_repos_lock = new object ();
List<BaseRepository> repositories = new List<BaseRepository> ();
bool lost_folders_path = false;
public BaseController (Configuration config)
{
Config = config;
FoldersPath = Config.FoldersPath;
}
public virtual void Initialize ()
{
string version = InstallationInfo.Version;
if (InstallationInfo.Directory.StartsWith ("/app", StringComparison.InvariantCulture))
if (InstallationInfo.IsFlatpak)
version += " (Flatpak)";
Logger.LogInfo ("Environment", "SparkleShare " + version);
Logger.LogInfo ("Environment", "Git LFS " + Sparkles.Git.GitCommand.GitLFSVersion);
Logger.LogInfo ("Environment", "Git " + Sparkles.Git.GitCommand.GitVersion);
// TODO: Nice OS version names for Linux (Fedora 24, Ubuntu 16.04, etc.)
if (InstallationInfo.OperatingSystem == OS.Mac)
Logger.LogInfo ("Environment", InstallationInfo.MacOSVersion ());
else
Logger.LogInfo ("Environment", InstallationInfo.OperatingSystem + " (" + Environment.OSVersion + ")");
Logger.LogInfo ("Environment", InstallationInfo.OperatingSystem + " " + InstallationInfo.OperatingSystemVersion);
UserAuthenticationInfo = new SSHAuthenticationInfo ();
SSHAuthenticationInfo.DefaultAuthenticationInfo = UserAuthenticationInfo;
Preset.PresetsPath = PresetsPath;
InstallProtocolHandler ();
try {
CreateSparkleShareFolder ();
@ -239,19 +247,19 @@ namespace SparkleShare {
IncludeSubdirectories = false,
Path = FoldersPath
};
watcher.Created += OnFolderActivity;
watcher.EnableRaisingEvents = true;
}
int reopen_attempt_counts = 0;
public void HandleReopen ()
{
if (Repositories.Length > 0) {
ShowEventLogWindow ();
} else if (reopen_attempt_counts > 1) {
AlertNotificationRaised ("Hello!", "SparkleShare sits right here, as a status icon.");
reopen_attempt_counts = 0;
@ -267,31 +275,31 @@ namespace SparkleShare {
if (this.lost_folders_path) {
SparkleShare.UI.Bubbles.Controller.ShowBubble ("Where's your SparkleShare folder?",
"Did you put it on a detached drive?", null);
Environment.Exit (-1);
}
if (FirstRun) {
ShowSetupWindow (PageType.Setup);
} else {
new Thread (() => {
StartupInviteScan ();
CheckRepositories ();
RepositoriesLoaded = true;
UpdateState ();
}).Start ();
}
}
public void ShowSetupWindow (PageType page_type)
{
ShowSetupWindowEvent (page_type);
}
public void ShowAboutWindow ()
{
ShowAboutWindowEvent ();
@ -302,33 +310,33 @@ namespace SparkleShare {
{
ShowNoteWindowEvent (project);
}
public void ShowEventLogWindow ()
{
ShowEventLogWindowEvent ();
}
public void OpenSparkleShareFolder ()
{
OpenFolder (Config.FoldersPath);
}
public void OpenSparkleShareFolder (string name)
{
OpenFolder (new SparkleFolder (name).FullPath);
}
public void ToggleNotifications ()
{
bool notifications_enabled = Config.GetConfigOption ("notifications").Equals (bool.TrueString);
Config.SetConfigOption ("notifications", (!notifications_enabled).ToString ());
}
void CheckRepositories ()
{
lock (this.check_repos_lock) {
@ -395,21 +403,21 @@ namespace SparkleShare {
BaseRepository repo = null;
string folder_name = Path.GetFileName (folder_path);
string backend = Config.BackendByName (folder_name);
try {
repo = (BaseRepository) Activator.CreateInstance (
Type.GetType ("Sparkles." + backend + "." + backend + "Repository, Sparkles." + backend),
new object [] { folder_path, Config, SSHAuthenticationInfo.DefaultAuthenticationInfo });
} catch (Exception e) {
Logger.LogInfo ("Controller", "Failed to load backend '" + backend + "' for '" + folder_name + "': ", e);
return;
}
repo.ChangesDetected += delegate {
UpdateState ();
};
repo.SyncStatusChanged += delegate (SyncStatus status) {
if (status == SyncStatus.Idle) {
ProgressPercentage = 0.0;
@ -417,54 +425,62 @@ namespace SparkleShare {
ProgressSpeedDown = 0.0;
ProgressInformation = "";
}
UpdateState ();
};
repo.ProgressChanged += delegate {
ProgressPercentage = 0.0;
ProgressSpeedUp = 0.0;
ProgressSpeedDown = 0.0;
ProgressInformation = "";
double percentage = 0.0;
int repo_count = 0;
foreach (BaseRepository rep in Repositories) {
if (rep.ProgressPercentage > 0) {
percentage += rep.ProgressPercentage;
repo_count++;
}
if (rep.Status == SyncStatus.SyncUp)
ProgressSpeedUp += rep.ProgressSpeed;
if (rep.Status == SyncStatus.SyncDown)
ProgressSpeedDown += rep.ProgressSpeed;
}
if (repo_count == 1)
ProgressInformation = repo.ProgressInformation;
if (repo_count > 0)
ProgressPercentage = percentage / repo_count;
UpdateState ();
};
repo.NewChangeSet += delegate (ChangeSet change_set) {
if (AvatarsEnabled)
change_set.User.AvatarFilePath = Avatars.GetAvatar (change_set.User.Email, 48, Config.DirectoryPath);
if (AvatarsEnabled) {
string provider = "gravatar";
if (AvatarsProvider == "libravatar")
provider = AvatarsProvider;
change_set.User.AvatarFilePath = Avatars.GetAvatar (change_set.User.Email, 48, Config.DirectoryPath, provider);
}
NotificationRaised (change_set);
};
repo.ConflictResolved += delegate {
AlertNotificationRaised ("Resolved a file collision", "Local and server versions were kept.");
};
AddRepository (repo);
repo.Initialize ();
repo.Initialize ();
}
@ -477,31 +493,31 @@ namespace SparkleShare {
return;
}
}
void StartupInviteScan ()
{
foreach (string invite in Directory.GetFiles (FoldersPath, "*.xml"))
HandleInvite (invite);
}
void HandleInvite (FileSystemEventArgs args)
{
HandleInvite (args.FullPath);
}
void HandleInvite (string path)
{
if (this.fetcher != null &&
this.fetcher.IsActive) {
AlertNotificationRaised ("SparkleShare Setup seems busy", "Please wait for it to finish");
} else {
SparkleInvite invite = new SparkleInvite (path);
// It may be that the invite we received a path to isn't
// fully downloaded yet, so we try to read it several times
int tries = 0;
@ -509,37 +525,37 @@ namespace SparkleShare {
Thread.Sleep (100);
invite = new SparkleInvite (path);
tries++;
if (tries > 10) {
AlertNotificationRaised ("Oh noes!", "This invite seems screwed up...");
break;
}
}
if (invite.IsValid)
InviteReceived (invite);
File.Delete (path);
}
}
// Fires events for the current syncing state
void UpdateState ()
{
bool has_unsynced_repos = false;
bool has_syncing_repos = false;
foreach (BaseRepository repo in Repositories) {
if (repo.Status == SyncStatus.SyncDown || repo.Status == SyncStatus.SyncUp || repo.IsBuffering) {
has_syncing_repos = true;
break;
} else if (repo.Status == SyncStatus.Idle && repo.HasUnsyncedChanges) {
has_unsynced_repos = true;
}
}
if (has_syncing_repos)
OnSyncing ();
else if (has_unsynced_repos)
@ -547,7 +563,7 @@ namespace SparkleShare {
else
OnIdle ();
}
public List<StorageTypeInfo> FetcherAvailableStorageTypes {
get {
@ -559,31 +575,31 @@ namespace SparkleShare {
public void StartFetcher (SparkleFetcherInfo info)
{
string canonical_name = Path.GetFileName (info.RemotePath);
string backend = info.Backend;
string backend = info.Backend;
if (string.IsNullOrEmpty (backend))
backend = BaseFetcher.GetBackend (info.Address);
info.TargetDirectory = Path.Combine (Config.TmpPath, canonical_name);
if (Directory.Exists (info.TargetDirectory))
Directory.Delete (info.TargetDirectory, true);
Directory.Delete (info.TargetDirectory, recursive: true);
try {
this.fetcher = (BaseFetcher) Activator.CreateInstance (
Type.GetType ("Sparkles." + backend + "." + backend + "Fetcher, Sparkles." + backend),
new object [] { info, UserAuthenticationInfo});
} catch (Exception e) {
Logger.LogInfo ("Controller",
"Failed to load '" + backend + "' backend for '" + canonical_name + "' " + e.Message);
FolderFetchError (Path.Combine (info.Address, info.RemotePath).Replace (@"\", "/"),
new string [] {"Failed to load \"" + backend + "\" backend for \"" + canonical_name + "\""});
return;
}
this.fetcher.Finished += FetcherFinishedDelegate;
this.fetcher.Failed += FetcherFailedDelegate;
this.fetcher.ProgressChanged += FetcherProgressChangedDelgate;
@ -625,12 +641,12 @@ namespace SparkleShare {
{
this.fetcher.Stop ();
this.fetcher.Dispose ();
this.fetcher = null;
this.watcher.EnableRaisingEvents = true;
}
public bool CheckPassword (string password)
{
return this.fetcher.IsFetchedRepoPasswordCorrect (password);
@ -641,10 +657,9 @@ namespace SparkleShare {
{
this.fetcher.EnableFetchedRepoCrypto (password);
FinishFetcher (StorageType.Encrypted);
} // TODO: make this the main method. password optional. need to know storage type before Complete to allow crypto in lfs
// Make sure IsCryptoPasswordCorrect works with SparkleShare.txt checkout and LFS
}
public void FinishFetcher (StorageType selected_storage_type)
{
this.watcher.EnableRaisingEvents = false;
@ -655,17 +670,17 @@ namespace SparkleShare {
try {
Directory.Move (this.fetcher.TargetFolder, target_folder_path);
} catch (Exception e) {
Logger.LogInfo ("Controller", "Error moving directory, trying again...", e);
try {
ClearDirectoryAttributes (this.fetcher.TargetFolder);
Directory.Move (this.fetcher.TargetFolder, target_folder_path);
} catch (Exception x) {
Logger.LogInfo ("Controller", "Error moving directory", x);
this.fetcher.Dispose ();
this.fetcher = null;
this.watcher.EnableRaisingEvents = true;
@ -674,7 +689,7 @@ namespace SparkleShare {
}
string backend = BaseFetcher.GetBackend (this.fetcher.RemoteUrl.ToString ());
Config.AddFolder (target_folder_name, identifier, this.fetcher.RemoteUrl.ToString (), backend);
if (this.fetcher.FetchedRepoStorageType != StorageType.Plain) {
@ -692,10 +707,10 @@ namespace SparkleShare {
FolderListChanged ();
FolderFetched (this.fetcher.RemoteUrl.ToString (), this.fetcher.Warnings.ToArray ());
this.fetcher.Dispose ();
this.fetcher = null;
this.watcher.EnableRaisingEvents = true;
}
@ -717,14 +732,14 @@ namespace SparkleShare {
int suffix = 2 + Directory.GetDirectories (folder_group_path, folder_name + " (*").Length;
return string.Format ("{0} ({1})", folder_path, suffix);
}
public virtual void Quit ()
public void Quit ()
{
foreach (BaseRepository repo in Repositories)
repo.Dispose ();
Environment.Exit (0);
PlatformQuit ();
}

View file

@ -21,13 +21,20 @@ using Sparkles;
namespace SparkleShare {
public class BubblesController {
private bool fix_utf_encoding;
public event ShowBubbleEventHandler ShowBubbleEvent = delegate { };
public delegate void ShowBubbleEventHandler (string title, string subtext, string image_path);
public BubblesController ()
public BubblesController () : this(true)
{
}
public BubblesController (bool fix_utf_encoding)
{
this.fix_utf_encoding = fix_utf_encoding;
SparkleShare.Controller.AlertNotificationRaised += delegate (string title, string message) {
ShowBubble (title, message, null);
};
@ -40,10 +47,13 @@ namespace SparkleShare {
public void ShowBubble (string title, string subtext, string image_path)
{
byte [] title_bytes = Encoding.Default.GetBytes (title);
byte [] subtext_bytes = Encoding.Default.GetBytes (subtext);
title = Encoding.UTF8.GetString (title_bytes);
subtext = Encoding.UTF8.GetString (subtext_bytes);
if(fix_utf_encoding)
{
byte [] title_bytes = Encoding.Default.GetBytes (title);
byte [] subtext_bytes = Encoding.Default.GetBytes (subtext);
title = Encoding.UTF8.GetString (title_bytes);
subtext = Encoding.UTF8.GetString (subtext_bytes);
}
ShowBubbleEvent (title, subtext, image_path);
}

View file

@ -36,16 +36,16 @@ namespace SparkleShare {
public event UpdateContentEventEventHandler UpdateContentEvent = delegate { };
public delegate void UpdateContentEventEventHandler (string html);
public event UpdateChooserEventHandler UpdateChooserEvent = delegate { };
public delegate void UpdateChooserEventHandler (string [] folders);
public event UpdateChooserEnablementEventHandler UpdateChooserEnablementEvent = delegate { };
public delegate void UpdateChooserEnablementEventHandler (bool enabled);
public event UpdateSizeInfoEventHandler UpdateSizeInfoEvent = delegate { };
public delegate void UpdateSizeInfoEventHandler (string size, string history_size);
public event ShowSaveDialogEventHandler ShowSaveDialogEvent = delegate { };
public delegate void ShowSaveDialogEventHandler (string file_name, string target_folder_path);
@ -53,7 +53,7 @@ namespace SparkleShare {
private string selected_folder;
private RevisionInfo restore_revision_info;
private bool history_view_active;
private bool fix_utf_encoding;
public bool WindowIsOpen { get; private set; }
@ -144,8 +144,14 @@ namespace SparkleShare {
}
public EventLogController ()
public EventLogController () : this (true)
{
}
public EventLogController (bool fix_utf_encoding)
{
this.fix_utf_encoding = fix_utf_encoding;
SparkleShare.Controller.ShowEventLogWindowEvent += delegate {
if (!WindowIsOpen) {
ContentLoadingEvent ();
@ -162,7 +168,7 @@ namespace SparkleShare {
if (!string.IsNullOrEmpty (html))
UpdateContentEvent (html);
UpdateSizeInfoEvent (Size, HistorySize);
}).Start ();
@ -172,7 +178,7 @@ namespace SparkleShare {
WindowIsOpen = true;
ShowWindowEvent ();
};
SparkleShare.Controller.OnIdle += delegate {
if (this.history_view_active)
return;
@ -189,7 +195,7 @@ namespace SparkleShare {
UpdateSizeInfoEvent (Size, HistorySize);
};
SparkleShare.Controller.FolderListChanged += delegate {
if (this.selected_folder != null && !SparkleShare.Controller.Folders.Contains (this.selected_folder))
this.selected_folder = null;
@ -212,16 +218,16 @@ namespace SparkleShare {
{
if (string.IsNullOrEmpty (href) || href.StartsWith ("about:"))
return;
href = href.Replace ("%20", " ");
if (href.StartsWith ("http")) {
SparkleShare.Controller.OpenWebsite (href);
} else if (href.StartsWith ("restore://") && this.restore_revision_info == null) {
Regex regex = new Regex ("restore://(.+)/([a-f0-9]+)/(.+)/(.{3} [0-9]+ [0-9]+h[0-9]+)/(.+)");
Match match = regex.Match (href);
if (match.Success) {
string author_name = match.Groups [3].Value;
string timestamp = match.Groups [4].Value;
@ -240,7 +246,7 @@ namespace SparkleShare {
ShowSaveDialogEvent (file_name, target_folder_path);
}
} else if (href.StartsWith ("back://")) {
this.history_view_active = false;
SelectedFolder = this.selected_folder; // TODO: Return to the same position on the page
@ -257,8 +263,11 @@ namespace SparkleShare {
string folder = href.Replace ("history://", "").Split ("/".ToCharArray ()) [0];
string file_path = href.Replace ("history://" + folder + "/", "");
byte [] file_path_bytes = Encoding.Default.GetBytes (file_path);
file_path = Encoding.UTF8.GetString (file_path_bytes);
if(fix_utf_encoding)
{
byte [] file_path_bytes = Encoding.Default.GetBytes (file_path);
file_path = Encoding.UTF8.GetString (file_path_bytes);
}
file_path = Uri.UnescapeDataString (file_path);
@ -283,9 +292,9 @@ namespace SparkleShare {
} else {
if (href.StartsWith ("file:///"))
href = href.Substring (7);
SparkleShare.Controller.OpenFile (href);
}
}
}
@ -374,13 +383,13 @@ namespace SparkleShare {
html += "<tr>" +
"<td class='avatar'><img src='" + GetAvatarFilePath (change_set.User) + "'></td>" +
"<td class='name'>" + change_set.User.Name + "</td>" +
"<td class='date'>" +
change_set.Timestamp.ToString ("d MMM yyyy", CultureInfo.InvariantCulture) +
"<td class='date'>" +
change_set.Timestamp.ToString ("d MMM yyyy", CultureInfo.InvariantCulture) +
"</td>" +
"<td class='time'>" + change_set.Timestamp.ToString ("HH:mm") + "</td>" +
"<td class='restore'>" +
"<a href='restore://" + change_set.Folder.Name + "/" +
change_set.Revision + "/" + change_set.User.Name + "/" +
"<a href='restore://" + change_set.Folder.Name + "/" +
change_set.Revision + "/" + change_set.User.Name + "/" +
change_set.Timestamp.ToString ("MMM d H\\hmm", CultureInfo.InvariantCulture) + "/" +
file_path + "'>Restore&hellip;</a>" +
"</td>" +
@ -407,7 +416,7 @@ namespace SparkleShare {
foreach (ChangeSet change_set in change_sets) {
bool change_set_inserted = false;
foreach (ActivityDay stored_activity_day in activity_days) {
if (stored_activity_day.Date.Year == change_set.Timestamp.Year &&
stored_activity_day.Date.Month == change_set.Timestamp.Month &&
@ -443,7 +452,7 @@ namespace SparkleShare {
event_entry += "<dd class='" + change.Type.ToString ().ToLower () + "'>";
if (!change.IsFolder) {
event_entry += "<small><a href=\"history://" + change_set.Folder.Name + "/" +
event_entry += "<small><a href=\"history://" + change_set.Folder.Name + "/" +
change.Path + "\" title=\"View revisions\">" + change.Timestamp.ToString ("HH:mm") +
" &#x25BE;</a></small> &nbsp;";
@ -536,10 +545,13 @@ namespace SparkleShare {
private string FormatBreadCrumbs (string path_root, string path)
{
byte [] path_root_bytes = Encoding.Default.GetBytes (path_root);
byte [] path_bytes = Encoding.Default.GetBytes (path);
path_root = Encoding.UTF8.GetString (path_root_bytes);
path = Encoding.UTF8.GetString (path_bytes);
if(fix_utf_encoding)
{
byte [] path_root_bytes = Encoding.Default.GetBytes (path_root);
byte [] path_bytes = Encoding.Default.GetBytes (path);
path_root = Encoding.UTF8.GetString (path_root_bytes);
path = Encoding.UTF8.GetString (path_bytes);
}
path_root = path_root.Replace ("/", Path.DirectorySeparatorChar.ToString ());
path = path.Replace ("/", Path.DirectorySeparatorChar.ToString ());
@ -582,7 +594,7 @@ namespace SparkleShare {
private string SafeCombine (string path1, string path2)
{
string result = path1;
if (!result.EndsWith (Path.DirectorySeparatorChar.ToString ()))
result += Path.DirectorySeparatorChar;
@ -597,9 +609,9 @@ namespace SparkleShare {
{
if (!SparkleShare.Controller.AvatarsEnabled)
return "<!-- $pixmaps-path -->/user-icon-default.png";
string fetched_avatar = Avatars.GetAvatar (user.Email, 48, SparkleShare.Controller.Config.DirectoryPath);
string fetched_avatar = Avatars.GetAvatar (user.Email, 48, SparkleShare.Controller.Config.DirectoryPath, SparkleShare.Controller.AvatarsProvider);
if (!string.IsNullOrEmpty (fetched_avatar))
return "file://" + fetched_avatar.Replace ("\\", "/");
else

View file

@ -1,10 +0,0 @@
dist_html_DATA = \
day-entry.html \
event-entry.html \
event-log.html \
jquery.js
htmldir = $(pkgdatadir)/html/
MAINTAINERCLEANFILES = \
Makefile.in

View file

@ -0,0 +1,10 @@
html_files = ['event-log.html',
'day-entry.html',
'event-entry.html',
'jquery.js'
]
install_data(
sources: html_files,
install_dir: join_paths(install_dir, 'html'))

View file

@ -1,12 +0,0 @@
dist_pixmaps_DATA = \
side-splash.png \
user-icon-default.png \
text-balloon.png \
tutorial-slide-1.png\
tutorial-slide-2.png \
about.png
pixmapsdir = $(pkgdatadir)/pixmaps/
MAINTAINERCLEANFILES = \
Makefile.in

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View file

@ -1,182 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg9662"
height="24"
width="24"
version="1.1"
inkscape:version="0.91+devel r14094"
sodipodi:docname="planio.svg"
viewBox="0 0 24 24"
inkscape:export-filename="/Users/hbons/Personal/Projects/SparkleShare/SparkleShare/Common/Presets/planio.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="755"
id="namedview4365"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="16"
inkscape:cx="11.663307"
inkscape:cy="11.258003"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g4326"
inkscape:snap-global="true"
inkscape:snap-smooth-nodes="false"
inkscape:object-nodes="false"
inkscape:snap-bbox="true"
inkscape:snap-nodes="false"
inkscape:bbox-paths="false"
inkscape:bbox-nodes="true">
<inkscape:grid
type="xygrid"
id="grid4341" />
</sodipodi:namedview>
<defs
id="defs3">
<linearGradient
inkscape:collect="always"
id="linearGradient4455">
<stop
style="stop-color:#74caea;stop-opacity:1"
offset="0"
id="stop4457" />
<stop
style="stop-color:#34a1ca;stop-opacity:1"
offset="1"
id="stop4459" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4447">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4449" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4451" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4428">
<stop
style="stop-color:#005474;stop-opacity:1"
offset="0"
id="stop4430" />
<stop
style="stop-color:#37a9d4;stop-opacity:1"
offset="1"
id="stop4432" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4304">
<stop
style="stop-color:#ce2509;stop-opacity:1"
offset="0"
id="stop4306" />
<stop
style="stop-color:#a9210a;stop-opacity:1"
offset="1"
id="stop4308" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4304"
id="linearGradient4310"
x1="28.415369"
y1="9.2727699"
x2="31.521933"
y2="19.203804"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4428"
id="linearGradient4434"
x1="39.367229"
y1="23.90914"
x2="34.828079"
y2="3.3593886"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9885037,0,0,0.98994346,20.217703,1.7271878)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4447"
id="radialGradient4453"
cx="52.259827"
cy="9.6745958"
fx="52.259827"
fy="9.6745958"
r="9.5658912"
gradientTransform="matrix(2.1628252,0,0,2.9778165,-60.887608,-20.066985)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4455"
id="linearGradient4526"
x1="53.775932"
y1="11.068961"
x2="56.46653"
y2="23.231386"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata4">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g4326"
transform="matrix(1.01163,0,0,1.0101587,-20.452835,-1.7447338)"
style="stroke-width:0.9892233">
<path
sodipodi:type="inkscape:offset"
inkscape:radius="0.46403605"
inkscape:original="M 54.814453 3.7070312 C 53.729581 3.7104612 52.652708 3.8923279 51.626953 4.2460938 L 52.835938 10.195312 L 48.294922 6.1738281 C 48.133924 6.3131014 47.977862 6.4580369 47.826172 6.6074219 C 46.443434 7.9940104 45.502551 9.7611672 45.123047 11.683594 L 50.873047 13.607422 L 45.123047 15.53125 C 45.502551 17.453676 46.443434 19.218881 47.826172 20.605469 C 47.977861 20.754855 48.133925 20.89979 48.294922 21.039062 L 52.833984 17.017578 L 51.626953 22.966797 C 52.652675 23.320563 53.729581 23.502434 54.814453 23.505859 C 55.899326 23.502359 56.976198 23.320563 58.001953 22.966797 L 56.794922 17.017578 L 61.335938 21.039062 C 61.496935 20.89979 61.652997 20.754855 61.804688 20.605469 C 63.187426 19.218881 64.128308 17.453676 64.507812 15.53125 L 58.757812 13.605469 L 64.507812 11.683594 C 64.128343 9.7611672 63.187425 7.9940104 61.804688 6.6074219 C 61.652998 6.4580369 61.496935 6.3131014 61.335938 6.1738281 L 56.796875 10.195312 L 58.001953 4.2460938 C 56.976198 3.892328 55.899326 3.7104568 54.814453 3.7070312 z "
xlink:href="#path4468"
style="opacity:1;fill:url(#linearGradient4526);fill-opacity:1;stroke:url(#linearGradient4434);stroke-width:0.9892233;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4443"
d="m 54.8125,3.2421875 c -1.135761,0.00359 -2.26189,0.1940319 -3.335938,0.5644531 a 0.46408245,0.46408245 0 0 0 -0.304687,0.53125 l 0.931641,4.5878906 -3.5,-3.0996093 a 0.46408245,0.46408245 0 0 0 -0.611328,-0.00391 C 47.822934,5.9686805 47.658148,6.1215986 47.5,6.2773438 a 0.46408245,0.46408245 0 0 0 -0.002,0.00195 C 46.05043,7.7309453 45.065232,9.581363 44.667969,11.59375 a 0.46408245,0.46408245 0 0 0 0.308593,0.529297 l 4.4375,1.484375 -4.4375,1.484375 a 0.46408245,0.46408245 0 0 0 -0.308593,0.529297 c 0.397274,2.012444 1.382614,3.861006 2.830078,5.3125 a 0.46408245,0.46408245 0 0 0 0.002,0.002 c 0.158151,0.155749 0.322936,0.308666 0.492188,0.455078 a 0.46408245,0.46408245 0 0 0 0.611328,-0.0039 l 3.5,-3.09961 -0.931641,4.587891 a 0.46408245,0.46408245 0 0 0 0.304687,0.53125 c 1.074021,0.370424 2.200175,0.560867 3.335938,0.564453 a 0.46408245,0.46408245 0 0 0 0.0039,0 c 1.135722,-0.0037 2.261872,-0.194026 3.335938,-0.564453 A 0.46408245,0.46408245 0 0 0 58.457031,22.875 l -0.93164,-4.589844 3.501953,3.101563 a 0.46408245,0.46408245 0 0 0 0.611328,0.0039 c 0.169252,-0.146414 0.334038,-0.299332 0.492187,-0.455078 a 0.46408245,0.46408245 0 0 0 0.002,-0.002 c 1.447464,-1.451494 2.432804,-3.300056 2.830079,-5.3125 a 0.46408245,0.46408245 0 0 0 -0.308594,-0.529297 l -4.4375,-1.486328 4.4375,-1.482422 A 0.46408245,0.46408245 0 0 0 64.962891,11.59375 C 64.565662,9.5813519 63.580426,7.7309425 62.132812,6.2792969 a 0.46408245,0.46408245 0 0 0 -0.002,-0.00195 C 61.97271,6.1215979 61.807923,5.9686793 61.638672,5.8222656 a 0.46408245,0.46408245 0 0 0 -0.611328,0.00391 l -3.5,3.1015625 0.929687,-4.5898438 a 0.46408245,0.46408245 0 0 0 -0.304687,-0.53125 C 57.078298,3.43622 55.95217,3.2457738 54.816406,3.2421875 a 0.46408245,0.46408245 0 0 0 -0.0039,0 z"
inkscape:href="#path4468"
transform="translate(-22.735586)" />
<path
inkscape:href="#path4468"
d="m 54.8125,4.1933594 c -0.888505,0.00318 -1.766397,0.1572767 -2.617188,0.4082031 L 53.3125,10.097656 a 0.4869683,0.4869683 0 0 1 -0.798828,0.462891 L 48.302734,6.8300781 c -0.04455,0.042299 -0.09086,0.081766 -0.134765,0.125 -1.211927,1.2167288 -2.016154,2.7596114 -2.423828,4.4238279 l 5.283203,1.767578 a 0.4869683,0.4869683 0 0 1 0,0.921875 l -5.283203,1.767579 c 0.407646,1.663899 1.211754,3.205001 2.423828,4.421874 0.0439,0.04323 0.09021,0.0827 0.134765,0.125 l 4.208985,-3.730468 a 0.4869683,0.4869683 0 0 1 0.798828,0.46289 l -1.115235,5.496094 c 0.852018,0.251293 1.731274,0.405394 2.621094,0.408203 0.888542,-0.0032 1.766407,-0.157292 2.617188,-0.408203 l -1.115235,-5.496094 a 0.4869683,0.4869683 0 0 1 0.798829,-0.46289 l 4.210937,3.730468 c 0.04322,-0.04103 0.08826,-0.07918 0.130859,-0.121093 1.21414,-1.217521 2.019652,-2.760098 2.427735,-4.425781 l -5.283203,-1.769532 a 0.4869683,0.4869683 0 0 1 0,-0.921875 l 5.283203,-1.765625 C 63.479068,9.7146987 62.674819,8.1718096 61.462891,6.9550781 l -0.0039,-0.00391 c -0.0426,-0.041909 -0.08764,-0.080065 -0.130859,-0.1210938 L 57.119141,10.560547 A 0.4869683,0.4869683 0 0 1 56.320312,10.099609 L 57.433594,4.6015625 C 56.582803,4.3506351 55.70491,4.1965336 54.816406,4.1933594 l -0.0039,0 z"
id="path4445"
style="opacity:0.3;fill:#34a1ca;fill-opacity:1;stroke:url(#radialGradient4453);stroke-width:0.9892233;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xlink:href="#path4468"
inkscape:original="M 54.814453 3.7070312 C 53.729581 3.7104612 52.652708 3.8923279 51.626953 4.2460938 L 52.835938 10.195312 L 48.294922 6.1738281 C 48.133924 6.3131014 47.977862 6.4580369 47.826172 6.6074219 C 46.443434 7.9940104 45.502551 9.7611672 45.123047 11.683594 L 50.873047 13.607422 L 45.123047 15.53125 C 45.502551 17.453676 46.443434 19.218881 47.826172 20.605469 C 47.977861 20.754855 48.133925 20.89979 48.294922 21.039062 L 52.833984 17.017578 L 51.626953 22.966797 C 52.652675 23.320563 53.729581 23.502434 54.814453 23.505859 C 55.899326 23.502359 56.976198 23.320563 58.001953 22.966797 L 56.794922 17.017578 L 61.335938 21.039062 C 61.496935 20.89979 61.652997 20.754855 61.804688 20.605469 C 63.187426 19.218881 64.128308 17.453676 64.507812 15.53125 L 58.757812 13.605469 L 64.507812 11.683594 C 64.128343 9.7611672 63.187425 7.9940104 61.804688 6.6074219 C 61.652998 6.4580369 61.496935 6.3131014 61.335938 6.1738281 L 56.796875 10.195312 L 58.001953 4.2460938 C 56.976198 3.892328 55.899326 3.7104568 54.814453 3.7070312 z "
inkscape:radius="-0.48691961"
sodipodi:type="inkscape:offset"
transform="translate(-22.735586)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg8763" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="24.009" width="24.013" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs id="defs8765">
<filter id="filter3330" height="1" width="1" color-interpolation-filters="sRGB" y="0" x="0">
<feColorMatrix id="feColorMatrix3332" values="0" type="saturate"/>
</filter>
<filter id="filter4375-3-0" color-interpolation-filters="sRGB" width="1.0248" y="-.35609" x="-.012418" height="1.7122">
<feGaussianBlur id="feGaussianBlur4377-0-0" stdDeviation="1.0664062"/>
</filter>
<linearGradient id="linearGradient11481">
<stop id="stop11483" stop-color="#a04600" offset="0"/>
<stop id="stop11485" stop-color="#ce5c00" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient21508" y2="18.848" gradientUnits="userSpaceOnUse" x2="24.866" gradientTransform="matrix(.30890 0 0 .27375 301.94 218.48)" y1="30.385" x1="24.866">
<stop id="stop4910-6" stop-color="#ce5c00" offset="0"/>
<stop id="stop4912-9" stop-color="#f57900" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient21510" y2="221.38" xlink:href="#linearGradient11481" gradientUnits="userSpaceOnUse" x2="315.29" gradientTransform="translate(0,1)" y1="232.34" x1="315.05"/>
<radialGradient id="radialGradient21512" gradientUnits="userSpaceOnUse" cy="179.01" cx="306.1" gradientTransform="matrix(2.5489 0 0 .51730 -476.41 129.05)" r="8.6094">
<stop id="stop4615" stop-color="#fff" offset="0"/>
<stop id="stop4617" stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient21514" y2="-9.4962" gradientUnits="userSpaceOnUse" x2="25.188" gradientTransform="matrix(.28968 0 0 .17690 301.87 224.04)" y1="50.897" x1="25.188">
<stop id="stop4991-0" stop-color="#f57900" offset="0"/>
<stop id="stop4993-4" stop-color="#fcaf3e" offset=".060437"/>
<stop id="stop4995-6" stop-color="#fcaf3e" offset=".17754"/>
<stop id="stop4997-0" stop-color="#f57900" offset=".89422"/>
<stop id="stop4999-3" stop-color="#ce5c00" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient21516" y2="223.68" xlink:href="#linearGradient11481" gradientUnits="userSpaceOnUse" x2="314.47" y1="233.24" x1="314.49"/>
<linearGradient id="linearGradient21518" y2="208.75" gradientUnits="userSpaceOnUse" x2="320.56" y1="184.62" x1="312.44">
<stop id="stop4631" stop-color="#fff" offset="0"/>
<stop id="stop4633" stop-color="#fff" stop-opacity="0" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient21520" gradientUnits="userSpaceOnUse" cy="525.86" cx="147.02" gradientTransform="matrix(1.5869 1.2599e-7 -5.9773e-8 .75290 -86.287 85.9)" r="103.05">
<stop id="stop4349-3-4" stop-color="#fff" offset="0"/>
<stop id="stop16502" stop-color="#fff" stop-opacity=".49804" offset=".5"/>
<stop id="stop4351-6-4" stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient21532" y2="263.79" gradientUnits="userSpaceOnUse" x2="117.64" y1="220.79" x1="117.64">
<stop id="stop21528" stop-color="#fff" offset="0"/>
<stop id="stop21530" stop-color="#fff" stop-opacity="0.36" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient21612" y2="251.79" gradientUnits="userSpaceOnUse" x2="94.143" gradientTransform="translate(-333.93 -139.65)" y1="251.79" x1="70.143">
<stop id="stop21608" stop-color="#5dbbc6" offset="0"/>
<stop id="stop21610" stop-color="#96dadb" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient21638" y2="112.14" gradientUnits="userSpaceOnUse" x2="-249.54" y1="112.14" x1="-263.79">
<stop id="stop21634" stop-color="#3e3e3e" offset="0"/>
<stop id="stop21636" stop-opacity="0" offset="1"/>
</linearGradient>
</defs>
<metadata id="metadata8768">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(-474.29 -337.78)">
<g id="g8506" transform="translate(374.14 98)">
<rect id="rect3589" height="24" width="120" display="none" y="241.6" x="97.775" fill="#eeeeec"/>
<rect id="rect4698" height="48" width="48" display="none" y="25.598" x="87.775" fill="#eeeeec"/>
<rect id="rect4700" height="32" width="32" display="none" y="101.6" x="94.775" fill="#eeeeec"/>
<rect id="rect4702" height="22" width="22" display="none" y="152.6" x="94.775" fill="#eeeeec"/>
<rect id="rect4704" height="16" width="16" display="none" y="194.6" x="94.775" fill="#eeeeec"/>
<rect id="rect4706" height="24" width="24" display="none" y="151.6" x="93.775" fill="#eeeeec"/>
<rect id="rect4708" height="256" width="256" display="none" y="3.5985" x="-188.22" fill="#eeeeec"/>
<text id="text4710" style="enable-background:new" xml:space="preserve" font-size="18.301px" display="none" y="-2.8879292" x="-187.25412" font-family="Bitstream Vera Sans" fill="#000000"><tspan id="tspan4712" x="-187.25412" y="-2.8879292">places</tspan></text>
<text id="text4714" style="enable-background:new" line-height="125%" font-weight="bold" xml:space="preserve" font-size="18.301px" y="-2.8879292" x="-66.254158" font-family="Droid Sans" display="none" fill="#000000"><tspan id="tspan4716" x="-66.254158" y="-2.8879292">sparkleshare</tspan></text>
<rect id="rect22378" height="22" width="22" display="none" y="152.6" x="124.78" fill="#ededed"/>
<rect id="rect22380" height="24" width="24" display="none" y="151.6" x="123.78" fill="#ededed"/>
<rect id="rect12657-5" style="color:#000000;enable-background:new" rx="0" ry="0" height="0" width="2" y="165.6" x="467.78" fill="#888a85"/>
<use id="use3340" style="enable-background:new" xlink:href="#g3326" transform="translate(-203.22 225.6)" height="400" width="500" y="0" x="0"/>
<rect id="rect20728" transform="rotate(-90)" rx="3.7196" ry="3.7196" height="22.998" width="22.998" stroke="#6196c5" stroke-linecap="round" y="100.64" x="-263.29" stroke-width="1.002" fill="url(#linearGradient21612)"/>
<path id="path21534" opacity="0.333" d="m248.42 154.51h-6.8943s-2.6516 0.57452-3.0494-3.0494v-11.093s0.35356-1.5468 1.9446-1.9445h5.1265c1.5468 0.48614 2.0771 2.0771 2.0771 2.0771h6.8501s0.75131 0.30935 1.1049 1.1048v9.8276c-0.0442 2.1655-2.0992 3.0992-2.0992 3.0992z" transform="translate(-134.86 105.79)" stroke="#fff" stroke-width="1px" fill="none"/>
<g id="g21596" opacity=".5">
<path id="rect21555" opacity=".25" d="m103.14 239.79h7l2 12z"/>
<path id="path21558" opacity=".25" d="m121.14 263.79h-7l-2-12z"/>
<path id="path21560" opacity=".25" d="m121.14 239.79h-7l-2 12z"/>
<path id="path21562" opacity=".25" d="m103.14 263.79h7l2-12z"/>
<path id="path21570" opacity=".25" d="m124.14 242.79 0.00001 7-12 2z"/>
<path id="path21572" opacity=".25" d="m100.14 260.79-0.00001-7 12-2z"/>
<path id="path21574" opacity=".25" d="m124.14 260.79v-7l-12-2z"/>
<path id="path21576" opacity=".25" d="m100.14 242.79 0.00001 7 12 2z"/>
</g>
<g id="g21498" transform="translate(9.3677 49.194)">
<g id="g10370" style="enable-background:new" transform="translate(-208.22 -24.402)">
<path id="path10372" style="enable-background:new" d="m304.53 220.5c-0.57203 0.064-1.0035 0.54941-1 1.125v10.344c0.00006 0.62129 0.50371 1.1249 1.125 1.125h12.719c0.62129-0.00006 1.1249-0.50371 1.125-1.125v-8.3125c-0.00006-0.62129-0.50371-1.1249-1.125-1.125h-5.8438c-0.3334 0-0.20853 0.0527-0.40625-0.21875l-0.96875-1.3438c-0.2098-0.29211-0.54661-0.46632-0.90625-0.46875h-4.5938c-0.0416-0.002-0.0834-0.002-0.125 0z" fill-rule="evenodd" stroke="url(#linearGradient21510)" fill="url(#linearGradient21508)"/>
<path id="path10374" opacity=".4" style="enable-background:new" d="m304.62 221.44c-0.10325 0.0115-0.15688 0.0836-0.15625 0.1875v10.344c0.00001 0.11468 0.0728 0.18749 0.1875 0.1875h12.719c0.11468-0.00001 0.18749-0.0728 0.1875-0.1875v-8.3125c-0.00001-0.11468-0.0728-0.18749-0.1875-0.1875h-5.8438c-0.0587 0-0.0805-0.001-0.15625 0-0.0757 0.001-0.29559 0.0325-0.5625-0.125-0.26691-0.15754-0.34468-0.32772-0.375-0.375-0.0303-0.0473-0.0322-0.0522-0.0625-0.0937l-0.96875-1.3438c-0.0355-0.0494-0.0954-0.0933-0.15625-0.0937h-4.5938c-0.0104 0.00017-0.0208 0.00017-0.0313 0l0.00005-0.0001z" stroke="url(#radialGradient21512)" fill="none"/>
<path id="path10377" stroke-linejoin="round" style="enable-background:new" d="m309.78 222.5c-0.2554 0-0.45965 0.13987-0.59375 0.34375-0.43264 0.54853-1.1235 1.6562-1.6562 1.6562h-2.6875c-0.83807 0-1.3437 0.5428-1.3438 1.4688v6.125c0 1.3376 0.65057 2.4062 1.4688 2.4062h12.062c0.81819 0 1.4688-1.0687 1.4688-2.4062v-8.9062c0-0.37505-0.29595-0.6875-0.65625-0.6875h-8.0625z" fill-rule="evenodd" stroke="url(#linearGradient21516)" fill="url(#linearGradient21514)"/>
<path id="path10379" opacity=".40639" stroke-linejoin="round" style="enable-background:new" d="m310.94 183.5c-0.74659 0.74659-1.6086 2-2.4062 2h-2.6875c-0.20314 0-0.22418 0.0344-0.25 0.0625-0.0258 0.0281-0.0937 0.12531-0.0937 0.40625v7.5312h13v-10h-7.5625-0.00005z" transform="translate(-1,40)" stroke="url(#linearGradient21518)" fill="none"/>
<path id="path10381" opacity=".71595" style="enable-background:new" d="m250.06 476.75c-0.0458 1.3355-0.49131 2.357-1.2188 3.0625-0.72744 0.70545-1.7687 1.125-3.1875 1.125h-197.25c-1.4189 0-2.4805-0.44927-3.2188-1.1562-0.73826-0.70698-1.1869-1.7049-1.2188-3.0312v3c0.03187 1.3263 0.48049 2.3243 1.2188 3.0312 0.73826 0.70698 1.7998 1.1562 3.2188 1.1562h197.25c1.4188 0 2.4601-0.41955 3.1875-1.125 0.72744-0.70545 1.1729-1.727 1.2188-3.0625v-3z" fill-rule="evenodd" transform="matrix(.065331 0 0 .29412 301.15 90.449)" filter="url(#filter4375-3-0)" fill="url(#radialGradient21520)"/>
</g>
<path id="path5717-2" stroke-linejoin="round" style="enable-background:new" d="m103.15 201.61c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z" stroke="#c66f11" stroke-linecap="round" fill="none"/>
<path id="path5717" stroke-linejoin="round" style="enable-background:new" d="m103.15 200.61c-0.1681 0.0217-0.3164 0.15386-0.3579 0.31842l-0.7155 2.1494c-0.019 0.0382-0.032 0.0777-0.039 0.11973-0.038-0.0191-0.078-0.0318-0.1196-0.0395h-2.1866c-0.1222 0-0.2415 0.0637-0.3181 0.15921-0.1612 0.18061-0.1208 0.50107 0.079 0.63685l1.7891 1.3136 0.038 0.19106-0.6757 2.1095c-0.094 0.32925 0.3466 0.66015 0.6361 0.47763l1.7889-1.3134h0.229l1.7891 1.3134c0.1556 0.1019 0.3785 0.0841 0.5167-0.0395 0.1171-0.10827 0.1659-0.28518 0.1196-0.4379l-0.6759-2.1095c-0.064-0.0127 0.025-0.12737 0.038-0.19105l1.7889-1.3136c0.2004-0.13577 0.2401-0.45623 0.079-0.63684-0.076-0.0955-0.1958-0.15526-0.318-0.15921h-2.2264c-0.042 0.0127-0.081 0.0204-0.1196 0.0395-0.013-0.042-0.02-0.0815-0.039-0.11973l-0.6759-2.1493c-0.02-0.0752-0.062-0.14546-0.1196-0.19908-0.084-0.0815-0.2016-0.1261-0.318-0.11973l0.014 0.00013-0.0006 0.00001z" stroke="#fff" stroke-linecap="round" fill="none"/>
</g>
<rect id="rect21524" opacity=".83759" rx="2.8127" ry="2.8127" height="20.998" width="20.998" stroke="url(#linearGradient21532)" stroke-linecap="round" y="241.29" x="101.64" stroke-width="1.002" fill="none"/>
<rect id="rect21630" opacity="0.33" ry="3.9071" rx="3.9071" transform="rotate(-90)" height="22.998" width="22.998" stroke="url(#linearGradient21638)" stroke-linecap="round" y="100.64" x="-263.29" stroke-width="1.002" fill="none"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 186 KiB

View file

@ -0,0 +1,11 @@
image_files = ['tutorial-slide-1.png',
'tutorial-slide-2.png',
'side-splash.png',
'about.png',
'text-balloon.png',
'user-icon-default.png']
install_data(
sources: image_files,
install_dir: join_paths(install_dir, 'pixmaps'))

View file

@ -1,3 +0,0 @@
SUBDIRS = HTML \
Presets \
Images

View file

@ -39,8 +39,7 @@ namespace SparkleShare {
SparkleShare.Controller.ShowNoteWindowEvent += OnNoteWindowEvent;
if (SparkleShare.Controller.AvatarsEnabled && !SparkleShare.Controller.FirstRun)
AvatarFilePath = Avatars.GetAvatar (SparkleShare.Controller.CurrentUser.Email,
48, SparkleShare.Controller.Config.DirectoryPath);
AvatarFilePath = Avatars.GetAvatar (SparkleShare.Controller.CurrentUser.Email, 48, SparkleShare.Controller.Config.DirectoryPath, SparkleShare.Controller.AvatarsProvider);
}
@ -73,7 +72,7 @@ namespace SparkleShare {
void ResumeWithNote (string note)
{
{
BaseRepository repo = SparkleShare.Controller.GetRepoByName (CurrentProject);
repo.Resume (note);
}

View file

@ -1,17 +0,0 @@
dist_presets_DATA = \
bitbucket.xml \
github.xml \
gitlab.xml \
own-server.xml \
planio.xml \
github.png \
gitlab.png \
bitbucket.png \
planio.png \
own-server.png
presetsdir = $(pkgdatadir)/presets/
MAINTAINERCLEANFILES = \
Makefile.in

View file

@ -6,7 +6,7 @@
<description>Free code hosting for Git and Mercurial</description>
<icon>bitbucket.png</icon>
<backend>Git</backend>
<fingerprint>cf:35:d0:39:74:91:04:48:94:b6:e1:3c:02:29:09:60:ac:1b:1d:ac:6f:49:cd:28:8d:ec:fd:61:76:86:a7:50</fingerprint>
<fingerprint>4c:eb:19:11:0d:d6:19:65:7b:6a:40:8a:fb:b7:4d:51:81:a1:7a:07:74:4a:b5:22:0c:91:86:42:74:88:9b:bc</fingerprint>
</info>
<address>
<value>ssh://git@bitbucket.org/</value>
@ -19,4 +19,3 @@
</path>
</preset>
</sparkleshare>

View file

@ -7,7 +7,7 @@
<icon>github.png</icon>
<backend>Git</backend>
<storage_type>LargeFiles</storage_type>
<fingerprint>9d:38:5b:83:a9:17:52:92:56:1a:5e:c4:d4:81:8e:0a:ca:51:a2:64:f1:74:20:11:2e:f8:8a:c3:a1:39:49:8f</fingerprint>
<fingerprint>92:a3:7f:bd:5e:21:a5:3a:95:c7:16:e1:14:4f:44:2f:58:2b:94:d0:fa:fc:67:3e:b6:71:7a:4e:b5:1a:88:a7</fingerprint>
</info>
<address>
<value>ssh://git@github.com/</value>

View file

@ -0,0 +1,10 @@
preset_files = ['github.xml', 'github.png',
'gitlab.xml', 'gitlab.png',
'bitbucket.xml', 'bitbucket.png',
'own-server.xml', 'own-server.png'
]
install_data(
sources: preset_files,
install_dir: join_paths(install_dir, 'presets'))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
<preset>
<info>
<name>Planio</name>
<description>Online project management</description>
<icon>planio.png</icon>
<backend>Git</backend>
<fingerprint>38:29:13:0f:7c:74:67:22:c5:a6:a6:95:b4:b8:e0:ef:3d:e0:9e:87:02:58:ff:37:2c:8b:34:5a:ed:73:5d:81</fingerprint>
<announcements_url>tcp://sparkleshare-notifications.plan.io:443</announcements_url>
</info>
<address>
<value/>
<example>ssh://git@[account].plan.io</example>
</address>
<path>
<value/>
<example>/[account]-[project].git</example>
</path>
</preset>
</sparkleshare>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -346,8 +346,8 @@ namespace SparkleShare {
Logger.LogInfo ("Controller", "Added preset for " + uri.Host);
}
} catch {
Logger.LogInfo ("Controller", "Failed adding preset for " + uri.Host);
} catch (Exception e) {
Logger.LogInfo ("Controller", "Failed adding preset for " + uri.Host, e);
}
}
@ -533,10 +533,9 @@ namespace SparkleShare {
public void ShowFilesClicked ()
{
string folder_name = Path.GetFileName (PreviousPath);
string folder_name = Path.GetFileNameWithoutExtension (PreviousPath);
folder_name = folder_name.ReplaceUnderscoreWithSpace ();
// TODO: Open SparkleShare/$HOST
SparkleShare.Controller.OpenSparkleShareFolder (folder_name);
FinishPageCompleted ();
}
@ -561,7 +560,7 @@ namespace SparkleShare {
private bool IsValidEmail (string email)
{
return new Regex (@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]+$", RegexOptions.IgnoreCase).IsMatch (email);
return email.Contains ("@");
}
}
}

View file

@ -35,27 +35,8 @@ namespace SparkleShare {
#endif
public static void Main (string [] args)
{
if (args.Length != 0 && (args [0].Equals ("help") || args [0].Equals ("version")) &&
InstallationInfo.OperatingSystem != OS.Mac &&
InstallationInfo.OperatingSystem != OS.Windows) {
string n = Environment.NewLine;
Console.WriteLine (n +
"Share and collaborate by syncing with any Git repository instantly." + n +
n +
"Version: " + InstallationInfo.Version + n +
"Copyright (C) 2010 Hylke Bons and others" + n +
"This program comes with ABSOLUTELY NO WARRANTY." + n +
n +
"This is free software, and you are welcome to redistribute it" + n +
"under certain conditions. Please read the GNU GPLv3 for details." + n);
Environment.Exit (0);
}
// Only allow one instance of SparkleShare (on Windows)
if (!program_mutex.WaitOne (0, false)) {
if (!program_mutex.WaitOne (0, exitContext: false)) {
Console.WriteLine ("SparkleShare is already running.");
Environment.Exit (-1);
}

View file

@ -66,7 +66,7 @@ namespace SparkleShare {
}
if (IsPaused)
return "Syncing Paused";
return "Paused";
if (HasError) {
switch (repo.Error) {

View file

@ -1,222 +0,0 @@
# Makefile for program source directory in GNU NLS utilities package.
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
#
# This file may be copied and used freely without restrictions. It may
# be used in projects which are not available under a GNU Public License,
# but which still want to provide support for the GNU gettext functionality.
#
# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
#
# - Modified by jacob berkman <jacob@ximian.com> to install
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
#
# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
#
# We have the following line for use by intltoolize:
# INTLTOOL_MAKEFILE
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
datarootdir = @datarootdir@
libdir = @libdir@
DATADIRNAME = @DATADIRNAME@
itlocaledir = $(prefix)/$(DATADIRNAME)/locale
subdir = po
install_sh = @install_sh@
# Automake >= 1.8 provides @mkdir_p@.
# Until it can be supposed, use the safe fallback:
mkdir_p = $(install_sh) -d
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
GMSGFMT = @GMSGFMT@
MSGFMT = @MSGFMT@
XGETTEXT = @XGETTEXT@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
ALL_LINGUAS = @ALL_LINGUAS@
PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
POTFILES = \
# This comment gets stripped out
CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
.SUFFIXES:
.SUFFIXES: .po .pox .gmo .mo .msg .cat
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@;
.po.pox:
$(MAKE) $(GETTEXT_PACKAGE).pot
$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
.po.mo:
$(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
.po.gmo:
$(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.po.cat:
sed -f ../intl/po2msg.sed < $< > $*.msg \
&& rm -f $@ && gencat $@ $*.msg
all: all-@USE_NLS@
all-yes: $(CATALOGS)
all-no:
$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(GENPOT)
install: install-data
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
$(mkdir_p) $$dir; \
if test -r $$lang.gmo; then \
$(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
else \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
echo "installing $(srcdir)/$$lang.gmo as" \
"$$dir/$(GETTEXT_PACKAGE).mo"; \
fi; \
if test -r $$lang.gmo.m; then \
$(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
if test -r $(srcdir)/$$lang.gmo.m ; then \
$(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
$$dir/$(GETTEXT_PACKAGE).mo.m; \
echo "installing $(srcdir)/$$lang.gmo.m as" \
"$$dir/$(GETTEXT_PACKAGE).mo.m"; \
else \
true; \
fi; \
fi; \
done
# Empty stubs to satisfy archaic automake needs
dvi info ctags tags CTAGS TAGS ID:
# Define this as empty until I found a useful application.
install-exec installcheck:
uninstall:
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
done
check: all $(GETTEXT_PACKAGE).pot
rm -f missing notexist
srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
if [ -r missing -o -r notexist ]; then \
exit 1; \
fi
mostlyclean:
rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
rm -f .intltool-merge-cache
clean: mostlyclean
distclean: clean
rm -f Makefile Makefile.in POTFILES stamp-it
rm -f *.mo *.msg *.cat *.cat.m *.gmo
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f Makefile.in.in
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
extra_dists="$(EXTRA_DISTFILES)"; \
for file in $$extra_dists; do \
test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
done; \
for file in $$dists; do \
test -f $$file || file="$(srcdir)/$$file"; \
ln $$file $(distdir) 2> /dev/null \
|| cp -p $$file $(distdir); \
done
update-po: Makefile
$(MAKE) $(GETTEXT_PACKAGE).pot
tmpdir=`pwd`; \
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
echo "$$lang:"; \
result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
if $$result; then \
if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
:; \
else \
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
rm -f $$tmpdir/$$lang.new.po; \
exit 1; \
fi; \
fi; \
else \
echo "msgmerge for $$lang.gmo failed!"; \
rm -f $$tmpdir/$$lang.new.po; \
fi; \
done
Makefile POTFILES: stamp-it
@if test ! -f $@; then \
rm -f stamp-it; \
$(MAKE) stamp-it; \
fi
stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
$(SHELL) ./config.status
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View file

@ -31,8 +31,6 @@ namespace SparkleShare {
public About () : base ("About SparkleShare")
{
SetWmclass ("SparkleShare", "SparkleShare");
IconName = "org.sparkleshare.SparkleShare";
Resizable = false;
WindowPosition = WindowPosition.CenterAlways;
@ -45,11 +43,11 @@ namespace SparkleShare {
Controller.WindowClosed ();
args.RetVal = true;
};
KeyPressEvent += delegate (object o, KeyPressEventArgs args) {
if (args.Event.Key == Gdk.Key.Escape ||
(args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) {
Controller.WindowClosed ();
}
};
@ -80,10 +78,10 @@ namespace SparkleShare {
void CreateAbout ()
{
CssProvider window_css_provider = new CssProvider ();
Image image = UserInterfaceHelpers.GetImage ("about.png");
string image_path = InstallationInfo.Directory + "/pixmaps/about.png";
window_css_provider.LoadFromData ("window, GtkWindow {" +
" background-image: url(\"/app/share/sparkleshare/pixmaps/about.png\");" +
" background-image: url('" + image_path + "');" +
" background-repeat: no-repeat;" +
" background-position: left bottom;" +
"}");
@ -104,7 +102,7 @@ namespace SparkleShare {
Xalign = 0, Xpad = 0
};
if (InstallationInfo.Directory.StartsWith ("/app", StringComparison.InvariantCulture))
if (InstallationInfo.IsFlatpak)
version.Text += " (Flatpak)";
updates = new Label ("Checking for updates…") {
@ -116,8 +114,8 @@ namespace SparkleShare {
Xalign = 0, Xpad = 0
};
var license = new Label ("SparkleShare is Open Source and youre free to use,\n" +
"change, and share it under the GNU GPLv3") {
var license = new Label ("SparkleShare is Open Source and youre free to\n" +
"use, change, and share it under the GNU GPLv3") {
Xalign = 0, Xpad = 0
};
@ -137,7 +135,7 @@ namespace SparkleShare {
layout_vertical.PackStart (updates, false, false, 0);
layout_vertical.PackStart (copyright, false, false, 6);
layout_vertical.PackStart (license, false, false, 6);
layout_vertical.PackStart (links_layout, false, false, 16);
layout_vertical.PackStart (links_layout, false, false, 6);
links_layout.PackStart (website_link, false, false, 0);
links_layout.PackStart (credits_link, false, false, 0);
@ -151,13 +149,13 @@ namespace SparkleShare {
Add (layout_horizontal);
}
}
class Link : Label {
public Link (string label, string url)
{
Markup = string.Format ("<a href=\"{0}\">{1}</a>", url, label);
Markup = string.Format ("<a href=\"{0}\">{1}</a>", url, label);
CanFocus = false;
CssProvider css_provider = new CssProvider ();

View file

@ -23,14 +23,16 @@ using Gtk;
using Mono.Unix.Native;
using Sparkles;
using Sparkles.Git;
namespace SparkleShare {
public class Controller : BaseController {
public Controller (Configuration config)
: base (config)
public Controller (Configuration config) : base (config)
{
if (InstallationInfo.IsFlatpak)
GitCommand.ExecPath = Path.Combine ("/app", "libexec", "git-core");
}
@ -45,13 +47,13 @@ namespace SparkleShare {
public override void SetFolderIcon ()
{
var gvfs_set_attribute = new Command ("gvfs-set-attribute", "\"" + Configuration.DefaultConfiguration.FoldersPath + "\" " +
var gio_set = new Command ("gio", "set \"" + Configuration.DefaultConfiguration.FoldersPath + "\" " +
"metadata::custom-icon-name org.sparkleshare.SparkleShare");
gvfs_set_attribute.StartInfo.EnvironmentVariables ["XDG_DATA_HOME"] =
Path.Combine (Config.HomePath, ".local", "share");
string XDG_DATA_HOME = Path.Combine (Config.HomePath, ".local", "share");
gio_set.StartInfo.EnvironmentVariables ["XDG_DATA_HOME"] = XDG_DATA_HOME;
gvfs_set_attribute.StartAndWaitForExit ();
gio_set.StartAndWaitForExit ();
}
@ -98,7 +100,10 @@ namespace SparkleShare {
public override void OpenFile (string path)
{
Global.ShowUri (Gdk.Screen.Default, path);
if (InstallationInfo.IsFlatpak)
Global.ShowUri (Gdk.Screen.Default, path);
else
new Command ("xdg-open", string.Format ("\"{0}\"", path)).Start ();
}
@ -136,5 +141,11 @@ namespace SparkleShare {
return Path.Combine (InstallationInfo.Directory, "presets");
}
}
public override void PlatformQuit ()
{
Environment.Exit (0);
}
}
}

View file

@ -40,19 +40,18 @@ namespace SparkleShare {
public EventLog () : base ("Recent Changes")
{
SetWmclass ("SparkleShare", "SparkleShare");
TypeHint = Gdk.WindowTypeHint.Dialog;
IconName = "org.sparkleshare.SparkleShare";
SetSizeRequest (480, 640);
Gdk.Rectangle monitor_0_rect = Gdk.Screen.Default.GetMonitorGeometry (0);
pos_x = (int) (monitor_0_rect.Width * 0.61);
pos_y = (int) (monitor_0_rect.Height * 0.5 - (HeightRequest * 0.5));
Resize (480, (int) (monitor_0_rect.Height * 0.8));
pos_x = (int) (monitor_0_rect.Width * 0.62);
pos_y = (int) ((monitor_0_rect.Height - (monitor_0_rect.Height * 0.8)) / 2);
this.size_label = new Label () { Xalign = 0, Markup = "<b>Size:</b> …" };
this.history_label = new Label () { Xalign = 0, Markup = "<b>History:</b> …" };
@ -167,44 +166,34 @@ namespace SparkleShare {
html = html.Replace ("<!-- $a-hover-color -->", "#009ff8");
html = html.Replace ("<!-- $a-color -->", "#0085cf");
html = html.Replace ("<!-- $body-font-family -->", StyleContext.GetFont (StateFlags.Normal).Family);
html = html.Replace ("<!-- $body-font-size -->", (double) (StyleContext.GetFont (StateFlags.Normal).Size / 1024 + 3) + "px");
html = html.Replace ("<!-- $body-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Normal)));
// TODO
// html = html.Replace ("<!-- $body-background-color -->",
// UserInterfaceHelpers.RGBAToHex (new TreeView ().StyleContext.GetStyleProperty ("background-color")));
html = html.Replace ("<!-- $body-background-color -->",UserInterfaceHelpers.RGBAToHex (new TreeView ().StyleContext.GetBackgroundColor (StateFlags.Normal)));
html = html.Replace ("<!-- $day-entry-header-font-size -->", (StyleContext.GetFont (StateFlags.Normal).Size / 1024 + 3) + "px");
html = html.Replace ("<!-- $day-entry-header-background-color -->",
UserInterfaceHelpers.RGBAToHex (StyleContext.GetBackgroundColor (StateFlags.Normal)));
html = html.Replace ("<!-- $day-entry-header-background-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetBackgroundColor (StateFlags.Normal)));
html = html.Replace ("<!-- $secondary-font-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
html = html.Replace ("<!-- $small-color -->", UserInterfaceHelpers.RGBAToHex (StyleContext.GetColor (StateFlags.Insensitive)));
html = html.Replace ("<!-- $small-font-size -->", "90%");
html = html.Replace ("<!-- $pixmaps-path -->", pixmaps_path);
html = html.Replace ("<!-- $document-added-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-added.png"));
html = html.Replace ("<!-- $document-edited-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-edited.png"));
html = html.Replace ("<!-- $document-deleted-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-deleted.png"));
html = html.Replace ("<!-- $document-moved-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-moved.png"));
html = html.Replace ("<!-- $document-added-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-added.png"));
html = html.Replace ("<!-- $document-edited-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-edited.png"));
html = html.Replace ("<!-- $document-deleted-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-deleted.png"));
html = html.Replace ("<!-- $document-moved-background-image -->", "file://" + IO.Path.Combine (icons_path, "document-moved.png"));
this.spinner.Stop ();
this.scrolled_window.Remove (this.scrolled_window.Child);
this.web_view.Dispose ();
this.web_view = CreateWebView ();
this.web_view.LoadHtml (html, "file:///");
this.scrolled_window.Add (this.web_view);
this.content_wrapper.Remove (this.content_wrapper.Child);
this.content_wrapper.Add (this.scrolled_window);
this.scrolled_window.ShowAll ();
}
WebView CreateWebView ()
{
@ -212,7 +201,7 @@ namespace SparkleShare {
web_view.Settings.EnablePlugins = false;
web_view.LinkClicked += Controller.LinkClicked;
return web_view;
}
@ -230,13 +219,14 @@ namespace SparkleShare {
return false;
}
#pragma warning disable 0612
string uri = (decision as NavigationPolicyDecision).Request.Uri;
if (uri.Equals ("file:///")) {
decision.Use ();
return false;
}
LinkClicked (uri);
decision.Ignore ();

View file

@ -1,10 +0,0 @@
SUBDIRS = icons
dist_pixmaps_DATA = \
tutorial-slide-3.png
pixmapsdir = $(pkgdatadir)/pixmaps/
MAINTAINERCLEANFILES = \
Makefile.in

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

View file

@ -1,4 +0,0 @@
SUBDIRS = hicolor \
ubuntu-mono-dark \
ubuntu-mono-light

View file

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 193 B

View file

Before

Width:  |  Height:  |  Size: 428 B

After

Width:  |  Height:  |  Size: 428 B

View file

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 445 B

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,47 +0,0 @@
theme = hicolor
app_themedir = $(pkgdatadir)/icons/$(theme)
system_themedir = $(datadir)/icons/$(theme)
system_theme_icons = \
apps,org.sparkleshare.SparkleShare-16.png \
apps,org.sparkleshare.SparkleShare-symbolic.svg \
apps,org.sparkleshare.SparkleShare-22.png \
apps,org.sparkleshare.SparkleShare-24.png \
apps,org.sparkleshare.SparkleShare-32.png \
apps,org.sparkleshare.SparkleShare-48.png \
apps,org.sparkleshare.SparkleShare-256.png \
apps,org.sparkleshare.SparkleShare-512.png
app_theme_icons = \
status,document-added-12.png \
status,document-edited-12.png \
status,document-deleted-12.png \
status,document-moved-12.png \
status,list-point-16.png \
status,process-syncing-up-24.png \
status,process-syncing-down-24.png \
status,process-syncing-24.png \
status,process-syncing-error-24.png \
status,process-syncing-up-48.png \
status,process-syncing-down-48.png \
status,process-syncing-48.png \
status,process-syncing-error-48.png
install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
-t "$(theme)" \
-s "$(srcdir)" \
-d "x$(DESTDIR)" \
-m "$(mkinstalldirs)" \
-x "$(INSTALL_DATA)"
install-data-local:
@-$(install_icon_exec) -i -b "$(system_themedir)" $(system_theme_icons)
@-$(install_icon_exec) -i -b "$(app_themedir)" $(app_theme_icons)
uninstall-hook:
@-$(install_icon_exec) -u -b "$(system_themedir)" $(system_theme_icons)
@-$(install_icon_exec) -u -b "$(app_themedir)" $(app_theme_icons)
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(wildcard *.png *.svg)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<clipPath id="a">
<rect height="128" width="128"/>
</clipPath>
<clipPath id="b">
<rect height="128" width="128"/>
</clipPath>
<filter id="c" height="100%" width="100%" x="0%" y="0%">
<feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
</filter>
<mask id="d">
<g clip-path="url(#b)" filter="url(#c)">
<g clip-path="url(#a)">
<path d="m 20.679688 11.867188 c -4.796876 -0.023438 -8.6875 3.890624 -8.6875 8.6875 v 86.890624 h 95.453124 c 4.945313 0 8.6875 -3.441406 8.6875 -8.734374 v -70 c 0 -4.796876 -3.890624 -8.691407 -8.6875 -8.6875 l -51.445312 -0.023438 l -8 -8 z m 0 0" fill="#fb8c14"/>
<path d="m 64 34 l -8.6875 8.277344 h -34.632812 c -4.796876 0 -8.6875 3.890625 -8.6875 8.6875 v 65.167968 h 95.488281 c 4.320312 0 8.652343 -3.59375 8.652343 -8.683593 v -64.734375 c 0 -4.796875 -3.890624 -8.6875 -8.6875 -8.6875 z m 0 0" fill="#fff1db"/>
<path d="m 116.132812 105.273438 v 2.171874 c 0 4.796876 -3.890624 8.6875 -8.6875 8.6875 h -95.578124 v -2.171874 h 95.578124 c 4.796876 0 8.6875 -3.890626 8.6875 -8.6875 z m 0 0" fill="#fb8c14"/>
<path d="m 569.617711 133.878011 c -1.946492 0.248867 -3.661892 1.786506 -4.141849 3.697445 l -8.274809 24.931084 l -1.839834 0.93325 h -25.295497 c -1.413205 0 -2.790859 0.737711 -3.679668 1.848722 c -1.85761 2.0887 -1.395429 5.812809 0.915473 7.386 l 20.700355 15.24307 l 0.435517 2.213133 l -7.812629 24.468905 c -1.084347 3.821877 4.008527 7.661531 7.359336 5.546166 l 20.691467 -15.24307 h 2.64865 l 20.700355 15.24307 c 1.795394 1.182116 4.372939 0.97769 5.972795 -0.462181 c 1.350989 -1.25322 1.919827 -3.306368 1.386542 -5.075097 l -7.821517 -24.477793 c -0.737711 -0.142209 0.293307 -1.475422 0.444404 -2.213133 l 20.691467 -15.24307 c 2.319791 -1.573191 2.773083 -5.288412 0.906585 -7.386 c -0.871032 -1.111011 -2.257574 -1.804282 -3.67078 -1.848722 h -25.757677 l -1.830946 -0.924362 l -7.821516 -24.939972 c -0.231091 -0.871033 -0.719935 -1.688737 -1.386542 -2.310903 c -0.968801 -0.942137 -2.328679 -1.457646 -3.679668 -1.386542 h 0.168874 z m 0 0" fill="none" stroke="#fb8c14" stroke-linecap="round" stroke-linejoin="round" stroke-width="11.3768" transform="matrix(0.439493 0 0 0.439493 -186.44833 -3.03373)"/>
</g>
</g>
</mask>
<mask id="e">
<g filter="url(#c)">
<rect fill-opacity="0.8" height="128" width="128"/>
</g>
</mask>
<linearGradient id="f" gradientTransform="matrix(0 0.37 -0.98462 0 295.38501 -30.360001)" gradientUnits="userSpaceOnUse" x1="300" x2="428" y1="235" y2="235">
<stop offset="0" stop-color="#f9f06b"/>
<stop offset="1" stop-color="#f5c211"/>
</linearGradient>
<clipPath id="g">
<rect height="128" width="128"/>
</clipPath>
<clipPath id="h">
<rect height="128" width="128"/>
</clipPath>
<path d="m 20.679688 11.867188 c -4.796876 -0.023438 -8.6875 3.890624 -8.6875 8.6875 v 86.890624 h 95.453124 c 4.945313 0 8.6875 -3.441406 8.6875 -8.734374 v -70 c 0 -4.796876 -3.890624 -8.691407 -8.6875 -8.6875 l -51.445312 -0.023438 l -8 -8 z m 0 0" fill="#fb8c14"/>
<path d="m 64 34 l -8.6875 8.277344 h -34.632812 c -4.796876 0 -8.6875 3.890625 -8.6875 8.6875 v 65.167968 h 95.488281 c 4.320312 0 8.652343 -3.59375 8.652343 -8.683593 v -64.734375 c 0 -4.796875 -3.890624 -8.6875 -8.6875 -8.6875 z m 0 0" fill="#fff1db"/>
<path d="m 116.132812 105.273438 v 2.171874 c 0 4.796876 -3.890624 8.6875 -8.6875 8.6875 h -95.578124 v -2.171874 h 95.578124 c 4.796876 0 8.6875 -3.890626 8.6875 -8.6875 z m 0 0" fill="#fb8c14"/>
<path d="m 63.89466666052 55.80471868842 c -0.85546960856 0.10937530443 -1.60937590076 0.78515688146 -1.82031364256 1.62500119539 l -3.63672063184 10.95703690041 l -0.80859416416 0.41015684225 h -11.11719386302 c -0.62109370507 0 -1.22656299449 0.32421882052 -1.61718832832 0.81250037795 c -0.81640659173 0.9179690291 -0.6132812775 2.55468886584 0.40234397519 3.246095298 l 9.09766112002 6.69922256351 l 0.19140667288 0.97265646157 l -3.4335957571 10.75391246516 c -0.47656291607 1.67968818836 1.76171955681 3.36718924378 3.23437665665 2.43750113384 l 9.09375490623 -6.69922256351 h 1.16406313445 l 9.09766112002 6.69922256351 c 0.78906309524 0.51953170719 1.92187607993 0.42968791117 2.62500159294 -0.20312531423 c 0.59375020858 -0.55078141746 0.84375052771 -1.45312559142 0.60937550321 -2.23046960582 l -3.43750197088 -10.75781867895 c -0.32421882052 -0.06249986004 0.12890637335 -0.64843764105 0.19531244717 -0.97265646157 l 9.09375490623 -6.69922256351 c 1.01953190596 -0.69140643216 1.21875056692 -2.32422005512 0.39843776141 -3.246095298 c -0.38281246678 -0.48828155742 -0.99218796998 -0.79296930903 -1.61328211454 -0.81250037795 h -11.32031873776 l -0.80468795038 -0.40625062847 l -3.43750153139 -10.9609431142 c -0.10156287686 -0.38281290627 -0.31640639296 -0.74218809034 -0.60937550321 -1.01562569218 c -0.42578125789 -0.41406261654 -1.02343811975 -0.64062521348 -1.61718832832 -0.60937550321 h 0.07421894088 z m 0 0" fill="none" stroke="#fb8c14" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.0000239624"/>
<g clip-path="url(#h)" mask="url(#d)">
<g clip-path="url(#g)" mask="url(#e)">
<path d="m 128 80.640625 v 47.359375 h -128 v -47.359375 z m 0 0" fill="url(#f)"/>
<path d="m 13.308594 80.640625 l 47.355468 47.359375 h 21.214844 l -47.359375 -47.359375 z m 42.421875 0 l 47.363281 47.359375 h 21.214844 l -47.363282 -47.359375 z m 42.429687 0 l 29.839844 29.839844 v -21.210938 l -8.628906 -8.628906 z m -98.160156 7.90625 v 21.214844 l 18.238281 18.238281 h 21.214844 z m 0 0"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg">
<path d="m 20.679688 11.867188 c -4.796876 -0.023438 -8.6875 3.890624 -8.6875 8.6875 v 86.890624 h 95.453124 c 4.945313 0 8.6875 -3.441406 8.6875 -8.734374 v -70 c 0 -4.796876 -3.890624 -8.691407 -8.6875 -8.6875 l -51.445312 -0.023438 l -8 -8 z m 0 0" fill="#fb8c14"/>
<path d="m 64 34 l -8.6875 8.277344 h -34.632812 c -4.796876 0 -8.6875 3.890625 -8.6875 8.6875 v 65.167968 h 95.488281 c 4.320312 0 8.652343 -3.59375 8.652343 -8.683593 v -64.734375 c 0 -4.796875 -3.890624 -8.6875 -8.6875 -8.6875 z m 0 0" fill="#fff1db"/>
<path d="m 116.132812 105.273438 v 2.171874 c 0 4.796876 -3.890624 8.6875 -8.6875 8.6875 h -95.578124 v -2.171874 h 95.578124 c 4.796876 0 8.6875 -3.890626 8.6875 -8.6875 z m 0 0" fill="#fb8c14"/>
<path d="m 63.89466666052 55.80471868842 c -0.85546960856 0.10937530443 -1.60937590076 0.78515688146 -1.82031364256 1.62500119539 l -3.63672063184 10.95703690041 l -0.80859416416 0.41015684225 h -11.11719386302 c -0.62109370507 0 -1.22656299449 0.32421882052 -1.61718832832 0.81250037795 c -0.81640659173 0.9179690291 -0.6132812775 2.55468886584 0.40234397519 3.246095298 l 9.09766112002 6.69922256351 l 0.19140667288 0.97265646157 l -3.4335957571 10.75391246516 c -0.47656291607 1.67968818836 1.76171955681 3.36718924378 3.23437665665 2.43750113384 l 9.09375490623 -6.69922256351 h 1.16406313445 l 9.09766112002 6.69922256351 c 0.78906309524 0.51953170719 1.92187607993 0.42968791117 2.62500159294 -0.20312531423 c 0.59375020858 -0.55078141746 0.84375052771 -1.45312559142 0.60937550321 -2.23046960582 l -3.43750197088 -10.75781867895 c -0.32421882052 -0.06249986004 0.12890637335 -0.64843764105 0.19531244717 -0.97265646157 l 9.09375490623 -6.69922256351 c 1.01953190596 -0.69140643216 1.21875056692 -2.32422005512 0.39843776141 -3.246095298 c -0.38281246678 -0.48828155742 -0.99218796998 -0.79296930903 -1.61328211454 -0.81250037795 h -11.32031873776 l -0.80468795038 -0.40625062847 l -3.43750153139 -10.9609431142 c -0.10156287686 -0.38281290627 -0.31640639296 -0.74218809034 -0.60937550321 -1.01562569218 c -0.42578125789 -0.41406261654 -1.02343811975 -0.64062521348 -1.61718832832 -0.60937550321 h 0.07421894088 z m 0 0" fill="none" stroke="#fb8c14" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.0000239624"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16px"
height="16px"
viewBox="0 0 16 16"
version="1.1"
id="SVGRoot"
sodipodi:docname="process-syncing-down-symbolic.svg"
inkscape:version="0.91+devel r14094">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="3.531812"
inkscape:cy="6.6741748"
inkscape:document-units="px"
inkscape:current-layer="g4575"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1396"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:grid-bbox="true">
<inkscape:grid
type="xygrid"
id="grid5794" />
</sodipodi:namedview>
<defs
id="defs5218" />
<metadata
id="metadata5221">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<g
transform="translate(19.99318,-4.4704621e-4)"
id="g4575">
<path
style="color:#000000;text-indent:0;text-transform:none;fill:#bebebe;enable-background:new"
d="M 7.7714844 0.99804688 L 7.7734375 1 C 7.0923875 1.18249 6.4982563 1.7146081 6.3476562 2.4238281 C 6.0411762 3.2857781 5.7868175 4.16535 5.4921875 5.03125 C 4.3730875 5.05615 3.2478125 4.9779719 2.1328125 5.0761719 C 0.9379125 5.3423119 0.3668975 7.1108219 1.3671875 7.9199219 C 2.1813575 8.6113319 3.0778875 9.19895 3.9296875 9.84375 C 3.6174175 10.94005 3.1764644 12.0057 2.9589844 13.125 C 2.8790844 14.418 4.6356781 15.417631 5.6425781 14.519531 C 6.4273681 13.952611 7.2083875 13.3807 7.9921875 12.8125 C 8.9258275 13.45599 9.7939435 14.200978 10.777344 14.767578 C 11.894344 15.257218 13.323941 14.125256 12.994141 12.916016 C 12.731511 11.878616 12.363097 10.86935 12.054688 9.84375 C 12.949936 9.15776 13.908259 8.5477344 14.755859 7.8027344 C 15.431419 7.0691644 15.180611 5.8674188 14.394531 5.3242188 C 13.689221 4.8604788 12.818391 5.08011 12.025391 5.03125 L 10.460938 5.03125 C 10.093227 3.9604499 9.7930125 2.8617937 9.3828125 1.8085938 C 9.2528125 1.3285938 8.4114844 0.99804687 7.7714844 0.99804688 z M 7 6 L 9 6 L 9 7 L 7 7 L 7 6 z M 5 8 L 11 8 L 8 11 L 5 8 z "
transform="translate(-19.99318,4.4704621e-4)"
id="path4553" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16px"
height="16px"
viewBox="0 0 16 16"
version="1.1"
id="SVGRoot"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:docname="process-syncing-error-symbolic.svg">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="8"
inkscape:cy="8"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="2493"
inkscape:window-height="1385"
inkscape:window-x="67"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:grid-bbox="true">
<inkscape:grid
type="xygrid"
id="grid5794" />
</sodipodi:namedview>
<defs
id="defs5218" />
<metadata
id="metadata5221">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<path
inkscape:connector-curvature="0"
style="color:#000000;text-indent:0;text-transform:none;fill:#bebebe;enable-background:new"
d="m 7.779297,0.998047 v 0.00195 C 7.098247,1.182487 6.506069,1.7146051 6.355469,2.4238251 6.048989,3.2857751 5.792677,4.165347 5.498047,5.031247 4.378947,5.056147 3.253672,4.977969 2.138672,5.076169 0.94377201,5.342309 0.37275701,7.1108189 1.373047,7.919919 c 0.81417,0.69141 1.7107,1.2790281 2.5625,1.9238281 -0.31227,1.0962999 -0.753223,2.1619499 -0.970703,3.2812499 -0.0799,1.293 1.678647,2.292631 2.685547,1.394531 0.78479,-0.56692 1.563856,-1.138831 2.347656,-1.707031 0.93364,0.64349 1.803709,1.388478 2.787109,1.955078 1.117,0.48964 2.544644,-0.642322 2.214844,-1.851562 -0.26263,-1.0374 -0.62909,-2.046666 -0.9375,-3.0722659 0.89525,-0.68599 1.853572,-1.2960156 2.701172,-2.0410156 0.67556,-0.7335701 0.424752,-1.9353158 -0.361328,-2.4785156 -0.70531,-0.46374 -1.576141,-0.2441088 -2.369141,-0.2929688 H 10.46875 c -0.36771,-1.0708 -0.669878,-2.1694562 -1.080078,-3.2226562 -0.13,-0.48 -0.969375,-0.8105469 -1.609375,-0.810547 z M 7,6 H 9 V 9.0000001 H 7 Z m 0,4 h 2 v 1 H 7 Z"
id="path4599" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16px"
height="16px"
viewBox="0 0 16 16"
version="1.1"
id="SVGRoot"
sodipodi:docname="process-syncing-symbolic.svg"
inkscape:version="0.91+devel r14094">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="11.468044"
inkscape:cy="7.7124685"
inkscape:document-units="px"
inkscape:current-layer="g4575"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1396"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:grid-bbox="true"
showguides="true">
<inkscape:grid
type="xygrid"
id="grid5794" />
</sodipodi:namedview>
<defs
id="defs5218" />
<metadata
id="metadata5221">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<g
transform="translate(19.99318,-4.4704621e-4)"
id="g4575">
<path
style="color:#000000;text-indent:0;text-transform:none;fill:#bebebe;enable-background:new"
d="M 7.7714844 0.99804688 L 7.7734375 1 C 7.0923875 1.18249 6.4982563 1.7146081 6.3476562 2.4238281 C 6.0411762 3.2857781 5.7868175 4.16535 5.4921875 5.03125 C 4.3730875 5.05615 3.2478125 4.9779719 2.1328125 5.0761719 C 0.9379125 5.3423119 0.3668975 7.1108219 1.3671875 7.9199219 C 2.1813575 8.6113319 3.0778875 9.19895 3.9296875 9.84375 C 3.6174175 10.94005 3.1764644 12.0057 2.9589844 13.125 C 2.8790844 14.418 4.6356781 15.417631 5.6425781 14.519531 C 6.4273681 13.952611 7.2083875 13.3807 7.9921875 12.8125 C 8.9258275 13.45599 9.7939435 14.200978 10.777344 14.767578 C 11.894344 15.257218 13.323941 14.125256 12.994141 12.916016 C 12.731511 11.878616 12.363097 10.86935 12.054688 9.84375 C 12.949936 9.15776 13.908259 8.5477344 14.755859 7.8027344 C 15.431419 7.0691644 15.180611 5.8674188 14.394531 5.3242188 C 13.689221 4.8604788 12.818391 5.08011 12.025391 5.03125 L 10.460938 5.03125 C 10.093227 3.9604499 9.7930125 2.8617937 9.3828125 1.8085938 C 9.2528125 1.3285938 8.4114844 0.99804687 7.7714844 0.99804688 z M 8 6 L 10 8 L 6 8 L 8 6 z M 6 9 L 10 9 L 8 11 L 6 9 z "
transform="translate(-19.99318,4.4704621e-4)"
id="path4553" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16px"
height="16px"
viewBox="0 0 16 16"
version="1.1"
id="SVGRoot"
sodipodi:docname="process-syncing-up-symbolic.svg"
inkscape:version="0.91+devel r14094">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="3.531812"
inkscape:cy="6.6741748"
inkscape:document-units="px"
inkscape:current-layer="g4575"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1396"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:grid-bbox="true">
<inkscape:grid
type="xygrid"
id="grid5794" />
</sodipodi:namedview>
<defs
id="defs5218" />
<metadata
id="metadata5221">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<g
transform="translate(19.99318,-4.4704621e-4)"
id="g4575">
<path
style="color:#000000;text-indent:0;text-transform:none;fill:#bebebe;enable-background:new"
d="M 7.7714844 0.99804688 L 7.7734375 1 C 7.0923875 1.18249 6.4982563 1.7146081 6.3476562 2.4238281 C 6.0411762 3.2857781 5.7868175 4.16535 5.4921875 5.03125 C 4.3730875 5.05615 3.2478125 4.9779719 2.1328125 5.0761719 C 0.9379125 5.3423119 0.3668975 7.1108219 1.3671875 7.9199219 C 2.1813575 8.6113319 3.0778875 9.19895 3.9296875 9.84375 C 3.6174175 10.94005 3.1764644 12.0057 2.9589844 13.125 C 2.8790844 14.418 4.6356781 15.417631 5.6425781 14.519531 C 6.4273681 13.952611 7.2083875 13.3807 7.9921875 12.8125 C 8.9258275 13.45599 9.7939435 14.200978 10.777344 14.767578 C 11.894344 15.257218 13.323941 14.125256 12.994141 12.916016 C 12.731511 11.878616 12.363097 10.86935 12.054688 9.84375 C 12.949936 9.15776 13.908259 8.5477344 14.755859 7.8027344 C 15.431419 7.0691644 15.180611 5.8674188 14.394531 5.3242188 C 13.689221 4.8604788 12.818391 5.08011 12.025391 5.03125 L 10.460938 5.03125 C 10.093227 3.9604499 9.7930125 2.8617937 9.3828125 1.8085938 C 9.2528125 1.3285938 8.4114844 0.99804687 7.7714844 0.99804688 z M 8 6 L 11 9 L 5 9 L 8 6 z M 7 10 L 9 10 L 9 11 L 7 11 L 7 10 z "
transform="translate(-19.99318,4.4704621e-4)"
id="path4553" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,74 @@
# Install app icons in system theme
theme_dir = join_paths(get_option('prefix'), 'share', 'icons', 'hicolor')
icon_sizes = ['scalable']
app_icon_name = 'org.sparkleshare.SparkleShare'
source_icon_name = app_icon_name
if get_option('nightly')
source_icon_name = app_icon_name + '.Nightly'
endif
foreach size : icon_sizes
icon_dir = join_paths(size + 'x' + size, 'apps')
install_data(
sources: join_paths('hicolor', icon_dir, source_icon_name + '.svg'),
install_dir: join_paths(theme_dir, icon_dir),
rename: app_icon_name + '.svg')
endforeach
install_data(
sources: join_paths('hicolor', 'symbolic', 'apps', app_icon_name + '-symbolic.svg'),
install_dir: join_paths(theme_dir, 'symbolic', 'apps'))
# Install the status icons
status_icons = ['syncing',
'syncing-up',
'syncing-down',
'syncing-error']
foreach icon : status_icons
install_data(
sources: join_paths('hicolor', '24x24', 'status', app_icon_name + '-' + icon + '.png'),
install_dir: join_paths(theme_dir, '24x24', 'apps'))
install_data(
sources: join_paths('hicolor', '48x48', 'status', app_icon_name + '-' + icon + '.png'),
install_dir: join_paths(theme_dir, '48x48', 'apps'))
install_data(
sources: join_paths('hicolor', 'symbolic', 'status', app_icon_name + '-' + icon + '-symbolic.svg'),
install_dir: join_paths(theme_dir, 'symbolic', 'apps'))
endforeach
# Install other icons in app theme
app_theme_dir = join_paths(install_dir, 'icons', 'hicolor')
category = 'status'
size = '12'
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'document-added.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'document-edited.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'document-deleted.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'document-moved.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))
size = '16'
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'list-point.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))
size = '22'
install_data(sources: join_paths('hicolor', size + 'x' + size, category, 'process-working.png'),
install_dir: join_paths(app_theme_dir, size + 'x' + size, category))

View file

@ -1,26 +0,0 @@
dark_theme = ubuntu-mono-dark
dark_themedir = /usr/share/icons/$(dark_theme)
dark_theme_icons = \
status,process-syncing-idle-24.png \
status,process-syncing-up-24.png \
status,process-syncing-down-24.png \
status,process-syncing-24.png \
status,process-syncing-error-24.png
install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
-t "$(dark_theme)" \
-s "$(srcdir)" \
-d "x$(DESTDIR)" \
-m "$(mkinstalldirs)" \
-x "$(INSTALL_DATA)"
install-data-local:
@-$(install_icon_exec) -i -b "$(dark_themedir)" $(dark_theme_icons)
uninstall-hook:
@-$(install_icon_exec) -u -b "$(dark_themedir)" $(dark_theme_icons)
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(wildcard *.png *.svg)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

View file

@ -1,25 +0,0 @@
light_theme = ubuntu-mono-light
light_themedir = /usr/share/icons/$(light_theme)
light_theme_icons = \
status,process-syncing-idle-24.png \
status,process-syncing-up-24.png \
status,process-syncing-down-24.png \
status,process-syncing-24.png \
status,process-syncing-error-24.png
install_icon_exec = $(top_srcdir)/build/icon-theme-installer \
-t "$(light_theme)" \
-s "$(srcdir)" \
-d "x$(DESTDIR)" \
-m "$(mkinstalldirs)" \
-x "$(INSTALL_DATA)"
install-data-local:
@-$(install_icon_exec) -i -b "$(light_themedir)" $(light_theme_icons)
uninstall-hook:
@-$(install_icon_exec) -u -b "$(light_themedir)" $(light_theme_icons)
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = $(wildcard *.png *.svg)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

View file

@ -0,0 +1,6 @@
image_files = ['tutorial-slide-3.png']
install_data(
sources: image_files,
install_dir: join_paths(install_dir, 'pixmaps'))

View file

@ -1,46 +0,0 @@
SUBDIRS = Images
ASSEMBLY = SparkleShare
TARGET = exe
LINK = $(REF_SPARKLESHARE) $(NOTIFY_SHARP_LIBS) $(WEBKITGTK_SHARP_LIBS)
if HAVE_APP_INDICATOR
BUILD_DEFINES = "-define:HAVE_APP_INDICATOR"
endif
SOURCES = \
../Common/SparkleShare.cs \
../Common/AboutController.cs \
../Common/Avatars.cs \
../Common/BubblesController.cs \
../Common/BaseController.cs \
../Common/EventLogController.cs \
../Common/NoteController.cs \
../Common/SetupController.cs \
../Common/StatusIconController.cs \
About.cs \
Bubbles.cs \
EventLog.cs \
Note.cs \
Setup.cs \
SetupWindow.cs \
StatusIcon.cs \
UserInterface.cs \
UserInterfaceHelpers.cs \
Controller.cs
include $(top_srcdir)/build/build.mk
bin_SCRIPTS = sparkleshare
Applicationsdir = $(datadir)/applications
dist_Applications_DATA = \
org.sparkleshare.SparkleShare.desktop \
org.sparkleshare.SparkleShare.Invites.desktop \
SparkleShare.Autostart.desktop
install-data-hook:
test -f $(datadir)/applications/defaults.list && \
test -z $(DESTDIR) && update-desktop-database $(datadir)/applications || :

View file

@ -15,6 +15,7 @@
// along with this program. If not, see (http://www.gnu.org/licenses/).
using System.IO;
using Gtk;
namespace SparkleShare {
@ -26,8 +27,6 @@ namespace SparkleShare {
public Note () : base ("Add Note")
{
SetWmclass ("SparkleShare", "SparkleShare");
IconName = "org.sparkleshare.SparkleShare";
Resizable = false;
WindowPosition = WindowPosition.CenterAlways;
@ -40,11 +39,11 @@ namespace SparkleShare {
Controller.WindowClosed ();
args.RetVal = true;
};
KeyPressEvent += delegate (object o, KeyPressEventArgs args) {
if (args.Event.Key == Gdk.Key.Escape ||
(args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w)) {
Controller.WindowClosed ();
}
};
@ -55,6 +54,9 @@ namespace SparkleShare {
Controller.ShowWindowEvent += delegate {
Application.Invoke (delegate {
if (Child != null)
Remove (Child);
CreateNote ();
ShowAll ();
Present ();
@ -64,14 +66,17 @@ namespace SparkleShare {
Controller.UpdateTitleEvent += delegate (string title) {
Application.Invoke (delegate { Title = title; });
};
CreateNote ();
}
private void CreateNote ()
{
var user_image = new Image (Controller.AvatarFilePath);
Image user_image;
if (File.Exists (Controller.AvatarFilePath))
user_image = new Image (Controller.AvatarFilePath);
else
user_image = UserInterfaceHelpers.GetImage ("user-icon-default.png");
/* TODO: Style the entry neatly, multiple lines, and add placeholder text
string balloon_image_path = new string [] { UserInterface.AssetsPath, "pixmaps", "text-balloon.png" }.Combine ();
@ -96,8 +101,9 @@ namespace SparkleShare {
var cancel_button = new Button ("Cancel");
var sync_button = new Button ("Sync"); // TODO: Make default button
sync_button.CanDefault = true;
var sync_button = new Button ("Sync") { CanDefault = true };
sync_button.StyleContext.AddClass ("suggested-action");
cancel_button.Clicked += delegate { Controller.CancelClicked (); };
sync_button.Clicked += delegate { Controller.SyncClicked (balloon.Buffer.Text); };
@ -136,4 +142,3 @@ namespace SparkleShare {
}
}
}

View file

@ -1,96 +1,123 @@
# SparkleShare for Linux
To run SparkleShare, you'll need these packages:
## Building with Flatpak
```
curl
git >= 2.3
git-lfs >= 1.3.0
gtk-sharp3
gvfs
mono-core >= 4.0
notify-sharp
webkit2gtk-sharp
```
On Ubuntu you'll also need:
```
libappindicator-sharp
```
If you want to test SparkleShare from Git, it's easiest to build a flatpak locally using [this spec](
https://github.com/hbons/org.sparkleshare.SparkleShare/) and run it.
## Building on Linux
### Common build requirements
Make sure to have the `git` package installed when you're building on Linux.
You will need the packages listed below for the most used Linux distributions:
You will need the packages listed below for the most used Linux distributions:
```shell
# On Ubuntu 16.04:
# Run requirements
sudo apt-get install \
curl \
git \
git-lfs \
gvfs
# Build requirements
sudo apt-get install \
desktop-file-utils \
git \
gtk-sharp3-gapi \
intltool \
libappindicator3-0.1-cil-dev \
libdbus-glib2.0-cil-dev \
libgtk3.0-cil-dev \
libnotify3.0-cil-dev \
libsoup2.4-dev \
libtool-bin \
libwebkit2gtk-4.0 \
meson \
mono-devel \
mono-mcs \
nant \
xsltproc
# On Fedora 25:
sudo dnf install # TODO
# On Fedora 27:
# Run requirements
sudo dnf install \
curl \
git \
git-lfs \
gvfs
# Build requirements
sudo dnf install \
gtk-sharp3-devel \
gtk-sharp3-gapi \
libtool \
meson \
notify-sharp3-devel \
webkitgtk4-devel \
webkit2-sharp
```
### Additional source build requirements
Install the `gtk-sharp3` bindings from:
https://github.com/mono/gtk-sharp
Or on Ubuntu, get it from this PPA:
https://launchpad.net/~meebey/+archive/mono-preview
Install the `notify-sharp` bindings from:
https://download.gnome.org/sources/notify-sharp/3.0/
Install the `soup-sharp` and `webkit2gtk-sharp` bindings from:
https://github.com/hbons/soup-sharp
https://github.com/hbons/webkit2gtk-sharp
All with the usual:
Install these `soup-sharp` and `webkit2gtk-sharp` bindings:
```bash
git clone https://github.com/hbons/soup-sharp
cd soup-sharp/
./autogen.sh
make
sudo make install
```
If you're using Ubuntu, also install the `appindicator-sharp` bindings from:
https://github.com/hbons/appindicator-sharp
```bash
git clone https://github.com/hbons/webkit2-sharp
cd webkit2-sharp/
./autogen.sh
make
sudo make install
```
On Ubuntu, also install these `appindicator-sharp` bindings:
```bash
sudo apt-get install libappindicator3-dev
git clone https://github.com/hbons/appindicator-sharp
cd appindicator-sharp/
./autogen.sh
make
sudo make install
```
### Start the build
You can build and install SparkleShare like this:
You can build and install SparkleShare with `meson` like this:
```bash
$ ./configure (or ./autogen.sh if you build from the repository)
$ make
$ sudo make install
meson build/
ninja -C build/
sudo ninja install -C build/
```
If your distribution has an out of date `meson` package, you can install the latest version using the Python package manager:
```bash
# Install pip using your system's package manager
sudo apt-get install python3-pip # Ubuntu
sudo dnf install python3-pip # Fedora
pip3 install meson
```
### Uninstall
```bash
sudo make uninstall
sudo ninja uninstall
```

View file

@ -152,22 +152,22 @@ namespace SparkleShare {
// Padding column
tree_view.AppendColumn ("Padding", new Gtk.CellRendererText (), "text", 0);
tree_view.Columns [0].Cells [0].Xpad = 4;
tree_view.Columns [0].Cells [0].Xpad = 8;
// Icon column
tree_view.AppendColumn ("Icon", new Gtk.CellRendererPixbuf (), "pixbuf", 1);
tree_view.Columns [1].Cells [0].Xpad = 4;
tree_view.Columns [1].Cells [0].Xpad = 6;
// Service column
TreeViewColumn service_column = new TreeViewColumn () { Title = "Service" };
CellRendererText service_cell = new CellRendererText () { Ypad = 8 };
CellRendererText service_cell = new CellRendererText () { Ypad = 12 };
service_column.PackStart (service_cell, true);
service_column.SetCellDataFunc (service_cell, new TreeCellDataFunc (RenderServiceColumn));
foreach (Preset preset in Controller.Presets) {
store.AppendValues ("", new Gdk.Pixbuf (preset.ImagePath),
"<span size=\"small\"><b>" + preset.Name + "</b>\n" +
"<span fgcolor=\"" + SparkleShare.UI.SecondaryTextColor + "\">" + preset.Description + "</span>" +
"<span><b>" + preset.Name + "</b>\n" +
"<span size=\"small\" fgcolor=\"" + SparkleShare.UI.SecondaryTextColor + "\">" + preset.Description + "</span>" +
"</span>", preset);
}

View file

@ -32,22 +32,19 @@ namespace SparkleShare {
public SetupWindow () : base ("SparkleShare Setup")
{
SetWmclass ("SparkleShare", "SparkleShare");
IconName = "org.sparkleshare.SparkleShare";
Resizable = false;
WindowPosition = WindowPosition.CenterAlways;
Deletable = false;
TypeHint = Gdk.WindowTypeHint.Dialog;
SetSizeRequest (400, 400);
SetSizeRequest (720, 540);
DeleteEvent += delegate (object sender, DeleteEventArgs args) { args.RetVal = true; };
VBox layout_vertical = new VBox (false, 16);
layout_vertical.BorderWidth = 16;
this.content_area = new EventBox ();
this.content_area = new EventBox ();
this.option_area = new EventBox ();
this.buttons = CreateButtonBox ();
@ -82,7 +79,7 @@ namespace SparkleShare {
public void AddOption (Widget widget)
{
{
this.option_area.Add (widget);
}
@ -99,7 +96,7 @@ namespace SparkleShare {
LineWrap = true,
LineWrapMode = Pango.WrapMode.WordChar
};
layout_vertical.PackStart (description, false, false, 0);
}
@ -109,7 +106,7 @@ namespace SparkleShare {
this.content_area.Add (layout_vertical);
}
public void Reset ()
{
Header = "";
@ -124,13 +121,13 @@ namespace SparkleShare {
foreach (Button button in this.buttons)
this.buttons.Remove (button);
}
new public void ShowAll ()
{
if (this.buttons.Children.Length > 0) {
Button default_button = (Button) this.buttons.Children [this.buttons.Children.Length - 1];
default_button.CanDefault = true;
Default = default_button;
default_button.StyleContext.AddClass ("suggested-action");
@ -141,4 +138,3 @@ namespace SparkleShare {
}
}
}

View file

@ -5,3 +5,4 @@ Exec=sh -c "type -P sparkleshare &>/dev/null && sparkleshare || flatpak run org.
Icon=org.sparkleshare.SparkleShare
Terminal=false
X-GNOME-Autostart-enabled=true
X-AppStream-Ignore=true

View file

@ -51,7 +51,6 @@
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="Mono.Posix" />
<Reference Include="System.Xml" />
<Reference Include="atk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="gdk-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="gio-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
@ -60,6 +59,7 @@
<Reference Include="pango-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="notify-sharp, Version=3.0.0.0, Culture=neutral, PublicKeyToken=2df29c54e245917a" />
<Reference Include="webkit2-sharp, Version=2.10.9.0, Culture=neutral, PublicKeyToken=bac11f94b446c2eb" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Sparkles\Git\Sparkles.Git.csproj">
@ -125,15 +125,11 @@
<None Include="..\Common\Presets\own-server%402x.png">
<Link>Presets\own-server%402x.png</Link>
</None>
<None Include="..\Common\Presets\planio.png">
<Link>Presets\planio.png</Link>
</None>
<None Include="..\Common\Presets\planio.xml">
<Link>Presets\planio.xml</Link>
</None>
<None Include="..\Common\Presets\planio%402x.png">
<Link>Presets\planio%402x.png</Link>
</None>
<None Include="org.sparkleshare.SparkleShare.appdata.xml" />
<None Include="org.sparkleshare.SparkleShare.desktop" />
<None Include="org.sparkleshare.SparkleShare.Invites.desktop" />
<None Include="SparkleShare.Autostart.desktop" />
<None Include="sparkleshare.in" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controller.cs" />
@ -170,4 +166,4 @@
</ItemGroup>
<Import Project="..\Common\SparkleShare.projitems" Label="Shared" Condition="Exists('..\Common\SparkleShare.projitems')" />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
</Project>

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