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

Compare commits

..

1142 Commits

Author SHA1 Message Date
Daniel Molkentin
58035a2f4a Final version 2013-12-12 18:20:45 +01:00
Daniel Molkentin
99a4de6741 Add ChangeLog 2013-12-12 18:01:03 +01:00
Daniel Molkentin
9010e1015e Better fix for override urls 2013-12-12 17:17:07 +01:00
Klaas Freitag
9bf15178f9 Fix button states in account widget 2013-12-12 16:38:45 +01:00
Daniel Molkentin
5b2c734fe5 Respect the override URL properly 2013-12-12 16:20:01 +01:00
Klaas Freitag
bc5f7d899a Save and restore activity view state.
Fixes bug #1256
2013-12-12 15:16:43 +01:00
Klaas Freitag
ec77ecfd0f Show error reason for blacklisted files in sync activity. 2013-12-12 12:21:24 +01:00
Klaas Freitag
09745c7f75 Fix: Allow to retry sync also for fatal err conditions.
Otherwise there would not  have been a chance to resync for example data
that was Forbidden because of a read only share.

Also removed some commented code.
2013-12-12 11:39:05 +01:00
Daniel Molkentin
9ffb33293c QuotaInfo: Keep polling quota if a previous request fails 2013-12-12 10:53:51 +01:00
Daniel Molkentin
93d75932ac NSIS: fix c&p error. 2013-12-12 10:46:37 +01:00
Daniel Molkentin
8491d95ca4 NSIS: English must be enumerated, too
Fixes empty strings in installer.
2013-12-12 10:46:13 +01:00
Daniel Molkentin
e774bbacde NSIS: Can only use global variables in translation strings
fixes #1273
2013-12-12 10:44:05 +01:00
Klaas Freitag
131945b14b Doc fixes about ignore files. 2013-12-11 22:08:24 +01:00
Klaas Freitag
93d250c49b Add NE_LFS define to config.h.in 2013-12-11 20:52:17 +01:00
Olivier Goffart
f5c46d481c Tru to get NE_LFS properly
The csync and mirall build system are slightly different so this might help
2013-12-11 20:44:46 +01:00
Jenkins for ownCloud
81773e53b1 [tx-robot] updated from transifex 2013-12-11 13:40:28 -05:00
Klaas Freitag
4f7fe64309 Bump version to rc1 2013-12-11 19:01:53 +01:00
Mr. Jenkins
342937ccd1 [tx-robot] updated from transifex 2013-12-11 12:30:51 -05:00
Klaas Freitag
aa213eeafb Do not check for the ETag in case the HTTP request connected. 2013-12-11 13:51:38 +01:00
Daniel Molkentin
76a60e889c Start timer only after the last quota request was answered 2013-12-11 13:48:31 +01:00
Olivier Goffart
fa195eb1e8 Logger: Initialize all variables
To avoid valgrind warnings in owncloudcmd
2013-12-11 13:23:42 +01:00
Klaas Freitag
b68e721f05 Do not error out on ETag if the status klass is != 2. 2013-12-11 12:59:11 +01:00
Klaas Freitag
bbfb2f2a60 Do not force resync if status is SyncResult::Problem. 2013-12-11 12:59:11 +01:00
Olivier Goffart
bf309f83f4 Don't keep the temporary file if the transfer fails because of a wrong etag
The downloaded file is corrupted, remove it.
2013-12-11 12:48:11 +01:00
Thomas Müller
f05e998430 Translation SectionGroup Shortcuts 2013-12-10 18:08:07 +01:00
Daniel Molkentin
80d202c630 Fix build on Win32 2013-12-10 17:19:36 +01:00
Olivier Goffart
47308cdc01 define NE_LFS from cmake 2013-12-10 16:20:49 +01:00
Daniel Molkentin
03e9a06c7d Fix build 2013-12-10 16:07:49 +01:00
Thomas Müller
370cf45357 fixing add button behavior in single folder mode 2013-12-10 15:59:59 +01:00
Thomas Müller
638b62a3ae prevent crash on 'add folder' 2013-12-10 15:59:59 +01:00
Klaas Freitag
6707e93f31 Add NE_LFS define for correct size of ne_off_t 2013-12-10 15:28:02 +01:00
Olivier Goffart
0360babe02 usleep is not working on windows, use QThread::usleep
Shoud fix #1082
2013-12-10 14:03:01 +01:00
Klaas Freitag
a743f804f5 Ignore another sqlite journal tmp name that shows up on win32. 2013-12-10 13:19:57 +01:00
Klaas Freitag
4b42743a2a Better documentation of file ignore patterns. 2013-12-10 13:19:49 +01:00
Olivier Goffart
b6e4575dea Do not initialize all the application if another instance is running
This fixes a crash becasue we were constructing the systemtray and then
destroying it too early before the systemtray could initilize itself.
(This work around a bug in QSystemTray which crashes if it is destroyed
before it is registered to the X11 server)
2013-12-10 12:48:59 +01:00
Daniel Molkentin
ebfe2c793e Remove leftover file 2013-12-10 12:20:43 +01:00
Daniel Molkentin
f9ba3bc22d Merge pull request #1264 from owncloud/l10n-installer-2
Multi-lingual installer
2013-12-10 03:10:56 -08:00
Thomas Müller
13f5d29c3c No language selection dialog - use Windows GUI langaage, which is default as of today with NSIS 2013-12-10 11:10:48 +01:00
Jenkins for ownCloud
082a60e067 [tx-robot] updated from transifex 2013-12-10 04:00:10 -05:00
Thomas Müller
d82a9423d6 adding Turkish translation to installer 2013-12-10 09:59:23 +01:00
Thomas Müller
b41feebcdd Multi-lingual installer 2013-12-10 00:43:58 +01:00
Daniel Molkentin
2cf7ba91c1 Don't install headers on OS X 2013-12-09 20:39:55 +01:00
hefee
f8478ac27b Fixing typos 2013-12-09 20:17:56 +01:00
hefee
b092a8cee3 Add deleted Changelog entry for 1.4.2 2013-12-09 20:15:29 +01:00
Olivier Goffart
bb2f221edf Fix broken slot connection
The slot was renamed.
2013-12-09 19:19:49 +01:00
Daniel Molkentin
dd323bc296 Don't invariably set variables that could be also set externally
We can't use cached variables here, since at least the suffix
may change at any  time, and it needs to take precedence over
any cached content, which cmake doesn't seem to allow for.
2013-12-09 19:03:22 +01:00
Daniel Molkentin
31989d23a6 Adjust Windows and Mac binaries package names 2013-12-09 17:41:41 +01:00
Daniel Molkentin
1291ffaf02 Small adjustments to the last commit 2013-12-09 17:16:42 +01:00
Olivier Goffart
89d1e2d924 When reconfiguring, we need to clear the _currentSyncFolder
Else, if we reconfigure when the folder is syncing, it may be impossible to
sync again.
This happens for example when changing the password when the folder is
syncing
2013-12-09 17:16:04 +01:00
Klaas Freitag
857ef33056 Use proper email in license header. 2013-12-09 17:02:17 +01:00
Daniel Molkentin
f5e8efd435 Add build number into versioning scheme
This is an enabler to improve update experience
2013-12-09 16:39:13 +01:00
Olivier Goffart
e5edb8e2c7 Fix opening the explorer with a selected file on windows.
Should Fix #1249
2013-12-09 16:13:48 +01:00
Mr. Jenkins
93ac78fd75 [tx-robot] updated from transifex 2013-12-09 06:41:11 -05:00
Klaas Freitag
5f31d13236 Install headers for owncloudsync 2013-12-08 08:55:18 +01:00
Mr. Jenkins
ae69a24f5c [tx-robot] updated from transifex 2013-12-07 21:27:41 -05:00
Klaas Freitag
fc986b0ab8 If item is a directory, remove its contents from the database as well.
Fixes bug #1257
2013-12-06 16:38:43 +01:00
Klaas Freitag
c5e435f9bd Let recursive removal also remove the top dir. 2013-12-06 16:37:30 +01:00
Klaas Freitag
599451d250 Unchanged files still count as files. 2013-12-06 16:37:01 +01:00
Klaas Freitag
af78f1996c Set action string as tooltip 2013-12-06 15:50:14 +01:00
Klaas Freitag
41d5445980 Display rename-target in sync protocol action column. 2013-12-06 15:07:25 +01:00
Klaas Freitag
e5afd8b901 Maintain the file type correctly. 2013-12-06 14:11:51 +01:00
Klaas Freitag
6fad20d5fc Show local MOVE operations only for top level directory instead for all
files.

This fixes bug mirall#1240
2013-12-06 12:32:26 +01:00
Mr. Jenkins
7662a60111 [tx-robot] updated from transifex 2013-12-05 21:24:22 -05:00
Daniel Molkentin
dff17ec08e A different user constitutes a different account
Fixes #1231
2013-12-05 19:03:40 +01:00
Daniel Molkentin
df5a72eb38 Resize wizard if advanced options are required
Fixes #1130
2013-12-05 17:43:57 +01:00
Olivier Goffart
fa9d9c9909 Maybe we need to destroy the decompress context before the request.
Possibly fix the issue #1229
2013-12-05 16:51:39 +01:00
Daniel Molkentin
a0d1dc8807 Avoid horizontal scrollbar
...by intproducing more tooltips and set eliding to center elide
You can still force a scrollbar, but it's not there by default
and the center eliding makes pathes more meaningful

Fixes #1213
2013-12-05 16:42:07 +01:00
Klaas Freitag
9e2f6c0258 Close the sync journal if a folder gets removed.
This fixes bug #1252
2013-12-05 16:06:46 +01:00
Daniel Molkentin
ee2efbb071 Fix for c3dc84c58f.
This resulted in the wizard not coming up the second time around
because it wasn't destructed properly.

Also fix a comment.
2013-12-05 16:00:32 +01:00
Mr. Jenkins
8bc532705f [tx-robot] updated from transifex 2013-12-04 17:05:31 -05:00
Daniel Molkentin
c3dc84c58f Don't close setup wizard when the initial sync run is started
Fixes regression over 1.4.2
2013-12-04 20:26:18 +01:00
Daniel Molkentin
72b0f4e573 Add man page for owncloudcmd
Fixes #1234
2013-12-04 20:07:05 +01:00
Klaas Freitag
861de89e9c Add translatable error messages for individual file errors.
The error messages coming out of the csync updater and were
string based before which could not be translated.
2013-12-04 12:19:38 +01:00
Klaas Freitag
a6dfc0a83e Refactoring, pick proper method name. 2013-12-04 11:36:24 +01:00
Klaas Freitag
859f776440 Set proper enable state of blacklist button after the dialog was opened.
Also set proper tooltips.
2013-12-04 11:32:46 +01:00
Klaas Freitag
4b7f75059a Fixed check for SQL command successs. 2013-12-04 10:31:05 +01:00
Klaas Freitag
b3620e320b Avoid a comparison warning on win32 2013-12-03 17:09:57 +01:00
Klaas Freitag
883576cb95 Fix Win32 move file operation. 2013-12-03 17:07:42 +01:00
Daniel Molkentin
62ec7aa9c5 Add file forgotten in last commit 2013-12-03 16:24:17 +01:00
Daniel Molkentin
99fc570267 Replace Q_OS_WIN32 by Q_OS_WIN
Fixes #1238
2013-12-03 16:23:49 +01:00
Olivier Goffart
1f5c4bde14 Fix windows rename of temporary files 2013-12-03 16:10:44 +01:00
Klaas Freitag
046d180d2f Rather count the blacklist items in the database.
Use database functions to count the entries rather than trying to
compute it from the progress items the widget got.
2013-12-03 14:48:49 +01:00
Klaas Freitag
278e76b774 Add blackListEntryCount method. 2013-12-03 14:48:49 +01:00
Olivier Goffart
09d850bfaa When the temporary file is the same size as the file we would download, just keep it
Don't download the file if the temporary file is complete.

else, we get error from server: Requested Range not satisfiable
2013-12-03 14:44:04 +01:00
Klaas Freitag
f0a6047ecf Add a button to acitivity view to clean the blacklist. 2013-12-03 14:04:01 +01:00
Klaas Freitag
e8ffb17b3b Add a slot to wipe the folder's blacklist. 2013-12-03 14:04:01 +01:00
Klaas Freitag
09d4fa2127 Fixed wording, do not expose the term blacklist to users. 2013-12-03 14:04:01 +01:00
Daniel Molkentin
f521301c51 Add plugins in install_qt4_executable to ensure the lib paths get fixed up
Fixes #1228
2013-12-03 13:33:50 +01:00
Olivier Goffart
de5161137f remove unneeded file 2013-12-03 13:11:41 +01:00
Klaas Freitag
1abfd4ba44 Fixed wording, removed the term "problem". 2013-12-03 12:31:28 +01:00
Klaas Freitag
ecf45856e1 Add missing call to CloseHandle on the win32 platform.
This fixes bug mirall#1236 and also mirall#1237
Also some minor cleanups.
2013-12-03 10:08:17 +01:00
Mr. Jenkins
148b22f53d [tx-robot] updated from transifex 2013-12-02 17:13:40 -05:00
Thomas Müller
ec075a6d2a removing libiniparder.dll and libdl.dll from NSNIS installer 2013-12-02 13:20:10 +01:00
Thomas Müller
6923f26597 Adding missing \ on zypper install command 2013-12-02 11:37:06 +01:00
Mr. Jenkins
206c62a171 [tx-robot] updated from transifex 2013-11-29 13:11:24 -05:00
Klaas Freitag
c03b2bbc87 Make unblacklisting depending on Up or Download
Compare modtime in case of uploading and ETag in case of downloading
as they are the correct indicators.
2013-11-29 16:16:04 +01:00
Klaas Freitag
2f708c0877 Move checkAccountExists out of gui class. 2013-11-29 16:16:04 +01:00
Olivier Goffart
58eb000163 Make the "details" manu entry work
Fix #1214
2013-11-29 11:18:59 +01:00
Olivier Goffart
f5f56e45c0 Fix pausing one of the folder pauses all foder after it while restarting. 2013-11-29 10:57:34 +01:00
Klaas Freitag
951ac79a68 Destinguish between rename and move in wording. 2013-11-28 10:58:04 +01:00
Klaas Freitag
ce47adb482 push version to 1.5.0beta1 2013-11-28 10:58:04 +01:00
Olivier Goffart
ef8fe11f5a Do not write the directory etag in the database in case of soft error
Else we won't retry next time as we think nothing has changed.
2013-11-28 10:01:30 +01:00
Olivier Goffart
30db533cea Stop iterating files when aborting. 2013-11-28 10:01:30 +01:00
Olivier Goffart
99eeaa0db5 no need to set twice the error string
done() is already taking care of that
2013-11-28 10:01:30 +01:00
Klaas Freitag
80a01ecff3 Use the activity icon in settings dialog. 2013-11-28 09:47:49 +01:00
Klaas Freitag
5f3ce25ccf Push version to 1.4.90 2013-11-28 09:44:09 +01:00
Klaas Freitag
0d85810c23 Change tab name in settingsdialog to Activity rather than Status. 2013-11-28 09:44:09 +01:00
Mr. Jenkins
4626ef1ffb [tx-robot] updated from transifex 2013-11-27 11:20:43 -05:00
Klaas Freitag
23007613a9 Fix progress bar in new propagator. 2013-11-27 16:48:16 +01:00
Daniel Molkentin
0fc51704f5 Enable accessibility on OS X
Fixes #736
2013-11-27 15:43:47 +01:00
Daniel Molkentin
46a403eb02 Report connection errors explicitly on explicit sign in attempts
Implicit connection attempts fail silently. This is roughly what
users expect from e.g. mail clients.

Fixes #1205.
2013-11-27 14:15:56 +01:00
Daniel Molkentin
e719e80409 ConnectionValidator: Account::setState no longer takes a bool
This makes the client come up with the correct state when the
initial connect fails.
2013-11-27 14:12:30 +01:00
Daniel Molkentin
310278f580 Account: Swap connected and disconnected state
Also, avoid full integer enumeration
2013-11-27 14:11:10 +01:00
Klaas Freitag
59072a81f1 Put detailed sync status widget into ButtonGroup for common style. 2013-11-26 14:27:32 +01:00
Klaas Freitag
d55bffb319 Removed not longer needed Info button.
The detailed sync status is now in the same dialog in another tab.
2013-11-26 14:15:37 +01:00
Klaas Freitag
232cbc45b5 Simplify progress and error signals again.
Now handle everything through the progress signal and let the errors
be progressed in the done slot.

Remove unused code, fix sorting of the list, more efficiency.

This fixes #916
2013-11-26 14:02:11 +01:00
Klaas Freitag
a88d45bff4 Comment some unused code. 2013-11-26 14:02:11 +01:00
Klaas Freitag
090e474d70 Add a couple of missing progress signals. 2013-11-26 14:02:11 +01:00
Klaas Freitag
4f7546768b Do not blacklist Softerrors. 2013-11-26 14:02:11 +01:00
Klaas Freitag
7a3c086be2 Display a proper error message for missing sync directory on server.
this fixes bug mirall#1149
2013-11-26 14:02:11 +01:00
Olivier Goffart
5c8b6ed902 Fix Remove -gzip from etag
Remove it from both "foo"-gzip  and "foo-gzip"

See issue #1195
2013-11-26 12:10:52 +01:00
dragotin
cb6918f3d5 Merge pull request #1203 from pascalBokBok/patch-1
Remove spammy "sync starting" notification on every program start.

Thanks!
2013-11-26 02:39:08 -08:00
pascalBokBok
489cc8aa29 Remove spammy "sync starting" notification on every program start. 2013-11-26 10:01:36 +01:00
Mr. Jenkins
d8a8d5da63 [tx-robot] updated from transifex 2013-11-26 03:05:08 -05:00
Daniel Molkentin
0d85dcdd9e Toggle Settings window when clicking on the icon
This restores the old behavior for every DE but OS X and Ubuntu Unity
(which respond to all clicks by opening the menu).

Discussed in #896
2013-11-26 03:15:03 +01:00
Daniel Molkentin
7eddff39e7 Wizard: Allow /index.php or /remote.php/webdav in URLs.
We will strip those. Also works on paste.

Fixes #349
2013-11-26 02:32:04 +01:00
Daniel Molkentin
81e47b0896 Folder wizard: sanitize error detection
* Wrap text properly
* Format multiple warnings as bullet points
* Use 'Folder' instead of 'Directory' everywhere
* Fix false positives when checking if one directory contains another
* Fix logic errors in target folder warning detection

Fixes #1201
2013-11-26 02:03:00 +01:00
Daniel Molkentin
ef0c7348ad Account Settings: Fix label 2013-11-26 00:04:50 +01:00
Daniel Molkentin
050bb55f1e Wizard: Do not start from scratch if the initial folder is non-default
Before, the folder was initialized to "ownCloud" in any case,
which lead the wizard to conclude it had to sync everything anew,
because the location moved -- even if the folder location was manually
corrected.

Fixes parts of #1172
2013-11-26 00:04:33 +01:00
Markus Goetz
fa715ce135 Propagator: Open download file as Unbuffered 2013-11-25 19:25:19 +01:00
Markus Goetz
911e0bdd6e Propagator: Check write errors when downloading 2013-11-25 19:25:19 +01:00
Olivier Goffart
fa0f773fcb Separate the case of file changing durng upload in the chunk or non chunk case.
If the file is changed between chunk, it is easy and we can just retry as the
file has not been changed on the server.
But if the file is changed after it has been updated on the server, we must still
update the database with the etag. (and possibly delete the partial file)

Relates to issue #1002
2013-11-25 19:16:54 +01:00
Markus Goetz
ac8296fb94 Propagator: Check E-Tag when resuming
Should fix #756
2013-11-25 19:01:04 +01:00
Daniel Molkentin
f47ce2fea6 Account Settings: Set initial button state correctly
Fixes #1185
2013-11-25 17:56:09 +01:00
Klaas Freitag
33ff6b3934 Even if problems occured show the Ok-Icon in the setup dialog.
Fixes bug #942.
2013-11-25 17:49:59 +01:00
Olivier Goffart
ca3d8ab193 Add one case of missing -gzip removal 2013-11-25 17:48:57 +01:00
Daniel Molkentin
d85009a2e9 Account Settings: fix connect error
Fixes #1198
2013-11-25 17:34:40 +01:00
Markus Goetz
72d2ac09e3 Propagator: Don't ignore error if no HTTP error code 2013-11-25 16:37:48 +01:00
Olivier Goffart
6b7da798b8 Remove -gzip from Etag
Fix #1195
2013-11-25 16:30:13 +01:00
Klaas Freitag
2e4043b498 Show proper error message and icon according to error class. 2013-11-25 16:18:07 +01:00
Klaas Freitag
dc29046d61 Add new progressProblem signal and slots.
Now the sync problems are handled differently than the sync progress
to ease error message handling and stuff.
2013-11-25 16:18:07 +01:00
Klaas Freitag
0c6dca25c4 Register meta type for SyncProblem 2013-11-25 16:18:07 +01:00
Klaas Freitag
1a3f246c46 Add new Error Types to progress: Soft, Normal, Fatal. 2013-11-25 16:18:07 +01:00
Daniel Molkentin
ad6c42b031 Wizard: let us handle/ignore credential failures 2013-11-25 15:50:19 +01:00
Daniel Molkentin
9ddedf81ac Cleanup: "Use QMutexLocker" 2013-11-25 15:34:17 +01:00
Daniel Molkentin
685c13dead Distiguish "Signed out" from "Disconnected" 2013-11-25 15:34:17 +01:00
Daniel Molkentin
c25c7daca7 docs: Add infos about installing the sql plugin and module
Fixes #1184
2013-11-25 15:34:17 +01:00
Daniel Molkentin
2a17a2a102 Remove credential-exposing debug output 2013-11-25 15:34:16 +01:00
Daniel Molkentin
4e22fff427 Introduce online/offline state, accessible via GUI 2013-11-25 15:34:16 +01:00
Daniel Molkentin
6165c38289 Fix indentation 2013-11-25 15:34:16 +01:00
Daniel Molkentin
f554cca3d6 Fix initial state of quota info class. 2013-11-25 15:34:16 +01:00
Daniel Molkentin
67132326d2 Prefix tooltips with app name 2013-11-25 15:34:16 +01:00
Daniel Molkentin
ea2b5fb29c Query credentials when needed. Put the account offline if user aborts.
This is only implemented for HTTP auth. Shibboleth still does its own thing.
2013-11-25 15:34:16 +01:00
Daniel Molkentin
0a2861a731 Disable quota polling when default account does not exist or is offline 2013-11-25 15:34:16 +01:00
Olivier Goffart
6f17131e3c Fix mutex usage in the journal
All public function must lock the mutex. And therefore none of the journal
function may call public function because the mutex is already locked.

So have a public commit that lock the mutex,  and a private  commitInternal
that assume the mutex is locked
2013-11-25 15:11:37 +01:00
Olivier Goffart
ca3885de2a Fix some SQL error and warning
Such as:
 Error opening the db:  "Driver not loaded Driver not loaded"
or
 QSqlDatabasePrivate::removeDatabase: connection '...' is still in use, all queries will cease to wor

We need to clear the QSqlDatabase _db handle before calling removeDatabase.
And we also need to give a different name to different folder database, just to be sure
2013-11-25 15:07:58 +01:00
Daniel Molkentin
5d6700c68d Merge pull request #1165 from csware/startmenu-according-to-ms-guidelines
Startmenu according to ms guidelines
2013-11-25 04:27:43 -08:00
Daniel Molkentin
37d6f6eeab Build on OS X 2013-11-25 10:54:18 +01:00
Klaas Freitag
fd1552f7a0 Handle SoftError and show blacklisted files. 2013-11-24 22:27:11 +01:00
Klaas Freitag
055a8d7e74 Do not display error messages if user aborts the sync run. 2013-11-24 22:26:50 +01:00
Klaas Freitag
1964e60eb0 Do not show an error message if user aborted. Also CSYNC_STATUS fixes. 2013-11-24 22:21:29 +01:00
Klaas Freitag
11acfde55a Refresh the Protocol widget when the dialog is raised. 2013-11-24 22:20:43 +01:00
Mr. Jenkins
3a1c6429ab [tx-robot] updated from transifex 2013-11-23 23:14:03 -05:00
Klaas Freitag
ecb2444923 Handle changing source file in upload correctly.
Delete the file on the server if the source file is new, but
the source did not arrive completely within a timespan.
2013-11-22 19:45:26 +01:00
Klaas Freitag
65bd4be16e Make sure all queries are initialized on our database object.
Since we use a database with the non default name, we need to do that,
otherwise the query is initialized on the default db which is not open
in our case.
2013-11-22 15:37:35 +01:00
Mr. Jenkins
39e48d3d01 [tx-robot] updated from transifex 2013-11-21 20:06:22 -05:00
Mr. Jenkins
c0b3672f32 [tx-robot] updated from transifex 2013-11-21 08:09:18 -05:00
Klaas Freitag
8d2950f66c Enable the overall file count in progress again. 2013-11-21 11:37:47 +01:00
Klaas Freitag
55e82ee4c1 Made transaction management a bit more transparent. Some fixes. 2013-11-21 11:13:58 +01:00
Klaas Freitag
aa17be40cc Some database code cleanups. 2013-11-20 18:19:14 +01:00
Klaas Freitag
97c661c909 Cleanups 2013-11-20 14:59:58 +01:00
Klaas Freitag
2767e7084a Minor cleanups. 2013-11-20 14:27:44 +01:00
Klaas Freitag
5900b1ad25 Add blacklisting for files with error conditions. 2013-11-20 14:27:44 +01:00
Klaas Freitag
20b9ae757d Add a http status code varialbe to the sync item object. 2013-11-20 14:27:44 +01:00
Klaas Freitag
aff2dd9f44 The IGNORE statement is handled further down the code. 2013-11-20 14:27:44 +01:00
Klaas Freitag
e30c484a7a Ignore the SIGPIPE signal as that disturbs debugging with Qt Creator.
It is questionable why this happens and if this patch really helps,
or if it might have side effects. Input appreciated :)
2013-11-20 14:27:44 +01:00
Klaas Freitag
0f6dd8748f Fixed some header wording. 2013-11-20 14:27:44 +01:00
Klaas Freitag
a342f63fdf Changed wording: Replaced Protocol against Status. 2013-11-20 14:27:44 +01:00
Daniel Molkentin
5c4d240c66 Build on mac with Qt 5
I still had this patch on disk.
2013-11-19 14:41:40 +01:00
Markus Goetz
e551e92e13 Downloads: Ignore file if no ETag was sent
Fixes part of #970
2013-11-19 12:44:25 +01:00
Markus Goetz
b98d97a96d SyncJournalDb: Fix warnings
I got those warnings for the latter sync runs:
11-19 10:58:15:997 QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
11-19 10:58:15:997 QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
2013-11-19 11:28:08 +01:00
Klaas Freitag
f30ac49264 Cached more queries, used safe QSqlQuery pattern 2013-11-18 13:02:09 +01:00
Klaas Freitag
49ba252fff Database initialize code cleanup.
If the QSqlQuery class is called with a query in the constructor, the query
is executed immediately. In fact, we executed each query twice before.
Later on we might want to implement a wrapper clas around the query.
2013-11-18 10:02:33 +01:00
Klaas Freitag
69269f8f75 Use transactions to speed up database access. 2013-11-18 10:02:32 +01:00
Klaas Freitag
e73730cb94 Close database after retrieval of file record count.
As the csync updater opens the database itself, it is cleaner to close
the db before and open it again after csync has finished.
Added a close method to the journal class.
2013-11-18 10:02:32 +01:00
Klaas Freitag
098e04c13f Set PRAGMA synchronous to NORMAL 2013-11-18 10:02:32 +01:00
Klaas Freitag
b0f6628584 Moved implementation of start() to cpp file. 2013-11-18 10:02:32 +01:00
Klaas Freitag
42f6867329 Add some useful logging. 2013-11-18 10:02:32 +01:00
Daniel Molkentin
0a9a3d8f04 Cleanup in folderman 2013-11-18 09:37:09 +01:00
Daniel Molkentin
ec850e83b9 Folders need to be setup before initializing the GUI
This fixes the incomplete context menu
2013-11-18 09:37:09 +01:00
Markus Goetz
08665d6ac2 Settings: Don't specify encoding
QSettings automatically does escaping. When UTF-8 was set, I
got all kind of problems with the QByteArray for the geometry
and the umlaut in my name for the proxy user.
2013-11-18 09:30:42 +01:00
Markus Goetz
4194a078d5 Revert "set utf8 for the central settings file"
This reverts commit 6758c89130.
2013-11-15 15:45:21 +01:00
Daniel Molkentin
6758c89130 set utf8 for the central settings file 2013-11-15 14:43:48 +01:00
Olivier Goffart
c15a1eedd1 Only update the db for ETAG if the etag has changed for directories 2013-11-15 13:53:18 +01:00
Klaas Freitag
bf6e1f10ce Prepare the queries after the database was migrated. 2013-11-15 11:21:27 +01:00
Klaas Freitag
c22f8a47f1 Initialise values properly, avoid warning. 2013-11-15 10:32:13 +01:00
Klaas Freitag
858facb5e0 Use precompiled database statements. 2013-11-15 10:32:13 +01:00
Olivier Goffart
b610dd2754 Revert "Partial revert of "CMake: Remove cmake module""
That patch reverted the oposite of what it should have reverted :-)

This reverts commit b22ef9f8fa.
2013-11-15 10:20:12 +01:00
Olivier Goffart
b3972a5ba8 Do not fetch the file id in the propagator with a HEAD
Normally, the fileid comes with the PUT or the GET.
If it did not comes with the PUT, it means the server do not support
fileid,  we should not query it with a useless HEAD.

Also, in case the fileid changes (which it should not)  update anyway
to the new fileid in the db
2013-11-15 10:18:19 +01:00
Daniel Molkentin
36e8273da0 fix mac builds 2013-11-14 20:53:56 +01:00
Daniel Molkentin
2f4de3cc48 Build fix 2013-11-14 20:41:23 +01:00
Daniel Molkentin
b22ef9f8fa Partial revert of "CMake: Remove cmake module"
This reverts commit 63188667bb.
2013-11-14 19:34:12 +01:00
Daniel Molkentin
e20f39f040 Another cleanup 2013-11-14 19:31:38 +01:00
Daniel Molkentin
63188667bb CMake: Remove cmake module 2013-11-14 19:26:09 +01:00
Daniel Molkentin
c2eaf5e627 owncloud is no longer a dl'opened module, but linked into csync 2013-11-14 19:22:22 +01:00
Daniel Molkentin
7ba8983f0a Change all Network Jobs to use start() 2013-11-14 19:20:19 +01:00
Markus Goetz
088aa6ebdd Wizard: Default button to Next 2013-11-14 19:13:59 +01:00
Markus Goetz
767ec4ed59 Wizard: Support redirects again 2013-11-14 17:54:38 +01:00
Markus Goetz
b12b8c981d Wizard: Also reset timeout on forwards 2013-11-14 17:23:56 +01:00
Markus Goetz
b499a62593 Wizard: Timeout handling for CheckServerJob 2013-11-14 17:23:56 +01:00
Markus Goetz
fa0a2764a4 Fix changing URL in wizard 2013-11-14 17:23:56 +01:00
Markus Goetz
a537a98f03 Tray menu: Populate at start 2013-11-14 17:23:56 +01:00
Sven Strickroth
ed5b0973dd Do not create folder for single link
Signed-off-by: Sven Strickroth <email@cs-ware.de>
2013-11-14 15:45:14 +01:00
Olivier Goffart
e8e27b61f6 Revert the changes that fetch the file id in the propagator.
We don't want to fetch the file id in the propagator.

Revert "Put item member variable to base class."
This reverts commit f7aa2aa348.

Revert "Add isValidFileId and getFileIdPropget methods."
This reverts commit ccd254abba.
2013-11-14 14:59:03 +01:00
Sven Strickroth
336e22233d Do not create uninstall shortcut in start menu
According to Microsoft Design guidelines (http://msdn.microsoft.com/en-us/library/windows/desktop/aa511447.aspx) no icons for uninstallers should be created.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2013-11-14 14:40:21 +01:00
Daniel Molkentin
578431c791 Fix building owncloudcmd in case of theming 2013-11-14 14:20:09 +01:00
Daniel Molkentin
ead0f8d029 Update build docs 2013-11-14 12:36:09 +01:00
Klaas Freitag
f7aa2aa348 Put item member variable to base class. 2013-11-14 11:37:32 +01:00
Klaas Freitag
ccd254abba Add isValidFileId and getFileIdPropget methods. 2013-11-14 11:37:08 +01:00
Daniel Molkentin
56de183155 Merge pull request #1160 from csware/exclude-office-tempfiles
Add another Office lock/temporary file pattern
2013-11-13 15:52:37 -08:00
Daniel Molkentin
c8256eea0e Merge pull request #1162 from csware/startmenu-according-to-ms-guidelines
Startmenu according to ms guidelines
2013-11-13 15:52:05 -08:00
Sven Strickroth
b026bb308d Do not create folder for single link
Signed-off-by: Sven Strickroth <email@cs-ware.de>
2013-11-14 00:45:18 +01:00
Sven Strickroth
6bd4d367d4 Do not create uninstall shortcut in start menu
According to Microsoft Design guidelines (http://msdn.microsoft.com/en-us/library/windows/desktop/aa511447.aspx) no icons for uninstallers should be created.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2013-11-14 00:43:11 +01:00
Sven Strickroth
d401a62fd9 Add another Office lock/temporary file pattern
Experienced with Microsoft Office 2010.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
2013-11-14 00:33:11 +01:00
Daniel Molkentin
8f61cc4041 Hint the OS to not show [?] in Wizards and Dialogs
Fixes #1156
2013-11-13 20:12:56 +01:00
Daniel Molkentin
21c9fc2d35 Cleanup 2013-11-13 19:11:46 +01:00
Daniel Molkentin
171572e400 Remember paused state throughout application restarts
Fixes #823
2013-11-13 18:58:35 +01:00
Daniel Molkentin
475a4f2676 Windows: ship QtSql lib 2013-11-13 14:32:09 +01:00
Olivier Goffart
52e01b39d6 Adapt to csync 'md5'->'etag' change 2013-11-13 14:28:41 +01:00
Daniel Molkentin
af1dcfd179 Compile fix 2013-11-13 14:24:02 +01:00
Daniel Molkentin
233a6908dd Partial revert "Compile with Qt5"
This reverts commit 878ae56a71.
2013-11-13 14:19:01 +01:00
Daniel Molkentin
ae83c12f05 Fix compiler warning 2013-11-13 14:19:01 +01:00
Daniel Molkentin
878ae56a71 Compile with Qt5 2013-11-13 14:00:12 +01:00
Daniel Molkentin
2ff4ebc72f Make user() available throught AbsctractCredentials 2013-11-13 13:59:35 +01:00
Daniel Molkentin
ca79d3b437 Merge remote-tracking branch 'origin/master' into account_refactoring 2013-11-13 13:55:58 +01:00
Klaas Freitag
14081a197b Call ne_sock_init and ne_sock_exit to initialize neons SSL stack.
See https://github.com/owncloud/mirall/issues/1115 for more details on
why that is done here now.
2013-11-11 17:47:24 +01:00
Daniel Molkentin
9fe2549938 Add user info if the auth backends provides it 2013-11-11 16:57:15 +01:00
Klaas Freitag
e0a50d4bb9 PostSyncCleanup added: Remove superfluous entries from database after
sync.
2013-11-11 16:45:40 +01:00
Daniel Molkentin
ad1c1f4130 Remove legacy code 2013-11-11 15:36:49 +01:00
Daniel Molkentin
121b18bf70 QtKeychain is not a hard dependency 2013-11-11 15:36:29 +01:00
Daniel Molkentin
22ed29a30b Remove obsolete credentialstore class 2013-11-11 15:24:07 +01:00
Daniel Molkentin
64b59f8679 Don't use integration directory 2013-11-11 15:22:51 +01:00
Daniel Molkentin
406ed5a0c0 Make new folder wizard work again 2013-11-11 15:20:07 +01:00
Daniel Molkentin
d5081f4328 Fix logic 2013-11-11 14:02:54 +01:00
Daniel Molkentin
95d7afb0d0 cleanups 2013-11-11 10:57:33 +01:00
Klaas Freitag
2b2987d962 Make sure to rebuild the recent changes menu. 2013-11-11 10:06:14 +01:00
Klaas Freitag
2eb77445be Add rename actions to progress dispatching.
With that fix rename operations are shown as such in the progress
window and in bubble help etc.
2013-11-08 16:21:59 +01:00
Daniel Molkentin
12b1b38351 Fix connect 2013-11-08 14:02:13 +01:00
Daniel Molkentin
b0abb6362a Don't set the content header length
This breaks POSTS and is not needed in QNAM, since QNAM
does this itself internally.
2013-11-08 14:01:56 +01:00
Klaas Freitag
a458ffd472 Add missing return in error case. 2013-11-08 12:56:54 +01:00
Daniel Molkentin
60b6f520e7 Make Shibboleth browser aware of Accounts
Needed for SSL error handling. It's also more consistent.
2013-11-07 18:47:38 +01:00
Daniel Molkentin
8d0d5b4077 Make redirects work 2013-11-07 18:46:57 +01:00
Daniel Molkentin
5c9a6afb82 Fix crash when opening settings without a valid account 2013-11-07 18:46:28 +01:00
Klaas Freitag
162acc1cc2 Fix conflict file handling, create a proper conflict file name.
Before this fix, the conflict file name was set in the file name
variable which lead to the problem that the subsequent rename of
the temp file to the final final filename was moving the temp file on
the conflict file. No final file was there.
2013-11-07 16:53:22 +01:00
Daniel Molkentin
64ef43d918 Fix the key used for storing the password 2013-11-07 15:59:58 +01:00
Daniel Molkentin
33c3d2a7d0 Wizard: Initialize account credentials.
Required to be able to readily retrieve the user name later on
2013-11-07 15:24:49 +01:00
Daniel Molkentin
1238ab4f69 fix broken connect() statement 2013-11-07 12:50:55 +01:00
Daniel Molkentin
a42ff5a07c Show floating point prec. in account settings, too 2013-11-07 12:50:39 +01:00
Daniel Molkentin
aa4b6bd4ea Readd "online" notion as a state in account.
This gets updated by the ConnectionValidator. Not sure if that's
the best choice, but it mimmicks the old behavior the closest.
2013-11-07 12:22:17 +01:00
Daniel Molkentin
478ba9c5ef Fix approved SSL certificates being forgotten 2013-11-07 12:04:45 +01:00
Klaas Freitag
c58e9d17a8 Again minor doc changes. 2013-11-07 10:29:27 +01:00
Klaas Freitag
41ccbc0334 Minor docu change. 2013-11-07 10:28:14 +01:00
Daniel Molkentin
bd46ad56fc Add new quotainfo class 2013-11-07 10:14:38 +01:00
Daniel Molkentin
bde5e86c50 Reformatting fixes 2013-11-07 10:14:25 +01:00
Daniel Molkentin
ec0f01fd7c Ensure an SSL Error Handler is always available 2013-11-07 10:14:12 +01:00
Klaas Freitag
fe4c1cc35a Remove straycat code from mirall. 2013-11-06 14:20:44 +01:00
Klaas Freitag
b6152c19d6 Adjust generic build documentation to the current state. 2013-11-06 11:13:55 +01:00
Daniel Molkentin
800abbf8b7 Make http credentials work 2013-11-05 18:16:00 +01:00
Daniel Molkentin
3af622d535 Make quota display work 2013-11-05 18:15:47 +01:00
Klaas Freitag
ee4cbf52dc Remove straycats collected in the reconcile phase from journal. 2013-11-05 17:53:01 +01:00
Klaas Freitag
5cd2be058d Fix local rename. 2013-11-05 17:50:09 +01:00
Klaas Freitag
3a21edca2b Keep originalFile member as QString rather than C string.
This avoids encoding problems with interesting file names.
2013-11-05 17:48:51 +01:00
Klaas Freitag
c6a926842a Fix recursivley flag misinterpretation. 2013-11-05 17:47:51 +01:00
Daniel Molkentin
440b5164ad Build fix 2013-11-04 16:41:59 +01:00
Daniel Molkentin
cc5f17a7d2 Merge remote-tracking branch 'origin/master' into account_refactoring
Conflicts:
	src/mirall/accountsettings.cpp
	src/mirall/folder.cpp
2013-11-04 16:38:55 +01:00
Daniel Molkentin
85d5b82811 - Make saving/restoring accounts work.
- Prepare for fetching quota
2013-11-04 16:36:23 +01:00
Olivier Goffart
f0a1ac4346 Fix syncing folder with nothing in it
Do the start after connecting, as the finish may be imediate if there
is nothing to do.
2013-10-31 12:11:56 +01:00
Olivier Goffart
bdc39f9cc2 Allow folder that are prefix of another 2013-10-31 11:41:56 +01:00
Olivier Goffart
d3ae2f42a7 Reset the proxy module property at every sync
This is required for the fix for #713
Since the module properties are shared in global variables shared by
every folders, removing another folder may clean the proxy settings.
So we need to restore them at every sync
2013-10-31 11:39:43 +01:00
Olivier Goffart
df39ab0b2f Don't leak the system tray 2013-10-31 10:52:19 +01:00
Olivier Goffart
28833ee5ac Fix crash when removing folder while syncing.
We need to set _thread to 0 after destoying it
2013-10-31 10:51:45 +01:00
Klaas Freitag
c66a1d1895 Removed unused code from LocalRename 2013-10-30 18:14:33 +01:00
Klaas Freitag
cdee0dc1cf Added a PropagateLocalRename job to do local renames. 2013-10-30 17:37:34 +01:00
Klaas Freitag
a43c5fcfe8 Fix header name according to changes on server master. 2013-10-30 17:37:34 +01:00
Olivier Goffart
5c67f39476 Ignore error 404 on DELETE
This may happen if we have stale entries in the database
2013-10-30 17:33:06 +01:00
Olivier Goffart
fb47657b1f Make F6 in the account config sync the selected folder, for debugging purposes
Issue #409
2013-10-30 16:58:08 +01:00
Olivier Goffart
76d46af4b7 Revert "Implement a sync now button"
Actually, after discussion with the team, we decided this button is a bad idea

This reverts commit b56fcd8ebd.
2013-10-30 16:48:28 +01:00
Daniel Molkentin
86af2848dd Merge remote-tracking branch 'origin/master' into account_refactoring
Conflicts:
	src/mirall/accountsettings.cpp
2013-10-30 16:37:49 +01:00
Daniel Molkentin
4ca310b63b Remove ownCloudInfo for good 2013-10-30 16:33:15 +01:00
Daniel Molkentin
59bc1d8966 Credential Store is no longer static
It now belongs to HttpCredentials
2013-10-30 16:32:34 +01:00
Daniel Molkentin
14c2ff44f3 More porting to Account class
- Finish port of owncloud setup wizard to Account
- Deprive MirallConfigFile of the customHandle
2013-10-30 16:31:47 +01:00
Olivier Goffart
b56fcd8ebd Implement a sync now button
The button is in the account config, next to the "pause/resume" button

Fixes #409
2013-10-30 16:27:00 +01:00
Olivier Goffart
e38d6d974b Replace _Button* with _button
Identifiers starting with underscore and uppercase are reserved in C++.
2013-10-30 15:52:30 +01:00
Olivier Goffart
9500c5ffab Do not change the instruction anymore when we finish an item
The status is in the status.  Keep the original instruction so the
UI knows what to display for eath item
2013-10-30 10:46:05 +01:00
Olivier Goffart
b079cedbf5 Use the status instead of the instruction for finished items 2013-10-30 10:44:41 +01:00
Olivier Goffart
6e088e28f5 Adjust the mtime in case of fake conflicts
"Fake conflicts" happen when the etag changes on the server, and the
mtime changes on the client,  but the actual file is still exactly
the same.  We correctly detect them as false conflict and we do not
generate the conflict file for them.
But we should also update the local mtime to the server mtime so future
sync don't get confused.
2013-10-29 12:23:51 +01:00
Olivier Goffart
01e2743bae Always download the conflicted files.
Conflicts have a direction==NONE. And they need to be downloaded, not uploaded
2013-10-29 12:13:30 +01:00
Olivier Goffart
75ffa787a6 emit the EndDownload progress at the right place.
It was put in rename instead of download
2013-10-29 12:13:30 +01:00
Olivier Goffart
4ad9f34807 Save the UPDATED files in the database
Those are files that were detected as "resolved conflict".
They should have been a conflict because they both were new, or both
had their local mtime or remote etag modified, but the size and mtime
is the same on the server.  This typically happen when the database is removed.
Nothing will be done for those file, but we still need to update the database.
2013-10-29 12:13:30 +01:00
Daniel Molkentin
a91799a11c Make the setup wizard compile again
- introduces more jobs
- needs more cleaning up
2013-10-28 20:01:59 +01:00
Daniel Molkentin
44fd03c058 Merge pull request #1125 from iAndre89/patch-1
Update mingw32-cross-nsis-plugin-processes and mingw32-cross-nsis-plugin...
2013-10-28 09:20:09 -07:00
Andrea Sosso
083e75998f Update mingw32-cross-nsis-plugin-processes and mingw32-cross-nsis-plugin-uac 2013-10-28 17:17:10 +01:00
Olivier Goffart
adc47948a5 Add a comment explaining OwncloudPropagator::start 2013-10-28 17:00:27 +01:00
Olivier Goffart
6e886e28e9 Merge branch 'propagator-job'
Conflicts:
	src/mirall/owncloudpropagator.cpp
2013-10-28 16:26:25 +01:00
Klaas Freitag
e63fc184a5 Options parsing added. 2013-10-28 16:07:13 +01:00
Olivier Goffart
84a40dcb59 Refactor the new propagator in jobs
This makes the code (IMHO) more easy to understand, and will allow
even more easy parallelism
2013-10-28 15:58:35 +01:00
Olivier Goffart
8e90782107 Make owncloudcmd display the debug output 2013-10-28 15:45:37 +01:00
Klaas Freitag
68ba99b7f0 Fixed fileID parsing and improved logging. 2013-10-28 15:28:34 +01:00
Klaas Freitag
2fefc428a8 Write file Id to journal table.
Since this requires a change of existing sync journals, database migration
code was added.
2013-10-25 13:31:00 +02:00
Klaas Freitag
17220f2604 Query file Id from server if unknown. 2013-10-25 13:31:00 +02:00
Klaas Freitag
7a68961b25 Add handling for the file_id data to the sync items. 2013-10-25 13:31:00 +02:00
Daniel Molkentin
aa2baa45fb Cleanups, ownership for ssl error handler 2013-10-24 12:55:26 +02:00
Daniel Molkentin
eda5feb82c Bring back proper ssl handling 2013-10-24 00:29:08 +02:00
Daniel Molkentin
d2b445c80c Basic port, misses wizard 2013-10-23 14:48:53 +02:00
hefee
b4621e22e6 Merge pull request #1114 from owncloud/freebsd-inotify
Need inotify on FreeBSD for libsync
2013-10-23 02:36:12 -07:00
hefee
38679f79b5 Need inotify on FreeBSD for libsync 2013-10-23 01:24:27 +02:00
hefee
a927caf2b0 Fixing Utility::platform for all platforms 2013-10-23 00:59:29 +02:00
Daniel Molkentin
29c846a764 WIP: Dissolve owncloudinfo class 2013-10-21 21:42:52 +02:00
Jenkins for ownCloud
804c9fbd6f [tx-robot] updated from transifex 2013-10-21 12:01:30 -04:00
Jenkins for ownCloud
2edebdef08 [tx-robot] updated from transifex 2013-10-20 06:49:52 -04:00
Daniel Molkentin
a91ba0fd48 WIP: Move network tasks from ownCloudInfo into Job classes. 2013-10-18 12:24:29 +02:00
Daniel Molkentin
a25d55a265 Add QtJson to 3rdparty, use it in ownCloudInfo 2013-10-18 02:00:19 +02:00
Jenkins for ownCloud
c99f75b247 [tx-robot] updated from transifex 2013-10-17 12:48:20 -04:00
Olivier Goffart
0efbfb10aa Fix MOVE of directory.
Remove the right entry from the database (i.e: the original file name)
Fetch the etags of the sub entries
2013-10-17 13:06:39 +02:00
Olivier Goffart
cb8006b89f Fix comments of the propagation step.
Also, don't mark item as removed if the instruction is not REMOVE
2013-10-17 12:09:44 +02:00
Klaas Freitag
660469cbf5 Do not propagate a move of the Shared folder. 2013-10-17 10:48:31 +02:00
Daniel Molkentin
a06e551469 Merge pull request #1103 from Absolight/freebsd-port
Patches for FreeBSD
2013-10-16 08:52:46 -07:00
Olivier Goffart
746b86a1dd Save the progress db once a chunk has been upload
Allow to resume when we cancel the sync
2013-10-16 16:47:24 +02:00
Mathieu Arnold
1c594b6a8d FreeBSD doesn't have statvfs64, like MacOS X. 2013-10-16 15:57:59 +02:00
Mathieu Arnold
2b652422b9 Don't call make directly, it can have another name. 2013-10-16 15:57:05 +02:00
Olivier Goffart
313832de8d Put the progress database within the journal 2013-10-16 12:01:14 +02:00
Jenkins for ownCloud
250f281189 [tx-robot] updated from transifex 2013-10-15 23:26:29 -04:00
Olivier Goffart
2c63f7a24d Merge branch '1.4'
Conflicts:
	VERSION.cmake
	src/mirall/application.cpp
	src/mirall/application.h
	src/mirall/csyncthread.cpp
	src/mirall/folder.cpp
	src/mirall/folder.h
	src/mirall/folderman.cpp
2013-10-15 17:00:53 +02:00
Olivier Goffart
10fba886dc Do not elide the progress text
It's size is computed so the text fit, there is no need to alide it.

Fixes #1094
2013-10-15 14:58:34 +02:00
Daniel Molkentin
046d955f5c 1.4.2beta1 2013-10-14 20:21:07 +02:00
Klaas Freitag
d0d362664b Handle proxy on folder level, not folderman level. 2013-10-14 16:11:52 +02:00
Klaas Freitag
f841450dae Do append non empty lines not starting with a hash to ignores. 2013-10-14 16:11:52 +02:00
Klaas Freitag
a3927c5c2c Avoid quick flickering up of the ok-icon for the sync prepare state.
For the SyncPrepare phase now the icon that was displayed before is
kept. If the folder was disabled before, the sync icon is displayed.
2013-10-14 12:59:08 +02:00
Klaas Freitag
89cfa387cd Remove bogus html formatting tag. 2013-10-14 11:46:02 +02:00
Olivier Goffart
1fccb23442 Don't show desktop notification when the user don't want to
Fix #1093
2013-10-14 11:33:47 +02:00
Klaas Freitag
bfd50ffcd0 Do not show progress if nothing is transmitted, show number of deletes. 2013-10-14 11:16:17 +02:00
Jenkins for ownCloud
d2301c811e [tx-robot] updated from transifex 2013-10-13 19:29:34 -04:00
Klaas Freitag
4f2a171913 Avoid quick flickering up of the ok-icon for the sync prepare state.
For the SyncPrepare phase now the icon that was displayed before is
kept. If the folder was disabled before, the sync icon is displayed.
2013-10-11 17:54:26 +02:00
Daniel Molkentin
005d70a73c Proxy support: Reset useSystemConfiguration() in all cases but DefaultProxy
Fixes #1016
2013-10-11 14:25:35 +02:00
Klaas Freitag
592291cbcb Fix initialized after warning. 2013-10-11 12:10:47 +02:00
Klaas Freitag
7236bd7dd4 Make problem warnings not appearing in the tray.
This fixes bug #944: Do not show the warning icon in the tray.
2013-10-11 12:09:27 +02:00
Klaas Freitag
c02d5f41a5 Remove bogus html formatting tag. 2013-10-11 12:09:27 +02:00
Daniel Molkentin
5a7cd815ab Reconnect if network is unavailable after startup
Fixes: #1080
2013-10-11 11:43:23 +02:00
Jenkins for ownCloud
006be43c73 [tx-robot] updated from transifex 2013-10-10 22:18:01 -04:00
Daniel Molkentin
c2c01bccfc Fix literal occurances of "ownCloud" in GUI 2013-10-10 11:35:22 +02:00
Daniel Molkentin
2240039442 Fix literal occurances of "ownCloud" in GUI 2013-10-10 11:34:45 +02:00
Klaas Freitag
fb4728c7ee Handle sync enable flag correctly in folder scheduling.
This fixes bug #1083.

Conflicts:
	src/mirall/folder.cpp
2013-10-10 11:32:56 +02:00
Klaas Freitag
f34621578e Use qint64 rather than int64_t. 2013-10-09 14:33:24 +02:00
Klaas Freitag
5e50b1f1fd Add some progress meassuring logging. 2013-10-09 14:33:09 +02:00
Klaas Freitag
3c95d342ee Handle sync enable flag correctly in folder scheduling.
This fixes bug #1083.
2013-10-09 14:27:28 +02:00
Klaas Freitag
53ac5427a8 Integrate progress dialog into settings dialog. 2013-10-09 14:27:28 +02:00
Klaas Freitag
1ed8afba09 Minor changes. 2013-10-09 14:27:28 +02:00
Klaas Freitag
ef81a8a2ad Use qint64 rather than int64_t. 2013-10-08 15:41:15 +02:00
Klaas Freitag
fa9d1614e7 Add some progress meassuring logging. 2013-10-08 14:07:46 +02:00
Jenkins for ownCloud
fe46b588af [tx-robot] updated from transifex 2013-10-07 11:14:31 -04:00
Jenkins for ownCloud
290de7c430 [tx-robot] updated from transifex 2013-10-05 10:12:16 -04:00
Olivier Goffart
05fbfb520f Protect the sync database by a mutex since it is used by the thread 2013-10-04 21:05:46 +02:00
Daniel Molkentin
805e1330ad Compile with MinGW 2013-10-04 20:29:42 +02:00
Olivier Goffart
7c6fcf688c Fix the fact that some success was reported as error 2013-10-04 15:55:59 +02:00
Olivier Goffart
127055dd70 Refactor a bit the error reporting from the propagator
Add different classes of error failures.
Fatal error means the sync should be stopped.
SoftErrors are not to be displayed to the user.

We still need to make a classification of the errors.
2013-10-04 15:55:59 +02:00
Markus Goetz
f4929e849e CsyncThread: Activate recursive PROPFIND 2013-10-04 15:42:40 +02:00
Mackie Messer
ba9ac03b0b Put plugins in PlugIns, not Plugins on Mac
Requires 770539f0a5 on csync
2013-10-04 13:01:46 +02:00
Mackie Messer
0257f7e169 Add sqlite plugin for OS X 2013-10-04 13:01:46 +02:00
Daniel Molkentin
763cb43e46 Add qsqlite plugin on Windows 2013-10-04 12:45:17 +02:00
Olivier Goffart
8ed2588cdf Fix build with Qt5 2013-10-03 23:14:10 +02:00
Olivier Goffart
d8d2d36638 Fix SQL Query 2013-10-03 23:00:47 +02:00
Olivier Goffart
afc13e70b9 fix Qt5 test compilation 2013-10-03 22:51:40 +02:00
Olivier Goffart
baa9ba089c Save the database after each operation. 2013-10-03 22:41:12 +02:00
Olivier Goffart
3495b822a5 TMP 2013-10-03 20:01:07 +02:00
Daniel Molkentin
be88d425fc Fix connecting to the mysql db 2013-10-03 19:52:09 +02:00
Klaas Freitag
94a06cec5b WIP on the journal database. 2013-10-03 18:52:02 +02:00
Klaas Freitag
4008f6b309 Fix file status enum names. 2013-10-03 17:55:32 +02:00
Klaas Freitag
daac6886a0 Added method setFileRecord to update sync journal 2013-10-03 17:48:14 +02:00
Daniel Molkentin
e304dfd5b9 Add socketapi
Slightly amended by: Daniel Molkentin <danimo@owncloud.com>
2013-10-03 17:05:01 +02:00
Dominik Schmidt
d0af48c417 Add KDE tmp files to .gitignore 2013-10-03 17:05:00 +02:00
Klaas Freitag
2e3aabf99b Read header without prefix path now that it's in 3rdparty. 2013-10-03 16:47:48 +02:00
Klaas Freitag
59bf8740a0 Add c_jhash.h header from csync to 3rdparty. 2013-10-03 16:41:23 +02:00
Olivier Goffart
21cd57228e Fix build with Qt5
Missing SQL module
2013-10-03 16:29:47 +02:00
Klaas Freitag
4501c64e61 Do not include whole header of csync_exclude. 2013-10-03 16:22:31 +02:00
Klaas Freitag
273105e78b Handle new case SyncAbortRequested. 2013-10-03 16:21:54 +02:00
Klaas Freitag
2707116350 Minor fixes for file_status 2013-10-03 16:12:50 +02:00
Klaas Freitag
c7d30bae98 Handle new sync result enum. 2013-10-03 15:32:44 +02:00
Klaas Freitag
be328581a7 Implemented sync status function for overlay icons. 2013-10-03 15:29:10 +02:00
Klaas Freitag
c32bc27b3e Add sync journal database class that opens the csync db to read from it. 2013-10-03 15:29:10 +02:00
Klaas Freitag
0fef88a9b9 Some comments added. 2013-10-03 15:29:10 +02:00
Klaas Freitag
3e0fc56495 Dont show the [i] icon in the tray, see bug #942 2013-10-03 15:29:10 +02:00
Olivier Goffart
7ea3fc1533 Fix compilation of the test 2013-10-03 14:45:00 +02:00
Olivier Goffart
396ec4f888 Fix race condition in the logger.
Logs can come from multiple thread, we need to keep the _logstream
protected by a mutex
2013-10-03 14:37:13 +02:00
Olivier Goffart
79ea7c3eed Abort the sync asynchroniously
Don't block the GUI when clicking on pause

Mirall issue #968
2013-10-03 14:36:32 +02:00
Olivier Goffart
b18810f381 Implement abort with the new propagator
abort was implemented in csync after the new propagator was written,
so it was not working with the new propagator
2013-10-03 14:35:56 +02:00
Jenkins for ownCloud
51d9cf099c [tx-robot] updated from transifex 2013-10-03 08:09:15 -04:00
Daniel Molkentin
339ed20abc Utility::showInFileManager(): Substitute valid desktop file parameters 2013-10-03 12:05:00 +02:00
Klaas Freitag
44ed577992 List results for all folders, not only one. 2013-10-03 11:36:18 +02:00
Klaas Freitag
f6685accc3 Use subdirs for more xdg dirs to go through 2013-10-02 19:23:06 +02:00
Klaas Freitag
2c2e79c13d Consider the folder of items to delete from info window. 2013-10-02 19:23:06 +02:00
Daniel Molkentin
81961068a2 Utility: Move OS specific implementations into separate files 2013-10-02 19:15:56 +02:00
Daniel Molkentin
4e91a6450c Change the recent changes menu and file item dialog behavior
Recent Changes:
- "No items synced recently"
- Add separator to the details section
- Make items clickable (will open file location in file manager)
- If a file was deleted, disable it

File Item Dialog:
- Make items clickable (will open file location in file manager)

This is implemented via a new method Utility::showInFileManager(QString),
which goes through great lengths to use use the right file manager on all
OSes/WMs/DEs, and make sure it selects the file in question if possible.
This needs good testing, though.

Fixes #1044
2013-10-02 18:17:48 +02:00
Daniel Molkentin
3dc2547bb5 WIP 2013-10-02 18:16:32 +02:00
Olivier Goffart
47f299f0ee Send the last known etag to the server in a If-Match header
That way we avoid race conditions in case the file changed between the
update and the reconcile
2013-10-02 15:57:49 +02:00
Olivier Goffart
d135aab86c clear the etag in every cases, not only when we upload files 2013-10-02 15:57:49 +02:00
Olivier Goffart
e2a2b882bb Remove the unused errorDetails
It was not displayed to the user. Only use errorString instead.

Also report neon error to the user
2013-10-02 15:57:49 +02:00
Klaas Freitag
d8309a64cb Even more cleanup. 2013-10-02 15:55:15 +02:00
Klaas Freitag
55722099fa More refactoring: Logger and Logbrowser out of application class. 2013-10-02 15:29:24 +02:00
Jenkins for ownCloud
48abe62151 [tx-robot] updated from transifex 2013-10-02 09:08:33 -04:00
Klaas Freitag
2149814428 Fix/enhance user information about problems on startup.
Pass the error conditions to the gui class.
2013-10-01 18:25:43 +02:00
Klaas Freitag
ea1c951006 Refactoring: Moved all GUI related computing out of application class.
Created ownCloudGui class to contain all gui related stuff.
2013-10-01 13:58:01 +02:00
Klaas Freitag
4a96f9a5c9 Add Mirall namespace. 2013-10-01 13:58:01 +02:00
Klaas Freitag
fcc4151810 Fix sequence of directories in help text. 2013-10-01 13:58:01 +02:00
Klaas Freitag
82cd79c004 Add unify defines to header. 2013-10-01 13:58:00 +02:00
Klaas Freitag
74983af3b4 Make evaluateSync public, review pls. 2013-10-01 13:58:00 +02:00
Klaas Freitag
f5bcb11fe9 Add connected server to error message. 2013-10-01 13:58:00 +02:00
Klaas Freitag
f6f1c638a5 Allow Constructor to be public, for synclibrary 2013-10-01 13:58:00 +02:00
Daniel Molkentin
e250672e4a CMake: libhttplib -> httplib 2013-09-30 23:16:04 +02:00
Jenkins for ownCloud
13093f5de3 [tx-robot] updated from transifex 2013-09-30 09:04:25 -04:00
Daniel Molkentin
9b62104f30 Add Folder column to Details sync protocol
Also fixes padding

Fixes #1037
2013-09-30 14:12:59 +02:00
Daniel Molkentin
df36ebf308 Merge branch '1.4'
Conflicts:
	VERSION.cmake
2013-09-30 13:34:10 +02:00
Jenkins for ownCloud
0d0c6a15fb [tx-robot] updated from transifex 2013-09-28 23:02:52 -04:00
Daniel Molkentin
86e42a9cf0 Fix possible endless loop in inotify
Fixes #1041
2013-09-27 20:10:12 +02:00
Jenkins for ownCloud
b4911cc5ce [tx-robot] updated from transifex 2013-09-26 23:55:07 -04:00
Klaas Freitag
3e31d86596 Add missing trailing semicolon as nagged by rpmlint. 2013-09-26 11:13:19 +02:00
Klaas Freitag
ab007e2bb2 Set version to 1.4.1 2013-09-26 10:29:14 +02:00
Klaas Freitag
de9dcbd231 Transmit the new mtime of the file with the PUT request.
If the server supports it already, we can save another request by
sending the mtime as a header value in the PUT request and check the
servers reply for a acknoledge header.
2013-09-25 14:26:13 +02:00
Jenkins for ownCloud
00fff7f793 [tx-robot] updated from transifex 2013-09-24 11:58:13 -04:00
Klaas Freitag
5cf13dfa32 Make logging work again. 2013-09-24 15:56:03 +02:00
Klaas Freitag
27b9a5aed9 Merge branch '1.4', brings in the changes we did for 1.4.1 2013-09-24 14:18:25 +02:00
Klaas Freitag
c45d55b94b Create a rc2. 2013-09-24 12:45:45 +02:00
Klaas Freitag
7048bd8cc9 Handle app icon names properly. 2013-09-24 12:19:29 +02:00
Klaas Freitag
cae6ca987f Revert "Fix application shortname for proper icon"
We must not change the app short name for ownCloud. Too dangerous as it
is used all over.
This reverts commit 65171cfb3a.
2013-09-24 11:48:19 +02:00
Klaas Freitag
65171cfb3a Fix application shortname for proper icon 2013-09-23 18:23:21 +02:00
Klaas Freitag
7ec636aeb6 Added changelog entries. 2013-09-23 16:36:49 +02:00
Klaas Freitag
c96980a57d Set version to 1.4.1rc1 2013-09-23 16:36:36 +02:00
Klaas Freitag
0959ceeff2 Disable delete of folder object temparily. 2013-09-23 15:10:42 +02:00
Klaas Freitag
1988c9d8c4 Do complete sync if network was disconnected.
This fixes owncloud/mirall#1007
2013-09-23 15:10:42 +02:00
Klaas Freitag
1eaa1e47fe Be more careful with items in model when deleting rows. 2013-09-23 15:10:42 +02:00
Klaas Freitag
31923b314e Removed left over stuff from refactoring. 2013-09-23 15:10:42 +02:00
Klaas Freitag
ee840b62e5 Fix syncEnable in folder and folderman. 2013-09-23 15:10:42 +02:00
Jenkins for ownCloud
4de99d2540 [tx-robot] updated from transifex 2013-09-22 11:52:39 -04:00
Daniel Molkentin
363efaa408 Theming build fix: Icons need shortname 2013-09-20 23:09:41 +02:00
Jenkins for ownCloud
5b60522e5e [tx-robot] updated from transifex 2013-09-20 09:44:46 -04:00
Daniel Molkentin
b0beeea95f More fixes related to object destruction on exit
- _logBrowser is not delete on close, call deleteLater
- move writing geometry out of dtor.
- _folderWizard was unused, remove it and all related noops

Hopefully solves #945
2013-09-20 14:18:28 +02:00
Daniel Molkentin
d0a4650d69 Settings: calculate sidebar width dynamically
Fixes #1020
2013-09-20 10:40:22 +02:00
Daniel Molkentin
ec5a84cf01 Pop up config wizard if no server url is configured.
Fixes #1018.
2013-09-19 17:24:22 +02:00
Daniel Molkentin
a057eb8590 Fix focus issue during setup wizard 2013-09-19 14:52:41 +02:00
Daniel Molkentin
6a8753b119 Start only one wizard, delete it when done 2013-09-19 12:11:46 +02:00
Jenkins for ownCloud
b334c82fdd [tx-robot] updated from transifex 2013-09-18 10:45:45 -04:00
Daniel Molkentin
23fab90a31 _tray is a QPointer, not a QScopedPointer 2013-09-18 16:41:37 +02:00
Daniel Molkentin
8fdf9cac6b Try to be more graceful during shutdown
- Do not delete _tray, use deleteLater() via QScropedPointer
- force closing any dialoges that might want to write their
  geometry in aboutToQuit(), before the actual destruction
  of the sync thread, etc starts.

This tries to fix #945
2013-09-18 15:42:35 +02:00
Daniel Molkentin
525d12f5a2 Make "Sync started" message optional
Fixes #934
2013-09-18 14:14:42 +02:00
Daniel Molkentin
15d247a708 Ui::SslErrorDialog belongs within the Mirall namespace 2013-09-18 14:06:23 +02:00
Jenkins for ownCloud
9ed4aa4111 [tx-robot] updated from transifex 2013-09-16 10:34:17 -04:00
Daniel Molkentin
a1d0b85277 Add copyright header to syncfileitem.h
Fixes #993
2013-09-15 22:49:24 +02:00
Daniel Molkentin
5e5a77b040 Fix parameter order 2013-09-15 22:48:12 +02:00
Daniel Molkentin
e420ae6942 Folder Wizard: Fix various issues
- Use data role for pathes
- call root dir "ownCloud"
- don't connect() multiple times
- ensure chars like # or ? in path are interpreted as part of the url path segment

Should fix #992
2013-09-15 22:47:35 +02:00
Daniel Molkentin
0be7c0273e Replace forgotton 22px app icon version which was still s/w 2013-09-15 00:48:06 +02:00
Jenkins for ownCloud
41b1b53c76 [tx-robot] updated from transifex 2013-09-13 20:47:28 -04:00
Thomas Müller
60ef5535c6 fixing testOctetsToString
(cherry picked from commit 78c8f13645)
2013-09-13 20:14:53 +02:00
Thomas Müller
e38d0807c9 moving back to 1024 as divider for kB, MB, GB & TB
(cherry picked from commit c87c456ae0)
2013-09-13 20:14:47 +02:00
Daniel Molkentin
864b7cd41e Merge pull request #998 from owncloud/fixing-mb-1.4
Fixing mb 1.4
2013-09-13 11:11:43 -07:00
Thomas Müller
78c8f13645 fixing testOctetsToString 2013-09-13 17:30:53 +02:00
Thomas Müller
c87c456ae0 moving back to 1024 as divider for kB, MB, GB & TB 2013-09-13 15:00:49 +02:00
hefee
94d9b8fb39 Don't ship doc/scripts/README.rst via sphinx 2013-09-13 02:26:21 +02:00
Daniel Molkentin
7045a6c239 Merge pull request #996 from owncloud/dont-ship-doc_scripts
Don't ship doc/scripts/README.rst via sphinx
2013-09-12 17:25:39 -07:00
hefee
2b1602872c Don't ship doc/scripts/README.rst via sphinx 2013-09-13 01:26:02 +02:00
Daniel Molkentin
b488ad12c2 Do not build org and com theming when building from tar ball
Fixes #989
2013-09-12 12:56:24 +02:00
Daniel Molkentin
2dad027001 Do not build org and com theming when building from tar ball
Fixes #989
2013-09-12 12:55:12 +02:00
Daniel Molkentin
f97bb240d7 Setting thread priority is only possible after calling start() 2013-09-11 15:52:07 +02:00
Daniel Molkentin
574e029254 Setting thread priority is only possible after calling start() 2013-09-11 15:51:06 +02:00
Jenkins for ownCloud
91759c4a27 [tx-robot] updated from transifex 2013-09-11 06:40:51 -04:00
Klaas Freitag
ce5934461e Do not en- or disable the watcher in setSyncEnabled.
The watcher is handled through the start and stop sync hooks in the
folder class. Even if the the folder is disabled and the watcher
fires, the folder does not schedule because it checks first if the
folder is enabled.
2013-09-11 12:33:07 +02:00
Klaas Freitag
80332fb6ab Do not en- or disable the watcher in setSyncEnabled.
The watcher is handled through the start and stop sync hooks in the
folder class. Even if the the folder is disabled and the watcher
fires, the folder does not schedule because it checks first if the
folder is enabled.
2013-09-11 12:30:29 +02:00
Klaas Freitag
287ec2f3df Enable and disable syncing also in the folder objects. 2013-09-11 10:50:03 +02:00
Klaas Freitag
eb5824f713 Handle startup network errors correctly. 2013-09-11 10:49:45 +02:00
Klaas Freitag
eded901f69 Minor code cleanups- 2013-09-11 10:49:10 +02:00
Klaas Freitag
6f637e40d8 Enable and disable syncing also in the folder objects. 2013-09-11 10:32:09 +02:00
Klaas Freitag
ec06663dee Handle startup network errors correctly. 2013-09-11 10:32:09 +02:00
Klaas Freitag
3c5c432e1d Minor code cleanups- 2013-09-11 10:32:09 +02:00
Olivier Goffart
927f7549d4 Revert "Compile (find httpbf)"
This reverts commit 2d2e843804.

Turns out i had an old build of csync
2013-09-11 09:00:27 +02:00
Olivier Goffart
177114f8d9 Initialize the size of the SyncItem 2013-09-11 08:49:09 +02:00
Olivier Goffart
6bfdfd1af0 Fix progress with new propagator 2013-09-11 08:42:29 +02:00
Olivier Goffart
2d2e843804 Compile (find httpbf) 2013-09-11 08:11:03 +02:00
Daniel Molkentin
fd30df82cb Folder Wizard: More sanity checks
Check if a server folder or its parent
is already part of a sync and refuse
to create a sync in this case.

Avoids "recursive syncing"

Fixes #962
2013-09-10 23:38:00 +02:00
Daniel Molkentin
55f2fcb4c6 Folder Wizard: More sanity checks
Check if a server folder or its parent
is already part of a sync and refuse
to create a sync in this case.

Avoids "recursive syncing"

Fixes #962
2013-09-10 23:37:52 +02:00
Daniel Molkentin
d8888432c3 Send basic auth in utf8.
Implies circumventing QAuthenticator and handling
authentication manually again.

Fixes #941
2013-09-10 23:04:10 +02:00
Daniel Molkentin
59425741b6 Send basic auth in utf8.
Implies circumventing QAuthenticator and handling
authentication manually again.

Fixes #941
2013-09-10 23:03:52 +02:00
Daniel Molkentin
3577ba2981 Fix httpbf/neon linkage 2013-09-10 19:50:44 +02:00
Jenkins for ownCloud
d4477b0d65 [tx-robot] updated from transifex 2013-09-10 09:42:18 -04:00
Daniel Molkentin
48b4c57d92 Use shared version of libhttpbf, package it on win 2013-09-10 14:45:08 +02:00
morriswinkler
51712fea53 Update building.rst
eider fix it or add the note here
2013-09-10 12:15:16 +02:00
Daniel Molkentin
f597f99198 Wait up to 30 secs before complaining about missing systray
Conflicts:
	src/mirall/utility.cpp

Fixes #949
2013-09-10 11:40:02 +02:00
Daniel Molkentin
00d09763af Fix compile error 2013-09-10 11:37:52 +02:00
Daniel Molkentin
5639572ef3 Wait up to 30 secs before complaining about missing systray 2013-09-10 11:37:52 +02:00
Daniel Molkentin
1e7716abb4 Merge pull request #964 from morriswinkler/patch-1
Update building.rst
2013-09-10 02:28:03 -07:00
morriswinkler
751181d14f Update building.rst
eider fix it or add the note here
2013-09-09 19:09:08 +02:00
Olivier Goffart
013b87f9c5 ignore the progress database 2013-09-09 15:18:28 +02:00
Olivier Goffart
6da2f6bbaa Qt5: QSettings is no longer case insensitive 2013-09-09 14:00:13 +02:00
Olivier Goffart
198cb43ad6 Qt5: Q_WS_* macro were deprecated, replace by QT_OS_*
in particular, QT_WS_X11 is no longer defined
2013-09-09 13:31:39 +02:00
Jenkins for ownCloud
db648a0268 [tx-robot] updated from transifex 2013-09-08 20:37:37 -04:00
Jenkins for ownCloud
7cea2225de [tx-robot] updated from transifex 2013-09-07 04:38:12 -04:00
Daniel Molkentin
51a7cbeb55 kill warning 2013-09-05 20:15:55 +02:00
Daniel Molkentin
171a9e1575 fix Qt 5 build on Mac/Win 2013-09-05 19:53:39 +02:00
Klaas Freitag
76deabe4df Use List to handle errors and display multiline. 2013-09-05 19:28:23 +02:00
Klaas Freitag
74ec37f3c7 Use List to handle errors and display multiline. 2013-09-05 19:25:59 +02:00
Daniel Molkentin
6b9950a9a0 Qt5: DBUS is only needed for FDO 2013-09-05 18:41:49 +02:00
Daniel Molkentin
c6ed7dc586 Tests: Find test lib in Qt5 2013-09-05 18:06:00 +02:00
Daniel Molkentin
35ac6610c7 Compile with Qt5 on Linux 2013-09-05 17:13:31 +02:00
Jenkins for ownCloud
121efd8ff1 [tx-robot] updated from transifex 2013-09-05 07:30:27 -04:00
Daniel Molkentin
23d8f01012 Fix locating translations on linux 2013-09-05 11:08:00 +02:00
Daniel Molkentin
05178f0fbf Fix locating translations on linux 2013-09-05 11:06:40 +02:00
Daniel Molkentin
573aaec9fd Fix propagator test 2013-09-04 17:29:19 +02:00
Klaas Freitag
8fe102662d Merge branch 'propagator-ng': Fixes to work with new LGPL ocsync.
Conflicts:
	src/mirall/csyncthread.cpp
2013-09-04 16:33:06 +02:00
Klaas Freitag
b676ffe208 Some more info about the exclude matching. 2013-09-04 15:17:43 +02:00
Daniel Molkentin
625b21152e Merge branch 'qt5' 2013-09-04 15:01:21 +02:00
Daniel Molkentin
385759f3c9 bump version 2013-09-04 15:00:53 +02:00
Daniel Molkentin
9ce09713b6 1.4.0 final 2013-09-04 11:09:12 +02:00
Klaas Freitag
4fa6faf608 Hide quota and display explanation if no quota info is available. 2013-09-03 14:25:28 +02:00
Klaas Freitag
a24ae13d9c Added logging to quota info result slot. 2013-09-03 14:25:28 +02:00
Daniel Molkentin
64dd0d1b45 Consistent look for top-labels 2013-09-03 14:24:34 +02:00
Daniel Molkentin
da63b1223c Doc: more polishing
- add description of syncing limitations
- update out-of-date comments

Fixes #788
2013-09-03 12:35:40 +02:00
Jenkins for ownCloud
36f32c2aef [tx-robot] updated from transifex 2013-09-03 06:30:41 -04:00
Daniel Molkentin
063acadc3b Doc: new interface chapter 2013-09-02 19:28:06 +02:00
Klaas Freitag
81c720c05b Remove dots from the end of error messages. 2013-09-02 17:37:16 +02:00
Klaas Freitag
edcdcb945a Show the reason why a file was ignored. 2013-09-02 17:25:23 +02:00
Daniel Molkentin
5df6430bb2 Doc: Do not enforce theme when building without submodules 2013-09-02 15:55:03 +02:00
Daniel Molkentin
9a0096d07c Docs: Allow to build with org and com branding 2013-09-02 14:01:15 +02:00
Jenkins for ownCloud
25d33d6057 [tx-robot] updated from transifex 2013-09-01 12:30:19 -04:00
Daniel Molkentin
ab4c6247c7 Fix display of "Monochrome icon" setting
The logic was inverse, and there was a typo in the string. Oh my...
2013-08-31 14:14:24 +02:00
Jenkins for ownCloud
1b69dbb38b [tx-robot] updated from transifex 2013-08-30 09:22:37 -04:00
Daniel Molkentin
bfdd488b00 Tests: make tests run in parallel 2013-08-29 14:50:55 +02:00
Daniel Molkentin
54c8809bf4 Tests: Fix indentation 2013-08-29 14:50:18 +02:00
Daniel Molkentin
0873665bec Tests: Move all comparisons from QVERIFY to QCOMPARE 2013-08-29 14:48:40 +02:00
Olivier Goffart
02b3033ca3 Use the same convention as on the server to format strings
* use power of 10 SI units
 * use "B" instead of "bytes"
 * use at least 2 significant digit, but no more than one digit after
   the period
2013-08-29 12:06:41 +02:00
Olivier Goffart
a27c8ad90c Fix crash in case of error
the QObject::parent() is 0
2013-08-28 21:26:42 +02:00
Olivier Goffart
bf6d0a521c Compile with Qt5 2013-08-28 20:58:22 +02:00
Olivier Goffart
336bbb2403 Compile with Qt4 2013-08-28 20:14:40 +02:00
Daniel Molkentin
73da086964 Initial changes to also build on Qt5, doesn't compile yet 2013-08-28 17:03:31 +02:00
Daniel Molkentin
58f4f3623f Startup: Unity has no proper Systray implementation
...so it can't respond to isSysTrayAvailable()
2013-08-28 15:51:00 +02:00
Daniel Molkentin
18a58f73de Startup: Unity has no proper Systray implementation
...so it can't respond to isSysTrayAvailable()
2013-08-28 15:45:52 +02:00
Daniel Molkentin
d1451a3c90 Mac: Use hdiutil attach instead of open during signing 2013-08-28 12:53:34 +02:00
Jenkins for ownCloud
0bef47b2f3 [tx-robot] updated from transifex 2013-08-28 05:24:20 -04:00
Jenkins for ownCloud
ccc05d6658 [tx-robot] updated from transifex 2013-08-27 10:23:30 -04:00
Olivier Goffart
c15de69156 Reconfigure the proxy when needed 2013-08-27 10:02:59 +02:00
Thomas Müller
8bfb44fd28 Inverting the logic to set the prefix for SYSCONF_INSTALL_DIR 2013-08-26 22:42:17 +02:00
Daniel Molkentin
79d3b84fad Reintroduce workaround for /etc in root if files go to /usr 2013-08-26 21:59:52 +02:00
Daniel Molkentin
b97701586e Properly install icons 2013-08-26 21:18:56 +02:00
Daniel Molkentin
b120345fe7 Icon file needs to use app_executable as well 2013-08-26 20:54:10 +02:00
Daniel Molkentin
ec5c65a530 install correct file 2013-08-26 20:35:56 +02:00
Daniel Molkentin
77e7a1fa8d Fix casing in settings dialog 2013-08-26 20:22:24 +02:00
Daniel Molkentin
f6d45b68ef More clear error messages 2013-08-26 20:20:10 +02:00
Daniel Molkentin
24d76a0d75 desktop file == executable 2013-08-26 20:20:10 +02:00
Olivier Goffart
c3326efe94 Do not sort the entries in the syc protocol dialog alphabetically
The entries should be sorted chronogically.  But now the QTreeWidget can
only sort them alphabetically by the time,  which is not what we want.
Disalbe the sorting, and always insert the elements in the reverse
order.

Fix #890
2013-08-26 17:27:44 +02:00
Daniel Molkentin
c0e056bb84 Only show help if a URL is provided 2013-08-26 14:27:39 +02:00
Jenkins for ownCloud
8a7df36701 [tx-robot] updated from transifex 2013-08-25 18:19:18 -04:00
Jenkins for ownCloud
39ec6b1bb2 [tx-robot] updated from transifex 2013-08-23 19:15:56 -04:00
Daniel Molkentin
30b2406533 Fix windows packaging 2013-08-23 15:37:24 +02:00
Daniel Molkentin
076d5dda0e RC1 2013-08-23 14:35:15 +02:00
Olivier Goffart
e78eab46ff Fix saving the geometry of the log browser 2013-08-23 12:41:29 +02:00
Olivier Goffart
19a08f8d5e Make remember the size of the settings dialog
Before, we saved the geometry in the closeEvent which is only called if
the user press the [x] in the title bar.  But it is not called when the
user accept the dialog (by pressing the close button or the enter key)
So save the geometry in the destructor of the dialog instead.

One also must call delete from the Application destructor because it was
leaking
2013-08-23 12:25:16 +02:00
Olivier Goffart
c6319117fd Better default size for the setting dialog 2013-08-23 11:59:49 +02:00
Olivier Goffart
4c10ed4ada Remove some entries from the default exclude list.
If the user really want to have those entries excluded it can add them
manually.
But one cannot change the default so if user want the .bak files synced,
he would not be able to do it
2013-08-23 11:17:02 +02:00
Daniel Molkentin
b0ab3ca80b Theme: Add documentation after recent changes 2013-08-23 10:36:09 +02:00
Daniel Molkentin
9f89a2fe76 More adjustments around the application name
- libname is now derived from binary name (which is lowercase)
- remove superflouos reimplementation of appName() in owncloud theme
- APPLICATION_SHORTNAME is now optional (and if not set, equals
  APPLICATION_NAME
2013-08-23 10:30:03 +02:00
Daniel Molkentin
e386bfb550 fix x-compilation 2013-08-23 00:36:05 +02:00
Jenkins for ownCloud
0189a3f1bd [tx-robot] updated from transifex 2013-08-22 10:35:38 -04:00
Olivier Goffart
d3a333e03c Fix the 'copy button' in the protocol log
Fix #863

Also added more padding for the filename because it might be big, and in
case it's not enough, always add at least a space.
2013-08-22 16:20:04 +02:00
Olivier Goffart
04d3e282fb Stop the poll timer when the folder is disabled
No need to request etag every 30 second for disabled folder.

When the folder is re-enabled, the Timer is actived again after the sync
2013-08-22 12:35:28 +02:00
Olivier Goffart
4be5f970d5 Default to no limit upload
We don't want to make the transfer slow by default
2013-08-22 12:26:34 +02:00
Daniel Molkentin
31ceff181e Amendment to last commit 2013-08-22 09:51:35 +02:00
Daniel Molkentin
42abf4101c Honor cmake's install prefix
since the entire ting is so incredibly broken in cmake,
use the approach taken by csync (which emulates the
approach of autotools), to get the directories right.

This mandates changes in the theme, which need discussion
(APPLICATION_SHORTNAME must now equal appName(), and
APPLICATION_NAME should equal appGuiName()).
2013-08-22 09:40:25 +02:00
Daniel Molkentin
f09cae74fb Merge pull request #897 from onnozweers/patch-1
Adding "Type=Application" to desktop file (to fix autostart in Ubuntu)
2013-08-21 16:50:25 -07:00
onnozweers
13a6393ec5 Adding "Type=Application" to desktop file (to fix autostart in Ubuntu) 2013-08-21 22:11:02 +02:00
Olivier Goffart
3c2bb1e2bc Compile after the merge 2013-08-21 15:29:04 +02:00
Olivier Goffart
24af9f38f4 Merge branch 'csync_lgpl' into propagator-ng
Conflicts:
	src/mirall/csyncthread.cpp
	src/mirall/csyncthread.h
	src/mirall/folder.cpp
	src/mirall/progressdispatcher.h
	src/mirall/syncfileitem.h
2013-08-21 13:19:02 +02:00
Jenkins for ownCloud
ace57f9dd4 [tx-robot] updated from transifex 2013-08-21 07:10:45 -04:00
Daniel Molkentin
e5117a98c9 Quota bar: Reduce border width to 1px per request
As requested by Jan
2013-08-21 11:34:49 +02:00
Daniel Molkentin
c1f7af7e6f Write desktop file manually, add gnome startup property
Fixes #893
2013-08-21 11:09:56 +02:00
Olivier Goffart
b4c116e2a2 Add the new directories comming from the sync in the watcher 2013-08-21 00:45:36 +02:00
Klaas Freitag
98efab83a1 Compile against ocsync based on csync 0.50 2013-08-20 13:26:03 +02:00
Jenkins for ownCloud
a19a960b5e [tx-robot] updated from transifex 2013-08-19 14:08:05 -04:00
Olivier Goffart
29d2094626 Hide password in the account settings
Fix #811
2013-08-19 13:42:01 +02:00
Klaas Freitag
c3b82e6818 Fix sequence for recently changed items. 2013-08-19 13:06:48 +02:00
Olivier Goffart
1a7c89326b Fix crash when finishing the wizard
As shown on this backtrace:

=13334== Invalid read of size 8
QCoreApplication::postEvent(QObject*,QEvent*, int)
Mirall::ownCloudInfo::slotReplyFinished()
[...]

==13334==  Address 0x1afb91d8 is 8 bytes inside a block of size 16 free'd
operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
QNetworkAccessManager::~QNetworkAccessManager()
Mirall::MirallAccessManager::~MirallAccessManager()
[...]
Mirall::ownCloudInfo::setNetworkAccessManager(QNetworkAccessManager*)
Mirall::ownCloudInfo::setCustomConfigHandle(QString const&)
Mirall::OwncloudSetupWizard::slotAssistantFinished(int)
[...]
Mirall::OwncloudWizard::basicSetupFinished(int)
Mirall::OwncloudWizard::slotCurrentPageChanged(int)
[...]
QWizard::currentIdChanged(int) (in
Mirall::OwncloudWizard::successfulStep()
Mirall::OwncloudSetupWizard::finalizeSetup(bool)
Mirall::OwncloudSetupWizard::slotAuthCheckReply(QString const&,
[...]
Mirall::ownCloudInfo::ownCloudDirExists(QString const&, QNetworkReply*)
Mirall::ownCloudInfo::slotReplyFinished()

The QNetworkManager was destroyed in a slot connected to a signal emited
by slotReplyFinished,  but we did not finish with the QNetworkReply yet.

Fix the crash by using QueuedConnection so the QNetworkAccessManager is
not destroyed before slotReplyFinished has completed.
2013-08-19 12:43:52 +02:00
Daniel Molkentin
3a1f04ac2d Allow folders with characters that need percent-encoding
Fixes #191
2013-08-18 20:24:24 +02:00
Daniel Molkentin
2c8e95a0f4 Be more specific when disconnecting the signal
Fixes a crash, amends be48cb646c
2013-08-18 19:41:01 +02:00
Klaas Freitag
a9d94ef732 Show error message in status dialog in error case. 2013-08-18 19:27:20 +02:00
Klaas Freitag
2756d17873 Fix/add missing status strings to theme. 2013-08-18 19:20:25 +02:00
Klaas Freitag
34d7f84fc2 Minor cleanup. 2013-08-18 17:59:03 +02:00
Daniel Molkentin
cea9b389bf Account Settings: Use native highlight color 2013-08-18 17:00:37 +02:00
Daniel Molkentin
71b1e881d8 Setup Wizard: Only label button "Connect" where suitable 2013-08-18 15:23:52 +02:00
Daniel Molkentin
7ba47e9d44 Code formatting fixes 2013-08-18 15:23:52 +02:00
Daniel Molkentin
be48cb646c Setup wizard: Start sync when displaying result page 2013-08-18 15:23:52 +02:00
Klaas Freitag
47eb5ff1d9 Do not keep the log if the log window is not visible. 2013-08-18 13:28:40 +02:00
Klaas Freitag
b608f5a670 Progressbar and quota bar tweaking. 2013-08-17 22:56:02 +02:00
Klaas Freitag
e81dc34c4e Add a tooltip in the sync protocol list. 2013-08-17 17:57:33 +02:00
Klaas Freitag
1603e627a3 Remove superflous conflict case. 2013-08-17 17:57:33 +02:00
Klaas Freitag
bf978b3e0f Handle Progress as a namespace rather than a class. 2013-08-17 17:57:33 +02:00
Klaas Freitag
0fdaf33288 Use correct translation call from QCoreApplication. 2013-08-17 17:57:33 +02:00
Klaas Freitag
367c4153c1 Show a bubble if the quota was exceeded. 2013-08-17 17:57:33 +02:00
Klaas Freitag
395c673a24 Fix the quota bar for quotas larger 100%. 2013-08-17 17:57:32 +02:00
Olivier Goffart
22de23c651 Fix the 'no limit' upload setting
Fix issue #879
2013-08-17 16:11:45 +02:00
Olivier Goffart
23926d2461 small leak 2013-08-16 20:18:35 +02:00
Olivier Goffart
c03f31b6ba put the 'Account' item first 2013-08-16 15:09:54 +02:00
Olivier Goffart
a1060a8538 fixup the layout of the account settings 2013-08-16 15:03:38 +02:00
Daniel Molkentin
24251bc223 Add "Keyword" to the desktop template
Fixes #876
2013-08-16 12:29:11 +02:00
Jenkins for ownCloud
f78749d2cd [tx-robot] updated from transifex 2013-08-15 16:57:02 -04:00
Daniel Molkentin
0995377d39 1.4.0 beta2 2013-08-15 17:32:46 +02:00
Daniel Molkentin
b9228e64ff Make Folder Reset an expert option (F5)
This feature should not be required, but might be helpful
in the debugging process.
2013-08-15 17:00:07 +02:00
Olivier Goffart
c4084de716 Remove the 'Remove Account' button
It is not doing anything right now, and we have no plans to implement it
in a short future

Fix Issue #866
2013-08-15 16:42:08 +02:00
Olivier Goffart
3c667918e7 Fix Reconfiguration keeps sync folder definition
Issue #875
2013-08-15 16:35:03 +02:00
Olivier Goffart
e55745cbcf Remove connection from unexisting signal to unexisting slot 2013-08-15 16:16:22 +02:00
Daniel Molkentin
e01ce20431 Wizard: Do not use FormLayout for URL line edit
Looks ugly on Mac

Fixes #870
2013-08-15 15:58:20 +02:00
Olivier Goffart
dce8cb83d9 Do not forget the config on the second page of the wizzard
Fixes mirral issue #874 where certificate was not stored on the first
page
2013-08-15 15:45:16 +02:00
Olivier Goffart
8dc956c55b Put all the debug in the log window
Don't emit debug before we installed the hook and created he log window
Also no debug if we use --help
2013-08-15 15:45:16 +02:00
Daniel Molkentin
6c77921a32 Admendment of last commit 2013-08-15 13:09:20 +02:00
Daniel Molkentin
55e4748f06 allow relative directories for --confdir 2013-08-15 13:01:05 +02:00
Daniel Molkentin
5ff9e02517 Implement --logfile - (log to stdout) 2013-08-15 12:24:52 +02:00
Daniel Molkentin
7f7ebc36f5 Fix showing help when app is running 2013-08-15 12:24:52 +02:00
Klaas Freitag
0e5bfc03ce Removed label on request of Jan. 2013-08-15 12:17:01 +02:00
Klaas Freitag
b309d333a6 Minor wording and margin fixes. 2013-08-15 11:30:48 +02:00
Daniel Molkentin
ee439382ed Logger: always log to log widget 2013-08-15 10:56:16 +02:00
Klaas Freitag
192212c682 Handle quota exceeding as error. 2013-08-15 08:15:43 +02:00
Klaas Freitag
148bdfdcd6 Some minor cleanups. 2013-08-15 08:15:43 +02:00
hefee
066c0ba189 Make building documantation parallelable.
sphinx will fail in a race condition, if every sphinx target
uses the same CACHE dir:

Exception occurred:
	File "/usr/lib/pymodules/python2.7/sphinx/cmdline.py", line 189, in main
app.build(force_all, filenames)
	File "/usr/lib/pymodules/python2.7/sphinx/application.py", line 204, in build
self.builder.build_update()
	File "/usr/lib/pymodules/python2.7/sphinx/builders/__init__.py", line 196, in build_update
	'out of date' % len(to_build))
	File "/usr/lib/pymodules/python2.7/sphinx/builders/__init__.py", line 238, in build
self.env.topickle(path.join(self.doctreedir, ENV_PICKLE_FILENAME))
	File "/usr/lib/pymodules/python2.7/sphinx/environment.py", line 351, in topickle
	movefile(filename + '.tmp', filename)
	File "/usr/lib/pymodules/python2.7/sphinx/util/osutil.py", line 104, in movefile
os.rename(source, dest)
	OSError: [Errno 2] No such file or directory
2013-08-15 02:36:44 +02:00
Olivier Goffart
e4128cd5d8 progress with new propagator 2013-08-14 19:59:16 +02:00
Daniel Molkentin
9651f1cddf Folder Wizard: Decode percent encoding 2013-08-14 19:24:02 +02:00
Daniel Molkentin
5feb9b0806 folderwizard: layout fixes 2013-08-14 19:24:02 +02:00
Klaas Freitag
44b9ee19e7 Flatten the itemprogressdialog and show a flat list. 2013-08-14 18:24:06 +02:00
Klaas Freitag
cc16d19bc4 Removed unused defines. 2013-08-14 18:24:06 +02:00
Klaas Freitag
b96c2de2b7 Cleaned folder class, removed a couple of signals and helper classes. 2013-08-14 18:24:06 +02:00
Klaas Freitag
f882b80708 Fix wording to more consolidated style, Jan request. 2013-08-14 18:24:06 +02:00
Daniel Molkentin
4d7c014b23 Resize dialog 2013-08-14 17:47:10 +02:00
Daniel Molkentin
1f274699e5 Pressing F12 in Settings now open the log browser 2013-08-14 17:46:58 +02:00
Daniel Molkentin
697e355f07 Hide mono icon options if the resource has no mono icons 2013-08-14 16:35:42 +02:00
Olivier Goffart
f8e6326880 Default to not cancel
So that the owncloudcmd client is not blocked
2013-08-14 15:44:30 +02:00
Olivier Goffart
67c5f513aa Fix compilation after merge 2013-08-14 15:36:34 +02:00
Olivier Goffart
0589bfc51b Merge branch 'master' into propagator-ng
This just fix the conflict.
Do not compile or work yet

Conflicts:
	src/CMakeLists.txt
	src/mirall/csyncthread.cpp
	src/mirall/csyncthread.h
	src/mirall/owncloudfolder.cpp
	src/mirall/syncfileitem.h
	test/CMakeLists.txt
2013-08-14 15:19:21 +02:00
Olivier Goffart
04f32bd397 Revert "TMP threaded"
This reverts commit 5bb4c3be43.
2013-08-14 14:59:32 +02:00
Olivier Goffart
e89bdfc422 Make the Pause button stop the sync 2013-08-14 14:57:56 +02:00
Olivier Goffart
c2cc9e62a7 Fix the brandwith limit
The unit in mirall are in kbytes/s,  but csync expect  byte/s
2013-08-14 14:57:56 +02:00
Daniel Molkentin
1f2ae0d061 Folder Wizard UI clean up
Input from Jan
2013-08-14 14:01:33 +02:00
Olivier Goffart
91a39588c6 re-enable the sync if the syncing was disabled because the connection is down at startup 2013-08-14 12:59:56 +02:00
Olivier Goffart
a642f86d5b Detect connection failure from the polling 2013-08-14 12:34:03 +02:00
Olivier Goffart
00cf290574 reduce a bit the log output 2013-08-14 12:34:03 +02:00
Daniel Molkentin
b59952b539 Wrap custom message label 2013-08-14 11:58:03 +02:00
Daniel Molkentin
88b4ff9809 Wording changes proposed by Jan 2013-08-14 11:57:19 +02:00
Daniel Molkentin
ddd0965a82 Fix include after class rename 2013-08-14 11:11:47 +02:00
Klaas Freitag
0a9491ff46 Improved timestamp formatting in item sync progress dialog. 2013-08-14 08:04:46 +02:00
Klaas Freitag
32b44e3d87 Removed unused dialog class. 2013-08-14 08:04:46 +02:00
Klaas Freitag
268004b4ff Get correct action kind from progress Dispatcher in case of Context
kind.
2013-08-14 08:04:46 +02:00
Daniel Molkentin
6c0f6ae62e Make copy action copy all fields again
Fixes #863
2013-08-13 15:39:28 +02:00
Jenkins for ownCloud
094f2bb540 [tx-robot] updated from transifex 2013-08-13 08:12:11 -04:00
Daniel Molkentin
f4da7f1fb0 Merge pull request #857 from Arakmar/hiddenFix
Don't add empty entries in hidden files editor with an empty string or when cancel is clicked
2013-08-13 03:43:02 -07:00
Yoann Laissus
b058185d3b Don't add empty entries in hidden files editor with an empty string
or when cancel is clicked
2013-08-12 13:10:16 +02:00
Jenkins for ownCloud
eecb981736 [tx-robot] updated from transifex 2013-08-11 07:07:58 -04:00
Daniel Molkentin
46b870e260 Revert "run tests verbosely"
This reverts commit ff2d59d32f.
2013-08-09 14:45:49 +02:00
Olivier Goffart
1ffab7337d add the temporary downloaded files to the exclude list 2013-08-09 14:10:21 +02:00
Olivier Goffart
82fb8c49cf Do not clear the pending event in the polling anymore
This is useless,  and can even cause problems now since polling only do
a sync when the server has actually changed
2013-08-09 14:10:21 +02:00
Daniel Molkentin
ff2d59d32f run tests verbosely 2013-08-09 13:27:05 +02:00
Daniel Molkentin
0ced165b3e Add tests for Utility namespace 2013-08-09 13:09:41 +02:00
Daniel Molkentin
d3378c131a Fix formatting for 1 byte size in octetsToString() 2013-08-09 13:02:24 +02:00
Jenkins for ownCloud
0300a85295 [tx-robot] updated from transifex 2013-08-09 07:01:08 -04:00
Daniel Molkentin
60a116f3e0 Add tests for Utility namespace 2013-08-09 12:56:43 +02:00
Daniel Molkentin
ff4d2d488f Add cancel button to wizard on Mac
Fixes #848
2013-08-09 01:08:46 +02:00
Daniel Molkentin
b0852b4cf5 No ... for entires that do not spawn a dialog 2013-08-08 20:27:16 +02:00
Daniel Molkentin
c047b4d4de Seems autowrapping doesn't work everywhere. Enforce it 2013-08-08 17:52:09 +02:00
Olivier Goffart
6655da9d24 Fix warning 2013-08-08 16:03:57 +02:00
Daniel Molkentin
cc6abfc366 ChangeLog: 1.4.0beta1 2013-08-08 15:51:48 +02:00
Daniel Molkentin
4e3d4c3153 Credits: Add Jan 2013-08-08 15:51:36 +02:00
Daniel Molkentin
c323041040 NSIS: install libjpeg for qjpeg4.dll 2013-08-08 15:39:34 +02:00
Daniel Molkentin
95d600c5f1 Fix proxy documentation, explain bandwidth limiter 2013-08-08 14:54:52 +02:00
Olivier Goffart
52a47fbc67 Force a sync run after 5 minutes 2013-08-08 14:32:14 +02:00
Klaas Freitag
4e7c069c1f Some adds to the architecture documentation. 2013-08-08 14:19:13 +02:00
Klaas Freitag
f89ffa513a Bump version to 1.4.0beta1 2013-08-08 13:08:23 +02:00
Daniel Molkentin
0086916b4d Retain all old settings when running the setup wizard
Fixes #825
Fixes #759
2013-08-08 13:04:05 +02:00
Klaas Freitag
df5ef6fe67 Added new information icon. 2013-08-08 11:16:28 +02:00
Klaas Freitag
c9e51dcfc1 Display properly elided text in progress. 2013-08-08 11:16:28 +02:00
Daniel Molkentin
c05adfd817 Open Top-Level-Dialogs modal, not semi-modal 2013-08-08 10:36:09 +02:00
Daniel Molkentin
055410e38f Setup proxy connection before every sync 2013-08-08 00:46:23 +02:00
Daniel Molkentin
6163de378e Merge pull request #840 from owncloud/network-icon
Proper network icon for the nice new settings dialog.
2013-08-07 13:27:00 -07:00
Jan-Christoph Borchardt
22938cd697 Proper network icon for the nice new settings dialog. 2013-08-07 21:04:27 +02:00
Daniel Molkentin
a493f81ec2 Windows Installer: Add jpeg,gif,ico image formats 2013-08-07 16:24:10 +02:00
Krzesimir Nowak
87cb2a7114 Set busy cursor when doing page loading in browser. 2013-08-07 15:05:42 +02:00
Krzesimir Nowak
a875b46a80 Add cookie handling for Shibboleth credentials.
Which cookies are going to be stored are determined only when setting
up or modifying an account. Cookie handling allow us to avoid choosing
Identity Provider everytime when browser page appears.
2013-08-07 15:03:13 +02:00
Krzesimir Nowak
704ba791fd Fail the sync if we close the browser without passing proper credentials. 2013-08-07 15:03:13 +02:00
Daniel Molkentin
c24d6bd71c Notify user if there is a problem with the inotify watcher 2013-08-07 15:00:10 +02:00
Daniel Molkentin
9b319cf189 Significantly simply logging 2013-08-07 15:00:10 +02:00
Klaas Freitag
1a9eb19f0d Fix even more compile warnings. 2013-08-07 14:51:31 +02:00
Klaas Freitag
1943cc60b6 Added missing switch cases to calm compiler warnings. 2013-08-07 14:46:57 +02:00
Jenkins for ownCloud
761c05c358 [tx-robot] updated from transifex 2013-08-07 08:01:30 -04:00
Daniel Molkentin
b08c1ada02 -Wno-long-long required due to Qt headers 2013-08-07 13:19:21 +02:00
Daniel Molkentin
dab17e381c Merge pull request #836 from krnowak/warnings
Add -Wall -Wextra -Wpedantic (or -pedantic) warnings by default.
2013-08-07 04:08:26 -07:00
Krzesimir Nowak
114f66f297 Add -Wall -Wextra -Wpedantic (or -pedantic) warnings by default.
This also introduces a MIRALL_FATAL_WARNINGS to enable a -Werror for
GNU compilers and clang.

MSVC compilers are yet to be handled.
2013-08-07 12:54:34 +02:00
Daniel Molkentin
f8878833de Fix compiler warning 2013-08-07 12:18:44 +02:00
Klaas Freitag
364d4340fd Show a more informative problem message in progress. 2013-08-07 12:15:28 +02:00
Klaas Freitag
6226a6ee8f Enable delete messages for progress display. 2013-08-07 10:28:34 +02:00
Daniel Molkentin
c49edeb09d Fix regression in FolderWizard over 1.3
Now it's possible to also pick subdirectory
of in arbitrary depths again
2013-08-06 21:50:22 +02:00
Klaas Freitag
7e794cd94f Tell the progress dialog about a new sync result object. 2013-08-06 18:07:59 +02:00
Klaas Freitag
933a62de01 Add recent action entries in correct sequence to menu. 2013-08-06 18:07:31 +02:00
Klaas Freitag
23f8e3b4f8 Allow Delete notification. 2013-08-06 18:06:54 +02:00
Klaas Freitag
3502edf71b More detailed strings for the progress kind. 2013-08-06 18:06:39 +02:00
Klaas Freitag
4d8a371e43 Display information from SyncResult. 2013-08-06 18:06:05 +02:00
Klaas Freitag
01fd3242c4 Add folder alias to sync result structure. 2013-08-06 18:04:42 +02:00
Klaas Freitag
9c289334e9 Handle notifications for deletes. 2013-08-06 18:04:08 +02:00
Krzesimir Nowak
002142539b Remove most of the dead code in Shibboleth setup page.
The effect of most of the code wasn't even visible after making a
browser an independent window.
2013-08-06 14:56:26 +02:00
Krzesimir Nowak
e1d1c10fad Fix workflow in wizard.
Pressing back in third window should show us browser again. Closing
browser window should show us server setup window again.
2013-08-06 14:35:11 +02:00
Krzesimir Nowak
577bc546d8 Handle SSL problems also for Shibboleth servers. 2013-08-06 11:56:27 +02:00
Daniel Molkentin
85a832fb7c NSIS: Add WebKit dll 2013-08-05 23:25:14 +02:00
Olivier Goffart
a9f23a8331 Get the etag of all subfolder for the root directory
The root directory etag is not updated when the files change.
That's why we need to check the etag of all its sub items
2013-08-05 20:13:39 +02:00
Olivier Goffart
5d24599546 Fetch the etag of the folder to see if it has changed before syncing
Notice that this does not work for the toplevel directory yet, as
owncloud does not change the etag of the root folder
2013-08-05 20:13:39 +02:00
Olivier Goffart
07d9d3770b Refactor: move the pollTimer to the folder 2013-08-05 20:13:39 +02:00
Daniel Molkentin
c9ddb12b5a Build after merge 2013-08-05 20:14:22 +02:00
Daniel Molkentin
0932ee6051 Merge branch 'shibboleth'
Conflicts:
	src/CMakeLists.txt
	src/mirall/application.h
2013-08-05 19:54:06 +02:00
Daniel Molkentin
ee1b8465a3 Revert "Temporarily log HTTP traffic done by MirallAccessManager."
This reverts commit 5930ca8ac7.
2013-08-05 19:47:48 +02:00
Daniel Molkentin
26bd164168 Safer implementation for substitution of WebDav URL
- Use of RegEx is dangerous with folder names
  containing e.g. '(' or ')'.
- Didn't work in my case at all.
2013-08-05 19:45:24 +02:00
Krzesimir Nowak
00e819bd92 Make sure we don't append several copies of cookies for syncing.
Also, make sure we don't append old Shibboleth ones as well.
2013-08-05 18:39:26 +02:00
Krzesimir Nowak
740d33b378 Revert "Go back if browser in wizard is destroyed before getting a cookie."
This reverts commit da370c8b36.
2013-08-05 17:57:32 +02:00
Krzesimir Nowak
f0b284eda7 Refresh Shibboleth cookie if it gets outdated during sync. 2013-08-05 17:42:03 +02:00
Krzesimir Nowak
da370c8b36 Go back if browser in wizard is destroyed before getting a cookie. 2013-08-05 17:29:11 +02:00
Olivier Goffart
203b9c7f6b leak fix 2013-08-05 16:49:18 +02:00
Daniel Molkentin
7932ec3cc1 IgnoreListEditor: slightly better text 2013-08-05 16:26:17 +02:00
Daniel Molkentin
3f15e02881 Add support for deletable ignores in IgnoreListEditor. 2013-08-05 16:13:26 +02:00
Olivier Goffart
6fb5c04bde Finish danimo's patch that refactor the scheduler
Wait a full poll interval after the end of the sync
2013-08-05 15:15:15 +02:00
Olivier Goffart
578bcc3522 Remove scheduler logic from folderman and moved it in folderman
Also fetch and parse the etag when doing a PROPFIND to get the quota

(Patch from danimo)
2013-08-05 15:15:15 +02:00
Daniel Molkentin
99dea76fd1 Fix path display in folder wizard
The new implementation did not work correctly when owncloud is installed
in a subdirectory.
2013-08-05 14:28:05 +02:00
Jenkins for ownCloud
b680540adf [tx-robot] updated from transifex 2013-08-05 06:54:39 -04:00
Klaas Freitag
67f57a443c Disable unknown csync flags for now. 2013-08-05 12:30:24 +02:00
Klaas Freitag
2b3b4f9daf Start setup wizard if no config exists on startup. 2013-08-05 12:19:53 +02:00
Klaas Freitag
ba01a697e6 Renamed test case to get rid of stinking name. 2013-08-05 09:39:06 +02:00
Klaas Freitag
16d81db117 Show deletes in progress. 2013-08-05 09:39:06 +02:00
Jenkins for ownCloud
4ce92f1a98 [tx-robot] updated from transifex 2013-08-04 01:26:52 -04:00
Jenkins for ownCloud
21c63637bd [tx-robot] updated from transifex 2013-08-03 01:27:06 -04:00
Klaas Freitag
18f764e4d5 Fix a typo. 2013-08-02 21:55:09 +02:00
Krzesimir Nowak
5930ca8ac7 Temporarily log HTTP traffic done by MirallAccessManager.
To be reverted later.
2013-08-02 14:30:15 +02:00
Klaas Freitag
49be4a3be2 Propagate soft errors into SyncResult, icon fixes. 2013-08-02 14:22:01 +02:00
dragotin
1e50620f53 Merge pull request #822 from RealRancor/master
Updated options with missing cl switches - thanks a lot :)
2013-08-02 03:19:24 -07:00
Klaas Freitag
5e82dc1841 Some more refinements on item progress 2013-08-02 12:16:21 +02:00
RealRancor
33d76962a7 Updated options with missing cl switches 2013-08-02 11:59:57 +02:00
Klaas Freitag
6ce1c17ee1 Give application class control over itemprogressdialog 2013-08-02 11:33:45 +02:00
Jenkins for ownCloud
8d9b4d3669 [tx-robot] updated from transifex 2013-08-02 01:27:17 -04:00
Krzesimir Nowak
fb79b8a7f8 Omit the server setup page in wizard if URL is overriden by theme. 2013-08-01 19:17:41 +02:00
Krzesimir Nowak
b0236eaa24 Fix folder item being inactive. 2013-08-01 19:11:05 +02:00
Daniel Molkentin
19bbff708e Improve FolderWizard 2013-08-01 18:22:13 +02:00
Klaas Freitag
1399ea13cc Fixed rounding of size display. 2013-08-01 16:58:36 +02:00
Klaas Freitag
a25d9fd3b4 Added itemprogressdialog class to show the sync progress and problems. 2013-08-01 16:58:36 +02:00
Krzesimir Nowak
72d51e4667 Show browser as independent window instead of putting it into dialog.
When browser is shown, dialog is hidden. It reappears after we are
done with logging in.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
f6e3838eb2 Create a QNetworkAccessManager subclass which sets proper user agent and use it. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
c1fdecae2d Fix misc warnings. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
4104db65bb Remove unused method. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
36cb827406 Print correct subtitles when modifying account details. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
69a4558fe4 Actually use the remoteFolder sent by signal. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
928eae419f Hide resolution widget in advanced setup page if nothing has changed. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
50edac8ee8 Split setup page into server and advanced parts. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
945951cda5 Fix indentation. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
fa95a638af Fill username in HTTP credentials setup page. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
3b6aeb1fc8 Make browser inside Shibboleth wizard page a bit larger. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
6543a01418 Fix warnings emitted by clang. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
9724e52f1b Fix warnings.
Should be now compilable when run with -Wall -Wextra -Wpedantic
-Werror.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
9413a30a08 Fix build when using QtKeyChain. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
6a9a2559d2 Fix shibboleth syncing after client restart.
We needed to notify shibboleth-specific QNAM about new cookie and then
stop cramming that cookie into request via setHeader, but rather put
it to cookie jar and let Qt handle the cookie insertion into requests.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
78b6f4df01 Move the creds/ and wizard/ directories one level higher. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
b7e88aa2ef Fix copyright headers. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
224fd21612 Fix displaying URL in account settings.
I deleted too much code there last time.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
a6bf33c501 Make "Connect" button inactive until we get a Shibboleth cookie. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
306a9421fb Avoid a crash when disposing Shibboleth browser. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
d5885daf0f Move credential related files to creds directory.
CredentialStore is now only used for HTTP credentials, so it was moved
into http directory under creds.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
52b3f7105d Remove unused stuff. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
7f6dc291c0 Create HTTP credentials object for config without type value. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
eacb849353 Fix credentials handling in csync.
CSync module's properties can be set only after it was initialized, so
we split the sync context vfunc into two: the one ran before
initialization and the one ran before sync beginning.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
367bc401ee Add Shibboleth credentials implementation. 2013-08-01 16:53:43 +02:00
Krzesimir Nowak
92af3ea725 Add and use credentials abstraction. Implement HTTP and dummy credentials.
To achieve that MirallConfigFile now exports several general
settings-related methods for subclasses (here: for HttpConfigFile), so
it does not have to contain any code targeted for specific
credentials.
2013-08-01 16:53:43 +02:00
Krzesimir Nowak
582ce4cfa0 Cleanup setup wizard. Split setup page into two.
First page is for giving server URL and advanced setup and second page
is for giving credentials. Second page will differ based on
authentication type supported by ownCloud server. For now only HTTP
credentials are supported.
2013-08-01 16:53:43 +02:00
Thomas Müller
43ae3dfce5 no zh, but zh_CN 2013-08-01 15:32:45 +02:00
Daniel Molkentin
ce851a7a8b Use wildcards for translations, so they are always up-to-date 2013-08-01 15:28:06 +02:00
Jenkins for ownCloud
b5b7589b41 [tx-robot] updated from transifex 2013-08-01 08:51:42 -04:00
Daniel Molkentin
b638341c14 Merge pull request #821 from owncloud/ts-cleanup
Translation cleanup
2013-08-01 05:38:50 -07:00
Thomas Müller
7274417f84 explicit selection and mapping of maguages 2013-08-01 14:06:17 +02:00
Daniel Molkentin
1967226c71 fix networksettings.ui _again_ 2013-08-01 13:48:42 +02:00
Thomas Müller
227ea8ed24 kill existing 2013-08-01 13:23:21 +02:00
Jenkins for ownCloud
e705db8339 [tx-robot] updated from transifex 2013-08-01 01:26:44 -04:00
Daniel Molkentin
be65f78174 Fix win32 installer 2013-07-31 08:35:13 +02:00
Daniel Molkentin
fd6a17f3e6 Add journal and temp journal to ignore file
csync ignores them anyway, but inotify and other
watchers don't.
2013-07-31 08:35:13 +02:00
Jenkins for ownCloud
0353d7b6a6 [tx-robot] updated from transifex 2013-07-31 01:26:54 -04:00
Klaas Freitag
a64724be0e More sophisticated progress, add Recent Changes Menu to tray.
ProgressDispatcher now stores a queue of events as well as sync
problems, better known as soft errors. The tray menu displays a
sub menu with 5 recent changes and adds a more... button that
shows a warning icon if soft errors had happend.
More to implement.
2013-07-30 22:24:48 +02:00
Klaas Freitag
a0d9d41455 Use const reference parameters for custom struct parameters. 2013-07-30 22:24:48 +02:00
Klaas Freitag
84e8ab5b71 Make progress aware of errors, first step. 2013-07-30 22:24:48 +02:00
Markus Goetz
f5bbb12434 Crash hotfix, need to dig down actual cause 2013-07-30 15:49:57 +02:00
Jenkins for ownCloud
a07d2cddd2 [tx-robot] updated from transifex 2013-07-30 07:57:21 -04:00
Daniel Molkentin
f1878640c8 Linux: install all available icon sizes 2013-07-27 13:06:38 +02:00
Klaas Freitag
edf8147561 Small cleanups. 2013-07-26 15:10:03 +02:00
Klaas Freitag
3a9ab3a86f Consolidated progress displaying to a single slot from csync. 2013-07-26 13:44:38 +02:00
Klaas Freitag
8f912ca0c5 Adopt to new progress API in csync, WIP 2013-07-25 16:28:45 +02:00
Olivier Goffart
a827056d28 Fix upload limit 2013-07-25 11:21:02 +02:00
Klaas Freitag
6c90989584 Make progress display more robust. 2013-07-25 11:00:19 +02:00
Daniel Molkentin
08acf5e9aa Network Settings: Reword entries, fix uic warnings 2013-07-25 10:41:44 +02:00
Daniel Molkentin
bca295183b Make use of bandwidth limiting, split general/network settings.
Fixes #14
2013-07-24 19:53:20 +02:00
Markus Goetz
a400a2e0bb OS X: Fix window messup 2013-07-24 17:06:35 +02:00
Daniel Molkentin
8c15839753 Remove all >= Qt 4.7 ifdefs 2013-07-24 15:34:37 +02:00
Klaas Freitag
810024f4c9 Reworked progress display for more performance.
Moved most of the logic to the dialog class to be able to only update
the GUI if there are really changes rather than doing it whenever a
change happens.
2013-07-24 14:40:47 +02:00
Klaas Freitag
de7bcca5fe Fixed signal and slot parameter list for progress. 2013-07-24 14:40:47 +02:00
Klaas Freitag
6552a48639 Make compactFormatDouble a bit smarter. 2013-07-24 14:40:47 +02:00
Daniel Molkentin
aee0f0c882 make addFolderDefintion easier to read 2013-07-24 14:27:57 +02:00
Daniel Molkentin
e353193fbb FolderMan: Remove dead code 2013-07-24 14:23:32 +02:00
Daniel Molkentin
fb547e9100 Fix/compactify comments in folderman.h 2013-07-24 14:16:52 +02:00
Markus Goetz
44289c8781 OS X: Fix compile 2013-07-24 14:08:16 +02:00
Daniel Molkentin
d4a5ab252d Drop Compat with Qt 4.6
We now require Qt 4.7 due to QNAM
2013-07-24 13:59:03 +02:00
Daniel Molkentin
a3b3c28694 CSyncThread: Fix unreachable code 2013-07-23 14:34:06 +02:00
Klaas Freitag
976c41a3b8 Beautified ProgressDispatcher 2013-07-23 13:32:33 +02:00
Daniel Molkentin
da087292fd First version of progress in the context menu 2013-07-23 13:19:17 +02:00
Klaas Freitag
274f59f93b Reworked progress again following mirall bug #137 2013-07-23 12:23:29 +02:00
Klaas Freitag
85d810d2cf Rename signal from folderProgress to itemProgress. 2013-07-23 12:23:20 +02:00
Daniel Molkentin
47f151c594 FolderWizard: Return targetPath properly 2013-07-22 23:14:41 +02:00
Daniel Molkentin
7b5ef2186e Remove accidential change 2013-07-22 23:14:12 +02:00
Daniel Molkentin
8236dafb96 INotify backend: honor ignored files
Actually this needs a careful redesign,
but this is good enough to fix the issue.

Fixes: #763
2013-07-22 21:39:13 +02:00
Daniel Molkentin
56e5627b6b ownCloudFolder -> Folder
Fixes #769
2013-07-22 20:30:38 +02:00
Daniel Molkentin
38db0eddab Make selection of target ListView-based
Fixes #222
2013-07-22 18:07:44 +02:00
Daniel Molkentin
710625e2a3 Spelling bee 2013-07-22 18:06:27 +02:00
Daniel Molkentin
a5e7af6c1f Make FolderMan a singleton
It doesn't "belong" to application (think about lib use cases).
This is better.
2013-07-22 13:59:52 +02:00
Daniel Molkentin
5fe4d2db2b Introduce MirallConfigFile::save/restoreGeometry() 2013-07-22 12:28:43 +02:00
Daniel Molkentin
b2c587e2f8 Settings: Show overall state as account icon
Requires the previous refactoring commit
2013-07-22 12:11:12 +02:00
Daniel Molkentin
40c2d891c1 Refactor sync result
Sync result computation is now owned by FolderMan
2013-07-22 12:10:13 +02:00
Klaas Freitag
d5ad3a8a70 Removed mistakenly checked in file. 2013-07-22 09:47:15 +02:00
Daniel Molkentin
c74382af4f octetsToString: Add TB case to pretty printer 2013-07-20 01:27:41 +02:00
Daniel Molkentin
0be0111724 Use WA_DeleteOnClose for settings
instead of trying brain dead things
2013-07-20 01:27:00 +02:00
Daniel Molkentin
f0d454b511 Ignore list editor fixes 2013-07-20 01:26:11 +02:00
Daniel Molkentin
b79a45403e Implement UI changes discussed with Jan.
Fixes #785
Fixes #782
Fixes #781
2013-07-19 22:14:21 +02:00
Klaas Freitag
1cc60e755b Rather show overall progress in settings dialog. 2013-07-19 17:05:46 +02:00
Daniel Molkentin
7fb7cc8c46 Don't hardcode strings, use constants instead
This hopefully reduces the chances for
regressions during refactoring.
2013-07-19 16:28:12 +02:00
Daniel Molkentin
1400889b23 Small cleanups 2013-07-19 16:28:12 +02:00
Daniel Molkentin
44fa9bd141 remove skip save pwd parameter -- not used any longer 2013-07-19 16:28:12 +02:00
Klaas Freitag
992dffa032 Add an overall progress counter to progressDispatcher 2013-07-19 13:05:30 +02:00
Klaas Freitag
5fa7e48c24 Do not show the frame around the progress. 2013-07-19 11:07:47 +02:00
Klaas Freitag
3b00dfebed Add a textual display of the file size in progress. 2013-07-19 10:04:09 +02:00
Klaas Freitag
b42c7e07e6 More work on progress display of file up and download.
This is at least working for file upload, untested for downloads
and other operations. Needs more testing and more polish.
2013-07-17 22:34:11 +02:00
Markus Goetz
ab7bfabf12 Put cookies into csync
We already have the auth cookies from the quota request,
so put them into csync to avoid a 401 roundtrip
2013-07-17 16:27:18 +02:00
Markus Goetz
ab72644ace Check if quota request had HTTP 207 2013-07-17 15:08:48 +02:00
Daniel Molkentin
218fa040c8 Reduce thread priority 2013-07-16 16:05:37 +02:00
Daniel Molkentin
b8f783f104 Set proxies and ignored files before every sync run 2013-07-16 16:05:04 +02:00
Daniel Molkentin
ae2e3e7fb1 Remove autostart option from Windows installer
now handled by the application
2013-07-15 11:05:14 +02:00
Daniel Molkentin
edd9d9aee3 Fix disabled state _again_
Seems like a bug in Designer
2013-07-12 18:05:59 +02:00
Daniel Molkentin
8c66085621 Folder wizard: Warn if a chosen dir is read-only
Fixes #755
2013-07-12 13:54:20 +02:00
Klaas Freitag
40ab325a37 Cleaned up credentialstore class a bit.
Removed all "user mode" stuff from the class that was used to ask the
user interactively for the password. We do not do that any more.
2013-07-12 12:22:11 +02:00
Klaas Freitag
7ae95b14f4 Added method to check if the password is in the config file. 2013-07-12 12:21:34 +02:00
Klaas Freitag
5da6103fb5 Documented the docexpire option. 2013-07-11 12:32:58 +02:00
Klaas Freitag
6b5b9db20a Handle progress through ProgressDispatcher class, WIP. 2013-07-11 12:32:58 +02:00
Daniel Molkentin
eb39d144e4 Use default cookie jar again 2013-07-10 18:59:01 +02:00
Daniel Molkentin
cfaaf4a2c4 Don't always send Auth headers
Use slotAuthentication again instead.
2013-07-10 18:57:52 +02:00
Daniel Molkentin
279a738aa6 General Settings: Fix spacing in layout 2013-07-10 12:46:43 +02:00
Daniel Molkentin
10b55f11a2 Fix build for Qt <= 4.6 2013-07-10 09:48:10 +02:00
Daniel Molkentin
25065c4151 Remember geometry of LogBrowser 2013-07-10 09:34:41 +02:00
Daniel Molkentin
d2657bc154 Do display floating points with precision of 1
For several GB of quota, we might end up showing
<1% far too long. So show one decimal number,
unless it's zero.
2013-07-10 09:34:41 +02:00
Daniel Molkentin
4fde3f4a65 Quota in Account Settings: properly round value 2013-07-10 09:34:41 +02:00
Daniel Molkentin
e398cfb27c Introduce Utility::compactFormatDouble()
Like QLocale::toString(double, 'f', prec), but drops trailing
zeros after the decimal point.
2013-07-10 09:34:27 +02:00
Daniel Molkentin
3cc670ec29 Send non-standard port along with host
In QNAM, that's actually the default,
and we were overriding it incorrectly
for no obvious reason. When using the
QHTTP fallback, we need to submit a
non-standard port manually.

Fixes #748
2013-07-10 08:43:10 +02:00
Markus Goetz
c8d9e8458a OS X: Find out if we are a startup item 2013-07-09 17:30:50 +02:00
Markus Goetz
892419e880 OS X: Ability to disable startup item 2013-07-09 17:13:41 +02:00
Markus Goetz
13fb49cf39 Make Jenkins happy 2013-07-09 14:23:58 +02:00
Markus Goetz
eabe3f968e Raise settings dialog when creating
Else at least on OS X it is burried somewhere.
2013-07-09 14:18:23 +02:00
Markus Goetz
2ca5eaaab9 utility.cpp: Make compile on OS X 2013-07-09 14:07:48 +02:00
Daniel Molkentin
eed3deac67 Acount Settings: Enable in place password change 2013-07-08 14:49:01 +02:00
Daniel Molkentin
a63863b65c Detect missing system tray
Fixes #497
2013-07-08 14:48:58 +02:00
Daniel Molkentin
748ff13bce Utility::freeDiskSpace()
Does not yet work for UNC locations
2013-07-08 14:48:17 +02:00
Daniel Molkentin
6c7700c2e7 Save size of settings dialog
Fixes #541
2013-07-08 04:01:36 +02:00
Daniel Molkentin
c8ccb014c8 Use plural form for sync notification
Fixes #419
2013-07-08 03:19:49 +02:00
Daniel Molkentin
f1bd14e8de Remove superflous cast 2013-07-08 01:44:49 +02:00
Daniel Molkentin
024d01a192 Cleanly install themed clients next to owncloud on Unix
- Renames libowncloudsync for themes
- Properly names i18n dir
2013-07-08 01:44:49 +02:00
Daniel Molkentin
b2d02ef0bd Improve labeling in case of root sync 2013-07-07 01:24:56 +02:00
Daniel Molkentin
751d7deda6 Utility: Compile on Windows again
Theme moc files belong with libowncloud
2013-07-06 22:42:02 +02:00
Daniel Molkentin
fff795146e Make Utility::*Startup* testable 2013-07-06 22:41:59 +02:00
Daniel Molkentin
c6219581f6 More work on ignore/exclude files:
- Introduce split between sytem and user files
- Add Editor

Current limitation: Picking up the changes requires
a restart
2013-07-05 16:54:11 +02:00
Klaas Freitag
d0c5fb2395 Check connection at startup through ConnectionValidator 2013-07-05 13:14:48 +02:00
Klaas Freitag
6c2c81dc83 Format integer to string. 2013-07-05 11:40:44 +02:00
Daniel Molkentin
bfdb0c0012 Enable autostart when the client has been configured 2013-07-05 01:05:23 +02:00
Daniel Molkentin
d870d6c326 Implement "Show Desktop Notifications" option (default: on)
Should make #314 subscriber happy :-)
2013-07-05 01:01:23 +02:00
Daniel Molkentin
c06410e726 Implement Launch on Startup (Win, Linux).
Mac OS started. Untested.
2013-07-05 00:25:19 +02:00
Daniel Molkentin
ef03ebe086 Remove obsolete include 2013-07-04 20:43:20 +02:00
Daniel Molkentin
a217e8f24c Compile fix 2013-07-04 20:21:40 +02:00
Daniel Molkentin
c164beb040 Commit squashed refactoring branch
- introduce settings dialog
- general settings for general / proxy settings
- standalone proxy settings dialog removed
- standalone status dialog removed
- moved status dialog into settings dialog
- radically cut down links in context menu
- add help link to context menu

This needs more cleanup and testing. Known issues:

- When the wizard is called while the settings dialog
  is open, it will not show old information (see FIXME)
- Some settings are not implemented yet (greyed out)
- The counter in the FileItemDialog is not correct the
  first time around.

Based on the discussion done with Jan and Klaas during the
Nuenberg workshop.
2013-07-04 20:02:44 +02:00
Klaas Freitag
5171e5880d Initialize member var with zero to avoid crash. 2013-07-02 17:01:16 +02:00
Klaas Freitag
2ef62524d6 Use showTrayMessage instead of _tray directly 2013-07-02 17:01:16 +02:00
Klaas Freitag
4bbb29c2b4 Terminate sync process in the wizard rather than in folderman unload. 2013-07-02 17:01:16 +02:00
Klaas Freitag
261776cc78 Remove useless log message. 2013-07-02 17:01:16 +02:00
Daniel Molkentin
3008142b1b lowercase webdav request 2013-07-01 14:21:04 +02:00
Daniel Molkentin
152e729768 thinko 2013-06-28 23:23:42 +02:00
Daniel Molkentin
e7c77df59e Quota: Distinguish 0 and <1 2013-06-28 23:14:09 +02:00
Daniel Molkentin
4ff1a13f32 Implement folder display.
- Displayed as disabled action
- Refactor davRequest along the way
  - take Verb as QByteArray
  - pass along a QIODevice

Not implemented for Qt < 4.8
2013-06-28 23:01:31 +02:00
Daniel Molkentin
b9b18d6120 Remove unused configfile instance 2013-06-28 22:28:18 +02:00
Daniel Molkentin
4945ce3c8c Use awesome Qt template magic 2013-06-28 22:27:53 +02:00
Daniel Molkentin
19aa8c63c0 build again 2013-06-28 22:27:16 +02:00
Daniel Molkentin
efd11b61c6 Merge branch '1.3' 2013-06-28 11:47:09 +02:00
Daniel Molkentin
1facb1f95d 1.3.80 (pre 1.4.0) 2013-06-27 16:58:55 +02:00
Jenkins for ownCloud
3db0788a91 [tx-robot] updated from transifex 2013-06-27 16:57:44 +02:00
Jenkins for ownCloud
e068098046 [tx-robot] updated from transifex 2013-06-27 16:57:44 +02:00
Daniel Molkentin
f2d289326b More whitespace changes 2013-06-27 16:57:44 +02:00
Jenkins for ownCloud
ae57f27eb9 [tx-robot] updated from transifex 2013-06-27 16:57:44 +02:00
Daniel Molkentin
a1767b2f7f String whitespace fixes 2013-06-27 16:57:15 +02:00
Markus Goetz
5e9fcf7537 Raise setup wizard 2013-06-27 16:57:15 +02:00
Markus Goetz
8192cc7eea Setup Dialog: Fix widget size issue (2) 2013-06-27 16:57:15 +02:00
Markus Goetz
2b8e1f2504 Setup Dialog: Fix widget size issue
in advanced settings
2013-06-27 16:57:15 +02:00
Daniel Molkentin
9d01f80744 Fix Dialog behavior
- Fix proxy dialog being callable multiple times
- Use smart pointers in more places
- _owncloudSetupWizard was guarded by a smart pointer,
  this needs to be accounted for in other code pathes.
  Fixes Setup dialog not showing up when left-clicking
  on unconfigured instances on Windows.
2013-06-27 16:54:33 +02:00
Jenkins for ownCloud
1a04c9da67 [tx-robot] updated from transifex 2013-06-27 01:42:28 +02:00
Daniel Molkentin
d35e1baee1 Remove obsolete code 2013-06-26 17:27:44 +02:00
Jenkins for ownCloud
2f16e50c87 [tx-robot] updated from transifex 2013-06-26 15:55:25 +02:00
Jenkins for ownCloud
3a662f7afb [tx-robot] updated from transifex 2013-06-26 01:27:29 +02:00
Daniel Molkentin
903a78623c Minor theme changes 2013-06-25 14:51:39 +02:00
Daniel Molkentin
7cd2f39f82 ChangeLog 2013-06-25 10:37:40 +02:00
Jenkins for ownCloud
949dd5db35 [tx-robot] updated from transifex 2013-06-25 01:45:02 +02:00
Jenkins for ownCloud
49a5c5bb8b [tx-robot] updated from transifex 2013-06-24 23:05:09 +02:00
Jenkins for ownCloud
48aa355eea [tx-robot] updated from transifex 2013-06-24 23:01:20 +02:00
Daniel Molkentin
644b2673e0 More whitespace changes 2013-06-24 23:00:33 +02:00
Jenkins for ownCloud
8eed62e639 [tx-robot] updated from transifex 2013-06-24 22:58:54 +02:00
Daniel Molkentin
04c8449e5f String whitespace fixes 2013-06-24 22:58:00 +02:00
Jenkins for ownCloud
9dd776ff6c [tx-robot] updated from transifex 2013-06-24 22:55:32 +02:00
Jenkins for ownCloud
016868e95a [tx-robot] updated from transifex 2013-06-24 21:43:58 +02:00
Jenkins for ownCloud
5d9c664fba [tx-robot] updated from transifex 2013-06-24 21:25:21 +02:00
Daniel Molkentin
a662c85728 Add "Reset Folder" option to status dialog
to recover from invalid databases. Features
a big fat warning.
2013-06-24 21:17:00 +02:00
Daniel Molkentin
5c4b7d427d Add "Reset Folder" option to status dialog
to recover from invalid databases. Features
a big fat warning.
2013-06-24 21:15:22 +02:00
Markus Goetz
12cc8bfd95 Raise setup wizard 2013-06-24 15:15:46 +02:00
Markus Goetz
11c6f20c90 Setup Dialog: Fix widget size issue (2) 2013-06-24 14:57:48 +02:00
Markus Goetz
c602ec310d Setup Dialog: Fix widget size issue
in advanced settings
2013-06-24 13:24:46 +02:00
Olivier Goffart
60a4180dd6 Delay the csync_init after we called status.php
That way, if there was a redirection, it is handled propertly
2013-06-21 00:34:46 +02:00
Olivier Goffart
8e42721959 Do not store the redirected URL in the config file.
Because it may be a temporary URL.
Especially anoying in captive portal

Fix issue #368

This is a revert of the revert 0bc9b6f44e
With small changes
2013-06-21 00:34:28 +02:00
Olivier Goffart
4553fa1d09 Merge remote-tracking branch '1.3' into master 2013-06-21 00:04:01 +02:00
Daniel Molkentin
b206a3b8e2 Beta4 2013-06-20 21:01:38 +02:00
Daniel Molkentin
3bff5a061b Network: Display actual error message next to code. 2013-06-20 20:02:25 +02:00
Daniel Molkentin
0bc9b6f44e Revert "Do not store the redirected URL in the config file."
This reverts commit 905f70a186.

Patch still has issues, defer until after Beta 4
2013-06-20 19:50:34 +02:00
Olivier Goffart
905f70a186 Do not store the redirected URL in the config file.
Because it may be a temporary URL.
Especially anoying in captive portal

Fix issue #368
2013-06-20 17:50:02 +02:00
Olivier Goffart
a8707b681d Report proper error when csync_init fails
Fix mirall issue #705
2013-06-19 18:17:32 +02:00
Olivier Goffart
5d8f9f5346 Silent clang warning 2013-06-19 18:16:43 +02:00
Daniel Molkentin
e43ff398cd Merge branch '1.3'
Conflicts:
	doc/troubleshooting.rst
2013-06-19 16:09:54 +02:00
Daniel Molkentin
a441b1d562 Bump year 2013-06-19 16:07:07 +02:00
Daniel Molkentin
6e2042cd55 Doc: Expand usage page 2013-06-19 16:04:48 +02:00
Daniel Molkentin
bb8b58dc66 Doc: more fixes on troubleshooting section 2013-06-19 15:48:04 +02:00
Daniel Molkentin
9cd099056b Doc: More structure in troubleshooting.rst 2013-06-19 15:40:20 +02:00
Daniel Molkentin
0adbc032ae Doc: Expand trouble shooting section 2013-06-19 15:40:15 +02:00
Daniel Molkentin
22a679fb8c Doc: Add back --logfile, as it still exists 2013-06-19 15:40:09 +02:00
Daniel Molkentin
35a67fab0a Doc: remove now meaningless scentences 2013-06-19 15:40:06 +02:00
Daniel Molkentin
fdc8117211 doc: Fix wording 2013-06-19 15:40:02 +02:00
Daniel Molkentin
24208e6137 Remove mirall man page 2013-06-19 15:39:56 +02:00
Daniel Molkentin
c0cd255ea3 Doc: More structure in troubleshooting.rst 2013-06-19 15:39:03 +02:00
Daniel Molkentin
a0375fd000 Doc: Expand trouble shooting section 2013-06-19 15:06:47 +02:00
Daniel Molkentin
6d847cd5f9 Doc: Add back --logfile, as it still exists 2013-06-19 15:06:16 +02:00
Daniel Molkentin
6470a3f539 Doc: remove now meaningless scentences 2013-06-19 15:05:33 +02:00
Daniel Molkentin
c6111d09ce doc: Fix wording 2013-06-19 14:29:56 +02:00
Daniel Molkentin
d6012854a9 Remove mirall man page 2013-06-19 14:29:28 +02:00
Daniel Molkentin
46c7026726 Answer correctly if proxy auth is needed
Fixes #704
2013-06-19 12:48:36 +02:00
Daniel Molkentin
01ad3c4d81 Remove more dead code for readability 2013-06-19 11:31:09 +02:00
Daniel Molkentin
4ac98bde73 Remove dead code from StatusDialog 2013-06-18 17:38:20 +02:00
Daniel Molkentin
f42a6d6ef6 Advertise the use of Gists for long logs 2013-06-18 15:21:56 +02:00
Daniel Molkentin
9055c6ade7 Add storage backend field to issue template 2013-06-18 14:57:12 +02:00
Olivier Goffart
1356a5bbaa Fix reading the password from the config
The code was expecting pwdba to be in base64, which it was not if it
came from the "password" field
2013-06-18 14:19:37 +02:00
Olivier Goffart
3c320c2736 Credidentail dialog: it was suposed to be asynchronous 2013-06-18 14:19:37 +02:00
Olivier Goffart
969757199e Fix changing the password when the password manager is not available
Leaving the state in NoKeychainBackend would break any further attempt
to get the password because CredentialStore::canTryAgain would return
false.
2013-06-18 14:19:37 +02:00
Daniel Molkentin
60f1c65a48 Don't lose proxy settings when changing passwords 2013-06-17 14:25:11 +02:00
Daniel Molkentin
b87b0e16e6 Avoid infinite loop if authcheck fails 2013-06-17 13:35:54 +02:00
Daniel Molkentin
8ed0b1be55 Teach ownCloud theme about QVariant 2013-06-13 16:31:38 +02:00
Daniel Molkentin
91b5f1076f Theming cleanups
- remove splash screen pixmap
- remove backend icon (folderIcon())
- Move owncloud ad into owncloud theme
2013-06-13 12:56:20 +02:00
Daniel Molkentin
8ec2457965 Only change subtitle if the config file actually exists 2013-06-13 12:55:07 +02:00
Daniel Molkentin
82d79b1188 Remove folder from the scheduling queue
Not really needed, but cleaner
2013-06-12 12:42:02 +02:00
Olivier Goffart
e33601becd Fix leak 2013-06-12 12:23:12 +02:00
Olivier Goffart
334443adbb Fix crash when removing a folder
The problem is that the module_property of csync are not really tight to
a context, but are global to all the contextes.
Which means csync_owncloud may still have a pointer to the destroyed
context of the destroyed folder.
By always resetting the context pointer, we make sure there is no stale
pointers there
2013-06-12 12:23:12 +02:00
Daniel Molkentin
99579e8a2a 1.3.0beta3 2013-06-12 11:10:08 +02:00
Daniel Molkentin
89438f7ace Make SyncDisabler local to slotAddFolder
This also allows us to update the folder state as
soon as the wizard is being closed.
2013-06-12 09:27:20 +02:00
Daniel Molkentin
d323ec5dd9 FileItemDialog: more clarity in the label
- finished %n sec ago -> last finished %n sec ago
- switch to minutes after 60 seconds
2013-06-11 22:34:37 +02:00
Daniel Molkentin
bb5cf37330 Fix issues found after review
- use safer formatting
- remove unnecessary condition
2013-06-11 22:33:11 +02:00
Daniel Molkentin
4b0bdd648c Do not repeat old strings
Fixes #678, fixes #494
2013-06-11 22:14:32 +02:00
Olivier Goffart
5588fbe695 Fix clicking on the systray when the setup is not finished
We should raise the wizard
2013-06-11 21:32:44 +02:00
Olivier Goffart
12ea381205 Do not re-use the configuration wizard.
Create it on demand.
This allow yo alays keep a cleen state.
Mirall issue #668
2013-06-11 21:15:37 +02:00
Daniel Molkentin
99fbf25fb2 Keep the member variable, avoids double instanciation 2013-06-11 18:41:35 +02:00
Daniel Molkentin
b37645e14d Revert "Put FolderWizard on the stack"
This reverts commit 1ec5a1aaa2.
2013-06-11 18:33:39 +02:00
Daniel Molkentin
1ec5a1aaa2 Put FolderWizard on the stack 2013-06-11 18:19:09 +02:00
Daniel Molkentin
3eb7acde25 Folder wizard: use native separators in path lineedit 2013-06-11 18:18:38 +02:00
Daniel Molkentin
e53e39cfad Remove obsolete members from enum 2013-06-11 18:17:34 +02:00
Daniel Molkentin
1a17f40233 Remove debug 2013-06-11 18:17:22 +02:00
Daniel Molkentin
10094a997a Proxy Dialog: default to port 8080 2013-06-11 17:46:00 +02:00
Daniel Molkentin
2af38b093f Fix status delegate
- remove magic values
- remove backend icon, put status icon in the front
- elide text when > list view width
- use list view font
2013-06-11 14:46:12 +02:00
Daniel Molkentin
b03c168175 Status dialog> Do not adjust pen when using Vista Style
Light blue and white are not contrasting enough
2013-06-10 21:29:45 +02:00
Daniel Molkentin
1c6bc84d2d Wizard: Always initialize all labels 2013-06-10 21:29:45 +02:00
Olivier Goffart
541239c17b Make the message box more explicit when all files have been removed
Also clean the db if the user wish to keep the files
2013-06-10 15:58:02 +02:00
Daniel Molkentin
74b4ade15a Add missing return statement 2013-06-10 15:37:52 +02:00
Daniel Molkentin
205502fd3b Fix incorrect license attribution
Fixes #672
2013-06-10 07:42:35 +02:00
Daniel Molkentin
54e4217216 Add Missing LGPL_EXCEPTION.txt
Fixes #671
2013-06-10 07:38:35 +02:00
Olivier Goffart
d2579a7754 Warn if we detect that all fles are about to be removed. 2013-06-08 15:41:53 +02:00
Daniel Molkentin
76580840dd Fix misleading confirmation message
Fixes #459
2013-06-07 22:01:26 +02:00
Olivier Goffart
779e59156c Added --logexpire to remove the log after some hours 2013-06-07 18:58:16 +02:00
Daniel Molkentin
b0f0d0b1cd qDebug() ises local8bit, not utf-8.
Fixes #651
2013-06-07 17:28:04 +02:00
Daniel Molkentin
858dcb53bd Status dialog delegate: Use font from option 2013-06-06 22:12:18 +02:00
Daniel Molkentin
9d7db88fcb status dialog: Use contrast color for highlights
Fixes #440.
2013-06-06 22:11:36 +02:00
Daniel Molkentin
2099b7c6a0 ensureJournalGone: fix logic 2013-06-06 21:43:05 +02:00
Daniel Molkentin
4442564ad2 Clean up slotAddFolder
Ensure folder sync scheduling is off in the meanwhile.
2013-06-06 21:27:15 +02:00
Daniel Molkentin
12148b5c9b remove journal when adding a new sync on an existing folder 2013-06-06 17:59:50 +02:00
Daniel Molkentin
d7d77a49fc Show help on Windows
We have no console, so show a message box.
2013-06-06 16:00:51 +02:00
Daniel Molkentin
b70c2f5c20 torture scripts: fix description 2013-06-06 11:05:21 +02:00
Daniel Molkentin
033249423f Add torture scripts + standard layout files 2013-06-05 21:36:55 +02:00
Daniel Molkentin
0c959e8661 Windows: Log change of power state 2013-06-05 16:14:20 +02:00
Daniel Molkentin
79785241ea Docs: --logdir replaces --logfile 2013-06-05 14:57:32 +02:00
Daniel Molkentin
0090862313 wizard: show native separators on folder chooser button 2013-06-04 00:46:34 +02:00
Daniel Molkentin
a4a68c6622 Wizard: Better wording when renaming failes 2013-06-03 23:34:28 +02:00
Klaas Freitag
49b4c341ae Really unload folders before reconfiguring. 2013-06-03 17:27:06 +02:00
Olivier Goffart
7c1f91abdd Add the --logdir commandline option
To log to a different file for every sync.

This also changed a QueuedConnection to AutoConnection, that way we
directly save the log from the main thread in the file without waiting
for the event loop (so if it crashes before, the log has been writen)
2013-06-03 16:25:41 +02:00
Klaas Freitag
1f2ba7e254 Handle rename fails for backup reasons correctly. 2013-06-03 15:47:39 +02:00
Klaas Freitag
8014bcb7c4 Check for emptiness before backuping the entire dir. 2013-06-03 15:47:07 +02:00
Klaas Freitag
b1c8bf5954 Fix backup name generation. 2013-06-03 15:46:41 +02:00
Klaas Freitag
0eb6740bac Added default argument to terminateSyncProcess 2013-06-03 15:46:11 +02:00
Klaas Freitag
96531b548a Minor Cleanups. 2013-06-03 15:45:28 +02:00
Klaas Freitag
f3371360ed Check the CredentialStore state before fetching creds again. 2013-06-03 15:44:58 +02:00
Olivier Goffart
5bb4c3be43 TMP threaded 2013-06-03 10:43:21 +02:00
Daniel Molkentin
c1b92f9fed beta2 2013-05-31 16:25:57 +02:00
Daniel Molkentin
b028ca0738 Merge pull request #650 from manolopm/master
Fixes for windows client when setup server url customization
2013-05-31 07:25:09 -07:00
Daniel Molkentin
a9aab30d55 Display proxy errors 2013-05-31 16:16:56 +02:00
Daniel Molkentin
efbad3a3c8 Propagate proxy changes to csync at run time 2013-05-31 16:16:41 +02:00
Manuel Padron Martinez
b6ed959f98 Removes server url label if a custom url is defined
Signed-off-by: Manuel Padron Martinez <manolopm@gmail.com>
2013-05-31 04:46:26 +01:00
Manuel Padron Martinez
477953f965 Put wizard url customization before connect signals
Signed-off-by: Manuel Padron Martinez <manolopm@gmail.com>
2013-05-31 04:45:48 +01:00
Daniel Molkentin
aaf59cece5 Wizard: Normalize directory separators 2013-05-29 17:24:59 +02:00
Daniel Molkentin
e88b7e8ec2 Centralize User Agent string and use in UpdateDetector 2013-05-29 16:13:38 +02:00
Daniel Molkentin
078b09b5f4 Remove obsolete include 2013-05-29 16:12:42 +02:00
Daniel Molkentin
0d06fe764a Status dialog: Use correct font metrics
This avoids cutting charcters such as 'y'.
2013-05-29 14:46:02 +02:00
Daniel Molkentin
94f8c39a9e Proxy settings: Also keep proxy user/pwd
make sure not to use it when the user
has asked us not to.

Simplify setupProxy()
2013-05-29 12:56:23 +02:00
Daniel Molkentin
7d1bd9da86 Properly deal with SOCKS proxies
Fixes #10
2013-05-29 02:14:40 +02:00
Daniel Molkentin
ed8cdf6910 Remember proxy settings even after switching type
Fixes #649
2013-05-29 01:41:04 +02:00
Daniel Molkentin
7ee83847c8 Do not try to reset the wizard when visible 2013-05-29 01:30:00 +02:00
Daniel Molkentin
52eca1362f Delete QWizard on destruction 2013-05-29 01:29:56 +02:00
Daniel Molkentin
eec1af09c4 Wizard: Fix rich text label layouting 2013-05-29 01:17:12 +02:00
Daniel Molkentin
c651c8cbf9 Wizard: Improve wording. 2013-05-29 01:16:52 +02:00
Daniel Molkentin
da6a398624 Wizard: Warn on re-setup with multiple folders 2013-05-28 20:25:31 +02:00
Daniel Molkentin
1418512a9f More cheating on proxies: Add OS to User-Agent 2013-05-28 19:35:30 +02:00
Daniel Molkentin
dd2859880b Set User-Agent to contain Mozilla/5.0 string
A blatant lie for a blatant abuse of Firewall filters.
2013-05-28 15:44:41 +02:00
Daniel Molkentin
f38d8ba2e4 Improve wizard in edit mode 2013-05-28 14:51:49 +02:00
Daniel Molkentin
fdd52a2520 Kill non-boxed mode for now 2013-05-28 14:51:48 +02:00
Daniel Molkentin
e2c0792043 take local folder path from property
This gets set by slotSelectFolder() and from the wizards caller.
2013-05-28 14:51:41 +02:00
Daniel Molkentin
e8889530b0 Fix owncloud theme icon 2013-05-28 14:42:41 +02:00
Klaas Freitag
23f67d950a Handle password change correct, add "sync from scratch".
The setup wizard now destinguishes if there was already a configuration
or not. If yes, it's going to password-change mode. Also added a checkbox
that allows to start a sync from a cleared local directory.
2013-05-26 14:04:11 +02:00
Klaas Freitag
0bd1f507ab Added a checkbox "start sync from scratch". 2013-05-26 13:57:28 +02:00
Klaas Freitag
2bcfc143f6 Let the folderman create a new sync directory.
If a sync directory exists its moved to a backup path and created new.
That allows to start a sync "from scratch".
2013-05-26 13:56:51 +02:00
Klaas Freitag
9dc21bf8a3 Let the keychain return new creds during async save.
The credentials are asynchronously saved. The credentialstore now returns
the creds even if the saving has not yet finished but is running, for that
the new state AsyncWriting was added. That makes the start of the sync
after the password was changed more reliable.
2013-05-26 13:55:23 +02:00
Klaas Freitag
70f627ba06 Fix the folder setup wizard. 2013-05-24 09:54:48 +02:00
Daniel Molkentin
0683c26d41 Make setting custom folders work again
Also, ensure that opening the local directory from the wizard
will work on Windows.
2013-05-23 01:51:05 +02:00
Daniel Molkentin
dbc085d4d4 Fix systray class when built without FDO support 2013-05-22 17:39:49 +02:00
Daniel Molkentin
804eaa700e Remove bogus debug output 2013-05-22 15:58:54 +02:00
Daniel Molkentin
646922665d 1.3.0beta1 2013-05-22 15:34:19 +02:00
Daniel Molkentin
62ad2f19e3 Setup Wizard: Make server/folder buttons work 2013-05-21 14:25:31 +02:00
Daniel Molkentin
14f55420f9 Remove obsolete connect statement 2013-05-21 14:20:56 +02:00
Daniel Molkentin
d4ea0ba6ba Merge branch 'master' of git://github.com/gnumdk/mirall
Conflicts:
	CMakeLists.txt

As per PR 457
2013-05-20 16:54:49 +02:00
Daniel Molkentin
c06f7b7ecb Update README.md
Fixes #182.
2013-05-20 11:00:29 +02:00
Daniel Molkentin
3a50eece9e More theming refactoring 2013-05-17 20:56:17 +02:00
Daniel Molkentin
44f0fb0242 Fix broken include 2013-05-17 20:12:31 +02:00
Daniel Molkentin
c210e2b72f Remove obsolete miralltheme 2013-05-17 20:11:16 +02:00
Daniel Molkentin
7b5079f043 Amendment to previous commit 2013-05-17 18:27:07 +02:00
Daniel Molkentin
be4027fb36 Remove deleted file from resources 2013-05-17 18:13:14 +02:00
Daniel Molkentin
0f03b47a46 Make new connection wizard themable 2013-05-17 18:05:22 +02:00
Daniel Molkentin
c923e0803e Add SyncResult::SyncPrepare case to FileItemDialog 2013-05-17 12:33:02 +02:00
Daniel Molkentin
bd74dbbfc5 doc: markup fixes 2013-05-17 12:02:40 +02:00
Daniel Molkentin
a0599e75b7 Update build instructions for Mac OS 2013-05-17 11:42:19 +02:00
Klaas Freitag
f334b6349b Add a call to quit to make the thread ending the loop 2013-05-16 17:35:40 +02:00
Olivier Goffart
07ce6cfa79 don't use member variable of the propagator 2013-05-16 14:50:36 +02:00
Olivier Goffart
9ce47c9675 make the propagator asynchronous 2013-05-16 13:54:22 +02:00
Klaas Freitag
2ff9fcfa1d Fix crash if _thread is not initialized before. 2013-05-16 13:26:05 +02:00
Olivier Goffart
40255d643c propagator-ng: adapt to the merge of rename_folders branch 2013-05-15 15:22:20 +02:00
Daniel Molkentin
aa23e4698b Correct spelling of some mac os meta files
Fixes #619
2013-05-14 23:15:22 +02:00
Olivier Goffart
b31200a6f2 propagator-ng: fix setting the mtime 2013-05-10 13:20:21 +02:00
Olivier Goffart
98cbb599b8 Fix handling of conflicting directories
We can safely ignore them in the propagator
2013-05-10 12:35:10 +02:00
Daniel Molkentin
302fdeb1f9 Use UTF-8 for basic auth
Slightly off-specs, and fails for non UTF-8 setups,
but the ownCloud server itself expects UTF-8 encoding.
2013-05-09 22:01:39 +02:00
Daniel Molkentin
eea8542fc0 Quit app/abort sync gracefully. 2013-05-09 21:55:28 +02:00
Olivier Goffart
ecd314cef5 Give the tmp file a proper hidden and excluded name 2013-05-08 14:31:52 +02:00
Olivier Goffart
0b1ecd0ac6 propagator-ng: Abort on fatal error 2013-05-08 13:30:30 +02:00
Olivier Goffart
852e30ef07 owncloudcmd: don't abort on unknown argument 2013-05-08 12:11:23 +02:00
Olivier Goffart
2193da0ab5 Fix a few FIXME 2013-05-07 17:47:29 +02:00
Olivier Goffart
7cd12e7dc5 remove some FIXME 2013-05-07 17:16:11 +02:00
Olivier Goffart
685bf395be propagator-ng: resume uploads
Currently i think it corrupt the files
2013-05-06 18:41:56 +02:00
Olivier Goffart
0636ae6f28 propagator-ng: be able to resume download 2013-05-06 16:59:11 +02:00
Olivier Goffart
7f8eba3700 propagator-ng: set the modtime on downloaded files 2013-05-06 12:09:21 +02:00
Olivier Goffart
02957aba45 propagator-ng: Emit the fileReceived signal 2013-05-05 12:46:40 +02:00
Klaas Freitag
946258ca59 Created a test file for ownCloudPropagator. Not much in yet. 2013-05-05 12:36:42 +02:00
Klaas Freitag
2e53e2e4e0 Really return true in case of error. 2013-05-05 12:34:38 +02:00
Klaas Freitag
721a8f79ab Improve error handling, add error string to each individual file item. 2013-05-05 11:47:19 +02:00
Olivier Goffart
ecaf66db5d style: use _ in front of member variable 2013-05-05 11:32:12 +02:00
Olivier Goffart
0c775aba6d propagator-ng: get the etag also in the GET request 2013-05-05 11:32:12 +02:00
Olivier Goffart
71b238031f Fix compilation after previous rebase 2013-05-05 11:32:12 +02:00
Olivier Goffart
662bd4e5fe propagator-ng: handle conflict
Always download the file from the server.
And if they are equals, ignore the conflict
2013-05-05 11:17:42 +02:00
Olivier Goffart
5118054fa3 Enable the backup of conflicts files in owncloudcmd 2013-05-05 11:17:07 +02:00
Klaas Freitag
c956d11183 More error handling of propagator, some cleanups. 2013-05-04 17:14:47 +02:00
Klaas Freitag
7df23a1b19 Proper error reporting of propagator - WIP 2013-05-04 17:14:47 +02:00
Klaas Freitag
72580d7213 move command line client into bin dir 2013-05-04 17:14:47 +02:00
Daniel Molkentin
a36d79e993 Fix make install 2013-05-04 17:01:14 +02:00
Daniel Molkentin
be5c1b2072 Fix build 2013-05-04 16:38:39 +02:00
Olivier Goffart
264cc73806 Implement renaming on windows
(Not actually tested)
2013-05-04 16:18:13 +02:00
Daniel Molkentin
f0bd1ea48e Add connectionvalidator class 2013-05-04 16:01:45 +02:00
Daniel Molkentin
90d0460a42 Remove dummy artwork, dead switches 2013-05-04 15:55:04 +02:00
Olivier Goffart
c041076c95 Handle renames 2013-05-04 15:32:11 +02:00
Daniel Molkentin
c15ce2b20b Remove last traces of localRun 2013-05-04 15:16:53 +02:00
Daniel Molkentin
b51f210bfa Drop (broken) mirall binary
This remove all non-ownCloud backends, as well
as all obsolete wizard pages. CSync is now
a mandatory dependency.
2013-05-04 14:03:51 +02:00
Olivier Goffart
f6ff189f35 Add owncloudcmd
A simple commandline client like ocsync.
The goal is to be used bu the t1.pl test
2013-05-04 13:52:35 +02:00
Olivier Goffart
e1e8842548 New owncloud propagator that skip the vio abstraction layer
The vio abstraction layer within csync is inneficient for the owncloud
use case because not all calls maps well to the POSIX interface. We can
be much more efficient by doing exactly what we need.

Also, this will allow us to scedule better the calls and possibly to use
threads.
2013-05-04 11:02:30 +02:00
Daniel Molkentin
105c76c055 Fix sizing problems in the new wizard dialog. 2013-04-30 21:51:48 +02:00
Daniel Molkentin
6b15b7a58f Update detector: make it possible to skip updates.
Fixes issue #588.
2013-04-30 17:46:07 +02:00
Daniel Molkentin
fee0aae975 new wizard: Better separate folder names in strings. 2013-04-30 17:46:07 +02:00
Klaas Freitag
b33b638d2d A bit more verbose troubleshooting documentation. 2013-04-30 13:53:33 +02:00
Klaas Freitag
1e677a5f0f Fixed default target dir to / and fixed logging text. 2013-04-30 13:53:13 +02:00
Klaas Freitag
3f3f6c0f39 Move setPlaceholderText to correct class. 2013-04-29 14:09:05 +02:00
Klaas Freitag
5dd53b48ef Add missing lineedit method for ancient Qt versions 2013-04-29 11:08:37 +02:00
Klaas Freitag
a215e11b20 Merge development branch with new setup dialog. 2013-04-29 10:20:01 +02:00
Daniel Molkentin
7d71f9dd2d Merge pull request #582 from ghmer/master
Fix messed formatting in build documentation
2013-04-29 00:34:53 -07:00
Jenkins for ownCloud
183f1574ca [tx-robot] updated from transifex 2013-04-29 01:26:56 +02:00
Jenkins for ownCloud
504b651bb9 [tx-robot] updated from transifex 2013-04-28 01:27:25 +02:00
Klaas Freitag
c848ff4bdb New setup dialog, simplified version. 2013-04-27 22:24:32 +02:00
Klaas Freitag
5aa8f5bc01 Added own CookieJar to not return a Session Cookie, rem Auth Callback
The auth callback is not needed as we send an Basic Auth header.
2013-04-27 22:22:20 +02:00
Klaas Freitag
6c5d5a543c Simplified config file write method, removed don't store pwd. 2013-04-27 22:21:28 +02:00
Klaas Freitag
a8bc849b5d Add blue ownCloud logo. 2013-04-27 22:20:33 +02:00
Klaas Freitag
5f535b9661 owncloud logo pixmap. 2013-04-27 21:07:39 +02:00
Klaas Freitag
eaf865539c Added owncloud logo for new setup dialog. 2013-04-27 21:07:00 +02:00
Mario Enrico Ragucci
75448c41d4 Verified format cleanup (really...)
Signed-off-by: Mario Enrico Ragucci <github@ragucci.de>
2013-04-26 17:02:55 +02:00
Mario Enrico Ragucci
afc96e2021 Format cleanup
Signed-off-by: Mario Enrico Ragucci <github@ragucci.de>
2013-04-26 15:47:49 +02:00
Daniel Molkentin
d7bce80c7b Merge pull request #580 from ghmer/master
Documentation Update cross-compiling section to include all libs needed to build the Windows Package
2013-04-26 04:41:20 -07:00
Mario Enrico Ragucci
7e07d20d31 Remove LOG4C information as this is not needed anymore
Signed-off-by: Mario Enrico Ragucci <github@ragucci.de>
2013-04-26 13:32:35 +02:00
Daniel Molkentin
238111be09 Find csync_version.h, local config.h 2013-04-26 10:48:02 +02:00
Klaas Freitag
6f0820a3ed Add QProgressIndicator to source list 2013-04-26 10:47:17 +02:00
Jenkins for ownCloud
1d0d1c249b [tx-robot] updated from transifex 2013-04-26 01:26:32 +02:00
Mario Enrico Ragucci
1b5ed68375 Formatting cleanup 2013-04-26 01:00:50 +02:00
Mario Enrico Ragucci
ce996b3fc8 - Update Cross-Compiling section: Listing of all needed libraries to successfully build the Windows installer package
- Adding a note about the missing cross-compiled LOG4C package
- Minor changes to the documentation to be more specific about building the Windows package
2013-04-26 00:45:19 +02:00
Daniel Molkentin
2789522948 Folder/ownCloudFolder: Clean up secondPath stuff 2013-04-25 16:06:31 +02:00
Daniel Molkentin
55a56cc275 Find csync_version.h, local config.h 2013-04-25 13:19:38 +02:00
Jenkins for ownCloud
20101527b2 [tx-robot] updated from transifex 2013-04-25 01:27:34 +02:00
Daniel Molkentin
311bd39100 Add simplified FancyLineEdit from Qt Creator to 3rdparty 2013-04-24 13:36:25 +02:00
Klaas Freitag
fab77a15f0 Fix build after merge 2013-04-24 13:33:26 +02:00
Klaas Freitag
09e7f5c618 Add qprogressindicator widget 2013-04-24 11:45:53 +02:00
Klaas Freitag
c5a674b1df More work on new Connection dialog. First working version. 2013-04-24 11:40:29 +02:00
Jenkins for ownCloud
f83453cfc7 [tx-robot] updated from transifex 2013-04-24 01:27:36 +02:00
Daniel Molkentin
1ca8ebebd9 Do not add shortcuts to non-existent files 2013-04-23 17:19:27 +02:00
Klaas Freitag
7cc73ed46c Merge feature branch that introduces non terminating csync. 2013-04-23 16:52:02 +02:00
Daniel Molkentin
01b4694b47 Bump version to distinguish nightlies 2013-04-23 16:49:15 +02:00
dragotin
bcc6d59c6b Update CONTRIBUTING.md 2013-04-23 12:35:44 +03:00
Klaas Freitag
8928c87fc3 Removed silly configDir hack from thread. 2013-04-22 15:06:28 +02:00
Klaas Freitag
9f0348979b Simplify csyncthread with keeping csync ctx intact 2013-04-20 13:15:27 +03:00
Cedric Bellegarde
8165b83a27 Check for service availability 2013-03-22 11:58:55 +01:00
Cedric Bellegarde
fa62c270e6 Merge git://github.com/owncloud/mirall 2013-03-22 11:40:58 +01:00
Cedric Bellegarde
c03199e78a Re add space 2013-03-22 11:35:25 +01:00
Cedric Bellegarde
f346503534 Better fdo detection 2013-03-22 11:34:21 +01:00
Cedric Bellegarde
1315ca2a57 Move files to correct location 2013-03-20 10:19:55 +01:00
Cedric Bellegarde
2f0474a467 Add support for freedesktop notifications 2013-03-20 10:03:49 +01:00
351 changed files with 79777 additions and 96887 deletions

7
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.gitmodules
*build*/
*flymake*
CMakeLists.txt.user*
@@ -5,3 +6,9 @@ CMakeLists.txt.user*
*~
*.autosave
doc/_build/*
*~
*.kate-swp
*.kdev4
win/
admin/win/nsi/l10n/pofiles/*.po

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "doc/ocdoc"]
path = doc/ocdoc
url = https://github.com/owncloud/documentation

View File

@@ -4,17 +4,36 @@ project(mirall)
set(PACKAGE "mirall")
set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
if ( DEFINED OEM_THEME_DIR AND EXISTS ${OEM_THEME_DIR}/OEM.cmake )
include(Warnings)
set(OEM_THEME_DIR "" CACHE STRING "Define directory containing a custom theme")
if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake )
include ( ${OEM_THEME_DIR}/OEM.cmake )
else ()
include ( ${CMAKE_SOURCE_DIR}/OWNCLOUD.cmake )
endif()
if (NOT DEFINED APPLICATION_SHORTNAME)
set ( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
endif()
include(${CMAKE_SOURCE_DIR}/VERSION.cmake)
configure_file( ${CMAKE_SOURCE_DIR}/src/mirall/version.h.in "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/version.h" )
include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/")
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_BINARY_DIR}/src/mirall/")
#####
## handle DBUS for Fdo notifications
if( UNIX AND NOT APPLE )
add_definitions( -DUSE_FDO_NOTIFICATIONS)
set(WITH_DBUS ON)
endif()
####
include(GNUInstallDirs)
include(DefineInstallationPaths)
include(QtVersionAbstraction)
setup_qt()
include(GetGitRevisionDescription)
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
@@ -31,10 +50,8 @@ if (${GIT_SHA1} STREQUAL "GITDIR-NOTFOUND")
endif()
endif()
## stupid, we should upstream this
if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT CMAKE_INSTALL_SYSCONFDIR)
set(CMAKE_INSTALL_SYSCONFDIR "/etc")
endif()
set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
set(DATADIR ${DATA_INSTALL_DIR})
#####
## handle BUILD_OWNCLOUD_OSX_BUNDLE
@@ -54,8 +71,13 @@ endif()
#####
#### find libs
find_package(Qt4 4.6.0 COMPONENTS QtCore QtGui QtXml QtNetwork QtTest REQUIRED )
find_package(Csync)
#find_package(Qt4 4.7.0 COMPONENTS QtCore QtGui QtXml QtNetwork QtTest QtWebkit REQUIRED )
#if( UNIX AND NOT APPLE ) # Fdo notifications
# find_package(Qt4 4.7.0 COMPONENTS QtDBus REQUIRED )
#endif()
find_package(Neon REQUIRED)
find_package(Csync REQUIRED)
find_package(QtKeychain REQUIRED)
if(UNIX)
find_package(INotify REQUIRED)
else()
@@ -63,41 +85,14 @@ find_package(INotify)
endif()
find_package(Sphinx)
find_package(PdfLatex)
find_package(QtKeychain)
set(WITH_CSYNC CSYNC_FOUND)
set(WITH_QTKEYCHAIN ${QTKEYCHAIN_FOUND})
set(USE_INOTIFY ${INOTIFY_FOUND})
configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
set(CPACK_SOURCE_IGNORE_FILES
# hidden files
"/\\\\..+$"
# temporary files
"\\\\.swp$"
# backup files
"~$"
# others
"\\\\.#"
"/#"
"/build/"
"/_build/"
# used before
"\\\\.o$"
"\\\\.lo$"
"\\\\.la$"
"Makefile\\\\.in$"
)
include(OwnCloudCPack.cmake)
#
# This cmake builds two targets (aka apps), mirall and owncloud. For the owncloud
# target, OWNCLOUD_CLIENT needs to be a compile flag. It is set in src/CMakeLists.txt
# but if that fails because cmake is too old, uncomment this here if you want to build
# owncloud.
# add_definitions(-DOWNCLOUD_CLIENT)
add_definitions(-DUNICODE)
add_definitions(-D_UNICODE)
@@ -117,5 +112,5 @@ endif(UNIT_TESTING)
if(BUILD_OWNCLOUD_OSX_BUNDLE)
configure_file(sync-exclude.lst ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/sync-exclude.lst COPYONLY)
else()
install( FILES sync-exclude.lst DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} )
install( FILES sync-exclude.lst DESTINATION ${SYSCONFDIR}/${APPLICATION_SHORTNAME} )
endif()

View File

@@ -4,8 +4,8 @@ If you have questions about how to use the ownCloud Desktop Client, please
direct these to the [mailing list][mailinglist] or our [forum][forum].
We are also available on [IRC][irc].
### Guidelines
* Report the issue using our [template][template], it includes all the
### Bug Reporting Guidelines
* Important: Report the issue using our [template][template], it includes all the
informations we need to track down the issue.
* This repository is *only* for issues within the ownCloud desktop client.
Issues in other compontents should be reported in their own repositores:

View File

@@ -21,11 +21,9 @@ set( CSYNC_BINARY_DIR @CSYNC_BINARY_DIR@ )
set( MINGW_ROOT @CMAKE_FIND_ROOT_PATH@ )
if(CSYNC_BINARY_DIR)
set( CSYNC_LIBRARY_DIR "${CSYNC_BINARY_DIR}/src" )
set( CSYNC_PLUGIN_DIR "${CSYNC_BINARY_DIR}/modules" )
set( CSYNC_CONFIG_DIR "${CSYNC_BINARY_DIR}/config" )
else()
set( CSYNC_LIBRARY_DIR "${MINGW_ROOT}/bin" )
set( CSYNC_PLUGIN_DIR "${MINGW_ROOT}/plugins-0" ) #FIXME: whatever it is
set( CSYNC_CONFIG_DIR "${MINGW_ROOT}/etc/ocsync" )
endif()
set( BUILD_OWNCLOUD_OSX_BUNDLE @BUILD_OWNCLOUD_OSX_BUNDLE@)

127
ChangeLog
View File

@@ -1,6 +1,133 @@
ChangeLog
=========
version 1.5.0 (release 2013-12-12 ), csync 0.91.4 required
* New owncloud propagator that skips the vio abstraction layer
* Add owncloudcmd to replace the ocsync command line tool
* Localize Windows installer
* Allow to sign in and out
* Ask for password if missing
* Introduce activity view
* Introduce black list for files which could not be synced
* Enabling accessbility by shipping accessibility enables on OS X (#736)
* Toggle Settings window when clicking on systray icon on Win and KDE (#896)
* FolderWizard: Sanitize error detection (#1201)
* Set proper enable state of blacklist button after the dialog was opened
* Set proper tooltips in blacklist
* Translatable error messages for file errors
* Add man page for owncloudcmd (#1234)
* Don't close setup wizard when the initial sync run is started
* Close the sync journal if a folder gets removed (#1252)
* Activity: Avoid horizontal scrollbar (#1213)
* Fix crash (#1229)
* Resize wizard appropriately (#1130)
* Fix account identity test (#1231)
* Maintain the file type correctly
* Display rename-target in sync protocol action column
* Let recursive removal also remove the top dir
* If item is a directory, remove its contents from the database as well (#1257)
* Install headers for owncloudsync library
* Fix opening the explorer with a selected file in Windows (#1249)
* Add build number into versioning scheme
* Windows: Fix rename of temporary files
* Windows: Fix move file operation
version 1.4.2 (release 2013-10-18 ), csync 0.90.4 required
* Do not show the warning icon in the tray (#944)
* Fix manual proxy support when switching (#1016)
* Add folder column to detailed sync protocol (#1037)
* Fix possible endless loop in inotify (#1041)
* Do not elide the progress text (#1049)
* Fix high CPU load (#1073)
* Reconnect if network is unavailable after startup (#1080)
* Ensure paused folder stays paused when syncing with more than one folder (#1083)
* Don't show desktop notification when the user doesn't want to (#1093)
* System tray: Avoid quick flickering up of the ok-icon for the sync prepare state
* Progress: Do not show progress if nothing is transmitted
* Progress: Show number of deletes.
version 1.4.1 (release 2013-09-24 ), csync 0.90.1 required
* Translation and documentation fixes.
* Fixed error display in settings/status dialog, displays multi
line error messages now correctly.
* Wait up to 30 secs before complaining about missing systray
Fixes bug #949
* Fixed utf8 issues with basic auth authentication, fixes bug #941
* Fixed remote folder selector, avoid recursive syncing, fixes bug #962
* Handle and display network problems at startup correctly.
* Enable and disable the folder watcher during syncs correctly.
* Fix setting of thread priority.
* Fixed file size display.
* Fixed various folder wizard issues, bug #992
* Made "Sync started" message optional, fixes bug #934
* Fixed shutdown, avoid crashed config on win32, fixes bug #945
* Pop up config wizard if no server url is configured, fixes bug #1018
* Settings: calculate sidebar width dynamically, fixes bug #1020
* Fixed a crash if sync folders were removed, fixes bug #713
* Do proper resync after network disconnect, fixes bug #1007
* Various minor code fixes
version 1.4.0 (release 2013-09-04 ), csync 0.90.0 required
* New Scheduler: Only sync when there are actual changes in the server
* Add a Settings Dialog, move Proxy Settings there
* Transform folder Status Dialog into Account Settings, provide feedback via context menu
* Add Bandwidth Control
* Add a visual storage/quota indicator (context menu and account settings)
* Add progress indication (context menu and account settings)
* Introduce a sync history, persisting results across syncs
* Move ability to switch to mono icons from a switch to a Settings option
* Add "Launch on System Startup" GUI option
* Add "Show Desktop Nofications"GUI option (enabled by default)
top optionally disable sync notifications
* Add Help item, pointing to online reference
* Implement graphical selection of remote folders in FolderWizard
* Allow custom ignore patterns
* Add an editor for ingore patterns
* ALlow to flag certain ignore patterns as discardable
* Ensure to ship with all valid translations
* Progress Dialog now preserves the last syncned items across sync runs
* Split Setup Wizard into multiple pages again
* Implement "--logfile -" to log to stdout
* Add preliminary support for Shibboleth authentication
* Linux: Provide more icon sizes
* Linux: Do not trigger notifier on ignored files
* Windows: Reduce priority of CSync thread
* Documentation: Prem. updates to reflect UI changes
* Significant code refactorings
* Require Qt 4.7
* Known issue: Under certain conditions, a file will only get uploaded after up to five minutes
version 1.3.0 (release 2013-06-25 ), csync 0.80.0 required
* Default proxy port to 8080
* Don't lose proxy settings when changing passwords
* Support SOCKS5 proxy (useful in combination with ssh *D)
* Propagate proxy changes to csync at runtime
* Improve proxy wizard
* Display proxy errors
* Solved problems with lock files
* Warn if for some reason all files are scheduled for removal on either side
* Avoid infinite loop if authentication fails in certain cases
* Fix reading the password from the config in certain cases
* Do not crash when configured sync target disappears
* Make --help work on windows
* Make sync feedback less ambiguous.
* Fix icon tray tooltip sometimes showing repeated content
* More use of native directory separators on Windows
* Remove journal when reusing a directory that used to have a journal before
* Visual clean up of status dialog items
* Wizard: When changing the URL or user name, allow the user to push his data
to the new location or wipe the folder and start from scratch
* Wizard: Make setting a custom folder as a sync target work again
* Fix application icon
* User-Agent now contains "Mozilla/5.0" and the Platform name (for firewall/proxy compat)
* Server side directory moves will be detected
* New setup wizard, defaulting to root syncing (only for new setups)
* Improved thread stop/termination
version 1.2.5 (release 2013-04-23 ), csync 0.70.7 required
* [Fixes] NSIS installer fixes
* [Fixes] Fix crash race by making certificateChain() thread safe

View File

@@ -1,9 +1,9 @@
set( APPLICATION_SHORTNAME "owncloud" )
set( APPLICATION_NAME "ownCloud" )
set( APPLICATION_EXECUTABLE "owncloud" )
set( APPLICATION_DOMAIN "owncloud.com" )
set( APPLICATION_VENDOR "ownCloud, Inc" )
set( THEME_CLASS "ownCloudTheme" )
#set( APPLICATION_SHORTNAME ${APPLICATION_NAME} )
set( APPLICATION_EXECUTABLE "owncloud" )
set( APPLICATION_DOMAIN "owncloud.com" )
set( APPLICATION_VENDOR "ownCloud, Inc" )
set( THEME_CLASS "ownCloudTheme" )
set( APPLICATION_REV_DOMAIN "com.owncloud.desktopclient" )
set( WIN_SETUP_BITMAP_PATH "${CMAKE_SOURCE_DIR}/admin/win/nsi" )
# set( THEME_INCLUDE "${OEM_THEME_DIR}/mytheme.h" )

View File

@@ -9,10 +9,11 @@ else ()
endif()
include( VERSION.cmake )
set( CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR} )
set( CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR} )
set( CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH} )
set( CPACK_PACKAGE_VERSION ${VERSION} )
set( CPACK_PACKAGE_VERSION_MAJOR ${MIRALL_VERSION_MAJOR} )
set( CPACK_PACKAGE_VERSION_MINOR ${MIRALL_VERSION_MINOR} )
set( CPACK_PACKAGE_VERSION_PATCH ${MIRALL_VERSION_PATCH} )
set( CPACK_PACKAGE_VERSION_BUILD ${MIRALL_VERSION_BUILD} )
set( CPACK_PACKAGE_VERSION ${MIRALL_VERSION_FULL}${MIRALL_VERSION_SUFFIX} )
if(APPLE)
set( CPACK_GENERATOR "DragNDrop" )

View File

@@ -2,50 +2,12 @@
## Introduction
Mirall synchronizes your folders with another computer.
The ultimate goals of Mirall are:
* Network location aware: should not try to sync against your NAS if you are
not in the home network
* It is a zero-interaction tool. So forget about resolving conflicts.
* It should work silently and realiably.
Mirall is in early stages of development, and may still eat your
files or hang your computer.
* Network location awareness not implemented yet
* Current version supports local and remote (sftp and smb) folders.
* It is powered by csync (http://www.csync.org), however
the user does not know and other tools will be incorporated to provide other
functionality.
## Current issues
* No sane way to backup conflicting versions yet, this should be solved
in a near csync release (--conflictcopy, available in Jann's branch).
Right now the newest copy wins.
* You can't remove folder configurations
Workaround: delete ~/.local/share/data/Mirall/folders/$alias and restart
* Some tasks block the GUI (initial setup of watchers)
* May be some concurrency issues
## Roadmap
* Improve robustness to minimize user interaction
* Improve feedback and sync results
* Add support for other folder types: tarsnap, duplicity, git (SparkleShare)
## Requirements
* Linux (currently it uses inotify to detect file changes)
* unison installed in the local and remote machine
(you should not care if you got Mirall with your favorite
distribution)
Mirall is a tool to synchronize files from ownCloud Server with your computer.
It uses OCSync as its syncing backend.
## Download
### openSUSE
### Binary packages
* Refer to the download page http://owncloud.org/sync-clients/
@@ -55,23 +17,12 @@ files or hang your computer.
## Building the source code
You need Qt 4.7 and cmake:
mkdir build
cd build
cmake ..
make
To generate a tarball:
mkdir build
cd build
cmake ..
make package_source
Please refer to [Building the Client](http://doc.owncloud.org/desktop/1.2/building.html)
in the ownCloud client manual.
## Authors
* Duncan Mac-Vicar P. <duncan@kde.org>
* Duncan Mac-Vicar P. <duncan@kde.org> (original Mirall author)
* Klaas Freitag <freitag@owncloud.com>
* Daniel Molkentin <danimo@owncloud.com>

View File

@@ -1,6 +1,26 @@
set( VERSION_MAJOR 1 )
set( VERSION_MINOR 2 )
set( VERSION_PATCH 5 )
set( VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX})
set( SOVERSION 0 )
set( MIRALL_VERSION_MAJOR 1 )
set( MIRALL_VERSION_MINOR 5 )
set( MIRALL_VERSION_PATCH 0 )
set( MIRALL_SOVERSION 0 )
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
set( MIRALL_VERSION_SUFFIX "" ) #e.g. beta1, beta2, rc1
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
if( NOT DEFINED MIRALL_VERSION_BUILD )
set( MIRALL_VERSION_BUILD "0" ) # Integer ID. Generated by the build system
endif( NOT DEFINED MIRALL_VERSION_BUILD )
# Composite defines
# Used e.g. for libraries Keep at x.y.z.
set( MIRALL_VERSION "${MIRALL_VERSION_MAJOR}.${MIRALL_VERSION_MINOR}.${MIRALL_VERSION_PATCH}" )
# Version with Build ID. Used in the installer
set( MIRALL_VERSION_FULL ${MIRALL_VERSION} )
set( MIRALL_VERSION_STRING ${MIRALL_VERSION} )
set( MIRALL_VERSION_FULL "${MIRALL_VERSION_FULL}.${MIRALL_VERSION_BUILD}" )
set( MIRALL_VERSION_STRING "${MIRALL_VERSION}${MIRALL_VERSION_SUFFIX}" )
if( MIRALL_VERSION_BUILD )
set( MIRALL_VERSION_STRING "${MIRALL_VERSION_STRING} (build ${MIRALL_VERSION_BUILD})" )
endif( MIRALL_VERSION_BUILD )

View File

@@ -10,8 +10,7 @@ mount="/Volumes/$(basename $src_dmg|cut -d"-" -f1)"
test -e $tmp_dmg && rm -rf $tmp_dmg
hdiutil convert $src_dmg -format UDRW -o $tmp_dmg
open $tmp_dmg
sleep 12s
hdiutil attach $tmp_dmg
pushd $mount
codesign -s "$identity" $mount/*.app
popd

View File

@@ -0,0 +1,48 @@
[main]
host = https://www.transifex.net
[owncloud.mirall-wininstaller]
host = https://www.transifex.net
source_file = pofiles/messages.pot
source_lang = en
type = PO
minimum_perc = 5
# simple one-to-one language mappings
trans.ca = pofiles/ca.po
trans.el = pofiles/el.po
trans.es = pofiles/es.po
trans.es_AR = pofiles/es_AR.po
trans.eu = pofiles/eu.po
trans.fa = pofiles/fa.po
trans.fr = pofiles/fr.po
trans.gl = pofiles/gl.po
trans.it = pofiles/it.po
trans.nl = pofiles/nl.po
trans.pl = pofiles/pl.po
trans.pt_BR = pofiles/pt_BR.po
trans.ru = pofiles/ru.po
trans.sl = pofiles/sl.po
trans.sv = pofiles/sv.po
trans.tr = pofiles/tr.po
trans.uk = pofiles/uk.po
trans.zh_TW = pofiles/zh_TW.po
trans.zh_CN = pofiles/zh_CN.po
# special handling below
# de_DE holds the formal translation which we want as default
trans.de_DE = pofiles/de.po
# choose one of the given translations on transifex as default
trans.pt_PT = pofiles/pt.po
# choose a special language as more generic default
trans.cs_CZ = pofiles/cs.po
trans.et_EE = pofiles/et.po
trans.fi_FI = pofiles/fi.po
trans.ja_JP = pofiles/ja.po
trans.hu_HU = pofiles/hu.po
trans.sk_SK = pofiles/sk.po
trans.th_TH = pofiles/th.po

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} prozesuak hiltzen."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "kill prozesua ez da aurkitu!"
StrCpy $PageReinstall_NEW_Field_2 "Desinstalatu instalatu baino lehen"
StrCpy $PageReinstall_NEW_Field_3 "Ez desinstalatu"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Dagoeneko Instalatuta"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Hautatu nola nahi duzun ${APPLICATION_NAME} instalatzea."
StrCpy $PageReinstall_SAME_Field_2 "Gehitu/Berrinstalatu osagaiak"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalatu ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalatu ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Hasierako Menuko Lasterbidea"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Hasierako Menuan ${APPLICATION_NAME}rako Abiarazle bizkorra sortzen."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Mahaigaineko Lasterbidea"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Mahaigaineko Lasterbideak Sortzen"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Abiarazle Bizkorreko Lasterbidea"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Abiarazle Bizkorreko Lasterbidea Sortzen"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} lasterbidea."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME}rako mahaigaineko lasterbidea."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME}erako Abiarazle Bizkorreko Lasterbidea."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Ezabatu ${APPLICATION_NAME}en datuen karpeta zure ordenagailutik."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "${APPLICATION_NAME}en datuen karpeta ezabatu nahi duzu?"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Bai, ezabtu datu karpeta hau."
StrCpy $UNINSTALLER_FILE_Detail "Desinstalatzailea idazten"
StrCpy $UNINSTALLER_REGISTRY_Detail "Instalatzaileko Erregistroko Giltzak idazten"
StrCpy $UNINSTALLER_FINISHED_Detail "Bukatuta"
StrCpy $UNINSTALL_ABORT "Desinstalazioak erabiltzaileak bertan behera utzi du"
StrCpy $INIT_NO_QUICK_LAUNCH "Abiarazle Bizkorreko Lasterbidea (E/E)"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Instalatzaileak administratzaile baimenak behar ditu, saiatu berriro"
StrCpy $INIT_INSTALLER_RUNNING "Instalatzailea dagoeneko martxan da."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Desinstalatzaile honek administratzaile baimenak behar ditu, saiatu berriro"
StrCpy $INIT_UNINSTALLER_RUNNING "Desinstalatzailea dagoeneko martxan da."
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Show release notes"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Zobraz poznámky k vydání"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Nalezen proces(y) ${APPLICATION_EXECUTABLE}, které je nutné ukončit .$\nPřejete si, aby je instalátor ukončil?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Ukončuji proces ${APPLICATION_EXECUTABLE}."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proces k ukončení nebyl nalezen! "
StrCpy $PageReinstall_NEW_Field_1 "Starší verze ${APPLICATION_NAME} je nainstalována na tomto systému. Doporučuje se předem tuto verzi odinstalovat. Zvolte operaci, kterou chcete uskutečnit a klikněte na tlačítko Další pro pokračování."
StrCpy $PageReinstall_NEW_Field_2 "Odinstalovat před instalací"
StrCpy $PageReinstall_NEW_Field_3 "Neodinstalovávat"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Již nainstalováno"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Zvolte, jak chcete ${APPLICATION_NAME} nainstalovat."
StrCpy $PageReinstall_OLD_Field_1 "Novější verze aplikace ${APPLICATION_NAME} jejiž nainstalována. Instalace starší verze se nedoporučuje. Pokud opravdu chcete tuto starší verzi nainstalovat, tak je lepší nejprve odinstalovat současnou verzi. Zvolte požadovanou operaci a klikněte na Další pro pokračování."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} je již nainstalována.\nZvolte požadovanou operaci a klikněte na Další pro pokračování."
StrCpy $PageReinstall_SAME_Field_2 "Přidat/odinstalovat komponenty"
StrCpy $PageReinstall_SAME_Field_3 "Odinstalovat ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinstalovat ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte údržbovou volbu k provedení."
StrCpy $SEC_APPLICATION_DETAILS "Instalují se náležitosti ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupce v Nabídce Start"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Přidávám zástupce pro ${APPLICATION_NAME} do Nabídky Start."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupce na ploše"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Vytvářím zástupce na ploše"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Zástupce v panelu rychlého spuštění"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Vytvářím zástupce v panelu rychlého spuštění"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Náležitosti ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Zástupce ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Zástupce na ploše pro ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Zástupce rychlého spuštění pro ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Odstraňte složku s daty aplikace ${APPLICATION_NAME} z tohoto počítače."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Chcete smazat složku s daty ${APPLICATION_NAME}?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Ponechejte nezaškrtnuté, pokud chcete složku s daty ponechat pro pozdější využití nebo zaškrtněte, pokud chcete složku smazat."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ano, smaž tuto složku s daty."
StrCpy $UNINSTALLER_FILE_Detail "Zapisuji odinstalátor"
StrCpy $UNINSTALLER_REGISTRY_Detail "Zapisuji do registrů instalační klíče "
StrCpy $UNINSTALLER_FINISHED_Detail "Dokončeno"
StrCpy $UNINSTALL_MESSAGEBOX "Nezdá se, že ${APPLICATION_NAME} je nainstalována ve složce '$INSTDIR'.\nChcete pokračovat (nedoporučuje se)?"
StrCpy $UNINSTALL_ABORT "Odinstalace zrušena uživatelem"
StrCpy $INIT_NO_QUICK_LAUNCH "Zástupce rychlého spuštění (není k dispozici)"
StrCpy $UAC_ERROR_ELEVATE "Nelze zvýšit, chyba:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tento instalátor vyžaduje správcovská oprávnění, opakujte znovu"
StrCpy $INIT_INSTALLER_RUNNING "Instalátor je již spuštěn."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tento odinstalátor vyžaduje správcovská oprávnění, opakujte znovu"
StrCpy $INIT_UNINSTALLER_RUNNING "Odinstalátor je již spuštěn."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "toon releaseopmerkingen"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Proces(sen) ${APPLICATION_EXECUTABLE} moet worden gestopt.$\nWilt u dat het installatieprogramma dat voor u doet?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Stoppen ${APPLICATION_EXECUTABLE} processen."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Het te stoppen proces is niet gevonden!"
StrCpy $PageReinstall_NEW_Field_1 "Er is een oudere versie van ${APPLICATION_NAME} geïnstalleerd op uw systeem. geadviseerd wordt om de huidige versie te de-installeren voordat de nieuwe versie wordt geïnstalleerd. Selecteer de uit te voeren actie en klik op Verder om door te gaan."
StrCpy $PageReinstall_NEW_Field_2 "De-installeren voor installeren"
StrCpy $PageReinstall_NEW_Field_3 "Niet de-installeren"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Reeds geinstalleerd"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Kies hoe u ${APPLICATION_NAME} wilt installeren."
StrCpy $PageReinstall_SAME_Field_3 "De-installeer ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "De-installeer ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Kies de uit te voeren onderhoudsoptie."
StrCpy $SEC_APPLICATION_DETAILS "Installeren ${APPLICATION_NAME} basis."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Startmenu snelkoppeling"
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Werkblad snelkoppeling"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Aanmaken werkblad snelkoppelingen"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} basis."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} snelkoppeling."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Werkblad snelkoppeling voor ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Verwijder ${APPLICATION_NAME}'s data map van uw computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Wilt u de ${APPLICATION_NAME}'s data map verwijderen?"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ja, verwijder deze data map."
StrCpy $UNINSTALLER_FILE_Detail "Wegschrijven Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Wegschrijven installer Registersleutels"
StrCpy $UNINSTALLER_FINISHED_Detail "Klaar"
StrCpy $UNINSTALL_ABORT "De-installatie afgebroken door de gebruiker"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dit installatieprogramma vereist administrator rechten. Probeer het opnieuw"
StrCpy $INIT_INSTALLER_RUNNING "De Installer is al gestart."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Deze uninstaller vereist administrator toegang, probeer opnieuw"
StrCpy $INIT_UNINSTALLER_RUNNING "De uninstaller is al gestart."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Show release notes"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Process to kill not found!"
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_NEW_Field_2 "Uninstall before installing"
StrCpy $PageReinstall_NEW_Field_3 "Do not uninstall"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Already Installed"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choose how you want to install ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $PageReinstall_SAME_Field_3 "Uninstall ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creating Desktop Shortcuts"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Do you want to delete ${APPLICATION_NAME}'s data folder?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Yes, delete this data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $UNINSTALLER_FINISHED_Detail "Finished"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $UNINSTALL_ABORT "Uninstall aborted by user"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "This installer requires admin access, try again"
StrCpy $INIT_INSTALLER_RUNNING "The installer is already running."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "This uninstaller requires admin access, try again"
StrCpy $INIT_UNINSTALLER_RUNNING "The uninstaller is already running."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Näita väljalaske märkmeid"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Protsessi ${APPLICATION_EXECUTABLE} lõpetamine."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Ei leitud protsessi, mida tappa!"
StrCpy $PageReinstall_NEW_Field_2 "Eemalda enne paigaldamist"
StrCpy $PageReinstall_NEW_Field_3 "Ära paigalda"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Juba paigaldatud"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Vali, kuidas sa soovid paigaldada ${APPLICATION_NAME}."
StrCpy $PageReinstall_SAME_Field_2 "Lisa/Taaspaigalda komponente"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalli ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalli ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vali hooldustegevus, mida sa soovid sooritada."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Töölaua otsetee"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Töölaua otseteede loomine"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Kiirvaliku nupp"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Kiirvaliku nupu loomine"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} otsetee."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Jah, kustuta andmete kaust."
StrCpy $UNINSTALLER_FILE_Detail "Desinstallija kirjutamine"
StrCpy $UNINSTALLER_FINISHED_Detail "Lõpetatud"
StrCpy $UNINSTALL_ABORT "Desinstallimine on kasutaja poolt katkestatud"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "See paigaldaja vajab admini ligipääsu, proovi uuesti"
StrCpy $INIT_INSTALLER_RUNNING "Paigaldaja on juba käimas."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "See desinstallija vajab admini ligipääsu, proovi uuesti"
StrCpy $INIT_UNINSTALLER_RUNNING "See desinstallija on juba käimas"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Do you want to delete ${APPLICATION_NAME}'s data folder?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Näytä julkaisutiedot"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Tapettavaa prosessia ei löytynyt!"
StrCpy $PageReinstall_NEW_Field_2 "Poista ennen asentamista"
StrCpy $PageReinstall_NEW_Field_3 "Älä poista"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Asennettu jo"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Valitse miten ${APPLICATION_NAME} asennetaan."
StrCpy $PageReinstall_SAME_Field_3 "Poista ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Poista ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Työpöydän pikakuvake"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Pikakäynnistyksen pikakuvake"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME}-pikakuvake."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Sovelluksen ${APPLICATION_NAME} työpyötäpikakuvake."
StrCpy $UNINSTALLER_REGISTRY_Detail "Kirjoitetaan asennusohjelman rekisteriavaimia"
StrCpy $UNINSTALLER_FINISHED_Detail "Valmis"
StrCpy $UNINSTALL_ABORT "Poistaminen keskeytettiin käyttäjän toimesta"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tämä asennusohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
StrCpy $INIT_INSTALLER_RUNNING "Asennusohjelma on jo käynnissä."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tämä poisto-ohjelma vaatii ylläpitäjän oikeudet, yritä uudelleen."
StrCpy $INIT_UNINSTALLER_RUNNING "Poisto-ohjelma on jo käynnissä."
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creating Desktop Shortcuts"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Do you want to delete ${APPLICATION_NAME}'s data folder?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Yes, delete this data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Amosar as notas de publicación"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Atopouse o proceso ${APPLICATION_EXECUTABLE} que ten que ser detido.$\nQuere que sexa o instalador quen o deteña?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Matando os procesos ${APPLICATION_EXECUTABLE}."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Non se atopou o proceso para matalo!"
StrCpy $PageReinstall_NEW_Field_1 "No seu sistema hai instalada unha versión anterior do ${APPLICATION_NAME}. Recomendámoslle que desinstale a versión actual antes de instalar. Seleccione a operación que quere realizar e prema en Seguinte para continuar."
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
StrCpy $PageReinstall_NEW_Field_3 "Non desinstalar"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Xa instalado"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolla como quere instalar ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "Ten instalada unha versión actualizada do ${APPLICATION_NAME}! recomendámoslle que non instale unha versión anterior. Se realmente quere instalar esta versión máis antiga, é preferíbel que desinstale a versión actual antes de instalar. Seleccione a operación que quere realizar e prema en Seguinte para continuar."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} xa está instalado.\nSeleccione a operación que que quere realizar e prema en Seguinte para continuar."
StrCpy $PageReinstall_SAME_Field_2 "Engadir/reinstalar compoñentes"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolla a opción de mantemento a realizar."
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciais."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo ao programa no menú de inicio"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Engadindo o acceso directo ao ${APPLICATION_NAME} no menú de inicio"
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo no escritorio"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando os accesos directos no escritorio"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso de inicio rápido"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando o acceso de inicio rápido"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esenciais."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso directo ao ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso directo no escritorio para "
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Acceso de inicio rápido para ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Retirar o cartafol de datos do ${APPLICATION_NAME} do seu computador."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Confirma que quere eliminar o cartafol de datos do ${APPLICATION_NAME}?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Deixeo sen marcar para manter o cartafol de datos para o seu uso posterior ou marqueo para eliminar o cartafol de datos."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Si, eliminar este cartafol de datos."
StrCpy $UNINSTALLER_FILE_Detail "Escribindo o desinstalador"
StrCpy $UNINSTALLER_REGISTRY_Detail "Escribindo o instalador nas chaves do rexistro"
StrCpy $UNINSTALLER_FINISHED_Detail "Rematado"
StrCpy $UNINSTALL_MESSAGEBOX "Semella que ${APPLICATION_NAME} non está instalado no directorio «$INSTDIR».$\n$\nContinuar aínda así (non recomendado)?"
StrCpy $UNINSTALL_ABORT "A desinstalación foi interrompida polo usuario."
StrCpy $INIT_NO_QUICK_LAUNCH "Acceso de inicio rápido (n/d)"
StrCpy $UAC_ERROR_ELEVATE "Non foi posíbel elevalo, erro:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este instalador require acceso de administrador, tenteo de novo"
StrCpy $INIT_INSTALLER_RUNNING "O instalador xa está en execución."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador require acceso de administrador, tenteo de novo"
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador xa está en execución."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Release-Informationen anzeigen"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "${APPLICATION_EXECUTABLE} Prozess(e) müssen gestoppt werden.$\nWollen Sie diese nun stoppen?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Beende ${APPLICATION_EXECUTABLE} Prozesse."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Prozess zum Beenden nicht gefunden!"
StrCpy $PageReinstall_NEW_Field_1 "Eine ältere Version von ${APPLICATION_NAME} ist auf Ihrem System installiert. Es wird empfohlen, diese Version zunächst zu entfernen. Wählen Sie unter folgenden Vorgehenweisen und wählen Sie $\"Weiter$\"."
StrCpy $PageReinstall_NEW_Field_2 "Vor der Installation entfernen"
StrCpy $PageReinstall_NEW_Field_3 "Nicht entfernen"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Bereits installiert"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Wählen Sie die Methode, mit der sie ${APPLICATION_NAME} installieren wollen."
StrCpy $PageReinstall_OLD_Field_1 "Eine neuere Version von ${APPLICATION_NAME} ist bereits installiert! Es wird nicht empfohlen, eine ältere Version zu installieren. Wollen Sie dies trotzdem tun, so sollten Sie die aktuelle Version zunächst entfernen. Wählen Sie eine Vorgehensweise und wählen dann $\"Weiter$\"."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ist bereits installiert.\nWählen Sie eine Vorgehensweise und klicken Sie auf $\"Weiter$\"."
StrCpy $PageReinstall_SAME_Field_2 "Komponenten hinzufügen"
StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} entfernen"
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} entfernen"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Wählen Sie zur Ausführung die Wartungsoption."
StrCpy $SEC_APPLICATION_DETAILS "Installiere ${APPLICATION_NAME} Basis."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Installiere Verknüpfung im Programmmenü"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Füge Verknüpfung für ${APPLICATION_NAME} dem Startmenü hinzu."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop-Verknüpfung"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Erstellt Desktop-Verknüpfung"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Schnellstart-Verknüpfung"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Erstelle Schnellstart-Verknüpfung"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} Basis."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} Verknüfung."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop-Verknüpfung für ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Schnellstart-Verknüpfung für ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Entferne Datenordner ${APPLICATION_NAME} von der Maschine."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Wollen sie den ${APPLICATION_NAME} Datenordner entfernen?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Abwählen, um den Datenordner für spätere Verwendung zu behalten."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ja, Datenordner löschen."
StrCpy $UNINSTALLER_FILE_Detail "Schreibe Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Schreibe Registrierungseinträge"
StrCpy $UNINSTALLER_FINISHED_Detail "Abgeschlossen"
StrCpy $UNINSTALL_MESSAGEBOX "Es scheint, als ob ${APPLICATION_NAME} nicht im Verzeichnis '$INSTDIR' installiert ist.$\n$\nTrotzdem fortfahren (nicht empfohlen)?"
StrCpy $UNINSTALL_ABORT "Deinstallation vom Benutzer abgebrochen"
StrCpy $INIT_NO_QUICK_LAUNCH "Schnellstart-Verknüpfung (Nicht verfügbar)"
StrCpy $UAC_ERROR_ELEVATE "Kann Rechte nicht erhöhen, Fehler:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Dieses Installationsprogramm erfordert Administrator-Rechte, bitte erneut versuchen"
StrCpy $INIT_INSTALLER_RUNNING "Das Installationsprogramm wird bereits ausgeführt."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Das Deinstallationsprogramm erfordert Administrator-Rechte. Bitte erneut versuchen."
StrCpy $INIT_UNINSTALLER_RUNNING "Das Deinstallationsprogramm wird bereits ausgeführt."
StrCpy $SectionGroup_Shortcuts "Verknüpfungen"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "ÅìöÜíéóç óçìåéþóåùí Ýêäïóçò"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Äåí âñÝèçêå äéåñãáóßá ãéá âßáéï ôåñìáôéóìü!"
StrCpy $PageReinstall_NEW_Field_2 "ÁðåãêáôÜóôáóç ðñéí ôçí åãêáôÜóôáóç"
StrCpy $PageReinstall_NEW_Field_3 "Íá ìçí áðåãêáôáóôáèåß"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "¹äç åãêáôåóôçìÝíï"
StrCpy $PageReinstall_SAME_Field_3 "ÁðåãêáôÜóôáóç ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "ÁðåãêáôÜóôáóç ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Íá äéáãñáöåß ï öÜêåëïò äåäïìÝíùí."
StrCpy $UNINSTALLER_FINISHED_Detail "ÏëïêëÞñùóç"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choose how you want to install ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creating Desktop Shortcuts"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Do you want to delete ${APPLICATION_NAME}'s data folder?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $UNINSTALL_ABORT "Uninstall aborted by user"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "This installer requires admin access, try again"
StrCpy $INIT_INSTALLER_RUNNING "The installer is already running."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "This uninstaller requires admin access, try again"
StrCpy $INIT_UNINSTALLER_RUNNING "The uninstaller is already running."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostra le note di rilascio"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Il processo da terminare non è stato trovato!"
StrCpy $PageReinstall_NEW_Field_2 "Disinstalla prima di installare"
StrCpy $PageReinstall_NEW_Field_3 "Non disinstallare"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Già installato"
StrCpy $PageReinstall_SAME_Field_2 "Aggiungi/Reinstalla i componenti"
StrCpy $PageReinstall_SAME_Field_3 "Disinstalla ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Disinstalla ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Scegli l'opzione di manutenzione da eseguire."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Scorciatoia del desktop"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creazione delle scorciatoie del desktop"
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Rimuovi la cartella dei dati di ${APPLICATION_NAME} dal tuo computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Vuoi eliminare la cartella dei dati di ${APPLICATION_NAME}?"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Sì, elimina questa cartella di dati."
StrCpy $UNINSTALLER_FINISHED_Detail "Completato"
StrCpy $UNINSTALL_ABORT "Disinstallazione interrotta dall'utente"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choose how you want to install ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "This installer requires admin access, try again"
StrCpy $INIT_INSTALLER_RUNNING "The installer is already running."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "This uninstaller requires admin access, try again"
StrCpy $INIT_UNINSTALLER_RUNNING "The uninstaller is already running."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "リリースノートを表示"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "次の ${APPLICATION_EXECUTABLE} のプロセスを終了する必要があります。\nインストーラーがそのプロセスを停止してもよろしいですか"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} プロセスを終了しています。"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "終了するプロセスがありません"
StrCpy $PageReinstall_NEW_Field_2 "インストール前にアンインストールする"
StrCpy $PageReinstall_NEW_Field_3 "アンインストールしない"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "インストール済"
StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} をアンインストール"
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} をアンインストール"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "実行する為に、メンテナンスオプションを選択してください。"
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "スタートメニューショートカット"
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "デスクトップショートカット"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "デスクトップショートカット作成"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "クイック起動ショートカット"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "クイック起動ショートカットを作成"
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME} のデスクトップショートカット"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME} のクイック起動ショートカット"
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "${APPLICATION_NAME} のデータフォルダを削除しますか?"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "はい。データフォルダーを削除します。"
StrCpy $UNINSTALLER_FILE_Detail "アンインストーラーを書き込み"
StrCpy $UNINSTALLER_REGISTRY_Detail "インストーラーのレジストリキーの書き込み"
StrCpy $UNINSTALLER_FINISHED_Detail "終了"
StrCpy $UNINSTALL_ABORT "アンインストールは、ユーザーによって中止されました。"
StrCpy $INIT_NO_QUICK_LAUNCH "クイック起動ショートカット(N/A)"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "このインストーラーは、管理者権限が必要です。インストールを再試行してください。"
StrCpy $INIT_INSTALLER_RUNNING "インストーラーは、既に起動しています。"
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "このアンインストーラーは、管理者権限が必要です。アンインストールを再試行してください。"
StrCpy $INIT_UNINSTALLER_RUNNING "アンインストーラーは、既に起動しています。"
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Choose how you want to install ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados ${APPLICATION_EXECUTABLE} processo(s) que precisam ser interrompidos. $ \n Você quer que o instalador pare estes para você?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Eliminar ${APPLICATION_EXECUTABLE} processos."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Processo para eliminar não encontrado!"
StrCpy $PageReinstall_NEW_Field_1 "Uma versão mais antiga de ${APPLICATION_NAME} está instalado em seu sistema. É recomendado que você desinstale a versão atual antes de instalar. Selecione a operação que deseja executar e clique em Avançar para continuar."
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
StrCpy $PageReinstall_NEW_Field_3 "Não desinstale"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Já instalado"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Escolha como você deseja instalar ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "A versão mais recente do ${APPLICATION_NAME} já está instalado! Não é recomendado que você instale uma versão mais antiga. Se você realmente deseja instalar esta versão mais antiga, é melhor desinstalar a versão atual primeiro. Selecione a operação que deseja executar e clique em Avançar para continuar."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${version} já está instalado. \nSelecione a operação que deseja executar e clique em Avançar para continuar."
StrCpy $PageReinstall_SAME_Field_2 "Adicionar/reinstalar componentes"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolha a opção de realizar manutenção."
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} fundamentos."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Menu Iniciar Programa Atalho"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adicionando atalho para ${APPLICATION_NAME} para o Menu Iniciar."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Atalho Desktop"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Criando Atalhos de Desktop"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atalho Rápido"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Criando Atalho Rápido"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esseciais."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} atalho."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Atalho Desktop para ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Atalho Rápido para ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remover ${APPLICATION_NAME} pasta de dados de seu computador."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Você quer apagar $ {APPLICATION_NAME} 's pasta de dados?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Deixe desmarcada para manter a pasta de dados para uso posterior ou cheque para excluir a pasta de dados."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Sim, excluir essa pasta de dados."
StrCpy $UNINSTALLER_FILE_Detail "Escrevendo Desinstalador"
StrCpy $UNINSTALLER_REGISTRY_Detail "Escrevendo Chaves de Registro do Inslalador"
StrCpy $UNINSTALLER_FINISHED_Detail "Finalizado"
StrCpy $UNINSTALL_MESSAGEBOX "Não parece que ${APPLICATION_NAME} está instalado no diretório '$INSTDIR'.$\n$\nContinuar assim mesmo (não recomendado)?"
StrCpy $UNINSTALL_ABORT "Desinstalação abortada pelo usuário"
StrCpy $INIT_NO_QUICK_LAUNCH "Atalho de Inicialização Rápida (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Incapaz de elevar, erro:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Este programa de instalação requer acesso de administrador, tente novamente"
StrCpy $INIT_INSTALLER_RUNNING "O instalador já está em execução."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Este desinstalador requer acesso de administrador, tente novamente"
StrCpy $INIT_UNINSTALLER_RUNNING "O desinstalador já está em execução."
StrCpy $SectionGroup_Shortcuts "Atalhos"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Zobrazi<EFBFBD> zoznam zmien"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Našli sa ${APPLICATION_EXECUTABLE} proces (y), ktoré je potrebné zastavi<76>.$\nChcete, aby ich inštalátor zastavil?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Ukonèi<EFBFBD> ${APPLICATION_EXECUTABLE} procesy."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Proces ukonèenia nebol nájdený!"
StrCpy $PageReinstall_NEW_Field_1 "Staršia verzia ${APPLICATION_NAME} je nainštalovaná vo vašom systéme. Odporúèam vám odinštalova<76> aktuálnu verziu pred inštaláciou. Vyberte operáciu, ktorú chcete vykona<6E>, a kliknite na tlaèidlo Ïalej pre pokraèovanie."
StrCpy $PageReinstall_NEW_Field_2 "Odinštalova<EFBFBD> pred inštaláciou"
StrCpy $PageReinstall_NEW_Field_3 "Neodinštalova<EFBFBD>"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Už je nainštalovaný"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Vyberte si, ako chcete nainštalova<76> ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "Novšia verzia ${APPLICATION_NAME} je už nainštalovaná! Neodporúèam vám nainštalova<76> staršiu verziu. Ak naozaj chcete nainštalova<76> túto staršiu verziu, je lepšie najprv odinštalova<76> aktuálnu verziu. Vyberte operáciu, ktorú chcete vykona<6E>, a kliknite na tlaèidlo Ïalej pre pokraèovanie."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} je už nainštalovaná.\nVyberte operáciu, ktorú chcete vykona<6E>, a kliknite na tlaèidlo Ïalej pre pokraèovanie."
StrCpy $PageReinstall_SAME_Field_2 "Prida<EFBFBD>/Preinštalova<76> komponenty"
StrCpy $PageReinstall_SAME_Field_3 "Odinštalova<EFBFBD> ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Odinštalova<EFBFBD> ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Vyberte možnos<6F> vykona<6E> údržbu."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Zástupca programu v menu Štart"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Prida<EFBFBD> zástupcu pre ${APPLICATION_NAME} do menu Štart."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Zástupca na ploche"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Vytvorenie zástupcu na ploche"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Zástupca na paneli úloh"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Vytvorenie zástupcu na paneli úloh"
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} zástupca."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Zástupca na ploche pre ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Zástupca na paneli úloh pre ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Zmaza<EFBFBD> dátový prieèinok ${APPLICATION_NAME}'s z vášho poèítaèa."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Naozaj chcete zmaza<7A> prieèinok s dátami ${APPLICATION_NAME}'s ?"
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Áno, zmaza<7A> tento prieèinok."
StrCpy $UNINSTALLER_FINISHED_Detail "Dokonèené"
StrCpy $UNINSTALL_MESSAGEBOX "Nezdá sa, že ${APPLICATION_NAME} je nainštalovaný v prieèinku '$INSTDIR'.$\n$\nNapriek tomu pokraèova<76> (neodporúèa sa)?"
StrCpy $UNINSTALL_ABORT "Odinštalácia prerušená používate¾om"
StrCpy $INIT_NO_QUICK_LAUNCH "Zástupca na paneli úloh (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Nemožno povýši<C5A1>, chyba:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Tento inštalátor vyžaduje admin prístup, skúste to znova"
StrCpy $INIT_INSTALLER_RUNNING "Inštalátor je už spustený."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Tento odinštalátor vyžaduje admin prístup, skúste to znova"
StrCpy $INIT_UNINSTALLER_RUNNING "Odinštalátor je už spustený."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Pokaži opombe k objavi"
StrCpy $PageReinstall_NEW_Field_3 "Ne odstrani namestitve"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Program je že namešèen"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Izberite naèin namestitve programa ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_FINISHED_Detail "Konèano"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Found ${APPLICATION_EXECUTABLE} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Killing ${APPLICATION_EXECUTABLE} processes."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Process to kill not found!"
StrCpy $PageReinstall_NEW_Field_1 "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_NEW_Field_2 "Uninstall before installing"
StrCpy $PageReinstall_OLD_Field_1 "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
StrCpy $PageReinstall_SAME_Field_2 "Add/Reinstall components"
StrCpy $PageReinstall_SAME_Field_3 "Uninstall ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Uninstall ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Choose the maintenance option to perform."
StrCpy $SEC_APPLICATION_DETAILS "Installing ${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Start Menu Program Shortcut"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Desktop Shortcut"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creating Desktop Shortcuts"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creating Quick Launch Shortcut"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} essentials."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} shortcut."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Desktop shortcut for ${APPLICATION_NAME}."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Quick Launch shortcut for ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remove ${APPLICATION_NAME}'s data folder from your computer."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Do you want to delete ${APPLICATION_NAME}'s data folder?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Leave unchecked to keep the data folder for later use or check to delete the data folder."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Yes, delete this data folder."
StrCpy $UNINSTALLER_FILE_Detail "Writing Uninstaller"
StrCpy $UNINSTALLER_REGISTRY_Detail "Writing Installer Registry Keys"
StrCpy $UNINSTALL_MESSAGEBOX "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
StrCpy $UNINSTALL_ABORT "Uninstall aborted by user"
StrCpy $INIT_NO_QUICK_LAUNCH "Quick Launch Shortcut (N/A)"
StrCpy $UAC_ERROR_ELEVATE "Unable to elevate, error:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "This installer requires admin access, try again"
StrCpy $INIT_INSTALLER_RUNNING "The installer is already running."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "This uninstaller requires admin access, try again"
StrCpy $INIT_UNINSTALLER_RUNNING "The uninstaller is already running."
StrCpy $SectionGroup_Shortcuts "Shortcuts"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar las notas de la versión"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Se encontró el proceso(s) ${APPLICATION_EXECUTABLE} el cual necesita detenerse. $\n¿Desea que el instalador lo detenga por usted?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Terminando los procesos de ${APPLICATION_EXECUTABLE}"
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "¡Proceso a detener no encontrado!"
StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda de instalar la versión actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar."
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
StrCpy $PageReinstall_NEW_Field_3 "No desinstalar"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ya está instalado"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Elija como quiere instalar ${APPLICATION_NAME}."
StrCpy $PageReinstall_OLD_Field_1 "Una nueva versión de ${APPLICATION_NAME} ya está instalada. No es recomendable instalar una versión anterior. Si realmente quiere instalar esta versión anterior, es mejor que desinstale la versión actual primero. Seleccione la operación que desea realizar y pulse Next para continuar."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} ya está instalada.\nSeleccione la operación que desea realizar y pulse Next para continuar."
StrCpy $PageReinstall_SAME_Field_2 "Añadir/Reinstalar componentes"
StrCpy $PageReinstall_SAME_Field_3 "Desinstalar ${APPLICATION_NAME}"
StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstalar ${APPLICATION_NAME}"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opcion de mantenimiento a realizar."
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciales."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso Directo al Programa Menú de Inicio"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Añadiendo accesos directos para ${APPLICATION_NAME} en el Menú de Inicio."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo de Escritorio"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando Accesos Directos de Escritorio"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Acceso Directo al Lanzador Rápido"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando un Acceso Directo al Lanzador Rápido"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esencial."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso Directo de ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo de Escritorio para ${APPLICATION_NAME}"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Lanzador Rápido de Accesos Director para ${APPLICATION_NAME}."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Remueva la carpeta de datos de ${APPLICATION_NAME} del computador."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "¿Desea eliminar la carpeta de datos de ${APPLICATION_NAME}?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Deja sin marcar para mantener la carpeta de datos para uso posterior, o del marque para eliminar la carpeta de datos."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Si, Elimine esta carpeta de datos."
StrCpy $UNINSTALLER_FILE_Detail "Escribiendo Desinstalador"
StrCpy $UNINSTALLER_REGISTRY_Detail "Escribiendo Llaves en el Registro del Instalador"
StrCpy $UNINSTALLER_FINISHED_Detail "Terminado"
StrCpy $UNINSTALL_MESSAGEBOX "Parece que ${APPLICATION_NAME} no está instalado en el directorio '$INSTDIR'.$$ ¿Continuar de todos modos? (No Recomendado)"
StrCpy $UNINSTALL_ABORT "Desinstalación cancelada por el usuario"
StrCpy $INIT_NO_QUICK_LAUNCH "Acceso Directo al Lanzador Rápido (N/A)"
StrCpy $UAC_ERROR_ELEVATE "No se ha podido elevar, Error:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "El instalador requiere acceso administrativo, intente de nuevo"
StrCpy $INIT_INSTALLER_RUNNING "El instalador ya se encuentra en ejecución"
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "El desinstalador requiere acceso administrativo, intente de nuevo"
StrCpy $INIT_UNINSTALLER_RUNNING "El desinstalador ya se encuentra en ejecución."
StrCpy $SectionGroup_Shortcuts "Accesos Directos"

View File

@@ -0,0 +1,43 @@
# Auto-generated - do not modify
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Sürüm notlarını göster"
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Durdurulması gereken ${APPLICATION_EXECUTABLE} süreci bulunuyor.$\nYükleyicinin bunu sizin için yapmasını ister misiniz?"
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "${APPLICATION_EXECUTABLE} süreç sonlandırılıyor."
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Sonlandırılacak süreç bulunamadı!"
StrCpy $PageReinstall_NEW_Field_1 "${APPLICATION_NAME} önceki sürümü sisteminizde yüklü. Kurulumdan önce bunu kaldırmanız önerilir. Yapmak istediğiniz işlemi seçip devam etmek için İleri tıklayın."
StrCpy $PageReinstall_NEW_Field_2 "Yüklemeden önce kaldır"
StrCpy $PageReinstall_NEW_Field_3 "Kaldırma"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Zaten Yüklü"
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "${APPLICATION_NAME} uygulamasını nasıl yüklemek istediğinizi seçin."
StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME} uygulamasının daha yeni sürümü zaten yüklü! Daha eski bir sürümünü yüklemeniz önerilmez. Gerçekten bu eski sürümü yüklemek isterseniz, ilk olarak geçerli sürümü kaldırmanız tavsiye edilir. Yapmak istediğiniz işlemi seçin ve devam etmek üzere İleri tıklayın."
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} zaten yüklü.\nYapmak istediğiniz işlemi seçin ve devam etmek için İleri tıklayın."
StrCpy $PageReinstall_SAME_Field_2 "Bileşenleri ekle/yeniden yükle"
StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} uygulamasını kaldır"
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} uygulamasını kaldır"
StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Yapmak istediğiniz bakım işlemini seçin."
StrCpy $SEC_APPLICATION_DETAILS "${APPLICATION_NAME} gereklilikleri yükleniyor."
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Başlat Menüsü Program Kısayolu"
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "${APPLICATION_NAME} için Başlat Menüsü'ne kısayol ekleniyor."
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Masaüstü Kısayolu"
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Masaüstü Kısayolları Oluşturuluyor"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Hızlı Başlat Kısayolu"
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Hızlı Başlat Kısayolu Oluşturuluyor"
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} gereklilikleri."
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "${APPLICATION_NAME} kısayolu."
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "${APPLICATION_NAME} için masaüstü kısayolu."
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "${APPLICATION_NAME} için Hızlı Başlat kısayolu."
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Bilgisayarınızdan ${APPLICATION_NAME} veri klasörünü kaldırır."
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "${APPLICATION_NAME} veri klasörünü silmek istiyor musunuz?"
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Veri klasörünün daha sonraki kullanımı için saklamak üzere işaretini kaldırın veya silmek için işaretleyin."
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Evet bu veri klasörünü sil."
StrCpy $UNINSTALLER_FILE_Detail "Kaldırıcı Yazılıyor"
StrCpy $UNINSTALLER_REGISTRY_Detail "Yükleyici Kayıt Anahtarları Yazılıyor"
StrCpy $UNINSTALLER_FINISHED_Detail "Tamamlandı"
StrCpy $UNINSTALL_MESSAGEBOX "${APPLICATION_NAME} uygulaması '$INSTDIR' dizinine yüklenmiş gibi görünmüyor.$\n$\nYine de devam edilsin mi (önerilmez)?"
StrCpy $UNINSTALL_ABORT "Kaldırma kullanıcı tarafından iptal edildi"
StrCpy $INIT_NO_QUICK_LAUNCH "Hızlı Başlat Kısayolu (Kullanılamıyor)"
StrCpy $UAC_ERROR_ELEVATE "Yükseltme başarısız, hata:"
StrCpy $UAC_INSTALLER_REQUIRE_ADMIN "Bu yükleyici yönetici erişimi gerektiriyor, yeniden deneyin"
StrCpy $INIT_INSTALLER_RUNNING "Yükleyici zaten çalışıyor."
StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Bu kaldırıcı yönetici erişimi gerektiriyor, yeniden deneyin"
StrCpy $INIT_UNINSTALLER_RUNNING "Kaldırıcı zaten çalışıyor."
StrCpy $SectionGroup_Shortcuts "Kısayollar"

View File

@@ -0,0 +1,182 @@
##############################################################################
#
# PROJECT: ownCloud v1.0
# LICENSE: See LICENSE in the top level directory
#
##############################################################################
import collections
import os
import polib
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-o", "--output", dest="output",
help="Directory for localized output", default="../Shared/installer/nightly_localized.nsi")
parser.add_option("-p", "--podir", dest="podir",
help="Directory containing PO files", default="../Shared/installer/locale/")
parser.add_option("-l", "--lang", dest="lang",
help="Default language of the NSI", default="English" )
(options, args) = parser.parse_args()
# Define a dict to convert locale names to language names
localeToName = {
"af" : "Afrikaans",
"sq" : "Albanian",
"ar" : "Arabic",
"hy" : "Armenian",
"eu" : "Basque",
"be" : "Belarusian",
"bs" : "Bosnian",
"br" : "Breton",
"bg" : "Bulgarian",
"ca" : "Catalan",
"bem" : "Cibemba",
"hr" : "Croatian",
"cs" : "Czech",
"da" : "Danish",
"nl" : "Dutch",
"efi" : "Efik",
"en" : "English",
"eo" : "Esperanto",
"et" : "Estonian",
"fa" : "Farsi",
"fi" : "Finnish",
"fr" : "French",
"gl" : "Galician",
"ka" : "Georgian",
"de" : "German",
"el" : "Greek",
"he" : "Hebrew",
"hi" : "Hindi",
"hu" : "Hungarian",
"is" : "Icelandic",
"ig" : "Igbo",
"id" : "Indonesian",
"ga" : "Irish",
"it" : "Italian",
"ja" : "Japanese",
"km" : "Khmer",
"ko" : "Korean",
"ku" : "Kurdish",
"lv" : "Latvian",
"lt" : "Lithuanian",
"lb" : "Luxembourgish",
"mk" : "Macedonian",
"mg" : "Malagasy",
"ms" : "Malay",
"mn" : "Mongolian",
"nb" : "Norwegian",
"nn" : "NorwegianNynorsk",
"ps" : "Pashto",
"pl" : "Polish",
"pt" : "Portuguese",
"pt_BR" : "PortugueseBR",
"ro" : "Romanian",
"ru" : "Russian",
"sr" : "Serbian",
"sr_sp" : "SerbianLatin",
"st" : "Sesotho",
"sn" : "Shona",
"zh_CN" : "SimpChinese",
"sk" : "Slovak",
"sl" : "Slovenian",
"es" : "Spanish",
"es_AR" : "SpanishInternational",
"sw" : "Swahili",
"sv" : "Swedish",
"ta" : "Tamil",
"th" : "Thai",
"zh_HK" : "TradChinese",
"tr" : "Turkish",
"tw" : "Twi",
"uk" : "Ukrainian",
"ug" : "Uyghur",
"uz" : "Uzbek",
"ca@valencia" : "Valencian",
"vi" : "Vietnamese",
"cy" : "Welsh",
"yo" : "Yoruba",
"zu" : "Zulu",
}
def escapeNSIS(st):
return st.replace('\\', r'$\\')\
.replace('\t', r'$\t')\
.replace('\r', r'\r')\
.replace('\n', r'\n')\
.replace('\"', r'$\"')\
.replace('$$\\', '$\\')
translationCache = {}
# The purpose of this loop is to go to the podir scanning for PO files for each locale name
# Once we've found a PO file, we use PO lib to read every translated entry
# Using this, for each each language, we store a dict of entries - { nsilabel (comment) : translation (msgstr) }
# For untranslated entries, we use msgid instead of msgstr (i.e. default English string)
for root,dirs,files in os.walk(options.podir):
for file in files:
filename,ext = os.path.splitext(file)
if ext == ".po":
# Valid locale filename (fr.po, de.po etc)?
if filename in localeToName:
language = localeToName[filename]
translationCache[language] = collections.OrderedDict()
po = polib.pofile(os.path.join(root,file))
for entry in po.translated_entries():
# Loop through all our labels and add translation (each translation may have multiple labels)
for label in entry.comment.split():
translationCache[language][label] = escapeNSIS(entry.msgstr)
# For untranslated strings, let's add the English entry
for entry in po.untranslated_entries():
for label in entry.comment.split():
print("Warning: Label '%s' for language '%s' remains untranslated"%(label,language))
translationCache[language][label] = escapeNSIS(entry.msgid)
def tostr(obj):
if type(obj) == unicode:
return obj.encode("utf-8")
else:
return obj
NSILanguages = []
NSIDeclarations = []
# file header
NSILanguages.append( tostr('; Auto-generated - do not modify\n') )
NSIDeclarations.append( tostr('; Auto-generated - do not modify\n') )
# loopthrough the languages an generate one nsh files for each language
lineNo = 1
for language,translations in translationCache.iteritems():
NSINewLines = []
NSINewLines.append( tostr('# Auto-generated - do not modify\n') )
count = 0
# if the language isn't the default, we add our MUI_LANGUAGE macro
if language.upper() != options.lang.upper():
NSILanguages.append( tostr('!insertmacro MUI_LANGUAGE "%s"\n'%language) )
# For every translation we grabbed from the .po, let's add our StrCpy command
for label,value in translations.iteritems():
NSINewLines.append( tostr('StrCpy $%s "%s"\n' % (label,value)) )
if language.upper() == options.lang.upper():
NSIDeclarations.append( tostr('Var %s\n' % label) )
count += 1
NSIWorkingFile = open('%s/%s.nsh' % (options.output, language),"w")
NSIWorkingFile.writelines(NSINewLines)
NSIWorkingFile.close()
print ( "%i translations merged for language '%s'"%(count,language) )
# Finally, let's write languages.nsh and declarations.nsh
NSIWorkingFile = open('%s/languages.nsh' % options.output,"w")
NSIWorkingFile.writelines(NSILanguages)
NSIWorkingFile.close()
NSIWorkingFile = open('%s/declarations.nsh' % options.output,"w")
NSIWorkingFile.writelines(NSIDeclarations)
NSIWorkingFile.close()
print ( "NSI Localization Operation Complete" )

48
admin/win/nsi/l10n/bin/l10n.sh Executable file
View File

@@ -0,0 +1,48 @@
#!/bin/bash
L10NDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
SCRIPTDIR="$L10NDIR/bin"
PODIR="$L10NDIR/pofiles"
# messages.pot will be used as English translation
cp -f $PODIR/messages.pot $PODIR/en.po
# generate all the languages nsh files
python $SCRIPTDIR/build_locale_nsi.py -o $L10NDIR -p $PODIR -l "English"
# for future references: the windows code pages
# 874 — Thai
# 932 — Japanese
# 936 — Chinese (simplified) (PRC, Singapore)
# 949 — Korean
# 950 — Chinese (traditional) (Taiwan, Hong Kong)
# 1200 — Unicode (BMP of ISO 10646, UTF-16LE)
# 1201 — Unicode (BMP of ISO 10646, UTF-16BE)
# 1250 — Latin (Central European languages)
# 1251 — Cyrillic
# 1252 — Latin (Western European languages, replacing Code page 850)
# 1253 — Greek
# 1254 — Turkish
# 1255 — Hebrew
# 1256 — Arabic
# 1257 — Latin (Baltic languages)
# 1258 — Vietnamese
# convert file to proper content
cd $L10NDIR
iconv -t CP1252 -o German.nsh German.nsh
iconv -t CP1252 -o Basque.nsh Basque.nsh
iconv -t CP1252 -o English.nsh English.nsh
iconv -t CP1252 -o Galician.nsh Galician.nsh
iconv -t CP1253 -o Greek.nsh Greek.nsh
iconv -t CP1250 -o Slovenian.nsh Slovenian.nsh
iconv -t CP1257 -o Estonian.nsh Estonian.nsh
iconv -t CP1252 -o Italian.nsh Italian.nsh
iconv -t CP1252 -o PortugueseBR.nsh PortugueseBR.nsh
iconv -t CP1252 -o Spanish.nsh Spanish.nsh
iconv -t CP1252 -o Dutch.nsh Dutch.nsh
iconv -t CP1252 -o Finnish.nsh Finnish.nsh
iconv -t CP932 -o Japanese.nsh Japanese.nsh
iconv -t CP1250 -o Slovak.nsh Slovak.nsh
iconv -t CP1254 -o Turkish.nsh Turkish.nsh

View File

@@ -0,0 +1,43 @@
; Auto-generated - do not modify
Var MUI_FINISHPAGE_SHOWREADME_TEXT_STRING
Var ConfirmEndProcess_MESSAGEBOX_TEXT
Var ConfirmEndProcess_KILLING_PROCESSES_TEXT
Var ConfirmEndProcess_KILL_NOT_FOUND_TEXT
Var PageReinstall_NEW_Field_1
Var PageReinstall_NEW_Field_2
Var PageReinstall_NEW_Field_3
Var PageReinstall_NEW_MUI_HEADER_TEXT_TITLE
Var PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE
Var PageReinstall_OLD_Field_1
Var PageReinstall_SAME_Field_1
Var PageReinstall_SAME_Field_2
Var PageReinstall_SAME_Field_3
Var UNINSTALLER_APPDATA_TITLE
Var PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE
Var SEC_APPLICATION_DETAILS
Var OPTION_SECTION_SC_START_MENU_SECTION
Var OPTION_SECTION_SC_START_MENU_DetailPrint
Var OPTION_SECTION_SC_DESKTOP_SECTION
Var OPTION_SECTION_SC_DESKTOP_DetailPrint
Var OPTION_SECTION_SC_QUICK_LAUNCH_SECTION
Var OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint
Var OPTION_SECTION_SC_APPLICATION_Desc
Var OPTION_SECTION_SC_START_MENU_Desc
Var OPTION_SECTION_SC_DESKTOP_Desc
Var OPTION_SECTION_SC_QUICK_LAUNCH_Desc
Var UNINSTALLER_APPDATA_SUBTITLE
Var UNINSTALLER_APPDATA_LABEL_1
Var UNINSTALLER_APPDATA_LABEL_2
Var UNINSTALLER_APPDATA_CHECKBOX
Var UNINSTALLER_FILE_Detail
Var UNINSTALLER_REGISTRY_Detail
Var UNINSTALLER_FINISHED_Detail
Var UNINSTALL_MESSAGEBOX
Var UNINSTALL_ABORT
Var INIT_NO_QUICK_LAUNCH
Var UAC_ERROR_ELEVATE
Var UAC_INSTALLER_REQUIRE_ADMIN
Var INIT_INSTALLER_RUNNING
Var UAC_UNINSTALLER_REQUIRE_ADMIN
Var INIT_UNINSTALLER_RUNNING
Var SectionGroup_Shortcuts

View File

@@ -0,0 +1,16 @@
; Auto-generated - do not modify
!insertmacro MUI_LANGUAGE "PortugueseBR"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Estonian"
!insertmacro MUI_LANGUAGE "Finnish"
!insertmacro MUI_LANGUAGE "Turkish"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Slovenian"
!insertmacro MUI_LANGUAGE "Basque"
!insertmacro MUI_LANGUAGE "Japanese"
!insertmacro MUI_LANGUAGE "Galician"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Slovak"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Italian"

View File

@@ -0,0 +1,196 @@
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-09 06:40\n"
"PO-Revision-Date: 2013-12-03 23:13+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. MUI_FINISHPAGE_SHOWREADME_TEXT_STRING
msgid "Show release notes"
msgstr "Show release notes"
#. ConfirmEndProcess_MESSAGEBOX_TEXT
msgid ""
"Found ${processName} process(s) which need to be stopped.$\n"
"Do you want the installer to stop these for you?"
msgstr "Found ${processName} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?"
#. ConfirmEndProcess_KILLING_PROCESSES_TEXT
msgid "Killing ${processName} processes."
msgstr "Killing ${processName} processes."
#. ConfirmEndProcess_KILL_NOT_FOUND_TEXT
msgid "Process to kill not found!"
msgstr "Process to kill not found!"
#. PageReinstall_NEW_Field_1
msgid ""
"An older version of ${APPLICATION_NAME} is installed on your system. It is "
"recommended that you uninstall the current version before installing. Select"
" the operation you want to perform and click Next to continue."
msgstr "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
#. PageReinstall_NEW_Field_2
msgid "Uninstall before installing"
msgstr "Uninstall before installing"
#. PageReinstall_NEW_Field_3
msgid "Do not uninstall"
msgstr "Do not uninstall"
#. PageReinstall_NEW_MUI_HEADER_TEXT_TITLE
msgid "Already Installed"
msgstr "Already Installed"
#. PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE
msgid "Choose how you want to install ${APPLICATION_NAME}."
msgstr "Choose how you want to install ${APPLICATION_NAME}."
#. PageReinstall_OLD_Field_1
msgid ""
"A newer version of ${APPLICATION_NAME} is already installed! It is not "
"recommended that you install an older version. If you really want to install"
" this older version, it is better to uninstall the current version first. "
"Select the operation you want to perform and click Next to continue."
msgstr "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
#. PageReinstall_SAME_Field_1
msgid ""
"${APPLICATION_NAME} ${VERSION} is already installed.\r\n"
"Select the operation you want to perform and click Next to continue."
msgstr "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
#. PageReinstall_SAME_Field_2
msgid "Add/Reinstall components"
msgstr "Add/Reinstall components"
#. PageReinstall_SAME_Field_3 UNINSTALLER_APPDATA_TITLE
msgid "Uninstall ${APPLICATION_NAME}"
msgstr "Uninstall ${APPLICATION_NAME}"
#. PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE
msgid "Choose the maintenance option to perform."
msgstr "Choose the maintenance option to perform."
#. SEC_APPLICATION_DETAILS
msgid "Installing ${APPLICATION_NAME} essentials."
msgstr "Installing ${APPLICATION_NAME} essentials."
#. OPTION_SECTION_SC_START_MENU_SECTION
msgid "Start Menu Program Shortcut"
msgstr "Start Menu Program Shortcut"
#. OPTION_SECTION_SC_START_MENU_DetailPrint
msgid "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
msgstr "Adding shortcut for ${APPLICATION_NAME} to the Start Menu."
#. OPTION_SECTION_SC_DESKTOP_SECTION
msgid "Desktop Shortcut"
msgstr "Desktop Shortcut"
#. OPTION_SECTION_SC_DESKTOP_DetailPrint
msgid "Creating Desktop Shortcuts"
msgstr "Creating Desktop Shortcuts"
#. OPTION_SECTION_SC_QUICK_LAUNCH_SECTION
msgid "Quick Launch Shortcut"
msgstr "Quick Launch Shortcut"
#. OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint
msgid "Creating Quick Launch Shortcut"
msgstr "Creating Quick Launch Shortcut"
#. OPTION_SECTION_SC_APPLICATION_Desc
msgid "${APPLICATION_NAME} essentials."
msgstr "${APPLICATION_NAME} essentials."
#. OPTION_SECTION_SC_START_MENU_Desc
msgid "${APPLICATION_NAME} shortcut."
msgstr "${APPLICATION_NAME} shortcut."
#. OPTION_SECTION_SC_DESKTOP_Desc
msgid "Desktop shortcut for ${APPLICATION_NAME}."
msgstr "Desktop shortcut for ${APPLICATION_NAME}."
#. OPTION_SECTION_SC_QUICK_LAUNCH_Desc
msgid "Quick Launch shortcut for ${APPLICATION_NAME}."
msgstr "Quick Launch shortcut for ${APPLICATION_NAME}."
#. UNINSTALLER_APPDATA_SUBTITLE
msgid "Remove ${APPLICATION_NAME}'s data folder from your computer."
msgstr "Remove ${APPLICATION_NAME}'s data folder from your computer."
#. UNINSTALLER_APPDATA_LABEL_1
msgid "Do you want to delete ${APPLICATION_NAME}'s data folder?"
msgstr "Do you want to delete ${APPLICATION_NAME}'s data folder?"
#. UNINSTALLER_APPDATA_LABEL_2
msgid ""
"Leave unchecked to keep the data folder for later use or check to delete the"
" data folder."
msgstr "Leave unchecked to keep the data folder for later use or check to delete the data folder."
#. UNINSTALLER_APPDATA_CHECKBOX
msgid "Yes, delete this data folder."
msgstr "Yes, delete this data folder."
#. UNINSTALLER_FILE_Detail
msgid "Writing Uninstaller"
msgstr "Writing Uninstaller"
#. UNINSTALLER_REGISTRY_Detail
msgid "Writing Installer Registry Keys"
msgstr "Writing Installer Registry Keys"
#. UNINSTALLER_FINISHED_Detail
msgid "Finished"
msgstr "Finished"
#. UNINSTALL_MESSAGEBOX
msgid ""
"It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r"
"$\n"
"Continue anyway (not recommended)?"
msgstr "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?"
#. UNINSTALL_ABORT
msgid "Uninstall aborted by user"
msgstr "Uninstall aborted by user"
#. INIT_NO_QUICK_LAUNCH
msgid "Quick Launch Shortcut (N/A)"
msgstr "Quick Launch Shortcut (N/A)"
#. UAC_ERROR_ELEVATE
msgid "Unable to elevate, error:"
msgstr "Unable to elevate, error:"
#. UAC_INSTALLER_REQUIRE_ADMIN
msgid "This installer requires admin access, try again"
msgstr "This installer requires admin access, try again"
#. INIT_INSTALLER_RUNNING
msgid "The installer is already running."
msgstr "The installer is already running."
#. UAC_UNINSTALLER_REQUIRE_ADMIN
msgid "This uninstaller requires admin access, try again"
msgstr "This uninstaller requires admin access, try again"
#. INIT_UNINSTALLER_RUNNING
msgid "The uninstaller is already running."
msgstr "The uninstaller is already running."
#. SectionGroup_Shortcuts
msgid "Shortcuts"
msgstr "Shortcuts"

View File

@@ -5,7 +5,6 @@ This sample uses the registry plugin, so you need to download that if you don't
!define APPNAME "UAC_RealWorldFullyLoadedDualMode"
!define ELEVATIONTITLE "${APPNAME}: Elevate" ;displayed during elevation on our custom page
!define SMSUBDIR $StartMenuFolder ;"${APPNAME}"
!define UNINSTALLER_NAME "Uninstall ${APPNAME}.exe"
!define UNINSTALLER_REGSECTION "${APPNAME}"
!define RegPath.MSUninstall "Software\Microsoft\Windows\CurrentVersion\Uninstall"
@@ -200,10 +199,7 @@ UAC::Exec "" "Notepad.exe" "$Windir\Win.INI" "$InstDir"
FunctionEnd
Function CreateSMShortcuts
StrCpy ${SMSUBDIR} $9 ;stupid sync
CreateDirectory "$SMPrograms\${SMSUBDIR}"
CreateShortcut "$SMPrograms\${SMSUBDIR}\${APPNAME}.lnk" "$Windir\Notepad.exe"
CreateShortcut "$SMPrograms\${SMSUBDIR}\Uninstall ${APPNAME}.lnk" "$InstDir\${UNINSTALLER_NAME}"
CreateShortcut "$SMPrograms\${APPNAME}.lnk" "$Windir\Notepad.exe"
FunctionEnd
Function CreateDeskShortcuts
CreateShortcut "$Desktop\${APPNAME}.lnk" "$Windir\Notepad.exe"
@@ -222,7 +218,6 @@ ${registry::Unload}
SectionEnd
Section "Startmenu Shortcuts"
StrCpy $9 ${SMSUBDIR} ;this is stupid as hell, we need correct ${SMSUBDIR} in the outer process, this is the only way (plugins cannot enum "custom" var's AFAIK)
${UAC.CallFunctionAsUser} CreateSMShortcuts
SectionEnd
Section "Desktop Shortcut"
@@ -231,9 +226,7 @@ SectionEnd
Section Uninstall
Delete "$InstDir\${UNINSTALLER_NAME}"
Delete "$SMPrograms\${SMSUBDIR}\${APPNAME}.lnk"
Delete "$SMPrograms\${SMSUBDIR}\Uninstall ${APPNAME}.lnk"
RMDir "$SMPrograms\${SMSUBDIR}"
Delete "$SMPrograms\${APPNAME}.lnk"
Delete "$Desktop\${APPNAME}.lnk"
RMDir "$InstDir"

View File

@@ -0,0 +1,108 @@
if (UNIX)
# Suffix for Linux
SET(LIB_SUFFIX
CACHE STRING "Define suffix of directory name (32/64)"
)
SET(EXEC_INSTALL_PREFIX
"${CMAKE_INSTALL_PREFIX}"
CACHE PATH "Base directory for executables and libraries"
)
SET(SHARE_INSTALL_PREFIX
"${CMAKE_INSTALL_PREFIX}/share"
CACHE PATH "Base directory for files which go to share/"
)
SET(DATA_INSTALL_PREFIX
"${SHARE_INSTALL_PREFIX}/${APPLICATION_SHORT_NAME}"
CACHE PATH "The parent directory where applications can install their data")
# The following are directories where stuff will be installed to
SET(BIN_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/bin"
CACHE PATH "The ${APPLICATION_SHORT_NAME} binary install dir (default prefix/bin)"
)
SET(SBIN_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/sbin"
CACHE PATH "The ${APPLICATION_SHORT_NAME} sbin install dir (default prefix/sbin)"
)
SET(LIB_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)"
)
SET(LIBEXEC_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/libexec"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)"
)
SET(PLUGIN_INSTALL_DIR
"${LIB_INSTALL_DIR}/${APPLICATION_SHORT_NAME}"
CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${APPLICATION_SHORT_NAME})"
)
SET(INCLUDE_INSTALL_DIR
"${CMAKE_INSTALL_PREFIX}/include"
CACHE PATH "The subdirectory to the header prefix (default prefix/include)"
)
SET(DATA_INSTALL_DIR
"${DATA_INSTALL_PREFIX}"
CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_SHORT_NAME})"
)
SET(HTML_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/doc/HTML"
CACHE PATH "The HTML install dir for documentation (default data/doc/html)"
)
SET(ICON_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/icons"
CACHE PATH "The icon install dir (default data/icons/)"
)
SET(SOUND_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/sounds"
CACHE PATH "The install dir for sound files (default data/sounds)"
)
SET(LOCALE_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/locale"
CACHE PATH "The install dir for translations (default prefix/share/locale)"
)
SET(XDG_APPS_DIR
"${SHARE_INSTALL_PREFIX}/applications/"
CACHE PATH "The XDG apps dir"
)
SET(XDG_DIRECTORY_DIR
"${SHARE_INSTALL_PREFIX}/desktop-directories"
CACHE PATH "The XDG directory"
)
IF(NOT "${EXEC_INSTALL_PREFIX}" STREQUAL "/usr")
SET(SYSCONFDIR_INSTALL_PREFIX "${EXEC_INSTALL_PREFIX}")
endif()
SET(SYSCONF_INSTALL_DIR
"${SYSCONFDIR_INSTALL_PREFIX}/etc"
CACHE PATH "The ${APPLICATION_SHORT_NAME} sysconfig install dir (default prefix/etc)"
)
SET(MAN_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/man"
CACHE PATH "The ${APPLICATION_SHORT_NAME} man install dir (default prefix/man)"
)
SET(INFO_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/info"
CACHE PATH "The ${APPLICATION_SHORT_NAME} info install dir (default prefix/info)"
)
endif (UNIX)
if (WIN32)
# Same same
set(SHARE_INSTALL_PREFIX "share" CACHE PATH "-")
set(BIN_INSTALL_DIR "." CACHE PATH "-")
set(SBIN_INSTALL_DIR "." CACHE PATH "-")
set(LIB_INSTALL_DIR "lib" CACHE PATH "-")
set(INCLUDE_INSTALL_DIR "include" CACHE PATH "-")
set(PLUGIN_INSTALL_DIR "plugins" CACHE PATH "-")
set(HTML_INSTALL_DIR "doc/HTML" CACHE PATH "-")
set(ICON_INSTALL_DIR "." CACHE PATH "-")
set(SOUND_INSTALL_DIR "." CACHE PATH "-")
set(LOCALE_INSTALL_DIR "lang" CACHE PATH "-")
set(SYSCONF_INSTALL_DIR "config" CACHE PATH "-")
set(MAN_INSTALL_DIR "man" CACHE PATH "-")
endif (WIN32)

View File

@@ -0,0 +1,73 @@
# - Try to find Neon
# Once done this will define
#
# NEON_FOUND - system has Neon
# NEON_INCLUDE_DIRS - the Neon include directory
# NEON_LIBRARIES - Link these to use Neon
# NEON_DEFINITIONS - Compiler switches required for using Neon
#
# Copyright (c) 2011 Andreas Schneider <asn@cryptomilk.org>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_NEON neon)
endif (PKG_CONFIG_FOUND)
include(GNUInstallDirs)
find_path(NEON_INCLUDE_DIRS
NAMES
neon/ne_basic.h
HINTS
${_NEON_INCLUDEDIR}
${CMAKE_INSTALL_INCLUDEDIR}
)
find_library(NEON_LIBRARIES
NAMES
neon
HINTS
${_NEON_LIBDIR}
${CMAKE_INSTALL_LIBDIR}
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Neon DEFAULT_MSG NEON_LIBRARIES NEON_INCLUDE_DIRS)
# show the NEON_INCLUDE_DIRS and NEON_LIBRARIES variables only in the advanced view
mark_as_advanced(NEON_INCLUDE_DIRS NEON_LIBRARIES)
# Check if neon was compiled with LFS support, if so, the NE_LFS variable has to
# be defined in the owncloud module.
# If neon was not compiled with LFS its also ok since the underlying system
# than probably supports large files anyway.
IF( CMAKE_FIND_ROOT_PATH )
FIND_PROGRAM( NEON_CONFIG_EXECUTABLE NAMES neon-config HINTS ${CMAKE_FIND_ROOT_PATH}/bin )
ELSE( CMAKE_FIND_ROOT_PATH )
FIND_PROGRAM( NEON_CONFIG_EXECUTABLE NAMES neon-config )
ENDIF( CMAKE_FIND_ROOT_PATH )
IF ( NEON_CONFIG_EXECUTABLE )
MESSAGE(STATUS "neon-config executable: ${NEON_CONFIG_EXECUTABLE}")
# neon-config --support lfs
EXECUTE_PROCESS( COMMAND ${NEON_CONFIG_EXECUTABLE} "--support" "lfs"
RESULT_VARIABLE LFS
OUTPUT_STRIP_TRAILING_WHITESPACE )
IF (LFS EQUAL 0)
MESSAGE(STATUS "libneon has been compiled with LFS support")
SET(NEON_WITH_LFS 1)
ELSE (LFS EQUAL 0)
MESSAGE(STATUS "libneon has not been compiled with LFS support, rely on OS")
ENDIF (LFS EQUAL 0)
ELSE ( NEON_CONFIG_EXECUTABLE )
MESSAGE(STATUS, "neon-config could not be found.")
ENDIF ( NEON_CONFIG_EXECUTABLE )

View File

@@ -17,15 +17,15 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>@APPLICATION_NAME@ @VERSION@</string>
<string>@APPLICATION_NAME@ @MIRALL_VERSION_STRING@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<string>@VERSION_FULL@</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<string>@VERSION_FULL@</string>
<key>NSHumanReadableCopyright</key>
<string>(C) 2012 @APPLICATION_VENDOR@</string>
</dict>

View File

@@ -0,0 +1,157 @@
# This file defines the Feature Logging macros.
#
# MACRO_LOG_FEATURE(VAR FEATURE DESCRIPTION URL [REQUIRED [MIN_VERSION [COMMENTS]]])
# Logs the information so that it can be displayed at the end
# of the configure run
# VAR : TRUE or FALSE, indicating whether the feature is supported
# FEATURE: name of the feature, e.g. "libjpeg"
# DESCRIPTION: description what this feature provides
# URL: home page
# REQUIRED: TRUE or FALSE, indicating whether the featue is required
# MIN_VERSION: minimum version number. empty string if unneeded
# COMMENTS: More info you may want to provide. empty string if unnecessary
#
# MACRO_DISPLAY_FEATURE_LOG()
# Call this to display the collected results.
# Exits CMake with a FATAL error message if a required feature is missing
#
# Example:
#
# INCLUDE(MacroLogFeature)
#
# FIND_PACKAGE(JPEG)
# MACRO_LOG_FEATURE(JPEG_FOUND "libjpeg" "Support JPEG images" "http://www.ijg.org" TRUE "3.2a" "")
# ...
# MACRO_DISPLAY_FEATURE_LOG()
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
# Copyright (c) 2006, Allen Winter, <winter@kde.org>
# Copyright (c) 2009, Sebastian Trueg, <trueg@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (NOT _macroLogFeatureAlreadyIncluded)
SET(_file ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_file ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
IF (EXISTS ${_file})
FILE(REMOVE ${_file})
ENDIF (EXISTS ${_file})
SET(_macroLogFeatureAlreadyIncluded TRUE)
INCLUDE(FeatureSummary)
ENDIF (NOT _macroLogFeatureAlreadyIncluded)
MACRO(MACRO_LOG_FEATURE _var _package _description _url ) # _required _minvers _comments)
STRING(TOUPPER "${ARGV4}" _required)
SET(_minvers "${ARGV5}")
SET(_comments "${ARGV6}")
IF (${_var})
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
ELSE (${_var})
IF ("${_required}" STREQUAL "TRUE")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
ELSE ("${_required}" STREQUAL "TRUE")
SET(_LOGFILENAME ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
ENDIF ("${_required}" STREQUAL "TRUE")
ENDIF (${_var})
SET(_logtext " * ${_package}")
IF (NOT ${_var})
IF (${_minvers} MATCHES ".*")
SET(_logtext "${_logtext} (${_minvers} or higher)")
ENDIF (${_minvers} MATCHES ".*")
SET(_logtext "${_logtext} <${_url}>\n ")
ELSE (NOT ${_var})
SET(_logtext "${_logtext} - ")
ENDIF (NOT ${_var})
SET(_logtext "${_logtext}${_description}")
IF (NOT ${_var})
IF (${_comments} MATCHES ".*")
SET(_logtext "${_logtext}\n ${_comments}")
ENDIF (${_comments} MATCHES ".*")
# SET(_logtext "${_logtext}\n") #double-space missing features?
ENDIF (NOT ${_var})
FILE(APPEND "${_LOGFILENAME}" "${_logtext}\n")
IF(COMMAND SET_PACKAGE_INFO) # in FeatureSummary.cmake since CMake 2.8.3
SET_PACKAGE_INFO("${_package}" "\"${_description}\"" "${_url}" "\"${_comments}\"")
ENDIF(COMMAND SET_PACKAGE_INFO)
ENDMACRO(MACRO_LOG_FEATURE)
MACRO(MACRO_DISPLAY_FEATURE_LOG)
IF(COMMAND FEATURE_SUMMARY) # in FeatureSummary.cmake since CMake 2.8.3
FEATURE_SUMMARY(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/FindPackageLog.txt
WHAT ALL)
ENDIF(COMMAND FEATURE_SUMMARY)
SET(_missingFile ${CMAKE_BINARY_DIR}/MissingRequirements.txt)
SET(_enabledFile ${CMAKE_BINARY_DIR}/EnabledFeatures.txt)
SET(_disabledFile ${CMAKE_BINARY_DIR}/DisabledFeatures.txt)
IF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
SET(_printSummary TRUE)
ENDIF (EXISTS ${_missingFile} OR EXISTS ${_enabledFile} OR EXISTS ${_disabledFile})
IF(_printSummary)
SET(_missingDeps 0)
IF (EXISTS ${_enabledFile})
FILE(READ ${_enabledFile} _enabled)
FILE(REMOVE ${_enabledFile})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following external packages were located on your system.\n-- This installation will have the extra features provided by these packages.\n-----------------------------------------------------------------------------\n${_enabled}")
ENDIF (EXISTS ${_enabledFile})
IF (EXISTS ${_disabledFile})
SET(_missingDeps 1)
FILE(READ ${_disabledFile} _disabled)
FILE(REMOVE ${_disabledFile})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following OPTIONAL packages could NOT be located on your system.\n-- Consider installing them to enable more features from this software.\n-----------------------------------------------------------------------------\n${_disabled}")
ENDIF (EXISTS ${_disabledFile})
IF (EXISTS ${_missingFile})
SET(_missingDeps 1)
FILE(READ ${_missingFile} _requirements)
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- The following REQUIRED packages could NOT be located on your system.\n-- You must install these packages before continuing.\n-----------------------------------------------------------------------------\n${_requirements}")
FILE(REMOVE ${_missingFile})
SET(_haveMissingReq 1)
ENDIF (EXISTS ${_missingFile})
IF (NOT ${_missingDeps})
SET(_summary "${_summary}\n-----------------------------------------------------------------------------\n-- Congratulations! All external packages have been found.")
ENDIF (NOT ${_missingDeps})
MESSAGE(${_summary})
MESSAGE("-----------------------------------------------------------------------------\n")
IF(_haveMissingReq)
MESSAGE(FATAL_ERROR "Exiting: Missing Requirements")
ENDIF(_haveMissingReq)
ENDIF(_printSummary)
ENDMACRO(MACRO_DISPLAY_FEATURE_LOG)

View File

@@ -0,0 +1,47 @@
# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
# MACRO_OPTIONAL_FIND_PACKAGE( <name> [QUIT] )
# This macro is a combination of OPTION() and FIND_PACKAGE(), it
# works like FIND_PACKAGE(), but additionally it automatically creates
# an option name WITH_<name>, which can be disabled via the cmake GUI.
# or via -DWITH_<name>=OFF
# The standard <name>_FOUND variables can be used in the same way
# as when using the normal FIND_PACKAGE()
# Copyright (c) 2006-2010 Alexander Neundorf, <neundorf@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# This is just a helper macro to set a bunch of variables empty.
# We don't know whether the package uses UPPERCASENAME or CamelCaseName, so we try both:
macro(_MOFP_SET_EMPTY_IF_DEFINED _name _var)
if(DEFINED ${_name}_${_var})
set(${_name}_${_var} "")
endif(DEFINED ${_name}_${_var})
string(TOUPPER ${_name} _nameUpper)
if(DEFINED ${_nameUpper}_${_var})
set(${_nameUpper}_${_var} "")
endif(DEFINED ${_nameUpper}_${_var})
endmacro(_MOFP_SET_EMPTY_IF_DEFINED _package _var)
macro (MACRO_OPTIONAL_FIND_PACKAGE _name )
option(WITH_${_name} "Search for ${_name} package" ON)
if (WITH_${_name})
find_package(${_name} ${ARGN})
else (WITH_${_name})
string(TOUPPER ${_name} _nameUpper)
set(${_name}_FOUND FALSE)
set(${_nameUpper}_FOUND FALSE)
_mofp_set_empty_if_defined(${_name} INCLUDE_DIRS)
_mofp_set_empty_if_defined(${_name} INCLUDE_DIR)
_mofp_set_empty_if_defined(${_name} INCLUDES)
_mofp_set_empty_if_defined(${_name} LIBRARY)
_mofp_set_empty_if_defined(${_name} LIBRARIES)
_mofp_set_empty_if_defined(${_name} LIBS)
_mofp_set_empty_if_defined(${_name} FLAGS)
_mofp_set_empty_if_defined(${_name} DEFINITIONS)
endif (WITH_${_name})
endmacro (MACRO_OPTIONAL_FIND_PACKAGE)

View File

@@ -1,6 +1,6 @@
;ownCloud installer script.
!define APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@"
!define APPLICATION_SHORTNAME "@APPLICATION_EXECUTABLE@"
!define APPLICATION_NAME "@APPLICATION_NAME@"
!define APPLICATION_VENDOR "@APPLICATION_VENDOR@"
!define APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@.exe"
@@ -18,7 +18,6 @@
!define OPTION_SECTION_SC_START_MENU
!define OPTION_SECTION_SC_DESKTOP
!define OPTION_SECTION_SC_QUICK_LAUNCH
!define OPTION_SECTION_SC_AUTOSTART
!define OPTION_FINISHPAGE
!define OPTION_FINISHPAGE_LAUNCHER
; !define OPTION_FINISHPAGE_RELEASE_NOTES
@@ -40,7 +39,6 @@
!define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt4/plugins/imageformats"
!define CSYNC_LIBRARY_DIR "@CSYNC_LIBRARY_DIR@"
!define CSYNC_PLUGIN_DIR "@CSYNC_PLUGIN_DIR@"
!define CSYNC_CONFIG_DIR "@CSYNC_CONFIG_DIR@"
!define NSI_PATH "${source_path}/admin/win/nsi"
@@ -51,7 +49,8 @@
!define VER_MAJOR "@CPACK_PACKAGE_VERSION_MAJOR@"
!define VER_MINOR "@CPACK_PACKAGE_VERSION_MINOR@"
!define VER_BUILD "@CPACK_PACKAGE_VERSION_PATCH@"
!define VER_PATCH "@CPACK_PACKAGE_VERSION_PATCH@"
!define VER_BUILD "@CPACK_PACKAGE_VERSION_BUILD@"
!define VERSION "@CPACK_PACKAGE_VERSION@"
;-----------------------------------------------------------------------------
@@ -112,7 +111,7 @@ ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
!ifdef OPTION_FINISHPAGE_RELEASE_NOTES
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NOTES.txt"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Show release notes"
!define MUI_FINISHPAGE_SHOWREADME_TEXT $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING
!endif
!ifdef OPTION_FINISHPAGE_LAUNCHER
!define MUI_FINISHPAGE_NOAUTOCLOSE
@@ -143,6 +142,9 @@ UninstPage custom un.UnPageUserAppData un.UnPageUserAppDataLeave
;-----------------------------------------------------------------------------
!insertmacro MUI_LANGUAGE "English"
!include ${source_path}/admin/win/nsi/l10n/languages.nsh
!include ${source_path}/admin/win/nsi/l10n/declarations.nsh
##############################################################################
# #
# FINISH PAGE LAUNCHER FUNCTIONS #
@@ -170,14 +172,14 @@ FunctionEnd
!macro ConfirmEndProcess processName
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
"Found ${processName} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?" \
$ConfirmEndProcess_MESSAGEBOX_TEXT \
IDYES process_${processName}_kill IDNO process_${processName}_ended
process_${processName}_kill:
DetailPrint "Killing ${processName} processes."
DetailPrint $ConfirmEndProcess_KILLING_PROCESSES_TEXT
Processes::KillProcess ${processName}
Sleep 1500
StrCmp $R0 "1" process_${processName}_ended
DetailPrint "Process to kill not found!"
DetailPrint $ConfirmEndProcess_KILL_NOT_FOUND_TEXT
process_${processName}_ended:
!macroend
@@ -207,32 +209,35 @@ Function PageReinstall
IntCmp $R0 ${VER_MAJOR} minor_check new_version older_version
minor_check:
ReadRegDWORD $R0 HKLM "Software\${APPLICATION_NAME}" "VersionMinor"
IntCmp $R0 ${VER_MINOR} build_check new_version older_version
IntCmp $R0 ${VER_MINOR} rev_check new_version older_version
rev_check:
ReadRegDWORD $R0 HKLM "Software\${APPLICATION_NAME}" "VersionRevision"
IntCmp $R0 ${VER_PATCH} build_check new_version older_version
build_check:
ReadRegDWORD $R0 HKLM "Software\${APPLICATION_NAME}" "VersionBuild"
IntCmp $R0 ${VER_BUILD} same_version new_version older_version
new_version:
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "An older version of ${APPLICATION_NAME} is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install ${APPLICATION_NAME}."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_NEW_Field_1
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_NEW_Field_2
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_NEW_Field_3
!insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE
StrCpy $R0 "1"
Goto reinst_start
older_version:
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "A newer version of ${APPLICATION_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install ${APPLICATION_NAME}."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_OLD_Field_1
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_OLD_Field_2
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_OLD_Field_3
!insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_OLD_MUI_HEADER_TEXT_SUBTITLE
StrCpy $R0 "1"
Goto reinst_start
same_version:
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "${APPLICATION_NAME} ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Add/Reinstall components"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Uninstall ${APPLICATION_NAME}"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose the maintenance option to perform."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" $PageReinstall_SAME_Field_1
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" $PageReinstall_SAME_Field_2
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" $PageReinstall_SAME_Field_3
!insertmacro MUI_HEADER_TEXT $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE
StrCpy $R0 "2"
reinst_start:
@@ -272,7 +277,7 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
SetDetailsPrint listonly
SetDetailsPrint textonly
DetailPrint "Installing ${APPLICATION_NAME} essentials."
DetailPrint $SEC_APPLICATION_DETAILS
SetDetailsPrint listonly
SetOutPath "$INSTDIR"
@@ -283,90 +288,24 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
!ifndef INSTALL_PATH
;Main executable.
File "${BUILD_PATH}\bin\${APPLICATION_EXECUTABLE}"
File "${BUILD_PATH}\src\libowncloudsync.dll"
File "${BUILD_PATH}\src\lib${APPLICATION_SHORTNAME}sync.dll"
File "${BUILD_PATH}\src\mirall_ca.qm"
File "${BUILD_PATH}\src\mirall_cs_CZ.qm"
File "${BUILD_PATH}\src\mirall_da.qm"
File "${BUILD_PATH}\src\mirall_de.qm"
File "${BUILD_PATH}\src\mirall_el.qm"
File "${BUILD_PATH}\src\mirall_en.qm"
File "${BUILD_PATH}\src\mirall_eo.qm"
File "${BUILD_PATH}\src\mirall_es.qm"
File "${BUILD_PATH}\src\mirall_es_AR.qm"
File "${BUILD_PATH}\src\mirall_et_EE.qm"
File "${BUILD_PATH}\src\mirall_eu.qm"
File "${BUILD_PATH}\src\mirall_fa.qm"
File "${BUILD_PATH}\src\mirall_fi_FI.qm"
File "${BUILD_PATH}\src\mirall_fr.qm"
File "${BUILD_PATH}\src\mirall_gl.qm"
File "${BUILD_PATH}\src\mirall_he.qm"
File "${BUILD_PATH}\src\mirall_hr.qm"
File "${BUILD_PATH}\src\mirall_hu_HU.qm"
File "${BUILD_PATH}\src\mirall_it.qm"
File "${BUILD_PATH}\src\mirall_ja_JP.qm"
File "${BUILD_PATH}\src\mirall_ko.qm"
File "${BUILD_PATH}\src\mirall_lb.qm"
File "${BUILD_PATH}\src\mirall_lt_LT.qm"
File "${BUILD_PATH}\src\mirall_lv.qm"
File "${BUILD_PATH}\src\mirall_mk.qm"
File "${BUILD_PATH}\src\mirall_ms_MY.qm"
File "${BUILD_PATH}\src\mirall_nb_NO.qm"
File "${BUILD_PATH}\src\mirall_nl.qm"
File "${BUILD_PATH}\src\mirall_oc.qm"
File "${BUILD_PATH}\src\mirall_pl.qm"
File "${BUILD_PATH}\src\mirall_pt_BR.qm"
File "${BUILD_PATH}\src\mirall_pt_PT.qm"
File "${BUILD_PATH}\src\mirall_ro.qm"
File "${BUILD_PATH}\src\mirall_ru.qm"
File "${BUILD_PATH}\src\mirall_ru_RU.qm"
File "${BUILD_PATH}\src\mirall_si_LK.qm"
File "${BUILD_PATH}\src\mirall_sk_SK.qm"
File "${BUILD_PATH}\src\mirall_sl.qm"
File "${BUILD_PATH}\src\mirall_sr@latin.qm"
File "${BUILD_PATH}\src\mirall_sv.qm"
File "${BUILD_PATH}\src\mirall_ta_LK.qm"
File "${BUILD_PATH}\src\mirall_th_TH.qm"
File "${BUILD_PATH}\src\mirall_tr.qm"
File "${BUILD_PATH}\src\mirall_uk.qm"
File "${BUILD_PATH}\src\mirall_vi.qm"
File "${BUILD_PATH}\src\mirall_zh_CN.qm"
File "${BUILD_PATH}\src\mirall_zh_TW.qm"
#File "${MING_SHARE}\qt4\translations\qt_ar.qm"
File "${MING_SHARE}\qt4\translations\qt_cs.qm"
File "${MING_SHARE}\qt4\translations\qt_da.qm"
File "${MING_SHARE}\qt4\translations\qt_de.qm"
File "${MING_SHARE}\qt4\translations\qt_es.qm"
File "${MING_SHARE}\qt4\translations\qt_fa.qm"
File "${MING_SHARE}\qt4\translations\qt_fr.qm"
File "${MING_SHARE}\qt4\translations\qt_gl.qm"
File "${MING_SHARE}\qt4\translations\qt_he.qm"
File "${MING_SHARE}\qt4\translations\qt_hu.qm"
File "${MING_SHARE}\qt4\translations\qt_ja.qm"
File "${MING_SHARE}\qt4\translations\qt_ko.qm"
File "${MING_SHARE}\qt4\translations\qt_lt.qm"
File "${MING_SHARE}\qt4\translations\qt_pl.qm"
File "${MING_SHARE}\qt4\translations\qt_pt.qm"
File "${MING_SHARE}\qt4\translations\qt_ru.qm"
File "${MING_SHARE}\qt4\translations\qt_sk.qm"
File "${MING_SHARE}\qt4\translations\qt_sl.qm"
File "${MING_SHARE}\qt4\translations\qt_sv.qm"
File "${MING_SHARE}\qt4\translations\qt_uk.qm"
File "${MING_SHARE}\qt4\translations\qt_zh_CN.qm"
File "${MING_SHARE}\qt4\translations\qt_zh_TW.qm"
File "${MING_SHARE}\qt4\translations\qt_zh_TW.qm"
File "${MING_SHARE}\qt4\translations\qtkeychain_de.qm"
File "${BUILD_PATH}\src\mirall_*.qm"
; Make sure only to copy qt, not qt_help, etc
File "${MING_SHARE}\qt4\translations\qt_??.qm"
File "${MING_SHARE}\qt4\translations\qt_??_??.qm"
File "${MING_SHARE}\qt4\translations\qtkeychain_*.qm"
SetOutPath "$INSTDIR\accessible"
File "${ACCESSIBLE_DLL_PATH}\qtaccessiblewidgets4.dll"
SetOutPath "$INSTDIR\imageformats"
File "${IMAGEFORMATS_DLL_PATH}\qgif4.dll"
File "${IMAGEFORMATS_DLL_PATH}\qjpeg4.dll"
File "${IMAGEFORMATS_DLL_PATH}\qico4.dll"
SetOutPath "$INSTDIR\modules"
; FIXME: fix installation dir of module, currently needs manual copying to
; /usr/i686-w64-mingw32/sys-root/mingw/bin/csync_modules/
SetOutPath "$INSTDIR\sqldrivers"
File "${SQLITE_DLL_PATH}\qsqlite4.dll"
File "${CSYNC_PLUGIN_DIR}/ocsync_owncloud.dll"
SetOutPath "$INSTDIR"
!endif
@@ -374,21 +313,21 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
;License & release notes.
File "@CPACK_RESOURCE_FILE_LICENSE@"
File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt
;File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt
;QT stuff:
File "${QT_DLL_PATH}\QtCore4.dll"
File "${QT_DLL_PATH}\QtGui4.dll"
File "${QT_DLL_PATH}\QtNetwork4.dll"
File "${QT_DLL_PATH}\QtSql4.dll"
File "${QT_DLL_PATH}\QtXml4.dll"
File "${QT_DLL_PATH}\QtWebKit4.dll"
;QtKeyChain stuff
File "${MING_BIN}\libqtkeychain.dll"
File "${CSYNC_LIBRARY_DIR}/libocsync.dll"
File "${CSYNC_LIBRARY_DIR}\libocsync.dll"
File "${MING_BIN}\libsqlite3-0.dll"
File "${MING_BIN}\libiniparser.dll"
File "${MING_BIN}\libdl.dll"
File "${MING_BIN}\libpng15-15.dll"
; ownCloud plugin
@@ -404,7 +343,7 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
; Other
;File "${MING_BIN}\libpng15-15.dll"
;File "${MING_BIN}\libjpeg-8.dll"
File "${MING_BIN}\libjpeg-8.dll"
File "${MING_BIN}\zlib1.dll"
File "${MING_BIN}\libcrypto-10.dll"
File "${MING_BIN}\libssl-10.dll"
@@ -414,40 +353,35 @@ Section "${APPLICATION_NAME}" SEC_APPLICATION
SectionEnd
SectionGroup "Shortcuts"
SectionGroup $SectionGroup_Shortcuts
!ifdef OPTION_SECTION_SC_START_MENU
${MementoSection} "Start Menu Program Group" SEC_START_MENU
${MementoSection} $OPTION_SECTION_SC_START_MENU_SECTION SEC_START_MENU
SectionIn 1 2 3
SetDetailsPrint textonly
DetailPrint "Adding shortcuts for the ${APPLICATION_NAME} program group to the Start Menu."
DetailPrint $OPTION_SECTION_SC_START_MENU_DetailPrint
SetDetailsPrint listonly
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${APPLICATION_NAME}"
CreateDirectory "$SMPROGRAMS\${APPLICATION_NAME}"
CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}\LICENSE.lnk" "$INSTDIR\LICENSE.txt"
CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}\Release notes.lnk" "$INSTDIR\NOTES.txt"
CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe"
CreateShortCut "$SMPROGRAMS\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
SetShellVarContext current
${MementoSectionEnd}
!endif
!ifdef OPTION_SECTION_SC_DESKTOP
${MementoSection} "Desktop Shortcut" SEC_DESKTOP
${MementoSection} $OPTION_SECTION_SC_DESKTOP_SECTION SEC_DESKTOP
SectionIn 1 2
SetDetailsPrint textonly
DetailPrint "Creating Desktop Shortcuts"
DetailPrint $OPTION_SECTION_SC_DESKTOP_DetailPrint
SetDetailsPrint listonly
CreateShortCut "$DESKTOP\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
${MementoSectionEnd}
!endif
!ifdef OPTION_SECTION_SC_QUICK_LAUNCH
${MementoSection} "Quick Launch Shortcut" SEC_QUICK_LAUNCH
${MementoSection} $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION SEC_QUICK_LAUNCH
SectionIn 1 2
SetDetailsPrint textonly
DetailPrint "Creating Quick Launch Shortcut"
DetailPrint $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint
SetDetailsPrint listonly
CreateShortCut "$QUICKLAUNCH\${APPLICATION_NAME}.lnk" "$INSTDIR\${APPLICATION_EXECUTABLE}"
${MementoSectionEnd}
@@ -455,47 +389,36 @@ SectionGroup "Shortcuts"
SectionGroupEnd
!ifdef OPTION_SECTION_SC_AUTOSTART
${MementoSection} "Autostart" SEC_AUTOSTART
SectionIn 1 2
SetDetailsPrint textonly
DetailPrint "Creating Windows Start Entry"
SetDetailsPrint listonly
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Run" \
"${APPLICATION_NAME}" "$INSTDIR\${APPLICATION_EXECUTABLE}"
${MementoSectionEnd}
!endif
${MementoSectionDone}
; Installer section descriptions
;--------------------------------
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_APPLICATION} "${APPLICATION_NAME} essentials."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_START_MENU} "${APPLICATION_NAME} program group."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOP} "Desktop shortcut for ${APPLICATION_NAME}."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_QUICK_LAUNCH} "Quick Launch shortcut for ${APPLICATION_NAME}."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_AUTOSTART} "Register ${APPLICATION_NAME} to run on Windows startup."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_APPLICATION} $OPTION_SECTION_SC_APPLICATION_Desc
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_START_MENU} $OPTION_SECTION_SC_START_MENU_Desc
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOP} $OPTION_SECTION_SC_DESKTOP_Desc
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_QUICK_LAUNCH} $OPTION_SECTION_SC_QUICK_LAUNCH_Desc
!insertmacro MUI_FUNCTION_DESCRIPTION_END
Section -post
;Uninstaller file.
SetDetailsPrint textonly
DetailPrint "Writing Uninstaller"
DetailPrint $UNINSTALLER_FILE_Detail
SetDetailsPrint listonly
WriteUninstaller $INSTDIR\uninstall.exe
;Registry keys required for installer version handling and uninstaller.
SetDetailsPrint textonly
DetailPrint "Writing Installer Registry Keys"
DetailPrint $UNINSTALLER_REGISTRY_Detail
SetDetailsPrint listonly
;Version numbers used to detect existing installation version for comparisson.
WriteRegStr HKLM "Software\${APPLICATION_NAME}" "" $INSTDIR
WriteRegDWORD HKLM "Software\${APPLICATION_NAME}" "VersionMajor" "${VER_MAJOR}"
WriteRegDWORD HKLM "Software\${APPLICATION_NAME}" "VersionMinor" "${VER_MINOR}"
WriteRegDWORD HKLM "Software\${APPLICATION_NAME}" "VersionRevision" "${REVISION}"
WriteRegDWORD HKLM "Software\${APPLICATION_NAME}" "VersionRevision" "${VER_PATCH}"
WriteRegDWORD HKLM "Software\${APPLICATION_NAME}" "VersionBuild" "${VER_BUILD}"
;Add or Remove Programs entry.
@@ -514,7 +437,7 @@ Section -post
SetDetailsPrint textonly
DetailPrint "Finished."
DetailPrint $UNINSTALLER_FINISHED_Detail
SectionEnd
##############################################################################
@@ -529,7 +452,7 @@ Var UnPageUserAppDataCheckbox_State
Var UnPageUserAppDataEditBox
Function un.UnPageUserAppData
!insertmacro MUI_HEADER_TEXT "Uninstall ${APPLICATION_NAME}" "Remove ${APPLICATION_NAME}'s data folder from your computer."
!insertmacro MUI_HEADER_TEXT $UNINSTALLER_APPDATA_TITLE $UNINSTALLER_APPDATA_SUBTITLE
nsDialogs::Create /NOUNLOAD 1018
Pop $UnPageUserAppDataDialog
@@ -537,17 +460,17 @@ Function un.UnPageUserAppData
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 12u "Do you want to delete ${APPLICATION_NAME}'s data folder?"
${NSD_CreateLabel} 0 0 100% 12u $UNINSTALLER_APPDATA_LABEL_1
Pop $0
${NSD_CreateText} 0 13u 100% 12u "$LOCALAPPDATA\${APPLICATION_NAME}"
Pop $UnPageUserAppDataEditBox
SendMessage $UnPageUserAppDataEditBox ${EM_SETREADONLY} 1 0
${NSD_CreateLabel} 0 46u 100% 24u "Leave unchecked to keep the data folder for later use or check to delete the data folder."
${NSD_CreateLabel} 0 46u 100% 24u $UNINSTALLER_APPDATA_LABEL_2
Pop $0
${NSD_CreateCheckbox} 0 71u 100% 8u "Yes, delete this data folder."
${NSD_CreateCheckbox} 0 71u 100% 8u $UNINSTALLER_APPDATA_CHECKBOX
Pop $UnPageUserAppDataCheckbox
nsDialogs::Show
@@ -563,8 +486,8 @@ FunctionEnd
Section Uninstall
IfFileExists "$INSTDIR\${APPLICATION_EXECUTABLE}" owncloud_installed
MessageBox MB_YESNO "It does not appear that ${APPLICATION_NAME} is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES owncloud_installed
Abort "Uninstall aborted by user"
MessageBox MB_YESNO $UNINSTALL_MESSAGEBOX IDYES owncloud_installed
Abort $UNINSTALL_ABORT
owncloud_installed:
;Delete registry keys.
@@ -578,15 +501,10 @@ Section Uninstall
DeleteRegKey HKCR "${APPLICATION_NAME}"
;Windows Start entry
!ifdef OPTION_SECTION_SC_AUTOSTART
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "${APPLICATION_NAME}"
!endif
;Start menu shortcuts.
!ifdef OPTION_SECTION_SC_START_MENU
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${APPLICATION_NAME}"
Delete "$SMPROGRAMS\${APPLICATION_NAME}.lnk"
SetShellVarContext current
!endif
@@ -611,7 +529,7 @@ Section Uninstall
${EndIf}
SetDetailsPrint textonly
DetailPrint "Finshed."
DetailPrint $UNINSTALLER_FINISHED_Detail
SectionEnd
##############################################################################
@@ -623,9 +541,74 @@ SectionEnd
Function .onInit
!insertmacro INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
; uncomment this line if you want to see the language selection
;!insertmacro MUI_LANGDLL_DISPLAY
# load the selected language file
StrCmp $LANGUAGE ${LANG_ENGLISH} English 0
StrCmp $LANGUAGE ${LANG_GERMAN} German 0
StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0
StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0
StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0
StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
StrCmp $LANGUAGE ${LANG_ESTONIAN} Estonian 0
StrCmp $LANGUAGE ${LANG_GREEK} Greek 0
StrCmp $LANGUAGE ${LANG_GREEK} Basque 0
StrCmp $LANGUAGE ${LANG_GREEK} Galician 0
StrCmp $LANGUAGE ${LANG_GREEK} Slovak 0
StrCmp $LANGUAGE ${LANG_GREEK} Turkish 0
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
English:
!include "${source_path}/admin/win/nsi/l10n\English.nsh"
Goto EndLanguageCmp
German:
!include "${source_path}/admin/win/nsi/l10n\German.nsh"
Goto EndLanguageCmp
Dutch:
!include "${source_path}/admin/win/nsi/l10n\Dutch.nsh"
Goto EndLanguageCmp
Finnish:
!include "${source_path}/admin/win/nsi/l10n\Finnish.nsh"
Goto EndLanguageCmp
Japanese:
!include "${source_path}/admin/win/nsi/l10n\Japanese.nsh"
Goto EndLanguageCmp
Slovenian:
!include "${source_path}/admin/win/nsi/l10n\Slovenian.nsh"
Goto EndLanguageCmp
Spanish:
!include "${source_path}/admin/win/nsi/l10n\Spanish.nsh"
Goto EndLanguageCmp
Italian:
!include "${source_path}/admin/win/nsi/l10n\Italian.nsh"
Goto EndLanguageCmp
Estonian:
!include "${source_path}/admin/win/nsi/l10n\Estonian.nsh"
Goto EndLanguageCmp
Greek:
!include "${source_path}/admin/win/nsi/l10n\Greek.nsh"
Goto EndLanguageCmp
Basque:
!include "${source_path}/admin/win/nsi/l10n\Basque.nsh"
Goto EndLanguageCmp
Galician:
!include "${source_path}/admin/win/nsi/l10n\Galician.nsh"
Goto EndLanguageCmp
Slovak:
!include "${source_path}/admin/win/nsi/l10n\Slovak.nsh"
Goto EndLanguageCmp
Turkish:
!include "${source_path}/admin/win/nsi/l10n\Turkish.nsh"
Goto EndLanguageCmp
Brazilian:
!include "${source_path}/admin/win/nsi/l10n\PortugueseBR.nsh"
EndLanguageCmp:
;Remove Quick Launch option from Windows 7, as no longer applicable - usually.
${IfNot} ${AtMostWinVista}
SectionSetText ${SEC_QUICK_LAUNCH} "Quick Launch Shortcut (N/A)"
SectionSetText ${SEC_QUICK_LAUNCH} $INIT_NO_QUICK_LAUNCH
SectionSetFlags ${SEC_QUICK_LAUNCH} ${SF_RO}
SectionSetInstTypes ${SEC_QUICK_LAUNCH} 0
${EndIf}
@@ -640,7 +623,7 @@ Function .onInit
Quit
UAC_Err:
MessageBox MB_ICONSTOP "Unable to elevate, error $0"
MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
Abort
UAC_ElevationAborted:
@@ -649,14 +632,14 @@ Function .onInit
UAC_Success:
StrCmp 1 $3 +4 ;Admin?
StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
MessageBox MB_ICONSTOP "This installer requires admin access, try again"
MessageBox MB_ICONSTOP $UAC_INSTALLER_REQUIRE_ADMIN
goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudInstaller") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_INSTALLER_RUNNING
Abort
;Use available InstallLocation when possible. This is useful in the uninstaller
@@ -694,7 +677,7 @@ Function un.onInit
Quit
UAC_Err:
MessageBox MB_ICONSTOP "Unable to elevate, error $0"
MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
Abort
UAC_ElevationAborted:
@@ -703,14 +686,14 @@ Function un.onInit
UAC_Success:
StrCmp 1 $3 +4 ;Admin?
StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
MessageBox MB_ICONSTOP "This uninstaller requires admin access, try again"
MessageBox MB_ICONSTOP $UAC_UNINSTALLER_REQUIRE_ADMIN
goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "owncloudUninstaller") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "This uninstaller is already running."
MessageBox MB_OK|MB_ICONEXCLAMATION $INIT_UNINSTALLER_RUNNING
Abort
;Shutdown ${APPLICATION_NAME} in order to remove locked files.

View File

@@ -0,0 +1,131 @@
include (MacroOptionalFindPackage)
include (MacroLogFeature)
option(BUILD_WITH_QT4 "Build with Qt4 no matter if Qt5 was found" ON)
if( NOT BUILD_WITH_QT4 )
find_package(Qt5Core QUIET)
if( Qt5Core_DIR )
find_package(Qt5Widgets QUIET)
find_package(Qt5Quick QUIET)
find_package(Qt5PrintSupport QUIET)
find_package(Qt5WebKit QUIET)
find_package(Qt5Location QUIET)
find_package(Qt5Network QUIET)
find_package(Qt5Sensors QUIET)
find_package(Qt5Xml QUIET)
# find_package(Qt5WebKitWidgets QUIET)
message(STATUS "Using Qt 5!")
# We need this to find the paths to qdbusxml2cpp and co
if (WITH_DBUS)
find_package(Qt5DBus REQUIRED)
include_directories(${Qt5DBus_INCLUDES})
add_definitions(${Qt5DBus_DEFINITIONS})
endif (WITH_DBUS)
include_directories(${Qt5Widgets_INCLUDES})
add_definitions(${Qt5Widgets_DEFINITIONS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
# set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
macro(qt_wrap_ui)
qt5_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt5_add_resources(${ARGN})
endmacro()
# find_package(Qt5LinguistTools REQUIRED)
macro(qt_add_translation)
# qt5_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt5_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt5_add_dbus_adaptor(${ARGN})
endmacro()
macro(qt_wrap_cpp)
qt5_wrap_cpp(${ARGN})
endmacro()
macro(install_qt_executable)
install_qt5_executable(${ARGN})
endmacro()
macro(setup_qt)
endmacro()
set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
#Enable deprecated symbols
add_definitions("-DQT_DISABLE_DEPRECATED_BEFORE=0")
endif()
endif()
if( NOT Qt5Core_DIR )
message(STATUS "Could not find Qt5, searching for Qt4 instead...")
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork" "QtGui" "QtWebkit")
if( BUILD_TESTS )
list(APPEND NEEDED_QT4_COMPONENTS "QtTest")
endif()
macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt.nokia.com" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
macro(qt5_use_modules)
endmacro()
macro(qt_wrap_ui)
qt4_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt4_add_resources(${ARGN})
endmacro()
macro(qt_add_translation)
qt4_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt4_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt4_add_dbus_adaptor(${ARGN})
endmacro()
macro(qt_wrap_cpp)
qt4_wrap_cpp(${ARGN})
endmacro()
macro(install_qt_executable)
install_qt4_executable(${ARGN})
endmacro()
macro(setup_qt)
set(QT_USE_QTGUI TRUE)
set(QT_USE_QTSQL TRUE)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTXML TRUE)
set(QT_USE_QTWEBKIT TRUE)
set(QT_USE_QTDBUS TRUE)
include( ${QT_USE_FILE} )
endmacro()
endif()
if( Qt5Core_DIR )
set( HAVE_QT5 TRUE )
else( Qt5Core_DIR )
set( HAVE_QT5 FALSE )
endif( Qt5Core_DIR )

View File

@@ -0,0 +1,20 @@
if(CMAKE_COMPILER_IS_GNUCXX)
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
OUTPUT_VARIABLE GCC_VERSION)
if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wno-long-long")
else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wno-long-long")
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
endif(CMAKE_COMPILER_IS_GNUCXX)
if(CMAKE_CXX_COMPILER MATCHES "clang")
set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wno-long-long")
endif(CMAKE_CXX_COMPILER MATCHES "clang")
# TODO: handle msvc compilers warnings?
if(DEFINED MIRALL_FATAL_WARNINGS)
if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang")
# TODO: handle msvc compilers warnings?
endif(DEFINED MIRALL_FATAL_WARNINGS)

View File

@@ -2,11 +2,19 @@
#define CONFIG_H
#cmakedefine USE_INOTIFY 1
#cmakedefine WITH_CSYNC 1
#cmakedefine WITH_QTKEYCHAIN 1
#cmakedefine GIT_SHA1 "@GIT_SHA1@"
#cmakedefine APPLICATION_DOMAIN @APPLICATION_DOMAIN@
#cmakedefine THEME_CLASS @THEME_CLASS@
#cmakedefine THEME_INCLUDE @THEME_INCLUDE@
#cmakedefine APPLICATION_NAME "@APPLICATION_NAME@"
#cmakedefine APPLICATION_SHORTNAME "@APPLICATION_SHORTNAME@"
#cmakedefine APPLICATION_EXECUTABLE "@APPLICATION_EXECUTABLE@"
#cmakedefine SYSCONFDIR "@SYSCONFDIR@"
#cmakedefine DATADIR "@DATADIR@"
#cmakedefine NEON_WITH_LFS "@NEON_WITH_LFS@"
#endif

View File

@@ -22,16 +22,21 @@ if(SPHINX_FOUND)
add_custom_target(doc DEPENDS doc-html doc-man COMMENT "Building documentation...")
endif(WITH_DOC)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ocdoc/_shared_assets")
add_dependencies(doc doc-html-org)
add_dependencies(doc doc-html-com)
endif()
if(PDFLATEX_FOUND)
# if this still fails on Debian/Ubuntu, run
# apt-get install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
add_custom_target(doc-latex ${SPHINX_EXECUTABLE}
-q -c . -b latex
-d ${SPHINX_CACHE_DIR}
-d ${SPHINX_CACHE_DIR}/latex
-D latex_logo=${LATEX_LOGO}
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_PDF_DIR} )
add_custom_target(doc-pdf make -C ${SPHINX_PDF_DIR} all-pdf
add_custom_target(doc-pdf $(MAKE) -C ${SPHINX_PDF_DIR} all-pdf
DEPENDS doc-latex )
add_dependencies(doc doc-pdf)
if (WITH_DOC)
@@ -41,7 +46,7 @@ if(SPHINX_FOUND)
if (EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE})
add_custom_target( doc-qch-sphinx ${SPHINX_EXECUTABLE}
-q -c . -b qthelp
-d ${SPHINX_CACHE_DIR}
-d ${SPHINX_CACHE_DIR}/qthelp
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_QCH_DIR} )
add_custom_target( doc-qch ${QT_QCOLLECTIONGENERATOR_EXECUTABLE}
@@ -54,12 +59,24 @@ if(SPHINX_FOUND)
endif()
add_custom_target( doc-html ${SPHINX_EXECUTABLE}
-q -c . -b html
-d ${SPHINX_CACHE_DIR}
-d ${SPHINX_CACHE_DIR}/html
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_HTML_DIR} )
${SPHINX_HTML_DIR}/unthemed )
add_custom_target( doc-html-org ${SPHINX_EXECUTABLE}
-q -c . -b html
-d ${SPHINX_CACHE_DIR}/html
-D html_theme=owncloud_org
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_HTML_DIR}/org )
add_custom_target( doc-html-com ${SPHINX_EXECUTABLE}
-q -c . -b html
-d ${SPHINX_CACHE_DIR}/html
-D html_theme=owncloud_com
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_HTML_DIR}/com )
add_custom_target( doc-man ${SPHINX_EXECUTABLE}
-q -c . -b man
-d ${SPHINX_CACHE_DIR}
-d ${SPHINX_CACHE_DIR}/man
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_MAN_DIR} )
@@ -71,7 +88,7 @@ if(SPHINX_FOUND)
add_custom_target( doc-chm-sphinx ${SPHINX_EXECUTABLE}
-q -c . -b htmlhelp
-D html_theme=basic
-d ${SPHINX_CACHE_DIR}
-d ${SPHINX_CACHE_DIR}/htmlhelp
${CMAKE_CURRENT_SOURCE_DIR}
${SPHINX_HTMLHELP_DIR} )
add_custom_target( doc-chm pushd ${SPHINX_HTMLHELP_DIR}; ${MSHTML_COMPILER} *.hhp; popd

View File

@@ -1,153 +0,0 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OwncloudDocumentation.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OwncloudDocumentation.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/OwncloudDocumentation"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OwncloudDocumentation"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."

37
doc/accountsetup.rst Normal file
View File

@@ -0,0 +1,37 @@
Setting up an Account
=====================
If no account has been configured, ownCloud Client will automatically assist
you in connecting to your ownCloud Server after the application has been
started.
As a first step, specify the URL to your Server, just
like you would when you open your ownCloud instance inside a browser.
.. image:: images/wizard_url.png
:scale: 50 %
.. note:: Make sure to use ``https://`` if the server supports it. Otherwise,
your password and all data will be transferred to the server unencrypted.
This makes it easy for third parties to intercept your communication, and
getting hold of your password!
Next, you are prompted for your username and password. Again, use the same
credentials that you would use to log on via the web interface.
.. image:: images/wizard_user.png
:scale: 50 %
Finally, choose the folder that ownCloud Client is supposed to sync the
contents of your ownCloud account with. By default, this is a folder
called `ownCloud`, which will reside in your home directory.
.. image:: images/wizard_targetfolder.png
:scale: 50 %
After pressing `Connect`, ownCloud Client will commence with the syncing
process. The next screen will give you the opportunity to review your
settings:
.. image:: images/wizard_overview.png
:scale: 50 %

14
doc/advancedusage.rst Normal file
View File

@@ -0,0 +1,14 @@
Advanced Usage
==============
.. index:: Advanced Usage
Options
-------
.. index:: command line switches, command line, options, parameters
.. include:: options.rst
Config File
-----------
.. index:: config file
.. include:: conffile.rst

View File

@@ -1,5 +1,6 @@
Architecture
============
Appendix B: Architecture
========================
.. index:: architecture
The ownCloud project provides desktop sync clients to synchronize the
@@ -11,11 +12,10 @@ csync was written to synchronize with ownClouds built-in WebDAV server.
The ownCloud sync client is based on a tool called mirall initially written by
Duncan Mac Vicar. Later Klaas Freitag joined the project and enhanced it to work
with ownCloud server. Both mirall and ownCloud Client (oCC) build from the same
source, currently hosted in the ownCloud source repo on gitorious.
with ownCloud server.
oCC is written in C++ using the `Qt Framework`_. As a result oCC runs on the
three important platforms Linux, Windows and MacOS.
ownCloud Client is written in C++ using the `Qt Framework`_. As a result, the
ownCloud Client runs on the three important platforms Linux, Windows and MacOS.
.. _csync: http://www.csync.org
.. _`Qt Framework`: http://www.qt-project.org
@@ -23,8 +23,8 @@ three important platforms Linux, Windows and MacOS.
The Sync Process
----------------
First it is important to recall what syncing is. Syncing tries to keep the files
on both repositories the same. That means if a file is added to one repository
First it is important to recall what syncing is: It tries to keep the files
on two repositories the same. That means if a file is added to one repository
it is going to be copied to the other repository. If a file is changed on one
repository, the change is propagated to the other repository. Also, if a file
is deleted on one side, it is deleted on the other. As a matter of fact, in
@@ -34,8 +34,13 @@ server is always master.
This is the major difference to other systems like a file backup where just
changes and new files are propagated but files never get deleted.
Sync Direction and Strategies
-----------------------------
The ownCloud Client checks both repositories for changes frequently after a
certain time span. That is refered to as a sync run. In between the local
repository is monitored by a file system monitor system that starts a sync run
immediately if something was edited, added or removed.
Sync by Time versus ETag
------------------------
.. index:: time stamps, file times, etag, unique id
Until the release of ownCloud 4.5 and ownCloud Client 1.1, ownCloud employed
@@ -44,7 +49,7 @@ synced to the other repository: the files modification time.
The *modification timestamp* is part of the files metadata. It is available on
every relevant filesystem and is the natural indicator for a file change.
modification timestamps do not require special action to create and have
Modification timestamps do not require special action to create and have
a general meaning. One design goal of csync is to not require a special server
component, thats why it was chosen as the backend component.
@@ -57,29 +62,24 @@ machines.
Since this strategy is rather fragile without NTP, ownCloud 4.5 introduced a
unique number, which changes whenever the file changes. Although it is a unique
value, it is not a hash of the file, but a randomly chosen number, which it will
transmit in the Etag_ field. The client will store this number in a
per-directory database, located in the application directory (version 1.1) or
as a hidden file right in the directory to be synced (later versions).
Since the file number is guaranteed to change if the file changes, it can now be
used to determine if one of the files has changed.
transmit in the Etag_ field. Since the file number is guaranteed to change if
the file changes, it can now be used to determine if one of the files has
changed.
.. todo:: describe what happens if both sides change
.. note:: ownCloud Client 1.1 and newer require file ID capabilities on the
ownCloud server, hence using them with a server earlier than 4.5.0 is
not supported.
Before the 1.3.0 release of the client the sync process might create faux
conflict files if time deviates. The original and the conflict files only
differed in the timestamp, but not in content. This behaviour was changed
towards a binary check if the files are different.
If the per-directory database gets removed, oCC's CSync backend will fall back
to a time-stamp based sync process to rebuild the database. Thus it should be
made sure that both server and client synchronized to NTP time before
restarting the client after a database removal. If time deviates, the sync
process might create faux conflict files, which only differ in their time.
Those need to be cleaned up manually later on and will not be synced back
to the server. However, no files will get deleted in this process.
Just like files, directories also hold a unique id, which changes whenever
one of the contained files or directories gets modified. Since this is a
recursive process, it significantly reduces the effort required for a sync
cycle, because the client will only walk directories with a modified unique id.
.. note:: oCC 1.1 and newer require file ID capabilities on the ownCloud server,
hence using them with a server earlier than 4.5.0 is not supported.
This table outlines the different sync methods attempted depending
on server/client combination:
@@ -106,3 +106,92 @@ are involved and one of them is not in sync with NTP time.
.. _`NTP time synchronisation`: http://en.wikipedia.org/wiki/Network_Time_Protocol
.. _Etag: http://en.wikipedia.org/wiki/HTTP_ETag
Comparison and Conflict Cases
-----------------------------
In a sync run the client first has to detect if one of the two repositories have
changed files. On the local repository, the client traverses the file
tree and compares the modification time of each file with the value it was
before. The previous value is stored in the client's database. If it is not, it
means that the file has been added to the local repository. Note that on
the local side, the modificaton time a good attribute to detect changes because
it does not depend on time shifts and such.
For the remote (ie. ownCloud) repository, the client compares the ETag of each
file with it's previous value. Again the previous value is queried from the
database. If the ETag is still the same, the file has not changed.
In case a file has changed on both, the local and the remote repository since
the last sync run, it can not easily be decided which version of the file is
the one that should be used. However, changes to any side must not be lost.
That is called a **conflict case**. The client solves it by creating a conflict
file of the older of the two files and save the newer one under the original
file name. Conflict files are always created on the client and never on the
server. The conflict file has the same name as the original file appended with
the timestamp of the conflict detection.
.. _ignored-files-label:
Ignored Files
-------------
ownCloud Client supports that certain files are excluded or ignored from
the synchronization. There are a couple of system wide file patterns which
come with the client. Custom patterns can be added by the user.
ownCloud Client will ignore the following files:
* Files matched by one of the pattern in :ref:`ignoredFilesEditor-label`
* Files containing characters that do not work on certain file systems.
Currently, these characters are: `\, :, ?, *, ", >, <, |`
* Files starting in ``.csync_journal.db*`` (reserved for journalling)
If a pattern is checkmarked in the `ignoredFilesEditor-label` (or if a line in
the exclude file starts with the character `]` directly followed
by the file pattern), files matching this pattern are considered fleeting
meta data. These files are ingored and *removed* by the client if found
in the sync folder. This is suitable for meta files created by some
applications that have no sustainable meaning.
If a pattern is ending with character `/` it means that only directories are
matched. The pattern is only applied for directory components of the checked
filename.
To match file names against the exclude patterns, the unix standard C
library function fnmatch is used. It checks the filename against the pattern
using standard shell wildcard pattern matching. Check `The opengroup website
<http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_13_01>`
for the gory details.
The path that is checked is the relative path unter the sync root directory.
Examples:
^^^^^^^^^
+-----------+------------------------------+
| Pattern | Matches |
+===========+==============================+
| ``~$*`` | ``~$foo``, ``~$example.doc`` |
+-----------+------------------------------+
| ``fl?p`` | ``flip``, ``flap`` |
+-----------+------------------------------+
| ``moo/`` | ``map/moo/``, ``moo/`` |
+-----------+------------------------------+
The Sync Journal
----------------
The client stores the ETag number in a per-directory database,
called the journal. It is a hidden file right in the directory
to be synced.
If the journal database gets removed, ownCloud Client's CSync backend will
rebuild the database by comparing the files and their modification times. Thus
it should be made sure that both server and client synchronized with NTP time
before restarting the client after a database removal.
Pressing ``F5`` in the Account Settings Dialog that allows to "reset" the
journal. That can be used to recreate the journal database. Use this only
if advised to do so by the developer or support staff.

View File

@@ -1,10 +1,17 @@
Building the Client
===================
.. _building-label:
Appendix A: Building the Client
===============================
This section explains how to build the ownCloud Client from source
for all major platforms. You should read this section if you want
to development on the desktop client.
Note that the building instruction are subject to change as development
proceeds. It is important to check the version which is to built.
This instructions were updated to work with ownCloud Client 1.5.
Linux
-----
@@ -20,20 +27,25 @@ Linux
Mac OS X
--------
Follow the `generic build instructions`_.
Next to XCode (and the command line tools!), you will need some
extra dependencies.
You can install the missing dependencies via MacPorts_ or Homebrew_.
You can install these dependencies via MacPorts_ or Homebrew_.
This is only needed on the build machine, since non-standard libs
will be deployed in the app bundle.
The only exception to this rule is libiniparser_, which lacks a decent
build system. If you are using Homebrew_, you can just add it::
The tested and preferred way is to use HomeBrew_. The ownCloud team has
its own repository which contains non-standard recipes. Add it with::
brew tap dschmidt/owncloud
brew install iniparser
brew tap owncloud/owncloud
Otherwise, you need to copy the header and lib files to
``/usr/local/include`` and ``/usr/local/lib`` respectively.
Next, install the missing dependencies::
brew install $(brew deps ocsync)
brew install $(brew deps mirall)
To build mirall and csync, follow the `generic build instructions`_.
.. note::
You should not call ``make install`` at any time, since the product of the
@@ -45,24 +57,29 @@ Windows (cross-compile)
Due to the amount of dependencies that csync entails, building the client
for Windows is **currently only supported on openSUSE**, by using the MinGW
cross compiler. You can set up openSUSE 12.1 or 12.2 in a virtual machine
cross compiler. You can set up openSUSE 12.1, 12.2 or 13.1 in a virtual machine
if you do not have it installed already.
In order to cross-compile, the following repositories need to be added
via YaST or ``zypper ar`` (adjust when using openSUSE 12.2)::
via YaST or ``zypper ar`` (adjust when using openSUSE 12.2 or 13.1)::
http://download.opensuse.org/repositories/isv:/ownCloud:/devel:/mingw:/win32/openSUSE_12.1/
http://download.opensuse.org/repositories/windows:/mingw/openSUSE_12.1/
http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.1/
zypper ar http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_12.1/windows:mingw:win32.repo
zypper ar http://download.opensuse.org/repositories/windows:/mingw/openSUSE_12.1/windows:mingw.repo
Next, install the cross-compiler packages and the cross-compiled dependencies::
zypper si -d mingw32-csync
zypper install kdewin-png2ico mingw32-libqt4 mingw32-libqt4-devel \
mingw32-libgcrypt mingw32-libgnutls mingw32-libneon \
zypper install cmake make mingw32-cross-binutils mingw32-cross-cpp mingw32-cross-gcc \
mingw32-cross-gcc-c++ mingw32-cross-pkg-config mingw32-filesystem \
mingw32-headers mingw32-runtime site-config mingw32-libqt4-sql \
mingw32-libqt4-sql-sqlite mingw32-libsqlite-devel \
mingw32-dlfcn-devel mingw32-libssh2-devel kdewin-png2ico \
mingw32-libqt4 mingw32-libqt4-devel mingw32-libgcrypt \
mingw32-libgnutls mingw32-libneon-openssl mingw32-libneon-devel \
mingw32-libbeecrypt mingw32-libopenssl mingw32-openssl \
mingw32-libpng-devel mingw32-libsqlite mingw32-qtkeychain \
mingw32-qtkeychain-devel mingw32-iniparser mingw32-dlfcn
mingw32-qtkeychain-devel mingw32-dlfcn mingw32-libintl-devel \
mingw32-libneon-devel mingw32-libopenssl-devel mingw32-libproxy-devel \
mingw32-libxml2-devel mingw32-zlib-devel
For the installer, the NSIS installer package is also required::
@@ -74,20 +91,20 @@ For the installer, the NSIS installer package is also required::
mingw32-cross-nsis-plugin-processes mingw32-cross-nsis-plugin-uac
You will also need to manually download and install the following files with
``rpm -ivh <package>`` (They will also work with OpenSUSE 12.2)::
``rpm -ivh <package>`` (They will also work with openSUSE 12.2 and newer)::
http://pmbs.links2linux.org/download/mingw:/32/openSUSE_12.1/x86_64/mingw32-cross-nsis-plugin-processes-0-1.1.x86_64.rpm
http://pmbs.links2linux.org/download/mingw:/32/openSUSE_12.1/x86_64/mingw32-cross-nsis-plugin-uac-0-3.1.x86_64.rpm
rpm -ihv http://download.tomahawk-player.org/packman/mingw:32/openSUSE_12.1/x86_64/mingw32-cross-nsis-plugin-processes-0-1.1.x86_64.rpm
rpm -ihv http://download.tomahawk-player.org/packman/mingw:32/openSUSE_12.1/x86_64/mingw32-cross-nsis-plugin-uac-0-3.1.x86_64.rpm
Now, follow the `generic build instructions`_, but pay attention to
the following differences:
1. For building ``libocsync``, you need to use ``mingw32-cmake`` instead
of cmake.
2. Also, you need to specify *absolute pathes* for ``CSYNC_LIBRARY_PATH``
and ``CSYNC_LIBRARY_PATH`` when running ``cmake`` on mirall.
3. for building ``mirall``, you need to use ``cmake`` again, but make sure
2. for building ``mirall``, you need to use ``cmake`` again, but make sure
to append the following parameter::
3. Also, you need to specify *absolute pathes* for ``CSYNC_LIBRARY_PATH``
and ``CSYNC_LIBRARY_PATH`` when running ``cmake`` on mirall.
``-DCMAKE_TOOLCHAIN_FILE=../mirall/admin/win/Toolchain-mingw32-openSUSE.cmake``
@@ -107,7 +124,7 @@ CMake and Mirall can be downloaded at ownCloud's `Client Download Page`_.
If you want to build the leading edge version of the client, you should
use the latest versions of Mirall and CSync via Git_, like so::
git clone git://git.csync.org/users/freitag/csync.git ocsync
git clone git://git.csync.org/users/owncloud/csync.git ocsync
git clone git://github.com/owncloud/mirall.git
Next, create build directories::
@@ -116,11 +133,11 @@ Next, create build directories::
mkdir mirall-build
This guide assumes that all directories are residing next to each other.
Next, make sure to check out the 'dav' branch in the newly checked out
Next, make sure to check out the branch called 'ocsync' in the newly checked out
`ocsync` directory::
cd ocsync
git checkout dav
git checkout ocsync
The first package to build is CSync::
@@ -129,9 +146,10 @@ The first package to build is CSync::
make
You probably have to satisfy some dependencies. Make sure to install all the
needed development packages. You will need ``iniparser``, ``sqlite3`` as well as
``neon`` for the ownCloud module. Take special care about ``neon``. If that is
missing, the cmake run will succeed but silently not build the ownCloud module.
needed development packages. You will need ``sqlite3`` as well as ``neon`` for
the ownCloud module. Take special care about ``neon``. If that is missing, the
cmake run will succeed but silently not build the ownCloud module.
``libssh`` and ``libsmbclient`` are optional and not required for the client
to work. If you want to install the client, run ``make install`` as a final step.
@@ -147,7 +165,7 @@ directories. If this succeeds, call ``make``. The owncloud binary should appear
in the ``bin`` directory. You can also run ``make install`` to install the client to
``/usr/local/bin``.
To build in installer (requires the mingw32-cross-nsis packages)::
To build an installer/app bundle (requires the mingw32-cross-nsis packages on Windows)::
make package
@@ -161,4 +179,3 @@ Known cmake parameters:
.. _Git: http://git-scm.com
.. _MacPorts: http://www.macports.org
.. _Homebrew: http://mxcl.github.com/homebrew/
.. _libiniparser: http://ndevilla.free.fr/iniparser/

View File

@@ -28,7 +28,7 @@ import sys, os
extensions = ['sphinx.ext.todo']
# Add any paths that contain templates here, relative to this directory.
#templates_path = ['templates']
templates_path = ['@CMAKE_CURRENT_SOURCE_DIR@/ocdoc/_shared_assets/templates']
# The suffix of source filenames.
source_suffix = '.rst'
@@ -41,7 +41,7 @@ master_doc = 'index'
# General information about the project.
project = u'ownCloud Client Manual'
copyright = u'2012, The ownCloud developers'
copyright = u'2013, The ownCloud developers'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -64,7 +64,7 @@ release = '@VERSION@'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
exclude_patterns = ['_build','scripts/*']
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -95,7 +95,7 @@ pygments_style = 'sphinx'
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = ['themes']
html_theme_path = ['@CMAKE_CURRENT_SOURCE_DIR@/ocdoc/_shared_assets/themes']
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
@@ -120,7 +120,7 @@ html_short_title = "Client Manual"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['static']
html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/ocdoc/_shared_assets/static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
@@ -215,8 +215,8 @@ latex_documents = [
man_pages = [
('owncloud.1', 'owncloud', u'File synchronisation desktop utility.',
[u'The ownCloud developers'], 1),
('mirall.1', 'mirall', u'File synchronisation desktop utility.',
[u'The ownCloud developers'], 1)
('owncloudcmd.1', 'owncloudcmd', u'Command line ownCloud client tool.',
[u'The ownCloud developers'], 1),
]
# If true, show URL addresses after external links.
@@ -250,7 +250,7 @@ texinfo_documents = [
epub_title = u'ownCloud Client Manual'
epub_author = u'The ownCloud developers'
epub_publisher = u'The ownCloud developers'
epub_copyright = u'2012, The ownCloud developers'
epub_copyright = u'2013, The ownCloud developers'
# The language of the text. It defaults to the language option
# or en if the language is not set.

View File

@@ -16,8 +16,6 @@ It contains settings in the ini file format known from Windows.
.. note:: Changes may be overwritten by using ownCloud's configuration dialog.
.. note:: The new version is less precise in this regard.
These are config settings that may be changed:
``remotePollinterval`` (default: ``30000``)
@@ -26,6 +24,3 @@ These are config settings that may be changed:
``maxLogLines`` (default: ``20000``)
Maximum count of log lines shown in the log window
``remotePollinterval``
The frequency used for polling for remote changes on the ownCloud Server.

View File

@@ -4,8 +4,8 @@ Glossary
.. glossary::
:sorted:
ownCloud Sync Client
ownCloud Client
oCC
Name of the official ownCloud syncing client for desktop, which runs on
Windows, Mac OS X and Linux. It is based Mirall, and uses the CSync
sync engine for synchronization with the ownCloud server.
@@ -23,6 +23,7 @@ Glossary
exist in the client directory.
unique id
ETag
ID assigned to every file starting with ownCloud server 4.5 and submitted
via the HTTP ``Etag``. Used to check if files on client and server have
changed.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

BIN
doc/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
doc/images/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
doc/images/wizard_url.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
doc/images/wizard_user.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -6,8 +6,11 @@ Contents
.. toctree::
:maxdepth: 2
install
usage
introduction
accountsetup
visualtour
advancedusage
building
architecture
troubleshooting

View File

@@ -1,36 +0,0 @@
Installation
============
General
-------
The latest version of ownCloud client can be obtained at
http://owncloud.org/sync-clients/.
Windows
-------
ownCloud client for Windows is provided as a NSIS-based setup file for
machine-wide install.
Mac OS X
--------
Installing the ownCloud client on your Mac follows the normal app installation
pattern:
1. Download the installation file Click ownCloud-1.1.1.dmg, a window with the
2. ownCloud icon opens In that window, drag the ownCloud application into the
3. Applications folder on the right hand side From Applications, choose
ownCloud
Linux
------
The ownCloud client is provided as in a convenient repository for a wide range
of popular Linux distributions. If you want to build the sources instead.
Supported distributions are CentOS/RHEL, Fedora, SLES, openSUSE, Ubuntu and
Debian.
To support other distributions, a source build is required.

37
doc/introduction.rst Normal file
View File

@@ -0,0 +1,37 @@
Introduction
============
This is the documentation for the ownCloud Sync Client, also referred to as
the ownCloud Client.
The ownCloud Sync Client is a desktop program you install on your computer.
Specify one ore more directories on the local machine to sync your ownCloud
server, and always have your latest files wherever you are. Make a change to the
files on one computer, it will flow across the others using these desktop sync
clients.
ownCloud Client is available for Windows, Mac OS X and various Linux
distributions. See below for details on how to obtain the Client.
Obtaining the Client
--------------------
The latest version of the ownCloud Client can be obtained at
http://owncloud.org/sync-clients/.
ownCloud client for **Windows** is provided as a NSIS-based setup file for
machine-wide install. Installing the ownCloud client on **Mac OS** follows
the normal app bundle installation pattern:
1. Download the installation file: Click ``ownCloud-x.y.z.dmg``, a window with
the ownCloud icon opens.
2. In that window, drag the ownCloud application into the ``Applications``
folder.
3. On the right hand side From ``Applications``, choose ``ownCloud``.
The ownCloud Client is also provided as in a convenient repository for a wide
range of popular **Linux distributions**. If you want to build the sources
instead.
Supported distributions are Fedora, openSUSE, Ubuntu and Debian.
To support other distributions, a is required, see :ref:`building-label`

View File

@@ -1,38 +0,0 @@
mirall(1)
---------
SYNOPSIS
========
*mirall* [`OPTIONS`...]
DESCRIPTION
===========
mirall is a file synchronisation desktop utility.
It synchronizes files on your local machine with an ownCloud Server. If you
make a change to the files on one computer, it will flow across the others
using this desktop sync clients.
Normally you start the client by click on the desktop icon or start from the
application menu. After starting an ownCloud icon appears in the system tray.
Options
=======
.. include:: options.rst
Config File
===========
.. include:: conffile.rst
BUGS
====
Please report bugs at https://github.com/owncloud/core/issues.
SEE ALSO
========
`csync(1)`, `mirall(1)`

1
doc/ocdoc Submodule

Submodule doc/ocdoc added at 2c3e584b23

View File

@@ -1,15 +1,20 @@
ownCloud Client supports the following command line switches:
``--logwindow``
open a window to show log output at startup.
open a window to show log output.
``--logfile`` `<filename>`
write log output to file.
write log output to file <filename>.
``--flushlog``
``--logdir`` `<name>`
write each sync log output in a new file in directory <name>
``--logexpire`` `<hours>`
removes logs older than <hours> hours. (to be used with --logdir)
``--logflush``
flush the log file after every write.
``--monoicons``
Use black/white pictograms for systray.
``--confdir`` `<dirname>`
Use the given configuration directory.

View File

@@ -1,7 +1,8 @@
:orphan:
owncloud(1)
-----------
SYNOPSIS
========
*owncloud* [`OPTIONS`...]
@@ -9,7 +10,7 @@ SYNOPSIS
DESCRIPTION
===========
owncloud is a file synchronisation desktop utility it is based on mirall.
ownCloud is a file synchronisation desktop utility based on mirall.
It synchronizes files on your local machine with an ownCloud Server. If you
make a change to the files on one computer, it will flow across the others
using this desktop sync clients.
@@ -28,10 +29,10 @@ Config File
BUGS
====
Please report bugs at https://github.com/owncloud/core/issues.
Please report bugs at https://github.com/owncloud/mirall/issues.
SEE ALSO
========
`csync(1)`, `mirall(1)`
:manpage:`owncloudcmd(1)`

34
doc/owncloudcmd.1.rst Normal file
View File

@@ -0,0 +1,34 @@
:orphan:
owncloudcmd(1)
--------------
SYNOPSIS
========
*owncloudcmd* [`OPTIONS`...] sourcedir owncloudurl
DESCRIPTION
===========
owncloudcmd is the command line tool for the ownCloud file synchronisation
desktop utility, based on mirall.
Contrary to the :manpage:`owncloud(1)` GUI client, `owncloudcmd` will only
perform a single sync run and then exit. It thus replaces the `ocsync` binary
used for the same purpose in earlier releases.
A sync run will sync a single local directory with a WebDAV share on a
remote ownCloud server.
OPTIONS
=======
``--confdir`` `PATH`
The configuration dir where `csync.conf` is located
BUGS
====
Please report bugs at https://github.com/owncloud/mirall/issues.
SEE ALSO
========
:manpage:`owncloud(1)`

View File

@@ -4,9 +4,12 @@ Doc Build Convenience Scripts
* ``htmlhelp.sh``: A script to install Microsoft HTML Workshop on Linux or Mac OS using Wine, along with some dependencies.
* ``htmlhelp.reg``: Registry file to override some DLLs with their native version and set the right Windows version.
Those files have been taken from the HTML Help Project (http://code.google.com/p/htmlhelp/wiki/HHW4Wine).
Those files have been taken from the `HTML Help Project`_.
License
-------
The HTML Help Project has licensed its software under LGPLv3 terms.
The HTML Help Project has licensed_ its software under LGPLv2.1 terms
.. _HTML Help Project: http://code.google.com/p/htmlhelp/wiki/HHW4Wine
.. _licensed: https://code.google.com/p/htmlhelp/source/browse/trunk/pyhtmlhelp/COPYING

View File

@@ -1,42 +1,136 @@
Troubleshooting
===============
Appendix C: Troubleshooting
===========================
:All of my desktop clients fail to connect to ownCloud:
If the client fails to start syncing it basically can have two
basic reasons: Either the server setup has a problem or the client
has a bug. When reporting bugs, it is crucial to find out what part
of the system causes the problem.
Identifying basic functionality problems
----------------------------------------
:Perform a general ownCloud Server test:
A very first check is to verify that you can log on to ownClouds web
application. Assuming your ownCloud instance is installed at
``http://yourserver.com/owncloud``, type
``http://yourserver.com/owncloud/`` into your browsers address bar.
If you are not prompted to enter your user name and password, or if you
see a red warning box on the page, your server setup is not correct or needs
fixes. Please verify that your server installation is working correctly.
:Ensure the WebDAV API is working:
If all desktop clients fail to connect to ownCloud, but the access via the
web interface works, the problem often is a mis-configuration of the WebDAV
API.
The ownCloud client uses the built-in WebDAV access of the server content.
Verify that you can log on to ownClouds WebDAV server. Assuming your ownCloud
instance is installed at ``http://yourserver.com/owncloud``, type
``http://yourserver.com/owncloud/remote.php/webdav`` into your browsers
address bar.
If you are not prompted to enter your user name and password, please verify
that your server installation is working correctly.
If you are prompted, but the authentication fails even though the credentials
your provided are correct, please ensure that your authentication backend
is configured properly.
:Use a WebDAV command line tool to test:
A more sophisticated test is to use a WebDAV command line client and log
into the ownCloud WebDAV server, such as a little app called cadaver, available
on Linux. I can be used to further verify that the WebDAV server is running
properly, for example by performing PROPFIND calls:
into the ownCloud WebDAV server, such as a little app called cadaver,
available on Linux. It can be used to further verify that the WebDAV server is
running properly, for example by performing PROPFIND calls:
``propget .`` called within cadaver will return some properties of the current
directory and thus be a successful WebDAV connect.
:The desktop client fails for an unknown reason:
Start the client with ``--logwindow``. You can also open a log window for an
already running session, by simply starting the client again with this
parameter. Syntax:
Isolating other issues
----------------------
If the sync result is unreliable, please ensure that the folder synced with
ownCloud is not shared with other syncing apps.
.. note:: Syncing the same directory with ownCloud and other sync software such
as Unison, rsync, Microsoft Windows Offline Folders or cloud services
such as DropBox or Microsoft SkyDrive is not supported and should
not be attempted. In the worst case, doing so can result in data
loss.
If some files do not get take a look at the sync protocol. Some files are
automatically automatically being ignored because they are system files,
others get ignored because their file name contains characters that cannot
be represented on certain file systems. See :ref:`_ignored-files-label` for
details.
If you are operating your own server and use the local storage backend (the
default), make sure that ownCloud has exclusive access to the directory.
.. note:: The data directory on the server is exclusive to ownCloud and must
not be modified manually.
If you are using a different backend, you can try to exclude a bug in the
backend by reverting to the local backend.
Logfiles
--------
Doing effective debugging requires to provide as much as relevant logs as
possible. The log output can help you with tracking down problem, and if you
report a bug, you're advised to include the output.
Client Logfile
~~~~~~~~~~~~~~
Start the client with ``--logwindow``. That opens a window providing a view
on the current log. It provides a Save button to let you save the log to a
file.
You can also open a log window for an already running session, by simply
starting the client again with this parameter. Syntax:
* Windows: ``C:\Program Files (x86)\ownCloud\owncloud.exe --logwindow``
* Mac OS X: ``/Applications/owncloud.app/Contents/MacOS/owncloud --logwindow``
* Linux: ``owncloud --logwindow``
The log output can help you with tracking down problem, and if you report
a bug, it's useful to include the output.
It is also possible to directly log to a directory, which is an useful option
in case the problem only happens ocassionally. In that case it is better to
create a huge amount of data, as the log window has a limited buffer.
To write logs to disk, start the client with ``--logfile <file>``, where
``<file`` is the file you want to log to, or ``--logdir <dir>``, where ``<dir>``
is an existing directory. In case of ``--logdir``, each sync run will create a
new file. To limit the amount of data that accumulates over time, there is another
useful parameter: ``--logexpire <hours>```. If that is combined with ```--logdir```
the client automatically erases log data in that directory that is older than the
given expiry period.
For example, for a long running test where you intend to keep the log data of the
last two days, this would be the command line:
```
owncloud --logdir /tmp/owncloud_logs --logexpire 48
```
ownCloud server Logfile
~~~~~~~~~~~~~~~~~~~~~~~
The ownCloud server maintains an ownCloud specific logfile as well. It can and
must be enabled through the ownCloud Administration page. There you can adjust
the loglevel. It is advisable to set it to a verbose level like ``Debug`` or
``Info``.
The logfile can be viewed either in the web interface or can be found in the
filesystem in the ownCloud server data dir.
Webserver Logfiles
~~~~~~~~~~~~~~~~~~
Also, please take a look at your webservers error log file to check if there
are problems. For Apache on Linux, the error logs usually can be found at
``/var/log/apache2``. A file called ``error_log`` shows errors like PHP code
problems. A file called ``access_log`` usually records all requests handled
by the server. Especially the access_log is a very good debugging tool as the
log line contains a lot of information of every request and it's result.
More information about the apache logging can be found at
``http://httpd.apache.org/docs/current/logs.html``.
Also, please take a look at your webservers error log file to check if there
are problems. For apache on linux, the error logs usually can be found at
``/var/log/apache2``. A file called ``error_log`` shows errors like PHP code
problems. A file called ``access_log`` usually records all requests handled
by the server. More information about the apache logging can be found at
``http://httpd.apache.org/docs/current/logs.html``.

View File

@@ -1,24 +0,0 @@
Usage
=====
.. index:: usage, client sync usage
To start ownCloud Client, click on the desktop icon or start it from the
application menu. In the system tray, an ownCloud icon appears.
.. index:: start application
A left click on the tray icon open a status dialog which gives an overview on
the configured sync folders and allows to add and remove more sync folder
connections as well as pausing a sync connection.
A right click on the tray icon gives other configuration options.
Options
-------
.. index:: command line switches, command line, options, parameters
.. include:: options.rst
Config File
-----------
.. index:: config file
.. include:: conffile.rst

181
doc/visualtour.rst Normal file
View File

@@ -0,0 +1,181 @@
Visual Tour
===========
.. index:: visual tour, usage
ownCloud Client stays in the background, and is visible as an
icon in your system tray (Windows, KDE), status bar (Mac OS X)
or notification area (Ubuntu), like so:
.. image:: images/icon.png
If a setup is still required, it will open the setup. Otherwise, the
main menu is opened, which provides several options and displays
progress information:
.. image:: images/menu.png
Here is an explanation of the individual items in the menu:
* ``Open ownCloud in browser``: Opens the ownCloud web interface
* ``Open folder 'ownCloud'``: Opens the local folder. If you have
defined multiple sync targets, you should see multiple entries
here.
* **Disk space indicator**: Shows how much space is used up on the server.
* Operation indicator: Shows the status of the current sync process, or
``Up to date`` if server and client are in sync.
* **Recent Changes**: shows the last six files modified by sync operations,
and provides access to the Sync status, which lists all changes
since the last restart of ownCloud Client.
* ``Settings...``: provides access to the settings menu.
* ``Help``: Opens a browser to display this help.
* ``Quit ownCloud``: Quits ownCloud, ending a currently running sync run.
The settings dialog is split up in three categories: ``Account Settings``,
``General Settings`` and ``Network Settings``:
Account Settings
~~~~~~~~~~~~~~~~
.. index:: account settings, user, password, Server URL
The ``Account Settings`` tab provides an executive summary about the synced
folders in your account and allows to modify them. It also provides a more
detailed report about the storage usage. Finally, it allows to change
the files that ownCloud Client should ignore (for details, see the
``Ignored Files Editor`` section below), and to modify various aspects
of the current account settings, such as user name, password and server URL.
.. image:: images/settings_account.png
:scale: 50 %
General Settings
~~~~~~~~~~~~~~~~
.. index:: general settings, auto start, startup, desktop notifications
The tab provides several useful options:
.. image:: images/settings_general.png
:scale: 50 %
* **Launch on System Startup**: This option is automatically activated
once a user has conimaged his account. Unchecking the box will cause
ownCloud client to not launch on startup for a particular user.
* **Show Desktop Nofications**: Do not show bubble notifications whenever
a set of sync operations has been performed.
* **Use Monochrome Icons**: Use less obstrusive icons. Especially useful
on Mac OS.
The acout menu provides information about authors as well as detailed
information about the build conditions. Those are particularly valuable
when filing a bug report.
Network Settings
~~~~~~~~~~~~~~~~
.. index:: proxy settings, SOCKS, bandwith, throttling, limiting
This tab consollidates ``Proxy Settings`` and ``Bandwith Limiting``:
.. image:: images/settings_network.png
:scale: 50 %
Proxy Settings
^^^^^^^^^^^^^^
* ``No Proxy``: Check this if ownCloud Client should circumvent the default
proxy conimaged on the system.
* ``Use system proxy``: Default, will follow the systems proxy settings.
On Linux, this will only pick up the value of the variable ``http_proxy``.
* ``Specify proxy manually as``: Allows to specify custom proxy settings.
If you require to go through a HTTP(S) proxy server such as Squid or Microsoft
Forefront TMG, pick ``HTTP(S)``. ``SOCKSv5`` on the other hand is particulary
useful in special company LAN setups, or in combination with the OpenSSH
dynamic application level forwarding feature (see ``ssh -D``).
* ``Host``: Enter the host name or IP address of your proxy server, followed
by the port number. HTTP proxies usually listen on Ports 8080 (default) or
3128. SOCKS server usually listen on port 1080.
* ``Proxy Server requires authentication``: Should be checked if the proxy
server does not allow anonymous usage. If you check this option, you must
provide username and password in the fields below, or ownless Cloud will no
longer be able to connect successfully.
Bandwidth Limiting
^^^^^^^^^^^^^^^^^^
The ``Download Bandwidth`` (i.e. the bandwidth available for data flowing
from the ownCloud Server to the client) can be either ``Unlimited``
(the default), or limited to a custom value, specified in bytes
The ``Upload Bandwith`` (i.e. the bandwith available for data flowing
from the ownCloud Client to the server) additionally has the option
to ``Limit automatically``: When this option is checked, the ownCloud
Client will surrender available upstream bandwith to other applications.
Use this option if you expirience problems with real time communication,
such as Skype or other VoIP software, in conjunction with ownCloud Client.
This is commonly the case with asymmetric internet connection, such as
certain DSL lines with very limited upstream capacity.
ownCloud Client will pick up changes immediately, but ongoing operations
will finish using the old settings.
The Sync Status Display
~~~~~~~~~~~~~~~~~~~~~~~
.. index:: sync status
The ``Sync Status`` window, which can be invoked from either from the main
menu (``Recent Changes`` -> ``Details...``) or the ``Account Settings``
(``Info`` button), will provide you with an in-depth summary of the recent
sync activity. It will also show files that have not been synched (ignored
files). Those are ignored either because they are listed in the ignored
files list (see ``Ignored Files Editor`` section below), or because they
cannot be synced in a cross-platform manner because they contain special
characters that cannot be stored on certain file systems.
.. image:: images/sync_protocol.png
:scale: 50 %
.. _ignoredFilesEditor-label:
The Ignored Files Editor
~~~~~~~~~~~~~~~~~~~~~~~~
.. index:: ignored files, exclude files, pattern
ownCloud Client has the ability to exclude files from the sync process.
The ignored files editor allows editing of custom patterns for files or
directories that should be excluded from the sync process.
There is a system wide list of default ignore patterns. These global defaults
cannot be directly modified within the editor. Hovering with the mouse will
reveal the location of the global exclude definition file.
.. image:: images/ignored_files_editor.png
:scale: 50%
Each line contains an ignore pattern string. Next to normal characters,
wildcards can be used to match an arbitrary number of characters, designated
by an asterisk (``*``) or a single character, designated by a question mark
(``?``). If a pattern ends with a slash character (``/``) the pattern is only
applied to directory components of the path to check.
If the checkbox is checked for a pattern in the editor it means that files
which are matched by this pattern are fleeting metadata which the client will
*remove*.
.. note:: Modifying the global exclude definition file might render the
client unusable or cause undesired behavior.
.. note:: Custom entries are currently not validated for syntactical
correctness by the editor, but might fail to load correctly.
In addition to this list, ownCloud Client always excludes files with
characters that cannot be synced to other file systems.
With version 1.5.0 it also ignores files that caused individual errors
while syncing for a three times. These are listed in the activity view.
There also is a button to retry the sync for another three times.
For more detailed information see :ref:`ignored-files-label`.

View File

@@ -20,6 +20,8 @@ PHP version:
ownCloud version:
Storage backend:
### Client configuration
Client version:
@@ -31,18 +33,14 @@ Installation path of client:
### Logs
#### output of `owncloud --logwindow` or `owncloud --logfile log.txt`
```
Insert your log output here
```
Please use Gist (https://gist.github.com/) or a similar code paster for longer
logs.
#### Web server error log
```
Insert your webserver log here
```
```Template for output < 10 lines```
#### ownCloud log (data/owncloud.log)
```
Insert your ownCloud log here
```
1. Output of `owncloud --logwindow` or `owncloud --logfile log.txt`
2. Web server error log:
3. ownCloud log (data/owncloud.log):

View File

@@ -4,4 +4,5 @@ Type=Application
Exec=@APPLICATION_EXECUTABLE@
Name=@APPLICATION_NAME@ desktop sync client
GenericName=Folder Sync
Icon=@APPLICATION_SHORTNAME@
Icon=@APPLICATION_EXECUTABLE@
Keywords=@APPLICATION_NAME@;syncing;file;sharing;

View File

@@ -7,10 +7,12 @@
<file>resources/folder-remote.png</file>
<file>resources/folder-sync.png</file>
<file>resources/folder-grey.png</file>
<file>resources/mirall-32.png</file>
<file>resources/mirall-128.png</file>
<file>resources/mirall-48.png</file>
<file>resources/task-ongoing.png</file>
<file>resources/view-refresh.png</file>
<file>resources/warning-16.png</file>
<file>resources/settings.png</file>
<file>resources/activity.png</file>
<file>resources/network.png</file>
<file>resources/owncloud_logo_blue.png</file>
</qresource>
</RCC>

BIN
resources/activity.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 991 B

BIN
resources/network.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
resources/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
resources/warning-16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

22
src/3rdparty/LGPL_EXCEPTION.txt vendored Normal file
View File

@@ -0,0 +1,22 @@
Digia Qt LGPL Exception version 1.1
As an additional permission to the GNU Lesser General Public License version
2.1, the object code form of a "work that uses the Library" may incorporate
material from a header file that is part of the Library. You may distribute
such object code under terms of your choice, provided that:
(i) the header files of the Library have not been modified; and
(ii) the incorporated material is limited to numerical parameters, data
structure layouts, accessors, macros, inline functions and
templates; and
(iii) you comply with the terms of Section 6 of the GNU Lesser General
Public License version 2.1.
Moreover, you may apply this exception to a modified version of the Library,
provided that such modification does not involve copying material from the
Library into the modified Library's header files unless such material is
limited to (i) numerical parameters; (ii) data structure layouts;
(iii) accessors; and (iv) small macros, templates and inline functions of
five lines or less in length.
Furthermore, you are not required to apply this additional permission to a
modified version of the Library.

165
src/3rdparty/QProgressIndicator/LICENSE vendored Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@@ -0,0 +1,137 @@
/*
*
* This file is part of QProgressIndicator,
* an open-source recent files menu widget
*
* Copyright (C) 2009 - 2010 Morgan Leborgne
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QRecentFilesMenu. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "QProgressIndicator.h"
#include <QPainter>
QProgressIndicator::QProgressIndicator(QWidget* parent)
: QWidget(parent),
m_angle(0),
m_timerId(-1),
m_delay(40),
m_displayedWhenStopped(false),
m_color(Qt::black)
{
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setFocusPolicy(Qt::NoFocus);
}
bool QProgressIndicator::isAnimated () const
{
return (m_timerId != -1);
}
void QProgressIndicator::setDisplayedWhenStopped(bool state)
{
m_displayedWhenStopped = state;
update();
}
bool QProgressIndicator::isDisplayedWhenStopped() const
{
return m_displayedWhenStopped;
}
void QProgressIndicator::startAnimation()
{
m_angle = 0;
if (m_timerId == -1)
m_timerId = startTimer(m_delay);
}
void QProgressIndicator::stopAnimation()
{
if (m_timerId != -1)
killTimer(m_timerId);
m_timerId = -1;
update();
}
void QProgressIndicator::setAnimationDelay(int delay)
{
if (m_timerId != -1)
killTimer(m_timerId);
m_delay = delay;
if (m_timerId != -1)
m_timerId = startTimer(m_delay);
}
void QProgressIndicator::setColor(const QColor & color)
{
m_color = color;
update();
}
QSize QProgressIndicator::sizeHint() const
{
return QSize(20,20);
}
int QProgressIndicator::heightForWidth(int w) const
{
return w;
}
void QProgressIndicator::timerEvent(QTimerEvent * /*event*/)
{
m_angle = (m_angle+30)%360;
update();
}
void QProgressIndicator::paintEvent(QPaintEvent * /*event*/)
{
if (!m_displayedWhenStopped && !isAnimated())
return;
int width = qMin(this->width(), this->height());
QPainter p(this);
p.setRenderHint(QPainter::Antialiasing);
int outerRadius = (width-1)*0.5;
int innerRadius = (width-1)*0.5*0.38;
int capsuleHeight = outerRadius - innerRadius;
int capsuleWidth = (width > 32 ) ? capsuleHeight *.23 : capsuleHeight *.35;
int capsuleRadius = capsuleWidth/2;
for (int i=0; i<12; i++)
{
QColor color = m_color;
color.setAlphaF(1.0f - (i/12.0f));
p.setPen(Qt::NoPen);
p.setBrush(color);
p.save();
p.translate(rect().center());
p.rotate(m_angle - i*30.0f);
p.drawRoundedRect(-capsuleWidth*0.5, -(innerRadius+capsuleHeight), capsuleWidth, capsuleHeight, capsuleRadius, capsuleRadius);
p.restore();
}
}

View File

@@ -0,0 +1,108 @@
/*
*
* This file is part of QProgressIndicator,
* an open-source recent files menu widget
*
* Copyright (C) 2009 - 2010 Morgan Leborgne
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QRecentFilesMenu. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef QPROGRESSINDICATOR_H
#define QPROGRESSINDICATOR_H
#include <QWidget>
#include <QColor>
/*!
\class QProgressIndicator
\brief The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is under way.
Progress indicators are indeterminate and do nothing more than spin to show that the application is busy.
\sa QProgressBar
*/
class QProgressIndicator : public QWidget
{
Q_OBJECT
Q_PROPERTY(int delay READ animationDelay WRITE setAnimationDelay)
Q_PROPERTY(bool displayedWhenStopped READ isDisplayedWhenStopped WRITE setDisplayedWhenStopped)
Q_PROPERTY(QColor color READ color WRITE setColor)
public:
QProgressIndicator(QWidget* parent = 0);
/*! Returns the delay between animation steps.
\return The number of milliseconds between animation steps. By default, the animation delay is set to 40 milliseconds.
\sa setAnimationDelay
*/
int animationDelay() const { return m_delay; }
/*! Returns a Boolean value indicating whether the component is currently animated.
\return Animation state.
\sa startAnimation stopAnimation
*/
bool isAnimated () const;
/*! Returns a Boolean value indicating whether the receiver shows itself even when it is not animating.
\return Return true if the progress indicator shows itself even when it is not animating. By default, it returns false.
\sa setDisplayedWhenStopped
*/
bool isDisplayedWhenStopped() const;
/*! Returns the color of the component.
\sa setColor
*/
const QColor & color() const { return m_color; }
virtual QSize sizeHint() const;
int heightForWidth(int w) const;
public slots:
/*! Starts the spin animation.
\sa stopAnimation isAnimated
*/
void startAnimation();
/*! Stops the spin animation.
\sa startAnimation isAnimated
*/
void stopAnimation();
/*! Sets the delay between animation steps.
Setting the \a delay to a value larger than 40 slows the animation, while setting the \a delay to a smaller value speeds it up.
\param delay The delay, in milliseconds.
\sa animationDelay
*/
void setAnimationDelay(int delay);
/*! Sets whether the component hides itself when it is not animating.
\param state The animation state. Set false to hide the progress indicator when it is not animating; otherwise true.
\sa isDisplayedWhenStopped
*/
void setDisplayedWhenStopped(bool state);
/*! Sets the color of the components to the given color.
\sa color
*/
void setColor(const QColor & color);
protected:
virtual void timerEvent(QTimerEvent * event);
virtual void paintEvent(QPaintEvent * event);
private:
int m_angle;
int m_timerId;
int m_delay;
bool m_displayedWhenStopped;
QColor m_color;
};
#endif // QPROGRESSINDICATOR_H

View File

@@ -0,0 +1,14 @@
## Description
The QProgressIndicator class lets an application display a progress indicator to show that a lengthy task is under way.
Will work at any size.
<img src="https://raw.github.com/mojocorp/QProgressIndicator/master/screen-capture-1.png" >
<img src="https://raw.github.com/mojocorp/QProgressIndicator/master/screen-capture-2.png" >
## Dependency
Qt 4.4.x.
## License
LGPL

245
src/3rdparty/csync/c_jhash.h vendored Normal file
View File

@@ -0,0 +1,245 @@
/*
* c_jhash.c Jenkins Hash
*
* Copyright (c) 1997 Bob Jenkins <bob_jenkins@burtleburtle.net>
*
* lookup8.c, by Bob Jenkins, January 4 1997, Public Domain.
* hash(), hash2(), hash3, and _c_mix() are externally useful functions.
* Routines to test the hash are included if SELF_TEST is defined.
* You can use this free for any purpose. It has no warranty.
*
* See http://burtleburtle.net/bob/hash/evahash.html
*/
/**
* @file c_jhash.h
*
* @brief Interface of the cynapses jhash implementation
*
* @defgroup cynJHashInternals cynapses libc jhash function
* @ingroup cynLibraryAPI
*
* @{
*/
#ifndef _C_JHASH_H
#define _C_JHASH_H
#include <stdint.h>
#define c_hashsize(n) ((uint8_t) 1 << (n))
#define c_hashmask(n) (xhashsize(n) - 1)
/**
* _c_mix -- Mix 3 32-bit values reversibly.
*
* For every delta with one or two bit set, and the deltas of all three
* high bits or all three low bits, whether the original value of a,b,c
* is almost all zero or is uniformly distributed,
* If _c_mix() is run forward or backward, at least 32 bits in a,b,c
* have at least 1/4 probability of changing.
* If _c_mix() is run forward, every bit of c will change between 1/3 and
* 2/3 of the time. (Well, 22/100 and 78/100 for some 2-bit deltas.)
* _c_mix() was built out of 36 single-cycle latency instructions in a
* structure that could supported 2x parallelism, like so:
* a -= b;
* a -= c; x = (c>>13);
* b -= c; a ^= x;
* b -= a; x = (a<<8);
* c -= a; b ^= x;
* c -= b; x = (b>>13);
* ...
*
* Unfortunately, superscalar Pentiums and Sparcs can't take advantage
* of that parallelism. They've also turned some of those single-cycle
* latency instructions into multi-cycle latency instructions. Still,
* this is the fastest good hash I could find. There were about 2^^68
* to choose from. I only looked at a billion or so.
*/
#define _c_mix(a,b,c) \
{ \
a -= b; a -= c; a ^= (c>>13); \
b -= c; b -= a; b ^= (a<<8); \
c -= a; c -= b; c ^= (b>>13); \
a -= b; a -= c; a ^= (c>>12); \
b -= c; b -= a; b ^= (a<<16); \
c -= a; c -= b; c ^= (b>>5); \
a -= b; a -= c; a ^= (c>>3); \
b -= c; b -= a; b ^= (a<<10); \
c -= a; c -= b; c ^= (b>>15); \
}
/**
* _c_mix64 -- Mix 3 64-bit values reversibly.
*
* _c_mix64() takes 48 machine instructions, but only 24 cycles on a superscalar
* machine (like Intel's new MMX architecture). It requires 4 64-bit
* registers for 4::2 parallelism.
* All 1-bit deltas, all 2-bit deltas, all deltas composed of top bits of
* (a,b,c), and all deltas of bottom bits were tested. All deltas were
* tested both on random keys and on keys that were nearly all zero.
* These deltas all cause every bit of c to change between 1/3 and 2/3
* of the time (well, only 113/400 to 287/400 of the time for some
* 2-bit delta). These deltas all cause at least 80 bits to change
* among (a,b,c) when the _c_mix is run either forward or backward (yes it
* is reversible).
* This implies that a hash using _c_mix64 has no funnels. There may be
* characteristics with 3-bit deltas or bigger, I didn't test for
* those.
*/
#define _c_mix64(a,b,c) \
{ \
a -= b; a -= c; a ^= (c>>43); \
b -= c; b -= a; b ^= (a<<9); \
c -= a; c -= b; c ^= (b>>8); \
a -= b; a -= c; a ^= (c>>38); \
b -= c; b -= a; b ^= (a<<23); \
c -= a; c -= b; c ^= (b>>5); \
a -= b; a -= c; a ^= (c>>35); \
b -= c; b -= a; b ^= (a<<49); \
c -= a; c -= b; c ^= (b>>11); \
a -= b; a -= c; a ^= (c>>12); \
b -= c; b -= a; b ^= (a<<18); \
c -= a; c -= b; c ^= (b>>22); \
}
/**
* @brief hash a variable-length key into a 32-bit value
*
* The best hash table sizes are powers of 2. There is no need to do
* mod a prime (mod is sooo slow!). If you need less than 32 bits,
* use a bitmask. For example, if you need only 10 bits, do
* h = (h & hashmask(10));
* In which case, the hash table should have hashsize(10) elements.
*
* Use for hash table lookup, or anything where one collision in 2^32 is
* acceptable. Do NOT use for cryptographic purposes.
*
* @param k The key (the unaligned variable-length array of bytes).
*
* @param length The length of the key, counting by bytes.
*
* @param initval Initial value, can be any 4-byte value.
*
* @return Returns a 32-bit value. Every bit of the key affects every bit
* of the return value. Every 1-bit and 2-bit delta achieves
* avalanche. About 36+6len instructions.
*/
static inline uint32_t c_jhash(const uint8_t *k, uint32_t length, uint32_t initval) {
uint32_t a,b,c,len;
/* Set up the internal state */
len = length;
a = b = 0x9e3779b9; /* the golden ratio; an arbitrary value */
c = initval; /* the previous hash value */
while (len >= 12) {
a += (k[0] +((uint32_t)k[1]<<8) +((uint32_t)k[2]<<16) +((uint32_t)k[3]<<24));
b += (k[4] +((uint32_t)k[5]<<8) +((uint32_t)k[6]<<16) +((uint32_t)k[7]<<24));
c += (k[8] +((uint32_t)k[9]<<8) +((uint32_t)k[10]<<16)+((uint32_t)k[11]<<24));
_c_mix(a,b,c);
k += 12; len -= 12;
}
/* handle the last 11 bytes */
c += length;
/* all the case statements fall through */
switch(len) {
case 11: c+=((uint32_t)k[10]<<24);
case 10: c+=((uint32_t)k[9]<<16);
case 9 : c+=((uint32_t)k[8]<<8);
/* the first byte of c is reserved for the length */
case 8 : b+=((uint32_t)k[7]<<24);
case 7 : b+=((uint32_t)k[6]<<16);
case 6 : b+=((uint32_t)k[5]<<8);
case 5 : b+=k[4];
case 4 : a+=((uint32_t)k[3]<<24);
case 3 : a+=((uint32_t)k[2]<<16);
case 2 : a+=((uint32_t)k[1]<<8);
case 1 : a+=k[0];
/* case 0: nothing left to add */
}
_c_mix(a,b,c);
return c;
}
/**
* @brief hash a variable-length key into a 64-bit value
*
* The best hash table sizes are powers of 2. There is no need to do
* mod a prime (mod is sooo slow!). If you need less than 64 bits,
* use a bitmask. For example, if you need only 10 bits, do
* h = (h & hashmask(10));
* In which case, the hash table should have hashsize(10) elements.
*
* Use for hash table lookup, or anything where one collision in 2^^64
* is acceptable. Do NOT use for cryptographic purposes.
*
* @param k The key (the unaligned variable-length array of bytes).
* @param length The length of the key, counting by bytes.
* @param intval Initial value, can be any 8-byte value.
*
* @return A 64-bit value. Every bit of the key affects every bit of
* the return value. No funnels. Every 1-bit and 2-bit delta
* achieves avalanche. About 41+5len instructions.
*/
static inline uint64_t c_jhash64(const uint8_t *k, uint64_t length, uint64_t intval) {
uint64_t a,b,c,len;
/* Set up the internal state */
len = length;
a = b = intval; /* the previous hash value */
c = 0x9e3779b97f4a7c13LL; /* the golden ratio; an arbitrary value */
/* handle most of the key */
while (len >= 24)
{
a += (k[0] +((uint64_t)k[ 1]<< 8)+((uint64_t)k[ 2]<<16)+((uint64_t)k[ 3]<<24)
+((uint64_t)k[4 ]<<32)+((uint64_t)k[ 5]<<40)+((uint64_t)k[ 6]<<48)+((uint64_t)k[ 7]<<56));
b += (k[8] +((uint64_t)k[ 9]<< 8)+((uint64_t)k[10]<<16)+((uint64_t)k[11]<<24)
+((uint64_t)k[12]<<32)+((uint64_t)k[13]<<40)+((uint64_t)k[14]<<48)+((uint64_t)k[15]<<56));
c += (k[16] +((uint64_t)k[17]<< 8)+((uint64_t)k[18]<<16)+((uint64_t)k[19]<<24)
+((uint64_t)k[20]<<32)+((uint64_t)k[21]<<40)+((uint64_t)k[22]<<48)+((uint64_t)k[23]<<56));
_c_mix64(a,b,c);
k += 24; len -= 24;
}
/* handle the last 23 bytes */
c += length;
switch(len) {
case 23: c+=((uint64_t)k[22]<<56);
case 22: c+=((uint64_t)k[21]<<48);
case 21: c+=((uint64_t)k[20]<<40);
case 20: c+=((uint64_t)k[19]<<32);
case 19: c+=((uint64_t)k[18]<<24);
case 18: c+=((uint64_t)k[17]<<16);
case 17: c+=((uint64_t)k[16]<<8);
/* the first byte of c is reserved for the length */
case 16: b+=((uint64_t)k[15]<<56);
case 15: b+=((uint64_t)k[14]<<48);
case 14: b+=((uint64_t)k[13]<<40);
case 13: b+=((uint64_t)k[12]<<32);
case 12: b+=((uint64_t)k[11]<<24);
case 11: b+=((uint64_t)k[10]<<16);
case 10: b+=((uint64_t)k[ 9]<<8);
case 9: b+=((uint64_t)k[ 8]);
case 8: a+=((uint64_t)k[ 7]<<56);
case 7: a+=((uint64_t)k[ 6]<<48);
case 6: a+=((uint64_t)k[ 5]<<40);
case 5: a+=((uint64_t)k[ 4]<<32);
case 4: a+=((uint64_t)k[ 3]<<24);
case 3: a+=((uint64_t)k[ 2]<<16);
case 2: a+=((uint64_t)k[ 1]<<8);
case 1: a+=((uint64_t)k[ 0]);
/* case 0: nothing left to add */
}
_c_mix64(a,b,c);
return c;
}
/**
* }@
*/
#endif /* _C_JHASH_H */

View File

@@ -0,0 +1,353 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#include "fancylineedit.h"
#include <QEvent>
#include <QDebug>
#include <QString>
#include <QPropertyAnimation>
#include <QApplication>
#include <QMenu>
#include <QMouseEvent>
#include <QLabel>
#include <QAbstractButton>
#include <QPainter>
#include <QStyle>
#include <QPaintEvent>
#include <QDesktopWidget>
/*! Opens a menu at the specified widget position.
* This functions computes the position where to show the menu, and opens it with
* QMenu::exec().
* \param menu The menu to open
* \param widget The widget next to which to open the menu
*/
static void execMenuAtWidget(QMenu *menu, QWidget *widget)
{
QPoint p;
QRect screen = qApp->desktop()->availableGeometry(widget);
QSize sh = menu->sizeHint();
QRect rect = widget->rect();
if (widget->isRightToLeft()) {
if (widget->mapToGlobal(QPoint(0, rect.bottom())).y() + sh.height() <= screen.height())
p = widget->mapToGlobal(rect.bottomRight());
else
p = widget->mapToGlobal(rect.topRight() - QPoint(0, sh.height()));
p.rx() -= sh.width();
} else {
if (widget->mapToGlobal(QPoint(0, rect.bottom())).y() + sh.height() <= screen.height())
p = widget->mapToGlobal(rect.bottomLeft());
else
p = widget->mapToGlobal(rect.topLeft() - QPoint(0, sh.height()));
}
p.rx() = qMax(screen.left(), qMin(p.x(), screen.right() - sh.width()));
p.ry() += 1;
menu->exec(p);
}
/*!
\class Utils::FancyLineEdit
\brief A line edit with an embedded pixmap on one side that is connected to
a menu.
Additionally, it can display a grayed hintText (like "Type Here to")
when not focused and empty. When connecting to the changed signals and
querying text, one has to be aware that the text is set to that hint
text if isShowingHintText() returns true (that is, does not contain
valid user input).
*/
enum { margin = 6 };
#define ICONBUTTON_HEIGHT 18
#define FADE_TIME 160
namespace Utils {
// --------- FancyLineEditPrivate
class FancyLineEditPrivate : public QObject
{
public:
explicit FancyLineEditPrivate(FancyLineEdit *parent);
virtual bool eventFilter(QObject *obj, QEvent *event);
FancyLineEdit *m_lineEdit;
QPixmap m_pixmap[2];
QMenu *m_menu[2];
bool m_menuTabFocusTrigger[2];
IconButton *m_iconbutton[2];
bool m_iconEnabled[2];
};
FancyLineEditPrivate::FancyLineEditPrivate(FancyLineEdit *parent) :
QObject(parent), m_lineEdit(parent)
{
for (int i = 0; i < 2; ++i) {
m_menu[i] = 0;
m_menuTabFocusTrigger[i] = false;
m_iconbutton[i] = new IconButton(parent);
m_iconbutton[i]->installEventFilter(this);
m_iconbutton[i]->hide();
m_iconbutton[i]->setAutoHide(false);
m_iconEnabled[i] = false;
}
}
bool FancyLineEditPrivate::eventFilter(QObject *obj, QEvent *event)
{
int buttonIndex = -1;
for (int i = 0; i < 2; ++i) {
if (obj == m_iconbutton[i]) {
buttonIndex = i;
break;
}
}
if (buttonIndex == -1)
return QObject::eventFilter(obj, event);
switch (event->type()) {
case QEvent::FocusIn:
if (m_menuTabFocusTrigger[buttonIndex] && m_menu[buttonIndex]) {
m_lineEdit->setFocus();
execMenuAtWidget(m_menu[buttonIndex], m_iconbutton[buttonIndex]);
return true;
}
default:
break;
}
return QObject::eventFilter(obj, event);
}
// --------- FancyLineEdit
FancyLineEdit::FancyLineEdit(QWidget *parent) :
QLineEdit(parent),
d(new FancyLineEditPrivate(this))
{
ensurePolished();
updateMargins();
connect(this, SIGNAL(textChanged(QString)), this, SLOT(checkButtons(QString)));
connect(d->m_iconbutton[Left], SIGNAL(clicked()), this, SLOT(iconClicked()));
connect(d->m_iconbutton[Right], SIGNAL(clicked()), this, SLOT(iconClicked()));
}
void FancyLineEdit::checkButtons(const QString &text)
{
if (m_oldText.isEmpty() || text.isEmpty()) {
for (int i = 0; i < 2; ++i) {
if (d->m_iconbutton[i]->hasAutoHide())
d->m_iconbutton[i]->animateShow(!text.isEmpty());
}
m_oldText = text;
}
}
FancyLineEdit::~FancyLineEdit()
{
}
void FancyLineEdit::setButtonVisible(Side side, bool visible)
{
d->m_iconbutton[side]->setVisible(visible);
d->m_iconEnabled[side] = visible;
updateMargins();
}
bool FancyLineEdit::isButtonVisible(Side side) const
{
return d->m_iconEnabled[side];
}
void FancyLineEdit::iconClicked()
{
IconButton *button = qobject_cast<IconButton *>(sender());
int index = -1;
for (int i = 0; i < 2; ++i)
if (d->m_iconbutton[i] == button)
index = i;
if (index == -1)
return;
if (d->m_menu[index]) {
execMenuAtWidget(d->m_menu[index], button);
} else {
emit buttonClicked((Side)index);
if (index == Left)
emit leftButtonClicked();
else if (index == Right)
emit rightButtonClicked();
}
}
void FancyLineEdit::updateMargins()
{
bool leftToRight = (layoutDirection() == Qt::LeftToRight);
Side realLeft = (leftToRight ? Left : Right);
Side realRight = (leftToRight ? Right : Left);
int leftMargin = d->m_iconbutton[realLeft]->pixmap().width() + 8;
int rightMargin = d->m_iconbutton[realRight]->pixmap().width() + 8;
// Note KDE does not reserve space for the highlight color
if (style()->inherits("OxygenStyle")) {
leftMargin = qMax(24, leftMargin);
rightMargin = qMax(24, rightMargin);
}
QMargins margins((d->m_iconEnabled[realLeft] ? leftMargin : 0), 0,
(d->m_iconEnabled[realRight] ? rightMargin : 0), 0);
setTextMargins(margins);
}
void FancyLineEdit::updateButtonPositions()
{
QRect contentRect = rect();
for (int i = 0; i < 2; ++i) {
Side iconpos = (Side)i;
if (layoutDirection() == Qt::RightToLeft)
iconpos = (iconpos == Left ? Right : Left);
if (iconpos == FancyLineEdit::Right) {
const int iconoffset = textMargins().right() + 4;
d->m_iconbutton[i]->setGeometry(contentRect.adjusted(width() - iconoffset, 0, 0, 0));
} else {
const int iconoffset = textMargins().left() + 4;
d->m_iconbutton[i]->setGeometry(contentRect.adjusted(0, 0, -width() + iconoffset, 0));
}
}
}
void FancyLineEdit::resizeEvent(QResizeEvent *)
{
updateButtonPositions();
}
void FancyLineEdit::setButtonPixmap(Side side, const QPixmap &buttonPixmap)
{
d->m_iconbutton[side]->setPixmap(buttonPixmap);
updateMargins();
updateButtonPositions();
update();
}
QPixmap FancyLineEdit::buttonPixmap(Side side) const
{
return d->m_pixmap[side];
}
void FancyLineEdit::setButtonMenu(Side side, QMenu *buttonMenu)
{
d->m_menu[side] = buttonMenu;
d->m_iconbutton[side]->setIconOpacity(1.0);
}
QMenu *FancyLineEdit::buttonMenu(Side side) const
{
return d->m_menu[side];
}
bool FancyLineEdit::hasMenuTabFocusTrigger(Side side) const
{
return d->m_menuTabFocusTrigger[side];
}
void FancyLineEdit::setMenuTabFocusTrigger(Side side, bool v)
{
if (d->m_menuTabFocusTrigger[side] == v)
return;
d->m_menuTabFocusTrigger[side] = v;
d->m_iconbutton[side]->setFocusPolicy(v ? Qt::TabFocus : Qt::NoFocus);
}
bool FancyLineEdit::hasAutoHideButton(Side side) const
{
return d->m_iconbutton[side]->hasAutoHide();
}
void FancyLineEdit::setAutoHideButton(Side side, bool h)
{
d->m_iconbutton[side]->setAutoHide(h);
if (h)
d->m_iconbutton[side]->setIconOpacity(text().isEmpty() ? 0.0 : 1.0);
else
d->m_iconbutton[side]->setIconOpacity(1.0);
}
void FancyLineEdit::setButtonToolTip(Side side, const QString &tip)
{
d->m_iconbutton[side]->setToolTip(tip);
}
void FancyLineEdit::setButtonFocusPolicy(Side side, Qt::FocusPolicy policy)
{
d->m_iconbutton[side]->setFocusPolicy(policy);
}
// IconButton - helper class to represent a clickable icon
IconButton::IconButton(QWidget *parent)
: QAbstractButton(parent), m_autoHide(false)
{
setCursor(Qt::ArrowCursor);
setFocusPolicy(Qt::NoFocus);
}
void IconButton::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRect pixmapRect = QRect(0, 0, m_pixmap.width(), m_pixmap.height());
pixmapRect.moveCenter(rect().center());
if (m_autoHide)
painter.setOpacity(m_iconOpacity);
painter.drawPixmap(pixmapRect, m_pixmap);
}
void IconButton::animateShow(bool visible)
{
if (visible) {
QPropertyAnimation *animation = new QPropertyAnimation(this, "iconOpacity");
animation->setDuration(FADE_TIME);
animation->setEndValue(1.0);
animation->start(QAbstractAnimation::DeleteWhenStopped);
} else {
QPropertyAnimation *animation = new QPropertyAnimation(this, "iconOpacity");
animation->setDuration(FADE_TIME);
animation->setEndValue(0.0);
animation->start(QAbstractAnimation::DeleteWhenStopped);
}
}
} // namespace Utils

View File

@@ -0,0 +1,121 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#ifndef FANCYLINEEDIT_H
#define FANCYLINEEDIT_H
#include <QLineEdit>
#include <QAbstractButton>
namespace Utils {
class FancyLineEditPrivate;
class IconButton: public QAbstractButton
{
Q_OBJECT
Q_PROPERTY(float iconOpacity READ iconOpacity WRITE setIconOpacity)
Q_PROPERTY(bool autoHide READ hasAutoHide WRITE setAutoHide)
Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
public:
explicit IconButton(QWidget *parent = 0);
void paintEvent(QPaintEvent *event);
void setPixmap(const QPixmap &pixmap) { m_pixmap = pixmap; update(); }
QPixmap pixmap() const { return m_pixmap; }
float iconOpacity() { return m_iconOpacity; }
void setIconOpacity(float value) { m_iconOpacity = value; update(); }
void animateShow(bool visible);
void setAutoHide(bool hide) { m_autoHide = hide; }
bool hasAutoHide() const { return m_autoHide; }
private:
float m_iconOpacity;
bool m_autoHide;
QPixmap m_pixmap;
};
class FancyLineEdit : public QLineEdit
{
Q_OBJECT
Q_ENUMS(Side)
public:
enum Side {Left = 0, Right = 1};
explicit FancyLineEdit(QWidget *parent = 0);
~FancyLineEdit();
QPixmap buttonPixmap(Side side) const;
void setButtonPixmap(Side side, const QPixmap &pixmap);
QMenu *buttonMenu(Side side) const;
void setButtonMenu(Side side, QMenu *menu);
void setButtonVisible(Side side, bool visible);
bool isButtonVisible(Side side) const;
void setButtonToolTip(Side side, const QString &);
void setButtonFocusPolicy(Side side, Qt::FocusPolicy policy);
// Set whether tabbing in will trigger the menu.
void setMenuTabFocusTrigger(Side side, bool v);
bool hasMenuTabFocusTrigger(Side side) const;
// Set if icon should be hidden when text is empty
void setAutoHideButton(Side side, bool h);
bool hasAutoHideButton(Side side) const;
#if QT_VERSION <= 0x040700
void setPlaceholderText( const QString& ) { }
#endif
signals:
void buttonClicked(Utils::FancyLineEdit::Side side);
void leftButtonClicked();
void rightButtonClicked();
private slots:
void checkButtons(const QString &);
void iconClicked();
protected:
virtual void resizeEvent(QResizeEvent *e);
private:
void updateMargins();
void updateButtonPositions();
friend class Utils::FancyLineEditPrivate;
FancyLineEditPrivate *d;
QString m_oldText;
};
} // namespace Utils
#endif // FANCYLINEEDIT_H

3
src/3rdparty/qjson/AUTHORS vendored Normal file
View File

@@ -0,0 +1,3 @@
Eeli Reilin <eeli@emicode.fi>
Luis Gustavo S. Barreto <gustavosbarreto@gmail.com>
Stephen Kockentiedt <Stephen@Kockentiedt.name>

26
src/3rdparty/qjson/LICENSE vendored Normal file
View File

@@ -0,0 +1,26 @@
Copyright 2011 Eeli Reilin. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL EELI REILIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation
are those of the authors and should not be interpreted as representing
official policies, either expressed or implied, of Eeli Reilin.

96
src/3rdparty/qjson/README vendored Normal file
View File

@@ -0,0 +1,96 @@
########################################################################
1. INTRODUCTION
The Json class is a simple class for parsing JSON data into a QVariant
hierarchies. Now, we can also reverse the process and serialize
QVariant hierarchies into valid JSON data.
########################################################################
2. HOW TO USE
The parser is really easy to use. Let's say we have the following
QString of JSON data:
------------------------------------------------------------------------
{
"encoding" : "UTF-8",
"plug-ins" : [
"python",
"c++",
"ruby"
],
"indent" : {
"length" : 3,
"use_space" : true
}
}
------------------------------------------------------------------------
We would first call the parse-method:
------------------------------------------------------------------------
//Say that we're using the QtJson namespace
using namespace QtJson;
bool ok;
//json is a QString containing the JSON data
QVariantMap result = Json::parse(json, ok).toMap();
if(!ok) {
qFatal("An error occurred during parsing");
exit(1);
}
------------------------------------------------------------------------
Assuming the parsing process completed without errors, we would then
go through the hierarchy:
------------------------------------------------------------------------
qDebug() << "encoding:" << result["encoding"].toString();
qDebug() << "plugins:";
foreach(QVariant plugin, result["plug-ins"].toList()) {
qDebug() << "\t-" << plugin.toString();
}
QVariantMap nestedMap = result["indent"].toMap();
qDebug() << "length:" << nestedMap["length"].toInt();
qDebug() << "use_space:" << nestedMap["use_space"].toBool();
------------------------------------------------------------------------
The previous code would print out the following:
------------------------------------------------------------------------
encoding: "UTF-8"
plugins:
- "python"
- "c++"
- "ruby"
length: 3
use_space: true
------------------------------------------------------------------------
To write JSON data from Qt object is as simple as parsing:
------------------------------------------------------------------------
QVariantMap map;
map["name"] = "Name";
map["age"] = 22;
QByteArray data = Json::serialize(map);
------------------------------------------------------------------------
The byte array 'data' contains valid JSON data:
------------------------------------------------------------------------
{
name: "Luis Gustavo",
age: 22,
}
------------------------------------------------------------------------
########################################################################
4. CONTRIBUTING
The code is available to download at GitHub. Contribute if you dare!

653
src/3rdparty/qjson/json.cpp vendored Normal file
View File

@@ -0,0 +1,653 @@
/* Copyright 2011 Eeli Reilin. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL EELI REILIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation
* are those of the authors and should not be interpreted as representing
* official policies, either expressed or implied, of Eeli Reilin.
*/
/**
* \file json.cpp
*/
#include "json.h"
namespace QtJson
{
static QString sanitizeString(QString str);
static QByteArray join(const QList<QByteArray> &list, const QByteArray &sep);
static QVariant parseValue(const QString &json, int &index, bool &success);
static QVariant parseObject(const QString &json, int &index, bool &success);
static QVariant parseArray(const QString &json, int &index, bool &success);
static QVariant parseString(const QString &json, int &index, bool &success);
static QVariant parseNumber(const QString &json, int &index);
static int lastIndexOfNumber(const QString &json, int index);
static void eatWhitespace(const QString &json, int &index);
static int lookAhead(const QString &json, int index);
static int nextToken(const QString &json, int &index);
/***** public *****/
/**
* parse
*/
QVariant parse(const QString &json)
{
bool success = true;
return parse(json, success);
}
/**
* parse
*/
QVariant parse(const QString &json, bool &success)
{
success = true;
//Return an empty QVariant if the JSON data is either null or empty
if(!json.isNull() || !json.isEmpty())
{
QString data = json;
//We'll start from index 0
int index = 0;
//Parse the first value
QVariant value = parseValue(data, index, success);
//Return the parsed value
return value;
}
else
{
//Return the empty QVariant
return QVariant();
}
}
QByteArray serialize(const QVariant &data)
{
bool success = true;
return serialize(data, success);
}
QByteArray serialize(const QVariant &data, bool &success)
{
QByteArray str;
success = true;
if(!data.isValid()) // invalid or null?
{
str = "null";
}
else if((data.type() == QVariant::List) || (data.type() == QVariant::StringList)) // variant is a list?
{
QList<QByteArray> values;
const QVariantList list = data.toList();
Q_FOREACH(const QVariant& v, list)
{
QByteArray serializedValue = serialize(v);
if(serializedValue.isNull())
{
success = false;
break;
}
values << serializedValue;
}
str = "[ " + join( values, ", " ) + " ]";
}
else if(data.type() == QVariant::Hash) // variant is a hash?
{
const QVariantHash vhash = data.toHash();
QHashIterator<QString, QVariant> it( vhash );
str = "{ ";
QList<QByteArray> pairs;
while(it.hasNext())
{
it.next();
QByteArray serializedValue = serialize(it.value());
if(serializedValue.isNull())
{
success = false;
break;
}
pairs << sanitizeString(it.key()).toUtf8() + " : " + serializedValue;
}
str += join(pairs, ", ");
str += " }";
}
else if(data.type() == QVariant::Map) // variant is a map?
{
const QVariantMap vmap = data.toMap();
QMapIterator<QString, QVariant> it( vmap );
str = "{ ";
QList<QByteArray> pairs;
while(it.hasNext())
{
it.next();
QByteArray serializedValue = serialize(it.value());
if(serializedValue.isNull())
{
success = false;
break;
}
pairs << sanitizeString(it.key()).toUtf8() + " : " + serializedValue;
}
str += join(pairs, ", ");
str += " }";
}
else if((data.type() == QVariant::String) || (data.type() == QVariant::ByteArray)) // a string or a byte array?
{
str = sanitizeString(data.toString()).toUtf8();
}
else if(data.type() == QVariant::Double) // double?
{
str = QByteArray::number(data.toDouble(), 'g', 20);
if(!str.contains(".") && ! str.contains("e"))
{
str += ".0";
}
}
else if (data.type() == QVariant::Bool) // boolean value?
{
str = data.toBool() ? "true" : "false";
}
else if (data.type() == QVariant::ULongLong) // large unsigned number?
{
str = QByteArray::number(data.value<qulonglong>());
}
else if ( data.canConvert<qlonglong>() ) // any signed number?
{
str = QByteArray::number(data.value<qlonglong>());
}
else if (data.canConvert<long>())
{
str = QString::number(data.value<long>()).toUtf8();
}
else if (data.canConvert<QString>()) // can value be converted to string?
{
// this will catch QDate, QDateTime, QUrl, ...
str = sanitizeString(data.toString()).toUtf8();
}
else
{
success = false;
}
if (success)
{
return str;
}
else
{
return QByteArray();
}
}
/***** private *****/
/**
* \enum JsonToken
*/
enum JsonToken
{
JsonTokenNone = 0,
JsonTokenCurlyOpen = 1,
JsonTokenCurlyClose = 2,
JsonTokenSquaredOpen = 3,
JsonTokenSquaredClose = 4,
JsonTokenColon = 5,
JsonTokenComma = 6,
JsonTokenString = 7,
JsonTokenNumber = 8,
JsonTokenTrue = 9,
JsonTokenFalse = 10,
JsonTokenNull = 11
};
static QString sanitizeString(QString str)
{
str.replace(QLatin1String("\\"), QLatin1String("\\\\"));
str.replace(QLatin1String("\""), QLatin1String("\\\""));
str.replace(QLatin1String("\b"), QLatin1String("\\b"));
str.replace(QLatin1String("\f"), QLatin1String("\\f"));
str.replace(QLatin1String("\n"), QLatin1String("\\n"));
str.replace(QLatin1String("\r"), QLatin1String("\\r"));
str.replace(QLatin1String("\t"), QLatin1String("\\t"));
return QString(QLatin1String("\"%1\"")).arg(str);
}
static QByteArray join(const QList<QByteArray> &list, const QByteArray &sep)
{
QByteArray res;
Q_FOREACH(const QByteArray &i, list)
{
if(!res.isEmpty())
{
res += sep;
}
res += i;
}
return res;
}
/**
* parseValue
*/
static QVariant parseValue(const QString &json, int &index, bool &success)
{
//Determine what kind of data we should parse by
//checking out the upcoming token
switch(lookAhead(json, index))
{
case JsonTokenString:
return parseString(json, index, success);
case JsonTokenNumber:
return parseNumber(json, index);
case JsonTokenCurlyOpen:
return parseObject(json, index, success);
case JsonTokenSquaredOpen:
return parseArray(json, index, success);
case JsonTokenTrue:
nextToken(json, index);
return QVariant(true);
case JsonTokenFalse:
nextToken(json, index);
return QVariant(false);
case JsonTokenNull:
nextToken(json, index);
return QVariant();
case JsonTokenNone:
break;
}
//If there were no tokens, flag the failure and return an empty QVariant
success = false;
return QVariant();
}
/**
* parseObject
*/
static QVariant parseObject(const QString &json, int &index, bool &success)
{
QVariantMap map;
int token;
//Get rid of the whitespace and increment index
nextToken(json, index);
//Loop through all of the key/value pairs of the object
bool done = false;
while(!done)
{
//Get the upcoming token
token = lookAhead(json, index);
if(token == JsonTokenNone)
{
success = false;
return QVariantMap();
}
else if(token == JsonTokenComma)
{
nextToken(json, index);
}
else if(token == JsonTokenCurlyClose)
{
nextToken(json, index);
return map;
}
else
{
//Parse the key/value pair's name
QString name = parseString(json, index, success).toString();
if(!success)
{
return QVariantMap();
}
//Get the next token
token = nextToken(json, index);
//If the next token is not a colon, flag the failure
//return an empty QVariant
if(token != JsonTokenColon)
{
success = false;
return QVariant(QVariantMap());
}
//Parse the key/value pair's value
QVariant value = parseValue(json, index, success);
if(!success)
{
return QVariantMap();
}
//Assign the value to the key in the map
map[name] = value;
}
}
//Return the map successfully
return QVariant(map);
}
/**
* parseArray
*/
static QVariant parseArray(const QString &json, int &index, bool &success)
{
QVariantList list;
nextToken(json, index);
bool done = false;
while(!done)
{
int token = lookAhead(json, index);
if(token == JsonTokenNone)
{
success = false;
return QVariantList();
}
else if(token == JsonTokenComma)
{
nextToken(json, index);
}
else if(token == JsonTokenSquaredClose)
{
nextToken(json, index);
break;
}
else
{
QVariant value = parseValue(json, index, success);
if(!success)
{
return QVariantList();
}
list.push_back(value);
}
}
return QVariant(list);
}
/**
* parseString
*/
static QVariant parseString(const QString &json, int &index, bool &success)
{
QString s;
QChar c;
eatWhitespace(json, index);
c = json[index++];
bool complete = false;
while(!complete)
{
if(index == json.size())
{
break;
}
c = json[index++];
if(c == '\"')
{
complete = true;
break;
}
else if(c == '\\')
{
if(index == json.size())
{
break;
}
c = json[index++];
if(c == '\"')
{
s.append('\"');
}
else if(c == '\\')
{
s.append('\\');
}
else if(c == '/')
{
s.append('/');
}
else if(c == 'b')
{
s.append('\b');
}
else if(c == 'f')
{
s.append('\f');
}
else if(c == 'n')
{
s.append('\n');
}
else if(c == 'r')
{
s.append('\r');
}
else if(c == 't')
{
s.append('\t');
}
else if(c == 'u')
{
int remainingLength = json.size() - index;
if(remainingLength >= 4)
{
QString unicodeStr = json.mid(index, 4);
int symbol = unicodeStr.toInt(0, 16);
s.append(QChar(symbol));
index += 4;
}
else
{
break;
}
}
}
else
{
s.append(c);
}
}
if(!complete)
{
success = false;
return QVariant();
}
return QVariant(s);
}
/**
* parseNumber
*/
static QVariant parseNumber(const QString &json, int &index)
{
eatWhitespace(json, index);
int lastIndex = lastIndexOfNumber(json, index);
int charLength = (lastIndex - index) + 1;
QString numberStr;
numberStr = json.mid(index, charLength);
index = lastIndex + 1;
if (numberStr.contains('.')) {
return QVariant(numberStr.toDouble(NULL));
} else if (numberStr.startsWith('-')) {
return QVariant(numberStr.toLongLong(NULL));
} else {
return QVariant(numberStr.toULongLong(NULL));
}
}
/**
* lastIndexOfNumber
*/
static int lastIndexOfNumber(const QString &json, int index)
{
int lastIndex;
for(lastIndex = index; lastIndex < json.size(); lastIndex++)
{
if(QString("0123456789+-.eE").indexOf(json[lastIndex]) == -1)
{
break;
}
}
return lastIndex -1;
}
/**
* eatWhitespace
*/
static void eatWhitespace(const QString &json, int &index)
{
for(; index < json.size(); index++)
{
if(QString(" \t\n\r").indexOf(json[index]) == -1)
{
break;
}
}
}
/**
* lookAhead
*/
static int lookAhead(const QString &json, int index)
{
int saveIndex = index;
return nextToken(json, saveIndex);
}
/**
* nextToken
*/
static int nextToken(const QString &json, int &index)
{
eatWhitespace(json, index);
if(index == json.size())
{
return JsonTokenNone;
}
QChar c = json[index];
index++;
switch(c.toLatin1())
{
case '{': return JsonTokenCurlyOpen;
case '}': return JsonTokenCurlyClose;
case '[': return JsonTokenSquaredOpen;
case ']': return JsonTokenSquaredClose;
case ',': return JsonTokenComma;
case '"': return JsonTokenString;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case '-': return JsonTokenNumber;
case ':': return JsonTokenColon;
}
index--;
int remainingLength = json.size() - index;
//True
if(remainingLength >= 4)
{
if (json[index] == 't' && json[index + 1] == 'r' &&
json[index + 2] == 'u' && json[index + 3] == 'e')
{
index += 4;
return JsonTokenTrue;
}
}
//False
if (remainingLength >= 5)
{
if (json[index] == 'f' && json[index + 1] == 'a' &&
json[index + 2] == 'l' && json[index + 3] == 's' &&
json[index + 4] == 'e')
{
index += 5;
return JsonTokenFalse;
}
}
//Null
if (remainingLength >= 4)
{
if (json[index] == 'n' && json[index + 1] == 'u' &&
json[index + 2] == 'l' && json[index + 3] == 'l')
{
index += 4;
return JsonTokenNull;
}
}
return JsonTokenNone;
}
} //end namespace

85
src/3rdparty/qjson/json.h vendored Normal file
View File

@@ -0,0 +1,85 @@
/* Copyright 2011 Eeli Reilin. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL EELI REILIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation
* are those of the authors and should not be interpreted as representing
* official policies, either expressed or implied, of Eeli Reilin.
*/
/**
* \file json.h
*/
#ifndef JSON_H
#define JSON_H
#include <QVariant>
#include <QString>
/**
* \namespace QtJson
* \brief A JSON data parser
*
* Json parses a JSON data into a QVariant hierarchy.
*/
namespace QtJson
{
/**
* Parse a JSON string
*
* \param json The JSON data
*/
QVariant parse(const QString &json);
/**
* Parse a JSON string
*
* \param json The JSON data
* \param success The success of the parsing
*/
QVariant parse(const QString &json, bool &success);
/**
* This method generates a textual JSON representation
*
* \param data The JSON data generated by the parser.
*
* \return QByteArray Textual JSON representation
*/
QByteArray serialize(const QVariant &data);
/**
* This method generates a textual JSON representation
*
* \param data The JSON data generated by the parser.
* \param success The success of the serialization
*
* \return QByteArray Textual JSON representation
*/
QByteArray serialize(const QVariant &data, bool &success);
} //end namespace
#endif //JSON_H

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