From b5f042a6c132c1b97cf03c4615bab966c23f57d2 Mon Sep 17 00:00:00 2001
From: Daniel Wilhelm
Date: Fri, 18 Apr 2014 17:09:24 +0200
Subject: 3.12
---
Application.cpp | 38 +-
BUILD/Changelog.txt | 23 +
BUILD/FreeFileSync.chm | Bin 377174 -> 377164 bytes
BUILD/Help/html/Features.html | 21 +-
BUILD/Help/html/advanced/ExcludeSubfolder.html | 6 +-
BUILD/Help/html/advanced/RealtimeSync.html | 17 +-
BUILD/Help/html/advanced/ScheduleBatch.html | 27 +-
BUILD/Help/html/advanced/SymbolicLinks.html | 2 +-
BUILD/Languages/chinese_simple.lng | 14 +-
BUILD/Languages/chinese_traditional.lng | 14 +-
BUILD/Languages/czech.lng | 14 +-
BUILD/Languages/dutch.lng | 148 +++---
BUILD/Languages/english_uk.lng | 14 +-
BUILD/Languages/finnish.lng | 20 +-
BUILD/Languages/french.lng | 14 +-
BUILD/Languages/german.lng | 18 +-
BUILD/Languages/hebrew.lng | 14 +-
BUILD/Languages/hungarian.lng | 30 +-
BUILD/Languages/italian.lng | 14 +-
BUILD/Languages/japanese.lng | 14 +-
BUILD/Languages/polish.lng | 14 +-
BUILD/Languages/portuguese.lng | 12 +-
BUILD/Languages/portuguese_br.lng | 14 +-
BUILD/Languages/romanian.lng | 36 +-
BUILD/Languages/russian.lng | 18 +-
BUILD/Languages/slovenian.lng | 14 +-
BUILD/Languages/spanish.lng | 14 +-
BUILD/Languages/swedish.lng | 18 +-
BUILD/Languages/turkish.lng | 684 +++++++++++++------------
BUILD/Resources.dat | Bin 294245 -> 294369 bytes
FreeFileSync.cbp | 7 +-
Makefile | 34 +-
RealtimeSync/RealtimeSync.cbp | 4 +-
RealtimeSync/makefile | 16 +-
RealtimeSync/notify.cpp | 3 +-
RealtimeSync/watcher.cpp | 11 +-
algorithm.cpp | 114 +++--
algorithm.h | 3 +-
comparison.cpp | 87 ++--
file_hierarchy.h | 6 +-
library/binary.cpp | 10 -
library/custom_grid.cpp | 293 ++++++-----
library/custom_grid.h | 72 +--
library/db_file.cpp | 2 -
library/dir_lock.cpp | 79 ++-
library/pch.h | 14 +-
shared/IFileOperation/file_op.cpp | 1 +
shared/com_ptr.h | 23 +-
shared/custom_combo_box.cpp | 39 +-
shared/custom_combo_box.h | 7 +
shared/custom_tooltip.cpp | 3 +-
shared/dir_name.cpp | 2 +-
shared/file_handling.cpp | 178 +++++--
shared/file_io.cpp | 2 +-
shared/file_traverser.cpp | 144 +-----
shared/global_func.h | 2 +-
shared/localization.cpp | 29 +-
shared/localization.h | 2 +-
shared/recycler.cpp | 10 +-
shared/serialize.cpp | 2 -
shared/serialize.h | 5 +-
shared/signal_processing.h | 166 ------
shared/symlink_target.h | 146 ++++++
shared/system_func.cpp | 17 +-
shared/zbase.h | 20 +-
synchronization.cpp | 9 +-
ui/batch_status_handler.cpp | 26 +-
ui/batch_status_handler.h | 2 +-
ui/check_version.cpp | 17 +-
ui/gui_generated.cpp | 23 +-
ui/gui_generated.h | 41 +-
ui/gui_status_handler.cpp | 7 +-
ui/gui_status_handler.h | 2 +-
ui/main_dlg.cpp | 126 +++--
ui/main_dlg.h | 4 +-
ui/progress_indicator.cpp | 24 +-
ui/progress_indicator.h | 3 +-
ui/small_dlgs.cpp | 6 +-
version/version.h | 2 +-
version/version.rc | 4 +-
80 files changed, 1764 insertions(+), 1371 deletions(-)
delete mode 100644 shared/signal_processing.h
create mode 100644 shared/symlink_target.h
diff --git a/Application.cpp b/Application.cpp
index af111a65..d8b7c760 100644
--- a/Application.cpp
+++ b/Application.cpp
@@ -102,13 +102,10 @@ void Application::OnStartApplication(wxIdleEvent&)
GlobalResources::getInstance().load(); //loads bitmap resources on program startup
-#ifndef _MSC_VER
-#warning wxWidgets 2.9
+#if wxCHECK_VERSION(2, 9, 1)
+ wxToolTip::SetMaxWidth(-1); //disable tooltip wrapping
+ wxToolTip::SetAutoPop(7000); //tooltip visibilty in ms, 5s seems to be default for Windows
#endif
- /*
- wxToolTip::SetMaxWidth(-1); //disable tooltip wrapping
- wxToolTip::SetAutoPop(7000); //tooltip visibilty in ms, 5s seems to be default for Windows
- */
try //load global settings from XML
@@ -236,9 +233,9 @@ void Application::runBatchMode(const wxString& filename, xmlAccess::XmlGlobalSet
//class handling status updates and error messages
std::auto_ptr statusHandler; //delete object automatically
if (batchCfg.silent)
- statusHandler.reset(new BatchStatusHandler(true, filename, &batchCfg.logFileDirectory, batchCfg.handleError, switchBatchToGui, returnValue));
+ statusHandler.reset(new BatchStatusHandler(true, ffs3::extractJobName(filename), &batchCfg.logFileDirectory, batchCfg.handleError, switchBatchToGui, returnValue));
else
- statusHandler.reset(new BatchStatusHandler(false, filename, NULL, batchCfg.handleError, switchBatchToGui, returnValue));
+ statusHandler.reset(new BatchStatusHandler(false, ffs3::extractJobName(filename), NULL, batchCfg.handleError, switchBatchToGui, returnValue));
//COMPARE DIRECTORIES
ffs3::FolderComparison folderCmp;
@@ -251,13 +248,6 @@ void Application::runBatchMode(const wxString& filename, xmlAccess::XmlGlobalSet
batchCfg.mainCfg.compareVar,
folderCmp);
- //check if there are files/folders to be sync'ed at all
- if (!synchronizationNeeded(folderCmp))
- {
- statusHandler->logInfo(_("Nothing to synchronize according to configuration!")); //inform about this special case
- //return; -> disabled: mode requires database to be written in any case
- }
-
//START SYNCHRONIZATION
ffs3::SyncProcess synchronization(
globSettings.optDialogs,
@@ -271,10 +261,20 @@ void Application::runBatchMode(const wxString& filename, xmlAccess::XmlGlobalSet
synchronization.startSynchronizationProcess(syncProcessCfg, folderCmp);
- //play (optional) sound notification after sync has completed (GUI and batch mode)
- const wxString soundFile = ffs3::getResourceDir() + wxT("Sync_Complete.wav");
- if (ffs3::fileExists(ffs3::wxToZ(soundFile)))
- wxSound::Play(soundFile, wxSOUND_ASYNC);
+ //check if there are files/folders to be sync'ed at all
+ if (!synchronizationNeeded(folderCmp))
+ {
+ statusHandler->logInfo(_("Nothing to synchronize according to configuration!")); //inform about this special case
+ //return; -> disabled: mode requires database to be written in any case
+ }
+
+ //play (optional) sound notification after sync has completed
+ if (!batchCfg.silent)
+ {
+ const wxString soundFile = ffs3::getResourceDir() + wxT("Sync_Complete.wav");
+ if (ffs3::fileExists(ffs3::wxToZ(soundFile)))
+ wxSound::Play(soundFile, wxSOUND_ASYNC);
+ }
}
catch (ffs3::AbortThisProcess&) //exit used by statusHandler
{
diff --git a/BUILD/Changelog.txt b/BUILD/Changelog.txt
index 5cc1db55..dc7dd689 100644
--- a/BUILD/Changelog.txt
+++ b/BUILD/Changelog.txt
@@ -2,6 +2,29 @@
|FreeFileSync|
--------------
+Changelog v3.12
+---------------
+Allow empty folder pairs without complaining
+Automatically exclude database and lock files from all (sub-)directories (not only from base)
+Resize grid columns on both sides in parallel
+Fixed tooltip foreground text color (Linux)
+Search via CTRL + F and F3 now as global hotkeys
+Fully portable use of directory locking (Windows/Linux, 32/64 bit)
+RealtimeSync: Treat missing network path the same as missing local path
+Show current job name during synchronization (batch/gui)
+Allow copying dereferenced (=followed) directory Symlinks over network share
+Fail to copy Symlinks (=direct) over network share instead of silently creating empty folder (Windows XP)
+Copy NTFS junctions as Symlinks (avoiding permission checks)
+RealtimeSync: ignore request for device removal on network mapped drives
+Support for copying SELinux security contexts
+Fixed moving buttons in synchronization dialog
+Allow deleting currently selected item from list of last used folders (not before wxWidgets 2.9.1)
+Avoid losing focus after manually deleting a file
+Preserve custom changes to sync directions after manually deleting a file
+Handle empty tooltips correctly (Linux)
+Updated translation files
+
+
Changelog v3.11
---------------
Fixed migration issue: reasonable default value for number of folder pairs
diff --git a/BUILD/FreeFileSync.chm b/BUILD/FreeFileSync.chm
index 381fc7ca..6a48eef9 100644
Binary files a/BUILD/FreeFileSync.chm and b/BUILD/FreeFileSync.chm differ
diff --git a/BUILD/Help/html/Features.html b/BUILD/Help/html/Features.html
index 0bf33088..c5665a7d 100644
--- a/BUILD/Help/html/Features.html
+++ b/BUILD/Help/html/Features.html
@@ -5,7 +5,7 @@
-
+
@@ -27,8 +28,7 @@ XP)
Create
a new batch job via FreeFileSync's main
dialog:
Menu->Advanced->Create batch job and save
- it, for example, as "C:\SyncJob.ffs_
- batch".
+ it, for example, as "C:\SyncJob.ffs_batch".
Make
sure you enable checkbox "Silent mode" to prevent
showing a status dialog at the end of the process.
@@ -42,21 +42,34 @@ XP)
Follow
the wizard and choose "C:\SyncJob.ffs_batch"
as program to run.
-
If
you are using the locally installed version of FreeFileSync,
*.ffs_batch files
are automatically associated with the tool and field "Run:"
can be directly filled with the filename:
"C:\SyncJob.ffs_batch"
-
If
file associations have not been set (portable installation),
"Run:"
has to be prefixed with the
- executable:
"D:\FreeFileSync\FreeFileSync.exe"
+ executable:
"D:\FreeFileSync\FreeFileSync.exe"
"C:\SyncJob.ffs_batch"
+
+
+
+
+
+
+ Note:
Beginning
+ with Windows Vista, the command always needs to be prefixed with the
+ executable even if file associations are set:
→
+ "D:\FreeFileSync\FreeFileSync.exe"
+ "C:\SyncJob.ffs_batch
Else
+ the task will return with error code 0xC1, "%1 is not a valid
+ Win32 application".
+
+