diff --git a/ChangeLog b/ChangeLog index 9d3653c4f..539f02b17 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,41 @@ ChangeLog ========= +version 1.5.1 (release 2014-02-13 ) + * Added an auto updater that updates the client if a + more recent version was found automatically (Windows, Mac OS X) + * Added a button to the account dialog that gives information + about the encryption layer used for communication, plus a + certificate information widget + * Preserve the permission settings of local files rather than + setting them to a default (Bug #820) + * Handle windows lnk files correctly (Bug #1307) + * Detect removes and renames in read only shares and + restore the gone away files. (Bug #1386) + * Fixes sign in/sign out and password dialog. (Bug #1353) + * Fixed error messages (Bug #1394) + * Lots of fixes for building with Qt5 + * Changes to network limits are now also applied during a + sync run + * Fixed mem leak after via valgrind on Mac + * Imported the ocsync library into miralls repository. + Adopted all build systems and packaging to that. + * Introduce a new linux packaging scheme following the + debian upstream scheme + * Use a refactored Linux file system watcher based on + inotify, incl. unit tests + * Wizard: Gracefully fall back to HTTP if HTTPS connection + fails, issuing a warning + * Fixed translation misses in the propagator + * Fixes in proxy configuration + * Fixes in sync journal handling + * Fix the upload progress if the local source is still + changing when the upload begins. + * Add proxy support to owncloud commandline client + * NSIS fixes + * A lot of other fixes and minor improvements + * Improve Qt5 compatability + 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 diff --git a/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist b/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist new file mode 100644 index 000000000..8339abffb Binary files /dev/null and b/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist differ diff --git a/doc/accountsetup.rst b/doc/accountsetup.rst index a884687f8..d3d15509e 100644 --- a/doc/accountsetup.rst +++ b/doc/accountsetup.rst @@ -1,12 +1,12 @@ 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 +If no account has been configured, the ownCloud Client will automatically +assist 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. +As a first step, specify the URL to your Server. This is the same address +that is used in the browser. .. image:: images/wizard_url.png :scale: 50 % @@ -16,22 +16,30 @@ like you would when you open your ownCloud instance inside a browser. 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. +Next, enter the username and password. These are the same credentials used +to log into 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. +called `ownCloud`, which will be created in the 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: +At this time, the synchronization between the root directories of the +ownCloud server will begin. .. image:: images/wizard_overview.png :scale: 50 % + +If selecting a local folder that already contains data, there are +two options that exist. + +* Keep local data: If selected, the files in the local folder on the + client will be synced up to the ownCloud server. +* Start a clean sync: If selected, all files in the local folder on + the client will be deleted and therefore not synced to the ownCloud + server. diff --git a/doc/architecture.rst b/doc/architecture.rst index 7098a0855..4099bba39 100644 --- a/doc/architecture.rst +++ b/doc/architecture.rst @@ -123,7 +123,7 @@ 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. +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 diff --git a/doc/autoupdate.rst b/doc/autoupdate.rst index 36c8c94dd..f3175dc87 100644 --- a/doc/autoupdate.rst +++ b/doc/autoupdate.rst @@ -51,21 +51,23 @@ Windows There are two alternative approaches: -1. In ``HKEY_LOCAL_MACHINE\Software\ownCloud\ownCloud``, add a key of type DWORD - with the value ``skipUpdateCheck`` and the value 1 to the machine. This key +1. In ``HKEY_LOCAL_MACHINE\Software\ownCloud\ownCloud``, add a key ``skipUpdateCheck`` (of type DWORD) with the value 1 to the machine. This key can be manually overrideen by the same value in ``HKEY_CURRENT_USER``. -2. In ``HKEY_LOCAL_MACHINE\Software\Policies\ownCloud\ownCloud``, add a key of - type DWORD the value ``skipUpdateCheck`` and the value 1 to the machine. +2. In ``HKEY_LOCAL_MACHINE\Software\Policies\ownCloud\ownCloud``, add a key + ``skipUpdateCheck`` (of type DWORD) with the value 1 to the machine. Setting the value here cannot be overridden by the user and is the preferred way to control the updater behavior via Group Policies. Mac OS X ^^^^^^^^ -You can disable the update check via the system-wide ``.plist`` file located +You can disable the update check via a system-wide ``.plist`` file located at ``/Library/Preferences/com.owncloud.desktopclient.plist``. Add a new root level item of type bool and the name ``skipUpdateCheck`` and set it to ``true``. +You can also just copy the file +``owncloud.app/Contents/Resources/deny_autoupdate_com.owncloud.desktopclient.plist``` +to ``/Library/Preferences/com.owncloud.desktopclient.plist``. Linux ^^^^^ diff --git a/doc/images/folderwizard_local.png b/doc/images/folderwizard_local.png new file mode 100644 index 000000000..68bd7bf6c Binary files /dev/null and b/doc/images/folderwizard_local.png differ diff --git a/doc/images/folderwizard_remote.png b/doc/images/folderwizard_remote.png new file mode 100644 index 000000000..1e70bd213 Binary files /dev/null and b/doc/images/folderwizard_remote.png differ diff --git a/doc/images/icon.png b/doc/images/icon.png index 11806395d..28dee23cc 100644 Binary files a/doc/images/icon.png and b/doc/images/icon.png differ diff --git a/doc/images/ignored_files_editor.png b/doc/images/ignored_files_editor.png index 8ad8cba0d..d3a9b52e3 100644 Binary files a/doc/images/ignored_files_editor.png and b/doc/images/ignored_files_editor.png differ diff --git a/doc/images/menu.png b/doc/images/menu.png index 5d4f270c1..6101e5861 100644 Binary files a/doc/images/menu.png and b/doc/images/menu.png differ diff --git a/doc/images/settings_activity.png b/doc/images/settings_activity.png new file mode 100644 index 000000000..e93f5b340 Binary files /dev/null and b/doc/images/settings_activity.png differ diff --git a/doc/images/settings_general.png b/doc/images/settings_general.png index 6bae86427..fb896191b 100644 Binary files a/doc/images/settings_general.png and b/doc/images/settings_general.png differ diff --git a/doc/images/settings_network.png b/doc/images/settings_network.png index df68c63b4..1a515192b 100644 Binary files a/doc/images/settings_network.png and b/doc/images/settings_network.png differ diff --git a/doc/images/sync_protocol.png b/doc/images/sync_protocol.png deleted file mode 100644 index 28c50da9c..000000000 Binary files a/doc/images/sync_protocol.png and /dev/null differ diff --git a/doc/images/wizard_targetfolder.png b/doc/images/wizard_targetfolder.png index f4f0fa4b7..73724d7a2 100644 Binary files a/doc/images/wizard_targetfolder.png and b/doc/images/wizard_targetfolder.png differ diff --git a/doc/images/wizard_url.png b/doc/images/wizard_url.png index 99bdaf066..8190b2051 100644 Binary files a/doc/images/wizard_url.png and b/doc/images/wizard_url.png differ diff --git a/doc/images/wizard_user.png b/doc/images/wizard_user.png index 4473b30fd..35258db99 100644 Binary files a/doc/images/wizard_user.png and b/doc/images/wizard_user.png differ diff --git a/doc/introduction.rst b/doc/introduction.rst index 7d6009fbb..4cd1e8562 100644 --- a/doc/introduction.rst +++ b/doc/introduction.rst @@ -1,23 +1,19 @@ 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 installed on a user’s computer. +It allows a user to specify one or more directories on the local machine to +sync to the ownCloud server. It allows the user to always have the latest +files wherever they may be. When a change is made to the file on the +computer, it will sync to the ownCloud server via the sync 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. +The ownCloud Sync Client is available for Windows, MAC OS X, and various +Linux distributions. Obtaining the Client -------------------- -The latest version of the ownCloud Client can be obtained at -http://owncloud.org/sync-clients/. +The latest version of the Client can be obtained on the ownCloud web site. ownCloud client for **Windows** is provided as a NSIS-based setup file for machine-wide install. Installing the ownCloud client on **Mac OS** follows @@ -29,9 +25,8 @@ the normal app bundle installation pattern: 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. +The ownCloud client is also provided as in a convenient repository for a wide +range of popular **Linux distributions**. Supported distributions are Fedora, openSUSE, Ubuntu and Debian. To support other distributions, a is required, see :ref:`building-label` diff --git a/doc/options.rst b/doc/options.rst index f01617edf..e3dc8875f 100644 --- a/doc/options.rst +++ b/doc/options.rst @@ -1,10 +1,14 @@ -ownCloud Client supports the following command line switches: +When invoking the client from the command line, the following options are supported: + +``-h``, ``--help`` + shows all the below options (opens a window on Windows) ``--logwindow`` open a window to show log output. ``--logfile`` `` - write log output to file . + write log output to file . To write to stdout, specify `-` + as filename ``--logdir`` `` write each sync log output in a new file in directory diff --git a/doc/visualtour.rst b/doc/visualtour.rst index 5582f45c3..494230af8 100644 --- a/doc/visualtour.rst +++ b/doc/visualtour.rst @@ -3,25 +3,27 @@ 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: +Icon +---- + +The ownCloud Client remains in the background and is visible +as an icon in the system tray (Windows, KDE), status bar +(MAC OS X), or notification area (Ubuntu). .. 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: +Menu +---- .. image:: images/menu.png -Here is an explanation of the individual items in the menu: +A right click on the icon (left click on Ubuntu and Mac OS X) +provides the following 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. +* ``Open folder 'ownCloud'``: Opens the local folder. If multiple + sync targets have been defined, an entry will exist for each local folder. +* **Disk space indicator**: Shows how much space is used 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, @@ -29,28 +31,90 @@ Here is an explanation of the individual items in the menu: 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. +* ``Sign out``: Signs the client of of the server. +* ``Quit ownCloud``: Quits ownCloud Client, ending a currently running + sync run. -The settings dialog is split up in three categories: ``Account Settings``, -``General Settings`` and ``Network Settings``: +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. +The ``Account Settings tab`` provides an executive summary about the synced +folders in the account and gives the ability to modify them. + +Where: + +* ``Connected to as ``: Indicates the ownCloud server + which the client is syncing with and the user account on that server. + +* ``Add Folder...``: Provides the ability to add another folder to the sync + (see ``Adding a folder``). +* ``Pause/Resume``: Will pause the current sync or prevent the client from + starting a new sync. Resume will resume the sync process. +* ``Remove``: Will remove the selected folder from being synced. This is used, + for instance, when there is a desire to sync only a few folders and not the + root. First, remove the root from sync, then add the folders to sync as + desired. +* ``Storage Usage``: Provides further details on the storage utilization on the + ownCloud server. +* ``Edit Ignored Files``: Provides a list of files which will be ignored, i.e. + will not sync between the client and server. The ignored files editor allows + adding patterns for files or directories that should be excluded from the + sync process. Besides normal characters, wild cards may be used, an asterisk + ‘*’ indicating multiple characters, or a question mark ‘?’ indicating a single + character. + +* ``Modify Account``: Allows the user to change the ownCloud server being synced + to. It brings up the Setting up an Account (see above) windows. .. image:: images/settings_account.png :scale: 50 % -General Settings -~~~~~~~~~~~~~~~~ +Adding a Folder +^^^^^^^^^^^^^^^ + +Adding a new sync is initiated by clicking ``Add Folder...`` in the ``Account`` +settings. + +..note: To add a folder, you must not already sync a folder that contains this + folder. By default, the wizard sets up the root folder of the ownCloud + server to sync all of your ownCloud account. In consequence, you will + first need to remove this folder prior to specifying new syncs. + +.. image:: images/folderwizard_local.png + :scale: 50 % + +The Directory and alias name must be unique. + +.. image:: images/folderwizard_remote.png + :scale: 50 % + +Select the folder on the server to sync with. It is important to note that, a +server folder can only sync to the client one time. So, in the above example, +the sync is to the server root directory and thus it is not possible to select +another folder under the root to sync. + +Activity +~~~~~~~~ + +.. index:: activity, recent changes, sync activity + +The Activity window, which can be invoked either from the main menu (``Recent +Changes -> Details…``) or the Activity tab on the left side of the settings +window, provides an in-depth account of the recent sync activity. It will show +files that have not been synced because they are on the ignored files list, or +because they cannot be synced in a cross-platform manner due to containing +special characters that cannot be stored on certain file systems. + +.. image:: images/settings_activity.png + :scale: 50 % + +General +~~~~~~~ .. index:: general settings, auto start, startup, desktop notifications @@ -59,20 +123,18 @@ The tab provides several useful options: .. image:: images/settings_general.png :scale: 50 % -* **Launch on System Startup**: This option is automatically activated +* ``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. +* ``Show Desktop Nofications``: When checked, bubble notifications when + a set of sync operations has been performed are provided. +* ``Use Monochrome Icons``: Use less obtrusive icons. Especially useful + on Mac OS X. +* ``About``: provides information about authors as well as build conditions. + This information is valuable when submitting a support request. -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 -~~~~~~~~~~~~~~~~ +Network +~~~~~~~ .. index:: proxy settings, SOCKS, bandwith, throttling, limiting @@ -97,45 +159,22 @@ Proxy Settings 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. + server does not allow anonymous usage. If checked, a username and password + must be provided. 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 Download Bandwidth can be either unlimited (default) or limited to a +custom value. This is the bandwidth available for data flowing from the +ownCloud Server to the client. -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. +The Upload Bandwidth, the bandwidth available or data flowing from the +ownCloud client to the server, has an additional option to limit automatically. -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 % +When this option is checked, the ownCloud client will surrender available +bandwidth to other applications. Use this option if there are issues with +real time communication in conjunction with the ownCloud Client. .. _ignoredFilesEditor-label: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 81b3ccf37..2b9c5d412 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -448,6 +448,8 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mirall) if(BUILD_OWNCLOUD_OSX_BUNDLE) install(TARGETS ${owncloudcmd_NAME} DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/MacOS) if (SPARKLE_FOUND) + install(FILES ${CMAKE_SOURCE_DIR}/admin/osx/deny_autoupdate_com.owncloud.desktopclient.plist + DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources) install(FILES ${CMAKE_SOURCE_DIR}/admin/osx/sparkle/dsa_pub.pem DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources) endif() diff --git a/src/mirall/folderwatcher_mac.cpp b/src/mirall/folderwatcher_mac.cpp index 59a4dd458..5d065319b 100644 --- a/src/mirall/folderwatcher_mac.cpp +++ b/src/mirall/folderwatcher_mac.cpp @@ -69,7 +69,7 @@ void FolderWatcherPrivate::startWatching() pathsToWatch, kFSEventStreamEventIdSinceNow, 0, // latency - kFSEventStreamCreateFlagNone + kFSEventStreamCreateFlagNone+kFSEventStreamCreateFlagIgnoreSelf ); FSEventStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); diff --git a/src/mirall/mirallconfigfile.cpp b/src/mirall/mirallconfigfile.cpp index 946019540..c2b3428f5 100644 --- a/src/mirall/mirallconfigfile.cpp +++ b/src/mirall/mirallconfigfile.cpp @@ -404,7 +404,7 @@ QVariant MirallConfigFile::getValue(const QString& param, const QString& group, QVariant systemSetting; qDebug() << Q_FUNC_INFO; if (Utility::isMac()) { - QSettings systemSettings(QSettings::NativeFormat, QSettings::SystemScope, QCoreApplication::organizationName()); + QSettings systemSettings(QLatin1String("/Library/Preferences/" APPLICATION_REV_DOMAIN ".plist"), QSettings::NativeFormat); if (!group.isEmpty()) { systemSettings.beginGroup(group); } diff --git a/src/mirall/theme.cpp b/src/mirall/theme.cpp index 9f324ec72..74a6cf487 100644 --- a/src/mirall/theme.cpp +++ b/src/mirall/theme.cpp @@ -202,7 +202,13 @@ QString Theme::updateCheckUrl() const QString Theme::about() const { - return QString::null; + return tr("

Version %1 For more information please visit %3.

" + "

Copyright ownCloud, Inc.

" + "

Distributed by %4 and licensed under the GNU General Public License (GPL) Version 2.0.
" + "%5 and the %5 logo are registered trademarks of %4 in the
" + "United States, other countries, or both.

") + .arg(MIRALL_VERSION_STRING).arg("http://"MIRALL_STRINGIFY(APPLICATION_DOMAIN)) + .arg(MIRALL_STRINGIFY(APPLICATION_DOMAIN)).arg(APPLICATION_VENDOR).arg(APPLICATION_NAME); } QVariant Theme::customMedia( CustomMediaType type ) diff --git a/src/mirall/utility.cpp b/src/mirall/utility.cpp index 61942a486..35d7f837b 100644 --- a/src/mirall/utility.cpp +++ b/src/mirall/utility.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #include @@ -341,6 +342,11 @@ static bool checkDolphinCanSelect() void Utility::showInFileManager(const QString &localPath) { if (isWindows()) { +#ifdef Q_OS_WIN + if (QSysInfo::windowsVersion() <= QSysInfo::WV_2003) { + return; + } +#endif QString explorer = "explorer.exe "; // FIXME: we trust it's in PATH if (!QFileInfo(localPath).isDir()) {