summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wilhelm <shieldwed@outlook.com>2016-10-29 11:34:19 +0200
committerDaniel Wilhelm <shieldwed@outlook.com>2016-10-29 11:34:19 +0200
commit8d66e8a2b8cfe4eef4b946a1ab64354dfd7da00b (patch)
tree48e94273d3ee6b9d755e0081c46d29a387871611
parent8.3 (diff)
downloadFreeFileSync-8d66e8a2b8cfe4eef4b946a1ab64354dfd7da00b.tar.gz
FreeFileSync-8d66e8a2b8cfe4eef4b946a1ab64354dfd7da00b.tar.bz2
FreeFileSync-8d66e8a2b8cfe4eef4b946a1ab64354dfd7da00b.zip
8.4
-rw-r--r--FreeFileSync/Build/Changelog.txt17
-rw-r--r--FreeFileSync/Build/Help/html/base.css32
-rw-r--r--FreeFileSync/Build/Help/html/command-line.html67
-rw-r--r--FreeFileSync/Build/Help/html/comparison-settings.html9
-rw-r--r--FreeFileSync/Build/Help/html/daylight-saving-time.html6
-rw-r--r--FreeFileSync/Build/Help/html/exclude-items.html97
-rw-r--r--FreeFileSync/Build/Help/html/expert-settings.html13
-rw-r--r--FreeFileSync/Build/Help/html/external-applications.html15
-rw-r--r--FreeFileSync/Build/Help/html/freefilesync.html (renamed from FreeFileSync/Build/Help/html/FreeFileSync.html)1
-rw-r--r--FreeFileSync/Build/Help/html/macros.html (renamed from FreeFileSync/Build/Help/html/Macros.html)100
-rw-r--r--FreeFileSync/Build/Help/html/realtimesync.html (renamed from FreeFileSync/Build/Help/html/RealtimeSync.html)23
-rw-r--r--FreeFileSync/Build/Help/html/run-as-service.html9
-rw-r--r--FreeFileSync/Build/Help/html/schedule-a-batch-job.html11
-rw-r--r--FreeFileSync/Build/Help/html/synchronization-settings.html12
-rw-r--r--FreeFileSync/Build/Help/html/synchronize-with-sftp.html9
-rw-r--r--FreeFileSync/Build/Help/html/variable-drive-letters.html12
-rw-r--r--FreeFileSync/Build/Help/html/versioning.html (renamed from FreeFileSync/Build/Help/html/Versioning.html)23
-rw-r--r--FreeFileSync/Build/Help/html/volume-shadow-copy.html9
-rw-r--r--FreeFileSync/Build/Languages/arabic.lng59
-rw-r--r--FreeFileSync/Build/Languages/bulgarian.lng267
-rw-r--r--FreeFileSync/Build/Languages/chinese_simple.lng91
-rw-r--r--FreeFileSync/Build/Languages/chinese_traditional.lng141
-rw-r--r--FreeFileSync/Build/Languages/croatian.lng93
-rw-r--r--FreeFileSync/Build/Languages/czech.lng91
-rw-r--r--FreeFileSync/Build/Languages/danish.lng111
-rw-r--r--FreeFileSync/Build/Languages/dutch.lng97
-rw-r--r--FreeFileSync/Build/Languages/english_uk.lng91
-rw-r--r--FreeFileSync/Build/Languages/finnish.lng175
-rw-r--r--FreeFileSync/Build/Languages/french.lng113
-rw-r--r--FreeFileSync/Build/Languages/german.lng36
-rw-r--r--FreeFileSync/Build/Languages/greek.lng295
-rw-r--r--FreeFileSync/Build/Languages/hebrew.lng97
-rw-r--r--FreeFileSync/Build/Languages/hindi.lng113
-rw-r--r--FreeFileSync/Build/Languages/hungarian.lng189
-rw-r--r--FreeFileSync/Build/Languages/italian.lng91
-rw-r--r--FreeFileSync/Build/Languages/japanese.lng93
-rw-r--r--FreeFileSync/Build/Languages/korean.lng105
-rw-r--r--FreeFileSync/Build/Languages/lithuanian.lng91
-rw-r--r--FreeFileSync/Build/Languages/outdated/norwegian.lng569
-rw-r--r--FreeFileSync/Build/Languages/polish.lng113
-rw-r--r--FreeFileSync/Build/Languages/portuguese.lng93
-rw-r--r--FreeFileSync/Build/Languages/portuguese_br.lng325
-rw-r--r--FreeFileSync/Build/Languages/romanian.lng109
-rw-r--r--FreeFileSync/Build/Languages/russian.lng91
-rw-r--r--FreeFileSync/Build/Languages/serbian.lng107
-rw-r--r--FreeFileSync/Build/Languages/slovak.lng113
-rw-r--r--FreeFileSync/Build/Languages/slovenian.lng91
-rw-r--r--FreeFileSync/Build/Languages/spanish.lng95
-rw-r--r--FreeFileSync/Build/Languages/swedish.lng93
-rw-r--r--FreeFileSync/Build/Languages/turkish.lng95
-rw-r--r--FreeFileSync/Build/Languages/ukrainian.lng93
-rw-r--r--FreeFileSync/Source/RealTimeSync/Makefile (renamed from FreeFileSync/Source/RealtimeSync/Makefile)0
-rw-r--r--FreeFileSync/Source/RealTimeSync/RealTimeSync.ico (renamed from FreeFileSync/Source/RealtimeSync/RealtimeSync.ico)bin111386 -> 111386 bytes
-rw-r--r--FreeFileSync/Source/RealTimeSync/app_icon.h (renamed from FreeFileSync/Source/RealtimeSync/app_icon.h)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/application.cpp (renamed from FreeFileSync/Source/RealtimeSync/application.cpp)14
-rw-r--r--FreeFileSync/Source/RealTimeSync/application.h (renamed from FreeFileSync/Source/RealtimeSync/application.h)13
-rw-r--r--FreeFileSync/Source/RealTimeSync/folder_selector2.cpp (renamed from FreeFileSync/Source/RealtimeSync/folder_selector2.cpp)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/folder_selector2.h (renamed from FreeFileSync/Source/RealtimeSync/folder_selector2.h)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/gui_generated.cpp (renamed from FreeFileSync/Source/RealtimeSync/gui_generated.cpp)0
-rw-r--r--FreeFileSync/Source/RealTimeSync/gui_generated.h (renamed from FreeFileSync/Source/RealtimeSync/gui_generated.h)0
-rw-r--r--FreeFileSync/Source/RealTimeSync/main_dlg.cpp (renamed from FreeFileSync/Source/RealtimeSync/main_dlg.cpp)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/main_dlg.h (renamed from FreeFileSync/Source/RealtimeSync/main_dlg.h)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/monitor.cpp (renamed from FreeFileSync/Source/RealtimeSync/monitor.cpp)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/monitor.h (renamed from FreeFileSync/Source/RealtimeSync/monitor.h)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/tray_menu.cpp (renamed from FreeFileSync/Source/RealtimeSync/tray_menu.cpp)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/tray_menu.h (renamed from FreeFileSync/Source/RealtimeSync/tray_menu.h)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/xml_proc.cpp (renamed from FreeFileSync/Source/RealtimeSync/xml_proc.cpp)10
-rw-r--r--FreeFileSync/Source/RealTimeSync/xml_proc.h (renamed from FreeFileSync/Source/RealtimeSync/xml_proc.h)10
-rw-r--r--FreeFileSync/Source/algorithm.cpp20
-rw-r--r--FreeFileSync/Source/algorithm.h12
-rw-r--r--FreeFileSync/Source/application.cpp18
-rw-r--r--FreeFileSync/Source/application.h13
-rw-r--r--FreeFileSync/Source/comparison.cpp12
-rw-r--r--FreeFileSync/Source/comparison.h10
-rw-r--r--FreeFileSync/Source/file_hierarchy.cpp10
-rw-r--r--FreeFileSync/Source/file_hierarchy.h28
-rw-r--r--FreeFileSync/Source/fs/abstract.cpp10
-rw-r--r--FreeFileSync/Source/fs/abstract.h10
-rw-r--r--FreeFileSync/Source/fs/concrete.cpp10
-rw-r--r--FreeFileSync/Source/fs/concrete.h10
-rw-r--r--FreeFileSync/Source/fs/native.cpp10
-rw-r--r--FreeFileSync/Source/fs/native.h10
-rw-r--r--FreeFileSync/Source/fs/native_traverser_impl.h10
-rw-r--r--FreeFileSync/Source/lib/binary.cpp10
-rw-r--r--FreeFileSync/Source/lib/binary.h10
-rw-r--r--FreeFileSync/Source/lib/cmp_filetime.h10
-rw-r--r--FreeFileSync/Source/lib/db_file.cpp14
-rw-r--r--FreeFileSync/Source/lib/db_file.h16
-rw-r--r--FreeFileSync/Source/lib/dir_exist_async.h10
-rw-r--r--FreeFileSync/Source/lib/dir_lock.cpp32
-rw-r--r--FreeFileSync/Source/lib/dir_lock.h10
-rw-r--r--FreeFileSync/Source/lib/error_log.h10
-rw-r--r--FreeFileSync/Source/lib/ffs_paths.cpp10
-rw-r--r--FreeFileSync/Source/lib/ffs_paths.h10
-rw-r--r--FreeFileSync/Source/lib/generate_logfile.h10
-rw-r--r--FreeFileSync/Source/lib/hard_filter.cpp10
-rw-r--r--FreeFileSync/Source/lib/hard_filter.h13
-rw-r--r--FreeFileSync/Source/lib/help_provider.h10
-rw-r--r--FreeFileSync/Source/lib/icon_buffer.cpp19
-rw-r--r--FreeFileSync/Source/lib/icon_buffer.h10
-rw-r--r--FreeFileSync/Source/lib/icon_holder.h10
-rw-r--r--FreeFileSync/Source/lib/icon_loader.cpp12
-rw-r--r--FreeFileSync/Source/lib/icon_loader.h10
-rw-r--r--FreeFileSync/Source/lib/localization.cpp17
-rw-r--r--FreeFileSync/Source/lib/localization.h10
-rw-r--r--FreeFileSync/Source/lib/norm_filter.h10
-rw-r--r--FreeFileSync/Source/lib/parallel_scan.cpp14
-rw-r--r--FreeFileSync/Source/lib/parallel_scan.h10
-rw-r--r--FreeFileSync/Source/lib/parse_lng.h22
-rw-r--r--FreeFileSync/Source/lib/parse_plural.h10
-rw-r--r--FreeFileSync/Source/lib/perf_check.cpp10
-rw-r--r--FreeFileSync/Source/lib/perf_check.h10
-rw-r--r--FreeFileSync/Source/lib/process_xml.cpp33
-rw-r--r--FreeFileSync/Source/lib/process_xml.h14
-rw-r--r--FreeFileSync/Source/lib/resolve_path.cpp28
-rw-r--r--FreeFileSync/Source/lib/resolve_path.h10
-rw-r--r--FreeFileSync/Source/lib/return_codes.h10
-rw-r--r--FreeFileSync/Source/lib/soft_filter.h10
-rw-r--r--FreeFileSync/Source/lib/status_handler.cpp10
-rw-r--r--FreeFileSync/Source/lib/status_handler.h10
-rw-r--r--FreeFileSync/Source/lib/status_handler_impl.h10
-rw-r--r--FreeFileSync/Source/lib/versioning.h10
-rw-r--r--FreeFileSync/Source/process_callback.h10
-rw-r--r--FreeFileSync/Source/structures.cpp10
-rw-r--r--FreeFileSync/Source/structures.h10
-rw-r--r--FreeFileSync/Source/synchronization.cpp12
-rw-r--r--FreeFileSync/Source/synchronization.h10
-rw-r--r--FreeFileSync/Source/ui/app_icon.h10
-rw-r--r--FreeFileSync/Source/ui/batch_config.cpp10
-rw-r--r--FreeFileSync/Source/ui/batch_config.h10
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.cpp12
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.h10
-rw-r--r--FreeFileSync/Source/ui/column_attr.h10
-rw-r--r--FreeFileSync/Source/ui/custom_grid.cpp14
-rw-r--r--FreeFileSync/Source/ui/custom_grid.h14
-rw-r--r--FreeFileSync/Source/ui/folder_history_box.cpp10
-rw-r--r--FreeFileSync/Source/ui/folder_history_box.h10
-rw-r--r--FreeFileSync/Source/ui/folder_pair.h14
-rw-r--r--FreeFileSync/Source/ui/folder_selector.cpp10
-rw-r--r--FreeFileSync/Source/ui/folder_selector.h10
-rw-r--r--FreeFileSync/Source/ui/grid_view.cpp15
-rw-r--r--FreeFileSync/Source/ui/grid_view.h10
-rw-r--r--FreeFileSync/Source/ui/gui_generated.cpp7820
-rw-r--r--FreeFileSync/Source/ui/gui_generated.h1704
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.cpp10
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.h10
-rw-r--r--FreeFileSync/Source/ui/main_dlg.cpp103
-rw-r--r--FreeFileSync/Source/ui/main_dlg.h12
-rw-r--r--FreeFileSync/Source/ui/on_completion_box.cpp10
-rw-r--r--FreeFileSync/Source/ui/on_completion_box.h10
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.cpp44
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.h13
-rw-r--r--FreeFileSync/Source/ui/search.cpp10
-rw-r--r--FreeFileSync/Source/ui/search.h10
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.cpp14
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.h10
-rw-r--r--FreeFileSync/Source/ui/sorting.h10
-rw-r--r--FreeFileSync/Source/ui/switch_to_gui.h10
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.cpp10
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.h10
-rw-r--r--FreeFileSync/Source/ui/taskbar.cpp10
-rw-r--r--FreeFileSync/Source/ui/taskbar.h10
-rw-r--r--FreeFileSync/Source/ui/tray_icon.cpp10
-rw-r--r--FreeFileSync/Source/ui/tray_icon.h10
-rw-r--r--FreeFileSync/Source/ui/tree_view.cpp10
-rw-r--r--FreeFileSync/Source/ui/tree_view.h10
-rw-r--r--FreeFileSync/Source/ui/triple_splitter.cpp10
-rw-r--r--FreeFileSync/Source/ui/triple_splitter.h10
-rw-r--r--FreeFileSync/Source/ui/version_check.cpp10
-rw-r--r--FreeFileSync/Source/ui/version_check.h10
-rw-r--r--FreeFileSync/Source/ui/version_check_impl.h10
-rw-r--r--FreeFileSync/Source/version/version.h2
-rw-r--r--wx+/app_main.h10
-rw-r--r--wx+/async_task.h10
-rw-r--r--wx+/bitmap_button.h10
-rw-r--r--wx+/choice_enum.h12
-rw-r--r--wx+/context_menu.h10
-rw-r--r--wx+/dc.h10
-rw-r--r--wx+/file_drop.h12
-rw-r--r--wx+/font_size.h10
-rw-r--r--wx+/graph.cpp10
-rw-r--r--wx+/graph.h10
-rw-r--r--wx+/grid.cpp10
-rw-r--r--wx+/grid.h10
-rw-r--r--wx+/http.cpp10
-rw-r--r--wx+/http.h10
-rw-r--r--wx+/image_resources.cpp10
-rw-r--r--wx+/image_resources.h10
-rw-r--r--wx+/image_tools.cpp10
-rw-r--r--wx+/image_tools.h10
-rw-r--r--wx+/no_flicker.h10
-rw-r--r--wx+/popup_dlg.cpp10
-rw-r--r--wx+/popup_dlg.h13
-rw-r--r--wx+/rtl.h10
-rw-r--r--wx+/std_button_layout.h10
-rw-r--r--wx+/string_conv.h10
-rw-r--r--wx+/timespan.h10
-rw-r--r--wx+/toggle_button.h10
-rw-r--r--wx+/tooltip.cpp10
-rw-r--r--wx+/tooltip.h10
-rw-r--r--wx+/zlib_wrap.cpp10
-rw-r--r--wx+/zlib_wrap.h10
-rw-r--r--zen/basic_math.h10
-rw-r--r--zen/build_info.h10
-rw-r--r--zen/crc.h10
-rw-r--r--zen/deprecate.h10
-rw-r--r--zen/dir_watcher.cpp14
-rw-r--r--zen/dir_watcher.h10
-rw-r--r--zen/error_log.h14
-rw-r--r--zen/file_access.cpp133
-rw-r--r--zen/file_access.h10
-rw-r--r--zen/file_error.h10
-rw-r--r--zen/file_id_def.h10
-rw-r--r--zen/file_io.cpp16
-rw-r--r--zen/file_io.h14
-rw-r--r--zen/file_traverser.cpp10
-rw-r--r--zen/file_traverser.h10
-rw-r--r--zen/fixed_list.h20
-rw-r--r--zen/format_unit.cpp10
-rw-r--r--zen/format_unit.h10
-rw-r--r--zen/globals.h57
-rw-r--r--zen/guid.h10
-rw-r--r--zen/i18n.h52
-rw-r--r--zen/optional.h10
-rw-r--r--zen/perf.h10
-rw-r--r--zen/process_priority.cpp10
-rw-r--r--zen/process_priority.h10
-rw-r--r--zen/recycler.cpp10
-rw-r--r--zen/recycler.h10
-rw-r--r--zen/scope_guard.h12
-rw-r--r--zen/serialize.h18
-rw-r--r--zen/shell_execute.h10
-rw-r--r--zen/stl_tools.h10
-rw-r--r--zen/string_base.h22
-rw-r--r--zen/string_tools.h10
-rw-r--r--zen/string_traits.h10
-rw-r--r--zen/symlink_target.h12
-rw-r--r--zen/sys_error.h25
-rw-r--r--zen/thread.h15
-rw-r--r--zen/tick_count.h16
-rw-r--r--zen/time.h20
-rw-r--r--zen/type_tools.h10
-rw-r--r--zen/type_traits.h10
-rw-r--r--zen/utf.h34
-rw-r--r--zen/warn_static.h10
-rw-r--r--zen/xml_io.cpp10
-rw-r--r--zen/xml_io.h10
-rw-r--r--zen/zstring.cpp10
-rw-r--r--zen/zstring.h16
249 files changed, 8768 insertions, 8217 deletions
diff --git a/FreeFileSync/Build/Changelog.txt b/FreeFileSync/Build/Changelog.txt
index 8b4688ef..ba892f7d 100644
--- a/FreeFileSync/Build/Changelog.txt
+++ b/FreeFileSync/Build/Changelog.txt
@@ -1,3 +1,18 @@
+FreeFileSync 8.4
+----------------
+Mark temporary copies created by %local_path% read-only
+Fixed crash when accessing Bitvise SFTP Servers
+Support nanosecond-precision file time copying (Linux)
+Start maximized instead of in full screen mode (OS X)
+Fixed crash while setting privileges during shutdown
+Fixed crash when failing to clean up log files
+Fixed EOPNOTSUPP error when copying file to gvfs Samba share (Linux)
+Fixed default external applications command line (Linux)
+Thread-safe translation change even during app shutdown
+Don't consider port and password when comparing SFTP paths
+Updated translation files
+
+
FreeFileSync 8.3 [2016-07-08]
-----------------------------
Make temporary local copy for non-native file paths: %local_path%
@@ -287,7 +302,7 @@ Refactored basic low-level file traversal routine
Optimized file icon startup procedure
Fixed occasional failure to set modification times on Samba shares (OS X)
Transfer creation times during file copy (OS X)
-Support copying file times with nano-second precision (OS X)
+Support copying file times with nanosecond precision (OS X)
FreeFileSync 6.13 [2015-01-11]
diff --git a/FreeFileSync/Build/Help/html/base.css b/FreeFileSync/Build/Help/html/base.css
index f7fa42be..001b1ae9 100644
--- a/FreeFileSync/Build/Help/html/base.css
+++ b/FreeFileSync/Build/Help/html/base.css
@@ -23,10 +23,9 @@ ul
list-style: disc;
}
-table td
+ol
{
- padding: 0 20px 0 0;
- vertical-align: top;
+ margin: 0
}
table th
@@ -36,29 +35,26 @@ table th
border-bottom: 1px solid black;
}
-.bluebox
+table td
{
- width: 100%;
- border: 1px solid #000080;
- color:black;
- background: #ccccff;
+ padding: 0 20px 0 0;
+ vertical-align: top;
}
-.greybox
-{
- width: 100%;
- color:black;
- background: #e6e6e6;
-}
+.half-line { line-height: .5em; }
-.box-inner
+.bluebox
{
- padding: 6px 6px 6px 21px;
+ padding: 6px 15px;
+ background: #ccccff;
+ border: 1px solid #000080;
}
-.box-outer
+.greybox
{
- margin: 0 15px;
+ padding: 6px 15px;
+ background: #f8f8f8;
+ box-shadow: 1px 1px 4px #888;
}
.command-line
diff --git a/FreeFileSync/Build/Help/html/command-line.html b/FreeFileSync/Build/Help/html/command-line.html
index e7f89892..639079a7 100644
--- a/FreeFileSync/Build/Help/html/command-line.html
+++ b/FreeFileSync/Build/Help/html/command-line.html
@@ -14,36 +14,36 @@
To get a syntax overview, open the console, go to the directory where FreeFileSync is installed and type:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">FreeFileSync.exe -h</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>1. Run a FreeFileSync batch job</h2>
+ <p>
+ In order to start synchronization in batch mode, supply the path of a ffs_batch configuration file as the first argument for FreeFileSync.exe:
+ </p>
- <p>In order to start synchronization in batch mode, supply the path of a ffs_batch configuration file as the first argument for FreeFileSync.exe:</p>
-
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">FreeFileSync.exe &quot;D:\Backup Projects.ffs_batch&quot;</div>
- </div></div></div>
+ </div>
<p>After synchronization one of the following status codes is returned:</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<b>Return Codes</b><br>
0 - Synchronization completed successfully<br>
1 - Synchronization completed with warnings<br>
2 - Synchronization completed with errors<br>
3 - Synchronization was aborted
- </div></div></div>
+ </div>
<p>
You can evaluate these codes from a script (e.g. a cmd or bat file on Windows)
and check if synchronization completed successfully:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">
&quot;C:\Program Files\FreeFileSync\FreeFileSync.exe&quot; &quot;D:\Backup Projects.ffs_batch&quot;<br>
if errorlevel 1 (<br>
@@ -52,57 +52,66 @@
&nbsp;&nbsp;pause<br>
)
</div>
- </div></div></div>
+ </div>
<p>Instead of showing an error message you can also send an email notification (using a third party tool).</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Attention</b><br>
- Make sure your script is not blocked by a popup dialog. Consider the
- following options when setting up a FreeFileSync batch job:
- <br>&nbsp;
+ If you are running the batch job unattended, make sure your script is not blocked showing a notification dialog. Consider the
+ following options when setting up the FreeFileSync batch job:
+ <div class="half-line">&nbsp;</div>
<ul style="margin: 0">
<li>Enable checkbox <b>Run minimized</b> or have <b>On completion</b> automatically close the results dialog after synchronization.
<li>Set error handling to <b>Stop</b> or <b>Ignore</b>.
</ul>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>2. Start a FreeFileSync GUI configuration</h2>
+ <p>
+ If you pass a ffs_gui file, FreeFileSync will start in GUI mode and immediately start comparison (but only if all directories exist):
+ </p>
- <p>If you pass a ffs_gui file, FreeFileSync will start in GUI mode and immediately start comparison (but only if all directories exist):</p>
-
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">FreeFileSync.exe &quot;D:\Manual Backup.ffs_gui&quot;</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>3. Customize an existing configuration</h2>
-
<p>
You can replace the directories of a given ffs_gui or ffs_batch configuration file by using the <span class="command-line">-LeftDir</span>
and <span class="command-line">-RightDir</span> parameters:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">FreeFileSync.exe &quot;D:\Manual Backup.ffs_gui&quot; -leftdir C:\NewSource -rightdir D:\NewTarget</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>4. Merge multiple configurations</h2>
-
<p>
When more than one configuration file is provided, FreeFileSync will merge
everything into a single configuration with multiple folder pairs and start in GUI mode:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">FreeFileSync.exe &quot;D:\Manual Backup.ffs_gui&quot; &quot;D:\Backup Projects.ffs_batch&quot;</div>
- </div></div></div>
+ </div>
+ <br>
+
+
+ <h2>5. Use a different GlobalSettings.xml file</h2>
+ <p>
+ By default FreeFileSync uses a single GlobalSettings.xml file containing options that apply to all synchronization tasks;
+ for examples see <a href="expert-settings.html">Expert Settings</a>.
+ If you want FreeFileSync to use a different settings file instead you can specify the path via command line:
+ </p>
+
+ <div class="greybox">
+ <div class="command-line">FreeFileSync.exe &quot;D:\My GlobalSettings.xml&quot;</div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/comparison-settings.html b/FreeFileSync/Build/Help/html/comparison-settings.html
index a67d1e46..ee24cd87 100644
--- a/FreeFileSync/Build/Help/html/comparison-settings.html
+++ b/FreeFileSync/Build/Help/html/comparison-settings.html
@@ -10,8 +10,8 @@
<h1>Comparison Settings</h1>
<p>
- <img src="../images/comparison-settings.png" alt="Comparison settings dialog"><br>
- &nbsp;
+ <img src="../images/comparison-settings.png" alt="Comparison settings dialog">
+ <br><br>
</p>
<h2>Symbolic Link Handling</h2>
@@ -35,14 +35,13 @@
</ol>
<br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b>
<ul style="margin: 0">
<li>Under Windows the symbolic link options apply to symbolic links, volume mount points and NTFS junction points.
<li>Copying symbolic links requires FreeFileSync to be started with administrator rights.
</ul>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>I. Compare by file time and size</h2>
diff --git a/FreeFileSync/Build/Help/html/daylight-saving-time.html b/FreeFileSync/Build/Help/html/daylight-saving-time.html
index a46cf2fa..a8ad6874 100644
--- a/FreeFileSync/Build/Help/html/daylight-saving-time.html
+++ b/FreeFileSync/Build/Help/html/daylight-saving-time.html
@@ -37,8 +37,8 @@
<p>
For a detailed discussion about this issue see:<br>
<a rel="nofollow" target="_blank" href="http://www.codeproject.com/KB/datetime/dstbugs.aspx">http://www.codeproject.com/KB/datetime/dstbugs.aspx</a>
+ <br><br>
</p>
- <br>
<h2>Solutions:</h2>
@@ -51,11 +51,11 @@
</p>
<img src="../images/ignore-time-shift.png" alt="Ignore daylight saving time shift"><br>
<br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
File times have to be equal or differ by exactly the time shift entered to be considered the same.
Therefore the time shift setting should not be confused with a time interval or tolerance.
- </div></div></div>
+ </div>
<br>
<li>Alternatively you can avoid the problem in first place by only synchronizing from FAT to FAT or NTFS to NTFS file systems.
diff --git a/FreeFileSync/Build/Help/html/exclude-items.html b/FreeFileSync/Build/Help/html/exclude-items.html
index c9f4a36c..bc60d79a 100644
--- a/FreeFileSync/Build/Help/html/exclude-items.html
+++ b/FreeFileSync/Build/Help/html/exclude-items.html
@@ -17,7 +17,7 @@
include list and <b>none</b> of the entries in the exclude list as presented in the filter configuration dialog:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<ul style="margin: 0">
<li>Each list item must be a file or directory path <b>relative</b> to synchronization base directories.
@@ -25,55 +25,60 @@
<li>Wild cards <b>*</b> and <b>?</b> may be used: <b>*</b> means zero or more characters while <b>?</b> represents exactly one character.
</ul>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Example: <span style="font-weight:normal">Exclude items for mirror-sync from <span class="file-path">C:\Source</span> to <span class="file-path">D:\Target</span></span></h2>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
- <table style="border-spacing:0;">
- <tr>
- <th><b>Description</b></th>
- <th><b>Filter phrase</b></th>
- </tr>
- <tr>
- <td>Single file <span class="file-path">C:\Source\file.txt</span></td>
- <td><span class="file-path">\file.txt</span></td>
- </tr>
- <tr>
- <td>Single folder <span class="file-path">C:\Source\SubFolder</span></td>
- <td><span class="file-path">\SubFolder\</span></td>
- </tr>
- <tr>
- <td>All files (and folders) named <span class="file-path">thumbs.db</span></td>
- <td><span class="file-path">*\thumbs.db</span></td>
- </tr>
- <tr>
- <td>All <span class="file-path">*.tmp</span> files located in <span class="file-path">SubFolder</span> only</td>
- <td><span class="file-path">\SubFolder\*.tmp</span></td>
- </tr>
- <tr>
- <td>Files and folders containing <span class="file-path">temp</span> somewhere in their path</td>
- <td><span class="file-path">*temp*</span></td>
- </tr>
- <tr>
- <td>Multiple entries separated by semicolon</td>
- <td><span class="file-path">*.tmp; *.doc; *.bak</span></td>
- </tr>
- <tr>
- <td>Exclude all subdirectories of the base directories</td>
- <td><span class="file-path">*\</span></td>
- </tr>
- <tr>
- <td>Exclude only <span class="file-path">*.txt</span> files located in subdirectories of base directories</td>
- <td><span class="file-path">\*\*.txt</span></td>
- </tr>
- </table>
- </div></div></div>
+ <table style="border-spacing:0;">
+ <tr>
+ <th>Filter description</th>
+ <th>Filter phrase</th>
+ </tr>
+ <tr>
+ <td>Single file <span class="file-path">C:\Source\file.txt</span></td>
+ <td><span class="file-path">\file.txt</span></td>
+ </tr>
+ <tr>
+ <td>Single folder <span class="file-path">C:\Source\SubFolder</span></td>
+ <td><span class="file-path">\SubFolder\</span></td>
+ </tr>
+ <tr>
+ <td>All files (and folders) named <span class="file-path">thumbs.db</span></td>
+ <td><span class="file-path">*\thumbs.db</span></td>
+ </tr>
+ <tr>
+ <td>All <span class="file-path">*.tmp</span> files located in <span class="file-path">SubFolder</span></td>
+ <td><span class="file-path">\SubFolder\*.tmp</span></td>
+ </tr>
+ <tr>
+ <td>Files and folders containing <span class="file-path">temp</span> somewhere in their path</td>
+ <td><span class="file-path">*temp*</span></td>
+ </tr>
+ <tr>
+ <td>Multiple entries separated by semicolon</td>
+ <td><span class="file-path">*.tmp; *.doc; *.bak</span></td>
+ </tr>
+ <tr>
+ <td>All subdirectories of the base directories</td>
+ <td><span class="file-path">*\</span></td>
+ </tr>
+ <tr>
+ <td><span class="file-path">*.txt</span> files located in subdirectories of base directories</td>
+ <td><span class="file-path">\*\*.txt</span></td>
+ </tr>
+ </table>
<br>
-
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+
+ <h2>Example: <span style="font-weight:normal">Exclude a sub folder except for certain files</span></h2>
+ <p>
+ Set up two folder pairs with the same source and target paths but with distinct local filters:<br>
+ Folder pair 1; local <em>exclude</em> filter: <span class="file-path">\SubFolder\</span><br>
+ Folder pair 2; local <em>include</em> filter: <span class="file-path">\SubFolder\*.txt</span>
+ </p>
+ <br>
+
+ <div class="bluebox">
<b>Note</b>
<ul style="margin: 0">
<li>For simple exclusions just right-click and exclude one item or a list
@@ -85,6 +90,6 @@
<li>On Windows both slash (<b>/</b>) and backslash (<b>\</b>) may be used as path separator characters.
</ul>
- </div></div></div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/expert-settings.html b/FreeFileSync/Build/Help/html/expert-settings.html
index e6f34531..c0add7d2 100644
--- a/FreeFileSync/Build/Help/html/expert-settings.html
+++ b/FreeFileSync/Build/Help/html/expert-settings.html
@@ -12,15 +12,16 @@
<p>
FreeFileSync has a number of special purpose settings that can only be accessed
directly via the global configuration file <span class="file-path">GlobalSettings.xml</span>.
- Note that this file is read once when FreeFileSync starts and saved when it closes. Therefore apply changes only while FreeFileSync is not running. <br>
+ Note that this file is read once when FreeFileSync starts and saved again on exit.
+ Therefore you should <b>apply manual changes only while FreeFileSync is not running.</b><br>
<br>
- To locate this file on Windows enter <span class="command-line">%appdata%\FreeFileSync</span> in the Windows Explorer address bar or go to the FreeFileSync
+ To locate this file on Windows enter <b><span class="command-line">%appdata%\FreeFileSync</span></b> in the Windows Explorer address bar or go to the FreeFileSync
installation folder if you are using the portable installation.
- On Linux you can find the file in <span class="command-line">~/.FreeFileSync</span> for the Launchpad release and in the installation folder for the portable version.
- On OS X go to <span class="command-line">~/Library/Application Support/FreeFileSync</span>.
+ On Linux you can find the file in <b><span class="command-line">~/.FreeFileSync</span></b> for the Launchpad release and in the installation folder for the portable version.
+ On OS X go to <b><span class="command-line">~/Library/Application Support/FreeFileSync</span></b>.
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
&lt;FreeFileSync XmlType=&quot;GLOBAL&quot;&gt;<br>
@@ -33,7 +34,7 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>LastSyncsLogSizeMax</b> Bytes=&quot;100000&quot;/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>NotificationSound</b> CompareFinished=&quot;ding.wav&quot; SyncFinished=&quot;harp.wav&quot;/&gt;
</div>
- </div></div></div>
+ </div>
<br>
<p>
diff --git a/FreeFileSync/Build/Help/html/external-applications.html b/FreeFileSync/Build/Help/html/external-applications.html
index 566cd838..7109cc72 100644
--- a/FreeFileSync/Build/Help/html/external-applications.html
+++ b/FreeFileSync/Build/Help/html/external-applications.html
@@ -14,7 +14,7 @@
by default. On Windows it calls <span class="command-line">explorer /select, &quot;%local_path%&quot;</span>, on
Linux <span class="command-line">xdg-open &quot;%folder_path%&quot;</span> and on OS X <span class="command-line">open -R &quot;%local_path%&quot;</span>.
To customize this behavior and integrate other external applications into FreeFileSync,
- navigate to <b>Menu &rarr; Tools &rarr; Options: Customize context menu</b> and add or replace a command.
+ navigate to <b>Menu &rarr; Tools &rarr; Options &rarr; Customize context menu</b> and add or replace a command.
</p>
<p>
@@ -26,11 +26,11 @@
In addition to regular <a href="macros.html">Macros</a>, the following special macros are available:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<table style="border-spacing:0;">
<tr>
- <th><b>Macro</b></th>
- <th><b>Description</b></th>
+ <th>Macro</th>
+ <th>Description</th>
</tr>
<tr>
<td><div class="command-line">%item_path%</div></td>
@@ -51,8 +51,7 @@
<span class="command-line">%item_path2%, %folder_path2%, %local_path2%</span>.
</p>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Examples:</h2>
@@ -74,9 +73,9 @@
<div class="command-line">cmd /c echo %item_path% >> %csidl_Desktop%\file_list.txt</div>
</ul>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
You need to protect macros with quotation marks if they can resolve to a file path containing space characters.
- </div></div></div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/FreeFileSync.html b/FreeFileSync/Build/Help/html/freefilesync.html
index e823f033..f9ea1b0f 100644
--- a/FreeFileSync/Build/Help/html/FreeFileSync.html
+++ b/FreeFileSync/Build/Help/html/freefilesync.html
@@ -49,6 +49,5 @@
</ol>
</div>
<div style="clear:both"></div>
- <br>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/Macros.html b/FreeFileSync/Build/Help/html/macros.html
index 6c4a0c4d..522f8206 100644
--- a/FreeFileSync/Build/Help/html/Macros.html
+++ b/FreeFileSync/Build/Help/html/macros.html
@@ -13,16 +13,16 @@
All directory paths may contain macros that are expanded during
synchronization. Begin and end of each macro are marked by a <b>%</b> character. In addition to special macros
handling time and date, the <b>operating system's environment variables</b> may also be used.
+ <br><br>
</p>
- <br>
<h2>Internal macros</h2>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<table style="border-spacing:0;">
<tr>
- <th><b>Macro</b></th>
- <th><b>Sample value</b></th>
+ <th>Macro</th>
+ <th>Example</th>
</tr>
<tr>
<td><span class="command-line">%date%</span></td>
@@ -73,17 +73,16 @@
<td><span class="file-path">52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>(calendar week)</td>
</tr>
</table>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Environment variables<span style="font-weight: normal"> (Windows)</span></h2>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<table style="border-spacing:0;">
<tr>
- <th><b>Macro</b></th>
- <th><b>Sample value</b></th>
+ <th>Macro</th>
+ <th>Example</th>
</tr>
<tr>
<td><span class="command-line">%AllUsersProfile%</span></td>
@@ -91,7 +90,7 @@
</tr>
<tr>
<td><span class="command-line">%AppData%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming</span></td>
</tr>
<tr>
<td><span class="command-line">%ComputerName%</span></td>
@@ -99,7 +98,7 @@
</tr>
<tr>
<td><span class="command-line">%LocalAppData%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Local</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Local</span></td>
</tr>
<tr>
<td><span class="command-line">%ProgramData%</span></td>
@@ -127,95 +126,94 @@
</tr>
<tr>
<td><span class="command-line">%UserProfile%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;</span></td>
+ <td><span class="file-path">C:\Users\Zenju</span></td>
</tr>
<tr>
<td><span class="command-line">%WinDir%</span></td>
<td><span class="file-path">C:\Windows</span></td>
</tr>
</table>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Special folder locations<span style="font-weight: normal"> (Windows)</span></h2>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<table style="border-spacing:0;">
<tr>
- <th><b>Macro</b></th>
- <th><b>Sample value</b></th>
+ <th>Macro</th>
+ <th>Example</th>
</tr>
<tr>
<td><span class="command-line">%csidl_Desktop%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Desktop</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Desktop</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_Downloads%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Downloads</span></td>
+ <td><span class="command-line">%csidl_Documents%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Documents</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_Favorites%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Favorites</span></td>
+ <td><span class="command-line">%csidl_Pictures%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Pictures</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_MyDocuments%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Documents</span></td>
+ <td><span class="command-line">%csidl_Music%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Music</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_MyMusic%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Music</span></td>
+ <td><span class="command-line">%csidl_Videos%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Videos</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_MyPictures%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Pictures</span></td>
- </tr>
- <tr>
- <td><span class="command-line">%csidl_MyVideos%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\Videos</span></td>
+ <td><span class="command-line">%csidl_Downloads%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Downloads</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_Nethood%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Network Shortcuts</span></td>
+ <td><span class="command-line">%csidl_Favorites%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\Favorites</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_Programs%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start Menu\Programs</span></td>
+ <td><span class="command-line">%csidl_Resources%</span></td>
+ <td><span class="file-path">C:\Windows\Resources</span></td>
</tr>
<tr>
<td><span class="command-line">%csidl_Quicklaunch%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_Resources%</span></td>
- <td><span class="file-path">C:\Windows\Resources</span></td>
+ <td><span class="command-line">%csidl_StartMenu%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu</span></td>
</tr>
<tr>
- <td><span class="command-line">%csidl_StartMenu%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start Menu</span></td>
+ <td><span class="command-line">%csidl_Programs%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs</span></td>
</tr>
<tr>
<td><span class="command-line">%csidl_Startup%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp</span></td>
+ </tr>
+ <tr>
+ <td><span class="command-line">%csidl_Nethood%</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Network Shortcuts</span></td>
</tr>
<tr>
<td><span class="command-line">%csidl_Templates%</span></td>
- <td><span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Templates</span></td>
+ <td><span class="file-path">C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Templates</span></td>
</tr>
</table>
<p>
<b>Note:</b> Most macros listed here also have a variant for public folders, e.g.
- <span class="command-line">%csidl_MyMusic%</span> has <span class="command-line">%csidl_PublicMusic%</span>.
+ <span class="command-line">%csidl_Documents%</span> has <span class="command-line">%csidl_PublicDocuments%</span>.
</p>
- </div></div></div>
+ </div>
<br>
<p>
- <b>Hint:</b> You can add a great amount of flexibility to a ffs_batch configuration file
+ <b>Hint:</b> You can add a flexibility to a ffs_batch configuration file
by creating new temporary environment variables in a bat or cmd file that are evaluated by FreeFileSync at runtime:
+ <br><br>
</p>
- <br>
<h2>Example:</h2>
<p>
@@ -223,18 +221,18 @@
macro <span class="command-line">%MyVar%</span> instead of an absolute target folder and is invoked by a cmd file:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">set MyVar=C:\Target<br>
&quot;C:\Program files\FreeFileSync\FreeFileSync.exe&quot; C:\SyncJob.ffs_batch<br>
<div class="command-line-comment">::%MyVar% is resolved as C:\Target during synchronization</div>
</div>
- </div></div></div>
+ </div>
<br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
Temporary environment variables created with the <span class="command-line">set</span> command are only valid if the synchronization is started by calling the
FreeFileSync executable directly. Using <span class="command-line">start /wait</span> would create a new program context without these temporary variables.
- </div></div></div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/RealtimeSync.html b/FreeFileSync/Build/Help/html/realtimesync.html
index fcbcc753..1b0641c7 100644
--- a/FreeFileSync/Build/Help/html/RealtimeSync.html
+++ b/FreeFileSync/Build/Help/html/realtimesync.html
@@ -15,8 +15,8 @@
<p>
The primary purpose of RealTimeSync is to execute a command line each time it <b>detects changes</b> in one of the monitored directories
or when a <b>directory becomes available</b> (e. g. insert of a USB-stick). Usually this command line will trigger a FreeFileSync batch job.
+ <br><br>
</p>
- <br>
<h2>Example: <span style="font-weight:normal">Real time synchronization - in combination with FreeFileSync</span></h2>
<p>
@@ -31,7 +31,7 @@
</div>
<br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b>
<ul style="margin: 0">
<li>The command should <b>not</b> <b>block</b> progress. If you call a FreeFileSync batch job, make
@@ -47,8 +47,7 @@
<li>RealTimeSync is not tied to starting FreeFileSync. It can also be used in other scenarios, like sending an email whenever a certain directory is modified.
</ul>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Example: <span style="font-weight:normal">Automatic synchronization when a USB stick is inserted</span></h2>
@@ -71,18 +70,17 @@
on the stick. RealTimeSync will also trigger each time files are modified in <span class="file-path">H:\Data</span>.
</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
The full path of the last changed file and the action that triggered the
change notification (create, update or delete) are written
to the environment variables <b><span class="command-line">%change_path%</span></b> and <b><span class="command-line">%change_action%</span></b>.
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Example: <span style="font-weight:normal">Log names of changed files and directories (Windows)</span></h2>
<p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
Show which file or directory has triggered a change. Enter command line:<br>
<div class="command-line">
&nbsp;&nbsp;&nbsp;&nbsp;cmd /c echo %change_action% &quot;%change_path%&quot; &amp; pause
@@ -91,19 +89,18 @@
Write a list of all changes to a log file:<br>
<div class="command-line">
- &nbsp;&nbsp;&nbsp;&nbsp;cmd /c echo %change_action% &quot;%change_path%&quot; &gt;&gt; %UserProfile%\Desktop\log.txt
+ &nbsp;&nbsp;&nbsp;&nbsp;cmd /c echo %change_action% &quot;%change_path%&quot; &gt;&gt; %csidl_Desktop%\log.txt
</div>
- </div></div></div>
+ </div>
</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
When RealTimeSync executes a Windows batch file (bat or cmd) a black console window is shown. You can hide it using the Visual Basic script
<span class="file-path">HideConsole.vbs</span> located in FreeFileSync's installation directory:
<br><br>
<div class="command-line">wscript &quot;C:\Program files\FreeFileSync\HideConsole.vbs&quot; C:\MyBatchFile.cmd</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Limitations:</h2>
diff --git a/FreeFileSync/Build/Help/html/run-as-service.html b/FreeFileSync/Build/Help/html/run-as-service.html
index 239c28f3..c109d6b9 100644
--- a/FreeFileSync/Build/Help/html/run-as-service.html
+++ b/FreeFileSync/Build/Help/html/run-as-service.html
@@ -15,17 +15,16 @@
Generally the goal is to execute a command line of the form:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">&lt;FreeFileSync installation folder&gt;\RealTimeSync.exe &lt;path to *.ffs_real or *.ffs_batch file&gt;</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Example:</h2>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">&quot;C:\Program Files\FreeFileSync\RealTimeSync.exe&quot; &quot;D:\Backup Projects.ffs_real&quot;</div>
- </div></div></div>
+ </div>
<br>
<ol>
diff --git a/FreeFileSync/Build/Help/html/schedule-a-batch-job.html b/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
index 201947b7..a012ef50 100644
--- a/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
+++ b/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
@@ -22,11 +22,11 @@
Alternatively if you want to see the progress, but not wait at the results dialog, it's sufficient to only select the <i>On completion</i> action <b>Close progress dialog</b>.
<br><br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
Even if the progress dialog is not shown at the beginning, you can make it visible later <b>during</b>
synchronization by double-clicking the FreeFileSync icon in the notification area.
- </div></div></div>
+ </div>
<br>
<li>If you don't want error or warning messages to interrupt synchronization, set <b>Handle errors</b> to either <b>Ignore</b> or <b>Stop</b>.<br>
@@ -37,6 +37,7 @@
&nbsp;
<li>Set up the FreeFileSync batch job in your operating system's scheduler:<br>
</ol>
+
<br>
<hr/>
@@ -53,7 +54,7 @@
<img src="../images/windows-scheduler.png" alt="Windows Task Scheduler">
</ul>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
<ul>
<li>In Windows 7 <i>Program/script</i> always needs to point to an executable file like FreeFileSync.exe even
@@ -64,7 +65,7 @@
will also be read from a different path, <span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\FreeFileSync</span>, or in the case of the SYSTEM account from
<span class="file-path">C:\Windows\System32\config\systemprofile\AppData\Roaming\FreeFileSync</span>.
</ul>
- </div></div></div>
+ </div>
<br>
<hr/>
@@ -89,7 +90,6 @@
<li>The Calendar app will start automatically with the Automator job scheduled to the current day. You can now select a different time for synchronization or make it a recurring task.<br>
<img src="../images/calendar-job-added.png" alt="Edit batch job in Calendar"><br>&nbsp;
</ul>
- <br>
<hr/>
<h2>C. Windows XP Scheduled Tasks:</h2>
@@ -103,7 +103,6 @@
<br>
<img src="../images/xp-scheduler.png" alt="Windows XP Task Scheduler"><br>&nbsp;
</ul>
- <br>
<hr/>
<h2>D. Ubuntu Linux Gnome Scheduled Tasks:</h2>
diff --git a/FreeFileSync/Build/Help/html/synchronization-settings.html b/FreeFileSync/Build/Help/html/synchronization-settings.html
index 076a987a..4dc2fae5 100644
--- a/FreeFileSync/Build/Help/html/synchronization-settings.html
+++ b/FreeFileSync/Build/Help/html/synchronization-settings.html
@@ -8,14 +8,12 @@
<body>
<h1>Synchronization Settings</h1>
-
<p>
- <img src="../images/synchronization-settings.png" alt="Synchronization settings dialog"><br>
- &nbsp;
+ <img src="../images/synchronization-settings.png" alt="Synchronization settings dialog">
+ <br><br>
</p>
<h2>Detect Moved Files</h2>
-
<p>
FreeFileSync is able to detect moved files on one side and can quickly apply the same move on the target side during synchronization instead of a slow copy and delete. To make this work FreeFileSync requires database files (sync.ffs_db) to compare the current file system state against the time of the last synchronization.
</p>
@@ -26,7 +24,7 @@
selecting the <b>Detect moved files</b> checkbox.
</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b>
<ul style="margin: 0">
<li>Detection of moved files is not yet possible when synchronizing a folder pair for the first time. Only beginning with the second sync
@@ -34,8 +32,6 @@
<li>Detection is not supported by all file systems. Most notably, certain file moves on the FAT file system cannot be detected.
Also virtualized file systems, e.g. a mounted WebDAV drive, might not support move detection. In these cases FreeFileSync will automatically fall back to copy and delete.
</ul>
- </div></div></div>
- <br>
-
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/synchronize-with-sftp.html b/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
index 77578cb6..ce791325 100644
--- a/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
+++ b/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
@@ -15,18 +15,17 @@
<img src="../images/sftp-login.png" alt="Enter SFTP login data">
</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>In case the SFTP server sets file modification times to the current time
you can do a <a href="comparison-settings.html">Compare by File Size</a> as a workaround.
- </div></div></div>
- <br>
+ </div>
<br>
<h1>Synchronize with SFTP <span style="font-weight: normal">(Linux)</span></h1>
<p>An SFTP share can be mapped to a local folder for use with FreeFileSync:</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<ul style="margin: 0">
<li>Install:
<div class="command-line">sudo apt-get install sshfs</div><br>
@@ -37,6 +36,6 @@
<li>Unmount:<br>
<div class="command-line">fusermount -u mountpoint</div>
</ul>
- </div></div></div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/variable-drive-letters.html b/FreeFileSync/Build/Help/html/variable-drive-letters.html
index 0002b8e7..7acc19a0 100644
--- a/FreeFileSync/Build/Help/html/variable-drive-letters.html
+++ b/FreeFileSync/Build/Help/html/variable-drive-letters.html
@@ -17,22 +17,22 @@
<p><b>Option 1: </b>Specify a folder path by using the volume name:</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
Enter the path as <span class="file-path">[USB-NAME]\folder</span> instead of <span class="file-path">E:\folder</span> where USB-NAME
is the volume name of the USB stick which is currently mounted in drive <span class="file-path">E:\</span>.
- </div></div></div>
+ </div>
<br>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b><br>
It is not required to look up and enter the volume name manually. Just select the corresponding entry in the drop down menu.<br>
<img src="../images/path-by-volume-name.png" alt="Drive letter by volume name">
- </div></div></div>
+ </div>
<br>
<p><b>Option 2: </b>Use a relative directory name:</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<ul style="margin: 0">
<li>Use <span class="file-path">\folder</span> instead of <span class="file-path">E:\folder</span>
@@ -43,6 +43,6 @@
<br>
The working directory is then automatically set to <span class="file-path">E:\</span> by the operating system so that the
relative path <span class="file-path">\folder</span> will be resolved as <span class="file-path">E:\folder</span> during synchronization.
- </div></div></div>
+ </div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/Versioning.html b/FreeFileSync/Build/Help/html/versioning.html
index e3ca9bbd..ffb389dc 100644
--- a/FreeFileSync/Build/Help/html/Versioning.html
+++ b/FreeFileSync/Build/Help/html/versioning.html
@@ -8,29 +8,26 @@
<body>
<h1>File Versioning</h1>
-
<p>
When you need to preserve files that have been deleted or overwritten it's
often sufficient to select <b>Recycle bin</b> in synchronization
settings. However this is only available for local drives and offers
little control on how to store and how long to keep the files.
FreeFileSync therefore has an additional option, <b>Versioning</b>.
+ <br><br>
</p>
- <br>
<h2>1. Keep only the most recent versions</h2>
-
<p>
In synchronization settings set deletion handling to <b>Versioning</b> and naming convention to
<b>Replace</b>. Deleted files will be moved to the specified folder
without any decoration and will replace already existing older
- versions.
+ versions.<br>
+ <img src="../images/versioning.png" alt="Versioning">
+ <br><br>
</p>
- <img src="../images/versioning.png" alt="Versioning"><br>
- &nbsp;
<h2>2. Keep all versions of old files</h2>
-
<p>
Set deletion handling to <b>Versioning</b>
and naming convention to <b>Time stamp</b>. FreeFileSync will move
@@ -39,24 +36,21 @@
that old versions of a file can be conveniently accessed via a file
browser.
</p>
-
<p>
<b>Example:</b>
A file <span class="file-path">Folder\File.txt</span> was updated three times and old versions were moved to folder <span class="file-path">C:\Revisions</span>
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="file-path">
C:\Revisions\Folder\File.txt <b>2012-12-12 111111</b>.txt<br>
C:\Revisions\Folder\File.txt <b>2012-12-12 122222</b>.txt<br>
C:\Revisions\Folder\File.txt <b>2012-12-12 133333</b>.txt
</div>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>3. Save versions at certain intervals</h2>
-
<p>
With naming convention <b>Replace</b>
it is possible to refine the granularity of versions to keep by adding <a href="macros.html">Macros</a>
@@ -66,14 +60,13 @@
<p><b>Example:</b> Using the dynamically generated folder name <span class="file-path">C:\Revisions\%timestamp%</span></p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="file-path">
C:\Revisions\<b>2012-12-12 111111</b>\Folder\File.txt<br>
C:\Revisions\<b>2012-12-12 122222</b>\Folder\File.txt<br>
C:\Revisions\<b>2012-12-12 133333</b>\Folder\File.txt
</div>
- </div></div></div>
-
+ </div>
<p>
This allows for a simple manual undo by moving the deleted files from the
last synchronization session back to their original folders. Other
diff --git a/FreeFileSync/Build/Help/html/volume-shadow-copy.html b/FreeFileSync/Build/Help/html/volume-shadow-copy.html
index 9f67d18c..63b637b4 100644
--- a/FreeFileSync/Build/Help/html/volume-shadow-copy.html
+++ b/FreeFileSync/Build/Help/html/volume-shadow-copy.html
@@ -14,14 +14,13 @@
Copy of the source drive. This feature can be configured via <b>Menu &rarr; Tools &rarr; Options: Copy locked files</b>.
</p>
- <div class="box-outer"><div class="bluebox"><div class="box-inner">
+ <div class="bluebox">
<b>Note</b>
<ul style="margin: 0">
<li>The volume snapshot created by the Volume Shadow Copy Service is only used when copying locked files.
<li>Accessing the Volume Shadow Copy Service requires FreeFileSync to be started with administrator rights.
</ul>
- </div></div></div>
- <br>
+ </div>
<br>
<h2>Troubleshooting</h2>
@@ -30,7 +29,7 @@
registration might help. Create and execute a cmd batch file and insert the following lines or enter directly via command line:
</p>
- <div class="box-outer"><div class="greybox"><div class="box-inner">
+ <div class="greybox">
<div class="command-line">
cd /d %windir%\system32<br>
Net stop vss<br>
@@ -48,7 +47,7 @@
regsvr32 msxml3.dll<br>
regsvr32 msxml4.dll
</div>
- </div></div></div>
+ </div>
<p>
Reference: <a rel="nofollow" target="_blank" href="http://support.microsoft.com/kb/940032">http://support.microsoft.com/kb/940032</a>
</p>
diff --git a/FreeFileSync/Build/Languages/arabic.lng b/FreeFileSync/Build/Languages/arabic.lng
index 1f66306b..6f2edbf5 100644
--- a/FreeFileSync/Build/Languages/arabic.lng
+++ b/FreeFileSync/Build/Languages/arabic.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>تعذر العثور على المجلدات التالية:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>إذا تجاهلت هذا الخطأ سيتم اعتبار المجلدات فارغة. يتم إنشاء المجلدات المفقودة تلقائيا عند الحاجة.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target></target>
<source>A folder input field is empty.</source>
<target>حقل إدخال خاص بمجلد فارغ.</target>
@@ -653,8 +653,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>العناصر التالية لم تحل اختلافاتها، و لن يتم مزامنتها:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>المجلدات التالية مختلفة اختلافا كبيرا. تأكد من أنك قمت بتحديد المجلدات الصحيحة لإجراء التزامن.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target></target>
<source>Not enough free disk space available in:</source>
<target>المساحة الحرة المتوفرة على القرص غير كافية:</target>
@@ -738,23 +738,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>خطأ فادح</target>
-<source>Symlink</source>
-<target>ارتباط-رمزي</target>
-
<source>Folder</source>
<target>المجلد</target>
+<source>Symlink</source>
+<target>ارتباط-رمزي</target>
+
<source>Full path</source>
<target>المسار الكامل</target>
-<source>Name</source>
-<target>الاسم</target>
-
-<source>Relative folder</source>
-<target>مجلد نسبي</target>
+<source>Relative path</source>
+<target></target>
-<source>Base folder</source>
-<target>المجلد الأساسي (القاعدي)</target>
+<source>Item name</source>
+<target></target>
<source>Size</source>
<target>الحجم</target>
@@ -1100,6 +1097,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>الوقت المنقضي:</target>
+<source>Bytes:</source>
+<target></target>
+
+<source>Items:</source>
+<target></target>
+
<source>Synchronizing...</source>
<target>مزامنة...</target>
@@ -1265,6 +1268,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>يتوفر إصدار جديد من FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target></target>
+
<source>Confirm</source>
<target>تأكيد</target>
@@ -1566,17 +1572,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>دمج تطبيقات خارجية في قائمة السياق. تتوفر وحدات الماكرو التالية:</target>
-<source>- full file or folder name</source>
-<target>- اسم الملف أو المجلد كاملاً</target>
+<source>Full file or folder path</source>
+<target></target>
-<source>- folder part only</source>
-<target>- جزء مجلد فقط</target>
+<source>Parent folder path</source>
+<target></target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- النظير للجانب الآخر لـ %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target></target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- االنظير للجانب الآخر لـ %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target></target>
<source>Show hidden dialogs and warning messages again?</source>
<target>إظهار التنبيهات و نوافذ الحوار المخفية مرة ثانية؟</target>
@@ -1668,6 +1674,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>ملفات</target>
+<source>Name</source>
+<target>الاسم</target>
+
<source>Items</source>
<target>عناصر</target>
@@ -1878,3 +1887,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Download the regular version from the FreeFileSync homepage now?</source>
<target></target>
+<source>The portable version cannot install into the selected folder.</source>
+<target></target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target></target>
+
diff --git a/FreeFileSync/Build/Languages/bulgarian.lng b/FreeFileSync/Build/Languages/bulgarian.lng
index 90f9d180..f3c6812d 100644
--- a/FreeFileSync/Build/Languages/bulgarian.lng
+++ b/FreeFileSync/Build/Languages/bulgarian.lng
@@ -8,10 +8,10 @@
</header>
<source>Both sides have changed since last synchronization.</source>
-<target>Двете страни са променени след последната синхронизация.</target>
+<target>Двете страни имат промени след последната синхронизация.</target>
<source>Cannot determine sync-direction:</source>
-<target>Не може да се определи посоката на синхронизация:</target>
+<target>Не може да определи посоката на синхронизация:</target>
<source>No change since last synchronization.</source>
<target>Няма промени след последната синхронизация.</target>
@@ -20,46 +20,46 @@
<target>Записът в базата данни не е синхронизиран по текущите настройки.</target>
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
-<target>Задават се подразбирани посоки на синхронизация: старите файлове ще се заменят с по-нови.</target>
+<target>Задава подразбирани посоки на синхронизация: старите файлове ще се заменят с по-нови.</target>
<source>Creating folder %x</source>
-<target>Създава се папка %x</target>
+<target>Създава папка %x</target>
<source>Creating file %x</source>
-<target>Създава се файл %x</target>
+<target>Създава файл %x</target>
<source>Creating symbolic link %x</source>
-<target>Създава се символна връзка %x</target>
+<target>Създава символна връзка %x</target>
<source>Moving file %x to the recycle bin</source>
-<target>Файл %x се премества в кошчето</target>
+<target>Премества в кошчето файл %x</target>
<source>Moving folder %x to the recycle bin</source>
-<target>Папка %x се премества в кошчето</target>
+<target>Премества в кошчето папка %x</target>
<source>Moving symbolic link %x to the recycle bin</source>
-<target>Символна връзка %x се премества в кошчето</target>
+<target>Премества в кошчето символна връзка %x</target>
<source>Deleting file %x</source>
-<target>Изтрива се файл %x</target>
+<target>Изтрива файл %x</target>
<source>Deleting folder %x</source>
-<target>Изтрива се папка %x</target>
+<target>Изтрива папка %x</target>
<source>Deleting symbolic link %x</source>
-<target>Изтрива се символна връзка %x</target>
+<target>Изтрива символна връзка %x</target>
<source>Checking recycle bin availability for folder %x...</source>
-<target>Проверява се достъпността на кошчето за папка %x...</target>
+<target>Проверява достъпността на кошчето за папка %x...</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>Кошчето е недостъпно за следните папки. Вместо това файловете ще бъдат необратимо изтрити:</target>
+<target>Кошчето е недостъпно за следните папки. Вместо това ще изтрие необратимо файловете:</target>
<source>An exception occurred</source>
-<target>Получи се изключение</target>
+<target>Възникна изключение</target>
<source>A directory path is expected after %x.</source>
-<target>Очаква се път до директорията след %x.</target>
+<target>Очаква път до директорията след %x.</target>
<source>Syntax error</source>
<target>Синтактична грешка</target>
@@ -77,7 +77,7 @@
<target>Зададен е нееднакъв брой директории отляво и отдясно.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Конфигурационният файл не може да съдържа настройки на ниво двойка директории, ако директориите се задават от команден ред.</target>
+<target>Конфигурационният файл не може да съдържа настройки на ниво двойка директории, ако директории се задават от команден ред.</target>
<source>Directories cannot be set for more than one configuration file.</source>
<target>Не може да се задават директории за повече от един конфигурационен файл.</target>
@@ -101,7 +101,7 @@
<target>Път до алтернативен файл GlobalSettings.xml.</target>
<source>Any number of FreeFileSync .ffs_gui and/or .ffs_batch configuration files.</source>
-<target>Произволен брой конфигурационни файлове .ffs_gui и/или .ffs_batch за FreeFileSync.</target>
+<target>Произволен брой FreeFileSync-конфигурационни-файлове .ffs_gui и/или .ffs_batch.</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Произволен брой алтернативни двойки директории за най-много един конфигурационен файл.</target>
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не са намерени следните папки:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ако игнорирате тази грешка, папките ще се считат празни. Липсващи папки се създават автоматично при нужда.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ако тази грешка се игнорира, папките се считат празни. Липсващи папки се създават автоматично при нужда.</target>
<source>A folder input field is empty.</source>
<target>Полето за въведена папка е празно.</target>
@@ -122,7 +122,7 @@
<target>Съответната папка ще се счита празна.</target>
<source>The following folder paths are dependent from each other:</source>
-<target>Пътищата до следните папки са взаимно зависими:</target>
+<target>Пътищата до следните папки са взаимозависими:</target>
<source>File %x has an invalid date.</source>
<target>Файл %x има невалидна дата.</target>
@@ -137,28 +137,28 @@
<target>Размер:</target>
<source>Content comparison was skipped for excluded files %x.</source>
-<target>Беше прескочено сравняване на съдържанието за изключените файлове %x.</target>
+<target>Прескочено е сравняването на съдържанието за изключените файлове %x.</target>
<source>Items differ in attributes only</source>
<target>Елементите се различават само по атрибути</target>
<source>Resolving symbolic link %x</source>
-<target>Проследява се символна връзка %x</target>
+<target>Проследява символна връзка %x</target>
<source>Comparing content of files %x</source>
-<target>Сравнява се съдържанието на файловете %x</target>
+<target>Сравнява съдържанието на файловете %x</target>
<source>Generating file list...</source>
-<target>Създава се списък на файловете...</target>
+<target>Създава списък на файловете...</target>
<source>Fail-safe file copy</source>
<target>Надеждно копиране на файлове</target>
<source>Enabled</source>
-<target></target>
+<target>Активирано</target>
<source>Disabled</source>
-<target></target>
+<target>Неактивирано</target>
<source>Copy locked files</source>
<target>Копирай заключени файлове</target>
@@ -167,28 +167,28 @@
<target>Копирай правата за достъп на файла</target>
<source>File time tolerance</source>
-<target></target>
+<target>Толеранс на файловото време</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Време за достъп до папката</target>
<source>Run with background priority</source>
-<target></target>
+<target>Изпълнявай с фонов приоритет</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Заключи директориите по време на синхронизация</target>
<source>Verify copied files</source>
-<target></target>
+<target>Верифицирай копираните файлове</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Използва нестандартни глобални настройки:</target>
<source>Starting comparison</source>
<target>Започва сравняване</target>
<source>Calculating sync directions...</source>
-<target>Пресмятат се посоките на синхронизация...</target>
+<target>Пресмята посоките на синхронизация...</target>
<source>Out of memory.</source>
<target>Недостатъчна памет.</target>
@@ -248,13 +248,13 @@
<target>Актуализирай атрибутите на десния елемент</target>
<source>Cannot write permissions of %x.</source>
-<target>Не могат да се запишат правата за достъп на %x.</target>
+<target>Не може да запише правата за достъп на %x.</target>
<source>Operation not supported for different base folder types.</source>
<target>Операцията не се поддържа за различни типове основни папки.</target>
<source>Cannot write file %x.</source>
-<target>Не може да се запише файл %x.</target>
+<target>Не може да запише файл %x.</target>
<source>
Unexpected size of data stream.
@@ -268,55 +268,55 @@ Actual: %y bytes
</target>
<source>Cannot copy symbolic link %x to %y.</source>
-<target>Не може да се копира символната връзка %x в %y.</target>
+<target>Не може да копира символната връзка %x в %y.</target>
<source>Cannot move file %x to %y.</source>
-<target>Не може да се премести файл %x в %y.</target>
+<target>Не може да премести файл %x в %y.</target>
<source>Cannot enumerate directory %x.</source>
-<target>Не може да се прочете директория %x.</target>
+<target>Не може да прочете директория %x.</target>
<source>Cannot read file attributes of %x.</source>
-<target>Не могат да се прочетат атрибутите на файл %x.</target>
+<target>Не може да прочете атрибутите на файл %x.</target>
<source>Cannot find %x.</source>
<target>Не е намерен %x.</target>
<source>Cannot open file %x.</source>
-<target>Не може да се отвори файл %x.</target>
+<target>Не може да отвори файл %x.</target>
<source>Cannot read file %x.</source>
-<target>Не може да се прочете файл %x.</target>
+<target>Не може да прочете файл %x.</target>
<source>Cannot find device %x.</source>
<target>Не е намерено устройство %x.</target>
<source>Cannot create directory %x.</source>
-<target>Не може да се създаде директория %x.</target>
+<target>Не може да създаде директория %x.</target>
<source>Cannot delete directory %x.</source>
-<target>Не може да се изтрие директория %x.</target>
+<target>Не може да изтрие директория %x.</target>
<source>Cannot delete file %x.</source>
-<target>Не може да се изтрие файл %x.</target>
+<target>Не може да изтрие файл %x.</target>
<source>Cannot write modification time of %x.</source>
-<target>Не може да се запише времето на промяна на %x.</target>
+<target>Не може да запише времето на промяна на %x.</target>
<source>Cannot determine final path for %x.</source>
-<target>Не може да се определи крайния път за %x.</target>
+<target>Не може да определи крайния път за %x.</target>
<source>Cannot resolve symbolic link %x.</source>
-<target>Не може да се проследи символната връзка %x.</target>
+<target>Не може да проследи символната връзка %x.</target>
<source>Cannot open directory %x.</source>
-<target>Не може да се отвори директория %x.</target>
+<target>Не може да отвори директория %x.</target>
<source>Cannot determine free disk space for %x.</source>
-<target>Не може да се определи свободното дисково пространство за %x.</target>
+<target>Не може да определи свободното дисково пространство за %x.</target>
<source>Unable to move %x to the recycle bin.</source>
-<target>Не може да се премести %x в кошчето.</target>
+<target>Не може да премести %x в кошчето.</target>
<source>Incorrect command line:</source>
<target>Невалиден команден ред:</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Код на грешка %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Не може да се свърже към %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -346,7 +346,7 @@ Actual: %y bytes
<target>%x ГБ</target>
<source>Cannot load file %x.</source>
-<target>Не може да се зареди файл %x.</target>
+<target>Не може да зареди файл %x.</target>
<source>Database file %x is incompatible.</source>
<target>Файлът с база данни %x е несъвместим.</target>
@@ -364,16 +364,16 @@ Actual: %y bytes
<target>Файловете с бази данни не споделят обща сесия.</target>
<source>Searching for folder %x...</source>
-<target>Търсене на папка %x...</target>
+<target>Търси папка %x...</target>
<source>Timeout while searching for folder %x.</source>
<target>Изтекло време за търсене на папка %x.</target>
<source>Cannot get process information.</source>
-<target>Не може да се получи информация за процеса.</target>
+<target>Не може да получи информация за процеса.</target>
<source>Waiting while directory is locked:</source>
-<target>Изчаква се, докато е заключена директорията:</target>
+<target>Изчаква, докато е заключена директорията:</target>
<source>Lock owner:</source>
<target>Притежател на заключването:</target>
@@ -388,10 +388,10 @@ Actual: %y bytes
</target>
<source>Detecting abandoned lock...</source>
-<target>Откриване на изоставено заключване...</target>
+<target>Намира изоставено заключване...</target>
<source>Saving file %x...</source>
-<target>Запазва се файл %x...</target>
+<target>Запазва файл %x...</target>
<source>Items processed:</source>
<target>Обработени елементи:</target>
@@ -406,7 +406,7 @@ Actual: %y bytes
<target>Грешка при анализ на файл %x, ред %y, колона %z.</target>
<source>Cannot set directory lock for %x.</source>
-<target>Не може да се заключи директорията за %x.</target>
+<target>Не може да заключи директорията за %x.</target>
<source>
<pluralform>1 thread</pluralform>
@@ -418,7 +418,7 @@ Actual: %y bytes
</target>
<source>Scanning:</source>
-<target>Търсят се файлове:</target>
+<target>Търси файлове:</target>
<source>/sec</source>
<target>/сек.</target>
@@ -436,22 +436,22 @@ Actual: %y bytes
<target>Преглед на директорията</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>Не може да се получи достъп до услуга Volume Shadow Copy.</target>
+<target>Не може да получи достъп до услуга Volume Shadow Copy.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Моля, ползвайте 64-битова FreeFileSync-версия за създаване на shadow-копия на тази система.</target>
<source>Cannot determine volume name for %x.</source>
-<target>Не може да се определи името на тома за %x.</target>
+<target>Не може да определи името на тома за %x.</target>
<source>Volume name %x is not part of file path %y.</source>
<target>Името на тома %x не е част от пътя до файла %y.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>Заявка за стоп: изчаква се завършване на текущата операция...</target>
+<target>Заявка за стоп: изчаква завършване на текущата операция...</target>
<source>Unable to create time stamp for versioning:</source>
-<target>Не може да се отбележи времето на версификация:</target>
+<target>Не може да отбележи времето на версификация:</target>
<source>Drag && drop</source>
<target>Влачете и пуснете</target>
@@ -496,7 +496,7 @@ Actual: %y bytes
<target>3. Натиснете 'Старт'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>За стартиране просто импортирайте файл .ffs_batch.</target>
+<target>За старт просто импортирайте файл .ffs_batch.</target>
<source>Folders to watch:</source>
<target>Папки за следене:</target>
@@ -537,7 +537,7 @@ The command is triggered if:
<target>Относно</target>
<source>Build: %x</source>
-<target>Вариант: %x</target>
+<target>Версия: %x</target>
<source>All files</source>
<target>Всички файлове</target>
@@ -552,7 +552,7 @@ The command is triggered if:
<target>Следенето на директории е активирано</target>
<source>Waiting until all directories are available...</source>
-<target>Изчаква се достъпност на всички директории...</target>
+<target>Изчаква достъпност на всички директории...</target>
<source>&Restore</source>
<target>Въ&зстановяване</target>
@@ -582,7 +582,7 @@ The command is triggered if:
<target>Огледална</target>
<source>Update</source>
-<target>Актуализиране</target>
+<target>Актуализация</target>
<source>Custom</source>
<target>По избор</target>
@@ -615,7 +615,7 @@ The command is triggered if:
<target>Актуализира атрибутите на %x</target>
<source>Cannot write file attributes of %x.</source>
-<target>Не могат да се запишат файловите атрибути на %x.</target>
+<target>Не може да запише файловите атрибути на %x.</target>
<source>%x and %y have different content.</source>
<target>%x и %y имат различно съдържание.</target>
@@ -641,8 +641,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следните елементи имат нерешени конфликти и няма да бъдат синхронизирани:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Следните папки са съществено различни. Уверете се, че сте избрали точните папки за синхронизация.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Следните папки са съществено различни. Моля, проверете дали са избрани верните папки за синхронизация.</target>
<source>Not enough free disk space available in:</source>
<target>Недостатъчно свободно дисково пространство в:</target>
@@ -654,13 +654,13 @@ The command is triggered if:
<target>Налично:</target>
<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target>Много двойки папки записват в обща подпапка. Моля, проверете конфигурацията.</target>
+<target>Много двойки папки записват в обща под-папка. Моля, проверете конфигурацията.</target>
<source>Synchronizing folder pair:</source>
<target>Синхронизация на двойка папки:</target>
<source>Generating database...</source>
-<target>Създава се база данни...</target>
+<target>Създава база данни...</target>
<source>job name</source>
<target>име на задачата</target>
@@ -687,10 +687,10 @@ The command is triggered if:
<target>Синхронизацията завърши успешно</target>
<source>Cleaning up old log files...</source>
-<target>Изчистват се старите log-файлове...</target>
+<target>Изчиства старите log-файлове...</target>
<source>You can switch to FreeFileSync's main window to resolve this issue.</source>
-<target>За решение на този проблем може да превключите на главното меню на FreeFileSync.</target>
+<target>За решение на този проблем идете на главното меню на FreeFileSync.</target>
<source>&Don't show this warning again</source>
<target>Не показвай ве&че това предупреждение</target>
@@ -702,7 +702,7 @@ The command is triggered if:
<target>Превкл&ючи</target>
<source>Switching to FreeFileSync's main window</source>
-<target>Превключване към главното меню на FreeFileSync</target>
+<target>Иди на главното меню на FreeFileSync</target>
<source>
<pluralform>Automatic retry in 1 second...</pluralform>
@@ -717,28 +717,25 @@ The command is triggered if:
<target>Игнорирай сле&дващите грешки</target>
<source>Retrying operation...</source>
-<target>Повтаря се операцията...</target>
+<target>Повтаря операцията...</target>
<source>Serious Error</source>
<target>Сериозна грешка</target>
-<source>Symlink</source>
-<target>Символна връзка</target>
-
<source>Folder</source>
<target>Папка</target>
+<source>Symlink</source>
+<target>Символна връзка</target>
+
<source>Full path</source>
<target>Пълен път</target>
-<source>Name</source>
-<target>Име</target>
-
-<source>Relative folder</source>
-<target>Относителна папка</target>
+<source>Relative path</source>
+<target>Относителен път</target>
-<source>Base folder</source>
-<target>Основна папка</target>
+<source>Item name</source>
+<target>Име на елемента</target>
<source>Size</source>
<target>Размер</target>
@@ -849,7 +846,7 @@ The command is triggered if:
<target>&Веднага</target>
<source>Check &automatically once a week</source>
-<target>&Автоматично веднъж седмично</target>
+<target>Веднъж седмично &автоматично</target>
<source>Cancel</source>
<target>Отказ</target>
@@ -891,10 +888,10 @@ The command is triggered if:
<target>Запази като...</target>
<source>View type:</source>
-<target>Изберете тип:</target>
+<target>Тип на изгледа:</target>
<source>Select view:</source>
-<target>Изберете показване:</target>
+<target>Избор на изгледа:</target>
<source>Statistics:</source>
<target>Статистика:</target>
@@ -915,7 +912,7 @@ The command is triggered if:
<target>Двойка папки:</target>
<source>Main settings:</source>
-<target></target>
+<target>Главни настройки:</target>
<source>Use local settings:</source>
<target>Ползвай локални настройки:</target>
@@ -972,7 +969,7 @@ The command is triggered if:
<target>Максимум:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>Изберете филтърни правила за изключване на някои файлове от синхронизация. Въведете относителни файлови пътища към съответните двойки папки.</target>
+<target>Изберете филтърни правила за изключване някои файлове от синхронизация. Въведете относителни файлови пътища към съответните двойки папки.</target>
<source>C&lear</source>
<target>И&зчисти</target>
@@ -1067,7 +1064,7 @@ The command is triggered if:
<target>Изберете папка</target>
<source>Start synchronization now?</source>
-<target>Старт на синхронизация веднага?</target>
+<target>Почни синхронизация веднага?</target>
<source>Variant:</source>
<target>Вариант:</target>
@@ -1084,6 +1081,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Изминало време:</target>
+<source>Bytes:</source>
+<target>Байтове:</target>
+
+<source>Items:</source>
+<target>Елементи:</target>
+
<source>Synchronizing...</source>
<target>Синхронизация...</target>
@@ -1133,7 +1136,7 @@ The command is triggered if:
<target>&Презапиши съществуващите файлове</target>
<source>The following settings are used for all synchronization jobs.</source>
-<target>Следните настройки се ползват от всички задачи за синхронизация.</target>
+<target>Всички задачи за синхронизация ползват следните настройки.</target>
<source>
Copy to a temporary file (*.ffs_tmp) before overwriting target.
@@ -1249,6 +1252,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Има нова версия на FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Не е наличен локален път за %x.</target>
+
<source>Confirm</source>
<target>Потвърждение</target>
@@ -1460,7 +1466,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Търсене на файлове...</target>
<source>Comparing content...</source>
-<target>Сравняване съдържанието на файлове...</target>
+<target>Сравнява съдържанието на файлове...</target>
<source>Completed</source>
<target>Завършено</target>
@@ -1522,17 +1528,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Включи външни приложения в контекстното меню. Налични са следните макроси:</target>
-<source>- full file or folder name</source>
-<target>- пълно име на файла или папката</target>
+<source>Full file or folder path</source>
+<target>Пълен път до файла или папката</target>
-<source>- folder part only</source>
-<target>- само частта на папката</target>
+<source>Parent folder path</source>
+<target>Път до родителската папка</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- съответствие от другата страна на %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Временно локално копие за SFTP- и MTP-запазване</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- съответствие от другата страна на %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Параметри за срещуположната страна</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Да покажа ли пак скритите диалози и предупреждения?</target>
@@ -1541,13 +1547,13 @@ This guarantees a consistent state even in case of a serious error.
<target>&Покажи</target>
<source>Identify equal files by comparing modification time and size.</source>
-<target>Определяне на еднаквите файлове, сравнявайки времето на промяна и размера.</target>
+<target>Определяне на еднакви файлове, сравнявайки времето на промяна и размера.</target>
<source>Identify equal files by comparing the file content.</source>
-<target>Определяне на еднаквите файлове, сравнявайки файловото съдържание.</target>
+<target>Определяне на еднакви файлове, сравнявайки файловото съдържание.</target>
<source>Identify equal files by comparing their file size.</source>
-<target>Определяне на еднаквите файлове, сравнявайки файловия размер.</target>
+<target>Определяне на еднакви файлове, сравнявайки файловия размер.</target>
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Откриване и разпростиране на промените в двете страни. Изтривания, премествания и конфликти се откриват автоматично с база данни.</target>
@@ -1556,13 +1562,13 @@ This guarantees a consistent state even in case of a serious error.
<target>Създаване на огледално копие на лявата папка, привеждайки дясната папка в съответствие.</target>
<source>Copy new and updated files to the right folder.</source>
-<target>Копиране на новите и актуализирани файлове към дясната папка.</target>
+<target>Копиране на нови и актуализирани файлове към дясната папка.</target>
<source>Configure your own synchronization rules.</source>
<target>Създаване на собствени правила за синхронизация.</target>
<source>Synchronization Settings</source>
-<target>Настройки на синхронизация</target>
+<target>Настройки за синхронизация</target>
<source>Comparison</source>
<target>Сравняване</target>
@@ -1624,6 +1630,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Файлове</target>
+<source>Name</source>
+<target>Име</target>
+
<source>Items</source>
<target>Елементи</target>
@@ -1640,13 +1649,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync вече е актуална.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Онлайн-номера на текущата FreeFileSync-версия не е открит. Изглежда има по-нова версия. Ще опитате ли ръчно сега?</target>
<source>&Check</source>
<target>Оп&итай</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Неуспешна проверка за съвместимост на %x.</target>
<source>Cannot find system function %x.</source>
<target>Не е намерена системната функция %x.</target>
@@ -1655,37 +1664,37 @@ This guarantees a consistent state even in case of a serious error.
<target>Невъзможна регистрация за получаване на системни съобщения.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Инсталационните файлове са повредени. Моля, преинсталирайте FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Не се регистрират съобщенията на устройство %x.</target>
<source>Cannot monitor directory %x.</source>
-<target>Не може да се следи директория %x.</target>
+<target>Не може да следи директория %x.</target>
<source>The file is locked by another process:</source>
<target>Файлът е заключен от друг процес:</target>
<source>Cannot read security context of %x.</source>
-<target>Не може да се прочете контекста за сигурност на %x.</target>
+<target>Не може да прочете контекста за сигурност на %x.</target>
<source>Cannot write security context of %x.</source>
-<target>Не може да се запише контекста за сигурност на %x.</target>
+<target>Не може да запише контекста за сигурност на %x.</target>
<source>Cannot read permissions of %x.</source>
-<target>Не могат да се прочетат правата за достъп на %x.</target>
+<target>Не може да прочете правата за достъп на %x.</target>
<source>Cannot copy permissions from %x to %y.</source>
-<target>Не могат да се копират правата за достъп от %x в %y.</target>
+<target>Не може да копира правата за достъп от %x в %y.</target>
<source>%x is not a regular directory name.</source>
<target>%x не е регулярно име на директория.</target>
<source>Cannot copy file %x to %y.</source>
-<target>Не може да се копира файл %x в %y.</target>
+<target>Не може да копира файл %x в %y.</target>
<source>Cannot copy attributes from %x to %y.</source>
-<target>Не могат да се копират атрибутите от %x в %y.</target>
+<target>Не може да копира атрибутите от %x в %y.</target>
<source>Type of item %x is not supported:</source>
<target>Типа на елемент %x не се поддържа:</target>
@@ -1724,19 +1733,19 @@ This guarantees a consistent state even in case of a serious error.
</target>
<source>Cannot set privilege %x.</source>
-<target>Привилегията %x не може да се зададе.</target>
+<target>Не може да зададе привилегията %x.</target>
<source>Unable to suspend system sleep mode.</source>
-<target>Режима на заспиване на системата не може да се прекрати.</target>
+<target>Не може да прекрати режима на заспиване на системата.</target>
<source>Cannot change process I/O priorities.</source>
-<target>I/O-приоритета на процеса не може да се измени.</target>
+<target>Не може да промени I/O-приоритетите на процеса.</target>
<source>Checking recycle bin failed for folder %x.</source>
-<target>Проверката на кошчето за папка %x е неуспешна.</target>
+<target>Неуспешна проверка на кошчето за папка %x.</target>
<source>The following XML elements could not be read:</source>
-<target>Следните XML-елементи не могат да се прочетат:</target>
+<target>Не могат да се прочетат следните XML-елементи:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
<target>Конфигурационният файл %x е непълен. Ще бъдат зададени подразбирани стойности за липсващите елементи.</target>
@@ -1817,8 +1826,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Благодарности за Вашите дарения и подкрепа!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Този FreeFileSync-инсталатор за донори изчерпа дневния си лимит за инсталации.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Сваляне на регулярната версия от страницата на FreeFileSync сега?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Преносимата версия не може да се инсталира в избраната папка.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Моля, изберете локален тип инсталация или пък друга папка за инсталация.</target>
diff --git a/FreeFileSync/Build/Languages/chinese_simple.lng b/FreeFileSync/Build/Languages/chinese_simple.lng
index a3ae61e0..2b3051ec 100644
--- a/FreeFileSync/Build/Languages/chinese_simple.lng
+++ b/FreeFileSync/Build/Languages/chinese_simple.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>无法找到如下文件夹:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>如果你忽略这个错误, 文件夹将被认为是空的. 在需要的时候丢失的文件夹将会被自动创建.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>如果这个错误被忽略文件夹将被认为是空的. 当有必要时丢失的文件夹将会被创建.</target>
<source>A folder input field is empty.</source>
<target>有一个文件夹输入框为空.</target>
@@ -155,10 +155,10 @@
<target>无风险的文件复制</target>
<source>Enabled</source>
-<target></target>
+<target>启用</target>
<source>Disabled</source>
-<target></target>
+<target>禁用</target>
<source>Copy locked files</source>
<target>复制被锁定的文件</target>
@@ -167,22 +167,22 @@
<target>复制文件存取权限</target>
<source>File time tolerance</source>
-<target></target>
+<target>文件时间容差</target>
<source>Folder access timeout</source>
-<target></target>
+<target>文件夹访问超时</target>
<source>Run with background priority</source>
-<target></target>
+<target>以后台优先级运行</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>同步期间锁定目录</target>
<source>Verify copied files</source>
-<target></target>
+<target>校验已复制文件</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>使用非默认全局设置:</target>
<source>Starting comparison</source>
<target>正在开始比较</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>错误代码 %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>无法连接到 %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -436,7 +436,7 @@ Actual: %y bytes
<target>无法访问卷影复制服务.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>请运行FreeFileSync的64位版本来在此系统上创建卷影.</target>
<source>Cannot determine volume name for %x.</source>
<target>无法为 %x 确定卷名.</target>
@@ -638,8 +638,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>如下项目有无法解决的冲突并将不会被同步:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>下列文件夹有明显的不同. 请确认你已选择了正确的文件夹来进行同步.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>如下的文件夹有显著不同. 请检查是否选择了正确的文件夹来进行同步.</target>
<source>Not enough free disk space available in:</source>
<target>没有足够的可用磁盘空间用于:</target>
@@ -718,23 +718,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>严重错误</target>
-<source>Symlink</source>
-<target>符号连接</target>
-
<source>Folder</source>
<target>文件夹</target>
+<source>Symlink</source>
+<target>符号连接</target>
+
<source>Full path</source>
<target>完整路径</target>
-<source>Name</source>
-<target>文件名</target>
-
-<source>Relative folder</source>
-<target>相对文件夹</target>
+<source>Relative path</source>
+<target>相对路径</target>
-<source>Base folder</source>
-<target>主文件夹</target>
+<source>Item name</source>
+<target>项目名称</target>
<source>Size</source>
<target>大小</target>
@@ -911,7 +908,7 @@ The command is triggered if:
<target>文件夹对:</target>
<source>Main settings:</source>
-<target></target>
+<target>主设置:</target>
<source>Use local settings:</source>
<target>使用本地设置:</target>
@@ -1080,6 +1077,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>已用时间:</target>
+<source>Bytes:</source>
+<target>字节:</target>
+
+<source>Items:</source>
+<target>项目:</target>
+
<source>Synchronizing...</source>
<target>同步中...</target>
@@ -1242,6 +1245,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>已经有新版本的FreeFileSync可用:</target>
+<source>Local path not available for %x.</source>
+<target>本地路径不适用于 %x.</target>
+
<source>Confirm</source>
<target>确认</target>
@@ -1508,17 +1514,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>集成外部应用程序到右键菜单. 如下宏可用:</target>
-<source>- full file or folder name</source>
-<target>- 完整的文件或文件夹名</target>
+<source>Full file or folder path</source>
+<target>完整的文件或文件夹路径</target>
-<source>- folder part only</source>
-<target>- 只对文件夹部分</target>
+<source>Parent folder path</source>
+<target>上级文件夹路径</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- 另一边的对应项到 %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP和MTP存储的临时本地副本</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- 另一边的对应项到 %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>用于对侧的参数</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>是否要重新显示被隐藏的对话框和警告信息?</target>
@@ -1610,6 +1616,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>文件</target>
+<source>Name</source>
+<target>文件名</target>
+
<source>Items</source>
<target>项目</target>
@@ -1626,13 +1635,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync 已是最新.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>无法在线找到当前FreeFileSync的版本号. 可能有新版本可用. 是否现在手动检测?</target>
<source>&Check</source>
<target>检查(&C)</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>对于 %x 的一致性检测失败.</target>
<source>Cannot find system function %x.</source>
<target>无法找到系统功能 %x.</target>
@@ -1641,7 +1650,7 @@ This guarantees a consistent state even in case of a serious error.
<target>无法注册以接收系统信息.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>安装文件损坏. 请重新安装FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>无法为 %x 注册设备通知.</target>
@@ -1800,8 +1809,14 @@ This guarantees a consistent state even in case of a serious error.
<target>谢谢你的捐助和支持!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>这个用于捐助者的FreeFileSync安装程序已经达到每日安装上限.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>是否要马上从FreeFileSync网站下载普通版本?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>便携版本无法安装到选定的文件夹.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>请选择本地安装类型或选择用于安装的不同文件夹.</target>
diff --git a/FreeFileSync/Build/Languages/chinese_traditional.lng b/FreeFileSync/Build/Languages/chinese_traditional.lng
index d177cdbd..6211dcc4 100644
--- a/FreeFileSync/Build/Languages/chinese_traditional.lng
+++ b/FreeFileSync/Build/Languages/chinese_traditional.lng
@@ -59,7 +59,7 @@
<target>發生異常</target>
<source>A directory path is expected after %x.</source>
-<target>%x 後預期的目錄路徑。</target>
+<target>在 %x 後預期的目錄路徑。</target>
<source>Syntax error</source>
<target>語法錯誤</target>
@@ -89,7 +89,7 @@
<target>語法:</target>
<source>global config file:</source>
-<target>整體配置檔案:</target>
+<target>全域配置檔案:</target>
<source>config files:</source>
<target>配置檔案:</target>
@@ -112,17 +112,17 @@
<source>Cannot find the following folders:</source>
<target>找不到下列資料夾:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>如果您忽略此錯誤的資料夾都將被視為空的。遺失的資料夾會在需要時自動新建。</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>如果忽略此錯誤的資料夾將視為空。在需要時會自動新建缺少的資料夾。</target>
<source>A folder input field is empty.</source>
-<target>資料夾輸入欄位是空的。</target>
+<target>資料夾輸入欄位是空白。</target>
<source>The corresponding folder will be considered as empty.</source>
-<target>對應的資料夾將視為空的。</target>
+<target>對應的資料夾將視為空。</target>
<source>The following folder paths are dependent from each other:</source>
-<target>以下資料夾路徑是相互依賴:</target>
+<target>下列資料夾路徑是相互依賴:</target>
<source>File %x has an invalid date.</source>
<target>檔案 %x 的日期無效。</target>
@@ -146,7 +146,7 @@
<target>正在解析符號連結 %x</target>
<source>Comparing content of files %x</source>
-<target>正在比對檔案内容 %x</target>
+<target>正在比對檔案 %x 的内容</target>
<source>Generating file list...</source>
<target>正在產生檔案清單…</target>
@@ -155,34 +155,34 @@
<target>故障保護檔案複製</target>
<source>Enabled</source>
-<target></target>
+<target>啟用</target>
<source>Disabled</source>
-<target></target>
+<target>禁用</target>
<source>Copy locked files</source>
<target>複製被鎖定的檔案</target>
<source>Copy file access permissions</source>
-<target>複製檔案系統權限</target>
+<target>複製檔存取權限</target>
<source>File time tolerance</source>
-<target></target>
+<target>檔案時間差</target>
<source>Folder access timeout</source>
-<target></target>
+<target>資料夾存取超時</target>
<source>Run with background priority</source>
-<target></target>
+<target>背景優先執行</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>在同步期間鎖定目錄</target>
<source>Verify copied files</source>
-<target></target>
+<target>驗證複製的檔案</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>使用非預設全域設定:</target>
<source>Starting comparison</source>
<target>開始比對</target>
@@ -304,7 +304,7 @@ Actual: %y bytes
<target>無法寫入 %x 的修改時間。</target>
<source>Cannot determine final path for %x.</source>
-<target>無法確定最後路徑為 %x。</target>
+<target>無法確定 %x 最後路徑。</target>
<source>Cannot resolve symbolic link %x.</source>
<target>無法解析符號連結 %x。</target>
@@ -325,14 +325,14 @@ Actual: %y bytes
<target>錯誤代碼 %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>無法連接到 %x。</target>
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
</source>
<target>
-<pluralform>%x 個位元組</pluralform>
+<pluralform>%x 位元組</pluralform>
</target>
<source>%x MB</source>
@@ -386,7 +386,7 @@ Actual: %y bytes
</target>
<source>Detecting abandoned lock...</source>
-<target>正在檢測被放棄的鎖定…</target>
+<target>正在檢測廢棄鎖…</target>
<source>Saving file %x...</source>
<target>正在儲存檔案 %x…</target>
@@ -411,7 +411,7 @@ Actual: %y bytes
<pluralform>%x threads</pluralform>
</source>
<target>
-<pluralform>%x 個執行緒</pluralform>
+<pluralform>%x 執行緒</pluralform>
</target>
<source>Scanning:</source>
@@ -436,10 +436,10 @@ Actual: %y bytes
<target>無法讀取卷影複製服務。</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>請在此系統上執行64位元版本的FreeFileSync新建卷影副本。</target>
<source>Cannot determine volume name for %x.</source>
-<target>無法確定卷名為 %x。</target>
+<target>無法確定 %x 卷名。</target>
<source>Volume name %x is not part of file path %y.</source>
<target>卷名 %x 不是檔案路徑 %y 的一部分。</target>
@@ -448,7 +448,7 @@ Actual: %y bytes
<target>停止要求:等待目前的操作結束…</target>
<source>Unable to create time stamp for versioning:</source>
-<target>無法新建時間戳記的版本控制:</target>
+<target>無法創建時間戳記的版本控制:</target>
<source>Drag && drop</source>
<target>拖放</target>
@@ -543,13 +543,13 @@ The command is triggered if:
<target>自動化同步</target>
<source>The following path does not support directory monitoring:</source>
-<target>以下路徑不支援目錄監測:</target>
+<target>下列路徑不支援目錄監測:</target>
<source>Directory monitoring active</source>
<target>目錄監測啟動</target>
<source>Waiting until all directories are available...</source>
-<target>正在等待所有目錄可用…</target>
+<target>正在等到所有目錄可用…</target>
<source>&Restore</source>
<target>還原(&R)</target>
@@ -609,13 +609,13 @@ The command is triggered if:
<target>正在驗證檔案 %x</target>
<source>Updating attributes of %x</source>
-<target>正在更新 %x 個屬性</target>
+<target>正在更新 %x 的屬性</target>
<source>Cannot write file attributes of %x.</source>
<target>無法寫入 %x 的檔案屬性。</target>
<source>%x and %y have different content.</source>
-<target>%x 和 %y 擁有的內容不同。</target>
+<target>%x 和 %y 具有不同的內容。</target>
<source>Data verification error:</source>
<target>資料驗證錯誤:</target>
@@ -638,8 +638,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>下列項目有未解決的衝突,將不會同步:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>下列資料夾明顯不同。請確保同步中所選資料夾是正確的。</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>下列資料夾是明顯不同的。請檢查同步中的所有被選擇的正確資料夾。</target>
<source>Not enough free disk space available in:</source>
<target>沒有足夠的可用空間:</target>
@@ -718,23 +718,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>嚴重錯誤</target>
-<source>Symlink</source>
-<target>符號連結</target>
-
<source>Folder</source>
<target>資料夾</target>
+<source>Symlink</source>
+<target>符號連結</target>
+
<source>Full path</source>
<target>完整路徑</target>
-<source>Name</source>
-<target>名稱</target>
-
-<source>Relative folder</source>
-<target>對應資料夾</target>
+<source>Relative path</source>
+<target>相對路徑</target>
-<source>Base folder</source>
-<target>基本資料夾</target>
+<source>Item name</source>
+<target>項目名稱</target>
<source>Size</source>
<target>大小</target>
@@ -911,7 +908,7 @@ The command is triggered if:
<target>配對資料夾:</target>
<source>Main settings:</source>
-<target></target>
+<target>主要設定:</target>
<source>Use local settings:</source>
<target>使用本機設定:</target>
@@ -1072,7 +1069,7 @@ The command is triggered if:
<target>不要再顯示此對話框(&D)</target>
<source>Items found:</source>
-<target>尋找項目:</target>
+<target>找到的項目:</target>
<source>Time remaining:</source>
<target>剩餘時間:</target>
@@ -1080,6 +1077,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>經過時間:</target>
+<source>Bytes:</source>
+<target>位元組:</target>
+
+<source>Items:</source>
+<target>項目:</target>
+
<source>Synchronizing...</source>
<target>正在同步…</target>
@@ -1105,7 +1108,7 @@ The command is triggered if:
<target>停止(&S)</target>
<source>Stop synchronization at first error</source>
-<target>在第一個錯誤出現停止同步</target>
+<target>在第一個錯誤出現時停止同步</target>
<source>Run minimized</source>
<target>最小化執行</target>
@@ -1129,7 +1132,7 @@ The command is triggered if:
<target>覆蓋現有檔案(&O)</target>
<source>The following settings are used for all synchronization jobs.</source>
-<target>以下設定用於所有同步作業。</target>
+<target>下列設定用於所有同步作業。</target>
<source>
Copy to a temporary file (*.ffs_tmp) before overwriting target.
@@ -1245,6 +1248,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>FreeFileSync有新版本可用:</target>
+<source>Local path not available for %x.</source>
+<target>沒有適用於 %x 的本機路徑。</target>
+
<source>Confirm</source>
<target>確認</target>
@@ -1511,17 +1517,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>整合內容功能表中的外部應用程式。可以使用下面的巨集:</target>
-<source>- full file or folder name</source>
-<target>- 完整檔案或資料夾名稱</target>
+<source>Full file or folder path</source>
+<target>完整檔案或資料夾路徑</target>
-<source>- folder part only</source>
-<target>- 只有資料夾一部分</target>
+<source>Parent folder path</source>
+<target>上層資料夾路徑</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- 另一邊對應到 %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP和MTP儲存裝置的臨時本機副本</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- 另一邊對應到 %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>另一邊的參數</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>再次顯示隱藏對話框和警告訊息?</target>
@@ -1613,6 +1619,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>檔案</target>
+<source>Name</source>
+<target>名稱</target>
+
<source>Items</source>
<target>項目</target>
@@ -1629,13 +1638,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync已經是最新版本。</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>找不到線上目前FreeFileSync版號。可能有較新的版本可用。現在要手動檢查嗎?</target>
<source>&Check</source>
<target>檢查(&C)</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x 的一致性檢查失敗。</target>
<source>Cannot find system function %x.</source>
<target>找不到系統函數 %x。</target>
@@ -1644,7 +1653,7 @@ This guarantees a consistent state even in case of a serious error.
<target>無法登錄接收系統訊息。</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>安裝檔已損壞。請重新安裝FreeFileSync。</target>
<source>Unable to register device notifications for %x.</source>
<target>%x 無法註冊裝置通知。</target>
@@ -1665,16 +1674,16 @@ This guarantees a consistent state even in case of a serious error.
<target>無法讀取 %x 的權限。</target>
<source>Cannot copy permissions from %x to %y.</source>
-<target>無法從 %x 複製權限到 %y。</target>
+<target>無法複製從 %x 到 %y 的權限。</target>
<source>%x is not a regular directory name.</source>
<target>%x 不是一個常規目錄名稱。</target>
<source>Cannot copy file %x to %y.</source>
-<target>無法從 %x 複製檔案到 %y。</target>
+<target>無法複製檔案 %x 到 %y。</target>
<source>Cannot copy attributes from %x to %y.</source>
-<target>無法從 %x 複製屬性到 %y。</target>
+<target>無法複製從 %x 到 %y 的屬性。</target>
<source>Type of item %x is not supported:</source>
<target>項目類型 %x 不被支援:</target>
@@ -1710,7 +1719,7 @@ This guarantees a consistent state even in case of a serious error.
</target>
<source>Cannot set privilege %x.</source>
-<target>無法設定權限 %x。</target>
+<target>無法設定特別權限 %x。</target>
<source>Unable to suspend system sleep mode.</source>
<target>無法中止系統睡眠模式。</target>
@@ -1719,7 +1728,7 @@ This guarantees a consistent state even in case of a serious error.
<target>無法更改I/O處理優先順序。</target>
<source>Checking recycle bin failed for folder %x.</source>
-<target>正在檢查資源回收筒的資料夾 %x 失敗。</target>
+<target>檢查資源回收筒的資料夾 %x 失敗。</target>
<source>The following XML elements could not be read:</source>
<target>無法讀取下列XML元素:</target>
@@ -1803,8 +1812,14 @@ This guarantees a consistent state even in case of a serious error.
<target>感謝您的捐贈和支援!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>捐贈者的FreeFileSync安裝程式已達到其日常的安裝限制。</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>現在要從FreeFileSync首頁下載普通版嗎?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>可擕式版本不能安裝到所選的資料夾。</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>請選擇本地安裝類型或選擇不同的安裝資料夾。</target>
diff --git a/FreeFileSync/Build/Languages/croatian.lng b/FreeFileSync/Build/Languages/croatian.lng
index b8e02634..5f9c5005 100644
--- a/FreeFileSync/Build/Languages/croatian.lng
+++ b/FreeFileSync/Build/Languages/croatian.lng
@@ -112,14 +112,14 @@
<source>Cannot find the following folders:</source>
<target>Ne mogu pronaći slijedeće mape:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ukoliko zanemarite ovu pogrešku mape će se smatrati praznima. Nedostajuće mape se stvaraju automatski po potrebi.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ukoliko ignorirate ovu pogrešku zanemarene mape će se smatrati praznima.Prazne mape se izrade automatski kad bude potrebno.</target>
<source>A folder input field is empty.</source>
<target>Polje za odabir mape je prazno.</target>
<source>The corresponding folder will be considered as empty.</source>
-<target>Odgovarajuća mapa će se smatrati kao prazna.</target>
+<target>Odgovarajuća mapa će se smatrati praznom.</target>
<source>The following folder paths are dependent from each other:</source>
<target>Slijedeće putanje mapa su ovisne jedne o drugima:</target>
@@ -155,10 +155,10 @@
<target>Kopiranje zaštićeno od grešaka</target>
<source>Enabled</source>
-<target></target>
+<target>Uključeno</target>
<source>Disabled</source>
-<target></target>
+<target>Isključeno</target>
<source>Copy locked files</source>
<target>Kopiraj zaključane datoteke</target>
@@ -167,22 +167,22 @@
<target>Kopiraj datotečna dopuštenja</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerancija vremena datoteke</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Istek vremena pristupa mapi</target>
<source>Run with background priority</source>
-<target></target>
+<target>Pokreni s pozadinskim prioritetom</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Zaključaj direktorije prilikom sinkronizacije</target>
<source>Verify copied files</source>
-<target></target>
+<target>Potvrdi kopirane datoteke</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Korištenje ne-standardnih global postavki:</target>
<source>Starting comparison</source>
<target>Pokretanje usporedbe</target>
@@ -325,7 +325,7 @@ Stvarno: %y bajta
<target>Pogreška broj %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Nije moguće povezivanje na %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -442,7 +442,7 @@ Stvarno: %y bajta
<target>Ne mogu pristupiti Voulme Shadow Copy servisu.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Molimo pokrenite 64-bitnu verziju FreeFileSync-a da bi izradili shadow kopije na ovom sustavu.</target>
<source>Cannot determine volume name for %x.</source>
<target>Ne mogu utvrditi naziv spremnika za %x.</target>
@@ -644,8 +644,8 @@ Naredba će biti pokrenuta ako se:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Slijedeće stavke imaju nerješene konflikte i zato neće biti sinkronizirane:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Navedene mape su značajno različite. Provjerite dali ste odabrali točne mape za sinkronizaciju.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Slijedeće mape su značajno različite. Molimo provjerite da su mape za sinkronizaciju ispravno odabrane.</target>
<source>Not enough free disk space available in:</source>
<target>Nedovoljno prostora na disku:</target>
@@ -726,23 +726,20 @@ Naredba će biti pokrenuta ako se:
<source>Serious Error</source>
<target>Ozbiljna Pogreška</target>
-<source>Symlink</source>
-<target>Poveznica simbola</target>
-
<source>Folder</source>
<target>Mapa</target>
+<source>Symlink</source>
+<target>Poveznica simbola</target>
+
<source>Full path</source>
<target>Puna putanja</target>
-<source>Name</source>
-<target>Naziv</target>
-
-<source>Relative folder</source>
-<target>Relativna mapa</target>
+<source>Relative path</source>
+<target>Relativna putanja</target>
-<source>Base folder</source>
-<target>Izvorna mapa</target>
+<source>Item name</source>
+<target>Naziv stavke</target>
<source>Size</source>
<target>Veličina</target>
@@ -919,7 +916,7 @@ Naredba će biti pokrenuta ako se:
<target>Par mapa:</target>
<source>Main settings:</source>
-<target></target>
+<target>Glavne postavke:</target>
<source>Use local settings:</source>
<target>Koristi lokalne postavke:</target>
@@ -1088,6 +1085,12 @@ Naredba će biti pokrenuta ako se:
<source>Time elapsed:</source>
<target>Proteklo vremena:</target>
+<source>Bytes:</source>
+<target>Bajta:</target>
+
+<source>Items:</source>
+<target>Stavke:</target>
+
<source>Synchronizing...</source>
<target>Sinkroniziranje...</target>
@@ -1253,6 +1256,9 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>A new version of FreeFileSync is available:</source>
<target>Nova verzija FreeFileSync je dostupna:</target>
+<source>Local path not available for %x.</source>
+<target>Nije dostupna lokalna putanja za %x.</target>
+
<source>Confirm</source>
<target>Potvrdi</target>
@@ -1533,17 +1539,17 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integriraj vanjske aplikacije u kontekstni meni. Sljedeći makroi su dostupni:</target>
-<source>- full file or folder name</source>
-<target>- puni naziv datoteke ili mape</target>
+<source>Full file or folder path</source>
+<target>Puna putanja datoteke ili mape</target>
-<source>- folder part only</source>
-<target>- samo mapa</target>
+<source>Parent folder path</source>
+<target>Putanja bazne mape</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Duplikat s druge strane u %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Privremena lokalna kopija za SFTP i MTP pohranu</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Duplikat s druge strane u %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametri za suprotnu stranu</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Prikazati skrivene prozore i poruke upozorenja ponovno?</target>
@@ -1635,6 +1641,9 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Files</source>
<target>Datoteke</target>
+<source>Name</source>
+<target>Naziv</target>
+
<source>Items</source>
<target>Stavke</target>
@@ -1651,13 +1660,13 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<target>FreeFileSync je ažuran.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Nije moguće pronaći trenutnu FreeFileSync verziju online. Vjerojatno je dostupna novija verzija. Provjeriti ručno sada?</target>
<source>&Check</source>
<target>&Provjeri</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Provjera dosljednosti nije uspjela za %x.</target>
<source>Cannot find system function %x.</source>
<target>Ne mogu pronaći sistemsku funkciju %x.</target>
@@ -1666,7 +1675,7 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<target>Nije moguće registriranje za primanje sistemskih poruka.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Instalacijske datoteke su oštećene. Molimo reinstalirajte FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nije moguće registrirati prijavu uređaja za %x.</target>
@@ -1831,8 +1840,14 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<target>Hvala na donaciji i podršci!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ova instalacijska datoteka FreeFileSync donatorske verzije je dosegla dnevni limit instalacija.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Preuzeti standardnu verziju s FreeFileSync stranice sada?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Ova portabilna verzija se ne može instalirati u odabranu mapu.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Molimo odaberite lokalnu instalaciju ili odaberite drugu mapu za instalaciju.</target>
diff --git a/FreeFileSync/Build/Languages/czech.lng b/FreeFileSync/Build/Languages/czech.lng
index 571e8a45..ad88d09c 100644
--- a/FreeFileSync/Build/Languages/czech.lng
+++ b/FreeFileSync/Build/Languages/czech.lng
@@ -112,7 +112,7 @@
<source>Cannot find the following folders:</source>
<target>Nelze najít následující složky:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
<target>Pokud přeskočíte tuto chybu, složka bude považována za prázdnou. Chybějící složky pak budou automaticky vytvořeny.</target>
<source>A folder input field is empty.</source>
@@ -155,34 +155,34 @@
<target>Bezpečné kopírování souborů</target>
<source>Enabled</source>
-<target></target>
+<target>Zapnuto</target>
<source>Disabled</source>
-<target></target>
+<target>Vypnuto</target>
<source>Copy locked files</source>
-<target>Kopírovat zamčené soubory</target>
+<target>Kopírování zamčených souborů</target>
<source>Copy file access permissions</source>
-<target>Kopírovat přístupová oprávnění k souborům</target>
+<target>Kopírování přístupových oprávnění k souborům</target>
<source>File time tolerance</source>
-<target></target>
+<target>Časová tolerance</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Časový limit přístupu ke složce</target>
<source>Run with background priority</source>
-<target></target>
+<target>Spuštění s prioritou na pozadí</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Zamčení adresářů během sycnchronizace</target>
<source>Verify copied files</source>
-<target></target>
+<target>Povtvrzení zkopírovaných souboů</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Použití zvláštního nastavení:</target>
<source>Starting comparison</source>
<target>Začátek porovnávání</target>
@@ -325,7 +325,7 @@ Aktuálně: %y b
<target>Chybový kód %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Nepodařilo se připojit k %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -442,7 +442,7 @@ Aktuálně: %y b
<target>Nepodařil se přístup ke službě Stínové kopie.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Prosím použijte 64-bitovou verzi FreeFileSync pro použití služby Stínové kopie.</target>
<source>Cannot determine volume name for %x.</source>
<target>>Nelze zjistit jméno jednotky souboru %x.</target>
@@ -644,7 +644,7 @@ Příkaz je spuštěn když:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Následující položky jsou nevyřešené konflikty a nebudou synchronizovány:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
<target>Následující složky se významně liší. Zkontrolujte zda máte vybránu správnou dvojici složek pro synchronizaci.</target>
<source>Not enough free disk space available in:</source>
@@ -726,23 +726,20 @@ Příkaz je spuštěn když:
<source>Serious Error</source>
<target>Závažná chyba</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Složka</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Plná cesta</target>
-<source>Name</source>
-<target>Jméno</target>
-
-<source>Relative folder</source>
-<target>Relativní složka</target>
+<source>Relative path</source>
+<target>Relativní cesta</target>
-<source>Base folder</source>
-<target>Složka</target>
+<source>Item name</source>
+<target>Název</target>
<source>Size</source>
<target>Velikost</target>
@@ -919,7 +916,7 @@ Příkaz je spuštěn když:
<target>Dvojice složek:</target>
<source>Main settings:</source>
-<target></target>
+<target>Hlavní nastavení:</target>
<source>Use local settings:</source>
<target>Použít nastavení:</target>
@@ -1088,6 +1085,12 @@ Příkaz je spuštěn když:
<source>Time elapsed:</source>
<target>Uplynulý čas:</target>
+<source>Bytes:</source>
+<target>Bajtů:</target>
+
+<source>Items:</source>
+<target>Položek:</target>
+
<source>Synchronizing...</source>
<target>Synchronizuji...</target>
@@ -1250,6 +1253,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Je dostupná novější verze FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Mistní cesta není k dspozici pro %x.</target>
+
<source>Confirm</source>
<target>Potvrdit</target>
@@ -1530,17 +1536,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrace externí aplikace do kontextového menu. K dispozici jsou následující makra:</target>
-<source>- full file or folder name</source>
-<target>- celá cesta nebo jméno souboru</target>
+<source>Full file or folder path</source>
+<target>Plná cesta souboru nebo složky</target>
-<source>- folder part only</source>
-<target>- pouze cesta</target>
+<source>Parent folder path</source>
+<target>Nadřazená složka</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- celá cesta nebo jméno z opačného panelu pro %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Dočasná místní kopie pro SFTP a MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- pouze cesta z opačného panelu pro %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametry protistrany</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Zobrazit skryté dialogy a varovná hlášení?</target>
@@ -1632,6 +1638,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Soubory</target>
+<source>Name</source>
+<target>Název</target>
+
<source>Items</source>
<target>Položky</target>
@@ -1648,13 +1657,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync je aktuální.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Současná verze FreeFileSync nebyla nalezena online! Pravděpodobně existuje novější verze. Chcete verzi zkontrolovat ručně?</target>
<source>&Check</source>
<target>&Kontrola</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Nepodařila se kontrola konzistence pro %x.</target>
<source>Cannot find system function %x.</source>
<target>Nelze najít systémovou funkci %x.</target>
@@ -1663,7 +1672,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Nepodařilo se zaregistrovat k odběru systémových zpráv.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Instalace aplikace je poškozena. Prosím přeinstalujte FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nepodařilo se zaregistrovat zprávy zařízení %x.</target>
@@ -1828,8 +1837,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Děkuji za Vaše příspěvky a podporu!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Tento instalátor pro přispěvovatele FreeFileSync dosáhl maximální počet instalací.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Stáhnout verzi FreeFileSync z domovské stránky?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Přenosnou verzi aplikace nelze instalovat do vybrané složky.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Prosím zvolte lokální typ instalace nebo vyberte jinou sloužku.</target>
diff --git a/FreeFileSync/Build/Languages/danish.lng b/FreeFileSync/Build/Languages/danish.lng
index 54354d2b..422a21c8 100644
--- a/FreeFileSync/Build/Languages/danish.lng
+++ b/FreeFileSync/Build/Languages/danish.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Kan ikke finde følgende mapper:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ignorerer du denne fejl anses mappen som tom. Nødvendige mapper oprettes automatisk.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Hvis denne fejl ignoreres, betragtes mapperne som tomme. Manglende mapper oprettes automatisk efter behov.</target>
<source>A folder input field is empty.</source>
<target>Der er ikke valgt nogen mapper.</target>
@@ -155,10 +155,10 @@
<target>Sikker filkopiering</target>
<source>Enabled</source>
-<target></target>
+<target>Aktiveret</target>
<source>Disabled</source>
-<target></target>
+<target>Deaktiveret</target>
<source>Copy locked files</source>
<target>Kopier låste filer</target>
@@ -167,22 +167,22 @@
<target>Kopier adgangstilladelser</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tidstolerance</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Tidsgrænse mappeadgang</target>
<source>Run with background priority</source>
-<target></target>
+<target>Kør med baggrundsprioritet</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Lås mapper under synk</target>
<source>Verify copied files</source>
-<target></target>
+<target>Kontroller kopierede filer</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Brug tilpassede overordnede indstillinger:</target>
<source>Starting comparison</source>
<target>Starter analyse</target>
@@ -273,6 +273,12 @@ Aktuel: %y byte
<source>Cannot move file %x to %y.</source>
<target>Kan ikke flytte filen %x til %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Kan ikke kontakte %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Kan ikke åbne mappen %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Kan ikke optælle mappen %x.</target>
@@ -309,9 +315,6 @@ Aktuel: %y byte
<source>Cannot resolve symbolic link %x.</source>
<target>Kan ikke følge symlinket %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Kan ikke åbne mappen %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Kan ikke definere ledig plads på %x.</target>
@@ -321,12 +324,6 @@ Aktuel: %y byte
<source>Incorrect command line:</source>
<target>Ugyldig kommando:</target>
-<source>Error Code %x:</source>
-<target>Fejlkode %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -439,7 +436,7 @@ Aktuel: %y byte
<target>VSS tjenesten er ikke tilgængelig.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Brug FreeFileSync 64 bit, for at oprette VSS kopier på dette system.</target>
<source>Cannot determine volume name for %x.</source>
<target>Kan ikke bestemme volumennavn for %x.</target>
@@ -641,8 +638,8 @@ Kommandoen udføres hvis:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Følgende emner har uløste konflikter og synkroniseres ikke:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Følgende mapper er meget forskellige. Kontrollér at du har valgt at synkronisere de rigtige mapper.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Følgende mapper er markant forskellige. Kontroller at du har valgt de rigtige mapper.</target>
<source>Not enough free disk space available in:</source>
<target>Ikke nok ledig diskplads på:</target>
@@ -702,7 +699,7 @@ Kommandoen udføres hvis:
<target>&Skift</target>
<source>Switching to FreeFileSync's main window</source>
-<target></target>
+<target>Åbner FreeFileSyncs hovedvindue</target>
<source>
<pluralform>Automatic retry in 1 second...</pluralform>
@@ -722,23 +719,20 @@ Kommandoen udføres hvis:
<source>Serious Error</source>
<target>Kritisk fejl</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Mappe</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Fuld sti</target>
-<source>Name</source>
-<target>Navn</target>
-
-<source>Relative folder</source>
-<target>Relativ mappe</target>
+<source>Relative path</source>
+<target>Relativ sti</target>
-<source>Base folder</source>
-<target>Hovedmappe</target>
+<source>Item name</source>
+<target>Emnenavn</target>
<source>Size</source>
<target>Størrelse</target>
@@ -915,7 +909,7 @@ Kommandoen udføres hvis:
<target>Mappepar:</target>
<source>Main settings:</source>
-<target></target>
+<target>Overordnede indstillinger:</target>
<source>Use local settings:</source>
<target>Brug lokale indstillinger:</target>
@@ -1084,6 +1078,12 @@ Kommandoen udføres hvis:
<source>Time elapsed:</source>
<target>Brugt tid:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Emner:</target>
+
<source>Synchronizing...</source>
<target>Synkroniserer...</target>
@@ -1247,7 +1247,10 @@ Sikrer processen ved alvorlige fejl.
<target>&Download</target>
<source>A new version of FreeFileSync is available:</source>
-<target></target>
+<target>FreeFileSync er blevet opdateret:</target>
+
+<source>Local path not available for %x.</source>
+<target>Placeringen er ikke tilgængelig for %x.</target>
<source>Confirm</source>
<target>Bekræft</target>
@@ -1522,17 +1525,17 @@ Sikrer processen ved alvorlige fejl.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrer eksterne programmer i kontekstmenu. Brug følgende macroer:</target>
-<source>- full file or folder name</source>
-<target>Komplet fil- eller mappenavn</target>
+<source>Full file or folder path</source>
+<target>Fuld fil-/mappesti</target>
-<source>- folder part only</source>
-<target>Kun mappedelen</target>
+<source>Parent folder path</source>
+<target>Forældremappes placering</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>Modsat sides pendant til %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Midlertidig kopi for SFTP og MTP opbevaring</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>Modsat sides pendant til %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Modsatte sides parametre</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Vis skjulte advarsler og beskeder igen?</target>
@@ -1624,6 +1627,9 @@ Sikrer processen ved alvorlige fejl.
<source>Files</source>
<target>Filer</target>
+<source>Name</source>
+<target>Navn</target>
+
<source>Items</source>
<target>Emner</target>
@@ -1640,13 +1646,13 @@ Sikrer processen ved alvorlige fejl.
<target>FreeFileSync er opdateret.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Kunne ikke konstatere den aktuelle FreeFileSync version online. Der findes sandsynligvis en nyere udgave. Søg manuelt nu?</target>
<source>&Check</source>
<target>&Kontroller</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Kontrolfejl for %x.</target>
<source>Cannot find system function %x.</source>
<target>Kan ikke finde systemfunktionen %x.</target>
@@ -1655,7 +1661,7 @@ Sikrer processen ved alvorlige fejl.
<target>Kunne ikke registrere modtagelse af systembeskeder.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Installationsfilen er ødelagt. Geninstaller FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Kan ikke registrere beskeder for %x.</target>
@@ -1732,6 +1738,9 @@ Sikrer processen ved alvorlige fejl.
<source>Cannot change process I/O priorities.</source>
<target>Kan ikke ændre I/O prioriteter.</target>
+<source>Error Code %x:</source>
+<target>Fejlkode %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Check papirkurv fejlede for mappen %x.</target>
@@ -1817,8 +1826,14 @@ Sikrer processen ved alvorlige fejl.
<target>Tak for støtten!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Denne FreeFileSync for donorer har nået den daglige installationsgrænse.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Vil du hente den normale FreeFileSync nu?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Portable udgaven kan ikke installeres i den valgte mappe.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Installer normalt, eller vælg en anden mappe.</target>
diff --git a/FreeFileSync/Build/Languages/dutch.lng b/FreeFileSync/Build/Languages/dutch.lng
index a8c82ae7..80b2e795 100644
--- a/FreeFileSync/Build/Languages/dutch.lng
+++ b/FreeFileSync/Build/Languages/dutch.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>De volgende mappen konden niet worden gevonden:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Indien u deze fout negeert zullen de mappen als leeg beschouwd worden. Ontbrekende mappen worden indien nodig automatisch aangemaakt.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Indien deze fout wordt genegeerd zullen de mappen als leeg beschouwd worden. Ontbrekende mappen worden automatisch aangemaakt indien nodig.</target>
<source>A folder input field is empty.</source>
<target>Invoerveld van een map is leeg.</target>
@@ -155,10 +155,10 @@
<target>Fail-safe bestand kopieëren</target>
<source>Enabled</source>
-<target></target>
+<target>Ingeschakeld</target>
<source>Disabled</source>
-<target></target>
+<target>Uitgeschakeld</target>
<source>Copy locked files</source>
<target>Vergrendelde bestanden kopieëren</target>
@@ -167,22 +167,22 @@
<target>Toegangsmachtigingen om bestanden te kopieëren</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerantie bestandstijd</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Time-out map toegang</target>
<source>Run with background priority</source>
-<target></target>
+<target>Uitvoeren met achtergrond prioriteit</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Directories vergrendelen tijdens de synchronisatie</target>
<source>Verify copied files</source>
-<target></target>
+<target>Controleer de gekopieerde bestanden</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Het gebruik van niet-standaard algemene instellingen:</target>
<source>Starting comparison</source>
<target>Start vergelijking</target>
@@ -325,7 +325,7 @@ Werkelijk: %y bytes
<target>Foutcode %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Kan geen verbinding maken met %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Werkelijk: %y bytes
<target>Kan geen toegang krijgen tot de Volume Shadow Copy Service.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Gelieve de 64-bits versie van FreeFileSync te gebruiken om schaduwkopieën te maken op dit systeem.</target>
<source>Cannot determine volume name for %x.</source>
<target>Kan de volumenaam niet vaststellen voor %x.</target>
@@ -641,8 +641,8 @@ De opdracht wordt geactiveerd als:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>De volgende items hebben onopgeloste conflicten en zullen niet worden gesynchroniseerd:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>De volgende mappen zijn aanzienlijk verschillend. Zorg ervoor dat u de juiste mappen voor synchronisatie hebt geselecteerd.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>De volgende mappen zijn significant verschillend. Controleer of de juiste mappen zijn geselecteerd voor synchronisatie.</target>
<source>Not enough free disk space available in:</source>
<target>Er is onvoldoende vrije schijfruimte beschikbaar in:</target>
@@ -722,23 +722,20 @@ De opdracht wordt geactiveerd als:
<source>Serious Error</source>
<target>Ernstige fout</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Map</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Volledig pad</target>
-<source>Name</source>
-<target>Naam</target>
-
-<source>Relative folder</source>
-<target>Relatieve map</target>
+<source>Relative path</source>
+<target>Relatief pad</target>
-<source>Base folder</source>
-<target>Basismap</target>
+<source>Item name</source>
+<target>Itemnaam</target>
<source>Size</source>
<target>Grootte</target>
@@ -915,7 +912,7 @@ De opdracht wordt geactiveerd als:
<target>Mappaar:</target>
<source>Main settings:</source>
-<target></target>
+<target>Belangrijkste instellingen:</target>
<source>Use local settings:</source>
<target>Gebruik lokale instellingen:</target>
@@ -1084,6 +1081,12 @@ De opdracht wordt geactiveerd als:
<source>Time elapsed:</source>
<target>Verstreken tijd:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Objecten:</target>
+
<source>Synchronizing...</source>
<target>Synchroniseren...</target>
@@ -1249,6 +1252,9 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>A new version of FreeFileSync is available:</source>
<target>Er is een nieuwe versie van FreeFileSync beschikbaar:</target>
+<source>Local path not available for %x.</source>
+<target>Lokale pad niet beschikbaar voor %x.</target>
+
<source>Confirm</source>
<target>Bevestigen</target>
@@ -1522,17 +1528,17 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Externe applicaties integreren in het contextmenu. De volgende macro's zijn beschikbaar:</target>
-<source>- full file or folder name</source>
-<target>- volledige bestands- of map-naam</target>
+<source>Full file or folder path</source>
+<target>Volledig bestand of mappad</target>
-<source>- folder part only</source>
-<target>- alleen map-deel</target>
+<source>Parent folder path</source>
+<target>Bovenliggend mappad</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Andere kant van de tegenhanger naar %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Tijdelijke lokale kopie voor SFTP en MTP-opslag</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Andere kant van de tegenhanger naar %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parameters voor de andere kant</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Verborgen vensters en waarschuwingsberichten opnieuw weergeven?</target>
@@ -1613,7 +1619,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>leeg</target>
<source>Leave as unresolved conflict</source>
-<target>Laten als onopgelost conflicht</target>
+<target>Laten als onopgelost conflict</target>
<source>File</source>
<target>Bestand</target>
@@ -1624,6 +1630,9 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Files</source>
<target>Bestanden</target>
+<source>Name</source>
+<target>Naam</target>
+
<source>Items</source>
<target>Items</target>
@@ -1640,13 +1649,13 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>FreeFileSync is actueel.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Kan het actuele FreeFileSync versienummer online niet vinden. Een nieuwere versie is waarschijnlijk beschikbaar. Nu handmatig controleren?</target>
<source>&Check</source>
<target>&Controleren</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Consistentiecontrole mislukt voor %x.</target>
<source>Cannot find system function %x.</source>
<target>Kan de systeemfunctie %x niet vinden.</target>
@@ -1655,7 +1664,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Niet in staat om de ontvangen systeemberichten te registreren.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Installatiebestanden zijn beschadigd. Gelieve FreeFileSync opnieuw te installeren.</target>
<source>Unable to register device notifications for %x.</source>
<target>Niet in staat om apparaat meldingen te registreren voor %x.</target>
@@ -1757,7 +1766,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Lokaal</target>
<source>Portable</source>
-<target>Portable</target>
+<target>Mobiel</target>
<source>recommended</source>
<target>aanbevolen</target>
@@ -1769,7 +1778,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Registreer FreeFileSync bestands-extensies</target>
<source>Create Explorer context menu entries</source>
-<target>Maak Explorer contect menu-items</target>
+<target>Maak Explorer context menu-items</target>
<source>Save settings in installation directory</source>
<target>Sla instellingen op in de installatiemap</target>
@@ -1817,8 +1826,14 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Bedankt voor uw donatie en ondersteuning!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Dit FreeFileSync installatie programma voor donateurs heeft zijn dagelijkse installatielimiet bereikt.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Nu de reguliere versie van FreeFileSync vanaf de homepage downloaden?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>De mobiele versie kan niet in de geselecteerde map geinstalleerd worden.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Kies voor een lokale installatie of selecteer een andere map voor de installatie.</target>
diff --git a/FreeFileSync/Build/Languages/english_uk.lng b/FreeFileSync/Build/Languages/english_uk.lng
index 9dbad0a8..6508fcb0 100644
--- a/FreeFileSync/Build/Languages/english_uk.lng
+++ b/FreeFileSync/Build/Languages/english_uk.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Cannot find the following folders:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</target>
<source>A folder input field is empty.</source>
<target>A folder input field is empty.</target>
@@ -155,10 +155,10 @@
<target>Fail-safe file copy</target>
<source>Enabled</source>
-<target></target>
+<target>Enabled</target>
<source>Disabled</source>
-<target></target>
+<target>Disabled</target>
<source>Copy locked files</source>
<target>Copy locked files</target>
@@ -167,22 +167,22 @@
<target>Copy file access permissions</target>
<source>File time tolerance</source>
-<target></target>
+<target>File time tolerance</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Folder access timeout</target>
<source>Run with background priority</source>
-<target></target>
+<target>Run with background priority</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Lock directories during sync</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verify copied files</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Using non-default global settings:</target>
<source>Starting comparison</source>
<target>Starting comparison</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Error Code %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Unable to connect to %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Actual: %y bytes
<target>Cannot access the Volume Shadow Copy Service.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</target>
<source>Cannot determine volume name for %x.</source>
<target>Cannot determine volume name for %x.</target>
@@ -641,8 +641,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>The following items have unresolved conflicts and will not be synchronised:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>The following folders are significantly different. Make sure you have selected the correct folders for synchronisation.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>The following folders are significantly different. Please check that the correct folders are selected for synchronisation.</target>
<source>Not enough free disk space available in:</source>
<target>Not enough free disk space available in:</target>
@@ -722,23 +722,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>Serious Error</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Folder</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Full path</target>
-<source>Name</source>
-<target>Name</target>
-
-<source>Relative folder</source>
-<target>Relative folder</target>
+<source>Relative path</source>
+<target>Relative path</target>
-<source>Base folder</source>
-<target>Base folder</target>
+<source>Item name</source>
+<target>Item name</target>
<source>Size</source>
<target>Size</target>
@@ -915,7 +912,7 @@ The command is triggered if:
<target>Folder pair:</target>
<source>Main settings:</source>
-<target></target>
+<target>Main settings:</target>
<source>Use local settings:</source>
<target>Use local settings:</target>
@@ -1084,6 +1081,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Time elapsed:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Items:</target>
+
<source>Synchronizing...</source>
<target>Synchronising...</target>
@@ -1249,6 +1252,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>A new version of FreeFileSync is available:</target>
+<source>Local path not available for %x.</source>
+<target>Local path not available for %x.</target>
+
<source>Confirm</source>
<target>Confirm</target>
@@ -1522,17 +1528,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrate external applications into context menu. The following macros are available:</target>
-<source>- full file or folder name</source>
-<target>- full file or folder name</target>
+<source>Full file or folder path</source>
+<target>Full file or folder path</target>
-<source>- folder part only</source>
-<target>- folder part only</target>
+<source>Parent folder path</source>
+<target>Parent folder path</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Other side's counterpart to %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Temporary local copy for SFTP and MTP storage</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Other side's counterpart to %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parameters for opposite side</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Show hidden dialogues and warning messages again?</target>
@@ -1624,6 +1630,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Files</target>
+<source>Name</source>
+<target>Name</target>
+
<source>Items</source>
<target>Items</target>
@@ -1640,13 +1649,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync is up to date.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</target>
<source>&Check</source>
<target>&Check</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Consistency check failed for %x.</target>
<source>Cannot find system function %x.</source>
<target>Cannot find system function %x.</target>
@@ -1655,7 +1664,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Unable to register to receive system messages.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Installation files are corrupt. Please reinstall FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Unable to register device notifications for %x.</target>
@@ -1817,8 +1826,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Thanks for your donation and support!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>This FreeFileSync installer for donors has reached its daily installation limit.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Download the regular version from the FreeFileSync homepage now?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>The portable version cannot install into the selected folder.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Please choose the local installation type or select a different folder for installation.</target>
diff --git a/FreeFileSync/Build/Languages/finnish.lng b/FreeFileSync/Build/Languages/finnish.lng
index 077415b1..d09b1e2c 100644
--- a/FreeFileSync/Build/Languages/finnish.lng
+++ b/FreeFileSync/Build/Languages/finnish.lng
@@ -8,19 +8,19 @@
</header>
<source>Both sides have changed since last synchronization.</source>
-<target>Molemmat puolet muuttuneet edellisestä täsmäyksestä.</target>
+<target>Molemmat puolet muuttuneet edellisestä täsmäytyksestä.</target>
<source>Cannot determine sync-direction:</source>
-<target>Tuntematon suunta täsmäykselle:</target>
+<target>Tuntematon suunta täsmäytykselle:</target>
<source>No change since last synchronization.</source>
-<target>Ei muutoksia edellisen täsmäyksen jälkeen.</target>
+<target>Ei muutoksia edellisen täsmäytyksen jälkeen.</target>
<source>The database entry is not in sync considering current settings.</source>
<target>Tietokanta ei vastaa nykyisiä asetuksia.</target>
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
-<target>Asetetaan oletussuunta täsmäykselle: vanhat tiedostot korvataan uudemilla tiedostoilla.</target>
+<target>Asetetaan oletussuunta täsmäytykselle: vanhat tiedostot korvataan uudemilla tiedostoilla.</target>
<source>Creating folder %x</source>
<target>Luodaan hakemisto %x</target>
@@ -56,7 +56,7 @@
<target>Roskakori ei ole käytettävissä näiden hakemistojen osalta. Tiedostot poistetaan sen sijaan lopullisesti:</target>
<source>An exception occurred</source>
-<target>Virhe havaittu</target>
+<target>Poikkeama havaittu</target>
<source>A directory path is expected after %x.</source>
<target>%x:n jälkeen kuuluisi olla hakemistopolku.</target>
@@ -77,7 +77,7 @@
<target>Oikealla ja vasemmalla eri määrä hakemistoja.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Määrittely ei saa sisältää hakemistoparitason asetuksia, jos hakemistot määritellään komentoriviltä.</target>
+<target>Määritystiedosto ei saa sisältää hakemistoparitason asetuksia, jos hakemistot määritellään komentoriviltä.</target>
<source>Directories cannot be set for more than one configuration file.</source>
<target>Hakemistot voi asettaa vain yhtä määrittelyä varten.</target>
@@ -89,10 +89,10 @@
<target>Syntaksi:</target>
<source>global config file:</source>
-<target>yleinen määrittely:</target>
+<target>yleinen määritystiedosto:</target>
<source>config files:</source>
-<target>määrittelyt:</target>
+<target>määritystiedostot:</target>
<source>directory</source>
<target>hakemisto</target>
@@ -104,7 +104,7 @@
<target>Vapaa määrä FreeFileSync .ffs_gui ja/tai .ffs_batch määrittelytiedostoja.</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
-<target>Vapaa määrä eri hakemistopareja yhdelle tietylle määrittelylle.</target>
+<target>Vapaa määrä eri hakemistopareja yhdelle tietylle määritystiedostolle.</target>
<source>Open configuration for editing without executing it.</source>
<target>Avaa määrittely muutoksia varten, sitä suorittamatta.</target>
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Seuraavia hakemistoja ei löydy:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ellet huomioi tätä virhettä hakemistot huomioidaan tyhjinä. Puuttuvat hakemistot luodaan tarvittaessa.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Hakemistot luodaan tyhjinä jos virhe ohitetaan. Puuttuvat hakemistot luodaan tarvittaessa.</target>
<source>A folder input field is empty.</source>
<target>Hakemiston syötekenttä on tyhjä.</target>
@@ -155,10 +155,10 @@
<target>Varmennettu tiedostokopiointi</target>
<source>Enabled</source>
-<target></target>
+<target>Käytössä</target>
<source>Disabled</source>
-<target></target>
+<target>Estetty</target>
<source>Copy locked files</source>
<target>Kopioi lukitut tiedostot</target>
@@ -167,28 +167,28 @@
<target>Kopioi tiedoston käyttöoikeudet</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tiedoston toleranssiaika</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Hakemiston aikakatkaisu</target>
<source>Run with background priority</source>
-<target></target>
+<target>Aja tausta-ajo prioriteetillä</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Lukitse hakemistot täsmäytyksen ajaksi</target>
<source>Verify copied files</source>
-<target></target>
+<target>Tarkista monistetut tiedostot</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Käytä mukautettuja yleisasetuksia:</target>
<source>Starting comparison</source>
<target>Vertailu alkaa</target>
<source>Calculating sync directions...</source>
-<target>Lasketaan täsmäyksen suuntaa...</target>
+<target>Lasketaan täsmäytyksen suuntaa...</target>
<source>Out of memory.</source>
<target>Muisti loppui.</target>
@@ -245,13 +245,13 @@
<target>Päivitä oikeudet vasemmalla</target>
<source>Update attributes on right</source>
-<target>Päivitä oikeudet oikealla</target>
+<target>Päivitä määritteet oikealla</target>
<source>Cannot write permissions of %x.</source>
<target>Ei voi tallentaa %x:n oikeuksia.</target>
<source>Operation not supported for different base folder types.</source>
-<target>Toiminto ei tue eri lähde hakemistoja.</target>
+<target>Toiminto ei tue erilaisia lähdehakemistoja.</target>
<source>Cannot write file %x.</source>
<target>Tiedoston %x kirjoittaminen ei onnistu.</target>
@@ -321,11 +321,8 @@ Todellinen: %y tavua
<source>Incorrect command line:</source>
<target>Virheellinen komento:</target>
-<source>Error Code %x:</source>
-<target>Virhekoodi %x:</target>
-
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Yhteyttä %x:n ei voi luoda.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -352,7 +349,7 @@ Todellinen: %y tavua
<target>Tietokanta %x ei ole yhteensopiva.</target>
<source>Initial synchronization:</source>
-<target>Esitäsmäys:</target>
+<target>Ensimmäinen täsmäytys:</target>
<source>Database file %x does not yet exist.</source>
<target>Tietokantaa %x ei vielä ole.</target>
@@ -424,7 +421,7 @@ Todellinen: %y tavua
<target>/s</target>
<source>%x items/sec</source>
-<target>%x oliota/s</target>
+<target>%x kohteita/s</target>
<source>Show in Explorer</source>
<target>Näytä Explorerissa</target>
@@ -436,16 +433,16 @@ Todellinen: %y tavua
<target>Selaa hakemistoa</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>Volume Shadow Copy palvelu ei vastaa.</target>
+<target>Aseman tilannevedospalvelu ei vastaa.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Käytä FreeFileSync:n 64-bittinen versio jos haluat luoda järjestelmästä tilannevedoksia.</target>
<source>Cannot determine volume name for %x.</source>
-<target>Levyn %x tunnistus ei onnistu.</target>
+<target>Aseman %x määrittäminen ei onnistu.</target>
<source>Volume name %x is not part of file path %y.</source>
-<target>Levy %x ei esiinny tiedostopolussa %y.</target>
+<target>Asema %x ei esiinny tiedostopolussa %y.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
<target>Keskeytyspyyntö: odotetaan tehtävän valmistumista...</target>
@@ -543,7 +540,7 @@ Käsky suoritetaan jos:
<target>Kaikki tiedostot</target>
<source>Automated Synchronization</source>
-<target>Automaattinen täsmäys</target>
+<target>Automaattinen täsmäytys</target>
<source>The following path does not support directory monitoring:</source>
<target>Polku ei tue hakemiston monitorointia:</target>
@@ -624,7 +621,7 @@ Käsky suoritetaan jos:
<target>Tiedon tarkistusvirhe:</target>
<source>Creating a Volume Shadow Copy for %x...</source>
-<target>Luodaan %x:lle Volume Shadow Copy ...</target>
+<target>Luodaan %x:n tilannevedos ...</target>
<source>Target folder %x already existing.</source>
<target>Kohdehakemisto %x on jo olemassa.</target>
@@ -641,8 +638,8 @@ Käsky suoritetaan jos:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Näissä kohteissa on selvittämättömiä ristiriitoja, niitä ei täsmäytetä:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Hakemistoissa on oleellisia eroja. Varmista, että olet valinnut oikeat hakemistot täsmäytykseen.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Seuraavat hakemistot eroavat oleellisesti. Varmista valitut täsmäytettävät hakemistot.</target>
<source>Not enough free disk space available in:</source>
<target>Vapaa levytila ei riitä:</target>
@@ -672,10 +669,10 @@ Käsky suoritetaan jos:
<target>Keskeytys</target>
<source>Synchronization completed with errors</source>
-<target>Täsmäys päättyi virheisiin</target>
+<target>Täsmäytys päättyi virheisiin</target>
<source>Synchronization completed with warnings</source>
-<target>Täsmäys päättyi varoituksin</target>
+<target>Täsmäytys päättyi varoituksin</target>
<source>Warning</source>
<target>Varoitus</target>
@@ -684,7 +681,7 @@ Käsky suoritetaan jos:
<target>Ei mitään täsmäytettävää</target>
<source>Synchronization completed successfully</source>
-<target>Täsmäys päättyi onnistuneesti</target>
+<target>Täsmäytys päättyi onnistuneesti</target>
<source>Cleaning up old log files...</source>
<target>Siivotaan vanhat lokitiedostot...</target>
@@ -722,23 +719,20 @@ Käsky suoritetaan jos:
<source>Serious Error</source>
<target>Vakava virhe</target>
-<source>Symlink</source>
-<target>Pikakuvake</target>
-
<source>Folder</source>
<target>Hakemisto</target>
+<source>Symlink</source>
+<target>Pikakuvake</target>
+
<source>Full path</source>
<target>Koko polku</target>
-<source>Name</source>
-<target>Nimi</target>
-
-<source>Relative folder</source>
-<target>Suhteellinen kansio</target>
+<source>Relative path</source>
+<target>Suhteellinen polku</target>
-<source>Base folder</source>
-<target>Juurihakemisto</target>
+<source>Item name</source>
+<target>Kohteen nimi</target>
<source>Size</source>
<target>Koko</target>
@@ -747,7 +741,7 @@ Käsky suoritetaan jos:
<target>Päiväys</target>
<source>Extension</source>
-<target>Laajennus</target>
+<target>Tunniste</target>
<source>Category</source>
<target>Luokka</target>
@@ -756,7 +750,7 @@ Käsky suoritetaan jos:
<target>Toiminto</target>
<source>Local comparison settings</source>
-<target>Vertaillun paikalliset asetukset</target>
+<target>Vertailun paikalliset asetukset</target>
<source>Local synchronization settings</source>
<target>Täsmäytyksen paikalliset asetukset</target>
@@ -915,7 +909,7 @@ Käsky suoritetaan jos:
<target>Hakemistopari:</target>
<source>Main settings:</source>
-<target></target>
+<target>Pääasetukset:</target>
<source>Use local settings:</source>
<target>Käytä paikallisia asetuksia:</target>
@@ -1076,7 +1070,7 @@ Käsky suoritetaan jos:
<target>&Älä näytä tätä ruutua uudestaan</target>
<source>Items found:</source>
-<target>Osioita löytyi:</target>
+<target>Kohteita löytyi:</target>
<source>Time remaining:</source>
<target>Aikaa jäljellä:</target>
@@ -1084,6 +1078,12 @@ Käsky suoritetaan jos:
<source>Time elapsed:</source>
<target>Aikaa kulunut:</target>
+<source>Bytes:</source>
+<target>Tavua:</target>
+
+<source>Items:</source>
+<target>Kohteita:</target>
+
<source>Synchronizing...</source>
<target>Täsmäytetään...</target>
@@ -1103,13 +1103,13 @@ Käsky suoritetaan jos:
<target>Lopeta</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Luo eräajotiedosto automaattista täsmäystä varten. Käynnistä kaksoisnapsauttamalla tai ajasta tehtävä: %x</target>
+<target>Luo eräajotiedosto automaattista täsmäytystä varten. Käynnistä kaksoisnapsauttamalla tai ajasta tehtävä: %x</target>
<source>&Stop</source>
<target>&Lopeta</target>
<source>Stop synchronization at first error</source>
-<target>Lopeta täsmäys ensimmäiseen virheeseen</target>
+<target>Lopeta täsmäytys ensimmäiseen virheeseen</target>
<source>Run minimized</source>
<target>Suorita pienennettynä</target>
@@ -1148,7 +1148,7 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>(suositus)</target>
<source>Copy shared or locked files using the Volume Shadow Copy Service.</source>
-<target>Jaettujen tai lukittujen tiedostojen kopiointi käyttäen Volume Shadow Copy Service.</target>
+<target>Jaettujen tai lukittujen tiedostojen kopiointi käyttäen aseman tilannevedospalvelua.</target>
<source>(requires administrator rights)</source>
<target>(edellyttää pääkäyttäjän oikeuksia)</target>
@@ -1166,16 +1166,16 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Viive (sekunneissa):</target>
<source>Customize context menu:</source>
-<target>Muokkaa kontekstivalikkoa:</target>
+<target>Muokkaa pikavalikkoa:</target>
<source>Description</source>
<target>Kuvaus</target>
<source>Show hidden dialogs again</source>
-<target>Näytä piiloitetut dialogit uudestaan</target>
+<target>Näytä piiloitetut valintaikkunat uudestaan</target>
<source>Show all permanently hidden dialogs and warning messages again</source>
-<target>Näytä pysyvästi piiloitetut dialogit ja varoitukset uudestaan</target>
+<target>Näytä pysyvästi piiloitetut valintaikkunat ja varoitukset uudestaan</target>
<source>&Default</source>
<target>&Oletus</target>
@@ -1249,6 +1249,9 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>A new version of FreeFileSync is available:</source>
<target>FreeFileSyncin uusi versio on saatavilla:</target>
+<source>Local path not available for %x.</source>
+<target>Paikallinen polku %x puuttuu.</target>
+
<source>Confirm</source>
<target>Vahvista</target>
@@ -1343,7 +1346,7 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Viime istunto</target>
<source>Folder Comparison and Synchronization</source>
-<target>Hakemistojen vertailu ja täsmäys</target>
+<target>Hakemistojen vertailu ja täsmäytys</target>
<source>Configuration saved</source>
<target>Asetukset tallennettu</target>
@@ -1520,22 +1523,22 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Monista DACL, SACL, omistaja, ryhmä</target>
<source>Integrate external applications into context menu. The following macros are available:</source>
-<target>Liitä ulkoinen sovellus kontekstivalikkoon. Seuraavat makrot ovat valittavissa:</target>
+<target>Liitä ulkoinen sovellus pikavalikkoon. Seuraavat makrot ovat valittavissa:</target>
-<source>- full file or folder name</source>
-<target>- tiedoston tai hakemiston koko nimi</target>
+<source>Full file or folder path</source>
+<target>Koko tiedosto/hakemisto-polku</target>
-<source>- folder part only</source>
-<target>- vain hakemisto-osa</target>
+<source>Parent folder path</source>
+<target>Ylätason kansio</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Toisen puolen osa liittyy %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Tilapäinen paikalliskopio SFTP/MTP:lle</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Toisen puolen osa liittyy %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Toisen puolen parametrit</target>
<source>Show hidden dialogs and warning messages again?</source>
-<target>Näytetäänkö piiloitetut dialogit ja varoitukset uudestaan?</target>
+<target>Näytetäänkö piiloitetut valintaikkunat ja varoitukset uudestaan?</target>
<source>&Show</source>
<target>&Näytä</target>
@@ -1559,7 +1562,7 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Monista uudet ja päivitetyt tiedostot oikealle.</target>
<source>Configure your own synchronization rules.</source>
-<target>Määritä omat täsmäyssäännöt.</target>
+<target>Määritä omat täsmäytyssäännöt.</target>
<source>Synchronization Settings</source>
<target>Täsmäyksen asetukset</target>
@@ -1624,6 +1627,9 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Files</source>
<target>Tiedostot</target>
+<source>Name</source>
+<target>Nimi</target>
+
<source>Items</source>
<target>Kappaletta</target>
@@ -1640,13 +1646,13 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>FreeFileSync on ajan tasalla.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Tätä FreeFileSync versiota ei lödy. Uudempi versio luultavasti löytyy, tarkistetaanko manuaalisesti?</target>
<source>&Check</source>
<target>&Tarkista</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x:n yhtenäisyystarkistus epäonnistui.</target>
<source>Cannot find system function %x.</source>
<target>Järjestelmäfunktiota %x ei löydy.</target>
@@ -1655,7 +1661,7 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Kirjautuminen järjestelmäviestien vastaanottamiseksi ei onnistu.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Asennustiedosto on virheellinen. Asenna FreeFileSync uudestaan.</target>
<source>Unable to register device notifications for %x.</source>
<target>%x laiteviestien kirjaaminen ei onnistu.</target>
@@ -1732,6 +1738,9 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Cannot change process I/O priorities.</source>
<target>Prosessin I/O-prioriteetin muutos ei onnistu.</target>
+<source>Error Code %x:</source>
+<target>Virhekoodi %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Roskakorin tarkistus hakemistolle %x epäonnistui.</target>
@@ -1766,10 +1775,10 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Tallenna asetukset "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target>Rekisterö FreeFileSync tiedostopäätteet</target>
+<target>Rekisteröi FreeFileSync tiedostotunnisteet</target>
<source>Create Explorer context menu entries</source>
-<target>Luo merkinnät Explorer-apuvalikoon</target>
+<target>Luo merkinnät Explorer-pikavalikoon</target>
<source>Save settings in installation directory</source>
<target>Tallenna asetukset asennus hakemistoon</target>
@@ -1793,10 +1802,10 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Käynnistä-valikkoon</target>
<source>Registering FreeFileSync file extensions</source>
-<target>Liitään FreeFileSync tiedostopäätteet</target>
+<target>Liitään FreeFileSync tiedostotunnisteet</target>
<source>Unregistering FreeFileSync file extensions</source>
-<target>Poistetaan liitos, FreeFileSync tiedostopääte</target>
+<target>Poistetaan liitos, FreeFileSync tiedostotunnisteet</target>
<source>FreeFileSync Configuration</source>
<target>FreeFileSync määrittelyt</target>
@@ -1817,8 +1826,14 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<target>Kiitän tuesta ja lahjoituksista!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Tämä FreeFileSync lahjoittajaverion päivittäinen asennuskiintiö on täyttynyt.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Haluatko ladata vakioversion FreeFileSync-kotisivulta?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Siirretävä versio ei voi asentaa tähän hakemistoon.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Valitse paikallinen asennus tai vaihda asennushakemistoa.</target>
diff --git a/FreeFileSync/Build/Languages/french.lng b/FreeFileSync/Build/Languages/french.lng
index 7a9afd2a..00336a17 100644
--- a/FreeFileSync/Build/Languages/french.lng
+++ b/FreeFileSync/Build/Languages/french.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Impossible de trouver les dossiers suivants :</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Si vous ignorez cette erreur, le dossier sera considéré comme vide. Les dossiers manquants sont créés automatiquement si nécessaire.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Si cette erreur est ignorée, les dossiers seront considérés comme vides. Les dossiers manquants seront automatiquement créés si nécessaire.</target>
<source>A folder input field is empty.</source>
<target>Une entrée dossier est vide.</target>
@@ -155,10 +155,10 @@
<target>Copie de fichiers sécurisé</target>
<source>Enabled</source>
-<target></target>
+<target>Activé</target>
<source>Disabled</source>
-<target></target>
+<target>Désactivé</target>
<source>Copy locked files</source>
<target>Copier les fichiers verrouillés</target>
@@ -167,22 +167,22 @@
<target>Copie des droits d'accès aux fichiers</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolérance horaire</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Dépassement du délai d'accès au dossier</target>
<source>Run with background priority</source>
-<target></target>
+<target>Exécution avec la priorité de tâche de fond.</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Vérouillage des répertoires pendant la synchronisation</target>
<source>Verify copied files</source>
-<target></target>
+<target>Vérification de la copie des fichiers</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Utilisation des paramètres globaux particuliers :</target>
<source>Starting comparison</source>
<target>Comparaison en cours</target>
@@ -273,6 +273,12 @@ Trouvé : %y octets
<source>Cannot move file %x to %y.</source>
<target>Impossible de déplacer le fichier %x vers %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Impossible de se connecter à %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Impossible d'ouvrir le répertoire %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Impossible de parcourir le répertoire %x.</target>
@@ -309,9 +315,6 @@ Trouvé : %y octets
<source>Cannot resolve symbolic link %x.</source>
<target>Impossible de résoudre le lien symbolique %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Impossible d'ouvrir le répertoire %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Impossible de calculer l'espace disque libre de %x.</target>
@@ -321,12 +324,6 @@ Trouvé : %y octets
<source>Incorrect command line:</source>
<target>Ligne de commande incorrecte :</target>
-<source>Error Code %x:</source>
-<target>Code erreur %x :</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -439,7 +436,7 @@ Trouvé : %y octets
<target>Impossible d'accéder au service Volume Shadow Copy.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Veuillez exécuter de préférence la version 64 bits de FreeFileSync pour utiliser le service Shadow Copy.</target>
<source>Cannot determine volume name for %x.</source>
<target>Impossible de déterminer le nom du volume de %x.</target>
@@ -641,8 +638,8 @@ La commande est déclenchée si :
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Les éléments suivants sont en conflit non résolu et ne seront pas synchronisés :</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Les dossiers suivants sont très différentes. Assurez-vous que vous avez sélectionné les bons dossiers pour la synchronisation.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Les dossiers suivants sont assez différents. Veuillez contrôler que ce sont les bons dossiers qui sont sélectionnés pour la synchronisation.</target>
<source>Not enough free disk space available in:</source>
<target>Espace disque insuffisant sur :</target>
@@ -722,23 +719,20 @@ La commande est déclenchée si :
<source>Serious Error</source>
<target>Erreur Grave</target>
-<source>Symlink</source>
-<target>Lien symbolique</target>
-
<source>Folder</source>
<target>Dossier</target>
+<source>Symlink</source>
+<target>Lien symbolique</target>
+
<source>Full path</source>
<target>Chemin complet</target>
-<source>Name</source>
-<target>Nom</target>
-
-<source>Relative folder</source>
-<target>Dossier relatif</target>
+<source>Relative path</source>
+<target>Chemin relatif</target>
-<source>Base folder</source>
-<target>Dossier de base</target>
+<source>Item name</source>
+<target>Nom de l'élément</target>
<source>Size</source>
<target>Taille</target>
@@ -915,7 +909,7 @@ La commande est déclenchée si :
<target>Paire de dossiers :</target>
<source>Main settings:</source>
-<target></target>
+<target>Paramètres principaux :</target>
<source>Use local settings:</source>
<target>Utiliser les paramètres locaux :</target>
@@ -1084,6 +1078,12 @@ La commande est déclenchée si :
<source>Time elapsed:</source>
<target>Temps écoulé :</target>
+<source>Bytes:</source>
+<target>Octets :</target>
+
+<source>Items:</source>
+<target>Eléments :</target>
+
<source>Synchronizing...</source>
<target>Synchronisation en cours...</target>
@@ -1249,6 +1249,9 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>A new version of FreeFileSync is available:</source>
<target>Une nouvelle version de FreeFileSync est disponible :</target>
+<source>Local path not available for %x.</source>
+<target>Chemin local invalide pour %x.</target>
+
<source>Confirm</source>
<target>Confirmer</target>
@@ -1522,17 +1525,17 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Inclure les applications externes dans le menu contextuel. Les macros suivantes sont disponibles :</target>
-<source>- full file or folder name</source>
-<target>- nom du fichier ou du dossier complet</target>
+<source>Full file or folder path</source>
+<target>Chemin complet du fichier ou du dossier</target>
-<source>- folder part only</source>
-<target>- Partie dossier seulement</target>
+<source>Parent folder path</source>
+<target>Chemin parent du dossier</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Duplication vers %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Copie temporaire en local pour les stockages en SFTP et MTP.</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Duplication vers %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Paramètres du côté opposé.</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Voulez-vous réafficher les boîtes de dialogues et les avertissements ?</target>
@@ -1624,6 +1627,9 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Files</source>
<target>Fichiers</target>
+<source>Name</source>
+<target>Nom</target>
+
<source>Items</source>
<target>Éléments</target>
@@ -1640,13 +1646,13 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<target>FreeFileSync est à jour.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Le numéro de la version courante de FreeFileSync est introuvable sur internet. Une nouvelle version est probablement disponible. Voulez-vous vérifier maintenant ?</target>
<source>&Check</source>
<target>&Contrôle</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Contrôle de cohérence incorrect pour %x.</target>
<source>Cannot find system function %x.</source>
<target>Impossible de trouver la fonction système %x.</target>
@@ -1655,7 +1661,7 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<target>Impossible d'enregistrer la réception des messages système.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Les fichiers d'installation sont abîmés. Veuillez réinstaller FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Impossible d'enregistrer les notifications de périphérique pour %x.</target>
@@ -1732,6 +1738,9 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Cannot change process I/O priorities.</source>
<target>Impossible de modifier les priorités E/S des tâches.</target>
+<source>Error Code %x:</source>
+<target>Code erreur %x :</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Echec de la vérification de la corbeille pour le dossier %x.</target>
@@ -1766,7 +1775,7 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<target>Enregistrer la configuration dans "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target></target>
+<target>Enregistrez les extensions de fichier FreeFileSync</target>
<source>Create Explorer context menu entries</source>
<target>Créer les entrées du menu contextuel de l'Explorateur</target>
@@ -1793,10 +1802,10 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<target>le menu Démarrer</target>
<source>Registering FreeFileSync file extensions</source>
-<target></target>
+<target>Enregistrement des extensions de fichier FreeFileSync</target>
<source>Unregistering FreeFileSync file extensions</source>
-<target></target>
+<target>Désenregistrement des extensions de fichier FreeFileSync</target>
<source>FreeFileSync Configuration</source>
<target>Configuration de FreeFileSync</target>
@@ -1817,8 +1826,14 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<target>Merci pour votre don et votre aide !</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ce programme d'installation FreeFileSync pour les donateurs a atteint sa limite d'installation quotidienne.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Voulez-vous télécharger la version standard sur le site de FreeFileSync maintenant ?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>La version portable ne peut être installée dans le dossier choisi.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Veuillez choisir le type d'installation locale ou sélectionner un autre dossier pour cette installation.</target>
diff --git a/FreeFileSync/Build/Languages/german.lng b/FreeFileSync/Build/Languages/german.lng
index 399999b4..e1be7c17 100644
--- a/FreeFileSync/Build/Languages/german.lng
+++ b/FreeFileSync/Build/Languages/german.lng
@@ -7,21 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Parameters for opposite side</source>
-<target>Parameter für gegenüberliegende Seite</target>
-
-<source>Temporary local copy for SFTP and MTP storage</source>
-<target>Temporäre lokale Kopie für SFTP und MTP Speicher</target>
-
-<source>Parent folder path</source>
-<target>Übergeordneter Ordnerpfad</target>
-
-<source>Full file or folder path</source>
-<target>Kompletter Datei oder Ordnerpfad</target>
-
-<source>Local path not available for %x.</source>
-<target>Lokaler Pfad ist nicht verfügbar für %x.</target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Beide Seiten wurden seit der letzten Synchronisation verändert.</target>
@@ -127,7 +112,7 @@
<source>Cannot find the following folders:</source>
<target>Die folgenden Ordner wurden nicht gefunden:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
<target>Wird dieser Fehler ignoriert, werden die Ordner als leer angesehen. Fehlende Ordner werden bei Bedarf automatisch erstellt.</target>
<source>A folder input field is empty.</source>
@@ -197,7 +182,7 @@
<target>Kopierte Dateien verifizieren</target>
<source>Using non-default global settings:</source>
-<target>Verwende nicht dem Standard entsprechende globale Einstellungen:</target>
+<target>Nicht dem Standard entsprechende globale Einstellungen:</target>
<source>Starting comparison</source>
<target>Starte Vergleich</target>
@@ -656,7 +641,7 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Die folgenden Elemente haben ungelöste Konflikte und werden nicht synchronisiert werden:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
<target>Die folgenden Ordner unterscheiden sich erheblich. Überprüfen Sie, ob die richtigen Ordner für die Synchronisation ausgewählt wurden.</target>
<source>Not enough free disk space available in:</source>
@@ -1267,6 +1252,9 @@ Dadurch wird ein konsistenter Datenstand auch bei schweren Fehlern garantiert.
<source>A new version of FreeFileSync is available:</source>
<target>Eine neue Version von FreeFileSync ist verfügbar:</target>
+<source>Local path not available for %x.</source>
+<target>Lokaler Pfad ist nicht verfügbar für %x.</target>
+
<source>Confirm</source>
<target>Bestätigen</target>
@@ -1540,6 +1528,18 @@ Dadurch wird ein konsistenter Datenstand auch bei schweren Fehlern garantiert.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integriert externe Anwendungen in das Kontextmenü. Die folgenden Makros stehen zur Verfügung:</target>
+<source>Full file or folder path</source>
+<target>Kompletter Datei oder Ordnerpfad</target>
+
+<source>Parent folder path</source>
+<target>Übergeordneter Ordnerpfad</target>
+
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Temporäre lokale Kopie für SFTP und MTP Speicher</target>
+
+<source>Parameters for opposite side</source>
+<target>Parameter für gegenüberliegende Seite</target>
+
<source>Show hidden dialogs and warning messages again?</source>
<target>Sollen versteckte Fenster und Warnmeldungen wieder gezeigt werden?</target>
diff --git a/FreeFileSync/Build/Languages/greek.lng b/FreeFileSync/Build/Languages/greek.lng
index 2e2c8d21..761cfb87 100644
--- a/FreeFileSync/Build/Languages/greek.lng
+++ b/FreeFileSync/Build/Languages/greek.lng
@@ -23,40 +23,40 @@
<target>Ρύθμιση προεπιλεγμένης κατεύθυνσης συγχρονισμού: Τα νεότερα αρχεία θα αντικαταστήσουν τα παλιότερα.</target>
<source>Creating folder %x</source>
-<target>Δημιουργία του υποκαταλόγου %x</target>
+<target>Δημιουργία του φακέλου %x</target>
<source>Creating file %x</source>
<target>Δημιουργία του αρχείου %x</target>
<source>Creating symbolic link %x</source>
-<target>Δημιουργία του συμβολικού δεσμού %x</target>
+<target>Δημιουργία της συμβολικής σύνδεσης %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Μεταφορά του αρχείου %x στον κάδο ανακύκλωσης</target>
<source>Moving folder %x to the recycle bin</source>
-<target>Μεταφορά του υποκαταλόγου %x στον κάδο ανακύκλωσης</target>
+<target>Μεταφορά του φακέλου %x στον κάδο ανακύκλωσης</target>
<source>Moving symbolic link %x to the recycle bin</source>
-<target>Μεταφορά του συμβολικού δεσμού %x στον κάδο ανακύκλωσης</target>
+<target>Μεταφορά της συμβολικής σύνδεσης %x στον κάδο ανακύκλωσης</target>
<source>Deleting file %x</source>
<target>Διαγραφή του αρχείου %x</target>
<source>Deleting folder %x</source>
-<target>Διαγραφή του υποκαταλόγου %x</target>
+<target>Διαγραφή του φακέλου %x</target>
<source>Deleting symbolic link %x</source>
-<target>Διαγραφή του συμβολικού δεσμού %x</target>
+<target>Διαγραφή της συμβολικής σύνδεσης %x</target>
<source>Checking recycle bin availability for folder %x...</source>
-<target>Έλεγχος της διαθεσιμότητας του κάδου ανακύκλωσης για τον υποκατάλογο %x...</target>
+<target>Έλεγχος της διαθεσιμότητας του κάδου ανακύκλωσης για το φάκελο %x...</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>Ο κάδος ανακύκλωσης δεν είναι διαθέσιμος για τους ακόλουθους υποκαταλόγους. Τα αρχεία θα διαγραφούν μόνιμα:</target>
+<target>Ο κάδος ανακύκλωσης δεν είναι διαθέσιμος για τους ακόλουθους φακέλους. Τα αρχεία θα διαγραφούν μόνιμα:</target>
<source>An exception occurred</source>
-<target>Παρουσιάστηκε σφάλμα</target>
+<target>Παρουσιάστηκε μια εξαίρεση</target>
<source>A directory path is expected after %x.</source>
<target>Αναμένεται μια διαδρομή υποκαταλόγου μετά το %x.</target>
@@ -68,7 +68,7 @@
<target>Το αρχείο %x δεν μπορεί να βρεθεί.</target>
<source>Error</source>
-<target>Σφάλματα</target>
+<target>Σφάλμα</target>
<source>File %x does not contain a valid configuration.</source>
<target>Το αρχείο %x δεν περιέχει μια έγκυρη διάταξη.</target>
@@ -77,10 +77,10 @@
<target>Έχει οριστεί άνισος αριθμός υποκαταλόγων δεξιά από ό,τι αριστερά.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Το αρχείο διάταξης δεν πρέπει να περιλαμβάνει ρυθμίσεις στο επίπεδο του ζεύγους των υποκαταλόγων, όταν οι υποκατάλογοι ορίζονται μέσω της γραμμής εργασιών.</target>
+<target>Το αρχείο διάταξης δεν πρέπει να περιλαμβάνει ρυθμίσεις στο επίπεδο του ζεύγους των υποκαταλόγων, όταν οι φάκελοι ορίζονται μέσω της γραμμής εργασιών.</target>
<source>Directories cannot be set for more than one configuration file.</source>
-<target>Δεν μπορούν να οριστούν υποκατάλογοι για περισσότερα από ένα αρχεία διάταξης.</target>
+<target>Δεν μπορούν να οριστούν φάκελοι για περισσότερα από ένα αρχεία διάταξης.</target>
<source>Command line</source>
<target>Γραμμή εντολών</target>
@@ -110,16 +110,16 @@
<target>Άνοιγμα της διάταξης για διόρθωση χωρίς να εκτελεστεί.</target>
<source>Cannot find the following folders:</source>
-<target>Οι ακόλουθοι υποκατάλογοι δεν ήταν δυνατό να βρεθούν:</target>
+<target>Οι ακόλουθοι φάκελοι δεν ήταν δυνατό να βρεθούν:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Αν αγνοήσετε αυτό το σφάλμα, οι υποκατάλογοι θα θεωρηθούν κενοί. Οι υποκατάλογοι που λείπουν θα δημιουργηθούν αυτόματα εφόσον χρειάζεται.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Εάν αγνοηθεί αυτό το σφάλμα, οι φάκελοι θα θεωρηθούν κενοί. Φάκελοι που λείπουν θα δημιουργηθούν αυτόματα, όταν χρειαστούν.</target>
<source>A folder input field is empty.</source>
-<target>Ένα πεδίο εισαγωγής υποκαταλόγων είναι άδειο.</target>
+<target>Ένα πεδίο εισαγωγής φακέλων είναι άδειο.</target>
<source>The corresponding folder will be considered as empty.</source>
-<target>Ο αντίστοιχος υποκατάλογος θα θεωρηθεί κενός.</target>
+<target>Ο αντίστοιχος φάκελος θα θεωρηθεί κενός.</target>
<source>The following folder paths are dependent from each other:</source>
<target>Οι ακόλουθες διαδρομές εξαρτώνται η μια από την άλλη:</target>
@@ -143,7 +143,7 @@
<target>Τα στοιχεία διαφέρουν μόνο ως προς τα χαρακτηριστικά τους</target>
<source>Resolving symbolic link %x</source>
-<target>Επίλυση του συμβολικού δεσμού %x</target>
+<target>Επίλυση της συμβολικής σύνδεσης %x</target>
<source>Comparing content of files %x</source>
<target>Σύγκριση του περιεχομένου των αρχείων %x</target>
@@ -155,34 +155,34 @@
<target>Ασφαλής αντιγραφή αρχείων</target>
<source>Enabled</source>
-<target></target>
+<target>Ενεργοποιημένο</target>
<source>Disabled</source>
-<target></target>
+<target>Απενεργοποιημένο</target>
<source>Copy locked files</source>
<target>Αντιγραφή κλειδωμένων αρχείων</target>
<source>Copy file access permissions</source>
-<target>Αντιγραφή των αδειών προσπέλασης των αρχείων</target>
+<target>Αντιγραφή των δικαιωμάτων πρόσβασης των αρχείων</target>
<source>File time tolerance</source>
-<target></target>
+<target>Ανοχή στην ημερομηνία αρχείου</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Χρονικό όριο πρόσβασης στο φάκελο</target>
<source>Run with background priority</source>
-<target></target>
+<target>Εκτέλεση με προτεραιότητα παρασκηνίου</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Κλείδωμα των υποκαταλόγων κατά τη διάρκεια του συγχρονισμού</target>
<source>Verify copied files</source>
-<target></target>
+<target>Επαλήθευση των αντιγραμμένων αρχείων</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Χρήση μη-προεπιλεγμένων γενικών ρυθμίσεων:</target>
<source>Starting comparison</source>
<target>Έναρξη της σύγκρισης</target>
@@ -194,25 +194,25 @@
<target>Ανεπαρκής μνήμη.</target>
<source>Item exists on left side only</source>
-<target>Το αντικείμενο υπάρχει μόνο στην αριστερή πλευρά</target>
+<target>Το στοιχείο υπάρχει μόνο στην αριστερή πλευρά</target>
<source>Item exists on right side only</source>
-<target>Το αντικείμενο υπάρχει μόνο στη δεξιά πλευρά</target>
+<target>Το στοιχείο υπάρχει μόνο στη δεξιά πλευρά</target>
<source>Left side is newer</source>
-<target>Το αντικείμενο στην αριστερή πλευρά είναι πιο πρόσφατο</target>
+<target>Το στοιχείο στην αριστερή πλευρά είναι πιο πρόσφατο</target>
<source>Right side is newer</source>
-<target>Το αντικείμενο στη δεξιά πλευρά είναι πιο πρόσφατο</target>
+<target>Το στοιχείο στη δεξιά πλευρά είναι πιο πρόσφατο</target>
<source>Items have different content</source>
-<target>Τα αντικείμενα έχουν διαφορετικό περιεχόμενο</target>
+<target>Τα στοιχεία έχουν διαφορετικό περιεχόμενο</target>
<source>Both sides are equal</source>
<target>Οι δυο πλευρές είναι ίδιες</target>
<source>Conflict/item cannot be categorized</source>
-<target>Διένεξη/το αντικείμενο δεν μπορεί να κατηγοριοποιηθεί</target>
+<target>Διένεξη/το στοιχείο δεν μπορεί να κατηγοριοποιηθεί</target>
<source>Copy new item to left</source>
<target>Αντιγραφή του νέου στοιχείου στα αριστερά</target>
@@ -242,13 +242,13 @@
<target>Καμία ενέργεια</target>
<source>Update attributes on left</source>
-<target>Ενημέρωση των στοιχείων στα αριστερά</target>
+<target>Ενημέρωση των χαρακτηριστικών στα αριστερά</target>
<source>Update attributes on right</source>
-<target>Ενημέρωση των στοιχείων στα δεξιά</target>
+<target>Ενημέρωση των χαρακτηριστικών στα δεξιά</target>
<source>Cannot write permissions of %x.</source>
-<target>Δεν μπορεί να γίνει εγγραφή των αδειών προσπέλασης του %x.</target>
+<target>Δεν μπορεί να γίνει εγγραφή των δικαιωμάτων πρόσβασης του %x.</target>
<source>Operation not supported for different base folder types.</source>
<target>Η λειτουργία δεν υποστηρίζεται για διαφορετικούς τύπους βασικών υποκαταλόγων.</target>
@@ -268,13 +268,13 @@ Actual: %y bytes
</target>
<source>Cannot copy symbolic link %x to %y.</source>
-<target>Αδυναμία αντιγραφής του συμβολικού δεσμού %x στο %y.</target>
+<target>Αδυναμία αντιγραφής της συμβολικής σύνδεσης %x στο %y.</target>
<source>Cannot move file %x to %y.</source>
<target>Δεν μπορεί το αρχείο %x να μεταφερθεί στο %y.</target>
<source>Cannot enumerate directory %x.</source>
-<target>Δεν είναι δυνατή η καταλογογράφηση του υποκαταλόγου %x.</target>
+<target>Δεν είναι δυνατή η απαρίθμηση του υποκαταλόγου %x.</target>
<source>Cannot read file attributes of %x.</source>
<target>Δεν μπορεί να γίνει ανάγνωση των χαρακτηριστικών του αρχείου %x.</target>
@@ -289,7 +289,7 @@ Actual: %y bytes
<target>Δεν μπορεί να γίνει ανάγνωση του αρχείου %x.</target>
<source>Cannot find device %x.</source>
-<target>Η συσχευή %x δεν μπορεί να βρεθεί.</target>
+<target>Η συσκευή %x δεν μπορεί να βρεθεί.</target>
<source>Cannot create directory %x.</source>
<target>Δεν μπορεί να δημιουργηθεί ο υποκατάλογος %x.</target>
@@ -307,7 +307,7 @@ Actual: %y bytes
<target>Δεν μπορεί να προσδιοριστεί η τελική διαδρομή για το %x.</target>
<source>Cannot resolve symbolic link %x.</source>
-<target>Ο συμβολικός δεσμός %x δεν μπορεί να επιλυθεί.</target>
+<target>Η συμβολική σύνδεση %x δεν μπορεί να επιλυθεί.</target>
<source>Cannot open directory %x.</source>
<target>Δεν είναι δυνατό το άνοιγμα του υποκαταλόγου %x.</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Κωδικός Σφάλματος %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Δεν μπορεί να πραγματοποιηθεί σύνδεση με το %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -355,19 +355,19 @@ Actual: %y bytes
<target>Αρχικός συγχρονισμός:</target>
<source>Database file %x does not yet exist.</source>
-<target>Το αρχείο βάσης δεδομένων %x δεν υπάρχει ακόμα.</target>
+<target>Το αρχείο βάσης δεδομένων %x δεν έχει ακόμα δημιουργηθεί.</target>
<source>Database file is corrupt:</source>
-<target>Το αρχείο βάσης δεδομένων είναι αλλοιωμένο:</target>
+<target>Το αρχείο βάσης δεδομένων είναι κατεστραμμένο:</target>
<source>Database files do not share a common session.</source>
-<target>Τα αρχεία βάσης δεδομένων δεν έχουν χρησιμοποιηθεί από κοινού σε συγχρονισμό.</target>
+<target>Τα αρχεία βάσης δεδομένων δεν έχουν χρησιμοποιηθεί στον ίδιο συγχρονισμό.</target>
<source>Searching for folder %x...</source>
-<target>Αναζήτηση του υποκαταλόγου %x...</target>
+<target>Αναζήτηση του φακέλου %x...</target>
<source>Timeout while searching for folder %x.</source>
-<target>Λήξη χρονικού ορίου αναζήτησης του υποκαταλόγου %x.</target>
+<target>Λήξη χρονικού ορίου αναζήτησης του φακέλου %x.</target>
<source>Cannot get process information.</source>
<target>Δεν μπορούν να ληφθούν πληροφορίες για τις τρέχουσες διαδικασίες.</target>
@@ -424,7 +424,7 @@ Actual: %y bytes
<target>/δευτερόλεπτο</target>
<source>%x items/sec</source>
-<target>%x στοιχεία</target>
+<target>%x στοιχεία/δευτερόλεπτο</target>
<source>Show in Explorer</source>
<target>Εμφάνιση στην Εξερεύνηση</target>
@@ -439,7 +439,7 @@ Actual: %y bytes
<target>Δεν είναι δυνατή η πρόσβαση στην Υπηρεσία Σκιώδους Αντίγραφου Τόμου.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Παρακαλούμε εκτελέστε την 64-bit έκδοση του FreeFileSync, για να δημιουργήσετε σκιώδη αντίγραφα σε αυτό το σύστημα.</target>
<source>Cannot determine volume name for %x.</source>
<target>Δεν μπορεί να προσδιοριστεί το όνομα τόμου για το %x.</target>
@@ -448,7 +448,7 @@ Actual: %y bytes
<target>Το όνομα τόμου %x δεν είναι μέρος της διαδρομής %y.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>Αίτημα διακοπής: Αναμονή για την ολοκλήρωση της τρέχουσας εργασίας...</target>
+<target>Αίτημα για διακοπή: Αναμονή για την ολοκλήρωση της τρέχουσας εργασίας...</target>
<source>Unable to create time stamp for versioning:</source>
<target>Δεν ήταν δυνατή η δημιουργία χρονικής σήμανσης για τη διατήρηση παλιών εκδόσεων:</target>
@@ -457,10 +457,10 @@ Actual: %y bytes
<target>Μεταφορά && Απόθεση</target>
<source>Cannot find folder %x.</source>
-<target>Ο υποκατάλογος %x δεν μπορεί να βρεθεί.</target>
+<target>Ο φάκελος %x δεν μπορεί να βρεθεί.</target>
<source>Select a folder</source>
-<target>Επιλογή υποκαταλόγου</target>
+<target>Επιλογή φακέλου</target>
<source>&Open...</source>
<target>Ά&νοιγμα...</target>
@@ -487,7 +487,7 @@ Actual: %y bytes
<target>Χρήση:</target>
<source>1. Select folders to watch.</source>
-<target>1. Επιλέξτε τους υποκαταλόγους που θα παρακολουθούνται.</target>
+<target>1. Επιλέξτε τους φακέλους που θα παρακολουθούνται.</target>
<source>2. Enter a command line.</source>
<target>2. Εισάγετε μια γραμμή εντολών.</target>
@@ -499,22 +499,22 @@ Actual: %y bytes
<target>Για να ξεκινήσετε μπορείτε απλά να εισάγετε ένα αρχείο .ffs_batch.</target>
<source>Folders to watch:</source>
-<target>Υποκατάλογοι για παρακολούθηση:</target>
+<target>Φάκελοι για παρακολούθηση:</target>
<source>Add folder</source>
-<target>Προσθήκη υποκαταλόγου</target>
+<target>Προσθήκη φακέλου</target>
<source>Remove folder</source>
-<target>Διαγραφή του υποκαταλόγου</target>
+<target>Διαγραφή του φακέλου</target>
<source>Browse</source>
<target>Αναζήτηση</target>
<source>Idle time (in seconds):</source>
-<target>Λανθάνων χρόνος (σε δευτερόλεπτα):</target>
+<target>Χρόνος αδράνειας (σε δευτερόλεπτα):</target>
<source>Idle time between last detected change and execution of command</source>
-<target>Λανθάνων χρόνος μεταξύ τελευταίας αλλαγής που ανιχνεύθηκε και εκτέλεσης της εντολής</target>
+<target>Χρόνος αδράνειας μεταξύ τελευταίας αλλαγής που ανιχνεύθηκε και εκτέλεσης της εντολής</target>
<source>Command line:</source>
<target>Γραμμή εντολών:</target>
@@ -526,8 +526,8 @@ The command is triggered if:
</source>
<target>
Αυτή η εντολή πραγματοποιείται εάν:
--αρχεία ή υποκτάλογοι αλλάξουν
--παρουσιαστούν νέοι υποκατάλογοι (π.χ. εισαχθεί ένα φλασάκι USB)
+-αρχεία ή φάκελοι αλλάξουν
+-παρουσιαστούν νέοι φάκελοι (π.χ. εισαχθεί ένα φλασάκι USB)
</target>
<source>Start</source>
@@ -585,7 +585,7 @@ The command is triggered if:
<target>Ενημέρωση</target>
<source>Custom</source>
-<target>Εξατομίκευση</target>
+<target>Προσαρμογή</target>
<source>Multiple...</source>
<target>Πολλαπλές ρυθμίσεις...</target>
@@ -594,10 +594,10 @@ The command is triggered if:
<target>Μεταφορά του αρχείου %x στο %y</target>
<source>Moving folder %x to %y</source>
-<target>Μεταφορά του υποκαταλόγου %x στο %y</target>
+<target>Μεταφορά του φακέλου %x στο %y</target>
<source>Moving symbolic link %x to %y</source>
-<target>Μεταφορά του συμβολικού δεσμού %x στο %y</target>
+<target>Μεταφορά της συμβολικής σύνδεσης %x στο %y</target>
<source>Removing old versions...</source>
<target>Διαγραφή παλιών εκδόσεων...</target>
@@ -606,10 +606,10 @@ The command is triggered if:
<target>Ενημέρωση του αρχείου %x</target>
<source>Updating symbolic link %x</source>
-<target>Ενημέρωση του συμβολικού δεσμού %x</target>
+<target>Ενημέρωση της συμβολικής σύνδεσης %x</target>
<source>Verifying file %x</source>
-<target>Επικύρωση του αρχείου %x</target>
+<target>Επαλήθευση του αρχείου %x</target>
<source>Updating attributes of %x</source>
<target>Ενημέρωση των χαρακτηριστικών αρχείου του %x</target>
@@ -627,22 +627,22 @@ The command is triggered if:
<target>Δημιουργία Σκιώδους Αντίγραφου Τόμου για το %x...</target>
<source>Target folder %x already existing.</source>
-<target>Ο υποκατάλογος-στόχος %x υπάρχει ήδη.</target>
+<target>Ο φάκελος-στόχος %x υπάρχει ήδη.</target>
<source>Target folder input field must not be empty.</source>
-<target>Το πεδίο εισαγωγής του υποκαταλόγου-στόχου πρέπει να μην είναι κενό.</target>
+<target>Το πεδίο εισαγωγής του φακέλου-στόχου πρέπει να μην είναι κενό.</target>
<source>Source folder %x not found.</source>
-<target>Ο υποκατάλογος %x δε βρέθηκε.</target>
+<target>Ο φάκελος %x δε βρέθηκε.</target>
<source>Please enter a target folder for versioning.</source>
-<target>Παρακαλούμε εισάγετε έναν υποκατάλογο για αποθήκευση εκδόσεων.</target>
+<target>Παρακαλούμε εισάγετε ένα φάκελο για αποθήκευση παλιών εκδόσεων.</target>
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Τα ακόλουθα στοιχεία έχουν ανεπίλυτες διενέξεις και δε θα συγχρονιστούν:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Οι παρακάτω υποκατάλογοι έχουν σημαντικές διαφορές. Σιγουρευτείτε ότι έχετε επιλέξει να συγχρονίσετε τους σωστούς υποκαταλόγους.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Οι ακόλουθοι φάκελοι είναι σημαντικά διαφορετικοί. Παρακαλούμε ελέγξτε εάν έχουν επιλεχθεί για συγχρονισμό οι σωστοί φάκελοι.</target>
<source>Not enough free disk space available in:</source>
<target>Δεν υπάρχει αρκετός διαθέσιμος χώρος στο δίσκο:</target>
@@ -654,10 +654,10 @@ The command is triggered if:
<target>Διαθέσιμος:</target>
<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target>Πολλά ζεύγη υποκαταλόγων γράφουν σε έναν κοινό υποκατάλογο. Παρακαλούμε ελέγξτε ξανά τη διάταξη που επιλέξατε.</target>
+<target>Πολλά ζεύγη φάκελων γράφουν σε έναν κοινό υποκατάλογο. Παρακαλούμε ελέγξτε ξανά τη διάταξη που επιλέξατε.</target>
<source>Synchronizing folder pair:</source>
-<target>Συγχρονίζεται το ζευγάρι υποκαταλόγων:</target>
+<target>Συγχρονίζεται το ζευγάρι φακέλων:</target>
<source>Generating database...</source>
<target>Δημιουργία βάσης δεδομένων...</target>
@@ -666,10 +666,10 @@ The command is triggered if:
<target>όνομα ενέργειας</target>
<source>Synchronization stopped</source>
-<target>Ο συγχρονισμός διακόπηκε</target>
+<target>Διακοπή του συγχρονισμού</target>
<source>Stopped</source>
-<target>Διεκόπη</target>
+<target>Διακοπή</target>
<source>Synchronization completed with errors</source>
<target>Ο συγχρονισμός ολοκληρώθηκε με σφάλματα</target>
@@ -722,23 +722,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>Σοβαρό Σφάλμα</target>
-<source>Symlink</source>
-<target>Συμβολικός δεσμός</target>
-
<source>Folder</source>
-<target>Υποκατάλογος</target>
+<target>Φάκελος</target>
+
+<source>Symlink</source>
+<target>Συμβολική σύνδεση</target>
<source>Full path</source>
<target>Πλήρης διαδρομή</target>
-<source>Name</source>
-<target>Όνομα</target>
+<source>Relative path</source>
+<target>Σχετική διαδρομή</target>
-<source>Relative folder</source>
-<target>Σχετικός υποκατάλογος</target>
-
-<source>Base folder</source>
-<target>Βασικός υποκατάλογος</target>
+<source>Item name</source>
+<target>Όνομα στοιχείου</target>
<source>Size</source>
<target>Μέγεθος</target>
@@ -783,19 +780,19 @@ The command is triggered if:
<target>Επικόλληση</target>
<source>The selected folder %x cannot be used with FreeFileSync.</source>
-<target>Ο επιλεγμένος υποκατάλογος %x δεν μπορεί να χρησιμοποιηθεί από το FreeFileSync.</target>
+<target>Ο επιλεγμένος φάκελος %x δεν μπορεί να χρησιμοποιηθεί από το FreeFileSync.</target>
<source>Please select a folder on a local file system, network or an MTP device.</source>
-<target>Παρακαλούμε επιλέξτε έναν υποκατάλογο σε ένα τοπικό σύστημα αρχείων, στο δίκτυο ή σε μια συσκευή MTP.</target>
+<target>Παρακαλούμε επιλέξτε ένα φάκελο σε ένα τοπικό σύστημα αρχείων, σε ένα δίκτυο ή σε μια συσκευή MTP.</target>
<source>SFTP folder</source>
-<target>Υποκατάλογος SFTP</target>
+<target>Φάκελος SFTP</target>
<source>Select SFTP folder</source>
-<target>Επιλογή υποκαταλόγου SFTP</target>
+<target>Επιλογή φακέλου SFTP</target>
<source>Select alternative folder type</source>
-<target>Επιλογή εναλλακτικού τύπου υποκαταλόγου</target>
+<target>Επιλογή εναλλακτικού τύπου φακέλου</target>
<source>&New</source>
<target>&Δημιουργία</target>
@@ -861,22 +858,22 @@ The command is triggered if:
<target>Συγχρονισμός</target>
<source>Add folder pair</source>
-<target>Προσθήκη ζεύγους υποκαταλόγων</target>
+<target>Προσθήκη ζεύγους φακέλων</target>
<source>Remove folder pair</source>
-<target>Διαγραφή του ζεύγους υποκαταλόγων</target>
+<target>Διαγραφή του ζεύγους φακέλων</target>
<source>Swap sides</source>
<target>Ανταλλαγή πλευρών</target>
<source>Close search bar</source>
-<target>Κλείσιμο γραμμής εύρεσης</target>
+<target>Κλείσιμο γραμμής αναζήτησης</target>
<source>Find:</source>
<target>Εύρεση:</target>
<source>Match case</source>
-<target>Αντιστοίχιση πεζών-κεφαλαίων</target>
+<target>Ταίριασμα πεζών-κεφαλαίων</target>
<source>New</source>
<target>Δημιουργία</target>
@@ -900,22 +897,22 @@ The command is triggered if:
<target>Στατιστικά:</target>
<source>Number of files and folders that will be deleted</source>
-<target>Αριθμός αρχείων και υποκαταλόγων που θα διαγραφούν</target>
+<target>Αριθμός αρχείων και φακέλων που θα διαγραφούν</target>
<source>Number of files that will be updated</source>
<target>Αριθμός αρχείων που θα ενημερωθούν</target>
<source>Number of files and folders that will be created</source>
-<target>Αριθμός αρχείων και υποκαταλόγων που θα δημιουργηθούν</target>
+<target>Αριθμός αρχείων και φακέλων που θα δημιουργηθούν</target>
<source>Total bytes to copy</source>
<target>Συνολικός αριθμός bytes προς αντιγραφή</target>
<source>Folder pair:</source>
-<target>Ζεύγος υποκαταλόγων:</target>
+<target>Ζεύγος φακέλων:</target>
<source>Main settings:</source>
-<target></target>
+<target>Βασικές ρυθμίσεις:</target>
<source>Use local settings:</source>
<target>Χρήση τοπικών ρυθμίσεων:</target>
@@ -924,7 +921,7 @@ The command is triggered if:
<target>Επιλογή μεθόδου:</target>
<source>Include &symbolic links:</source>
-<target>Συμπερίληψη των &συμβολικών δεσμών:</target>
+<target>Συμπερίληψη των &συμβολικών συνδέσεων:</target>
<source>&Follow</source>
<target>Α&κολούθηση</target>
@@ -972,13 +969,13 @@ The command is triggered if:
<target>Μέγιστο:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>Επιλογή κανόνων φιλτραρίσματος, ώστε να αποκλειστούν ορισμένα αρχεία από το συγχρονισμό. Εισάγετε τις διαδρομές των αρχείων σχετικά με το αντίστοιχο ζεύγος υποκαταλόγων.</target>
+<target>Επιλογή κανόνων φιλτραρίσματος, ώστε να αποκλειστούν ορισμένα αρχεία από το συγχρονισμό. Εισάγετε τις διαδρομές των αρχείων σχετικά με το αντίστοιχο ζεύγος φακέλων.</target>
<source>C&lear</source>
<target>&Καθαρισμός</target>
<source>Detect synchronization directions with the help of database files</source>
-<target>Ανίχνευση της κατεύθυνσης συγχρονισμού με τη βοήθεια βάσεων δεδομένων</target>
+<target>Ανίχνευση της κατεύθυνσης συγχρονισμού με τη βοήθεια αρχείων βάσης δεδομένων</target>
<source>Detect moved files</source>
<target>Ανίχνευση των αρχείων που μεταφέρθηκαν</target>
@@ -1001,7 +998,7 @@ The command is triggered if:
<target>&Κάδος ανακύκλωσης</target>
<source>Back up deleted and overwritten files in the recycle bin</source>
-<target>Μεταφορά όλων των διαγραμμένων και αντικατεστημένων αρχείων στον κάδο ανακύκλωσης.</target>
+<target>Μεταφορά όλων των διαγραμμένων και αντικατεστημένων αρχείων στον κάδο ανακύκλωσης</target>
<source>&Permanent</source>
<target>&Μόνιμη</target>
@@ -1016,7 +1013,7 @@ The command is triggered if:
<target>Μεταφορά αρχείων σε έναν υποκατάλογο που ορίζεται από το χρήστη</target>
<source>Naming convention:</source>
-<target>Τρόπος ονομασίας:</target>
+<target>Κανόνας ονοματοθεσίας:</target>
<source>Handle errors:</source>
<target>Χειρισμός σφαλμάτων:</target>
@@ -1037,7 +1034,7 @@ The command is triggered if:
<target>OK</target>
<source>Arrange folder pair</source>
-<target>Οργάνωση του ζεύγους υποκαταλόγων:</target>
+<target>Οργάνωση του ζεύγους φακέλων:</target>
<source>Enter your SFTP login details:</source>
<target>Εισάγετε τα στοιχεία σύνδεσης SFTP:</target>
@@ -1064,7 +1061,7 @@ The command is triggered if:
<target>Επιλογή ενός υποκαταλόγου στον διακομιστή:</target>
<source>Select Folder</source>
-<target>Επιλογή Υποκαταλόγου</target>
+<target>Επιλογή Φακέλου</target>
<source>Start synchronization now?</source>
<target>Να ξεκινήσει ο συγχρονισμός τώρα;</target>
@@ -1084,6 +1081,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Πέρασε χρόνος:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Στοιχεία:</target>
+
<source>Synchronizing...</source>
<target>Γίνεται συγχρονισμός...</target>
@@ -1154,7 +1157,7 @@ This guarantees a consistent state even in case of a serious error.
<target>(απαιτεί δικαιώματα διαχειριστή)</target>
<source>Transfer file and folder permissions.</source>
-<target>Μεταφορά των αδειών προσπέλασης αρχείων και υποκαταλόγων.</target>
+<target>Μεταφορά των δικαιωμάτων πρόσβασης αρχείων και φακέλων.</target>
<source>Automatic retry on error:</source>
<target>Αυτόματη επανάληψη σε περίπτωση σφάλματος:</target>
@@ -1166,7 +1169,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Καθυστέρηση (σε δευτερόλεπτα):</target>
<source>Customize context menu:</source>
-<target>Προσαρμογή μενού επιλογών:</target>
+<target>Προσαρμογή μενού περιβάλλοντος:</target>
<source>Description</source>
<target>Περιγραφή</target>
@@ -1229,10 +1232,10 @@ This guarantees a consistent state even in case of a serious error.
<target>Κύρια Γραμμή</target>
<source>Folder Pairs</source>
-<target>Ζεύγη Υποκαταλόγων</target>
+<target>Ζεύγη Φακέλων</target>
<source>Find</source>
-<target>Αναζήτηση</target>
+<target>Εύρεση</target>
<source>View Settings</source>
<target>Προβολή Ρυθμίσεων</target>
@@ -1249,6 +1252,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Μια νέα έκδοση του FreeFileSync είναι διαθέσιμη:</target>
+<source>Local path not available for %x.</source>
+<target>Η τοπική διαδρομή δεν είναι διαθέσιμη για το %x.</target>
+
<source>Confirm</source>
<target>Επιβεβαίωση</target>
@@ -1269,8 +1275,8 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>%x directories</pluralform>
</source>
<target>
-<pluralform>1 υποκατάλογος</pluralform>
-<pluralform>%x υποκατάλογοι</pluralform>
+<pluralform>1 φάκελος</pluralform>
+<pluralform>%x φάκελοι</pluralform>
</target>
<source>
@@ -1343,7 +1349,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Τελευταία χρήση</target>
<source>Folder Comparison and Synchronization</source>
-<target>Σύγκριση υποκαταλόγων και Συγχρονισμός</target>
+<target>Σύγκριση Φακέλων και Συγχρονισμός</target>
<source>Configuration saved</source>
<target>Η διάταξη αποθηκεύτηκε</target>
@@ -1355,7 +1361,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Θέλετε να αποθηκεύσετε τις αλλαγές στο %x;</target>
<source>Never save &changes</source>
-<target>Να &μην αποθηκεύονται οι αλλαγές</target>
+<target>Να μην αποθηκεύονται &ποτέ οι αλλαγές</target>
<source>Do&n't save</source>
<target>Να &μην αποθηκευθούν</target>
@@ -1379,7 +1385,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Εμφάνιση των αρχείων που είναι πιο πρόσφατα στα δεξιά</target>
<source>Show files that are equal</source>
-<target>Εμφάνιση των αρχείων που είναι ίδια</target>
+<target>Εμφάνιση των αρχείων που είναι ταυτόσημα</target>
<source>Show files that are different</source>
<target>Εμφάνιση των αρχείων που είναι διαφορετικά</target>
@@ -1430,7 +1436,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Μετακίνηση προς τα κάτω</target>
<source>Comma-separated values</source>
-<target>Αρχείο χωρισμένο με κόμματα</target>
+<target>Αρχείο διαχωρισμένο με κόμματα</target>
<source>File list exported</source>
<target>Ο κατάλογος των αρχείων έχει εξαχθεί</target>
@@ -1488,20 +1494,20 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Copy the following %x items to another folder?</pluralform>
</source>
<target>
-<pluralform>Αντιγραφή του ακόλουθου στοιχείου σε άλλον υποκατάλογο;</pluralform>
-<pluralform>Αντιγραφή του ακόλουθων %x στοιχείων σε άλλον υποκατάλογο;</pluralform>
+<pluralform>Αντιγραφή του ακόλουθου στοιχείου σε άλλο φάκελο;</pluralform>
+<pluralform>Αντιγραφή του ακόλουθων %x στοιχείων σε άλλο φάκελο;</pluralform>
</target>
<source>Please enter a target folder.</source>
-<target>Παρακαλούμε επιλέξτε έναν υποκατάλογο-στόχο.</target>
+<target>Παρακαλούμε επιλέξτε έναν φάκελο-στόχο.</target>
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
</source>
<target>
-<pluralform>Είστε σίγουροι ότι θέλετε να μετακινήσετε το ακόλουθο αντικείμενο στον κάδο ανακύκλωσης;</pluralform>
-<pluralform>Είστε σίγουροι ότι θέλετε να μετακινήσετε τα ακόλουθα %x αντικείμενα στον κάδο ανακύκλωσης;</pluralform>
+<pluralform>Είστε σίγουροι ότι θέλετε να μετακινήσετε το ακόλουθο στοιχείο στον κάδο ανακύκλωσης;</pluralform>
+<pluralform>Είστε σίγουροι ότι θέλετε να μετακινήσετε τα ακόλουθα %x στοιχεία στον κάδο ανακύκλωσης;</pluralform>
</target>
<source>Move</source>
@@ -1512,8 +1518,8 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Do you really want to delete the following %x items?</pluralform>
</source>
<target>
-<pluralform>Είσαι σίγουρος ότι θέλεις να διαγραφεί το ακόλουθο αντικείμενο;</pluralform>
-<pluralform>Είσαι σίγουρος ότι θέλεις να διαγραφούν τα ακόλουθα %x αντικείμενα;</pluralform>
+<pluralform>Είστε σίγουροι ότι θέλετε να διαγραφεί το ακόλουθο στοιχείο;</pluralform>
+<pluralform>Είστε σίγουροι ότι θέλετε να διαγραφούν τα ακόλουθα %x στοιχεία;</pluralform>
</target>
<source>Copy DACL, SACL, Owner, Group</source>
@@ -1522,17 +1528,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Ένταξη εξωτερικών εφαρμογών στο μενού περιβάλλοντος. Οι ακόλουθες μακροεντολές είναι διαθέσιμες:</target>
-<source>- full file or folder name</source>
-<target>- πλήρες όνομα αρχείου ή υποκαταλόγου</target>
+<source>Full file or folder path</source>
+<target>Πλήρης διαδρομή αρχείου ή φακέλου</target>
-<source>- folder part only</source>
-<target>- μέρος μόνο του υποκαταλόγου</target>
+<source>Parent folder path</source>
+<target>Διαδρομή γονικού φακέλου</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Το αντίστοιχο του %item_path% της άλλης πλευράς</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Προσωρινό τοπικό αντίγραφο για αποθήκευση σε SFTP και MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Το αντίστοιχο του %item_folder% της άλλης πλευράς</target>
+<source>Parameters for opposite side</source>
+<target>Παράμετροι για την απέναντι πλευρά</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Να εμφανίζονται οι κρυμμένες ειδοποιήσεις και προειδοποιητικά μηνύματα;</target>
@@ -1553,7 +1559,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Αναγνώριση και εφαρμογή αλλαγών και στις δυο πλευρές. Οι διαγραφές, οι μεταφορές και οι διενέξεις αναγνωρίζονται αυτόματα με τη βοήθεια μιας βάσης δεδομένων.</target>
<source>Create a mirror backup of the left folder by adapting the right folder to match.</source>
-<target>Τροποποίηση του υποκαταλόγου δεξιά, ώστε να γίνει ακριβές αντίγραφο του υποκαταλόγου αριστερά.</target>
+<target>Τροποποίηση του φακέλου δεξιά, ώστε να γίνει ακριβές αντίγραφο του φακέλου αριστερά.</target>
<source>Copy new and updated files to the right folder.</source>
<target>Αντιγραφή των νέων και των τροποποιημένων αρχείων στον υποκατάλογο δεξιά.</target>
@@ -1624,6 +1630,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Αρχεία</target>
+<source>Name</source>
+<target>Όνομα</target>
+
<source>Items</source>
<target>Στοιχεία</target>
@@ -1640,22 +1649,22 @@ This guarantees a consistent state even in case of a serious error.
<target>Το FreeFileSync είναι ενημερωμένο.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Δεν μπορεί να βρεθεί η τρέχουσα έκδοση του FreeFileSync στο δίκτυο. Πιθανότατα είναι διαθέσιμη μια νεότερη έκδοση. Θέλετε να μεταφερθείτε στην ιστοσελίδα τώρα;</target>
<source>&Check</source>
<target>Έλε&γχος</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Ο έλεγχος συνέπειας απέτυχε για το %x.</target>
<source>Cannot find system function %x.</source>
-<target>Δεν ανευρίσκεται η λειτουργία συστήματος %x.</target>
+<target>Δεν μπορεί να βρεθεί η λειτουργία συστήματος %x.</target>
<source>Unable to register to receive system messages.</source>
<target>Δεν μπορεί να καταχωρηθεί η λήψη μηνυμάτων συστήματος.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Τα αρχεία εγκατάστασης είναι κατεστραμμένα. Παρακαλούμε εγκαταστείστε ξανά το FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Δεν μπορούν να καταχωρηθεί η ειδοποίηση για τη συσκευή %x.</target>
@@ -1673,10 +1682,10 @@ This guarantees a consistent state even in case of a serious error.
<target>Δεν μπορεί να γίνει εγγραφή του περιβάλλοντος ασφαλείας του %x.</target>
<source>Cannot read permissions of %x.</source>
-<target>Δεν μπορούν να αναγνωσθούν οι άδειες προσπέλασης του %x.</target>
+<target>Δεν μπορούν να αναγνωσθούν τα δικαιώματα ανάγνωσης του %x.</target>
<source>Cannot copy permissions from %x to %y.</source>
-<target>Δεν μπορούν να αντιγραφούν οι άδειες προσπέλασης του %x στο %y.</target>
+<target>Δεν μπορούν να αντιγραφούν τα δικαιώματα αντιγραφής του %x στο %y.</target>
<source>%x is not a regular directory name.</source>
<target>Το %x δεν είναι ένα κανονικό όνομα υποκαταλόγου.</target>
@@ -1727,7 +1736,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Τα δικαιώματα %x δεν μπορούν να οριστούν.</target>
<source>Unable to suspend system sleep mode.</source>
-<target>Δεν μπορεί να διακοπεί η αναστολή του συστήματος.</target>
+<target>Δεν μπορεί να διακοπεί η αναμονή του συστήματος.</target>
<source>Cannot change process I/O priorities.</source>
<target>Δεν μπορούν να αλλάξουν οι προτεραιότητες I/O της διεργασίας.</target>
@@ -1817,8 +1826,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Ευχαριστούμε για τη δωρεά και την υποστήριξή σας!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Αυτό το πρόγραμμα εγκατάστασης του FreeFileSync για δωρητές έφτασε στο ημερήσιο του όριο.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Θέλετε να κάνετε λήψη της κανονικής έκδοσης από την ιστοσελίδα του FreeFileSync τώρα;</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Η φορητή έκδοση δεν μπορεί να εγκατασταθεί στον επιλεγμένο φάκελο.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Παρακαλούμε επιλέξτε την τοπική εγκατάσταση ή επιλέξτε έναν διαφορετικό φάκελο για εγκατάσταση.</target>
diff --git a/FreeFileSync/Build/Languages/hebrew.lng b/FreeFileSync/Build/Languages/hebrew.lng
index 5a0d9b59..3fdd3083 100644
--- a/FreeFileSync/Build/Languages/hebrew.lng
+++ b/FreeFileSync/Build/Languages/hebrew.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>לא יכול למצוא את התיקיות הבאות:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>אם תתעלם משגיאה זו התיקיות תיחשבנה ריקות. תיקיות חסרות נוצרות באופן אוטומטי בעת הצורך.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>אם תתעלם משגיאה זו התיקיות יחשבו כריקות. תיקיות חסרות נוצרות באופן אוטומטי כאשר נדרש.</target>
<source>A folder input field is empty.</source>
<target>שדה קלט תיקייה ריק.</target>
@@ -155,10 +155,10 @@
<target>כשלון באבטחת העתקת קובץ</target>
<source>Enabled</source>
-<target></target>
+<target>זמין</target>
<source>Disabled</source>
-<target></target>
+<target>לא זמין</target>
<source>Copy locked files</source>
<target>העתק קבצים נעולים</target>
@@ -167,22 +167,22 @@
<target>העתק הרשאות גישה של הקובץ</target>
<source>File time tolerance</source>
-<target></target>
+<target>אפיצות זמן קובץ</target>
<source>Folder access timeout</source>
-<target></target>
+<target>זמן קצוב לגישה לתיייה</target>
<source>Run with background priority</source>
-<target></target>
+<target>בצע עם עדיפות רקע</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>נעל מחיצות בזמן סינכרון</target>
<source>Verify copied files</source>
-<target></target>
+<target>אמת קבצים מועתקים</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>משתמש בהגדרות כלליות שאינן ברירת מחדל:</target>
<source>Starting comparison</source>
<target>מתחיל השוואה</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>קוד שגיאה %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>לא יכול להתחבר אל %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Actual: %y bytes
<target>לא ניתן לגשת אל שרות Volume Shadow Copy.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>בבקשה הרץ את גירסת 64 סיביות של FreeFileSync כדי ליצור עותקי צל של מערכת זו.</target>
<source>Cannot determine volume name for %x.</source>
<target>לא יכול לקבוע שם אמצעי אחסון %x.</target>
@@ -641,8 +641,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>לפריטים הבאים יש קונפליקטים בלתי פתורים והם לא יסונכרנו:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>התיקיות הבאות שונות באופן מהותי. ודא כי בחרת את התקיות הנכונות לסינכרון.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>התיקיות הבאות שונות באופן מהותי. בבקשה בדוק כי נבחרו התיקיות הנכונות לסחנכרון.</target>
<source>Not enough free disk space available in:</source>
<target>אין מספיק מקום דיסק פנוי ב:</target>
@@ -722,23 +722,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>שגיאה חמורה</target>
-<source>Symlink</source>
-<target>קשור סימבולי</target>
-
<source>Folder</source>
<target>תיקייה</target>
+<source>Symlink</source>
+<target>קשור סימבולי</target>
+
<source>Full path</source>
<target>נתיב מלא</target>
-<source>Name</source>
-<target>שם</target>
-
-<source>Relative folder</source>
-<target>תיקייה יחסית</target>
+<source>Relative path</source>
+<target>נתיב יחסי</target>
-<source>Base folder</source>
-<target>תיקיית בסיס</target>
+<source>Item name</source>
+<target>שם פריט</target>
<source>Size</source>
<target>גודל</target>
@@ -915,7 +912,7 @@ The command is triggered if:
<target>זוג תיקיות:</target>
<source>Main settings:</source>
-<target></target>
+<target>הגדרות ראשיות:</target>
<source>Use local settings:</source>
<target>השתמש בהגדרות מקומיות:</target>
@@ -1084,6 +1081,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>זמן שעבר:</target>
+<source>Bytes:</source>
+<target>בתים:</target>
+
+<source>Items:</source>
+<target>פריטים:</target>
+
<source>Synchronizing...</source>
<target>מסנכרן...</target>
@@ -1249,6 +1252,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>גירסה חדשה של FreeFileSync זמינה:</target>
+<source>Local path not available for %x.</source>
+<target>נתיב מקומי לא זמין עבור %x.</target>
+
<source>Confirm</source>
<target>אשר</target>
@@ -1522,17 +1528,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>הטמע תוכנות חיצוניות. תפריטי המקרו הבאים זמינים:</target>
-<source>- full file or folder name</source>
-<target>- שם מלא של קובץ או תיקייה</target>
+<source>Full file or folder path</source>
+<target>שם מלא של קובץ או נתיב תיקייה</target>
-<source>- folder part only</source>
-<target>- תיקייה בלבד</target>
+<source>Parent folder path</source>
+<target>נתיב תיקיית אב</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- הצד השני מקביל ל %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>העתק מקומי זמני עבור SFTP ואחסון MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>הצד השני המקביל ל %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>פרמטרים עבור צד נגדי</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>להראות שוב את הדיאלוגים והודעות האזהרה המוסתרים?</target>
@@ -1624,6 +1630,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>קבצים</target>
+<source>Name</source>
+<target>שם</target>
+
<source>Items</source>
<target>פריטים</target>
@@ -1640,13 +1649,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync מעודכן לגירסה האחרונה.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>לא יכול למצוא מספר גירסה נוכחית של FreeFileSync באופן מקוון. כנראה שגירסה מעודכנת קיימת. האם לבדוק עכשיו?</target>
<source>&Check</source>
<target>&בדוק</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>בדיקת עקביות נכשלה עבור %x.</target>
<source>Cannot find system function %x.</source>
<target>לא יכול למצוא פונקצית מערכת %x.</target>
@@ -1655,7 +1664,7 @@ This guarantees a consistent state even in case of a serious error.
<target>לא ניתן להרשם לקבלת הודעות מערכת.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>קבצי התקנה פגועים. בבקשה התקן מחדש את FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>לא יכול לרשום הודעות עבור התקן %x.</target>
@@ -1766,7 +1775,7 @@ This guarantees a consistent state even in case of a serious error.
<target>שמור נתונים ל "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target></target>
+<target>רשום את סיומות הקבצים של FreeFileSync.</target>
<source>Create Explorer context menu entries</source>
<target>צור תפריט הקשר בסייר הקבצים</target>
@@ -1793,10 +1802,10 @@ This guarantees a consistent state even in case of a serious error.
<target>תפריט התחל</target>
<source>Registering FreeFileSync file extensions</source>
-<target></target>
+<target>רושם את סיומות הקבצים של FreeFileSync.</target>
<source>Unregistering FreeFileSync file extensions</source>
-<target></target>
+<target>מבטל רישום של סיומות הקבצים של FreeFileSync.</target>
<source>FreeFileSync Configuration</source>
<target>תצורת FreeFileSync</target>
@@ -1817,8 +1826,14 @@ This guarantees a consistent state even in case of a serious error.
<target>תודה עבור תרומתך ותמיכתך!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>ההקצבה היומית של התקנה זו לתורמים של FreeFileSync פקעה.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>האם להוריד את הגירסה הרגילה של FreeFileSync מאתר הבית עכשיו?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>הגירסה הניידת אינה יכולה להיות מותקנת לתיקייה שנבחרה.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>בבקשה בחר התקנה מקומית או בחר תיקייה אחרת להתקנה.</target>
diff --git a/FreeFileSync/Build/Languages/hindi.lng b/FreeFileSync/Build/Languages/hindi.lng
index bdf312f7..41d5717d 100644
--- a/FreeFileSync/Build/Languages/hindi.lng
+++ b/FreeFileSync/Build/Languages/hindi.lng
@@ -59,7 +59,7 @@
<target>कोई अपवाद हुआ</target>
<source>A directory path is expected after %x.</source>
-<target>%x के बाद कोई निर्देशिका पथ अपेक्षित है।</target>
+<target>%x के बाद कोई फ़ोल्डर पथ अपेक्षित है।</target>
<source>Syntax error</source>
<target>वाक्य-विन्यास त्रुटि</target>
@@ -89,7 +89,7 @@
<target>वाक्य-विन्यास:</target>
<source>global config file:</source>
-<target>सार्वत्रिक कॉन्फ़िग फ़ाइल:</target>
+<target>वैश्विक कॉन्फ़िग फ़ाइल:</target>
<source>config files:</source>
<target>कॉन्फ़िग फ़ाइल्स:</target>
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>निम्न फ़ोलडर्स नहीं मिले:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>यदि आप इस त्रुटी को अनदेखा करते हैं तो निर्देशिकाओं को खाली समझा जाएगा। लापता निर्देशिकाएं आवश्यकता नुसार स्वचालित रूप से बनाए जाते हैं।</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>इस त्रुटि को अनदेखा कर दिया जाता है तो फ़ोल्डरों को खाली माना जाएगा। अनुपस्थित फ़ोलडर्स आवश्यकता होने पर स्वचालित रूप से बनाए जाते हैं।</target>
<source>A folder input field is empty.</source>
<target>कोई फ़ोल्डर इनपुट प्रविष्टि खाली है।</target>
@@ -155,34 +155,34 @@
<target>सुरक्षित फ़ाइल प्रतिलिपि</target>
<source>Enabled</source>
-<target></target>
+<target>सक्षम</target>
<source>Disabled</source>
-<target></target>
+<target>अक्षम</target>
<source>Copy locked files</source>
<target>अवरोधित फ़ाइल्स प्रतिलिपित करें</target>
<source>Copy file access permissions</source>
-<target>फ़ाइल अभिगम अनुमतियाँ प्रतिलिपित करें</target>
+<target>फ़ाइल पहुँच अनुमतियाँ प्रतिलिपित करें</target>
<source>File time tolerance</source>
-<target></target>
+<target>फ़ाइल समय टॉलरेंस (छूट)</target>
<source>Folder access timeout</source>
-<target></target>
+<target>फ़ोल्डर पहुँच काल समापन</target>
<source>Run with background priority</source>
-<target></target>
+<target>पृष्ठभूमि प्राथमिकता के साथ चलाएँ</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>सिंक्रनाइज़ेशन दौरान फ़ोल्डेर्स अवरोधित करें</target>
<source>Verify copied files</source>
-<target></target>
+<target>प्रतिलिपित फ़ाइल्स सत्यापित करें</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>गैर-डिफ़ॉल्ट वैश्विक सेटिंग्स प्रयोग करें:</target>
<source>Starting comparison</source>
<target>तुलना शुरू हो रही है</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>त्रुटि कोड %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>%x से कनेक्ट करने में असमर्थ।</target>
<source>
<pluralform>1 byte</pluralform>
@@ -367,13 +367,13 @@ Actual: %y bytes
<target>फ़ोल्डर %x की खोज हो रही है...</target>
<source>Timeout while searching for folder %x.</source>
-<target>फ़ोल्डर %x की खोज करते हुए समय बाह्य हआ।</target>
+<target>फ़ोल्डर %x की खोज करते हुए काल समाप्त हआ।</target>
<source>Cannot get process information.</source>
<target>प्रक्रिया जानकारी प्राप्त करने में असमर्थ।</target>
<source>Waiting while directory is locked:</source>
-<target>प्रतीक्षारत जब कि निर्देशिका अवरोधित है:</target>
+<target>प्रतीक्षारत जब कि फ़ोल्डर अवरोधित है:</target>
<source>Lock owner:</source>
<target>स्वामी अवरोध करें:</target>
@@ -436,10 +436,10 @@ Actual: %y bytes
<target>निर्देशिका ब्राउज़ करें</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>वॉल्यूम शॅडो कॉपी सर्व्हिस अभिगम करने में असमर्थ।</target>
+<target>वॉल्यूम शॅडो प्रतिलिपि सर्व्हिस पहुँच प्राप्त नहीं है।</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>इस सिस्टम में शॅडो प्रतिलिपियाँ बनाने के लिए कृपया FreeFileSync का 64-बिट संस्करण चलाएँ।</target>
<source>Cannot determine volume name for %x.</source>
<target>%x के लिए वॉल्यूम नाम निर्धारण नहीं किया जा सकता।</target>
@@ -624,7 +624,7 @@ The command is triggered if:
<target>डेटा सत्यापन त्रुटि:</target>
<source>Creating a Volume Shadow Copy for %x...</source>
-<target>%x के लिए वॉल्यूम शॅडो कॉपी बनाया जा रहा है...</target>
+<target>%x के लिए वॉल्यूम शॅडो प्रतिलिपि बनाई जा रही है...</target>
<source>Target folder %x already existing.</source>
<target>गंतव्य फ़ोल्डर %x पहले से ही विद्यमान।</target>
@@ -641,8 +641,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>निम्न आइटम्स में हल नहीं किये गए विरोध हैं और वे सिंक्रनाइज़ नहीं होंगे:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>निम्न फ़ोल्डर्स उल्लेखनीय रूप से भिन्न हैं। सुनिश्चित करें की आपने सिंक्रनाइज़ेशन के लिए उचित फ़ोल्डर्स चुने हैं।</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>निम्न फ़ोल्डर्स उल्लेखनीय रूप से भिन्न हैं। कृपया सुनिश्चित करें की सिंक्रनाइज़ेशन के लिए चुने फ़ोल्डर्स उचित हैं।</target>
<source>Not enough free disk space available in:</source>
<target>यहाँ पर्याप्त खाली डिस्क जगह उपलब्ध नहीं:</target>
@@ -722,23 +722,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>गंभीर त्रुटि</target>
-<source>Symlink</source>
-<target>सिमलिंक</target>
-
<source>Folder</source>
<target>फ़ोल्डर</target>
+<source>Symlink</source>
+<target>सिमलिंक</target>
+
<source>Full path</source>
<target>पूरा पथ</target>
-<source>Name</source>
-<target>नाम</target>
-
-<source>Relative folder</source>
-<target>सापेक्ष फ़ोल्डर</target>
+<source>Relative path</source>
+<target>सापेक्ष पथ</target>
-<source>Base folder</source>
-<target>मूल फ़ोल्डर</target>
+<source>Item name</source>
+<target>आइटम नाम</target>
<source>Size</source>
<target>आकार</target>
@@ -915,7 +912,7 @@ The command is triggered if:
<target>फ़ोल्डर जोडा:</target>
<source>Main settings:</source>
-<target></target>
+<target>मुख्य सेटिंग्स:</target>
<source>Use local settings:</source>
<target>स्थानीय सेटिंग्स का उपयोग करें:</target>
@@ -1084,6 +1081,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>बीता समय:</target>
+<source>Bytes:</source>
+<target>बाइट्स:</target>
+
+<source>Items:</source>
+<target>आइटम्स:</target>
+
<source>Synchronizing...</source>
<target>सिंक्रनाइज़ हो रहा है...</target>
@@ -1112,7 +1115,7 @@ The command is triggered if:
<target>पहली त्रुटि पर सिंक्रनाइज़ेशन रोकें</target>
<source>Run minimized</source>
-<target>छोटा (मिनिमाइज़) कर के चलाएं</target>
+<target>छोटा (मिनिमाइज़) कर के चलाएँ</target>
<source>Save log:</source>
<target>लॉग सहेजें:</target>
@@ -1148,7 +1151,7 @@ This guarantees a consistent state even in case of a serious error.
<target>(अनुशंसित)</target>
<source>Copy shared or locked files using the Volume Shadow Copy Service.</source>
-<target>साझा या अवरोधित फ़ाइल्स वॉल्यूम शॅडो कॉपी सर्व्हिस के उपयोग से प्रतिलिपित करें।</target>
+<target>साझा या अवरोधित फ़ाइल्स वॉल्यूम शॅडो प्रतिलिपि सर्व्हिस के उपयोग से प्रतिलिपित करें।</target>
<source>(requires administrator rights)</source>
<target>(प्रबंधक अधिकार आवश्यक)</target>
@@ -1193,7 +1196,7 @@ This guarantees a consistent state even in case of a serious error.
<target>प्रतिक्रिया और सुझावों का स्वागत है</target>
<source>Homepage</source>
-<target>मुख पृष्ठ</target>
+<target>मुखपृष्ठ</target>
<source>Email</source>
<target>ई-मेल</target>
@@ -1249,6 +1252,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>FreeFileSync का नया संस्करण उपलब्ध है:</target>
+<source>Local path not available for %x.</source>
+<target>%x के लिए स्थानीय पथ उपलब्ध नहीं है।</target>
+
<source>Confirm</source>
<target>पुष्टि करें</target>
@@ -1522,17 +1528,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>बाह्य अनुप्रयोगों को प्रसंग मेनू में एकीकृत करें। निम्न मैक्रोज़ उपलब्ध हैं:</target>
-<source>- full file or folder name</source>
-<target>- पूर्ण फ़ाइल या फ़ोल्डर का नाम</target>
+<source>Full file or folder path</source>
+<target>पूर्ण फाइल या फ़ोल्डर पथ</target>
-<source>- folder part only</source>
-<target>- केवल फ़ोल्डर का हिस्सा</target>
+<source>Parent folder path</source>
+<target>पैरेंट फ़ोल्‍डर पथ</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- %item_path% के लिए दूसरी तरफ़ का समकक्ष</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP और MTP संग्रहण के लिए अस्थायी स्थानीय प्रतिलिपि</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- %item_folder% के लिए दूसरी तरफ़ का समकक्ष</target>
+<source>Parameters for opposite side</source>
+<target>दूसरी तरफ़ के पैरामीटर्स</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>छिपाये संवाद बॉक्सेस और चेतावनी संदेश फिर से दिखाएं?</target>
@@ -1624,6 +1630,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>फ़ाइल्स</target>
+<source>Name</source>
+<target>नाम</target>
+
<source>Items</source>
<target>आइटम्स</target>
@@ -1640,13 +1649,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync नवीनतम है।</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>वर्तमान FreeFileSync संस्करण संख्या ऑनलाइन नहीं मिल सकती. नया संस्करण उपलब्ध होने की संभावना है। मैन्युअल रूप से अभी जाँच करें?</target>
<source>&Check</source>
<target>जाँच करें (&C)</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x की संगतता जाँच विफल।</target>
<source>Cannot find system function %x.</source>
<target>सिस्टम फ़ंकशन %x ढूंढ नहीं सकते।</target>
@@ -1655,7 +1664,7 @@ This guarantees a consistent state even in case of a serious error.
<target>सिस्टम संदेशों को प्राप्त करने के लिए पंजीकृत करने में असमर्थ।</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>स्थापना फ़ाइल्स दूषित हैं। कृपया FreeFileSync पुन:-स्थापित करें।</target>
<source>Unable to register device notifications for %x.</source>
<target>%x के लिए डिवाइस सूचनाएँ पंजिकृत करने में असमर्थ।</target>
@@ -1739,7 +1748,7 @@ This guarantees a consistent state even in case of a serious error.
<target>निम्न XML तत्वों को पढा नहीं जा सका:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target>कॉन्फ़िगरेशन फ़ाइल %x अधूरी है। लापता तत्व उनके डिफ़ॉल्ट मानों से सेट होंगे।</target>
+<target>कॉन्फ़िगरेशन फ़ाइल %x अधूरी है। अनुपस्थित तत्व उनके डिफ़ॉल्ट मानों से सेट होंगे।</target>
<source>Internet access failed.</source>
<target>इंटरनेट पहुँच विफल।</target>
@@ -1817,8 +1826,14 @@ This guarantees a consistent state even in case of a serious error.
<target>आपके दान और समर्थन के लिए धन्यवाद!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>यह दाताओं के लिए FreeFileSync इंस्टॉलर अपनी दैनिक स्थापना सीमा तक पहुँचा है।</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>नियमित संस्करण FreeFileSync मुखपृष्ठ से अभी डाउनलोड करें?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>पोर्टेबल संस्करण चयनित फ़ोल्डर में स्थापित नहीं किया जा सकता।</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>स्थापना के लिए कृपया स्थानीय स्थापना प्रकार चयन करें या कोई और फ़ोल्डर चुनें।</target>
diff --git a/FreeFileSync/Build/Languages/hungarian.lng b/FreeFileSync/Build/Languages/hungarian.lng
index 36a2a21b..ea752bf5 100644
--- a/FreeFileSync/Build/Languages/hungarian.lng
+++ b/FreeFileSync/Build/Languages/hungarian.lng
@@ -32,13 +32,13 @@
<target>%x szimbolikus hivatkozás létrehozása</target>
<source>Moving file %x to the recycle bin</source>
-<target>%x fájlt a Lomtárba mozgatja</target>
+<target>%x fájlt a Lomtárba helyezi</target>
<source>Moving folder %x to the recycle bin</source>
-<target>%x könyvtárat a Lomtárba mozgatja</target>
+<target>%x könyvtárat a Lomtárba helyezi</target>
<source>Moving symbolic link %x to the recycle bin</source>
-<target>%x szimbolikus linket a Lomtárba mozgatja</target>
+<target>%x szimbolikus hivatkozást a Lomtárba helyezi</target>
<source>Deleting file %x</source>
<target>%x fájl törlése</target>
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>A következő könyvtárak nem találhatóak:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ha figyelmen kívül ezt a hibajelzést, a könyvtárak üresnek minősülnek. Az hiányzó könyvárak automatikusan jönnek létre ha szükséges.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ha ezt a hibát figyelmen kívül hagyja, a könytárakat üresnek tekinti a program. A hiányzó könyvtárakat automatikusan létrehozza, amikor szükséges.</target>
<source>A folder input field is empty.</source>
<target>A könyvtár beviteli mező üres.</target>
@@ -155,37 +155,37 @@
<target>Hibamentes fájlmásolás</target>
<source>Enabled</source>
-<target></target>
+<target>Engedélyezett</target>
<source>Disabled</source>
-<target></target>
+<target>Letiltott</target>
<source>Copy locked files</source>
-<target>Másolja a zárolt fájlokat</target>
+<target>Zárolt fájlok másolása</target>
<source>Copy file access permissions</source>
-<target>Másolja a fájl hozzáférési jogosultságokat</target>
+<target>A fájl hozzáférési jogosultságok másolása</target>
<source>File time tolerance</source>
-<target></target>
+<target>Fájlok időkülönbségének tűréshatára</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Könyvtár hozzáférés időtúllépés</target>
<source>Run with background priority</source>
-<target></target>
+<target>Futtatás háttér prioritással</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Könyvtárak zárolása szinkronizálás idejére</target>
<source>Verify copied files</source>
-<target></target>
+<target>Másolt fájlok ellenőrzése</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Nem az alap általános beállítások használata:</target>
<source>Starting comparison</source>
-<target>Kezdi az összehasonlítást</target>
+<target>Összehasonlítás megkezdése</target>
<source>Calculating sync directions...</source>
<target>Szinkronizálási irányok számítása...</target>
@@ -254,7 +254,7 @@
<target>A művelet nem támogatott különböző alapkönyvtártípusok esetén.</target>
<source>Cannot write file %x.</source>
-<target>%x fájl írása nem sikerült.</target>
+<target>%x fájl írása sikertelen.</target>
<source>
Unexpected size of data stream.
@@ -268,55 +268,55 @@ Jelenlegi: %y bájt
</target>
<source>Cannot copy symbolic link %x to %y.</source>
-<target>%x szimbolikus linket nem tudja %y-ba másolni.</target>
+<target>%x szimbolikus hivatkozás nem másolható %y-ba.</target>
<source>Cannot move file %x to %y.</source>
-<target>Nem sikerült %x fájl mozgatása %y fájlba.</target>
+<target>%x fájl nem mozgatható %y-ba.</target>
<source>Cannot enumerate directory %x.</source>
-<target>%x könyvtárat nem sikerült besorolni.</target>
+<target>%x könyvtár nem besorolható.</target>
<source>Cannot read file attributes of %x.</source>
-<target>%x fájl attribútumainak olvasása nem sikerült.</target>
+<target>%x fájl attribútumai nem olvashatók.</target>
<source>Cannot find %x.</source>
<target>%x nem található.</target>
<source>Cannot open file %x.</source>
-<target>%x fájl nem nyitható.</target>
+<target>%x fájl nem nyitható meg.</target>
<source>Cannot read file %x.</source>
-<target>%x fájl olvasása nem sikerült.</target>
+<target>%x fájl nem olvasható.</target>
<source>Cannot find device %x.</source>
<target>%x eszköz nem található.</target>
<source>Cannot create directory %x.</source>
-<target>%x könyvtár létrehozása nem sikerült.</target>
+<target>%x könyvtár nem hozható létre.</target>
<source>Cannot delete directory %x.</source>
-<target>%x könyvtár törlése nem sikerült.</target>
+<target>%x könyvtár nem törölhető.</target>
<source>Cannot delete file %x.</source>
-<target>%x fájl törlése nem sikerült.</target>
+<target>%x fájl nem törölhető.</target>
<source>Cannot write modification time of %x.</source>
-<target>%x esetében nem sikerült felírni az utolsó módosítás dátumát.</target>
+<target>%x módosításának időpontja nem rögzíthető.</target>
<source>Cannot determine final path for %x.</source>
-<target>%x számára nem lehet a végső útvonalat meghatározni.</target>
+<target>%x számára a végső útvonal nem határozható meg.</target>
<source>Cannot resolve symbolic link %x.</source>
-<target>%x szimbolikus hivatkozás feloldása nem sikerült.</target>
+<target>%x szimbolikus hivatkozás nem oldható fel.</target>
<source>Cannot open directory %x.</source>
-<target>%x könyvtár megnyitása nem sikerült.</target>
+<target>%x könyvtár nem nyitható meg.</target>
<source>Cannot determine free disk space for %x.</source>
-<target>%x-en nem lehet a szabad tárterületet meghatározni.</target>
+<target>%x-en nem határozható meg a szabad tárterület.</target>
<source>Unable to move %x to the recycle bin.</source>
-<target>%x nem helyezhető a Lomtárba.</target>
+<target>%x nem helyezhető Lomtárba.</target>
<source>Incorrect command line:</source>
<target>Hibás parancssor:</target>
@@ -325,7 +325,7 @@ Jelenlegi: %y bájt
<target>Hibakód %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Nem képes %x-hez kapcsolódni.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -346,7 +346,7 @@ Jelenlegi: %y bájt
<target>%x GB</target>
<source>Cannot load file %x.</source>
-<target>%x fájl betöltése nem sikerült.</target>
+<target>%x fájl betöltése sikertelen.</target>
<source>Database file %x is incompatible.</source>
<target>%x adatbázisfájl inkompatibilis: .</target>
@@ -370,7 +370,7 @@ Jelenlegi: %y bájt
<target>Időtúllépés a %x könyvtár keresése folyamán.</target>
<source>Cannot get process information.</source>
-<target>Nem sikerült lekérdezni processz-információkat.</target>
+<target>Nem sikerült lekérdezni a processz-információkat.</target>
<source>Waiting while directory is locked:</source>
<target>Várakozás amíg a könyvtár zárolt:</target>
@@ -406,7 +406,7 @@ Jelenlegi: %y bájt
<target>Hiba történt a feldolgozás közben: %x fájl, %y sor, %z oszlop.</target>
<source>Cannot set directory lock for %x.</source>
-<target>Nem sikerült zárolni a(z) %x könyvtárat.</target>
+<target>%x könyvtár zárolása sikertelen.</target>
<source>
<pluralform>1 thread</pluralform>
@@ -439,7 +439,7 @@ Jelenlegi: %y bájt
<target>Nem elérhető a Kötet Árnyék-másolat szolgáltatás.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Árnyék másolatok készítéséhez ezen a rendszeren futtassa a FreeFileSync 64 bites verzióját.</target>
<source>Cannot determine volume name for %x.</source>
<target>%x számára nem lehet a kötet-nevet meghatározni.</target>
@@ -606,7 +606,7 @@ A parancs végrehajtódik, ha:
<target>%x fájl frissítése</target>
<source>Updating symbolic link %x</source>
-<target>%x szimbolikus link frissítése</target>
+<target>%x szimbolikus hivatkozás frissítése</target>
<source>Verifying file %x</source>
<target>%x fájl ellenőrzése</target>
@@ -615,7 +615,7 @@ A parancs végrehajtódik, ha:
<target>%x attribútumainak frissítése</target>
<source>Cannot write file attributes of %x.</source>
-<target>Nem sikerült %x fájl attribútumainak írása.</target>
+<target>%x fájl attribútumainak írása nem sikerült.</target>
<source>%x and %y have different content.</source>
<target>%x és %y tartalma különböző.</target>
@@ -624,16 +624,16 @@ A parancs végrehajtódik, ha:
<target>Adat ellenőrzési hiba:</target>
<source>Creating a Volume Shadow Copy for %x...</source>
-<target>Árnyékmásolat-kötetet készít %x számára...</target>
+<target>%x számára árnyékmásolat-kötetet készítése...</target>
<source>Target folder %x already existing.</source>
<target>%x célkönyvtár már létezik.</target>
<source>Target folder input field must not be empty.</source>
-<target>A célkönyvtárat meghatározó beviteli mező nem lehet üres.</target>
+<target>A célkönyvtár beviteli mezője nem lehet üres.</target>
<source>Source folder %x not found.</source>
-<target>%x forráskönyvtár nem található .</target>
+<target>%x forráskönyvtár nem található.</target>
<source>Please enter a target folder for versioning.</source>
<target>Adja meg a célkönyvtárat a verziókövetéshez.</target>
@@ -641,8 +641,8 @@ A parancs végrehajtódik, ha:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>A következő tételek feloldatlan ütközést tartalmaznak, így nem lesznek szinkronizálva:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Az érintett könyvtárak lényegileg különbözőek. Győződjön meg arról, hogy a megfelelő könyvtárakat választotta ki szinkronizálásra.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Az érintett könyvtárak lényegileg különböznek. Kérem ellenőrizze, a megfelelő könyvtárakat választotta-e ki szinkronizálásra.</target>
<source>Not enough free disk space available in:</source>
<target>Nincs elég szabad lemezterület:</target>
@@ -654,7 +654,7 @@ A parancs végrehajtódik, ha:
<target>Szabad:</target>
<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target>Több könyvtár-pár írna egy közös alkönyvtárba. Ellenőrizze a konfigurációját.</target>
+<target>Több könyvtár-pár írna egy közös alkönyvtárba. Vizsgálja felül a konfigurációját.</target>
<source>Synchronizing folder pair:</source>
<target>A szinkronizált könyvtár-pár:</target>
@@ -672,10 +672,10 @@ A parancs végrehajtódik, ha:
<target>Leállítva</target>
<source>Synchronization completed with errors</source>
-<target>A szinkronizálás befejeződött, de történtek hibák</target>
+<target>A szinkronizálás hibákkal fejeződött be</target>
<source>Synchronization completed with warnings</source>
-<target>A szinkronizálás befejeződött, de figyelmeztetésekkel</target>
+<target>A szinkronizálás figyelmeztetések mellett fejeződött be.</target>
<source>Warning</source>
<target>Figyelmeztetés</target>
@@ -690,7 +690,7 @@ A parancs végrehajtódik, ha:
<target>Régi log fájlok törlése...</target>
<source>You can switch to FreeFileSync's main window to resolve this issue.</source>
-<target>E jelenség megoldásához kapcsoljon át a FreeFileSync fő ablakába.</target>
+<target>E jelenség megoldásához kapcsoljon át a FreeFileSync fő ablakába.</target>
<source>&Don't show this warning again</source>
<target>&Ne mutassa ismételten ezt a figyelmeztetést</target>
@@ -722,23 +722,20 @@ A parancs végrehajtódik, ha:
<source>Serious Error</source>
<target>Komoly hiba</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Könyvtár</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Teljes elérési útvonal</target>
-<source>Name</source>
-<target>Név</target>
-
-<source>Relative folder</source>
-<target>Relatív könyvtár</target>
+<source>Relative path</source>
+<target>Relatív elérési útvonal</target>
-<source>Base folder</source>
-<target>Alapkönyvtár</target>
+<source>Item name</source>
+<target>Tétel neve</target>
<source>Size</source>
<target>Méret</target>
@@ -915,7 +912,7 @@ A parancs végrehajtódik, ha:
<target>Könyvtár-pár:</target>
<source>Main settings:</source>
-<target></target>
+<target>Fő beállítások:</target>
<source>Use local settings:</source>
<target>Használja a helyi beállításokat:</target>
@@ -924,10 +921,10 @@ A parancs végrehajtódik, ha:
<target>Válasszon egy változatot:</target>
<source>Include &symbolic links:</source>
-<target>Tartalmazza a &szimbolikus linkeket:</target>
+<target>Tartalmazza a &szimbolikus hivatkozásokat:</target>
<source>&Follow</source>
-<target>&Folytassa</target>
+<target>&Folytat</target>
<source>&Direct</source>
<target>&Direkt</target>
@@ -1084,6 +1081,12 @@ A parancs végrehajtódik, ha:
<source>Time elapsed:</source>
<target>Eltelt idő:</target>
+<source>Bytes:</source>
+<target>Bájt:</target>
+
+<source>Items:</source>
+<target>Tétel:</target>
+
<source>Synchronizing...</source>
<target>Szinkronizálás folyamatban...</target>
@@ -1249,6 +1252,9 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>A new version of FreeFileSync is available:</source>
<target>Elérhető a FreeFileSync új verziója:</target>
+<source>Local path not available for %x.</source>
+<target>%x-hez a helyi útvonal nem érhető el.</target>
+
<source>Confirm</source>
<target>Jóváhagy</target>
@@ -1522,17 +1528,17 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integráljon a helyi menübe külső alkalmazásokat. A következő makrók érhetők el:</target>
-<source>- full file or folder name</source>
-<target>- teljes fájl- vagy könyvtárnév</target>
+<source>Full file or folder path</source>
+<target>Teljes fájl vagy könyvtár elérési útvonal</target>
-<source>- folder part only</source>
-<target>- csak a könyvtár része</target>
+<source>Parent folder path</source>
+<target>Szülő könyvtár elérési útvonala</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- A másik oldali megfelelőjét a következő fájlba: %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Ideiglenes helyi másolat SFTP és MTP tárolóhoz</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- A másik oldali megfelelőjét a következő könyvtárba: %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Paraméterek az ellenkező oldalhoz</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Mutassa újra a rejtett párbeszédablakokat és figyelmeztetéseket</target>
@@ -1624,6 +1630,9 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Files</source>
<target>Fájlok</target>
+<source>Name</source>
+<target>Név</target>
+
<source>Items</source>
<target>Elemek</target>
@@ -1640,13 +1649,13 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<target>A FreeFileSync naprakész.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Nem elérhető online a FreeFileSync jelenlegi verziószáma. Egy újabb verzió valószínűleg elérhető. Ellenőrizzem most manuálisan?</target>
<source>&Check</source>
<target>&Ellenőriz</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x konzisztencia ellenőrzése sikertelen.</target>
<source>Cannot find system function %x.</source>
<target>%x rendszerfunkció nem elérhető.</target>
@@ -1655,7 +1664,7 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<target>Nem tud regisztrálni hogy megkapja a rendszerüzeneteket.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>A telepítő fájlok sérültek. Installálja újra a FreeFileSync-et.</target>
<source>Unable to register device notifications for %x.</source>
<target>%x-hez nem lehet eszköz-értesítéseket regisztrálni.</target>
@@ -1667,28 +1676,28 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<target>A fájlt egy másik processz zárolta:</target>
<source>Cannot read security context of %x.</source>
-<target>Nem sikerült a biztonsági környezet olvasása a következőnél: %x.</target>
+<target>%x biztonsági környezete nem olvasható.</target>
<source>Cannot write security context of %x.</source>
-<target>%x esetében nem sikerült a biztonsági környezet írása.</target>
+<target>%x biztonsági környezetét nem sikerült felírni.</target>
<source>Cannot read permissions of %x.</source>
-<target>%x esetében nem sikerült a jogosultságok olvasása.</target>
+<target>%x jogosultságai nem olvashatók.</target>
<source>Cannot copy permissions from %x to %y.</source>
-<target>Nem lehet az jogosultságokat %x-ből %y-ba másolni.</target>
+<target>A jogosultságok nem másolhatók %x-ből %y-ba.</target>
<source>%x is not a regular directory name.</source>
<target>%x nem megfelelő könyvtárnév.</target>
<source>Cannot copy file %x to %y.</source>
-<target>%x fájl másolása a(z) %y fájlba nem sikerült.</target>
+<target>%x fájl nem másolható %y-ba.</target>
<source>Cannot copy attributes from %x to %y.</source>
-<target>Nem lehet az attribútumokat %x-ből %y-ba másolni.</target>
+<target>Az attribútumok nem másolhatók %x-ből %y-ba.</target>
<source>Type of item %x is not supported:</source>
-<target>A(z) %x elem típusa nem támogatott:</target>
+<target>%x elem típusa nem támogatott:</target>
<source>%x TB</source>
<target>%x TB</target>
@@ -1724,25 +1733,25 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
</target>
<source>Cannot set privilege %x.</source>
-<target>A következő privilégium beállítása sikertelen: %x.</target>
+<target>%x privilégium nem állítható be.</target>
<source>Unable to suspend system sleep mode.</source>
-<target>Nem tudta felfüggeszteni a rendszer alvó üzemmódját.</target>
+<target>Nem sikerült felfüggeszteni a rendszer alvó üzemmódját.</target>
<source>Cannot change process I/O priorities.</source>
<target>Nem sikerült a folyamatok I/O prioritását megváltoztatni.</target>
<source>Checking recycle bin failed for folder %x.</source>
-<target>A lomtár ellenőrzése meghiúsult a(z) %x könyvtár esetében.</target>
+<target>%x könyvtár vonatkozásában a lomtár ellenőrzése meghiúsult.</target>
<source>The following XML elements could not be read:</source>
-<target>A következő XML elemeket nem lehet olvasni:</target>
+<target>A következő XML elemek nem olvashatók:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target>A %x konfigurációs fájl nem teljes. A hiányzó elemeket az alapértelmezés szerinti értékekkel helyettesíti.</target>
+<target>%x konfigurációs fájl nem teljes. A hiányzó elemeket az alapértelmezés szerinti értékekkel helyettesíti.</target>
<source>Internet access failed.</source>
-<target>Nem sikerült az internet hozzáférés.</target>
+<target>Meghiúsult az internet hozzáférés.</target>
<source>Prepare installation</source>
<target>Telepítés előkészítése</target>
@@ -1817,8 +1826,14 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<target>Köszönöm az adományt és támogatást!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ez az adományozók számára biztosított FreeFileSync telepítő elérte a napi telepítési határát.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Letöltsem most az általános verziót a FreeFileSync honlapjáról?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>A hordozható verziót nem lehet a kiválasztott könyvtárba telepíteni.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Válassza a helyi telepítési módot vagy válasszon másik könytárat a telepítéshez.</target>
diff --git a/FreeFileSync/Build/Languages/italian.lng b/FreeFileSync/Build/Languages/italian.lng
index 7a306674..21d70729 100644
--- a/FreeFileSync/Build/Languages/italian.lng
+++ b/FreeFileSync/Build/Languages/italian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Impossibile trovare le seguenti cartelle:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Se si ignora questo errore le cartelle saranno considerate vuote. Le cartelle mancanti vengono create automaticamente quando necessario.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se questo errore viene ignorato le cartelle saranno considerate vuote. Cartelle mancanti vengono create automaticamente quando necessario.</target>
<source>A folder input field is empty.</source>
<target>Un campo di input cartella è vuoto.</target>
@@ -155,10 +155,10 @@
<target>Copia file a prova di errore</target>
<source>Enabled</source>
-<target></target>
+<target>Abilitato</target>
<source>Disabled</source>
-<target></target>
+<target>Disabilitato</target>
<source>Copy locked files</source>
<target>Copia file bloccati</target>
@@ -167,22 +167,22 @@
<target>Copia permessi di accesso file</target>
<source>File time tolerance</source>
-<target></target>
+<target>File tolleranza temporale</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Timeout di accesso alle cartelle</target>
<source>Run with background priority</source>
-<target></target>
+<target>Eseguire con priorità in background</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Blocco delle directory durante la sincronizzazione</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verificare i file copiati</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Utilizzo delle impostazioni globali non predefinite:</target>
<source>Starting comparison</source>
<target>Inizio confronto</target>
@@ -325,7 +325,7 @@ Attuale: %y byte
<target>Codice Errore %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Impossibile connettersi a %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Attuale: %y byte
<target>Impossibile accedere al Volume Shadow Copy Service.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Si prega di eseguire la versione a 64 bit di FreeFileSync per creare copie shadow su questo sistema.</target>
<source>Cannot determine volume name for %x.</source>
<target>Impossibile determinare nome del volume per %x.</target>
@@ -641,8 +641,8 @@ Il comando è attivato se:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>I seguenti oggetti hanno conflitti irrisolti e non saranno sincronizzati:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Le seguenti cartelle sono significativamente differenti. Assicurarsi di aver selezionato le cartelle corrette per la sincronizzazione.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Le seguenti cartelle sono significativamente differenti. Si prega di controllare che sono selezionate le cartelle corrette per la sincronizzazione.</target>
<source>Not enough free disk space available in:</source>
<target>Spazio libero su disco insufficiente in:</target>
@@ -722,23 +722,20 @@ Il comando è attivato se:
<source>Serious Error</source>
<target>Errore Grave</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Cartella</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Percorso completo</target>
-<source>Name</source>
-<target>Nome</target>
-
-<source>Relative folder</source>
-<target>Cartella relativa</target>
+<source>Relative path</source>
+<target>Percorso relativo</target>
-<source>Base folder</source>
-<target>Cartella di partenza</target>
+<source>Item name</source>
+<target>Nome dell'elemento</target>
<source>Size</source>
<target>Dimensione</target>
@@ -915,7 +912,7 @@ Il comando è attivato se:
<target>Coppia di cartelle:</target>
<source>Main settings:</source>
-<target></target>
+<target>Impostazioni principali:</target>
<source>Use local settings:</source>
<target>Utilizza impostazioni locali:</target>
@@ -1084,6 +1081,12 @@ Il comando è attivato se:
<source>Time elapsed:</source>
<target>Tempo trascorso:</target>
+<source>Bytes:</source>
+<target>Byte:</target>
+
+<source>Items:</source>
+<target>Elementi:</target>
+
<source>Synchronizing...</source>
<target>Sincronizzazione...</target>
@@ -1249,6 +1252,9 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>A new version of FreeFileSync is available:</source>
<target>E' disponibile una nuova versione di FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Percorso locale non disponibile per %x.</target>
+
<source>Confirm</source>
<target>Confermare</target>
@@ -1522,17 +1528,17 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integra applicazioni esterne nel menu contestuale. Sono disponibili le seguenti macro:</target>
-<source>- full file or folder name</source>
-<target>- nome completo file o cartella</target>
+<source>Full file or folder path</source>
+<target>File o percorso della cartella completo></target>
-<source>- folder part only</source>
-<target>- solo porzione di cartella</target>
+<source>Parent folder path</source>
+<target>Percorso cartella genitore</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Omologo dell'altro lato a %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Copia locale temporanea per memorizzazione SFTP e MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Omologo dell'altro lato a %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametri per lato opposto</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Mostra di nuovo dialoghi nascosti e messaggi di avviso?</target>
@@ -1624,6 +1630,9 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Files</source>
<target>File</target>
+<source>Name</source>
+<target>Nome</target>
+
<source>Items</source>
<target>Oggetti</target>
@@ -1640,13 +1649,13 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<target>FreeFileSync è aggiornato.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Impossibile trovare il numero della versione corrente di FreeFileSync on-line. Una versione più recente è probabilmente disponibile. Controllare manualmente ora?</target>
<source>&Check</source>
<target>&Controllare</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Verifica della coerenza non riuscita per %x.</target>
<source>Cannot find system function %x.</source>
<target>Impossibile trovare la funzione di sistema %x.</target>
@@ -1655,7 +1664,7 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<target>Impossibile registrarsi per ricevere i messaggi di sistema.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>I file di installazione sono corrotti. Si prega di reinstallare FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Impossibile registrare le notifiche di dispositivo per %x.</target>
@@ -1817,8 +1826,14 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<target>Grazie per la vostra donazione e il supporto!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Questo installatore di FreeFileSync per donatori ha raggiunto il suo limite giornaliero di installazioni.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Scarica la versione regolare dalla homepage di FreeFileSync ora?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Non è possibile installare nella cartella selezionata la versione portatile.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Scegliere il tipo di installazione locale o selezionare una cartella diversa per l'installazione.</target>
diff --git a/FreeFileSync/Build/Languages/japanese.lng b/FreeFileSync/Build/Languages/japanese.lng
index 11bcc34f..27e2cb46 100644
--- a/FreeFileSync/Build/Languages/japanese.lng
+++ b/FreeFileSync/Build/Languages/japanese.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>以下のフォルダがみつかりません:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>このエラーを無視した場合、空のフォルダが考慮され、必要に応じて不足しているフォルダが自動的に生成されます。</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>このエラーを無視した場合、空のフォルダが考慮され、必要に応じて不足しているフォルダが自動的に生成されます.</target>
<source>A folder input field is empty.</source>
<target>フォルダ入力欄が空白です.</target>
@@ -155,10 +155,10 @@
<target>安全なファイルコピーを実施</target>
<source>Enabled</source>
-<target></target>
+<target>有効</target>
<source>Disabled</source>
-<target></target>
+<target>無効</target>
<source>Copy locked files</source>
<target>ロックされたファイルをコピーする</target>
@@ -167,22 +167,22 @@
<target>ファイルのアクセスパーミッションをコピーする</target>
<source>File time tolerance</source>
-<target></target>
+<target>ファイル時間の許容範囲</target>
<source>Folder access timeout</source>
-<target></target>
+<target>フォルダ アクセスのタイムアウト</target>
<source>Run with background priority</source>
-<target></target>
+<target>優先度バックグラウンドで実行</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>同期処理中はディレクトリをロック</target>
<source>Verify copied files</source>
-<target></target>
+<target>コピーしたファイルを検証</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>非デフォルトのグローバル設定を使用:</target>
<source>Starting comparison</source>
<target>比較処理を開始中</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>エラーコード %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>%x に接続できません.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -436,7 +436,7 @@ Actual: %y bytes
<target>ボリュームシャドウコピーサービスにアクセス出来ません.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>現システムでシャドゥ コピーを作成するには 64-bit 版の FreeFileSync を使用してください.</target>
<source>Cannot determine volume name for %x.</source>
<target>%x のボリューム名が決定されていません.</target>
@@ -638,8 +638,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>以下の項目は、未解決の競合が存在するため同期処理を実行できませんでした:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>以下のフォルダは内容が大幅に異なっています。同期フォルダの設定に誤りがないかどうかをご確認ください.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>以下ののフォルダは内容が大幅に異なっています。同期フォルダの設定に誤りがないかどうかをご確認ください.</target>
<source>Not enough free disk space available in:</source>
<target>利用可能なディスク空き容量が足りません:</target>
@@ -718,23 +718,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>重大なエラー</target>
-<source>Symlink</source>
-<target>Symリンク</target>
-
<source>Folder</source>
<target>フォルダ</target>
+<source>Symlink</source>
+<target>Symリンク</target>
+
<source>Full path</source>
<target>フルパス</target>
-<source>Name</source>
-<target>名前</target>
-
-<source>Relative folder</source>
-<target>相対フォルダ</target>
+<source>Relative path</source>
+<target>相対パス</target>
-<source>Base folder</source>
-<target>基準フォルダ</target>
+<source>Item name</source>
+<target>項目名</target>
<source>Size</source>
<target>サイズ</target>
@@ -911,7 +908,7 @@ The command is triggered if:
<target>フォルダ ペア:</target>
<source>Main settings:</source>
-<target></target>
+<target>メイン設定:</target>
<source>Use local settings:</source>
<target>ローカル設定を使用:</target>
@@ -1080,6 +1077,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>経過時間:</target>
+<source>Bytes:</source>
+<target>バイト:</target>
+
+<source>Items:</source>
+<target>項目:</target>
+
<source>Synchronizing...</source>
<target>同期処理中...</target>
@@ -1245,6 +1248,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>FreeFileSync の新しいバージョンが利用できます:</target>
+<source>Local path not available for %x.</source>
+<target>利用できないローカスパス %x.</target>
+
<source>Confirm</source>
<target>確認</target>
@@ -1511,17 +1517,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>外部のアプリケーションをコンテキストメニューに統合、以下のマクロが利用できます:</target>
-<source>- full file or folder name</source>
-<target>- ファイル、フォルダの完全な名前</target>
+<source>Full file or folder path</source>
+<target>ファイル、フォルダの完全な名前</target>
-<source>- folder part only</source>
-<target>- フォルダ部分のみ</target>
+<source>Parent folder path</source>
+<target>親フォルダのパス</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- %item_path% の反対側の対象</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP、MTPストレージ用の一時ローカルコピー</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- %item_folder% の反対側の対象</target>
+<source>Parameters for opposite side</source>
+<target>反対側のパラメータ</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>非表示のダイアログと警告を再表示しますか?</target>
@@ -1613,6 +1619,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>ファイル</target>
+<source>Name</source>
+<target>名前</target>
+
<source>Items</source>
<target>項目</target>
@@ -1629,13 +1638,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync は最新です.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>FreeFileSync のバージョン確認はできませんでしたが、おそらく利用可能な更新があります、今手動で確認しますか?</target>
<source>&Check</source>
<target>チェック(&C)</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x の整合性チェックに失敗.</target>
<source>Cannot find system function %x.</source>
<target>システム関数 %x がみつかりません.</target>
@@ -1644,7 +1653,7 @@ This guarantees a consistent state even in case of a serious error.
<target>システム受信メッセージに登録できません.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>ファイルが破損しています、FreeFileSync を再インストールしてください.</target>
<source>Unable to register device notifications for %x.</source>
<target>%x のデバイス通知を登録できません.</target>
@@ -1752,7 +1761,7 @@ This guarantees a consistent state even in case of a serious error.
<target>設定の保存先 "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target></target>
+<target>FreeFileSync 拡張子の関連付け</target>
<source>Create Explorer context menu entries</source>
<target>エクスプローラのメニュー項目に統合</target>
@@ -1803,8 +1812,14 @@ This guarantees a consistent state even in case of a serious error.
<target>あなたの寄付と支援に感謝します!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>この FreeFileSync インストーラは日付の制限に達しています.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>FreeFileSync の標準版を今ホームページからダウンロードしますか?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>選択したフォルダにはポータブル版をインストールできません.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>ローカル インストールを選択するか、別のインストール先を選択してください.</target>
diff --git a/FreeFileSync/Build/Languages/korean.lng b/FreeFileSync/Build/Languages/korean.lng
index 0da38541..1ef3b60f 100644
--- a/FreeFileSync/Build/Languages/korean.lng
+++ b/FreeFileSync/Build/Languages/korean.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>다음 폴더를 찾을 수 없습니다:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>이 오류를 무시하면 폴더가 비어 있는 것으로 간주됩니다. 필요한 경우 누락 된 폴더가 자동으로 생성됩니다.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>이 오류를 무시하면 폴더는 비어 있는 것으로 간주됩니다. 없는 폴더는 필요한 경우 자동 생성됩니다.</target>
<source>A folder input field is empty.</source>
<target>폴더 입력 필드 하나가 비어 있습니다.</target>
@@ -155,10 +155,10 @@
<target>실패 - 안전 파일 복사</target>
<source>Enabled</source>
-<target></target>
+<target>활성화</target>
<source>Disabled</source>
-<target></target>
+<target>비활성화</target>
<source>Copy locked files</source>
<target>락 걸린 파일 복사</target>
@@ -167,22 +167,22 @@
<target>파일 접근 권한 복사</target>
<source>File time tolerance</source>
-<target></target>
+<target>파일 시간 허용</target>
<source>Folder access timeout</source>
-<target></target>
+<target>폴더 접근 제한</target>
<source>Run with background priority</source>
-<target></target>
+<target>배경 우선 순위로 실행</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>동기화 중 디렉토리 잠금</target>
<source>Verify copied files</source>
-<target></target>
+<target>복사된 파일 확인</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>기본이 아닌 전역설정 사용:</target>
<source>Starting comparison</source>
<target>비교 시작</target>
@@ -273,6 +273,12 @@ Actual: %y bytes
<source>Cannot move file %x to %y.</source>
<target>파일 %x을(를) %y(으)로 이동할 수 없습니다.</target>
+<source>Unable to connect to %x.</source>
+<target>%x에 연결할 수 없습니다.</target>
+
+<source>Cannot open directory %x.</source>
+<target>디렉토리 %x을(를) 열 수 없습니다.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>디렉토리 %x을(를) 열거할 수 없습니다.</target>
@@ -309,9 +315,6 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>심볼릭 링크 %x을(를) 해결할 수 없습니다.</target>
-<source>Cannot open directory %x.</source>
-<target>디렉토리 %x을(를) 열 수 없습니다.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>%x에 대한 사용 가능한 디스크 공간을 확인할 수 없습니다.</target>
@@ -321,12 +324,6 @@ Actual: %y bytes
<source>Incorrect command line:</source>
<target>부정확한 명령줄:</target>
-<source>Error Code %x:</source>
-<target>오류 코드 %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -436,7 +433,7 @@ Actual: %y bytes
<target>Volume Shadow Copy Service에 접근할 수 없습니다.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>본 운영체제에서의 Shadow Copy 생성은 FreeFileSync 64-비트 버전을 사용하시기 바랍니다.</target>
<source>Cannot determine volume name for %x.</source>
<target>%x 에 대한 볼륨 이름을 결정할 수 없습니다.</target>
@@ -638,7 +635,7 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>아래의 항목들은 해결치 못 한 충돌로 인해 동기화할 수 없습니다:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
<target>다음 폴더들은 서로 간의 차이가 상당합니다. 동기화를 위해 올바른 폴더들이 매치되었는지 확인해 보십시오.</target>
<source>Not enough free disk space available in:</source>
@@ -718,23 +715,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>심각한 오류</target>
-<source>Symlink</source>
-<target>심링크</target>
-
<source>Folder</source>
<target>폴더</target>
+<source>Symlink</source>
+<target>심링크</target>
+
<source>Full path</source>
<target>전체 경로</target>
-<source>Name</source>
-<target>이름</target>
+<source>Relative path</source>
+<target>대상 경로</target>
-<source>Relative folder</source>
-<target>대상 폴더</target>
-
-<source>Base folder</source>
-<target>기본 폴더</target>
+<source>Item name</source>
+<target>항목 이름</target>
<source>Size</source>
<target>크기</target>
@@ -911,7 +905,7 @@ The command is triggered if:
<target>폴더 페어:</target>
<source>Main settings:</source>
-<target></target>
+<target>주요 설정:</target>
<source>Use local settings:</source>
<target>로컬 설정 사용:</target>
@@ -1080,6 +1074,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>경과 시간:</target>
+<source>Bytes:</source>
+<target>바이트:</target>
+
+<source>Items:</source>
+<target>항목:</target>
+
<source>Synchronizing...</source>
<target>동기화 작업 중...</target>
@@ -1245,6 +1245,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>FreeFileSync 신규 버전이 나왔습니다:</target>
+<source>Local path not available for %x.</source>
+<target>%x에 대한 로컬 경로 사용 불가.</target>
+
<source>Confirm</source>
<target>확인</target>
@@ -1511,17 +1514,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>외부 응용 프로그램을 Context Menu에 통합. 다음 매크로가 사용 가능합니다:</target>
-<source>- full file or folder name</source>
-<target>- 전체 파일 또는 폴더 이름</target>
+<source>Full file or folder path</source>
+<target>전체 파일 또는 폴더 경로</target>
-<source>- folder part only</source>
-<target>- 폴더 부분만</target>
+<source>Parent folder path</source>
+<target>상위 폴더 경로</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>% 항목_경로 %의 반대편 대응부(카운터파트)</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP 및 MTP 저장을 위한 임시 로컬 복사</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>% 항목_폴더 %의 반대편 대응부(카운터파트)</target>
+<source>Parameters for opposite side</source>
+<target>반대 측에 대한 매개 변수</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>숨겨진 모든 대화창 및 경고 메세지를 다시 보시겠습니까?</target>
@@ -1613,6 +1616,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>파일</target>
+<source>Name</source>
+<target>이름</target>
+
<source>Items</source>
<target>항목</target>
@@ -1629,13 +1635,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync는 현재 최신버전 상태입니다.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>현재 사용 중인 FreeFileSync 버전 번호를 온라인에서 찾을 수 없습니다. 새로운 버전이 있을 수 있으니 수동으로 확인해 보시겠습니까?</target>
<source>&Check</source>
<target>체크(&C)</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x에 대한 일관성 검사 실패.</target>
<source>Cannot find system function %x.</source>
<target>시스템 함수 %x을(를) 찾을 수 없습니다.</target>
@@ -1644,7 +1650,7 @@ This guarantees a consistent state even in case of a serious error.
<target>시스템 메시지 수신을 위한 등록을 할 수 없습니다.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>설치 파일이 손상됩니다. FreeFileSync를 다시 설치하십시오.</target>
<source>Unable to register device notifications for %x.</source>
<target>%x에 대한 장치 알림 등록을 할 수 없습니다.</target>
@@ -1718,6 +1724,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot change process I/O priorities.</source>
<target>프로세스 I/O 우선순위 변경을 할 수 없습니다.</target>
+<source>Error Code %x:</source>
+<target>오류 코드 %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>폴더 %x에 관한 휴지통 실패 확인 중.</target>
@@ -1803,8 +1812,14 @@ This guarantees a consistent state even in case of a serious error.
<target>귀하의 기부와 지원에 감사드립니다!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>기부자용 FreeFileSync 인스톨러가 1일 설치한도에 도달했습니다.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>지금 FreeFileSync 홈페이지에서 일반 버전을 다운로드 해 보시겠습니까?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>휴대용 버전은 선택한 폴더에 설치할 수 없습니다.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>로컬 설치 유형을 선택하거나 설치할 다른 폴더를 선택하십시오.</target>
diff --git a/FreeFileSync/Build/Languages/lithuanian.lng b/FreeFileSync/Build/Languages/lithuanian.lng
index 678216e5..1ff6c985 100644
--- a/FreeFileSync/Build/Languages/lithuanian.lng
+++ b/FreeFileSync/Build/Languages/lithuanian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nepavyksta rasti šių aplankų:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Jeigu ignoruosite šią klaidą aplankas bus laikomas tuščiu. Trūkstami aplankai, kai reikės bus sukurti.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Jei nebus paisoma šios klaidos, aplankams bus laikomas tusčiu. Trūkstami aplankai sukuriami automatiškai.</target>
<source>A folder input field is empty.</source>
<target>Aplanko įvesties laukas yra tuščias.</target>
@@ -155,10 +155,10 @@
<target>Apsauginė failo kopija</target>
<source>Enabled</source>
-<target></target>
+<target>Įjungta</target>
<source>Disabled</source>
-<target></target>
+<target>Išjungta</target>
<source>Copy locked files</source>
<target>Kopijuoti užrakintus failus</target>
@@ -167,22 +167,22 @@
<target>Kopijuoti failo leidimus</target>
<source>File time tolerance</source>
-<target></target>
+<target>Failo laiko nuokrypis</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Pasibaigė skirtas laikas aplankui pasiekti</target>
<source>Run with background priority</source>
-<target></target>
+<target>Vykdyti kaip aukštesnio prioriteto poprograme</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Suvienodinimo metu užrakinti aplankus</target>
<source>Verify copied files</source>
-<target></target>
+<target>Patikrinti nukopijuotus failus</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Naudoti nepradinius globalius parametrus:</target>
<source>Starting comparison</source>
<target>Pradedamas palyginimas</target>
@@ -325,7 +325,7 @@ Esamas: %y baitai
<target>Klaidos kodas %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Nepavyko prisijungti prie %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -442,7 +442,7 @@ Esamas: %y baitai
<target>Duomenų Šešėlinės Kopijos Paslauga nepasiekiama.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Norėdami sukurti sistemos šešėlinę kopiją, prašome baudoti 64-bitų FreeFileSync versiją.</target>
<source>Cannot determine volume name for %x.</source>
<target>Vietos vardo %x nustatyti nepavyko.</target>
@@ -644,8 +644,8 @@ Komanda inicijuojama jei:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Šie elementai turi neišspręstų konfliktų ir nebus suvienodinti:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Sekantys aplankai yra su žyniais skirtumais. Įsitikinkite, kad pasirinkote suvienodinimui teisingus aplankus.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Sekantys aplankai turi ryškius skirtumus. Prašome patikrinti, ar tikrai teisingi aplankai yra pasirinkti suvienodinimui.</target>
<source>Not enough free disk space available in:</source>
<target>Nepakanka laisvos disko vietos:</target>
@@ -726,23 +726,20 @@ Komanda inicijuojama jei:
<source>Serious Error</source>
<target>Rimta klaida</target>
-<source>Symlink</source>
-<target>Simbolinė nuoroda</target>
-
<source>Folder</source>
<target>Aplankas</target>
+<source>Symlink</source>
+<target>Simbolinė nuoroda</target>
+
<source>Full path</source>
<target>Pilnas kelias</target>
-<source>Name</source>
-<target>Pavadinimas</target>
-
-<source>Relative folder</source>
-<target>Aplanai</target>
+<source>Relative path</source>
+<target>Santykinis kelias</target>
-<source>Base folder</source>
-<target>Pasirinktas aplankas</target>
+<source>Item name</source>
+<target>Elemento pavadinimas</target>
<source>Size</source>
<target>Dydis</target>
@@ -919,7 +916,7 @@ Komanda inicijuojama jei:
<target>Aplanko pora:</target>
<source>Main settings:</source>
-<target></target>
+<target>Pagrindiniai parametrai:</target>
<source>Use local settings:</source>
<target>Naudoti vietinius nustatymus:</target>
@@ -1088,6 +1085,12 @@ Komanda inicijuojama jei:
<source>Time elapsed:</source>
<target>Praėjęs laikas:</target>
+<source>Bytes:</source>
+<target>Baitai:</target>
+
+<source>Items:</source>
+<target>Elementai:</target>
+
<source>Synchronizing...</source>
<target>Suvienodinama...</target>
@@ -1253,6 +1256,9 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>A new version of FreeFileSync is available:</source>
<target>Yra nauja FreeFileSync versija:</target>
+<source>Local path not available for %x.</source>
+<target>Nerastas %x vietinis kelias.</target>
+
<source>Confirm</source>
<target>Patvirtinti</target>
@@ -1533,17 +1539,17 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integruoti išorines programas į kontekstinį meniu. Sekantys makro galimi:</target>
-<source>- full file or folder name</source>
-<target>- pilnas failo ar aplanko pavadinimas</target>
+<source>Full file or folder path</source>
+<target>Pilnas failų ir aplankų kelias</target>
-<source>- folder part only</source>
-<target>- tik aplanko dalis</target>
+<source>Parent folder path</source>
+<target>Pirminio aplanko kelias</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Kitos pusės atitikmuo %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Laikina kopija saugoti SFTP ir MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Kitos pusės atitikmuo %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametrai priešingai pusei</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Ar vėl rodyti visus paslėptus dialogo langus ir įspėjamuosius pranešimus?</target>
@@ -1635,6 +1641,9 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Files</source>
<target>Failai</target>
+<source>Name</source>
+<target>Pavadinimas</target>
+
<source>Items</source>
<target>Pozicijos</target>
@@ -1651,13 +1660,13 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<target>FreeFileSync yra naujausia.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Negalima surasti dabartinės FreeFileSync versijos internete. Galgūt yra nauja versija. Ar patikrinti dabar rankiniu būdu?</target>
<source>&Check</source>
<target>&Tikrinti</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Nuoseklumo patikrinimas neįvyko %x.</target>
<source>Cannot find system function %x.</source>
<target>Nepavyksta rasti sisteminės funkcijos %x.</target>
@@ -1666,7 +1675,7 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<target>Nepavyko aktyvuoti sisteminių žinučių gavimo funkciją.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Įdiegimo failas yra pažeistas. Prašome įdiegti FreeFileSync išnaujo.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nepavyko priregistruoti %x įrenginio pranešimų.</target>
@@ -1831,8 +1840,14 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<target>Ačių už jūsų aukas ir palaikymą!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ši donorų FreeFileSync diegimo programa pasiekė dienos įdiegimo limitą.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Parsisiųsti iš pagrindinio puslapio standartinę FreeFileSync versiją?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Nešiojama versija negali būti įdiegta į pasirinktą aplanką.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Prašome pasirinkti vietinio įdiegimo metodą arba pakeiskite aplaką.</target>
diff --git a/FreeFileSync/Build/Languages/outdated/norwegian.lng b/FreeFileSync/Build/Languages/outdated/norwegian.lng
index 072eda86..fdb185e1 100644
--- a/FreeFileSync/Build/Languages/outdated/norwegian.lng
+++ b/FreeFileSync/Build/Languages/outdated/norwegian.lng
@@ -7,275 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
-
-<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
-
-<source>Thanks for your donation and support!</source>
-<target></target>
-
-<source>Internet access failed.</source>
-<target></target>
-
-<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target></target>
-
-<source>The following XML elements could not be read:</source>
-<target></target>
-
-<source>Cannot copy attributes from %x to %y.</source>
-<target></target>
-
-<source>%x is not a regular directory name.</source>
-<target></target>
-
-<source>Cannot copy permissions from %x to %y.</source>
-<target></target>
-
-<source>Unable to register device notifications for %x.</source>
-<target></target>
-
-<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
-
-<source>Consistency check failed for %x.</source>
-<target></target>
-
-<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
-
-<source>empty</source>
-<target></target>
-
-<source>Main config</source>
-<target></target>
-
-<source>Identify equal files by comparing their file size.</source>
-<target></target>
-
-<source>Copy DACL, SACL, Owner, Group</source>
-<target></target>
-
-<source>Please enter a target folder.</source>
-<target></target>
-
-<source>
-<pluralform>Copy the following item to another folder?</pluralform>
-<pluralform>Copy the following %x items to another folder?</pluralform>
-</source>
-<target></target>
-
-<source>Loading...</source>
-<target></target>
-
-<source>Move down</source>
-<target></target>
-
-<source>Move up</source>
-<target></target>
-
-<source>Save as default</source>
-<target></target>
-
-<source>Remove entry from list</source>
-<target></target>
-
-<source>&Delete</source>
-<target></target>
-
-<source>&Copy to...</source>
-<target></target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target></target>
-
-<source>Copy items</source>
-<target></target>
-
-<source>SSH File Transfer Protocol</source>
-<target></target>
-
-<source>&Overwrite existing files</source>
-<target></target>
-
-<source>&Keep relative paths</source>
-<target></target>
-
-<source>Items:</source>
-<target></target>
-
-<source>Bytes:</source>
-<target></target>
-
-<source>Select Folder</source>
-<target></target>
-
-<source>Select a directory on the server:</source>
-<target></target>
-
-<source>Directory on server:</source>
-<target></target>
-
-<source>&Show password</source>
-<target></target>
-
-<source>Password:</source>
-<target></target>
-
-<source>User name:</source>
-<target></target>
-
-<source>Port:</source>
-<target></target>
-
-<source>Server name or IP address:</source>
-<target></target>
-
-<source>Enter your SFTP login details:</source>
-<target></target>
-
-<source>Arrange folder pair</source>
-<target></target>
-
-<source>
-- Not supported by all file systems
-- Requires and creates database files
-- Detection not available for first sync
-</source>
-<target></target>
-
-<source>Example:</source>
-<target></target>
-
-<source>List of file time offsets to ignore</source>
-<target></target>
-
-<source>&Ignore time shift [hh:mm]</source>
-<target></target>
-
-<source>&Direct</source>
-<target></target>
-
-<source>&Follow</source>
-<target></target>
-
-<source>Include &symbolic links:</source>
-<target></target>
-
-<source>Main settings:</source>
-<target></target>
-
-<source>Folder pair:</source>
-<target></target>
-
-<source>&Preferences</source>
-<target></target>
-
-<source>Select alternative folder type</source>
-<target></target>
-
-<source>Select SFTP folder</source>
-<target></target>
-
-<source>SFTP folder</source>
-<target></target>
-
-<source>Please select a folder on a local file system, network or an MTP device.</source>
-<target></target>
-
-<source>The selected folder %x cannot be used with FreeFileSync.</source>
-<target></target>
-
-<source>Item name</source>
-<target></target>
-
-<source>Relative path</source>
-<target></target>
-
-<source>Switching to FreeFileSync's main window</source>
-<target></target>
-
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target></target>
-
-<source>Data verification error:</source>
-<target></target>
-
-<source>%x and %y have different content.</source>
-<target></target>
-
-<source>File size</source>
-<target></target>
-
-<source>The following path does not support directory monitoring:</source>
-<target></target>
-
-<source>Start</source>
-<target></target>
-
-<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
-
-<source>Timeout while searching for folder %x.</source>
-<target></target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
-<source>Cannot determine free disk space for %x.</source>
-<target></target>
-
-<source>Cannot find device %x.</source>
-<target></target>
-
-<source>Cannot find %x.</source>
-<target></target>
-
-<source>
-Unexpected size of data stream.
-Expected: %x bytes
-Actual: %y bytes
-</source>
-<target></target>
-
-<source>Operation not supported for different base folder types.</source>
-<target></target>
-
-<source>Using non-default global settings:</source>
-<target></target>
-
-<source>Verify copied files</source>
-<target></target>
-
-<source>Lock directories during sync</source>
-<target></target>
-
-<source>Run with background priority</source>
-<target></target>
-
-<source>Folder access timeout</source>
-<target></target>
-
-<source>File time tolerance</source>
-<target></target>
-
-<source>Disabled</source>
-<target></target>
-
-<source>Enabled</source>
-<target></target>
-
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target></target>
-
-<source>Open configuration for editing without executing it.</source>
-<target></target>
-
-<source>Cannot find file %x.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Begge sider er endret siden siste synkronisering.</target>
@@ -333,6 +64,9 @@ Actual: %y bytes
<source>Syntax error</source>
<target>Syntaksfeil</target>
+<source>Cannot find file %x.</source>
+<target></target>
+
<source>Error</source>
<target>Feil</target>
@@ -372,9 +106,15 @@ Actual: %y bytes
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Et ubegrenset antall alternative kataloger for maksimalt én konfigurasjonsfil.</target>
+<source>Open configuration for editing without executing it.</source>
+<target></target>
+
<source>Cannot find the following folders:</source>
<target>Kan ikke finne følgende mapper:</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target></target>
+
<source>A folder input field is empty.</source>
<target>Der er ikke valgt noen mapper.</target>
@@ -414,12 +154,36 @@ Actual: %y bytes
<source>Fail-safe file copy</source>
<target>Sikker filkopiering</target>
+<source>Enabled</source>
+<target></target>
+
+<source>Disabled</source>
+<target></target>
+
<source>Copy locked files</source>
<target>Kopier låste filer</target>
<source>Copy file access permissions</source>
<target>Kopier adgangstillatelser</target>
+<source>File time tolerance</source>
+<target></target>
+
+<source>Folder access timeout</source>
+<target></target>
+
+<source>Run with background priority</source>
+<target></target>
+
+<source>Lock directories during sync</source>
+<target></target>
+
+<source>Verify copied files</source>
+<target></target>
+
+<source>Using non-default global settings:</source>
+<target></target>
+
<source>Starting comparison</source>
<target>Starter analyse</target>
@@ -486,9 +250,19 @@ Actual: %y bytes
<source>Cannot write permissions of %x.</source>
<target>Kan ikke skrive tillatelsene til %x.</target>
+<source>Operation not supported for different base folder types.</source>
+<target></target>
+
<source>Cannot write file %x.</source>
<target>Kan ikke opprette filen %x.</target>
+<source>
+Unexpected size of data stream.
+Expected: %x bytes
+Actual: %y bytes
+</source>
+<target></target>
+
<source>Cannot copy symbolic link %x to %y.</source>
<target>Kan ikke kopiere symolsk link %x til %y.</target>
@@ -501,12 +275,18 @@ Actual: %y bytes
<source>Cannot read file attributes of %x.</source>
<target>Kan ikke lese filattributterne på %x.</target>
+<source>Cannot find %x.</source>
+<target></target>
+
<source>Cannot open file %x.</source>
<target>Filen %x kan ikke åpnes.</target>
<source>Cannot read file %x.</source>
<target>Kan ikke lese filen %x.</target>
+<source>Cannot find device %x.</source>
+<target></target>
+
<source>Cannot create directory %x.</source>
<target>Kan ikke opprette mappen %x.</target>
@@ -528,6 +308,9 @@ Actual: %y bytes
<source>Cannot open directory %x.</source>
<target>Kan ikke åpne mappen %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target></target>
+
<source>Unable to move %x to the recycle bin.</source>
<target>Kunne ikke flytte %x til papirkurv.</target>
@@ -537,6 +320,9 @@ Actual: %y bytes
<source>Error Code %x:</source>
<target>Feilkode %x:</target>
+<source>Unable to connect to %x.</source>
+<target></target>
+
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -576,6 +362,9 @@ Actual: %y bytes
<source>Searching for folder %x...</source>
<target>Søker etter mappen %x...</target>
+<source>Timeout while searching for folder %x.</source>
+<target></target>
+
<source>Cannot get process information.</source>
<target>Kan ikke hente prosessinformasjon.</target>
@@ -645,6 +434,9 @@ Actual: %y bytes
<source>Cannot access the Volume Shadow Copy Service.</source>
<target>VSS tjenesten er ikke tilgjengelig.</target>
+<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
+<target></target>
+
<source>Cannot determine volume name for %x.</source>
<target>Kan ikke bestemme volumnavn for %x.</target>
@@ -734,6 +526,9 @@ Kommandoen utføres hvis:
- nye mapper finnes (f.eks USB nøkkel)
</target>
+<source>Start</source>
+<target></target>
+
<source>About</source>
<target>Om</target>
@@ -746,6 +541,9 @@ Kommandoen utføres hvis:
<source>Automated Synchronization</source>
<target>Automatisk synkronisering</target>
+<source>The following path does not support directory monitoring:</source>
+<target></target>
+
<source>Directory monitoring active</source>
<target>Mappeovervåkning aktiv</target>
@@ -770,6 +568,9 @@ Kommandoen utføres hvis:
<source>File content</source>
<target>Innhold</target>
+<source>File size</source>
+<target></target>
+
<source>Two way</source>
<target>Toveis</target>
@@ -812,6 +613,12 @@ Kommandoen utføres hvis:
<source>Cannot write file attributes of %x.</source>
<target>Kan ikke skrive filattributter til %x.</target>
+<source>%x and %y have different content.</source>
+<target></target>
+
+<source>Data verification error:</source>
+<target></target>
+
<source>Creating a Volume Shadow Copy for %x...</source>
<target>Oppretter VSS kopi for %x...</target>
@@ -830,6 +637,9 @@ Kommandoen utføres hvis:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Følgende mapper har uløste konflikter og synkroniseres ikke:</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target></target>
+
<source>Not enough free disk space available in:</source>
<target>Ikke nok ledig diskplass på:</target>
@@ -887,6 +697,9 @@ Kommandoen utføres hvis:
<source>&Switch</source>
<target>&Skift</target>
+<source>Switching to FreeFileSync's main window</source>
+<target></target>
+
<source>
<pluralform>Automatic retry in 1 second...</pluralform>
<pluralform>Automatic retry in %x seconds...</pluralform>
@@ -905,15 +718,21 @@ Kommandoen utføres hvis:
<source>Serious Error</source>
<target>Kritisk feil</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Mappe</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Full sti</target>
+<source>Relative path</source>
+<target></target>
+
+<source>Item name</source>
+<target></target>
+
<source>Size</source>
<target>Størrelse</target>
@@ -956,6 +775,21 @@ Kommandoen utføres hvis:
<source>Paste</source>
<target>Lim inn</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target></target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target></target>
+
+<source>SFTP folder</source>
+<target></target>
+
+<source>Select SFTP folder</source>
+<target></target>
+
+<source>Select alternative folder type</source>
+<target></target>
+
<source>&New</source>
<target>&Ny</target>
@@ -983,6 +817,9 @@ Kommandoen utføres hvis:
<source>&Actions</source>
<target>&Handling</target>
+<source>&Preferences</source>
+<target></target>
+
<source>&Language</source>
<target>&Språk</target>
@@ -1067,15 +904,39 @@ Kommandoen utføres hvis:
<source>Total bytes to copy</source>
<target>Antal bytes som kopieres</target>
+<source>Folder pair:</source>
+<target></target>
+
+<source>Main settings:</source>
+<target></target>
+
<source>Use local settings:</source>
<target>Bruk lokale instillinger:</target>
<source>Select a variant:</source>
<target>Velg metode:</target>
+<source>Include &symbolic links:</source>
+<target></target>
+
+<source>&Follow</source>
+<target></target>
+
+<source>&Direct</source>
+<target></target>
+
<source>More information</source>
<target>Mer informasjon</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target></target>
+
+<source>List of file time offsets to ignore</source>
+<target></target>
+
+<source>Example:</source>
+<target></target>
+
<source>Handle daylight saving time</source>
<target>Behandle sommertid</target>
@@ -1115,6 +976,13 @@ Kommandoen utføres hvis:
<source>Detect moved files</source>
<target>Gjennkjenn flyttede filer</target>
+<source>
+- Not supported by all file systems
+- Requires and creates database files
+- Detection not available for first sync
+</source>
+<target></target>
+
<source>Delete files:</source>
<target>Slett filer:</target>
@@ -1157,6 +1025,36 @@ Kommandoen utføres hvis:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target></target>
+
+<source>Enter your SFTP login details:</source>
+<target></target>
+
+<source>Server name or IP address:</source>
+<target></target>
+
+<source>Port:</source>
+<target></target>
+
+<source>User name:</source>
+<target></target>
+
+<source>Password:</source>
+<target></target>
+
+<source>&Show password</source>
+<target></target>
+
+<source>Directory on server:</source>
+<target></target>
+
+<source>Select a directory on the server:</source>
+<target></target>
+
+<source>Select Folder</source>
+<target></target>
+
<source>Start synchronization now?</source>
<target>Synkroniser nå?</target>
@@ -1175,6 +1073,12 @@ Kommandoen utføres hvis:
<source>Time elapsed:</source>
<target>Brukt tid:</target>
+<source>Bytes:</source>
+<target></target>
+
+<source>Items:</source>
+<target></target>
+
<source>Synchronizing...</source>
<target>Synkroniserer...</target>
@@ -1217,6 +1121,12 @@ Kommandoen utføres hvis:
<source>How can I schedule a batch job?</source>
<target>Hvordan opprettes en batchfil?</target>
+<source>&Keep relative paths</source>
+<target></target>
+
+<source>&Overwrite existing files</source>
+<target></target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Disse innstillinger gjelder alle synkroniseringer.</target>
@@ -1286,12 +1196,18 @@ This guarantees a consistent state even in case of a serious error.
<source>Many thanks for localization:</source>
<target>Takk for oversettelse:</target>
+<source>SSH File Transfer Protocol</source>
+<target></target>
+
<source>Save as Batch Job</source>
<target>Lagre som batchfil</target>
<source>Delete Items</source>
<target>Slett mapperr</target>
+<source>Copy items</source>
+<target></target>
+
<source>Options</source>
<target>Valg</target>
@@ -1322,6 +1238,12 @@ This guarantees a consistent state even in case of a serious error.
<source>&Download</source>
<target>&Last ned</target>
+<source>A new version of FreeFileSync is available:</source>
+<target></target>
+
+<source>Local path not available for %x.</source>
+<target></target>
+
<source>Confirm</source>
<target>Bekreft</target>
@@ -1382,6 +1304,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Ekskluder midlertidig</target>
+<source>&Copy to...</source>
+<target></target>
+
+<source>&Delete</source>
+<target></target>
+
<source>Include all</source>
<target>Velg alle</target>
@@ -1427,6 +1355,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Do&n't save</source>
<target>&Ikke lagre</target>
+<source>Remove entry from list</source>
+<target></target>
+
<source>Clear filter</source>
<target>Slett filter</target>
@@ -1475,6 +1406,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Show filtered or temporarily excluded files</source>
<target>Vis filtrerte eller midlertidig ekskluderte filer</target>
+<source>Save as default</source>
+<target></target>
+
<source>Filter</source>
<target>Filter</target>
@@ -1484,6 +1418,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot find %x</source>
<target>Kan ikke finne %x</target>
+<source>Move up</source>
+<target></target>
+
+<source>Move down</source>
+<target></target>
+
<source>Comma-separated values</source>
<target>Kommaoppdelte verdier</target>
@@ -1535,6 +1475,18 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Logg</target>
+<source>Loading...</source>
+<target></target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target></target>
+
+<source>Please enter a target folder.</source>
+<target></target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1556,20 +1508,23 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Vil du slette følgende %x mapper?</pluralform>
</target>
+<source>Copy DACL, SACL, Owner, Group</source>
+<target></target>
+
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrer eksterne programmer i kontekstmeny. Bruk følgende makroer:</target>
-<source>- full file or folder name</source>
-<target>Komplett fil- eller mappenavn</target>
+<source>Full file or folder path</source>
+<target></target>
-<source>- folder part only</source>
-<target>Kun mappedelen</target>
+<source>Parent folder path</source>
+<target></target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>Motsatt sides motstykke til %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target></target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>Motsatt sides motstykke til %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target></target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Vis gjemte vinduer og advarsler igjen?</target>
@@ -1583,6 +1538,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Identify equal files by comparing the file content.</source>
<target>Gjennkjenn like filer etter innhold.</target>
+<source>Identify equal files by comparing their file size.</source>
+<target></target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Finn og fordel endringer på begge sider. Slettede filer, omdøpninger og konflikter finnes automatisk i en database.</target>
@@ -1640,6 +1598,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Legg til tidsstempel til hvert filnavn</target>
+<source>Main config</source>
+<target></target>
+
+<source>empty</source>
+<target></target>
+
<source>Leave as unresolved conflict</source>
<target>Etterlat som uløst konflikt</target>
@@ -1670,15 +1634,27 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync er oppdatert.</target>
+<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
+<target></target>
+
<source>&Check</source>
<target>&Kontroller</target>
+<source>Consistency check failed for %x.</source>
+<target></target>
+
<source>Cannot find system function %x.</source>
<target>Kan ikke finne systemfunksjonen %x.</target>
<source>Unable to register to receive system messages.</source>
<target>Kunne ikke registrere mottakelse av systembesjkeder.</target>
+<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
+<target></target>
+
+<source>Unable to register device notifications for %x.</source>
+<target></target>
+
<source>Cannot monitor directory %x.</source>
<target>Kan ikke overvåke mappen %x.</target>
@@ -1694,9 +1670,18 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot read permissions of %x.</source>
<target>Kan ikke lese tillatelsene på %x.</target>
+<source>Cannot copy permissions from %x to %y.</source>
+<target></target>
+
+<source>%x is not a regular directory name.</source>
+<target></target>
+
<source>Cannot copy file %x to %y.</source>
<target>Kan ikke kopiere filen %x til %y.</target>
+<source>Cannot copy attributes from %x to %y.</source>
+<target></target>
+
<source>Type of item %x is not supported:</source>
<target>Filtypen %x støttes ikke:</target>
@@ -1745,6 +1730,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Checking recycle bin failed for folder %x.</source>
<target>Sjekk papirkurv-feil for mappen %x.</target>
+<source>The following XML elements could not be read:</source>
+<target></target>
+
+<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
+<target></target>
+
+<source>Internet access failed.</source>
+<target></target>
+
<source>Prepare installation</source>
<target>Forbered installering</target>
@@ -1814,3 +1808,18 @@ This guarantees a consistent state even in case of a serious error.
<source>Edit with FreeFileSync</source>
<target>Rediger med FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target></target>
+
+<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
+<target></target>
+
+<source>Download the regular version from the FreeFileSync homepage now?</source>
+<target></target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target></target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target></target>
+
diff --git a/FreeFileSync/Build/Languages/polish.lng b/FreeFileSync/Build/Languages/polish.lng
index 1f684e18..a8de118c 100644
--- a/FreeFileSync/Build/Languages/polish.lng
+++ b/FreeFileSync/Build/Languages/polish.lng
@@ -77,7 +77,7 @@
<target>Wprowadzona liczba katalogów do synchronizacji jest nierówna.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Plik konfiguracyjny nie może zawierać informacji o synchronizowanych katalogach gdy nazwy ścieżek przekazywane są w linii poleceń.</target>
+<target>Plik konfiguracyjny nie może zawierać informacji o synchronizowanych katalogach, gdy nazwy ścieżek przekazywane są w linii poleceń.</target>
<source>Directories cannot be set for more than one configuration file.</source>
<target>Nie można ustawić wielu katalogów dla więcej niż jednego pliku konfiguracyjnego.</target>
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nie można znaleźć następujących katalogów:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Jeżeli zignorujesz to ostrzeżenie, katalogi zostaną potraktowane jako puste. Brakujące katalogi są tworzone automatycznie.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Jeżeli ten błąd zostanie zignorowany, katalogi zostaną uznane za puste. Brakujące katalogi będą w razie potrzeby utworzone automatycznie.</target>
<source>A folder input field is empty.</source>
<target>Pole katalog źródłowy jest puste.</target>
@@ -155,10 +155,10 @@
<target>Bezpieczne kopiowanie</target>
<source>Enabled</source>
-<target></target>
+<target>Włącz</target>
<source>Disabled</source>
-<target></target>
+<target>Wyłącz</target>
<source>Copy locked files</source>
<target>Kopiuj zablokowane pliki</target>
@@ -167,22 +167,22 @@
<target>Kopiuj uprawnienia plików</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerancja czasu dla pliku</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Limit czasu odpowiedzi podczas dostępu do katalogu</target>
<source>Run with background priority</source>
-<target></target>
+<target>Uruchom w tle z priorytetem</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Zablokuj katalogi podczas synchronizacji</target>
<source>Verify copied files</source>
-<target></target>
+<target>Weryfikuj przekopiowane pliki</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Wykorzystane niestandardowe ustawienia globalne:</target>
<source>Starting comparison</source>
<target>Kompresowanie</target>
@@ -273,6 +273,12 @@ Przesłany: %y bajtów
<source>Cannot move file %x to %y.</source>
<target>Nie można przenieść pliku %x do %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Błąd połączenia do %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Nie można otworzyć katalogu %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Nie można wyliczyć katalogu %x.</target>
@@ -309,9 +315,6 @@ Przesłany: %y bajtów
<source>Cannot resolve symbolic link %x.</source>
<target>Nie można określić położenia dowiązania symbolicznego %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Nie można otworzyć katalogu %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Nie można określić wolnego miejsca na %x.</target>
@@ -321,12 +324,6 @@ Przesłany: %y bajtów
<source>Incorrect command line:</source>
<target>Niepoprawne polecenie:</target>
-<source>Error Code %x:</source>
-<target>Kod błędu %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -442,7 +439,7 @@ Przesłany: %y bajtów
<target>Nie można uzyskać dostępu do usługi Volume Shadow Copy.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Uruchom 64-bitową wersję FreeFileSync aby utworzyć Shadow Copies na tym systemie.</target>
<source>Cannot determine volume name for %x.</source>
<target>Nie można określić nazwy dysku dla %x.</target>
@@ -499,7 +496,7 @@ Przesłany: %y bajtów
<target>3. Wciśnij 'Start'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Aby rozpocząć zaimportuj plik .ffs_batch.</target>
+<target>Aby rozpocząć, zaimportuj plik .ffs_batch.</target>
<source>Folders to watch:</source>
<target>Katalogi do obserwowania:</target>
@@ -517,7 +514,7 @@ Przesłany: %y bajtów
<target>Czas bezczynności (w sekundach):</target>
<source>Idle time between last detected change and execution of command</source>
-<target>Czas pomiędzy ostatnią wykrytą zmianą, a uruchomieniem komendy</target>
+<target>Czas pomiędzy ostatnią wykrytą zmianą a uruchomieniem komendy</target>
<source>Command line:</source>
<target>Polecenie:</target>
@@ -644,8 +641,8 @@ Komenda jest wykonywana gdy:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Te elementy znajdują się w konflikcie, którego nie można rozwiązać. Pliki nie zostaną zsynchronizowane:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Poniższe katalogi znacząco się różnią. Upewnij się, że określone zostały poprawne katalogi do synchronizacji.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target><Poniższe katalogi znacząco się różnią. Zweryfikuj czy do synchronizacji zostały określone prawidłowe katalogi.</target>
<source>Not enough free disk space available in:</source>
<target>Brak wystarczającej przestrzeni dyskowej na:</target>
@@ -726,23 +723,20 @@ Komenda jest wykonywana gdy:
<source>Serious Error</source>
<target>Poważny błąd</target>
-<source>Symlink</source>
-<target>Dowiązanie symboliczne</target>
-
<source>Folder</source>
<target>Katalog</target>
+<source>Symlink</source>
+<target>Dowiązanie symboliczne</target>
+
<source>Full path</source>
<target>Pełna ścieżka</target>
-<source>Name</source>
-<target>Nazwa</target>
-
-<source>Relative folder</source>
-<target>Relatywny katalog</target>
+<source>Relative path</source>
+<target>Ścieżka względna</target>
-<source>Base folder</source>
-<target>Katalog bazowy</target>
+<source>Item name</source>
+<target>Nazwa elementu</target>
<source>Size</source>
<target>Rozmiar</target>
@@ -919,7 +913,7 @@ Komenda jest wykonywana gdy:
<target>Para folderów:</target>
<source>Main settings:</source>
-<target></target>
+<target>Główne ustawienia:</target>
<source>Use local settings:</source>
<target>Korzystaj z ustawień lokalnych:</target>
@@ -1088,6 +1082,12 @@ Komenda jest wykonywana gdy:
<source>Time elapsed:</source>
<target>Upłynęło:</target>
+<source>Bytes:</source>
+<target>Bajty:</target>
+
+<source>Items:</source>
+<target>Elementy:</target>
+
<source>Synchronizing...</source>
<target>Synchronizuję...</target>
@@ -1253,6 +1253,9 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>A new version of FreeFileSync is available:</source>
<target>Dostępna jest nowa wersja FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Lokalna ścieżka nie jest dostępna dla %x.</target>
+
<source>Confirm</source>
<target>Potwierdź</target>
@@ -1533,17 +1536,17 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Dołącz zewnętrzną aplikację do menu kontekstowego. Dostępne makra:</target>
-<source>- full file or folder name</source>
-<target>- pełna nazwa pliku lub katalogu</target>
+<source>Full file or folder path</source>
+<target>Pełna ścieżka do pliku lub katalogu</target>
-<source>- folder part only</source>
-<target>- tylko część katalogu</target>
+<source>Parent folder path</source>
+<target>Nadrzędna ścieżka</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Odpowiednik %item_path% po drugiej stronie</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Tymczasowa kopia lokalna dla SFTP i MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Odpowiednik %item_folder% po drugiej stronie</target>
+<source>Parameters for opposite side</source>
+<target>Parametry dla strony przeciwnej</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Przywrócić ukryte dialogi i powiadomienia?</target>
@@ -1635,6 +1638,9 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Files</source>
<target>Pliki</target>
+<source>Name</source>
+<target>Nazwa</target>
+
<source>Items</source>
<target>Elementy</target>
@@ -1651,13 +1657,13 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<target>Posiadasz aktualną wersję FreeFileSync.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Nie można znaleźć aktualnej wersji programu FreeFileSync w sieci. Nowsza wersja może być dostępna. Czy chcesz sprawdzić ręcznie?</target>
<source>&Check</source>
<target>S&prawdź</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Plik %x jest niespójny.</target>
<source>Cannot find system function %x.</source>
<target>Nie można odnaleźć funkcji systemowej %x.</target>
@@ -1666,7 +1672,7 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<target>Błąd podczas rejestrowania do odbioru komunikatów systemowych.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Pliki instalacyjne są uszkodzone. Przeinstaluj FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nie można zarejestrować powiadomień urządzenia dla %x.</target>
@@ -1746,6 +1752,9 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Cannot change process I/O priorities.</source>
<target>Nie można zmienić priorytetu I/O procesu.</target>
+<source>Error Code %x:</source>
+<target>Kod błędu %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Sprawdzanie kosza systemowego dla katalogu %x zakończone niepowodzeniem.</target>
@@ -1831,8 +1840,14 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<target>Dziękujemy za wsparcie i dotacje!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ten instalator FreeFileSync osiągnął swój dzienny limit instalacji.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Pobrać standardową wersję programu FreeFileSync?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Przenośna wersja programu nie możne zostać zainstalowana w wybranym katalogu.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Wybierz lokalny typ instalacji lub określ inny katalog.</target>
diff --git a/FreeFileSync/Build/Languages/portuguese.lng b/FreeFileSync/Build/Languages/portuguese.lng
index 77181f08..9f9dfff2 100644
--- a/FreeFileSync/Build/Languages/portuguese.lng
+++ b/FreeFileSync/Build/Languages/portuguese.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Não é possível encontrar as seguintes pastas:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Se ignorar este erro, as pastas serão consideradas vazias. Pastas faltando são criadas automaticamente se necessário.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se este erro é ignorado as pastas serão consideradas vazias. Pastas ausentes são criados automaticamente quando necessário.</target>
<source>A folder input field is empty.</source>
<target>Um dos campos de directório para comparar está vazio.</target>
@@ -155,10 +155,10 @@
<target>Cópia à prova de falhas</target>
<source>Enabled</source>
-<target></target>
+<target>Activado</target>
<source>Disabled</source>
-<target></target>
+<target>Desativado</target>
<source>Copy locked files</source>
<target>Copiar ficheiros bloqueados</target>
@@ -167,22 +167,22 @@
<target>Copiar permissões de acesso do ficheiro</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerância de tempo de ficheiro</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Tempo limite de acesso à pasta</target>
<source>Run with background priority</source>
-<target></target>
+<target>Correr com prioridade de fundo</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Bloquear diretórios durante sincronia</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verificar ficheiros copiados</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Usando definições globais não predefinidas:</target>
<source>Starting comparison</source>
<target>A iniciar a comparação</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Código de erro %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Não é possível conectar-se em %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Actual: %y bytes
<target>Não é possível aceder ao serviço Volume Shadow Copy.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Por favor, executar a versão do FreeFileSync de 64 bits para criar cópias de sombra neste sistema.</target>
<source>Cannot determine volume name for %x.</source>
<target>Não é possível determinar o nome do volume para %x.</target>
@@ -641,8 +641,8 @@ O comando é executado se:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Os seguintes itens têm conflitos não resolvidos, e não serão sincronizados:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>As pastas a seguir são significativamente diferentes. Certifique-se de seleccionar as pastas corretas para sincronização.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>As seguintes pastas são significativamente diferentes. Por favor, verifique se as pastas corretas estão selecionadas para a sincronização.</target>
<source>Not enough free disk space available in:</source>
<target>Não há espaço livre suficiente em:</target>
@@ -722,23 +722,20 @@ O comando é executado se:
<source>Serious Error</source>
<target>Erro Grave</target>
-<source>Symlink</source>
-<target>Link Simbólico</target>
-
<source>Folder</source>
<target>Pasta</target>
+<source>Symlink</source>
+<target>Link Simbólico</target>
+
<source>Full path</source>
<target>Caminho completo</target>
-<source>Name</source>
-<target>Nome</target>
-
-<source>Relative folder</source>
-<target>Pasta relativa</target>
+<source>Relative path</source>
+<target>Caminho relativo</target>
-<source>Base folder</source>
-<target>Pasta principal</target>
+<source>Item name</source>
+<target>Nome do item</target>
<source>Size</source>
<target>Tamanho</target>
@@ -915,7 +912,7 @@ O comando é executado se:
<target>Par da pasta:</target>
<source>Main settings:</source>
-<target></target>
+<target>Definições principais:</target>
<source>Use local settings:</source>
<target>Usar opções locais:</target>
@@ -1084,6 +1081,12 @@ O comando é executado se:
<source>Time elapsed:</source>
<target>Tempo decorrido:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Itens:</target>
+
<source>Synchronizing...</source>
<target>A sincronizar...</target>
@@ -1249,6 +1252,9 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>A new version of FreeFileSync is available:</source>
<target>Uma nova versão do FreeFileSync está disponível:</target>
+<source>Local path not available for %x.</source>
+<target>Caminho local não disponível para %x.</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1412,7 +1418,7 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<target>Mostrar ficheiros filtrados ou temporariamente excluidos</target>
<source>Save as default</source>
-<target>Salvar como padrão</target>
+<target>Guardar como padrão</target>
<source>Filter</source>
<target>Filtro</target>
@@ -1522,17 +1528,17 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrar aplicações externas no menu de contexto. As seguintes macros estão disponíveis:</target>
-<source>- full file or folder name</source>
-<target>- nome completo de ficheiro ou pasta</target>
+<source>Full file or folder path</source>
+<target>Caminho completo do ficheiro ou pasta</target>
-<source>- folder part only</source>
-<target>- nome da pasta parcial</target>
+<source>Parent folder path</source>
+<target>Caminho da pasta pai</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Contrapartida de %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Cópia local temporária para armazenamento SFTP e FTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Contrapartida de %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parâmetros do lado oposto</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Mostrar diálogos ocultos e mensagens de erro novamente?</target>
@@ -1624,6 +1630,9 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Files</source>
<target>Ficheiros</target>
+<source>Name</source>
+<target>Nome</target>
+
<source>Items</source>
<target>Itens</target>
@@ -1640,13 +1649,13 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<target>FreeFileSync está actualizado.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Não é possível encontrar o número da versão online do FreeFileSync. Uma nova versão deve estar disponível. Verificar manualmente agora?</target>
<source>&Check</source>
<target>&Verificar</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Falha na verificação de consistência para %x.</target>
<source>Cannot find system function %x.</source>
<target>Não é possível encontrar a função do sistema %x.</target>
@@ -1655,7 +1664,7 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<target>Não foi possível registar para receber mensagens do sistema.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Ficheiros de instalação corompidos. Por favor, reinstale o FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Não é possível registrar as notificações do dispositivo para %x.</target>
@@ -1817,8 +1826,14 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<target>Obrigado pela sua doação e apoio!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Este instalador do FreeFileSync para doadores atingiu seu limite diário de instalação.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Descarregar a versão normal a partir do sítio da web do FreeFileSync agora?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Não é possível instalar a versão portátil na pasta selecionada.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Por favor, escolha o tipo do local de instalação ou selecione uma pasta diferente para instalar.</target>
diff --git a/FreeFileSync/Build/Languages/portuguese_br.lng b/FreeFileSync/Build/Languages/portuguese_br.lng
index 8276dd8b..b155f3a9 100644
--- a/FreeFileSync/Build/Languages/portuguese_br.lng
+++ b/FreeFileSync/Build/Languages/portuguese_br.lng
@@ -11,16 +11,16 @@
<target>Ambos os lados foram alterados desde a última sincronização.</target>
<source>Cannot determine sync-direction:</source>
-<target>Não foi possível determinar a direção de sincronização:</target>
+<target>Não é possível determinar a direção de sincronização:</target>
<source>No change since last synchronization.</source>
-<target>Nenhuma mudança desde a última sincronização.</target>
+<target>Nenhuma alteração desde a última sincronização.</target>
<source>The database entry is not in sync considering current settings.</source>
-<target>A entrada de banco de dados não está em sincronia considerando as configurações atuais.</target>
+<target>A entrada do banco de dados não está em sincronia considerando as configurações atuais.</target>
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
-<target>Configurando direções padrões de sincronização: Arquivos antigos serão substituídos por arquivos mais novos.</target>
+<target>Configurando direções padrões de sincronização: Arquivos antigos serão substituídos por arquivos mais recentes.</target>
<source>Creating folder %x</source>
<target>Criando pasta %x</target>
@@ -50,22 +50,22 @@
<target>Apagando link simbólico %x</target>
<source>Checking recycle bin availability for folder %x...</source>
-<target>Verificando a disponibilidade da lixeira para a pasta %x...</target>
+<target>Verificando a disponibilidade da Lixeira para a pasta %x...</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>A Lixeira não está disponível para as seguintes pastas. Os arquivos serão apagados permanentemente:</target>
+<target>Lixeira não disponível para as seguintes pastas. Os arquivos serão apagados permanentemente:</target>
<source>An exception occurred</source>
<target>Ocorreu uma exceção</target>
<source>A directory path is expected after %x.</source>
-<target>Um caminho de diretório é esperado após %x.</target>
+<target>Caminho de diretório esperado após %x.</target>
<source>Syntax error</source>
<target>Erro de sintaxe</target>
<source>Cannot find file %x.</source>
-<target>Não foi possível encontrar o arquivo %x.</target>
+<target>Não é possível encontrar o arquivo %x.</target>
<source>Error</source>
<target>Erro</target>
@@ -74,7 +74,7 @@
<target>O arquivo %x não contém uma configuração válida.</target>
<source>Unequal number of left and right directories specified.</source>
-<target>Número de diretórios especificados na esquerda e na direita são diferentes.</target>
+<target>Número de diretórios especificados na esquerda e na direita diferentes.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
<target>O arquivo de configuração não deve conter configurações de diretórios quando os diretórios são definidos via linha de comando.</target>
@@ -110,13 +110,13 @@
<target>Abrir configuração para editar sem executar.</target>
<source>Cannot find the following folders:</source>
-<target>Não foi possível localizar as seguintes pastas:</target>
+<target>Não é possível localizar as seguintes pastas:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Se você ignorar este erro, as pastas serão consideradas como vazias. Pastas faltantes serão criadas automaticamente quando necessárias.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se o erro for ignorado, as pastas serão consideradas vazias. Pastas não encontradas serão criadas automaticamentes quando necessário.</target>
<source>A folder input field is empty.</source>
-<target>Um campo de entrada de pasta está vazio.</target>
+<target>Campo de entrada de pasta vazio.</target>
<source>The corresponding folder will be considered as empty.</source>
<target>A pasta correspondente será considerada como vazia.</target>
@@ -155,10 +155,10 @@
<target>Cópia de arquivos a prova de falhas</target>
<source>Enabled</source>
-<target></target>
+<target>Habilitado</target>
<source>Disabled</source>
-<target></target>
+<target>Desabilitado</target>
<source>Copy locked files</source>
<target>Copiar arquivos bloqueados (em uso)</target>
@@ -167,22 +167,22 @@
<target>Copiar permissões de acesso aos arquivos</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerância de tempo do arquivo</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Tempo limite de acesso da pasta</target>
<source>Run with background priority</source>
-<target></target>
+<target>Executar com prioridade de segundo plano</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Travar diretórios durante sincronização</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verificar arquivos copiados</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Usando configurações globais não predefinidas:</target>
<source>Starting comparison</source>
<target>Iniciando comparação</target>
@@ -191,7 +191,7 @@
<target>Calculando as direções de sincronização...</target>
<source>Out of memory.</source>
-<target>Falta de memória.</target>
+<target>Memória insuficiente.</target>
<source>Item exists on left side only</source>
<target>Item existe apenas no lado esquerdo</target>
@@ -200,10 +200,10 @@
<target>Item existe apenas no lado direito</target>
<source>Left side is newer</source>
-<target>Lado esquerdo é novo</target>
+<target>Lado esquerdo mais recente</target>
<source>Right side is newer</source>
-<target>Lado direito é novo</target>
+<target>Lado direito mais recente</target>
<source>Items have different content</source>
<target>Itens têm conteúdos diferentes</target>
@@ -248,13 +248,13 @@
<target>Atualizar atributos à direita</target>
<source>Cannot write permissions of %x.</source>
-<target>Não foi possível escrever as permissões de %x.</target>
+<target>Não é possível escrever as permissões de %x.</target>
<source>Operation not supported for different base folder types.</source>
<target>Operação não suportada para tipos de pastas de base diferentes.</target>
<source>Cannot write file %x.</source>
-<target>Não foi possível escrever o arquivo %x.</target>
+<target>Não é possível escrever o arquivo %x.</target>
<source>
Unexpected size of data stream.
@@ -268,55 +268,55 @@ Atual: %y bytes
</target>
<source>Cannot copy symbolic link %x to %y.</source>
-<target>Não foi possível copiar o link simbólico %x para %y.</target>
+<target>Não é possível copiar o link simbólico %x para %y.</target>
<source>Cannot move file %x to %y.</source>
-<target>Não foi possível mover o arquivo %x para %y.</target>
+<target>Não é possível mover o arquivo %x para %y.</target>
<source>Cannot enumerate directory %x.</source>
-<target>Não foi possível enumerar o diretório %x.</target>
+<target>Não é possível enumerar o diretório %x.</target>
<source>Cannot read file attributes of %x.</source>
-<target>Não foi possível ler os atributos do arquivo %x.</target>
+<target>Não é possível ler os atributos do arquivo %x.</target>
<source>Cannot find %x.</source>
-<target>Não foi possível encontrar %x.</target>
+<target>Não é possível encontrar %x.</target>
<source>Cannot open file %x.</source>
-<target>Não foi possível abrir o arquivo %x.</target>
+<target>Não é possível abrir o arquivo %x.</target>
<source>Cannot read file %x.</source>
-<target>Não foi possível ler o arquivo %x.</target>
+<target>Não é possível ler o arquivo %x.</target>
<source>Cannot find device %x.</source>
-<target>Não foi possível encontrar o dispositivo %x.</target>
+<target>Não é possível encontrar o dispositivo %x.</target>
<source>Cannot create directory %x.</source>
-<target>Não foi possível criar o diretório %x.</target>
+<target>Não é possível criar o diretório %x.</target>
<source>Cannot delete directory %x.</source>
-<target>Não foi possível apagar o diretório %x.</target>
+<target>Não é possível apagar o diretório %x.</target>
<source>Cannot delete file %x.</source>
-<target>Não foi possível apagar o arquivo %x.</target>
+<target>Não é possível apagar o arquivo %x.</target>
<source>Cannot write modification time of %x.</source>
-<target>Não foi possível escrever a data de modificação de %x.</target>
+<target>Não é possível escrever a data de modificação de %x.</target>
<source>Cannot determine final path for %x.</source>
-<target>Não foi possível determinar o caminho final para %x.</target>
+<target>Não é possível determinar o caminho final para %x.</target>
<source>Cannot resolve symbolic link %x.</source>
-<target>Não foi possível resolver o link simbólico %x.</target>
+<target>Não é possível resolver o link simbólico %x.</target>
<source>Cannot open directory %x.</source>
-<target>Não foi possível abrir o diretório %x.</target>
+<target>Não é possível abrir o diretório %x.</target>
<source>Cannot determine free disk space for %x.</source>
-<target>Não foi possível determinar o espaço livre em disco para %x.</target>
+<target>Não é possível determinar o espaço livre em disco para %x.</target>
<source>Unable to move %x to the recycle bin.</source>
-<target>Não foi possível mover %x para a Lixeira.</target>
+<target>Não é possível mover %x para a Lixeira.</target>
<source>Incorrect command line:</source>
<target>Linha de comando incorreta:</target>
@@ -325,7 +325,7 @@ Atual: %y bytes
<target>Código do Erro %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Não é possível conectar a %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -346,10 +346,10 @@ Atual: %y bytes
<target>%x GB</target>
<source>Cannot load file %x.</source>
-<target>Não foi possível carregar o aquivo %x.</target>
+<target>Não é possível carregar o aquivo %x.</target>
<source>Database file %x is incompatible.</source>
-<target>O arquivo de banco de dados %x é incompatível.</target>
+<target>Arquivo de banco de dados %x incompatível.</target>
<source>Initial synchronization:</source>
<target>Sincronização inicial:</target>
@@ -358,10 +358,10 @@ Atual: %y bytes
<target>O arquivo de banco de dados %x ainda não existe.</target>
<source>Database file is corrupt:</source>
-<target>O arquivo de banco de dados está corrompido:</target>
+<target>Arquivo de banco de dados corrompido:</target>
<source>Database files do not share a common session.</source>
-<target>Os arquivos de banco de dados são de sessões diferentes.</target>
+<target>Arquivos de banco de dados de sessões diferentes.</target>
<source>Searching for folder %x...</source>
<target>Buscando pela pasta %x...</target>
@@ -370,7 +370,7 @@ Atual: %y bytes
<target>Tempo esgotado na procura pela pasta %x.</target>
<source>Cannot get process information.</source>
-<target>Não foi possível obter as informações do processo.</target>
+<target>Não é possível obter as informações do processo.</target>
<source>Waiting while directory is locked:</source>
<target>Aguardando enquanto o diretório é travado:</target>
@@ -383,8 +383,8 @@ Atual: %y bytes
<pluralform>%x sec</pluralform>
</source>
<target>
-<pluralform>1 seg</pluralform>
-<pluralform>%x segs</pluralform>
+<pluralform>1 s</pluralform>
+<pluralform>%x s</pluralform>
</target>
<source>Detecting abandoned lock...</source>
@@ -406,7 +406,7 @@ Atual: %y bytes
<target>Erro analisando o arquivo %x, linha %y, coluna %z.</target>
<source>Cannot set directory lock for %x.</source>
-<target>Não foi possível travar o diretório %x.</target>
+<target>Não é possível travar o diretório %x.</target>
<source>
<pluralform>1 thread</pluralform>
@@ -421,10 +421,10 @@ Atual: %y bytes
<target>Pesquisando:</target>
<source>/sec</source>
-<target>/seg</target>
+<target>/s</target>
<source>%x items/sec</source>
-<target>%x itens/seg</target>
+<target>%x itens/s</target>
<source>Show in Explorer</source>
<target>Mostrar no Explorer</target>
@@ -436,13 +436,13 @@ Atual: %y bytes
<target>Procurar diretório</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>Não foi possível acessar o Serviço de Cópia de Sombra de Volume.</target>
+<target>Não é possível acessar o Serviço de Cópia de Sombra de Volume.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Execute versão 64-bits do FreeFileSync para criar cópia de sombra neste sistema.</target>
<source>Cannot determine volume name for %x.</source>
-<target>Não foi possível determinar o nome do volume para %x.</target>
+<target>Não é possível determinar o nome do volume para %x.</target>
<source>Volume name %x is not part of file path %y.</source>
<target>O nome do volume %x não faz parte do caminho do arquivo %y.</target>
@@ -451,13 +451,13 @@ Atual: %y bytes
<target>Interromper solicitado: Aguardando operação ser finalizada...</target>
<source>Unable to create time stamp for versioning:</source>
-<target>Não foi possível criar a estampa de tempo para o controle de versões:</target>
+<target>Não é possível criar a estampa de tempo para o controle de versões:</target>
<source>Drag && drop</source>
<target>Arrastar && Soltar</target>
<source>Cannot find folder %x.</source>
-<target>Não foi possível encontrar a pasta %x.</target>
+<target>Não é possível encontrar a pasta %x.</target>
<source>Select a folder</source>
<target>Selecionar uma pasta</target>
@@ -487,13 +487,13 @@ Atual: %y bytes
<target>Uso:</target>
<source>1. Select folders to watch.</source>
-<target>1. Selecione as pastas para monitorar.</target>
+<target>1. Selecionar as pastas para monitorar.</target>
<source>2. Enter a command line.</source>
-<target>2. Entre uma linha de comando.</target>
+<target>2. Inserir uma linha de comando.</target>
<source>3. Press 'Start'.</source>
-<target>3. Pressione 'Iniciar'.</target>
+<target>3. Pressionar 'Iniciar'.</target>
<source>To get started just import a .ffs_batch file.</source>
<target>Para iniciar importe um arquivo .ffs_batch.</target>
@@ -514,7 +514,7 @@ Atual: %y bytes
<target>Tempo de espera (em segundos):</target>
<source>Idle time between last detected change and execution of command</source>
-<target>Tempo de espera entre última mudança detectada e execução do comando</target>
+<target>Tempo de espera entre última alteração detectada e execução do comando</target>
<source>Command line:</source>
<target>Linha de comando:</target>
@@ -527,7 +527,7 @@ The command is triggered if:
<target>
O comando é disparado se:
- arquivos ou subpastas são alterados
-- novas pastas aparecem (p. ex. Pen drive inserido)
+- novas pastas aparecem (ex. Pendrive inserido)
</target>
<source>Start</source>
@@ -561,7 +561,7 @@ O comando é disparado se:
<target>&Mostrar erro</target>
<source>&Quit</source>
-<target>Sai&r</target>
+<target>&Encerrar</target>
<source>&Retry</source>
<target>&Tentar Novamente</target>
@@ -615,7 +615,7 @@ O comando é disparado se:
<target>Atualizando atributos de %x</target>
<source>Cannot write file attributes of %x.</source>
-<target>Não foi possível escrever os atributos de arquivo de %x.</target>
+<target>Não é possível escrever os atributos de arquivo de %x.</target>
<source>%x and %y have different content.</source>
<target>%x e %y têm conteúdos diferentes.</target>
@@ -633,16 +633,16 @@ O comando é disparado se:
<target>Campo de entrada da pasta de destino não pode ficar vazio.</target>
<source>Source folder %x not found.</source>
-<target>Pasta de origem %x não foi encontrada.</target>
+<target>Pasta de origem %x não encontrada.</target>
<source>Please enter a target folder for versioning.</source>
-<target>Por favor, entre com uma pasta destino para controle de versões.</target>
+<target>Insira uma pasta de destino para controle de versões.</target>
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Os seguintes itens possuem conflitos não resolvidos e não serão sincronizados:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>As seguintes pastas são significativamente diferentes. Tenha certeza que você selecionou as pastas corretas para sincronização.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>As seguintes pastas são muito diferentes. Verifique se as pastas corretas estão selecionadas.</target>
<source>Not enough free disk space available in:</source>
<target>Espaço em disco insuficiente em:</target>
@@ -654,7 +654,7 @@ O comando é disparado se:
<target>Disponível:</target>
<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target>Múltiplos pares de pastas estão escrevendo em uma mesma subpasta. Favor rever sua configuração.</target>
+<target>Múltiplos pares de pastas escrevendo em uma mesma subpasta. Favor rever a configuração.</target>
<source>Synchronizing folder pair:</source>
<target>Sincronizando par de pastas:</target>
@@ -678,13 +678,13 @@ O comando é disparado se:
<target>Sincronização finalizada com avisos</target>
<source>Warning</source>
-<target>Avisos</target>
+<target>Aviso</target>
<source>Nothing to synchronize</source>
<target>Nada para sincronizar</target>
<source>Synchronization completed successfully</source>
-<target>Sincronização finalizada com sucesso</target>
+<target>Sincronização finalizada com êxito</target>
<source>Cleaning up old log files...</source>
<target>Limpando arquivo de log antigo...</target>
@@ -693,7 +693,7 @@ O comando é disparado se:
<target>Você pode alternar para a janela principal do FreeFileSync para resolver este problema.</target>
<source>&Don't show this warning again</source>
-<target>&Não mostrar este aviso novamente</target>
+<target>&Não mostrar mais este aviso</target>
<source>&Ignore</source>
<target>&Ignorar</target>
@@ -702,7 +702,7 @@ O comando é disparado se:
<target>&Alterar</target>
<source>Switching to FreeFileSync's main window</source>
-<target>Mudando para a janela principal do FreeFileSync</target>
+<target>Alternando para a janela principal do FreeFileSync</target>
<source>
<pluralform>Automatic retry in 1 second...</pluralform>
@@ -722,23 +722,20 @@ O comando é disparado se:
<source>Serious Error</source>
<target>Erro Grave</target>
-<source>Symlink</source>
-<target>Link Simbólico</target>
-
<source>Folder</source>
<target>Pasta</target>
+<source>Symlink</source>
+<target>Link Simbólico</target>
+
<source>Full path</source>
<target>Caminho completo</target>
-<source>Name</source>
-<target>Nome</target>
-
-<source>Relative folder</source>
-<target>Pasta relativa</target>
+<source>Relative path</source>
+<target>Caminho relativo</target>
-<source>Base folder</source>
-<target>Pasta base</target>
+<source>Item name</source>
+<target>Nome do item</target>
<source>Size</source>
<target>Tamanho</target>
@@ -786,7 +783,7 @@ O comando é disparado se:
<target>A pasta selecionada %x não pode ser usada com o FreeFileSync.</target>
<source>Please select a folder on a local file system, network or an MTP device.</source>
-<target>Por favor, selecione uma pasta em um sistema de arquivos local, de rede ou de um dispositivo MTP.</target>
+<target>Selecione uma pasta em um sistema de arquivos local, de rede ou de um dispositivo MTP.</target>
<source>SFTP folder</source>
<target>Pasta SFTP</target>
@@ -915,13 +912,13 @@ O comando é disparado se:
<target>Par de pastas:</target>
<source>Main settings:</source>
-<target></target>
+<target>Configurações principais:</target>
<source>Use local settings:</source>
<target>Usar configurações locais:</target>
<source>Select a variant:</source>
-<target>Selecione uma variante:</target>
+<target>Selecionar uma variante:</target>
<source>Include &symbolic links:</source>
<target>Incluir &links simbólicos:</target>
@@ -972,13 +969,13 @@ O comando é disparado se:
<target>Máximo:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>Selecione regras de filtro para excluir certos arquivos da sincronização. Entre com os caminhos relativos dos pares de pastas correspondentes.</target>
+<target>Selecionar regras de filtro para excluir certos arquivos da sincronização. Inserir os caminhos relativos dos pares de pastas correspondentes.</target>
<source>C&lear</source>
<target>&Limpar</target>
<source>Detect synchronization directions with the help of database files</source>
-<target>Detecta a direção de sincronização com a ajuda do arquivo de banco de dados</target>
+<target>Detectar a direção de sincronização com a ajuda do arquivo de banco de dados</target>
<source>Detect moved files</source>
<target>Detectar arquivos movidos</target>
@@ -1025,10 +1022,10 @@ O comando é disparado se:
<target>&Pop-up</target>
<source>Show pop-up on errors or warnings</source>
-<target>Mostra pop-up em caso de erros ou avisos</target>
+<target>Mostrar pop-up em caso de erros ou avisos</target>
<source>Hide all error and warning messages</source>
-<target>Oculta todas as mensagens de erros e avisos</target>
+<target>Ocultar todas as mensagens de erros e avisos</target>
<source>On completion:</source>
<target>Ao finalizar:</target>
@@ -1040,7 +1037,7 @@ O comando é disparado se:
<target>Organizar par de pastas</target>
<source>Enter your SFTP login details:</source>
-<target>Entre com seus detalhes de login do SFTP:</target>
+<target>Inserir os detalhes de login do SFTP:</target>
<source>Server name or IP address:</source>
<target>Nome do servidor ou endereço IP:</target>
@@ -1061,7 +1058,7 @@ O comando é disparado se:
<target>Diretório no servidor:</target>
<source>Select a directory on the server:</source>
-<target>Selecione um diretório no servidor:</target>
+<target>Selecionar um diretório no servidor:</target>
<source>Select Folder</source>
<target>Selecionar Pasta</target>
@@ -1073,7 +1070,7 @@ O comando é disparado se:
<target>Variante:</target>
<source>&Don't show this dialog again</source>
-<target>&Não mostrar este diálogo novamente</target>
+<target>&Não mostrar esta caixa de diálogo novamente</target>
<source>Items found:</source>
<target>Elementos encontrados:</target>
@@ -1084,6 +1081,12 @@ O comando é disparado se:
<source>Time elapsed:</source>
<target>Tempo decorrido:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Itens:</target>
+
<source>Synchronizing...</source>
<target>Sincronizando...</target>
@@ -1103,13 +1106,13 @@ O comando é disparado se:
<target>Interromper</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Cria um arquivo de tarefa em lote para sincronização desatendida. Para iniciar, dê um clique duplo neste arquivo ou agende no agendador de tarefas: %x</target>
+<target>Criar um arquivo de tarefa em lote para sincronização desatendida. Para iniciar, dê um clique duplo neste arquivo ou agende no agendador de tarefas: %x</target>
<source>&Stop</source>
<target>&Parar</target>
<source>Stop synchronization at first error</source>
-<target>Interrompe a sincronização ao primeiro erro</target>
+<target>Interromper a sincronização ao primeiro erro</target>
<source>Run minimized</source>
<target>Executar minimizado</target>
@@ -1121,7 +1124,7 @@ O comando é disparado se:
<target>Limite:</target>
<source>Limit maximum number of log files</source>
-<target>Limita número máximo de arquivos de log</target>
+<target>Limitar número máximo de arquivos de log</target>
<source>How can I schedule a batch job?</source>
<target>Como posso agendar uma tarefa em lote?</target>
@@ -1140,7 +1143,7 @@ Copy to a temporary file (*.ffs_tmp) before overwriting target.
This guarantees a consistent state even in case of a serious error.
</source>
<target>
-Copia para um arquivo temporário (*.ffs_tmp) antes de substituir o destino.
+Copiar para um arquivo temporário (*.ffs_tmp) antes de substituir o destino.
Isto garante um estado consistente mesmo em caso de erro grave.
</target>
@@ -1148,13 +1151,13 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>(recomendado)</target>
<source>Copy shared or locked files using the Volume Shadow Copy Service.</source>
-<target>Copia arquivos compartilhados ou bloqueados usando o Serviço de Cópia de Sombra de Volume.</target>
+<target>Copiar arquivos compartilhados ou bloqueados usando o Serviço de Cópia de Sombra de Volume.</target>
<source>(requires administrator rights)</source>
<target>(requer direitos de administrador)</target>
<source>Transfer file and folder permissions.</source>
-<target>Transfere permissões de arquivos e pastas.</target>
+<target>Transferir permissões de arquivos e pastas.</target>
<source>Automatic retry on error:</source>
<target>Nova tentativa em caso de erro:</target>
@@ -1172,10 +1175,10 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Descrição</target>
<source>Show hidden dialogs again</source>
-<target>Mostrar diálogos ocultados</target>
+<target>Mostrar caixas de diálogo ocultadas</target>
<source>Show all permanently hidden dialogs and warning messages again</source>
-<target>Mostra todos os diálogos e mensagens de alerta permanentemente ocultados</target>
+<target>Mostra todos as caixas de diálogo e mensagens de aviso permanentemente ocultadas</target>
<source>&Default</source>
<target>&Config. Padrão</target>
@@ -1249,6 +1252,9 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>A new version of FreeFileSync is available:</source>
<target>Uma nova versão do FreeFileSync está disponível:</target>
+<source>Local path not available for %x.</source>
+<target>Caminho local não disponível para %x.</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1352,10 +1358,10 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Tarefa em lote do FreeFileSync</target>
<source>Do you want to save changes to %x?</source>
-<target>Gostaria de salvar as alterações para %x?</target>
+<target>Deseja salvar as alterações para %x?</target>
<source>Never save &changes</source>
-<target>Nunca salvar as &modificações</target>
+<target>Nunca salvar as &alterações</target>
<source>Do&n't save</source>
<target>&Não salvar</target>
@@ -1421,7 +1427,7 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Todos os arquivos estão sincronizados</target>
<source>Cannot find %x</source>
-<target>Não foi possível localizar %x</target>
+<target>Não é possível localizar %x</target>
<source>Move up</source>
<target>Mover para cima</target>
@@ -1469,7 +1475,7 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Informações</target>
<source>Select all</source>
-<target>Seleciona todos</target>
+<target>Selecionar todos</target>
<source>&Continue</source>
<target>&Continuar</target>
@@ -1493,7 +1499,7 @@ Isto garante um estado consistente mesmo em caso de erro grave.
</target>
<source>Please enter a target folder.</source>
-<target>Por favor, entre com uma pasta de destino.</target>
+<target>Insira uma pasta de destino.</target>
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
@@ -1522,44 +1528,44 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrar aplicações externas no menu de contexto. As seguintes macros estão disponíveis:</target>
-<source>- full file or folder name</source>
-<target>- nome completo do arquivo ou pasta</target>
+<source>Full file or folder path</source>
+<target>Arquivo completo ou caminho da pasta</target>
-<source>- folder part only</source>
-<target>- apenas parte da pasta</target>
+<source>Parent folder path</source>
+<target>Caminho da pasta principal</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Contrapartida do outro lado para %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Cópia local temporária para armazenamento SFTP e MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Contrapartida do outro lado para %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parâmetros para o lado oposto</target>
<source>Show hidden dialogs and warning messages again?</source>
-<target>Mostrar diálogos e mensagens de alerta ocultados novamente?</target>
+<target>Mostrar caixas de diálogo e mensagens de aviso ocultadas novamente?</target>
<source>&Show</source>
<target>&Mostrar</target>
<source>Identify equal files by comparing modification time and size.</source>
-<target>Identifica arquivos iguais comparando modificações na data e no tamanho.</target>
+<target>Identificar arquivos iguais comparando modificações na data e no tamanho.</target>
<source>Identify equal files by comparing the file content.</source>
-<target>Identifica arquivos iguais comparando o conteúdo do arquivo.</target>
+<target>Identificar arquivos iguais comparando o conteúdo do arquivo.</target>
<source>Identify equal files by comparing their file size.</source>
-<target>Identifica arquivos iguais comparando os seus tamanhos.</target>
+<target>Identificar arquivos iguais comparando os seus tamanhos.</target>
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
-<target>Identifica e propaga as mudanças em ambos os lados. Arquivos e pastas apagados e/ou movidos e conflitos são detectados automaticamente usando um banco de dados.</target>
+<target>Identificar e propagar as alterações em ambos os lados. Arquivos e pastas apagados e/ou movidos e conflitos são detectados automaticamente usando um banco de dados.</target>
<source>Create a mirror backup of the left folder by adapting the right folder to match.</source>
-<target>Cria uma cópia espelho da pasta da esquerda adaptando a pasta da direita para igualar.</target>
+<target>Criar uma cópia espelho da pasta da esquerda adaptando a pasta da direita para igualar.</target>
<source>Copy new and updated files to the right folder.</source>
-<target>Copia arquivos novos ou atualizados para a pasta da direita.</target>
+<target>Copiar arquivos novos ou atualizados para a pasta da direita.</target>
<source>Configure your own synchronization rules.</source>
-<target>Configure as suas próprias regras de sincronização.</target>
+<target>Configurar as suas próprias regras de sincronização.</target>
<source>Synchronization Settings</source>
<target>Configurações de Sincronização</target>
@@ -1598,13 +1604,13 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Substituir</target>
<source>Move files and replace if existing</source>
-<target>Move arquivos e substitui se existente</target>
+<target>Mover arquivos e substituir se existente</target>
<source>Time stamp</source>
<target>Estampa de tempo</target>
<source>Append a time stamp to each file name</source>
-<target>Coloca uma estampa de tempo para cada nome de arquivo</target>
+<target>Colocar uma estampa de tempo para cada nome de arquivo</target>
<source>Main config</source>
<target>Config. principal</target>
@@ -1624,6 +1630,9 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Files</source>
<target>Arquivos</target>
+<source>Name</source>
+<target>Nome</target>
+
<source>Items</source>
<target>Itens</target>
@@ -1637,55 +1646,55 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Baixar agora?</target>
<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync está atualizado.</target>
+<target>O FreeFileSync está atualizado.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Não é possível encontrar a versão do FreeFileSync online. É provável que exista uma nova versão. Verificar manualmente?</target>
<source>&Check</source>
<target>&Verificar</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Verificação de consistência falhou para %x.</target>
<source>Cannot find system function %x.</source>
-<target>Não foi possível localizar a função de sistema %x.</target>
+<target>Não é possível localizar a função de sistema %x.</target>
<source>Unable to register to receive system messages.</source>
-<target>Não foi possível registrar para receber mensagens do sistema.</target>
+<target>Não é possível registrar para receber mensagens do sistema.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Arquivos de instalação corrompidos. Reinstale o FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
-<target>Não foi possível registrar notificações para %x.</target>
+<target>Não é possível registrar notificações para %x.</target>
<source>Cannot monitor directory %x.</source>
-<target>Não foi possível monitorar o diretório %x.</target>
+<target>Não é possível monitorar o diretório %x.</target>
<source>The file is locked by another process:</source>
<target>O arquivo está bloqueado por outro processo:</target>
<source>Cannot read security context of %x.</source>
-<target>Não foi possível ler o contexto de segurança de %x.</target>
+<target>Não é possível ler o contexto de segurança de %x.</target>
<source>Cannot write security context of %x.</source>
-<target>Não foi possível escrever o contexto de segurança de %x.</target>
+<target>Não é possível escrever o contexto de segurança de %x.</target>
<source>Cannot read permissions of %x.</source>
-<target>Não foi possível ler as permissões de %x.</target>
+<target>Não é possível ler as permissões de %x.</target>
<source>Cannot copy permissions from %x to %y.</source>
-<target>Não foi possível copiar as permissões de %x para %y.</target>
+<target>Não é possível copiar as permissões de %x para %y.</target>
<source>%x is not a regular directory name.</source>
<target>%x não é um nome de diretório regular.</target>
<source>Cannot copy file %x to %y.</source>
-<target>Não foi possível copiar o arquivo %x para %y.</target>
+<target>Não é possível copiar o arquivo %x para %y.</target>
<source>Cannot copy attributes from %x to %y.</source>
-<target>Não foi possível copiar os atributos de %x para %y.</target>
+<target>Não é possível copiar os atributos de %x para %y.</target>
<source>Type of item %x is not supported:</source>
<target>Tipo de item %x não é suportado:</target>
@@ -1724,13 +1733,13 @@ Isto garante um estado consistente mesmo em caso de erro grave.
</target>
<source>Cannot set privilege %x.</source>
-<target>Não foi possível estabelecer o privilégio %x.</target>
+<target>Não é possível estabelecer o privilégio %x.</target>
<source>Unable to suspend system sleep mode.</source>
-<target>Não foi possível suspender o modo de espera do sistema.</target>
+<target>Não é possível suspender o modo de espera do sistema.</target>
<source>Cannot change process I/O priorities.</source>
-<target>Não foi possível mudar a prioridade de E/S do processo.</target>
+<target>Não é possível alterar a prioridade de E/S do processo.</target>
<source>Checking recycle bin failed for folder %x.</source>
<target>Verificando falha na Lixeira para pasta %x.</target>
@@ -1739,7 +1748,7 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Os seguintes elementos XML não puderam ser lidos:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target>Arquivo de configuração %x está incompleto. Os elementos faltantes serão configurados com seus valores padrões.</target>
+<target>Arquivo de configuração %x incompleto. Os elementos faltantes serão configurados com seus valores padrões.</target>
<source>Internet access failed.</source>
<target>Acesso à internet falhou.</target>
@@ -1748,10 +1757,10 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Preparando a instalação</target>
<source>Choose which components you want to install.</source>
-<target>Escolha os componentes a serem instalados.</target>
+<target>Escolher os componentes a serem instalados.</target>
<source>Select installation type:</source>
-<target>Selecione o tipo de instalação:</target>
+<target>Selecionar o tipo de instalação:</target>
<source>Local</source>
<target>Local</target>
@@ -1763,25 +1772,25 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>recomendado</target>
<source>Save settings to "%APPDATA%\FreeFileSync"</source>
-<target>Salva as configurações em "%APPDATA%\FreeFileSync"</target>
+<target>Salvar as configurações em "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target>Registra as extensões de arquivos do FreeFileSync</target>
+<target>Registrar as extensões de arquivos do FreeFileSync</target>
<source>Create Explorer context menu entries</source>
-<target>Cria entrada no menu de contexto do Explorer</target>
+<target>Criar entrada no menu de contexto do Explorer</target>
<source>Save settings in installation directory</source>
-<target>Salva as configurações no diretório de instalação</target>
+<target>Salvar as configurações no diretório de instalação</target>
<source>Do not write to Registry</source>
-<target>Não escreve no Registro</target>
+<target>Não escrever no Registro</target>
<source>Just copy the files</source>
-<target>Apenas copia os arquivos</target>
+<target>Apenas copiar os arquivos</target>
<source>Choose a directory for installation:</source>
-<target>Escolha um diretório para a instalação:</target>
+<target>Escolhar um diretório para a instalação:</target>
<source>Create shortcuts:</source>
<target>Criar atalhos:</target>
@@ -1817,8 +1826,14 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<target>Obrigado pela sua doação e suporte!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>O instalador do FreeFileSync para doadores alcançou o limite diário de instalações.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Baixar a versão regular no site do FreeFileSync agora?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>A versão portátil não pode ser instalada na pasta selecionada.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Escolha o tipo de instalação local ou selecione uma pasta diferente para instalação.</target>
diff --git a/FreeFileSync/Build/Languages/romanian.lng b/FreeFileSync/Build/Languages/romanian.lng
index f301041f..02f931e8 100644
--- a/FreeFileSync/Build/Languages/romanian.lng
+++ b/FreeFileSync/Build/Languages/romanian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nu pot găsi dosarele următoare:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Dacă ignori această eroare, dosarele lipsă vor fi considerate goale. Dosarele lipsă vor fi create automat la nevoie.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Dacă această eroare este ignorată, dosarele lipsă vor fi considerate goale. Dosarele lipsă vor fi create automat la nevoie.</target>
<source>A folder input field is empty.</source>
<target>Un cîmp de introducere a dosarului este gol.</target>
@@ -155,10 +155,10 @@
<target>Copiază filele în modul protejat la eșec [fail-safe]</target>
<source>Enabled</source>
-<target></target>
+<target>Activat</target>
<source>Disabled</source>
-<target></target>
+<target>Dezactivat</target>
<source>Copy locked files</source>
<target>Copiază filele partajate [shared] sau zăvorîte [locked]</target>
@@ -167,22 +167,22 @@
<target>Copiază permisiunile de acces ale filelor</target>
<source>File time tolerance</source>
-<target></target>
+<target>Toleranța timpului filei</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Expirarea accesului la dosar</target>
<source>Run with background priority</source>
-<target></target>
+<target>Rulează cu prioritate de fundal [background]</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Zăvorăște [lock] dosarele în timpul sincronizării</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verifică filele copiate</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Folosirea de setări globale non-implicite:</target>
<source>Starting comparison</source>
<target>Pornesc compararea</target>
@@ -273,6 +273,12 @@ Actuală: %y baiți
<source>Cannot move file %x to %y.</source>
<target>Nu pot muta fila %x în %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Nu mă pot conecta la %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Nu pot deschide dosarul %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Nu pot enumera dosarul %x.</target>
@@ -309,9 +315,6 @@ Actuală: %y baiți
<source>Cannot resolve symbolic link %x.</source>
<target>Nu pot rezolva legătura simbolică %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Nu pot deschide dosarul %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Nu pot determina spațiul liber de stocare pentru %x.</target>
@@ -321,12 +324,6 @@ Actuală: %y baiți
<source>Incorrect command line:</source>
<target>Linie de comandă incorectă:</target>
-<source>Error Code %x:</source>
-<target>Cod de Eroare %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -442,7 +439,7 @@ Actuală: %y baiți
<target>Nu pot accesa Serviciul de Conservare a Volumelor [Volume Shadow Copy].</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Folosește versiunea pe 64-biți a FreeFileSync pentru a crea conservări (copii de rezervă) pe acest sistem.</target>
<source>Cannot determine volume name for %x.</source>
<target>Nu pot determina numele volumului pentru %x.</target>
@@ -644,7 +641,7 @@ Comanda este declanșată dacă:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Există conflicte nerezolvate la elementele listate mai jos, deci ele nu vor fi sincronizate:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
<target>Dosarele următoare au diferențe semnificative. Asigură-te că ai selectat dosarele corecte pentru sincronizare.</target>
<source>Not enough free disk space available in:</source>
@@ -726,23 +723,20 @@ Comanda este declanșată dacă:
<source>Serious Error</source>
<target>Eroare Serioasă</target>
-<source>Symlink</source>
-<target>Simlegătură</target>
-
<source>Folder</source>
<target>Dosar</target>
+<source>Symlink</source>
+<target>Simlegătură</target>
+
<source>Full path</source>
<target>Cale Completă</target>
-<source>Name</source>
-<target>Nume</target>
-
-<source>Relative folder</source>
-<target>Dosar Relativ</target>
+<source>Relative path</source>
+<target>Calea Relativă</target>
-<source>Base folder</source>
-<target>Dosar Bază (Rădăcină)</target>
+<source>Item name</source>
+<target>Numele Elementului</target>
<source>Size</source>
<target>Mărime</target>
@@ -919,7 +913,7 @@ Comanda este declanșată dacă:
<target>Perechea de Dosare:</target>
<source>Main settings:</source>
-<target></target>
+<target>Setările Principale:</target>
<source>Use local settings:</source>
<target>Folosește setările locale:</target>
@@ -1088,6 +1082,12 @@ Comanda este declanșată dacă:
<source>Time elapsed:</source>
<target>Timp Scurs:</target>
+<source>Bytes:</source>
+<target>Baiți:</target>
+
+<source>Items:</source>
+<target>Elemente:</target>
+
<source>Synchronizing...</source>
<target>Sincronizare Aflată în Curs...</target>
@@ -1251,7 +1251,10 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<target>&Descarcă</target>
<source>A new version of FreeFileSync is available:</source>
-<target></target>
+<target>Este disponibilă o versiune nouă de FreeFileSync:</target>
+
+<source>Local path not available for %x.</source>
+<target>Calea locală nu este disponibilă pentru %x.</target>
<source>Confirm</source>
<target>Confirmă</target>
@@ -1533,17 +1536,17 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Comenzi pentru aplicații externe incluse în meniul contextual al softului. Sînt disponibile următoarele macrocomenzi:</target>
-<source>- full file or folder name</source>
-<target>- numele complet al filei sau dosarului</target>
+<source>Full file or folder path</source>
+<target>Calea completă a filei sau dosarului</target>
-<source>- folder part only</source>
-<target>- doar pentru partea dosarului</target>
+<source>Parent folder path</source>
+<target>Calea dosarului părinte</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- corespondentul din partea opusă al lui %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Copie locală temporară pentru stocarea SFTP sau MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- corespondentul din partea opusă al lui %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametrii pentru partea opusă</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Arăt din nou dialogurile și mesajele de eroare ascunse?</target>
@@ -1635,6 +1638,9 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Files</source>
<target>File</target>
+<source>Name</source>
+<target>Nume</target>
+
<source>Items</source>
<target>Elemente</target>
@@ -1648,16 +1654,16 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<target>Vrei s-o descarci acum ?</target>
<source>FreeFileSync is up to date.</source>
-<target></target>
+<target>Ai deja ultima versiune de FreeFileSync.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Nu pot găsi pe internet numărul versiunii curente de FreeFileSync. O versiune mai nouă e probabil disponibilă. Vrei să verifici manual acum?</target>
<source>&Check</source>
<target>&Verifică</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Verificarea consecvenței datelor a eșuat pentru %x.</target>
<source>Cannot find system function %x.</source>
<target>Nu pot găsi funcția de sistem %x.</target>
@@ -1666,7 +1672,7 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<target>Nu pot înregistra softul pentru a primi mesaje de la sistemul de operare.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Pachetul de instalare este stricat (corupt). Reinstalează FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nu pot înregistra notificările dispozitivului pentru %x.</target>
@@ -1746,6 +1752,9 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Cannot change process I/O priorities.</source>
<target>Nu pot schimba prioritățile I/O ale procesului.</target>
+<source>Error Code %x:</source>
+<target>Cod de Eroare %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Verificarea disponibilității Reciclatorului a eșuat pentru dosarul %x.</target>
@@ -1831,8 +1840,14 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<target>Mulțumiri pentru donația și sprijinul tău!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Acest instalator FreeFileSync pentru donatori și-a atins limita zilnică de instalări permise.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Descarci acum versiunea obișnuită de pe situl FreeFileSync?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Versiunea portabilă nu poate fi instalată în dosarul selectat.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Alege instalarea locală sau selectează un dosar diferit pentru instalare.</target>
diff --git a/FreeFileSync/Build/Languages/russian.lng b/FreeFileSync/Build/Languages/russian.lng
index b97defb5..620d79bd 100644
--- a/FreeFileSync/Build/Languages/russian.lng
+++ b/FreeFileSync/Build/Languages/russian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Невозможно найти следующие папки:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Если вы игнорируете эту ошибку, то папки выше будут рассматриваться как пустые. Недостающие папки создаются автоматически, когда это необходимо.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Если эта ошибка будет проигнорирована, то папки выше будут рассматриваться как пустые. Недостающие папки создаются автоматически, когда это необходимо.</target>
<source>A folder input field is empty.</source>
<target>Поле ввода папки пустое.</target>
@@ -155,10 +155,10 @@
<target>Отказоустойчивое копирование файла</target>
<source>Enabled</source>
-<target></target>
+<target>Разрешено</target>
<source>Disabled</source>
-<target></target>
+<target>Запрещено</target>
<source>Copy locked files</source>
<target>Копирование заблокированных файлов</target>
@@ -167,22 +167,22 @@
<target>Копирование прав доступа к файлам</target>
<source>File time tolerance</source>
-<target></target>
+<target>Допускаемая разница во времени изменения файла</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Тайм-аут доступа к папкам</target>
<source>Run with background priority</source>
-<target></target>
+<target>Запустить с фоновым приоритетом</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Блокировать папки во время синхронизации</target>
<source>Verify copied files</source>
-<target></target>
+<target>Проверить скопированные файлы</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Использование нестандартных глобальных настроек:</target>
<source>Starting comparison</source>
<target>Начать сравнение</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Код ошибки %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Невозможно соединиться с %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -442,7 +442,7 @@ Actual: %y bytes
<target>Невозможно получить доступ к службе Теневого Копирования Тома.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Пожалуйста, запустите 64-битную версию FreeFileSync, чтобы создать теневые копии на этой системе.</target>
<source>Cannot determine volume name for %x.</source>
<target>Невозможно определить имя тома для %x.</target>
@@ -644,8 +644,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следующие элементы имеют неурегулированные конфликты и не будут синхронизированы:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Следующие папки значительно отличаются. Убедитесь, что вы выбрали правильные папки для синхронизации.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Следующие папки значительно отличаются. Пожалуйста, проверьте, что выбраны правильные папки для синхронизации.</target>
<source>Not enough free disk space available in:</source>
<target>Не достаточно свободного места в:</target>
@@ -726,23 +726,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>Серьезная ошибка</target>
-<source>Symlink</source>
-<target>Символьная ссылка</target>
-
<source>Folder</source>
<target>Папка</target>
+<source>Symlink</source>
+<target>Символьная ссылка</target>
+
<source>Full path</source>
<target>Полный путь</target>
-<source>Name</source>
-<target>Имя</target>
-
-<source>Relative folder</source>
-<target>Относительная папка</target>
+<source>Relative path</source>
+<target>Относительный путь</target>
-<source>Base folder</source>
-<target>Основная папка</target>
+<source>Item name</source>
+<target>Название элемента</target>
<source>Size</source>
<target>Размер</target>
@@ -919,7 +916,7 @@ The command is triggered if:
<target>Пара папок:</target>
<source>Main settings:</source>
-<target></target>
+<target>Основные настройки:</target>
<source>Use local settings:</source>
<target>Использовать локальные настройки:</target>
@@ -1088,6 +1085,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Времени прошло:</target>
+<source>Bytes:</source>
+<target>Байт(ы):</target>
+
+<source>Items:</source>
+<target>Элементы:</target>
+
<source>Synchronizing...</source>
<target>Синхронизация...</target>
@@ -1253,6 +1256,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Доступна новая версия FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Локальный путь не доступен для %x.</target>
+
<source>Confirm</source>
<target>Подтвердить</target>
@@ -1533,17 +1539,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Интегрируйте внешние приложения в контекстное меню. Доступны следующие команды:</target>
-<source>- full file or folder name</source>
-<target>- полный путь файла или папки</target>
+<source>Full file or folder path</source>
+<target>Полный путь файла или папки</target>
-<source>- folder part only</source>
-<target>- часть пути папки</target>
+<source>Parent folder path</source>
+<target>Путь родительской папки</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- аналог %item_path% с другой стороны</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Временная локальная копия для SFTP и MTP хранилища</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- аналог %item_folder% с другой стороны</target>
+<source>Parameters for opposite side</source>
+<target>Параметры для противоположной стороны</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Показать скрытые окна и сообщения с предупреждениями снова?</target>
@@ -1635,6 +1641,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Файлы</target>
+<source>Name</source>
+<target>Имя</target>
+
<source>Items</source>
<target>Элементы</target>
@@ -1651,13 +1660,13 @@ This guarantees a consistent state even in case of a serious error.
<target>У Вас самая последняя версия FreeFileSync.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Невозможно найти номер текущей версии FreeFileSync в Интернете. Скорее всего имеется более новая версия. Проверить вручную сейчас?</target>
<source>&Check</source>
<target>&Проверить</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Последовательная проверка не удалась для %x.</target>
<source>Cannot find system function %x.</source>
<target>Невозможно найти системную функцию %x.</target>
@@ -1666,7 +1675,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Невозможно зарегистрироваться для получения системных сообщений.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Установочные файлы повреждены. Пожалуйста, переустановите FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Не удалось зарегистрировать уведомления устройств для %x.</target>
@@ -1831,8 +1840,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Спасибо за Ваше пожертвование и поддержку!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Этот установщик FreeFileSync для доноров достиг дневного лимита установок.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Загрузить обычную версию с домашней страницы FreeFileSync сейчас?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Портативная версия не может быть установлена в выбранную папку.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Пожалуйста, выберите локальный тип установки или выберите другую папку для установки.</target>
diff --git a/FreeFileSync/Build/Languages/serbian.lng b/FreeFileSync/Build/Languages/serbian.lng
index 1e7475d1..5224f3cd 100644
--- a/FreeFileSync/Build/Languages/serbian.lng
+++ b/FreeFileSync/Build/Languages/serbian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не могу пронаћи следеће фолдере:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ако игноришете ову грешку фолдери ће се сматрати празним. Недостајући фолдери креираће се аутоматски по потреби.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ако се ова грешка игнорише фолдери ће се сматрати празним. Недостајући фолдери креираће се аутоматски по потреби.</target>
<source>A folder input field is empty.</source>
<target>Поље за одабир фолдера је празно.</target>
@@ -155,10 +155,10 @@
<target>Копирање заштићено од грешака</target>
<source>Enabled</source>
-<target></target>
+<target>Омогућено</target>
<source>Disabled</source>
-<target></target>
+<target>Онемогућено</target>
<source>Copy locked files</source>
<target>Копирај закључане датотеке</target>
@@ -167,22 +167,22 @@
<target>Копирај овлашћења приступа датотекама</target>
<source>File time tolerance</source>
-<target></target>
+<target>Толеранција времена датотеке</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Тајмаут приступа фолдеру</target>
<source>Run with background priority</source>
-<target></target>
+<target>Извршавај са приоритетом у позадини</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Закључај фолдере током синхронизације</target>
<source>Verify copied files</source>
-<target></target>
+<target>Провери копиране датотеке</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Употреба не-подразумеваних глобалних подешавања:</target>
<source>Starting comparison</source>
<target>Покретање упоређивања</target>
@@ -273,6 +273,12 @@ Actual: %y bytes
<source>Cannot move file %x to %y.</source>
<target>Не могу преместити датотеку %x у %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Не може се успоставити веза са %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Не могу отворити фолдер %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Не могу излистати фолдер %x.</target>
@@ -309,9 +315,6 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Не могу разрешити симболичну везу %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Не могу отворити фолдер %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Не могу одредити слободан простор на диску за %x.</target>
@@ -321,12 +324,6 @@ Actual: %y bytes
<source>Incorrect command line:</source>
<target>Нетачна командна линија:</target>
-<source>Error Code %x:</source>
-<target>Грешка број %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -442,7 +439,7 @@ Actual: %y bytes
<target>Не могу приступити Volume Shadow Copy сервису.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Молимо покрените 64-битну верзију FreeFileSync-а за израду shadow копија на овом систему.</target>
<source>Cannot determine volume name for %x.</source>
<target>Не могу утврдити назив партиције за %x.</target>
@@ -644,8 +641,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следеће ставке имају неразрешених конфликата и неће бити синхронизоване:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Следећи фолдери су значајно различити. Обезбедите да сте сигурно одабрали праве фолдере за синхронизацију.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Следећи фолдери су значајно различити. Молим проверите да ли сте изабрали праве фолдере за синхронизацију.</target>
<source>Not enough free disk space available in:</source>
<target>Недовољно простора на диску у:</target>
@@ -726,23 +723,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>Озбиљна грешка</target>
-<source>Symlink</source>
-<target>Сим-веза</target>
-
<source>Folder</source>
<target>Фолдер</target>
+<source>Symlink</source>
+<target>Сим-веза</target>
+
<source>Full path</source>
<target>Пуна путања</target>
-<source>Name</source>
-<target>Име</target>
-
-<source>Relative folder</source>
-<target>Релативни фолдер</target>
+<source>Relative path</source>
+<target>Релативна путања</target>
-<source>Base folder</source>
-<target>Основни фолдер</target>
+<source>Item name</source>
+<target>Име ставке</target>
<source>Size</source>
<target>Величина</target>
@@ -919,7 +913,7 @@ The command is triggered if:
<target>Фолдерски пар:</target>
<source>Main settings:</source>
-<target></target>
+<target>Главна подешавања:</target>
<source>Use local settings:</source>
<target>Употреби локална подешавања:</target>
@@ -1088,6 +1082,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Протекло време:</target>
+<source>Bytes:</source>
+<target>Бајтова:</target>
+
+<source>Items:</source>
+<target>Ставке:</target>
+
<source>Synchronizing...</source>
<target>Синхронизујем...</target>
@@ -1253,6 +1253,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Нова верзија FreeFileSync је доступна:</target>
+<source>Local path not available for %x.</source>
+<target>Локална путања није доступна за %x.</target>
+
<source>Confirm</source>
<target>Потврди</target>
@@ -1533,17 +1536,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Интегриши спољне апликације у контекстни мени. Следећи макрои су доступни:</target>
-<source>- full file or folder name</source>
-<target>- цело име датотеке или фолдера</target>
+<source>Full file or folder path</source>
+<target>Пуна путања за датотеку или фолдер</target>
-<source>- folder part only</source>
-<target>- само фолдерски део</target>
+<source>Parent folder path</source>
+<target>Путања родитељског фолдера</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Дупликат с друге стране у %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Привремена локална копија за SFTP и MTP складиште</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Дупликат с друге стране у %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Параметри за наспрамну страну</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Прикажи све скривене прозоре и упозорења поново?</target>
@@ -1635,6 +1638,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Датотеке</target>
+<source>Name</source>
+<target>Име</target>
+
<source>Items</source>
<target>Ставке</target>
@@ -1651,13 +1657,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync је ажуриран.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Не могу на мрежи пронаћи тренутни број верзије FreeFileSync-а. Нова верзија је вероватно доступна. Да ли проверити ручно сада?</target>
<source>&Check</source>
<target>&Провера</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Није успела провера конзистентности за %x.</target>
<source>Cannot find system function %x.</source>
<target>Не могу пронаћи системску функцију %x.</target>
@@ -1666,7 +1672,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Није могућа регистрација примања системских порука.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Инсталационе датотеке су оштећене. Молим инсталирајте FreeFileSync поново.</target>
<source>Unable to register device notifications for %x.</source>
<target>Не могу регистровати нотификацију уређаја за %x.</target>
@@ -1746,6 +1752,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot change process I/O priorities.</source>
<target>Не може се променити процес I/O приоритета.</target>
+<source>Error Code %x:</source>
+<target>Грешка број %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Провера доступности Корпе за смеће није успела за фолдер %x.</target>
@@ -1831,8 +1840,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Хвала за вашу донацију и подршку!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ова FreeFileSync инсталација за донаторе достигла је своју границу дневног инсталисања.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Преузети регуларну верзију са веб странице FreeFileSync-а?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Преносна верзија не може бити инсталисана у одабраном фолдеру.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Молим одаберите локални тип инсталације или одаберите други фолдер за инсталацију.</target>
diff --git a/FreeFileSync/Build/Languages/slovak.lng b/FreeFileSync/Build/Languages/slovak.lng
index 76dbaee4..490d0dcb 100644
--- a/FreeFileSync/Build/Languages/slovak.lng
+++ b/FreeFileSync/Build/Languages/slovak.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nie je možné nájsť následujúce priečinky:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Ak budete túto chybu ignorovať, priečinok bude považovaný za prázdny. Chýbajuce priečinky budú podľa potreby automaticky vytvorené.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ak bude táto chyba ignorovaná, budú tieto priečinky považované za prázdne.</target>
<source>A folder input field is empty.</source>
<target>Nie je zadaná vstupný priečinok.</target>
@@ -155,10 +155,10 @@
<target>Bezpečné kopírovanie súborov</target>
<source>Enabled</source>
-<target></target>
+<target>Povolené</target>
<source>Disabled</source>
-<target></target>
+<target>Zakázané</target>
<source>Copy locked files</source>
<target>Kopírovať zamknuté súbory</target>
@@ -167,22 +167,22 @@
<target>Kopírovať prístupové oprávnenie súborov</target>
<source>File time tolerance</source>
-<target></target>
+<target>Časová tolerancia súboru</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Časový limit prístupu k priečinku</target>
<source>Run with background priority</source>
-<target></target>
+<target>Vykonať s prioritou na pozadí</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Uzamknúť priečinky počas synchronizácie</target>
<source>Verify copied files</source>
-<target></target>
+<target>Overiť skopírované súbory</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Použiť ne-predvolené globálne nastavenia:</target>
<source>Starting comparison</source>
<target>Spustiť porovnávania</target>
@@ -273,6 +273,12 @@ Aktuálne: %y b
<source>Cannot move file %x to %y.</source>
<target>Nie je možné presunúť súbor %x do %y.</target>
+<source>Unable to connect to %x.</source>
+<target>Nie je možné vytvoriť pripojenie k %x.</target>
+
+<source>Cannot open directory %x.</source>
+<target>Nie je možné otvoriť adresár %x.</target>
+
<source>Cannot enumerate directory %x.</source>
<target>Nie je možné prechádzať adresár %x.</target>
@@ -309,9 +315,6 @@ Aktuálne: %y b
<source>Cannot resolve symbolic link %x.</source>
<target>Nie je možné nájsť odkaz zástupcu %x.</target>
-<source>Cannot open directory %x.</source>
-<target>Nie je možné otvoriť adresár %x.</target>
-
<source>Cannot determine free disk space for %x.</source>
<target>Nie je možné zistiť voľné miesto na disku %x.</target>
@@ -321,12 +324,6 @@ Aktuálne: %y b
<source>Incorrect command line:</source>
<target>Neplatný príkaz:</target>
-<source>Error Code %x:</source>
-<target>Chybový kód %x:</target>
-
-<source>Unable to connect to %x.</source>
-<target></target>
-
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -442,7 +439,7 @@ Aktuálne: %y b
<target>Nie je prístup k službe Tieňové kópie.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Prosím spustite 64-bitovú verziu FreeFileSync, pre vytvorenie Tieň. kópie v tomto systéme.</target>
<source>Cannot determine volume name for %x.</source>
<target>>Nie je možné zistiť názov jednotky pre %x.</target>
@@ -644,8 +641,8 @@ Príkaz bude spustení ak:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Následujúce položky majú nevyriešené konflikty a nebudú synchronizované:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Následujúce priečinky sa významne lišia. Skontrolujte či máte vybránu správnu dvojicu priečinkov pre synchronizáciu.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Nasledujúce priečinky sa signifikantne líšia. Prosím overte, či sú vybrané správne priečinky pre synchronizáciu.</target>
<source>Not enough free disk space available in:</source>
<target>Nedostatok miesta na disku:</target>
@@ -726,23 +723,20 @@ Príkaz bude spustení ak:
<source>Serious Error</source>
<target>Závažná chyba</target>
-<source>Symlink</source>
-<target>Symlink</target>
-
<source>Folder</source>
<target>Priečinok</target>
+<source>Symlink</source>
+<target>Symlink</target>
+
<source>Full path</source>
<target>Plná cesta</target>
-<source>Name</source>
-<target>Názov</target>
-
-<source>Relative folder</source>
-<target>Relatívny priečinok</target>
+<source>Relative path</source>
+<target>Relatívna cesta</target>
-<source>Base folder</source>
-<target>Zlákladný priečinok</target>
+<source>Item name</source>
+<target>Názov položky</target>
<source>Size</source>
<target>Veľkosť</target>
@@ -919,7 +913,7 @@ Príkaz bude spustení ak:
<target>Dvojica priečinkov:</target>
<source>Main settings:</source>
-<target></target>
+<target>Hlavné nastavenia:</target>
<source>Use local settings:</source>
<target>Použiť lokálne nastavenie:</target>
@@ -952,7 +946,7 @@ Príkaz bude spustení ak:
<target>Používať letný čas</target>
<source>Local settings:</source>
-<target>lOKáLNE Nastavenia:</target>
+<target>Lokálne Nastavenia:</target>
<source>Include:</source>
<target>Zahrnúť:</target>
@@ -1083,11 +1077,17 @@ Príkaz bude spustení ak:
<target>Nájdených položiek:</target>
<source>Time remaining:</source>
-<target>Ostávajúci čas:</target>
+<target>Zostávajúci čas:</target>
<source>Time elapsed:</source>
<target>Uplynulý čas:</target>
+<source>Bytes:</source>
+<target>Byty(ov):</target>
+
+<source>Items:</source>
+<target>Položky(iek):</target>
+
<source>Synchronizing...</source>
<target>Synchronizujem...</target>
@@ -1250,6 +1250,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Je dostupná nová verzia FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Lokálna cesta pre %x nie je k dispozícií.</target>
+
<source>Confirm</source>
<target>Potvrdiť</target>
@@ -1530,17 +1533,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrácia externej aplikácie do kontextovéj ponuky. K dispozici jsou následující makrá:</target>
-<source>- full file or folder name</source>
-<target>- celá cesta alebo názov priečinka</target>
+<source>Full file or folder path</source>
+<target>Úplná cesta k súboru alebo priečinku</target>
-<source>- folder part only</source>
-<target>- iba cesta priečinka</target>
+<source>Parent folder path</source>
+<target>Cesta k nadriadenému priečinku</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- celá cesta alebo názov z opačného panelu pre %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Dočasná lokálna kópia pre SFTP a MTP úložisko</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- iba cesta z opačného panelu pre %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametre pre protiľahlú stranu</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Zobraziť skryté dialógy a varovné hlásenia?</target>
@@ -1632,6 +1635,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Súbory</target>
+<source>Name</source>
+<target>Názov</target>
+
<source>Items</source>
<target>Položky</target>
@@ -1648,13 +1654,13 @@ This guarantees a consistent state even in case of a serious error.
<target>FreeFileSync je aktuálny.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Nie je možné nájsť online číslo verzie FreeFileSync. pravdepodobne je k dispozícií novšia verzia. Overiť teraz manuálne?</target>
<source>&Check</source>
<target>&Kontrola</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Overenie konzistencie pre %x zlyhalo.</target>
<source>Cannot find system function %x.</source>
<target>Nie je možné nájsť systémovú funkciu %x.</target>
@@ -1663,7 +1669,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Nepodarilo sa registrovať k odberu systémových správ.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Inštalačný súbor je poškodený. Prosím preinštalujte FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Nepodarilo sa registrovať správy zaiadenia %x.</target>
@@ -1743,6 +1749,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot change process I/O priorities.</source>
<target>Nie je možné nastaviť I/O priority procesu.</target>
+<source>Error Code %x:</source>
+<target>Chybový kód %x:</target>
+
<source>Checking recycle bin failed for folder %x.</source>
<target>Zlyhala kontrola Koša pre priečinok %x.</target>
@@ -1819,7 +1828,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Synchronizačná databáza FreeFileSync</target>
<source>RealTimeSync Configuration</source>
-<target>konfigurácia RealTimeSync</target>
+<target>Konfigurácia RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Upraviť vo FreeFileSync</target>
@@ -1828,8 +1837,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Ďakujem za Vaše príspevky a podporu!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Inštalačný program FreeFileSync pre dárcov dosiahol denný limit inštalovania.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Stiahnúť teraz regulárnu verziu FreeFileSync z domovskej stránky?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Prenosná verzia nemôže byť nainštalovaná do vybraného priečinka.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Prosím zvoľte lokálny typ inštalácie alebo vyberte iný priečinok pre inštaláciu.</target>
diff --git a/FreeFileSync/Build/Languages/slovenian.lng b/FreeFileSync/Build/Languages/slovenian.lng
index 1d867d17..6d4dcbeb 100644
--- a/FreeFileSync/Build/Languages/slovenian.lng
+++ b/FreeFileSync/Build/Languages/slovenian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Ne najdem naslednjih map:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Mape bodo smatrane kot prazne, če prezrete to napako. Manjkajoče mape bodo ustvarjene samodejno, ko bo to potrebno.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>V primeru ignoriranja te napake bo mapa smatrana kot prazna. Manjkajoče mape se ustvarijo avtomatično, ko je to potrebno.</target>
<source>A folder input field is empty.</source>
<target>Vnosno polje za mapo je prazno.</target>
@@ -155,10 +155,10 @@
<target>Kopiranje datotek varno pred odpovedjo</target>
<source>Enabled</source>
-<target></target>
+<target>Omogočeno</target>
<source>Disabled</source>
-<target></target>
+<target>Onemogočeno</target>
<source>Copy locked files</source>
<target>Kopiraj zaklenjene datoteke</target>
@@ -167,22 +167,22 @@
<target>Kopiraj dovoljenja dostopov datoteke</target>
<source>File time tolerance</source>
-<target></target>
+<target>Časovna toleranca datoteke</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Časovna omejitev dostopa do mape</target>
<source>Run with background priority</source>
-<target></target>
+<target>Zaženi s prioriteto v ozadju</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Zakleni direktorije med sinhroniziranjem</target>
<source>Verify copied files</source>
-<target></target>
+<target>Preveri kopirane datoteke</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Uporabljam neprivzete globalne nastavitve:</target>
<source>Starting comparison</source>
<target>Začenjam primerjavo</target>
@@ -325,7 +325,7 @@ Dejansko: %y bajtov
<target>Koda napake %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Ne morem povezati na %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -445,7 +445,7 @@ Dejansko: %y bajtov
<target>Ne morem dostopati do Volume Shadov Copy servisa.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Prosim zaženite 64 bitno različico FreeFileSync, da ustvarite samodejne kopije v ozadju na tem sistemu.</target>
<source>Cannot determine volume name for %x.</source>
<target>Ne morem določiti ime nosilca za %x.</target>
@@ -647,8 +647,8 @@ Ukaz se sproži če:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Naslednji elementi imajo nerešene konflikte in ne bodo sinhronizirani:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Naslednje mape so zelo različne. Prepričajte se, da ste izbrali ustrezne mape za sinhronizacijo.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Naslednje mape so bistveno različne. Prosimo preverite, da so izbrane pravilne mape za sinhroniziranje.</target>
<source>Not enough free disk space available in:</source>
<target>Na voljo ni dovolj prostega prostora na disku v:</target>
@@ -730,23 +730,20 @@ Ukaz se sproži če:
<source>Serious Error</source>
<target>Resna napaka</target>
-<source>Symlink</source>
-<target>Simbolična povezava</target>
-
<source>Folder</source>
<target>Mapa</target>
+<source>Symlink</source>
+<target>Simbolična povezava</target>
+
<source>Full path</source>
<target>Polna pot</target>
-<source>Name</source>
-<target>Ime</target>
-
-<source>Relative folder</source>
-<target>Relativna mapa</target>
+<source>Relative path</source>
+<target>Relativna pot</target>
-<source>Base folder</source>
-<target>Osnovna mapa</target>
+<source>Item name</source>
+<target>Ime objekta</target>
<source>Size</source>
<target>Velikost</target>
@@ -923,7 +920,7 @@ Ukaz se sproži če:
<target>Par map:</target>
<source>Main settings:</source>
-<target></target>
+<target>Glavne nastavitve:</target>
<source>Use local settings:</source>
<target>Uporabi lokalne nastavitve:</target>
@@ -1092,6 +1089,12 @@ Ukaz se sproži če:
<source>Time elapsed:</source>
<target>Pretečeni čas:</target>
+<source>Bytes:</source>
+<target>Bitov:</target>
+
+<source>Items:</source>
+<target>Objektov:</target>
+
<source>Synchronizing...</source>
<target>Sinhroniziram...</target>
@@ -1257,6 +1260,9 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<source>A new version of FreeFileSync is available:</source>
<target>Nova različica FreeFileSync je na voljo:</target>
+<source>Local path not available for %x.</source>
+<target>Lokalna pot ni na voljo za %x.</target>
+
<source>Confirm</source>
<target>Potrdi</target>
@@ -1544,17 +1550,17 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integriraj zunanje aplikacije v kontekstni menu. Na voljo so naslednji makri:</target>
-<source>- full file or folder name</source>
-<target>- polno ime datoteke ali mape</target>
+<source>Full file or folder path</source>
+<target>Celotna datoteka ali pot do mape</target>
-<source>- folder part only</source>
-<target>- samo del z mapo</target>
+<source>Parent folder path</source>
+<target>Pot do nadrejene mape</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Na drugi strani nasprotno v %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Začasna lokalna kopija za SFTP in MTP prostor za shranjevanje</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Na drugi strani nasprotno v %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametri za nasprotno stran</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Ponovno prikaži skrite dialoge in obvestila?</target>
@@ -1646,6 +1652,9 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<source>Files</source>
<target>Datoteke</target>
+<source>Name</source>
+<target>Ime</target>
+
<source>Items</source>
<target>Elementi</target>
@@ -1662,13 +1671,13 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<target>FreeFileSync je posodobljen.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Ne morem najti trenutne številke verzije FreeFileSync na spletu. Novejša verzija je najbrž na voljo. Želite preveriti ročno?</target>
<source>&Check</source>
<target>&Preveri</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Preverjanje usklajenosti ni uspelo za %x.</target>
<source>Cannot find system function %x.</source>
<target>Ne morem najti sistemske funkcije %x.</target>
@@ -1677,7 +1686,7 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<target>Ne morem se registrirati za prejem sistemskih sporočil.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Namestitvene datoteke so poškodovane. Prosimo,da ponovno namestitr FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Omogoči registracijo obvestil naprave za %x.</target>
@@ -1845,8 +1854,14 @@ To zagotavlja konsistenčnost podatkov v primeru napake.
<target>Hvala za vašo donacijo in podporo!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Ta FreeFileSync namestitveni program za donatorje je dosegel dnevno namestitveno mejo.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Prenesite redno verzijo iz FreeFileSync domače strani zdaj?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>namestitev prenosne verzije v izbrano mapo ni mogoč.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Prosimo izberite tip lokalne namestitve ali pa izberite drugo mapo za namestitev.</target>
diff --git a/FreeFileSync/Build/Languages/spanish.lng b/FreeFileSync/Build/Languages/spanish.lng
index fd995f57..62240f19 100644
--- a/FreeFileSync/Build/Languages/spanish.lng
+++ b/FreeFileSync/Build/Languages/spanish.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>No se pudieron encontrar las siguiente carpetas:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Cuando ignora este error, se considera que las carpetas están vacías. Dichas carpetas se crearán automáticamente si es necesario.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Si ignora este error, las carpetas se consideran vacías. Las carpetas que faltan son creadas automáticamente si es necesario.</target>
<source>A folder input field is empty.</source>
<target>Un campo de entrada de la carpeta está vacío.</target>
@@ -155,10 +155,10 @@
<target>Copia de archivo a prueba de fallos</target>
<source>Enabled</source>
-<target></target>
+<target>Activo</target>
<source>Disabled</source>
-<target></target>
+<target>Inactivo</target>
<source>Copy locked files</source>
<target>Copiar archivos bloqueados</target>
@@ -167,22 +167,22 @@
<target>Copiar permisos de acceso al archivo</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tolerancia en hora de archivo</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Tiempo de espera de acceso a carpetas</target>
<source>Run with background priority</source>
-<target></target>
+<target>Ejecutar con prioridad en segundo plano</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Bloquear directorios durante sincronización</target>
<source>Verify copied files</source>
-<target></target>
+<target>Comprobar archivos copiados</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Uso de configuración global no predeterminada:</target>
<source>Starting comparison</source>
<target>Iniciando la comparación</target>
@@ -325,7 +325,7 @@ Reales: %y bytes
<target>Código de error %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>No se puede conectar a %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -367,7 +367,7 @@ Reales: %y bytes
<target>Buscando carpeta %x…</target>
<source>Timeout while searching for folder %x.</source>
-<target>Tiempo agotado buscando la carpeta %x.</target>
+<target>Timeout while searching for folder %x.</target>
<source>Cannot get process information.</source>
<target>No se puede obtener información del proceso.</target>
@@ -439,7 +439,7 @@ Reales: %y bytes
<target>No se puede acceder al servicio de Instantánea de volumen.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Por favor, use la versión de 64 bits de FreeFileSync para instantáneas en el sistema.</target>
<source>Cannot determine volume name for %x.</source>
<target>No se puede determinar nombre del volumen de %x.</target>
@@ -641,8 +641,8 @@ El comando es disparado si:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Los siguientes elementos tienen conflictos sin resolver y no serán sincronizados:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Las carpetas siguientes presentan diferencias importantes. Asegúrese de seleccionar las carpetas correctas para su sincronización.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Las carpetas siguientes presentan diferencias significativas. Asegúrese de seleccionar las carpetas correctas para su sincronización.</target>
<source>Not enough free disk space available in:</source>
<target>Espacio en disco insuficiente en:</target>
@@ -722,23 +722,20 @@ El comando es disparado si:
<source>Serious Error</source>
<target>Error grave</target>
-<source>Symlink</source>
-<target>Enlace simbólico</target>
-
<source>Folder</source>
<target>Carpeta</target>
+<source>Symlink</source>
+<target>Enlace simbólico</target>
+
<source>Full path</source>
<target>Ruta completa</target>
-<source>Name</source>
-<target>Nombre</target>
-
-<source>Relative folder</source>
-<target>Carpeta relativa</target>
+<source>Relative path</source>
+<target>Ruta relativa</target>
-<source>Base folder</source>
-<target>Carpeta base</target>
+<source>Item name</source>
+<target>Nombre de elemento</target>
<source>Size</source>
<target>Tamaño</target>
@@ -915,7 +912,7 @@ El comando es disparado si:
<target>Par de carpetas:</target>
<source>Main settings:</source>
-<target></target>
+<target>Configuración principal:</target>
<source>Use local settings:</source>
<target>Usar Opciones locales:</target>
@@ -945,7 +942,7 @@ El comando es disparado si:
<target>Ejemplo:</target>
<source>Handle daylight saving time</source>
-<target>Tener en cuenta la hora de verano</target>
+<target>Respetar el horario de verano</target>
<source>Local settings:</source>
<target>Opciones locales:</target>
@@ -1084,6 +1081,12 @@ El comando es disparado si:
<source>Time elapsed:</source>
<target>Tiempo transcurrido:</target>
+<source>Bytes:</source>
+<target>Bytes:</target>
+
+<source>Items:</source>
+<target>Elementos:</target>
+
<source>Synchronizing...</source>
<target>Sincronizando…</target>
@@ -1249,6 +1252,9 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>A new version of FreeFileSync is available:</source>
<target>Una nueva versión de FreeFileSync está disponible:</target>
+<source>Local path not available for %x.</source>
+<target>Ruta local no disponible para %x.</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1522,17 +1528,17 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrar aplicaciones externas en el menú de contexto. Las macros siguientes están disponibles:</target>
-<source>- full file or folder name</source>
-<target>- nombre completo de archivo o carpeta</target>
+<source>Full file or folder path</source>
+<target>Ruta completa de archivo o carpeta</target>
-<source>- folder part only</source>
-<target>- sólo parte de la carpeta</target>
+<source>Parent folder path</source>
+<target>Ruta de carpeta principal</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- El otro lado de %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Copia local temporal para almacenamiento SFTP y MTP</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- El otro lado de %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parámetros del lado opuesto</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>¿Volver a mostrar los diálogos ocultos y las advertencias?</target>
@@ -1624,6 +1630,9 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Files</source>
<target>Archivos</target>
+<source>Name</source>
+<target>Nombre</target>
+
<source>Items</source>
<target>Elementos</target>
@@ -1640,13 +1649,13 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>FreeFileSync está actualizado.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>No se encuentra el número de versión actual de FreeFileSync en línea. Una nueva versión puede estar disponible. ¿Desea comprobarla manualmente?</target>
<source>&Check</source>
<target>&Comprobar</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Fallo en la comprobación de coherencia para %x.</target>
<source>Cannot find system function %x.</source>
<target>No se puede encontrar la función del sistema %x.</target>
@@ -1655,7 +1664,7 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>No es posible registrar la recepción de mensajes sistema.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Los archivos de instalación están dañados. Reinstale FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>No es posible registrar las notificaciones de dispositivo para %x.</target>
@@ -1817,8 +1826,14 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>¡Muchas gracias por su contribución y ayuda!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Se alcanzó el limite diario de instalaciones de FreeFileSync para contribuidores.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>¿Desea descargar la versión normal desde la página de FreeFileSync ahora?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>No se puede instalar la version portátil en la carpeta seleccionada.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Elija el tipo de instalación local o seleccione otra carpeta de instalación.</target>
diff --git a/FreeFileSync/Build/Languages/swedish.lng b/FreeFileSync/Build/Languages/swedish.lng
index 53a8cbed..2447e8f6 100644
--- a/FreeFileSync/Build/Languages/swedish.lng
+++ b/FreeFileSync/Build/Languages/swedish.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Kan inte hitta följande mappar:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Om du ignorerar detta fel, kommer mapparna att betraktas som tomma. Saknade mappar skapas automatiskt, vid behov.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Om detta fel ignoreras, kommer mapparna att betraktas som tomma. Saknade mappar skapas automatiskt vid behov.</target>
<source>A folder input field is empty.</source>
<target>Ett inmatningsfält är tomt.</target>
@@ -155,10 +155,10 @@
<target>Felsäker filkopiering</target>
<source>Enabled</source>
-<target></target>
+<target>Aktiverad</target>
<source>Disabled</source>
-<target></target>
+<target>Inaktiverad</target>
<source>Copy locked files</source>
<target>Kopiera låsta filer</target>
@@ -167,25 +167,25 @@
<target>Kopiera filåtkomstbehörigheter</target>
<source>File time tolerance</source>
-<target></target>
+<target>Tidsstämpeltolerans</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Tidsgräns för mappåtkomst</target>
<source>Run with background priority</source>
-<target></target>
+<target>Kör med bakgrundsprioritet</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Lås mappar under synkronisering</target>
<source>Verify copied files</source>
-<target></target>
+<target>Verifiera kopierade filer</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Använder icke-standard globala inställningar:</target>
<source>Starting comparison</source>
-<target>Startar jämföelse</target>
+<target>Startar jämförelse</target>
<source>Calculating sync directions...</source>
<target>Beräknar synkroniseringsmappar...</target>
@@ -325,7 +325,7 @@ Aktuell: %y byte
<target>Felkod %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Kan inte ansluta till %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Aktuell: %y byte
<target>Kan inte komma åt tjänsten 'Volume Shadow Copy'.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Använd 64-bitarsversionen av FreeFileSync för att skapa skuggkopior på detta system.</target>
<source>Cannot determine volume name for %x.</source>
<target>Kan inte utläsa volymnamn för %x.</target>
@@ -641,8 +641,8 @@ Kommandot triggas om:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Följande objekt har olösta konflikter, och kommer inte att synkroniseras:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Följande mappar är signifikant olika. Tillse att du har valt rätt mappar för synkronisering.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Följande mappar är påtagligt olika. Tillse att rätt mappar är valda för synkronisering.</target>
<source>Not enough free disk space available in:</source>
<target>Ej tillräckligt ledigt diskutrymme på:</target>
@@ -722,23 +722,20 @@ Kommandot triggas om:
<source>Serious Error</source>
<target>Allvarligt fel</target>
-<source>Symlink</source>
-<target>Symboliska länkar</target>
-
<source>Folder</source>
<target>Mapp</target>
+<source>Symlink</source>
+<target>Symboliska länkar</target>
+
<source>Full path</source>
<target>Fullständig sökväg</target>
-<source>Name</source>
-<target>Namn</target>
-
-<source>Relative folder</source>
-<target>Relativ mapp</target>
+<source>Relative path</source>
+<target>Relativ sökväg</target>
-<source>Base folder</source>
-<target>Basmapp</target>
+<source>Item name</source>
+<target>Objektnamn</target>
<source>Size</source>
<target>Storlek</target>
@@ -915,7 +912,7 @@ Kommandot triggas om:
<target>Katalogpar:</target>
<source>Main settings:</source>
-<target></target>
+<target>Huvudinställningar:</target>
<source>Use local settings:</source>
<target>Använd lokala inställningar:</target>
@@ -1084,6 +1081,12 @@ Kommandot triggas om:
<source>Time elapsed:</source>
<target>Förfluten tid:</target>
+<source>Bytes:</source>
+<target>Byte:</target>
+
+<source>Items:</source>
+<target>Objekt:</target>
+
<source>Synchronizing...</source>
<target>Synkroniserar...</target>
@@ -1249,6 +1252,9 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>A new version of FreeFileSync is available:</source>
<target>Det finns en ny version av FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Lokal sökväg ej tillgänglig för %x.</target>
+
<source>Confirm</source>
<target>Bekräfta</target>
@@ -1522,17 +1528,17 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integrera externa program i högerklicksmeny. Följande variabler finns tillgängliga:</target>
-<source>- full file or folder name</source>
-<target>- fullständigt fil- eller mappnamn</target>
+<source>Full file or folder path</source>
+<target>Fullständig fil- eller mappsökväg</target>
-<source>- folder part only</source>
-<target>- endast mappdelen</target>
+<source>Parent folder path</source>
+<target>Överordnad mappsökväg</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Andra sidans motsvarighet till %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Temporär lokal kopia för SFTP- och MTP-lagring</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Andra sidans motsvarighet till %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Parametrar för motstående sida</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Vill du visa dolda dialoger och varningsmeddelanden igen?</target>
@@ -1624,6 +1630,9 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Files</source>
<target>Filer</target>
+<source>Name</source>
+<target>Namn</target>
+
<source>Items</source>
<target>Objekt</target>
@@ -1640,13 +1649,13 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<target>FreeFileSync är uppdaterad.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Kan inte hitta aktuellt FreeFileSync versionsnummer online. En nyare version är troligen tillgänglig. Vill du kontrollera manuellt nu?</target>
<source>&Check</source>
<target>&Kontrollera</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Konsekvenskontroll misslyckades för %x.</target>
<source>Cannot find system function %x.</source>
<target>Kan inte hitta systemfunktion %x.</target>
@@ -1655,7 +1664,7 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<target>Det gick inte att registrera mottagning av systemmeddelanden.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Installationsfilerna är skadade. Återinstallare FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Kunde inte registrera enhetsavisering för %x.</target>
@@ -1817,8 +1826,14 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<target>Tack för donationen och ditt stöd!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Denna FreeFileSync-installerare för donatorer har nått sin dagliga installationsbegränsning.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Vill du ladda ner den reguljära versionen från FreeFileSyncs hemsida nu?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Portabel version kan inte installeras i den valda mappen.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Välj lokal installationstyp eller välj en annan mapp för installationen.</target>
diff --git a/FreeFileSync/Build/Languages/turkish.lng b/FreeFileSync/Build/Languages/turkish.lng
index 7c2e44b3..6590adbd 100644
--- a/FreeFileSync/Build/Languages/turkish.lng
+++ b/FreeFileSync/Build/Languages/turkish.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Aşağıdaki klasörler bulunamadı:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Bu hatayı yoksayarsanız klasörler boş kabul edilecek. Eksik klasörler gerektiğinde kendiliğinden oluşturulur.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Bu sorun yoksayılırsa klasörler boş olarak kabul edilir. Eksik klasörler gerek duyulduğunda otomatik olarak oluşturulur.</target>
<source>A folder input field is empty.</source>
<target>Bir klasör giriş alanı boş.</target>
@@ -155,10 +155,10 @@
<target>Dosyalar Hatasız Kopyalansın</target>
<source>Enabled</source>
-<target></target>
+<target>Etkin</target>
<source>Disabled</source>
-<target></target>
+<target>Devre Dışı</target>
<source>Copy locked files</source>
<target>Kilitli Dosyalar da Kopyalansın</target>
@@ -167,22 +167,22 @@
<target>Dosya Erişim İzinleri de Kopyalansın</target>
<source>File time tolerance</source>
-<target></target>
+<target>Yoksayılacak dosya zamanı farkı</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Klasör erişimi zaman aşımı</target>
<source>Run with background priority</source>
-<target></target>
+<target>Artalan önceliği ile çalışsın</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Klasörler eşitleme sırasında kilitlensin</target>
<source>Verify copied files</source>
-<target></target>
+<target>Kopyalanmış dosyalar doğrulansın</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Varsayılan olmayan genel ayarlar kullanılıyor:</target>
<source>Starting comparison</source>
<target>Karşılaştırmaya başlanıyor</target>
@@ -325,7 +325,7 @@ Gerçekleşen: %y bayt
<target>Hata Kodu %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>%x üzerine bağlanılamadı.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -439,7 +439,7 @@ Gerçekleşen: %y bayt
<target>Birim Gölge Hizmetine erişilemiyor.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Lütfen bu sistemde gölge kopyalar oluşturmak için FreeFileSync uygulamasının 64 bit sürümünü kullanın.</target>
<source>Cannot determine volume name for %x.</source>
<target>%x için birim adı belirlenemedi.</target>
@@ -641,8 +641,8 @@ Komut şu durumlarda yürütülür:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Uyuşmazlığı çözümlenmemiş şu ögeler eşitlenmeyecek:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Şu klasörler arasında oldukça büyük farklar var. Eşitleme için doğru klasörleri seçtiğinize emin olun.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Şu klasörler birbirinden çok farklı. Lütfen eşitleme için doğru klasörleri seçtiğinizden emin olun.</target>
<source>Not enough free disk space available in:</source>
<target>Şurada yeterli disk alanı yok :</target>
@@ -722,23 +722,20 @@ Komut şu durumlarda yürütülür:
<source>Serious Error</source>
<target>Ciddi Hata</target>
-<source>Symlink</source>
-<target>Smblkbağlantı</target>
-
<source>Folder</source>
<target>Klasör</target>
+<source>Symlink</source>
+<target>Smblkbağlantı</target>
+
<source>Full path</source>
<target>Tam Yol</target>
-<source>Name</source>
-<target>Ad</target>
-
-<source>Relative folder</source>
-<target>Bağıl Klasör</target>
+<source>Relative path</source>
+<target>Bağıl yol</target>
-<source>Base folder</source>
-<target>Başlangıç Klasörü</target>
+<source>Item name</source>
+<target>Öge adı</target>
<source>Size</source>
<target>Boyut</target>
@@ -915,7 +912,7 @@ Komut şu durumlarda yürütülür:
<target>Klasör Çifti:</target>
<source>Main settings:</source>
-<target></target>
+<target>Temel ayarlar:</target>
<source>Use local settings:</source>
<target>Yerel Ayarlar Kullanılsın:</target>
@@ -936,10 +933,10 @@ Komut şu durumlarda yürütülür:
<target>Ayrıntılı Bilgiler</target>
<source>&Ignore time shift [hh:mm]</source>
-<target>&Yoksayılacak Zaman Kayması [ss:dd]</target>
+<target>&Yoksayılacak Zaman Farkı [ss:dd]</target>
<source>List of file time offsets to ignore</source>
-<target>Zaman kayması yoksayılacak dosyaların listesi</target>
+<target>Zaman farkı yoksayılacak dosyaların listesi</target>
<source>Example:</source>
<target>Örnek:</target>
@@ -1084,6 +1081,12 @@ Komut şu durumlarda yürütülür:
<source>Time elapsed:</source>
<target>Geçen süre:</target>
+<source>Bytes:</source>
+<target>Bayt:</target>
+
+<source>Items:</source>
+<target>Öge:</target>
+
<source>Synchronizing...</source>
<target>Eşitleniyor...</target>
@@ -1249,6 +1252,9 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>A new version of FreeFileSync is available:</source>
<target>Yeni bir FreeFileSync sürümü yayınlanmış:</target>
+<source>Local path not available for %x.</source>
+<target>%x için yerel yol bulunamadı.</target>
+
<source>Confirm</source>
<target>Onaylayın</target>
@@ -1522,17 +1528,17 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Sağ tık menüsüne dış uygulamalar eklenebilir. Şu kodlar kullanılabilir:</target>
-<source>- full file or folder name</source>
-<target>- tam dosya ya da klasör adı</target>
+<source>Full file or folder path</source>
+<target>Tam dosya ya da klasör yolu</target>
-<source>- folder part only</source>
-<target>- yalnız klasör bölümü</target>
+<source>Parent folder path</source>
+<target>Üst klasör yolu</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>%item_path% ögesinin diğer taraftaki karşılığı</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>SFTP ve MTP depolama için geçici yerel kopya</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>%item_folder% ögesinin diğer taraftaki karşılığı</target>
+<source>Parameters for opposite side</source>
+<target>Diğer tarafın parametreleri</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Gizlenmiş ileti ve uyarılar yeniden görüntülensin mi?</target>
@@ -1624,6 +1630,9 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Files</source>
<target>Dosyalar</target>
+<source>Name</source>
+<target>Ad</target>
+
<source>Items</source>
<target>Ögeler</target>
@@ -1640,13 +1649,13 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>FreeFileSync güncel.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Geçerli FreeFileSync sürümü çevrimiçi olarak öğrenilemedi. Yeni bir sürüm yayınlanmış gibi görünüyor. El ile denetlemek ister misiniz?</target>
<source>&Check</source>
<target>&Denetle</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>%x tutarlılık sınamasından geçemedi.</target>
<source>Cannot find system function %x.</source>
<target>%x sistem işlevi bulunamadı.</target>
@@ -1655,7 +1664,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Sistem iletilerini alabilmek için gerekli kayıt eklenemedi.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Yükleme dosyaları bozulmuş. Lütfen FreeFileSync uygulamasını yeniden yükleyin.</target>
<source>Unable to register device notifications for %x.</source>
<target>%x aygıtının bildirimleri için gerekli kayıt eklenemedi.</target>
@@ -1817,8 +1826,14 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Bağış ve destekleriniz için teşekkürler!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Bağışçılar için hazırlanmış bu FreeFileSync yükleyicisinin günlük yükleme sınırına ulaşıldı.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Web sitemizden normal FreeFileSync sürümünü indirmek ister misiniz?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Taşınabilir sürüm seçilmiş klasöre yüklenemez.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Yükleyebilmek için farklı bir klasör ya da yerel kurulum yöntemini seçin.</target>
diff --git a/FreeFileSync/Build/Languages/ukrainian.lng b/FreeFileSync/Build/Languages/ukrainian.lng
index 276ca7d0..2442ef9c 100644
--- a/FreeFileSync/Build/Languages/ukrainian.lng
+++ b/FreeFileSync/Build/Languages/ukrainian.lng
@@ -112,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не вдається знайти такі папки:</target>
-<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
-<target>Якщо ви проігноруєте цю помилку папки будуть вважатися порожніми. Відсутні папки створюються автоматично, коли це необхідно.</target>
+<source>If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Якщо цю помилку буде проігноровано папки будуть вважатися порожніми. Відсутні папки створюються автоматично, коли це необхідно.</target>
<source>A folder input field is empty.</source>
<target>Порожнє поле папки.</target>
@@ -155,10 +155,10 @@
<target>Відмовостійке копіювання файлів</target>
<source>Enabled</source>
-<target></target>
+<target>Увімкнути</target>
<source>Disabled</source>
-<target></target>
+<target>Вимкнути</target>
<source>Copy locked files</source>
<target>Копіювати заблоковані файли</target>
@@ -167,22 +167,22 @@
<target>Копіювати права доступу до файлів</target>
<source>File time tolerance</source>
-<target></target>
+<target>Толеранс часу файлу</target>
<source>Folder access timeout</source>
-<target></target>
+<target>Таймаут доступу до папки</target>
<source>Run with background priority</source>
-<target></target>
+<target>Запустити з фоновим пріоритетом</target>
<source>Lock directories during sync</source>
-<target></target>
+<target>Заблокувати папки на час синхронізації</target>
<source>Verify copied files</source>
-<target></target>
+<target>Перевірити скопійовані файли</target>
<source>Using non-default global settings:</source>
-<target></target>
+<target>Використовувати глобальні налаштування не за замовчуванням:</target>
<source>Starting comparison</source>
<target>Запустити порівняння</target>
@@ -325,7 +325,7 @@ Actual: %y bytes
<target>Код помилки %x:</target>
<source>Unable to connect to %x.</source>
-<target></target>
+<target>Не вдається з'єднатися з %x.</target>
<source>
<pluralform>1 byte</pluralform>
@@ -442,7 +442,7 @@ Actual: %y bytes
<target>Не вдається отримати доступ до послуги Тіньового Копіювання Тому.</target>
<source>Please run the 64-bit version of FreeFileSync to create shadow copies on this system.</source>
-<target></target>
+<target>Будь ласка, використовуйте 64-розрядну версію FreeFileSync для створення тіньових копій у цій системі.</target>
<source>Cannot determine volume name for %x.</source>
<target>Не вдалося встановити ім'я тому для %x.</target>
@@ -644,8 +644,8 @@ The command is triggered if:
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Наступні елементи мають невирішені конфлікти і не будуть синхронізовані:</target>
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target>Наступні папки значно відрізняються. Впевніться що Ви вибрали правильні папки для синхронізації.</target>
+<source>The following folders are significantly different. Please check that the correct folders are selected for synchronization.</source>
+<target>Наступні папки значно відрізняються. Будь ласка, перевірте що вибрані правильні папки для синхронізації.</target>
<source>Not enough free disk space available in:</source>
<target>Не достатньо вільного місця на:</target>
@@ -726,23 +726,20 @@ The command is triggered if:
<source>Serious Error</source>
<target>Серйозна помилка</target>
-<source>Symlink</source>
-<target>Символьне посилання</target>
-
<source>Folder</source>
<target>Папка</target>
+<source>Symlink</source>
+<target>Символьне посилання</target>
+
<source>Full path</source>
<target>Повний шлях</target>
-<source>Name</source>
-<target>Назва</target>
-
-<source>Relative folder</source>
-<target>Відносна папка</target>
+<source>Relative path</source>
+<target>Відносний шлях</target>
-<source>Base folder</source>
-<target>Базова папка</target>
+<source>Item name</source>
+<target>Назва елементу:</target>
<source>Size</source>
<target>Розмір</target>
@@ -772,7 +769,7 @@ The command is triggered if:
<target>Активний</target>
<source>None</source>
-<target>Відсутній</target>
+<target>Не задано</target>
<source>Remove local settings</source>
<target>Вилучити локальні налаштування</target>
@@ -919,7 +916,7 @@ The command is triggered if:
<target>Пара папок:</target>
<source>Main settings:</source>
-<target></target>
+<target>Головні налаштування:</target>
<source>Use local settings:</source>
<target>Використати локальні налаштування:</target>
@@ -1088,6 +1085,12 @@ The command is triggered if:
<source>Time elapsed:</source>
<target>Пройшло часу:</target>
+<source>Bytes:</source>
+<target>Байт:</target>
+
+<source>Items:</source>
+<target>Елементи:</target>
+
<source>Synchronizing...</source>
<target>Синхронізація...</target>
@@ -1253,6 +1256,9 @@ This guarantees a consistent state even in case of a serious error.
<source>A new version of FreeFileSync is available:</source>
<target>Доступна нова версія FreeFileSync:</target>
+<source>Local path not available for %x.</source>
+<target>Локальний шлях не доступний для %x.</target>
+
<source>Confirm</source>
<target>Підтвердити</target>
@@ -1533,17 +1539,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Інтеграція зовнішніх додатків до контекстного меню. Наступні макроси доступні:</target>
-<source>- full file or folder name</source>
-<target>- повна назва файлу чи папки</target>
+<source>Full file or folder path</source>
+<target>Повна назва файлу чи папки</target>
-<source>- folder part only</source>
-<target>- тільки частина з папкою</target>
+<source>Parent folder path</source>
+<target>Шлях до батьківської папки:</target>
-<source>- Other side's counterpart to %item_path%</source>
-<target>- Двійник з протилежної сторони до %item_path%</target>
+<source>Temporary local copy for SFTP and MTP storage</source>
+<target>Тимчасова локальна копія для SFTP і MTP сховища</target>
-<source>- Other side's counterpart to %item_folder%</source>
-<target>- Двійник з протилежної сторони до %item_folder%</target>
+<source>Parameters for opposite side</source>
+<target>Параметри для протилежної сторони:</target>
<source>Show hidden dialogs and warning messages again?</source>
<target>Показати сховані діалоги і попереджувальні повідомлення знову?</target>
@@ -1635,6 +1641,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Files</source>
<target>Файли</target>
+<source>Name</source>
+<target>Назва</target>
+
<source>Items</source>
<target>Елементи</target>
@@ -1651,13 +1660,13 @@ This guarantees a consistent state even in case of a serious error.
<target>У Вас найновіша версія FreeFileSync.</target>
<source>Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now?</source>
-<target></target>
+<target>Не вдається знайти номер поточної версії FreeFileSync он-лайн. Нова версія схоже доступна. Перевірити вручну зараз?</target>
<source>&Check</source>
<target>&Перевірити</target>
<source>Consistency check failed for %x.</source>
-<target></target>
+<target>Перевірка цілісності неуспішна для %x.</target>
<source>Cannot find system function %x.</source>
<target>Не вдається знайти системну функцію %x.</target>
@@ -1666,7 +1675,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Не вдається зареєструватися для отримання системних повідомлень.</target>
<source>Installation files are corrupt. Please reinstall FreeFileSync.</source>
-<target></target>
+<target>Файли для встановлення пошкоджені. Будь ласка, перевстановіть FreeFileSync.</target>
<source>Unable to register device notifications for %x.</source>
<target>Не вдається зареєструвати повідомлення пристрою для %x.</target>
@@ -1831,8 +1840,14 @@ This guarantees a consistent state even in case of a serious error.
<target>Спасибі за пожертвування та підтримку!</target>
<source>This FreeFileSync installer for donors has reached its daily installation limit.</source>
-<target></target>
+<target>Цей FreeFileSync інсталятор для донорів досяг свого денного ліміту встановлень.</target>
<source>Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
+<target>Завантажити звичайну версію з домашньої сторінки FreeFileSync зараз?</target>
+
+<source>The portable version cannot install into the selected folder.</source>
+<target>Портативна версія не може бути встановлена у вибрану папку.</target>
+
+<source>Please choose the local installation type or select a different folder for installation.</source>
+<target>Будь ласка, виберіть локальний тип інсталяції чи іншу папку для встановлення.</target>
diff --git a/FreeFileSync/Source/RealtimeSync/Makefile b/FreeFileSync/Source/RealTimeSync/Makefile
index 5e97f3b7..5e97f3b7 100644
--- a/FreeFileSync/Source/RealtimeSync/Makefile
+++ b/FreeFileSync/Source/RealTimeSync/Makefile
diff --git a/FreeFileSync/Source/RealtimeSync/RealtimeSync.ico b/FreeFileSync/Source/RealTimeSync/RealTimeSync.ico
index f9012b12..f9012b12 100644
--- a/FreeFileSync/Source/RealtimeSync/RealtimeSync.ico
+++ b/FreeFileSync/Source/RealTimeSync/RealTimeSync.ico
Binary files differ
diff --git a/FreeFileSync/Source/RealtimeSync/app_icon.h b/FreeFileSync/Source/RealTimeSync/app_icon.h
index fee50984..56c3174d 100644
--- a/FreeFileSync/Source/RealtimeSync/app_icon.h
+++ b/FreeFileSync/Source/RealTimeSync/app_icon.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef APP_ICON_H_8914578394545342
#define APP_ICON_H_8914578394545342
diff --git a/FreeFileSync/Source/RealtimeSync/application.cpp b/FreeFileSync/Source/RealTimeSync/application.cpp
index 2fff5b97..735e0b8b 100644
--- a/FreeFileSync/Source/RealtimeSync/application.cpp
+++ b/FreeFileSync/Source/RealTimeSync/application.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "application.h"
#include "main_dlg.h"
@@ -57,8 +57,10 @@ bool Application::OnInit()
//SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application."
::SetErrorMode(SEM_FAILCRITICALERRORS);
+#ifdef ZEN_WIN_VISTA_AND_LATER
setAppUserModeId(L"RealTimeSync", L"Zenju.RealTimeSync"); //noexcept
//consider: RealTimeSync.exe, RealTimeSync_Win32.exe, RealTimeSync_x64.exe
+#endif
wxToolTip::SetMaxWidth(-1); //disable tooltip wrapping -> Windows only
@@ -67,7 +69,7 @@ bool Application::OnInit()
#endif
//Windows User Experience Interaction Guidelines: tool tips should have 5s timeout, info tips no timeout => compromise:
- wxToolTip::Enable(true); //yawn, a wxWidgets screw-up: wxToolTip::SetAutoPop is no-op if global tooltip window is not yet constructed: wxToolTip::Enable creates it
+ wxToolTip::Enable(true); //yawn, a wxWidgets screw-up: wxToolTip::SetAutoPop is no-op if global tooltip window is not yet constructed: wxToolTip::Enable creates it
wxToolTip::SetAutoPop(10000); //https://msdn.microsoft.com/en-us/library/windows/desktop/aa511495
SetAppName(L"RealTimeSync");
diff --git a/FreeFileSync/Source/RealtimeSync/application.h b/FreeFileSync/Source/RealTimeSync/application.h
index 024200b8..502634ea 100644
--- a/FreeFileSync/Source/RealtimeSync/application.h
+++ b/FreeFileSync/Source/RealTimeSync/application.h
@@ -1,12 +1,15 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef APPLICATION_H_18506781708176342677
#define APPLICATION_H_18506781708176342677
+#ifdef ZEN_WIN
+#include <zen/win.h> //include before <wx/msw/wrapwin.h>
+#endif
#include <wx/app.h>
diff --git a/FreeFileSync/Source/RealtimeSync/folder_selector2.cpp b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
index 76b33091..0aa7c175 100644
--- a/FreeFileSync/Source/RealtimeSync/folder_selector2.cpp
+++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "folder_selector2.h"
#include <zen/thread.h>
diff --git a/FreeFileSync/Source/RealtimeSync/folder_selector2.h b/FreeFileSync/Source/RealTimeSync/folder_selector2.h
index 49e2c8b3..7b32e15a 100644
--- a/FreeFileSync/Source/RealtimeSync/folder_selector2.h
+++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FOLDER_SELECTOR2_H_073246031245342566
#define FOLDER_SELECTOR2_H_073246031245342566
diff --git a/FreeFileSync/Source/RealtimeSync/gui_generated.cpp b/FreeFileSync/Source/RealTimeSync/gui_generated.cpp
index b15f0e5a..b15f0e5a 100644
--- a/FreeFileSync/Source/RealtimeSync/gui_generated.cpp
+++ b/FreeFileSync/Source/RealTimeSync/gui_generated.cpp
diff --git a/FreeFileSync/Source/RealtimeSync/gui_generated.h b/FreeFileSync/Source/RealTimeSync/gui_generated.h
index f3018d48..f3018d48 100644
--- a/FreeFileSync/Source/RealtimeSync/gui_generated.h
+++ b/FreeFileSync/Source/RealTimeSync/gui_generated.h
diff --git a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp b/FreeFileSync/Source/RealTimeSync/main_dlg.cpp
index bd49d38f..b657f25d 100644
--- a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
+++ b/FreeFileSync/Source/RealTimeSync/main_dlg.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "main_dlg.h"
#include <wx/wupdlock.h>
diff --git a/FreeFileSync/Source/RealtimeSync/main_dlg.h b/FreeFileSync/Source/RealTimeSync/main_dlg.h
index 45eabdd8..52e72903 100644
--- a/FreeFileSync/Source/RealtimeSync/main_dlg.h
+++ b/FreeFileSync/Source/RealTimeSync/main_dlg.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef MAIN_DLG_H_2384790842252445
#define MAIN_DLG_H_2384790842252445
diff --git a/FreeFileSync/Source/RealtimeSync/monitor.cpp b/FreeFileSync/Source/RealTimeSync/monitor.cpp
index 188c6c1a..3baf7de5 100644
--- a/FreeFileSync/Source/RealtimeSync/monitor.cpp
+++ b/FreeFileSync/Source/RealTimeSync/monitor.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "monitor.h"
#include <ctime>
diff --git a/FreeFileSync/Source/RealtimeSync/monitor.h b/FreeFileSync/Source/RealTimeSync/monitor.h
index eca0d71e..4d3538fd 100644
--- a/FreeFileSync/Source/RealtimeSync/monitor.h
+++ b/FreeFileSync/Source/RealTimeSync/monitor.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef MONITOR_H_345087425834253425
#define MONITOR_H_345087425834253425
diff --git a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp b/FreeFileSync/Source/RealTimeSync/tray_menu.cpp
index 47a7da2a..c421ff72 100644
--- a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
+++ b/FreeFileSync/Source/RealTimeSync/tray_menu.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "tray_menu.h"
#include <zen/thread.h>
diff --git a/FreeFileSync/Source/RealtimeSync/tray_menu.h b/FreeFileSync/Source/RealTimeSync/tray_menu.h
index e8c1cf2d..42afeb06 100644
--- a/FreeFileSync/Source/RealtimeSync/tray_menu.h
+++ b/FreeFileSync/Source/RealTimeSync/tray_menu.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TRAY_MENU_H_3967857420987534253245
#define TRAY_MENU_H_3967857420987534253245
diff --git a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp b/FreeFileSync/Source/RealTimeSync/xml_proc.cpp
index 193cc778..75bf7e7d 100644
--- a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
+++ b/FreeFileSync/Source/RealTimeSync/xml_proc.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "xml_proc.h"
#include <zen/file_access.h>
diff --git a/FreeFileSync/Source/RealtimeSync/xml_proc.h b/FreeFileSync/Source/RealTimeSync/xml_proc.h
index 176be6c3..73b283bb 100644
--- a/FreeFileSync/Source/RealtimeSync/xml_proc.h
+++ b/FreeFileSync/Source/RealTimeSync/xml_proc.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef XML_PROC_H_0813748158321813490
#define XML_PROC_H_0813748158321813490
diff --git a/FreeFileSync/Source/algorithm.cpp b/FreeFileSync/Source/algorithm.cpp
index 52765e3a..0707dcfc 100644
--- a/FreeFileSync/Source/algorithm.cpp
+++ b/FreeFileSync/Source/algorithm.cpp
@@ -1,13 +1,12 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "algorithm.h"
#include <set>
#include <unordered_map>
-//#include <random>
#include <zen/perf.h>
#include <zen/crc.h>
#include <zen/guid.h>
@@ -20,6 +19,10 @@
#include "fs/concrete.h"
#include "fs/native.h"
+#ifdef ZEN_WIN
+#include <zen/long_path_prefix.h> //
+#endif
+
using namespace zen;
//using namespace std::rel_ops;
@@ -1559,7 +1562,7 @@ Zstring TempFileBuffer::getTempPath(const FileDetails& details) const
void TempFileBuffer::createTempFiles(const std::set<FileDetails>& workLoad, ProcessCallback& callback)
{
- const int itemCount = workLoad.size();
+ const int itemCount = static_cast<int>(workLoad.size());
std::int64_t dataToProcess = 0;
for (const FileDetails& details : workLoad)
@@ -1618,6 +1621,9 @@ void TempFileBuffer::createTempFiles(const std::set<FileDetails>& workLoad, Proc
auto onNotifyCopyStatus = [&](std::int64_t bytesDelta) { statReporter.reportDelta(0, bytesDelta); };
AFS::copyFileTransactional(details.path, createItemPathNative(tempFilePath), //throw FileError, ErrorFileLocked
false /*copyFilePermissions*/, true /*transactionalCopy*/, nullptr /*onDeleteTargetFile*/, onNotifyCopyStatus);
+#ifdef ZEN_WIN
+ ::SetFileAttributes(applyLongPathPrefix(tempFilePath).c_str(), FILE_ATTRIBUTE_READONLY); //try to... => user get's a warning within 3rd-party apps
+#endif
statReporter.reportDelta(1, 0);
tempFilePaths[details] = tempFilePath;
diff --git a/FreeFileSync/Source/algorithm.h b/FreeFileSync/Source/algorithm.h
index 83201fd2..a3a210a9 100644
--- a/FreeFileSync/Source/algorithm.h
+++ b/FreeFileSync/Source/algorithm.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ALGORITHM_H_34218518475321452548
#define ALGORITHM_H_34218518475321452548
@@ -69,7 +69,7 @@ void deleteFromGridAndHD(const std::vector<FileSystemObject*>& rowsToDeleteOnLef
class TempFileBuffer
{
public:
- TempFileBuffer() {}
+ TempFileBuffer() {}
~TempFileBuffer();
struct FileDetails
diff --git a/FreeFileSync/Source/application.cpp b/FreeFileSync/Source/application.cpp
index bec95254..922ab2a3 100644
--- a/FreeFileSync/Source/application.cpp
+++ b/FreeFileSync/Source/application.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "application.h"
#include <memory>
@@ -141,8 +141,10 @@ bool Application::OnInit()
//SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application."
::SetErrorMode(SEM_FAILCRITICALERRORS);
+#ifdef ZEN_WIN_VISTA_AND_LATER //don't load DLL when XP-version is called by the installer
setAppUserModeId(L"FreeFileSync", L"Zenju.FreeFileSync"); //noexcept
//consider: FreeFileSync.exe, FreeFileSync_Win32.exe, FreeFileSync_x64.exe
+#endif
wxToolTip::SetMaxWidth(-1); //disable tooltip wrapping -> Windows only
@@ -152,7 +154,7 @@ bool Application::OnInit()
#endif
//Windows User Experience Interaction Guidelines: tool tips should have 5s timeout, info tips no timeout => compromise:
- wxToolTip::Enable(true); //yawn, a wxWidgets screw-up: wxToolTip::SetAutoPop is no-op if global tooltip window is not yet constructed: wxToolTip::Enable creates it
+ wxToolTip::Enable(true); //yawn, a wxWidgets screw-up: wxToolTip::SetAutoPop is no-op if global tooltip window is not yet constructed: wxToolTip::Enable creates it
wxToolTip::SetAutoPop(10000); //https://msdn.microsoft.com/en-us/library/windows/desktop/aa511495
SetAppName(L"FreeFileSync"); //if not set, the default is the executable's name!
@@ -296,7 +298,7 @@ void Application::launch(const std::vector<Zstring>& commandArgs)
std::vector<Zstring> dirPathPhrasesLeft;
std::vector<Zstring> dirPathPhrasesRight;
std::vector<std::pair<Zstring, XmlType>> configFiles; //XmlType: batch or GUI files only
- Opt<Zstring> globalConfigFile;
+ Zstring globalConfigFile;
bool openForEdit = false;
{
const Zchar optionEdit [] = Zstr("-edit");
@@ -422,7 +424,7 @@ void Application::launch(const std::vector<Zstring>& commandArgs)
//distinguish sync scenarios:
//---------------------------
- const Zstring globalConfigFilePath = globalConfigFile ? *globalConfigFile : xmlAccess::getGlobalConfigFile();
+ const Zstring globalConfigFilePath = !globalConfigFile.empty() ? globalConfigFile : xmlAccess::getGlobalConfigFile();
if (configFiles.empty())
{
diff --git a/FreeFileSync/Source/application.h b/FreeFileSync/Source/application.h
index a3c356c2..1701c082 100644
--- a/FreeFileSync/Source/application.h
+++ b/FreeFileSync/Source/application.h
@@ -1,14 +1,17 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef APPLICATION_H_081568741942010985702395
#define APPLICATION_H_081568741942010985702395
#include <vector>
#include <zen/zstring.h>
+#ifdef ZEN_WIN
+#include <zen/win.h> //include before <wx/msw/wrapwin.h>
+#endif
#include <wx/app.h>
#include "lib/return_codes.h"
diff --git a/FreeFileSync/Source/comparison.cpp b/FreeFileSync/Source/comparison.cpp
index 9d556815..77261671 100644
--- a/FreeFileSync/Source/comparison.cpp
+++ b/FreeFileSync/Source/comparison.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "comparison.h"
#include <zen/process_priority.h>
@@ -100,7 +100,7 @@ ResolvedBaseFolders initializeBaseFolders(const std::vector<FolderPairCfg>& cfgL
errorMsg += L"\n" + AFS::getDisplayPath(fc.first);
errorMsg += L"\n\n";
- errorMsg += _("If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.");
+ errorMsg += _("If this error is ignored the folders will be considered empty. Missing folders are created automatically when needed.");
if (!status.failedChecks.empty())
{
diff --git a/FreeFileSync/Source/comparison.h b/FreeFileSync/Source/comparison.h
index ea258696..b326a44c 100644
--- a/FreeFileSync/Source/comparison.h
+++ b/FreeFileSync/Source/comparison.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef COMPARISON_H_8032178534545426
#define COMPARISON_H_8032178534545426
diff --git a/FreeFileSync/Source/file_hierarchy.cpp b/FreeFileSync/Source/file_hierarchy.cpp
index 12ce9944..79c7028a 100644
--- a/FreeFileSync/Source/file_hierarchy.cpp
+++ b/FreeFileSync/Source/file_hierarchy.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "file_hierarchy.h"
#include <zen/i18n.h>
diff --git a/FreeFileSync/Source/file_hierarchy.h b/FreeFileSync/Source/file_hierarchy.h
index d5dad824..efa96d03 100644
--- a/FreeFileSync/Source/file_hierarchy.h
+++ b/FreeFileSync/Source/file_hierarchy.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_HIERARCHY_H_257235289645296
#define FILE_HIERARCHY_H_257235289645296
@@ -93,9 +93,9 @@ struct SelectParam<RIGHT_SIDE>
struct FolderContainer
{
//------------------------------------------------------------------
- typedef std::map<Zstring, FolderContainer, LessFilePath> FolderList; //
- typedef std::map<Zstring, FileDescriptor, LessFilePath> FileList; //key: file name
- typedef std::map<Zstring, LinkDescriptor, LessFilePath> SymlinkList; //
+ using FolderList = std::map<Zstring, FolderContainer, LessFilePath>; //
+ using FileList = std::map<Zstring, FileDescriptor, LessFilePath>; //key: file name
+ using SymlinkList = std::map<Zstring, LinkDescriptor, LessFilePath>; //
//------------------------------------------------------------------
FolderContainer() = default;
@@ -154,9 +154,9 @@ class HierarchyObject
friend class FileSystemObject;
public:
- typedef FixedList<FilePair> FileList; //MergeSides::execute() requires a structure that doesn't invalidate pointers after push_back()
- typedef FixedList<SymlinkPair> SymlinkList; //Note: deque<> has circular dependency in VCPP!
- typedef FixedList<FolderPair> FolderList;
+ using FileList = FixedList<FilePair>; //MergeSides::execute() requires a structure that doesn't invalidate pointers after push_back()
+ using SymlinkList = FixedList<SymlinkPair>; //Note: deque<> has circular dependency in VCPP!
+ using FolderList = FixedList<FolderPair>;
FolderPair& addSubFolder(const Zstring& itemNameLeft,
const Zstring& itemNameRight,
@@ -303,7 +303,7 @@ private:
IterTy it_;
};
-typedef std::vector<std::shared_ptr<BaseFolderPair>> FolderComparison; //make sure pointers to sub-elements remain valid
+using FolderComparison = std::vector<std::shared_ptr<BaseFolderPair>>; //make sure pointers to sub-elements remain valid
//don't change this back to std::vector<BaseFolderPair> too easily: comparison uses push_back to add entries which may result in a full copy!
DerefIter<typename FolderComparison::iterator, BaseFolderPair> inline begin( FolderComparison& vect) { return vect.begin(); }
@@ -326,8 +326,8 @@ template <class T>
class ObjectMgr
{
public:
- typedef ObjectMgr* ObjectId;
- typedef const ObjectMgr* ObjectIdConst;
+ using ObjectId = ObjectMgr* ;
+ using ObjectIdConst = const ObjectMgr*;
ObjectIdConst getId() const { return this; }
/**/ ObjectId getId() { return this; }
diff --git a/FreeFileSync/Source/fs/abstract.cpp b/FreeFileSync/Source/fs/abstract.cpp
index 0f7c9ae6..26ac4445 100644
--- a/FreeFileSync/Source/fs/abstract.cpp
+++ b/FreeFileSync/Source/fs/abstract.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "abstract.h"
#include <zen/serialize.h>
diff --git a/FreeFileSync/Source/fs/abstract.h b/FreeFileSync/Source/fs/abstract.h
index 17ece0b8..59289f9c 100644
--- a/FreeFileSync/Source/fs/abstract.h
+++ b/FreeFileSync/Source/fs/abstract.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ABSTRACT_H_873450978453042524534234
#define ABSTRACT_H_873450978453042524534234
diff --git a/FreeFileSync/Source/fs/concrete.cpp b/FreeFileSync/Source/fs/concrete.cpp
index d9ab257d..93684dbd 100644
--- a/FreeFileSync/Source/fs/concrete.cpp
+++ b/FreeFileSync/Source/fs/concrete.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "concrete.h"
#include "native.h"
diff --git a/FreeFileSync/Source/fs/concrete.h b/FreeFileSync/Source/fs/concrete.h
index fdee2485..a647c74c 100644
--- a/FreeFileSync/Source/fs/concrete.h
+++ b/FreeFileSync/Source/fs/concrete.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FS_CONCRETE_348787329573243
#define FS_CONCRETE_348787329573243
diff --git a/FreeFileSync/Source/fs/native.cpp b/FreeFileSync/Source/fs/native.cpp
index bf4571c7..de24d2a8 100644
--- a/FreeFileSync/Source/fs/native.cpp
+++ b/FreeFileSync/Source/fs/native.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "native.h"
#include <zen/file_access.h>
diff --git a/FreeFileSync/Source/fs/native.h b/FreeFileSync/Source/fs/native.h
index 444cd93f..d9ff62f0 100644
--- a/FreeFileSync/Source/fs/native.h
+++ b/FreeFileSync/Source/fs/native.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FS_NATIVE_183247018532434563465
#define FS_NATIVE_183247018532434563465
diff --git a/FreeFileSync/Source/fs/native_traverser_impl.h b/FreeFileSync/Source/fs/native_traverser_impl.h
index 330df263..dedc5c61 100644
--- a/FreeFileSync/Source/fs/native_traverser_impl.h
+++ b/FreeFileSync/Source/fs/native_traverser_impl.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include <zen/sys_error.h>
#include <zen/symlink_target.h>
diff --git a/FreeFileSync/Source/lib/binary.cpp b/FreeFileSync/Source/lib/binary.cpp
index 67630d78..65612e43 100644
--- a/FreeFileSync/Source/lib/binary.cpp
+++ b/FreeFileSync/Source/lib/binary.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "binary.h"
#include <vector>
diff --git a/FreeFileSync/Source/lib/binary.h b/FreeFileSync/Source/lib/binary.h
index e23aa36b..fb251c5b 100644
--- a/FreeFileSync/Source/lib/binary.h
+++ b/FreeFileSync/Source/lib/binary.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BINARY_H_3941281398513241134
#define BINARY_H_3941281398513241134
diff --git a/FreeFileSync/Source/lib/cmp_filetime.h b/FreeFileSync/Source/lib/cmp_filetime.h
index d21005b8..f3ee0291 100644
--- a/FreeFileSync/Source/lib/cmp_filetime.h
+++ b/FreeFileSync/Source/lib/cmp_filetime.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef CMP_FILETIME_H_032180451675845
#define CMP_FILETIME_H_032180451675845
diff --git a/FreeFileSync/Source/lib/db_file.cpp b/FreeFileSync/Source/lib/db_file.cpp
index 3acc06bb..08315163 100644
--- a/FreeFileSync/Source/lib/db_file.cpp
+++ b/FreeFileSync/Source/lib/db_file.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "db_file.h"
#include <zen/guid.h>
@@ -24,8 +24,8 @@ const int DB_FORMAT_CONTAINER = 9;
const int DB_FORMAT_STREAM = 2; //since 2015-05-02
//-------------------------------------------------------------------------------------------------------------------------------
-typedef std::string UniqueId;
-typedef std::map<UniqueId, ByteArray> DbStreams; //list of streams ordered by session UUID
+using UniqueId = std::string;
+using DbStreams = std::map<UniqueId, ByteArray>; //list of streams ordered by session UUID
using MemStreamOut = MemoryStreamOut<ByteArray>;
using MemStreamIn = MemoryStreamIn <ByteArray>;
diff --git a/FreeFileSync/Source/lib/db_file.h b/FreeFileSync/Source/lib/db_file.h
index 69eb3aa0..5f7813a4 100644
--- a/FreeFileSync/Source/lib/db_file.h
+++ b/FreeFileSync/Source/lib/db_file.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DB_FILE_H_834275398588021574
#define DB_FILE_H_834275398588021574
@@ -65,9 +65,9 @@ struct InSyncFolder
InSyncStatus status;
//------------------------------------------------------------------
- typedef std::map<Zstring, InSyncFolder, LessFilePath> FolderList; //
- typedef std::map<Zstring, InSyncFile, LessFilePath> FileList; // key: file name
- typedef std::map<Zstring, InSyncSymlink, LessFilePath> SymlinkList; //
+ using FolderList = std::map<Zstring, InSyncFolder, LessFilePath>; //
+ using FileList = std::map<Zstring, InSyncFile, LessFilePath>; // key: file name
+ using SymlinkList = std::map<Zstring, InSyncSymlink, LessFilePath>; //
//------------------------------------------------------------------
FolderList folders;
diff --git a/FreeFileSync/Source/lib/dir_exist_async.h b/FreeFileSync/Source/lib/dir_exist_async.h
index 3bb01f32..d3eaa9c1 100644
--- a/FreeFileSync/Source/lib/dir_exist_async.h
+++ b/FreeFileSync/Source/lib/dir_exist_async.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DIR_EXIST_ASYNC_H_0817328167343215806734213
#define DIR_EXIST_ASYNC_H_0817328167343215806734213
diff --git a/FreeFileSync/Source/lib/dir_lock.cpp b/FreeFileSync/Source/lib/dir_lock.cpp
index 1370356f..39341577 100644
--- a/FreeFileSync/Source/lib/dir_lock.cpp
+++ b/FreeFileSync/Source/lib/dir_lock.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "dir_lock.h"
#include <map>
#include <wx/log.h>
@@ -85,9 +85,9 @@ public:
void emitLifeSign() const //try to append one byte..., throw()
{
#ifdef ZEN_WIN
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) {}
- try { activatePrivilege(SE_RESTORE_NAME); }
+ try { activatePrivilege(PrivilegeName::RESTORE); }
catch (const FileError&) {}
const HANDLE fileHandle = ::CreateFile(applyLongPathPrefix(lockFilePath_).c_str(), //_In_ LPCTSTR lpFileName,
@@ -197,11 +197,11 @@ Zstring getLoginSid() //throw FileError
#ifdef ZEN_WIN
- typedef DWORD ProcessId;
- typedef DWORD SessionId;
+ using ProcessId = DWORD;
+ using SessionId = DWORD;
#elif defined ZEN_LINUX || defined ZEN_MAC
- typedef pid_t ProcessId;
- typedef pid_t SessionId;
+ using ProcessId = pid_t;
+ using SessionId = pid_t;
#endif
//return ppid on Windows, sid on Linux/Mac, "no value" if process corresponding to "processId" is not existing
@@ -504,9 +504,9 @@ void releaseLock(const Zstring& lockFilePath) //throw ()
bool tryLock(const Zstring& lockFilePath) //throw FileError
{
#ifdef ZEN_WIN
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) {}
- try { activatePrivilege(SE_RESTORE_NAME); }
+ try { activatePrivilege(PrivilegeName::RESTORE); }
catch (const FileError&) {}
const HANDLE fileHandle = ::CreateFile(applyLongPathPrefix(lockFilePath).c_str(), //_In_ LPCTSTR lpFileName,
@@ -637,9 +637,9 @@ private:
LockAdmin (const LockAdmin&) = delete;
LockAdmin& operator=(const LockAdmin&) = delete;
- typedef std::string UniqueId;
- typedef std::map<Zstring, UniqueId, LessFilePath> FileToGuidMap; //n:1 handle uppper/lower case correctly
- typedef std::map<UniqueId, std::weak_ptr<SharedDirLock>> GuidToLockMap; //1:1
+ using UniqueId = std::string;
+ using FileToGuidMap = std::map<Zstring, UniqueId, LessFilePath>; //n:1 handle uppper/lower case correctly
+ using GuidToLockMap = std::map<UniqueId, std::weak_ptr<SharedDirLock>>; //1:1
std::shared_ptr<SharedDirLock> getActiveLock(const UniqueId& lockId) //returns null if none found
{
diff --git a/FreeFileSync/Source/lib/dir_lock.h b/FreeFileSync/Source/lib/dir_lock.h
index 6ababb12..46d327fb 100644
--- a/FreeFileSync/Source/lib/dir_lock.h
+++ b/FreeFileSync/Source/lib/dir_lock.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DIR_LOCK_H_81740832174954356
#define DIR_LOCK_H_81740832174954356
diff --git a/FreeFileSync/Source/lib/error_log.h b/FreeFileSync/Source/lib/error_log.h
index 9d51ab0d..bef4a75d 100644
--- a/FreeFileSync/Source/lib/error_log.h
+++ b/FreeFileSync/Source/lib/error_log.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ERROR_LOG_H_89734181783491324134
#define ERROR_LOG_H_89734181783491324134
diff --git a/FreeFileSync/Source/lib/ffs_paths.cpp b/FreeFileSync/Source/lib/ffs_paths.cpp
index ee843156..9df9ce5e 100644
--- a/FreeFileSync/Source/lib/ffs_paths.cpp
+++ b/FreeFileSync/Source/lib/ffs_paths.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "ffs_paths.h"
#include <zen/file_access.h>
diff --git a/FreeFileSync/Source/lib/ffs_paths.h b/FreeFileSync/Source/lib/ffs_paths.h
index dd0821ac..497681c1 100644
--- a/FreeFileSync/Source/lib/ffs_paths.h
+++ b/FreeFileSync/Source/lib/ffs_paths.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FFS_PATHS_H_842759083425342534253
#define FFS_PATHS_H_842759083425342534253
diff --git a/FreeFileSync/Source/lib/generate_logfile.h b/FreeFileSync/Source/lib/generate_logfile.h
index 5a8f2df6..8a8f6e9a 100644
--- a/FreeFileSync/Source/lib/generate_logfile.h
+++ b/FreeFileSync/Source/lib/generate_logfile.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GENERATE_LOGFILE_H_931726432167489732164
#define GENERATE_LOGFILE_H_931726432167489732164
diff --git a/FreeFileSync/Source/lib/hard_filter.cpp b/FreeFileSync/Source/lib/hard_filter.cpp
index a863a5cd..24e69301 100644
--- a/FreeFileSync/Source/lib/hard_filter.cpp
+++ b/FreeFileSync/Source/lib/hard_filter.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "hard_filter.h"
#include <set>
diff --git a/FreeFileSync/Source/lib/hard_filter.h b/FreeFileSync/Source/lib/hard_filter.h
index 6b82b62e..daeeefd2 100644
--- a/FreeFileSync/Source/lib/hard_filter.h
+++ b/FreeFileSync/Source/lib/hard_filter.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef HARD_FILTER_H_825780275842758345
#define HARD_FILTER_H_825780275842758345
@@ -41,7 +41,7 @@ public:
virtual bool isNull() const = 0; //filter is equivalent to NullFilter, but may be technically slower
- typedef std::shared_ptr<const HardFilter> FilterRef; //always bound by design!
+ using FilterRef = std::shared_ptr<const HardFilter>; //always bound by design!
virtual FilterRef copyFilterAddingExclusion(const Zstring& excludePhrase) const = 0;
@@ -51,6 +51,7 @@ private:
virtual bool cmpLessSameType(const HardFilter& other) const = 0; //typeid(*this) == typeid(other) in this context!
};
+bool operator<(const HardFilter& lhs, const HardFilter& rhs); //GCC: friend-declaration is not a "proper" declaration
inline bool operator==(const HardFilter& lhs, const HardFilter& rhs) { return !(lhs < rhs) && !(rhs < lhs); }
inline bool operator!=(const HardFilter& lhs, const HardFilter& rhs) { return !(lhs == rhs); }
diff --git a/FreeFileSync/Source/lib/help_provider.h b/FreeFileSync/Source/lib/help_provider.h
index adc736c3..50c3219b 100644
--- a/FreeFileSync/Source/lib/help_provider.h
+++ b/FreeFileSync/Source/lib/help_provider.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef HELP_PROVIDER_H_85930427583421563126
#define HELP_PROVIDER_H_85930427583421563126
diff --git a/FreeFileSync/Source/lib/icon_buffer.cpp b/FreeFileSync/Source/lib/icon_buffer.cpp
index 218636b4..9c3020f4 100644
--- a/FreeFileSync/Source/lib/icon_buffer.cpp
+++ b/FreeFileSync/Source/lib/icon_buffer.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "icon_buffer.h"
#include <map>
@@ -224,11 +224,11 @@ private:
struct IconData;
#ifdef __clang__ //workaround libc++ limitation for incomplete types: http://llvm.org/bugs/show_bug.cgi?id=17701
- typedef std::map<AbstractPath, std::unique_ptr<IconData>, AFS::LessAbstractPath> FileIconMap;
+ using FileIconMap = std::map<AbstractPath, std::unique_ptr<IconData>, AFS::LessAbstractPath>;
static IconData& refData(FileIconMap::iterator it) { return *(it->second); }
static std::unique_ptr<IconData> makeValueObject() { return std::make_unique<IconData>(); }
#else
- typedef std::map<AbstractPath, IconData, AFS::LessAbstractPath> FileIconMap;
+ using FileIconMap = std::map<AbstractPath, IconData, AFS::LessAbstractPath>;
IconData& refData(FileIconMap::iterator it) { return it->second; }
static IconData makeValueObject() { return IconData(); }
#endif
@@ -335,13 +335,12 @@ private:
#ifdef ZEN_WIN
-class InitFileIconCacheOnStartup
+struct InitFileIconCacheOnStartup
{
-public:
InitFileIconCacheOnStartup()
{
//icon_loader.h/file_icon_win.h prerequisites: 1. initialize COM, 2. initialize system image list
- typedef BOOL (WINAPI* FileIconInitFun)(BOOL fRestoreCache);
+ using FileIconInitFun = BOOL (WINAPI*)(BOOL fRestoreCache);
const SysDllFun<FileIconInitFun> fileIconInit(L"Shell32.dll", reinterpret_cast<LPCSTR>(660)); //MS requires and documents this magic number
assert(fileIconInit);
if (fileIconInit)
diff --git a/FreeFileSync/Source/lib/icon_buffer.h b/FreeFileSync/Source/lib/icon_buffer.h
index c3354808..c6c94f33 100644
--- a/FreeFileSync/Source/lib/icon_buffer.h
+++ b/FreeFileSync/Source/lib/icon_buffer.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ICON_BUFFER_H_8425703245726394256
#define ICON_BUFFER_H_8425703245726394256
diff --git a/FreeFileSync/Source/lib/icon_holder.h b/FreeFileSync/Source/lib/icon_holder.h
index 9bff11de..63a93436 100644
--- a/FreeFileSync/Source/lib/icon_holder.h
+++ b/FreeFileSync/Source/lib/icon_holder.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef IMAGE_HOLDER_H_284578426342567457
#define IMAGE_HOLDER_H_284578426342567457
diff --git a/FreeFileSync/Source/lib/icon_loader.cpp b/FreeFileSync/Source/lib/icon_loader.cpp
index e3f8137a..088fb082 100644
--- a/FreeFileSync/Source/lib/icon_loader.cpp
+++ b/FreeFileSync/Source/lib/icon_loader.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "icon_loader.h"
#include <zen/scope_guard.h>
@@ -102,7 +102,7 @@ ImageHolder getIconByAttribute(LPCWSTR pszPath, DWORD dwFileAttributes, int pixe
{
//NOTE: CoInitializeEx()/CoUninitialize() needs to be called for THIS thread!
SHFILEINFO fileInfo = {}; //initialize hIcon
- DWORD_PTR imgList = ::SHGetFileInfo(::wcslen(pszPath) == 0 ? L"dummy" : pszPath, //Windows 7 doesn't like this parameter to be an empty string!
+ DWORD_PTR imgList = ::SHGetFileInfo(strLength(pszPath) == 0 ? L"dummy" : pszPath, //Windows 7 doesn't like this parameter to be an empty string!
dwFileAttributes,
&fileInfo,
sizeof(fileInfo),
diff --git a/FreeFileSync/Source/lib/icon_loader.h b/FreeFileSync/Source/lib/icon_loader.h
index e37446c8..f4a1ba99 100644
--- a/FreeFileSync/Source/lib/icon_loader.h
+++ b/FreeFileSync/Source/lib/icon_loader.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ICON_LOADER_H_1348701985713445
#define ICON_LOADER_H_1348701985713445
diff --git a/FreeFileSync/Source/lib/localization.cpp b/FreeFileSync/Source/lib/localization.cpp
index f0a5ce4b..31c29344 100644
--- a/FreeFileSync/Source/lib/localization.cpp
+++ b/FreeFileSync/Source/lib/localization.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "localization.h"
#include <unordered_map>
@@ -62,8 +62,8 @@ public:
}
private:
- typedef std::unordered_map<std::wstring, std::wstring> Translation; //hash_map is 15% faster than std::map on GCC
- typedef std::map<std::pair<std::wstring, std::wstring>, std::vector<std::wstring>> TranslationPlural;
+ using Translation = std::unordered_map<std::wstring, std::wstring>; //hash_map is 15% faster than std::map on GCC
+ using TranslationPlural = std::map<std::pair<std::wstring, std::wstring>, std::vector<std::wstring>>;
Translation transMapping; //map original text |-> translation
TranslationPlural transMappingPl;
@@ -426,8 +426,7 @@ const std::vector<TranslationInfo>& zen::getExistingTranslations()
void zen::releaseWxLocale()
{
wxWidgetsLocale::getInstance().release();
- zen::setTranslator(nullptr); //good place for clean up rather than some time during static destruction: there might be dependencies
- //e.g. crash handler on some thread may show a message box!
+ zen::setTranslator(nullptr); //good place for clean up rather than some time during static destruction: is there an actual benefit???
}
diff --git a/FreeFileSync/Source/lib/localization.h b/FreeFileSync/Source/lib/localization.h
index efc0fa1a..0e503cf1 100644
--- a/FreeFileSync/Source/lib/localization.h
+++ b/FreeFileSync/Source/lib/localization.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef LOCALIZATION_H_8917342083178321534
#define LOCALIZATION_H_8917342083178321534
diff --git a/FreeFileSync/Source/lib/norm_filter.h b/FreeFileSync/Source/lib/norm_filter.h
index 5b27464b..21fad07d 100644
--- a/FreeFileSync/Source/lib/norm_filter.h
+++ b/FreeFileSync/Source/lib/norm_filter.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef NORM_FILTER_H_974896787346251
#define NORM_FILTER_H_974896787346251
diff --git a/FreeFileSync/Source/lib/parallel_scan.cpp b/FreeFileSync/Source/lib/parallel_scan.cpp
index 737b2023..8f4a26a0 100644
--- a/FreeFileSync/Source/lib/parallel_scan.cpp
+++ b/FreeFileSync/Source/lib/parallel_scan.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "parallel_scan.h"
#include <zen/file_error.h>
@@ -138,7 +138,7 @@ Windows 7: Windows XP:
std::vector<std::set<DirectoryKey>> separateByDistinctDisk(const std::set<DirectoryKey>& dirkeys)
{
//use one thread per physical disk:
- typedef std::map<DiskInfo, std::set<DirectoryKey>> DiskKeyMapping;
+ using DiskKeyMapping = std::map<DiskInfo, std::set<DirectoryKey>>;
DiskKeyMapping tmp;
std::for_each(dirkeys.begin(), dirkeys.end(),
[&](const DirectoryKey& key) { tmp[retrieveDiskInfo(key.dirpathFull_)].insert(key); });
@@ -151,7 +151,7 @@ std::vector<std::set<DirectoryKey>> separateByDistinctDisk(const std::set<Direct
*/
//------------------------------------------------------------------------------------------
-typedef Zbase<wchar_t, StorageRefCountThreadSafe> BasicWString; //thread-safe string class for UI texts
+using BasicWString = Zbase<wchar_t, StorageRefCountThreadSafe>; //thread-safe string class for UI texts
class AsyncCallback //actor pattern
diff --git a/FreeFileSync/Source/lib/parallel_scan.h b/FreeFileSync/Source/lib/parallel_scan.h
index fdf962b9..dd720472 100644
--- a/FreeFileSync/Source/lib/parallel_scan.h
+++ b/FreeFileSync/Source/lib/parallel_scan.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PARALLEL_SCAN_H_924588904275284572857
#define PARALLEL_SCAN_H_924588904275284572857
diff --git a/FreeFileSync/Source/lib/parse_lng.h b/FreeFileSync/Source/lib/parse_lng.h
index 29144a48..a3038845 100644
--- a/FreeFileSync/Source/lib/parse_lng.h
+++ b/FreeFileSync/Source/lib/parse_lng.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PARSE_LNG_H_46794693622675638
#define PARSE_LNG_H_46794693622675638
@@ -459,6 +459,11 @@ private:
if (original.empty())
throw ParsingError(L"Translation source text is empty", scn.posRow(), scn.posCol());
+ if (!isValidUtf8(original))
+ throw ParsingError(L"Translation source text contains UTF-8 encoding error", scn.posRow(), scn.posCol());
+ if (!isValidUtf8(translation))
+ throw ParsingError(L"Translation text contains UTF-8 encoding error", scn.posRow(), scn.posCol());
+
if (!translation.empty())
{
//if original contains placeholder, so must translation!
@@ -530,6 +535,11 @@ private:
if (!contains(original.second, "%x"))
throw ParsingError(L"Plural form source text does not contain %x placeholder", scn.posRow(), scn.posCol());
+ if (!isValidUtf8(original.first) || !isValidUtf8(original.second))
+ throw ParsingError(L"Translation source text contains UTF-8 encoding error", scn.posRow(), scn.posCol());
+ if (std::any_of(translation.begin(), translation.end(), [](const std::string& pform) { return !isValidUtf8(pform); }))
+ throw ParsingError(L"Translation text contains UTF-8 encoding error", scn.posRow(), scn.posCol());
+
if (!translation.empty())
{
//check for invalid number of plural forms
@@ -586,7 +596,7 @@ private:
//if source is a one-liner, so should be the translation
if (!contains(original.first, '\n') && !contains(original.second, '\n') &&
- std::any_of(translation.begin(), translation.end(), [&](const std::string& pform) { return contains(pform, '\n'); }))
+ std::any_of(translation.begin(), translation.end(), [](const std::string& pform) { return contains(pform, '\n'); }))
throw ParsingError(L"Source text is a one-liner, but at least one plural form translation consists of multiple lines", scn.posRow(), scn.posCol());
}
}
diff --git a/FreeFileSync/Source/lib/parse_plural.h b/FreeFileSync/Source/lib/parse_plural.h
index 72e0a8da..069a20f9 100644
--- a/FreeFileSync/Source/lib/parse_plural.h
+++ b/FreeFileSync/Source/lib/parse_plural.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PARSE_PLURAL_H_180465845670839576
#define PARSE_PLURAL_H_180465845670839576
diff --git a/FreeFileSync/Source/lib/perf_check.cpp b/FreeFileSync/Source/lib/perf_check.cpp
index 98e3b25d..bb434473 100644
--- a/FreeFileSync/Source/lib/perf_check.cpp
+++ b/FreeFileSync/Source/lib/perf_check.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "perf_check.h"
diff --git a/FreeFileSync/Source/lib/perf_check.h b/FreeFileSync/Source/lib/perf_check.h
index ad602e4f..081abcbb 100644
--- a/FreeFileSync/Source/lib/perf_check.h
+++ b/FreeFileSync/Source/lib/perf_check.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PERF_CHECK_H_87804217589312454
#define PERF_CHECK_H_87804217589312454
diff --git a/FreeFileSync/Source/lib/process_xml.cpp b/FreeFileSync/Source/lib/process_xml.cpp
index acd9b226..9ed35b78 100644
--- a/FreeFileSync/Source/lib/process_xml.cpp
+++ b/FreeFileSync/Source/lib/process_xml.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "process_xml.h"
#include <utility>
@@ -910,6 +910,16 @@ void readConfig(const XmlIn& in, FolderPairEnh& enhPair)
in["Left" ](enhPair.folderPathPhraseLeft_);
in["Right"](enhPair.folderPathPhraseRight_);
+ warn_static("remove after migration - 2016-07-24")
+ replace(enhPair.folderPathPhraseLeft_, Zstr("%csidl_MyDocuments%"), Zstr("%csidl_Documents%"));
+ replace(enhPair.folderPathPhraseLeft_, Zstr("%csidl_MyMusic%" ), Zstr("%csidl_Music%"));
+ replace(enhPair.folderPathPhraseLeft_, Zstr("%csidl_MyPictures%" ), Zstr("%csidl_Pictures%"));
+ replace(enhPair.folderPathPhraseLeft_, Zstr("%csidl_MyVideos%" ), Zstr("%csidl_Videos%"));
+ replace(enhPair.folderPathPhraseRight_, Zstr("%csidl_MyDocuments%"), Zstr("%csidl_Documents%"));
+ replace(enhPair.folderPathPhraseRight_, Zstr("%csidl_MyMusic%" ), Zstr("%csidl_Music%"));
+ replace(enhPair.folderPathPhraseRight_, Zstr("%csidl_MyPictures%" ), Zstr("%csidl_Pictures%"));
+ replace(enhPair.folderPathPhraseRight_, Zstr("%csidl_MyVideos%" ), Zstr("%csidl_Videos%"));
+
//###########################################################
//alternate comp configuration (optional)
if (XmlIn inAltCmp = in["CompareConfig"])
@@ -1165,6 +1175,11 @@ void readConfig(const XmlIn& in, XmlGlobalSettings& config, int formatVer)
replace(item.second, Zstr("%item_path2%"), Zstr("%local_path2%"));
}
}
+ warn_static("remove macro migration after some time! 2016-07-18")
+#ifdef ZEN_LINUX //small bug fix: "Browse directory" command used wrong macro in formatVer == 3
+ for (auto& item : config.gui.externelApplications)
+ replace(item.second, Zstr("%item_folder%"), Zstr("%folder_path%"));
+#endif
//last update check
inGui["LastOnlineCheck" ](config.gui.lastUpdateCheck);
@@ -1360,7 +1375,7 @@ void writeConfig(const FilterConfig& filter, XmlOut& out)
}
-void writeConfigFolderPair(const FolderPairEnh& enhPair, XmlOut& out)
+void writeConfig(const FolderPairEnh& enhPair, XmlOut& out)
{
XmlOut outPair = out.ref().addChild("Pair");
@@ -1417,11 +1432,11 @@ void writeConfig(const MainConfiguration& mainCfg, XmlOut& out)
XmlOut outFp = outMain["FolderPairs"];
//write first folder pair
- writeConfigFolderPair(mainCfg.firstPair, outFp);
+ writeConfig(mainCfg.firstPair, outFp);
//write additional folder pairs
- std::for_each(mainCfg.additionalPairs.begin(), mainCfg.additionalPairs.end(),
- [&](const FolderPairEnh& fp) { writeConfigFolderPair(fp, outFp); });
+ for (const FolderPairEnh& fp : mainCfg.additionalPairs)
+ writeConfig(fp, outFp);
outMain["OnCompletion"](mainCfg.onCompletion);
}
diff --git a/FreeFileSync/Source/lib/process_xml.h b/FreeFileSync/Source/lib/process_xml.h
index 2bd8c0c0..a1afd6f9 100644
--- a/FreeFileSync/Source/lib/process_xml.h
+++ b/FreeFileSync/Source/lib/process_xml.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PROCESS_XML_H_28345825704254262435
#define PROCESS_XML_H_28345825704254262435
@@ -160,7 +160,7 @@ struct XmlGlobalSettings
//---------------------------------------------------------------------
struct Gui
{
- Gui() {} //clang needs this anyway
+ Gui() {} //clang needs this anyway
struct
{
wxPoint dlgPos;
@@ -240,7 +240,7 @@ struct XmlGlobalSettings
//mark for extraction: _("Show in Explorer")
//mark for extraction: _("Open with default application")
#elif defined ZEN_LINUX
- { L"Browse directory", Zstr("xdg-open \"%item_folder%\"") },
+ { L"Browse directory", Zstr("xdg-open \"%folder_path%\"") },
{ L"Open with default application", Zstr("xdg-open \"%local_path%\"") },
//mark for extraction: _("Browse directory") Linux doesn't use the term "folder"
#elif defined ZEN_MAC
diff --git a/FreeFileSync/Source/lib/resolve_path.cpp b/FreeFileSync/Source/lib/resolve_path.cpp
index a8d73a55..e49cd88d 100644
--- a/FreeFileSync/Source/lib/resolve_path.cpp
+++ b/FreeFileSync/Source/lib/resolve_path.cpp
@@ -141,7 +141,7 @@ Zstring resolveRelativePath(const Zstring& relativePath)
class CsidlConstants
{
public:
- typedef std::map<Zstring, Zstring, LessFilePath> CsidlToDirMap; //case-insensitive!
+ using CsidlToDirMap = std::map<Zstring, Zstring, LessFilePath>; //case-insensitive!
static const CsidlToDirMap& get()
{
@@ -194,34 +194,34 @@ private:
addCsidl(CSIDL_DESKTOPDIRECTORY, L"csidl_Desktop"); // C:\Users\<user>\Desktop
addCsidl(CSIDL_COMMON_DESKTOPDIRECTORY, L"csidl_PublicDesktop"); // C:\Users\All Users\Desktop
- addCsidl(CSIDL_FAVORITES, L"csidl_Favorites"); // C:\Users\<user>\Favorites
- //addCsidl(CSIDL_COMMON_FAVORITES, L"csidl_PublicFavorites"); // C:\Users\<user>\Favorites; unused? -> https://blogs.msdn.microsoft.com/oldnewthing/20120904-00/?p=6693/
-
- addCsidl(CSIDL_PERSONAL, L"csidl_MyDocuments"); // C:\Users\<user>\Documents
+ addCsidl(CSIDL_PERSONAL, L"csidl_Documents"); // C:\Users\<user>\Documents
addCsidl(CSIDL_COMMON_DOCUMENTS, L"csidl_PublicDocuments"); // C:\Users\Public\Documents
- addCsidl(CSIDL_MYMUSIC, L"csidl_MyMusic"); // C:\Users\<user>\Music
- addCsidl(CSIDL_COMMON_MUSIC, L"csidl_PublicMusic"); // C:\Users\Public\Music
-
- addCsidl(CSIDL_MYPICTURES, L"csidl_MyPictures"); // C:\Users\<user>\Pictures
+ addCsidl(CSIDL_MYPICTURES, L"csidl_Pictures"); // C:\Users\<user>\Pictures
addCsidl(CSIDL_COMMON_PICTURES, L"csidl_PublicPictures"); // C:\Users\Public\Pictures
- addCsidl(CSIDL_MYVIDEO, L"csidl_MyVideos"); // C:\Users\<user>\Videos
+ addCsidl(CSIDL_MYMUSIC, L"csidl_Music"); // C:\Users\<user>\Music
+ addCsidl(CSIDL_COMMON_MUSIC, L"csidl_PublicMusic"); // C:\Users\Public\Music
+
+ addCsidl(CSIDL_MYVIDEO, L"csidl_Videos"); // C:\Users\<user>\Videos
addCsidl(CSIDL_COMMON_VIDEO, L"csidl_PublicVideos"); // C:\Users\Public\Videos
- addCsidl(CSIDL_NETHOOD, L"csidl_Nethood"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Network Shortcuts
-
- addCsidl(CSIDL_PROGRAMS, L"csidl_Programs"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
- addCsidl(CSIDL_COMMON_PROGRAMS, L"csidl_PublicPrograms"); // C:\ProgramData\Microsoft\Windows\Start Menu\Programs
+ addCsidl(CSIDL_FAVORITES, L"csidl_Favorites"); // C:\Users\<user>\Favorites
+ //addCsidl(CSIDL_COMMON_FAVORITES, L"csidl_PublicFavorites"); // C:\Users\<user>\Favorites; unused? -> https://blogs.msdn.microsoft.com/oldnewthing/20120904-00/?p=6693/
addCsidl(CSIDL_RESOURCES, L"csidl_Resources"); // C:\Windows\Resources
addCsidl(CSIDL_STARTMENU, L"csidl_StartMenu"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu
addCsidl(CSIDL_COMMON_STARTMENU, L"csidl_PublicStartMenu"); // C:\ProgramData\Microsoft\Windows\Start Menu
+ addCsidl(CSIDL_PROGRAMS, L"csidl_Programs"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
+ addCsidl(CSIDL_COMMON_PROGRAMS, L"csidl_PublicPrograms"); // C:\ProgramData\Microsoft\Windows\Start Menu\Programs
+
addCsidl(CSIDL_STARTUP, L"csidl_Startup"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp
addCsidl(CSIDL_COMMON_STARTUP, L"csidl_PublicStartup"); // C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
+ addCsidl(CSIDL_NETHOOD, L"csidl_Nethood"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Network Shortcuts
+
addCsidl(CSIDL_TEMPLATES, L"csidl_Templates"); // C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Templates
addCsidl(CSIDL_COMMON_TEMPLATES, L"csidl_PublicTemplates"); // C:\ProgramData\Microsoft\Windows\Templates
diff --git a/FreeFileSync/Source/lib/resolve_path.h b/FreeFileSync/Source/lib/resolve_path.h
index d6ab29ad..d2545994 100644
--- a/FreeFileSync/Source/lib/resolve_path.h
+++ b/FreeFileSync/Source/lib/resolve_path.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef RESOLVE_PATH_H_817402834713454
#define RESOLVE_PATH_H_817402834713454
diff --git a/FreeFileSync/Source/lib/return_codes.h b/FreeFileSync/Source/lib/return_codes.h
index a3d45a25..6d1115a5 100644
--- a/FreeFileSync/Source/lib/return_codes.h
+++ b/FreeFileSync/Source/lib/return_codes.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef RETURN_CODES_H_81307482137054156
#define RETURN_CODES_H_81307482137054156
diff --git a/FreeFileSync/Source/lib/soft_filter.h b/FreeFileSync/Source/lib/soft_filter.h
index 18e75244..7a68a44b 100644
--- a/FreeFileSync/Source/lib/soft_filter.h
+++ b/FreeFileSync/Source/lib/soft_filter.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SOFT_FILTER_H_810457108534657
#define SOFT_FILTER_H_810457108534657
diff --git a/FreeFileSync/Source/lib/status_handler.cpp b/FreeFileSync/Source/lib/status_handler.cpp
index c19b97c4..1d940cc9 100644
--- a/FreeFileSync/Source/lib/status_handler.cpp
+++ b/FreeFileSync/Source/lib/status_handler.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "status_handler.h"
#include <zen/tick_count.h>
diff --git a/FreeFileSync/Source/lib/status_handler.h b/FreeFileSync/Source/lib/status_handler.h
index 4dbf1498..42506637 100644
--- a/FreeFileSync/Source/lib/status_handler.h
+++ b/FreeFileSync/Source/lib/status_handler.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STATUS_HANDLER_H_81704805908341534
#define STATUS_HANDLER_H_81704805908341534
diff --git a/FreeFileSync/Source/lib/status_handler_impl.h b/FreeFileSync/Source/lib/status_handler_impl.h
index 8cce3864..ca836311 100644
--- a/FreeFileSync/Source/lib/status_handler_impl.h
+++ b/FreeFileSync/Source/lib/status_handler_impl.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STATUS_HANDLER_IMPL_H_07682758976
#define STATUS_HANDLER_IMPL_H_07682758976
diff --git a/FreeFileSync/Source/lib/versioning.h b/FreeFileSync/Source/lib/versioning.h
index 9227c608..82bf9531 100644
--- a/FreeFileSync/Source/lib/versioning.h
+++ b/FreeFileSync/Source/lib/versioning.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef VERSIONING_H_8760247652438056
#define VERSIONING_H_8760247652438056
diff --git a/FreeFileSync/Source/process_callback.h b/FreeFileSync/Source/process_callback.h
index c9e9a997..d483a7a1 100644
--- a/FreeFileSync/Source/process_callback.h
+++ b/FreeFileSync/Source/process_callback.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PROCESS_CALLBACK_H_48257827842345454545
#define PROCESS_CALLBACK_H_48257827842345454545
diff --git a/FreeFileSync/Source/structures.cpp b/FreeFileSync/Source/structures.cpp
index e1fed4a7..2b644fab 100644
--- a/FreeFileSync/Source/structures.cpp
+++ b/FreeFileSync/Source/structures.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "structures.h"
#include <iterator>
diff --git a/FreeFileSync/Source/structures.h b/FreeFileSync/Source/structures.h
index d0f2699a..97c7e38c 100644
--- a/FreeFileSync/Source/structures.h
+++ b/FreeFileSync/Source/structures.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STRUCTURES_H_8210478915019450901745
#define STRUCTURES_H_8210478915019450901745
diff --git a/FreeFileSync/Source/synchronization.cpp b/FreeFileSync/Source/synchronization.cpp
index 2f7576e4..fc6f6246 100644
--- a/FreeFileSync/Source/synchronization.cpp
+++ b/FreeFileSync/Source/synchronization.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "synchronization.h"
#include <zen/process_priority.h>
@@ -2106,7 +2106,7 @@ void zen::synchronize(const TimeComp& timeStamp,
//check if user accidentally selected wrong directories for sync
if (!significantDiffPairs.empty())
{
- std::wstring msg = _("The following folders are significantly different. Make sure you have selected the correct folders for synchronization.");
+ std::wstring msg = _("The following folders are significantly different. Please check that the correct folders are selected for synchronization.");
for (const auto& item : significantDiffPairs)
msg += L"\n\n" +
diff --git a/FreeFileSync/Source/synchronization.h b/FreeFileSync/Source/synchronization.h
index d066e65d..1c39ce8d 100644
--- a/FreeFileSync/Source/synchronization.h
+++ b/FreeFileSync/Source/synchronization.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SYNCHRONIZATION_H_8913470815943295
#define SYNCHRONIZATION_H_8913470815943295
diff --git a/FreeFileSync/Source/ui/app_icon.h b/FreeFileSync/Source/ui/app_icon.h
index 7bca4290..993e3d11 100644
--- a/FreeFileSync/Source/ui/app_icon.h
+++ b/FreeFileSync/Source/ui/app_icon.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef APP_ICON_H_6748179634932174683214
#define APP_ICON_H_6748179634932174683214
diff --git a/FreeFileSync/Source/ui/batch_config.cpp b/FreeFileSync/Source/ui/batch_config.cpp
index 869228d6..214456c7 100644
--- a/FreeFileSync/Source/ui/batch_config.cpp
+++ b/FreeFileSync/Source/ui/batch_config.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "batch_config.h"
#include <wx/wupdlock.h>
diff --git a/FreeFileSync/Source/ui/batch_config.h b/FreeFileSync/Source/ui/batch_config.h
index e611ee3b..bb3c3bf4 100644
--- a/FreeFileSync/Source/ui/batch_config.h
+++ b/FreeFileSync/Source/ui/batch_config.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BATCH_CONFIG_H_3921674832168945
#define BATCH_CONFIG_H_3921674832168945
diff --git a/FreeFileSync/Source/ui/batch_status_handler.cpp b/FreeFileSync/Source/ui/batch_status_handler.cpp
index b22128ab..7ebc010b 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.cpp
+++ b/FreeFileSync/Source/ui/batch_status_handler.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "batch_status_handler.h"
#include <zen/shell_execute.h>
@@ -119,7 +119,7 @@ void limitLogfileCount(const AbstractPath& logFolderPath, const std::wstring& jo
{
AFS::removeFile(AFS::appendRelPath(logFolderPath, logFileName)); //throw FileError
}
- catch (const FileError& e) { if (!lastError) *lastError = e; };
+ catch (const FileError& e) { if (!lastError) lastError = e; };
if (onUpdateStatus)
onUpdateStatus();
diff --git a/FreeFileSync/Source/ui/batch_status_handler.h b/FreeFileSync/Source/ui/batch_status_handler.h
index fe1c9f07..81de2d4f 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.h
+++ b/FreeFileSync/Source/ui/batch_status_handler.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BATCH_STATUS_HANDLER_H_857390451451234566
#define BATCH_STATUS_HANDLER_H_857390451451234566
diff --git a/FreeFileSync/Source/ui/column_attr.h b/FreeFileSync/Source/ui/column_attr.h
index dd2f78b4..d48640bc 100644
--- a/FreeFileSync/Source/ui/column_attr.h
+++ b/FreeFileSync/Source/ui/column_attr.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef COLUMN_ATTR_H_189467891346732143213
#define COLUMN_ATTR_H_189467891346732143213
diff --git a/FreeFileSync/Source/ui/custom_grid.cpp b/FreeFileSync/Source/ui/custom_grid.cpp
index 0296d4fd..bf9e3a16 100644
--- a/FreeFileSync/Source/ui/custom_grid.cpp
+++ b/FreeFileSync/Source/ui/custom_grid.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "custom_grid.h"
#include <set>
@@ -1452,11 +1452,9 @@ private:
//apply resized offset to other side, but only if stretch factors match!
std::vector<Grid::ColumnAttribute> cfgTrg = trg.getColumnConfig();
- std::for_each(cfgTrg.begin(), cfgTrg.end(), [&](Grid::ColumnAttribute& ca)
- {
+ for (Grid::ColumnAttribute& ca : cfgTrg)
if (ca.type_ == type && ca.stretch_ == stretchSrc)
ca.offset_ = offset;
- });
trg.setColumnConfig(cfgTrg);
}
diff --git a/FreeFileSync/Source/ui/custom_grid.h b/FreeFileSync/Source/ui/custom_grid.h
index 2c129f17..c8138931 100644
--- a/FreeFileSync/Source/ui/custom_grid.h
+++ b/FreeFileSync/Source/ui/custom_grid.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef CUSTOM_GRID_H_8405817408327894
#define CUSTOM_GRID_H_8405817408327894
@@ -71,8 +71,8 @@ struct SyncDirectionEvent : public wxCommandEvent
const SyncDirection direction_;
};
-typedef void (wxEvtHandler::*CheckRowsEventFunction)(CheckRowsEvent&);
-typedef void (wxEvtHandler::*SyncDirectionEventFunction)(SyncDirectionEvent&);
+using CheckRowsEventFunction = void (wxEvtHandler::*)(CheckRowsEvent&);
+using SyncDirectionEventFunction = void (wxEvtHandler::*)(SyncDirectionEvent&);
#define CheckRowsEventHandler(func) \
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(CheckRowsEventFunction, &func)
diff --git a/FreeFileSync/Source/ui/folder_history_box.cpp b/FreeFileSync/Source/ui/folder_history_box.cpp
index 919acd00..7bbdf6a0 100644
--- a/FreeFileSync/Source/ui/folder_history_box.cpp
+++ b/FreeFileSync/Source/ui/folder_history_box.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "folder_history_box.h"
#include <list>
diff --git a/FreeFileSync/Source/ui/folder_history_box.h b/FreeFileSync/Source/ui/folder_history_box.h
index 4c220bd9..cd9eb9e7 100644
--- a/FreeFileSync/Source/ui/folder_history_box.h
+++ b/FreeFileSync/Source/ui/folder_history_box.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FOLDER_HISTORY_BOX_H_08170517045945
#define FOLDER_HISTORY_BOX_H_08170517045945
diff --git a/FreeFileSync/Source/ui/folder_pair.h b/FreeFileSync/Source/ui/folder_pair.h
index ccc1a57d..625b233a 100644
--- a/FreeFileSync/Source/ui/folder_pair.h
+++ b/FreeFileSync/Source/ui/folder_pair.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FOLDER_PAIR_H_89341750847252345
#define FOLDER_PAIR_H_89341750847252345
@@ -28,8 +28,8 @@ template <class GuiPanel>
class FolderPairPanelBasic : private wxEvtHandler
{
public:
- typedef std::shared_ptr<const CompConfig> AltCompCfgPtr;
- typedef std::shared_ptr<const SyncConfig> AltSyncCfgPtr;
+ using AltCompCfgPtr = std::shared_ptr<const CompConfig>;
+ using AltSyncCfgPtr = std::shared_ptr<const SyncConfig>;
void setConfig(AltCompCfgPtr compConfig, AltSyncCfgPtr syncCfg, const FilterConfig& filter)
{
diff --git a/FreeFileSync/Source/ui/folder_selector.cpp b/FreeFileSync/Source/ui/folder_selector.cpp
index 759bb1cf..ffdf5288 100644
--- a/FreeFileSync/Source/ui/folder_selector.cpp
+++ b/FreeFileSync/Source/ui/folder_selector.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "folder_selector.h"
#include <zen/thread.h>
diff --git a/FreeFileSync/Source/ui/folder_selector.h b/FreeFileSync/Source/ui/folder_selector.h
index 8a2421e1..f521747f 100644
--- a/FreeFileSync/Source/ui/folder_selector.h
+++ b/FreeFileSync/Source/ui/folder_selector.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FOLDER_SELECTOR_H_24857842375234523463425
#define FOLDER_SELECTOR_H_24857842375234523463425
diff --git a/FreeFileSync/Source/ui/grid_view.cpp b/FreeFileSync/Source/ui/grid_view.cpp
index 4f112057..d8a4a900 100644
--- a/FreeFileSync/Source/ui/grid_view.cpp
+++ b/FreeFileSync/Source/ui/grid_view.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "grid_view.h"
#include "sorting.h"
@@ -56,8 +56,7 @@ void GridView::updateView(Predicate pred)
rowPositions.clear();
rowPositionsFirstChild.clear();
- std::for_each(sortedRef.begin(), sortedRef.end(),
- [&](const RefIndex& ref)
+ for (const RefIndex& ref : sortedRef)
{
if (const FileSystemObject* fsObj = FileSystemObject::retrieve(ref.objId))
if (pred(*fsObj))
@@ -83,7 +82,7 @@ void GridView::updateView(Predicate pred)
//build subview
this->viewRef.push_back(ref.objId);
}
- });
+ }
}
diff --git a/FreeFileSync/Source/ui/grid_view.h b/FreeFileSync/Source/ui/grid_view.h
index 9930612d..fb08bffe 100644
--- a/FreeFileSync/Source/ui/grid_view.h
+++ b/FreeFileSync/Source/ui/grid_view.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GRID_VIEW_H_9285028345703475842569
#define GRID_VIEW_H_9285028345703475842569
diff --git a/FreeFileSync/Source/ui/gui_generated.cpp b/FreeFileSync/Source/ui/gui_generated.cpp
index 27349c5a..ce1ce2ba 100644
--- a/FreeFileSync/Source/ui/gui_generated.cpp
+++ b/FreeFileSync/Source/ui/gui_generated.cpp
@@ -19,1029 +19,1029 @@
MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( 640,400 ), wxDefaultSize );
-
- m_menubar1 = new wxMenuBar( 0 );
- m_menuFile = new wxMenu();
- m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemNew );
-
- m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemLoad );
-
- m_menuFile->AppendSeparator();
-
- m_menuItemSave = new wxMenuItem( m_menuFile, wxID_SAVE, wxString( _("&Save") ) + wxT('\t') + wxT("Ctrl+S"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSave );
-
- m_menuItemSaveAs = new wxMenuItem( m_menuFile, wxID_SAVEAS, wxString( _("Save &as...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSaveAs );
-
- m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSaveAsBatch );
-
- m_menuFile->AppendSeparator();
-
- wxMenuItem* m_menuItem4;
- m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItem4 );
-
- m_menubar1->Append( m_menuFile, _("&File") );
-
- m_menu4 = new wxMenu();
- m_menuItemCompare = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemCompare );
-
- m_menu4->AppendSeparator();
-
- m_menuItemCompSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemCompSettings );
-
- m_menuItemFilter = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemFilter );
-
- m_menuItemSyncSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemSyncSettings );
-
- m_menu4->AppendSeparator();
-
- m_menuItemSynchronize = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemSynchronize );
-
- m_menubar1->Append( m_menu4, _("&Actions") );
-
- m_menuTools = new wxMenu();
- m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemOptions );
-
- m_menuLanguages = new wxMenu();
- wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
- m_menuTools->Append( m_menuLanguagesItem );
-
- m_menuTools->AppendSeparator();
-
- wxMenuItem* m_menuItem15;
- m_menuItem15 = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem15 );
-
- wxMenuItem* m_menuItem51;
- m_menuItem51 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem51 );
-
- wxMenuItem* m_menuItem5;
- m_menuItem5 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem5 );
-
- m_menubar1->Append( m_menuTools, _("&Tools") );
-
- m_menuHelp = new wxMenu();
- m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemHelp );
-
- m_menuCheckVersion = new wxMenu();
- wxMenuItem* m_menuCheckVersionItem = new wxMenuItem( m_menuHelp, wxID_ANY, _("&Check for new version"), wxEmptyString, wxITEM_NORMAL, m_menuCheckVersion );
- m_menuItemCheckVersionNow = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("&Check now") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuCheckVersion->Append( m_menuItemCheckVersionNow );
-
- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK );
- m_menuCheckVersion->Append( m_menuItemCheckVersionAuto );
- m_menuItemCheckVersionAuto->Check( true );
-
- m_menuHelp->Append( m_menuCheckVersionItem );
-
- m_menuHelp->AppendSeparator();
-
- m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemAbout );
-
- m_menubar1->Append( m_menuHelp, _("&Help") );
-
- this->SetMenuBar( m_menubar1 );
-
- bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
-
- m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1791;
- bSizer1791 = new wxBoxSizer( wxVERTICAL );
-
- bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonCancel = new zen::BitmapTextButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonCancel->Enable( false );
- m_buttonCancel->Hide();
-
- bSizerTopButtons->Add( m_buttonCancel, 0, wxEXPAND, 5 );
-
- m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCompare->SetDefault();
- m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonCompare->SetToolTip( _("dummy") );
-
- bSizerTopButtons->Add( m_buttonCompare, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer198;
- bSizer198 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonCmpConfig->SetToolTip( _("dummy") );
-
- bSizer198->Add( m_bpButtonCmpConfig, 1, wxEXPAND, 5 );
-
- m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
- m_bpButtonCmpContext->SetToolTip( _("dummy") );
-
- bSizer198->Add( m_bpButtonCmpContext, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer198, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer199;
- bSizer199 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 60,-1 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
- bSizer199->Add( m_bpButtonFilter, 1, wxEXPAND, 5 );
-
- m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
- m_bpButtonFilterContext->SetToolTip( _("dummy") );
-
- bSizer199->Add( m_bpButtonFilterContext, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer199, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer200;
- bSizer200 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonSyncConfig->SetToolTip( _("dummy") );
-
- bSizer200->Add( m_bpButtonSyncConfig, 1, wxEXPAND, 5 );
-
- m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
- m_bpButtonSyncContext->SetToolTip( _("dummy") );
-
- bSizer200->Add( m_bpButtonSyncContext, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer200, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
-
- m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonSync->SetToolTip( _("dummy") );
-
- bSizerTopButtons->Add( m_buttonSync, 0, wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND, 5 );
-
-
- m_panelTopButtons->SetSizer( bSizer1791 );
- m_panelTopButtons->Layout();
- bSizer1791->Fit( m_panelTopButtons );
- bSizerPanelHolder->Add( m_panelTopButtons, 0, wxEXPAND, 5 );
-
- m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1601;
- bSizer1601 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer91;
- bSizer91 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopLeft->SetMinSize( wxSize( 1,-1 ) );
-
- wxFlexGridSizer* fgSizer8;
- fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer8->AddGrowableCol( 1 );
- fgSizer8->SetFlexibleDirection( wxBOTH );
- fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
-
-
- fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathL->Wrap( -1 );
- fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
-
- bSizer159->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer159->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer8->Add( bSizer159, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
-
- bSizer182->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
-
- bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
-
-
- fgSizer8->Add( bSizer182, 0, wxEXPAND, 5 );
-
-
- m_panelTopLeft->SetSizer( fgSizer8 );
- m_panelTopLeft->Layout();
- fgSizer8->Fit( m_panelTopLeft );
- bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1771;
- bSizer1771 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
-
- bSizer1771->Add( m_bpButtonSwapSides, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1771->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panelTopCenter->SetSizer( bSizer1771 );
- m_panelTopCenter->Layout();
- bSizer1771->Fit( m_panelTopCenter );
- bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- m_panelTopRight = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopRight->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathR->Wrap( -1 );
- bSizer183->Add( m_staticTextResolvedPathR, 0, wxALL, 2 );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
-
- bSizer179->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
-
- bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
-
-
- bSizer183->Add( bSizer179, 0, wxEXPAND, 5 );
-
-
- m_panelTopRight->SetSizer( bSizer183 );
- m_panelTopRight->Layout();
- bSizer183->Fit( m_panelTopRight );
- bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
-
- bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
-
- m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
- m_scrolledWindowFolderPairs->SetScrollRate( 10, 10 );
- m_scrolledWindowFolderPairs->SetMinSize( wxSize( -1,0 ) );
-
- bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
-
-
- m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
- m_scrolledWindowFolderPairs->Layout();
- bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
- bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxEXPAND, 5 );
-
-
- m_panelDirectoryPairs->SetSizer( bSizer1601 );
- m_panelDirectoryPairs->Layout();
- bSizer1601->Fit( m_panelDirectoryPairs );
- bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxEXPAND, 5 );
-
- m_gridNavi = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridNavi->SetScrollRate( 5, 5 );
- bSizerPanelHolder->Add( m_gridNavi, 1, wxEXPAND, 5 );
-
- m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1711;
- bSizer1711 = new wxBoxSizer( wxVERTICAL );
-
- m_splitterMain = new zen::TripleSplitter( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1781;
- bSizer1781 = new wxBoxSizer( wxHORIZONTAL );
-
- m_gridMainL = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainL->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainL, 1, wxEXPAND, 5 );
-
- m_gridMainC = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainC->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainC, 0, wxEXPAND, 5 );
-
- m_gridMainR = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainR->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainR, 1, wxEXPAND, 5 );
-
-
- m_splitterMain->SetSizer( bSizer1781 );
- m_splitterMain->Layout();
- bSizer1781->Fit( m_splitterMain );
- bSizer1711->Add( m_splitterMain, 1, wxEXPAND, 5 );
-
- m_panelStatusBar = new wxPanel( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer451;
- bSizer451 = new wxBoxSizer( wxHORIZONTAL );
-
- bSizer451->SetMinSize( wxSize( -1,22 ) );
- bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
-
- bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer53;
- bSizer53 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusLeftDirectories = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSmallDirectoryLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusLeftDirectories->Add( m_bitmapSmallDirectoryLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftDirectories->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftDirs->Wrap( -1 );
- bSizerStatusLeftDirectories->Add( m_staticTextStatusLeftDirs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer53->Add( bSizerStatusLeftDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerStatusLeftFiles->Add( 10, 0, 0, 0, 5 );
-
- m_bitmapSmallFileLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusLeftFiles->Add( m_bitmapSmallFileLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftFiles->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftFiles->Wrap( -1 );
- bSizerStatusLeftFiles->Add( m_staticTextStatusLeftFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftBytes->Wrap( -1 );
- bSizerStatusLeftFiles->Add( m_staticTextStatusLeftBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( bSizerStatusLeftFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND, 5 );
-
- m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusLeft->Add( m_staticline9, 0, wxEXPAND|wxTOP, 2 );
-
-
- bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND, 5 );
-
-
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusCenter->Wrap( -1 );
- bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxTOP, 2 );
-
- wxBoxSizer* bSizer52;
- bSizer52 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRightDirectories = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSmallDirectoryRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusRightDirectories->Add( m_bitmapSmallDirectoryRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightDirectories->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusRightDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightDirs->Wrap( -1 );
- bSizerStatusRightDirectories->Add( m_staticTextStatusRightDirs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( bSizerStatusRightDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerStatusRightFiles->Add( 10, 0, 0, 0, 5 );
-
- m_bitmapSmallFileRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusRightFiles->Add( m_bitmapSmallFileRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightFiles->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusRightFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightFiles->Wrap( -1 );
- bSizerStatusRightFiles->Add( m_staticTextStatusRightFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
-
- m_staticTextStatusRightBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightBytes->Wrap( -1 );
- bSizerStatusRightFiles->Add( m_staticTextStatusRightBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( bSizerStatusRightFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRight->Add( bSizer52, 1, wxEXPAND, 5 );
-
-
- bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND, 5 );
-
-
- bSizer451->Add( bSizerFileStatus, 1, wxEXPAND, 5 );
-
- m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFullStatus->Wrap( -1 );
- m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- m_panelStatusBar->SetSizer( bSizer451 );
- m_panelStatusBar->Layout();
- bSizer451->Fit( m_panelStatusBar );
- bSizer1711->Add( m_panelStatusBar, 0, wxEXPAND, 5 );
-
-
- m_panelCenter->SetSizer( bSizer1711 );
- m_panelCenter->Layout();
- bSizer1711->Fit( m_panelCenter );
- bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
-
- m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1713;
- bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
-
- bSizer1713->Add( m_bpButtonHideSearch, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), wxTE_PROCESS_ENTER|wxWANTS_CHARS );
- m_textCtrlSearchTxt->SetMaxLength( 0 );
- bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- m_panelSearch->SetSizer( bSizer1713 );
- m_panelSearch->Layout();
- bSizer1713->Fit( m_panelSearch );
- bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
-
- m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer151;
- bSizer151 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer17611;
- bSizer17611 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonNew->SetToolTip( _("dummy") );
-
- bSizer17611->Add( m_bpButtonNew, 0, wxEXPAND, 5 );
-
- m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText951->Wrap( -1 );
- bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer17611, 0, 0, 5 );
-
- wxBoxSizer* bSizer1761;
- bSizer1761 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonOpen->SetToolTip( _("dummy") );
-
- bSizer1761->Add( m_bpButtonOpen, 0, wxEXPAND, 5 );
-
- m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText95->Wrap( -1 );
- bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer1761, 0, 0, 5 );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSave->SetToolTip( _("dummy") );
-
- bSizer175->Add( m_bpButtonSave, 0, wxEXPAND, 5 );
-
- m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText961->Wrap( -1 );
- bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer175, 0, 0, 5 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer1772;
- bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSaveAs->SetToolTip( _("dummy") );
-
- bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
-
- m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
-
- bSizer1772->Add( m_bpButtonSaveAsBatch, 1, 0, 5 );
-
-
- bSizer174->Add( bSizer1772, 0, wxEXPAND, 5 );
-
- m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText97->Wrap( -1 );
- bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer174, 0, 0, 5 );
-
-
- bSizerConfig->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_listBoxHistory = new wxListBox( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_NEEDED_SB );
- m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
-
- bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND, 5 );
-
-
- m_panelConfig->SetSizer( bSizerConfig );
- m_panelConfig->Layout();
- bSizerConfig->Fit( m_panelConfig );
- bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
-
- m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextViewType = new wxStaticText( m_panelViewFilter, wxID_ANY, _("View type:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextViewType->Wrap( -1 );
- bSizerViewFilter->Add( m_staticTextViewType, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonViewTypeSyncAction = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 82,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonViewTypeSyncAction, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
-
- m_bpButtonShowExcluded = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextSelectView = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Select view:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSelectView->Wrap( -1 );
- bSizerViewFilter->Add( m_staticTextSelectView, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowUpdateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDoNothing = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowUpdateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer1801 = new wxBoxSizer( wxVERTICAL );
-
- bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer173->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer173->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteLeft->Wrap( -1 );
- m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer173->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer173, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer172->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerStatistics->Add( bSizer172, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer1712;
- bSizer1712 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer1712->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer1712->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer1712->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateLeft->Wrap( -1 );
- m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer1712->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerStatistics->Add( bSizer1712, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- bSizerData = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapData->SetToolTip( _("Total bytes to copy") );
-
- bSizerData->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerData->Add( 5, 2, 0, 0, 5 );
-
-
- bSizerData->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextData->Wrap( -1 );
- m_staticTextData->SetToolTip( _("Total bytes to copy") );
-
- bSizerData->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizerData, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer178->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer178->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer178->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateRight->Wrap( -1 );
- m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer178->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer178, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer177->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer177, 0, wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer176->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer176->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer176->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteRight->Wrap( -1 );
- m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer176->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer176, 0, wxEXPAND, 5 );
-
-
- bSizer1801->Add( bSizerStatistics, 0, wxALL, 4 );
-
-
- m_panelStatistics->SetSizer( bSizer1801 );
- m_panelStatistics->Layout();
- bSizer1801->Fit( m_panelStatistics );
- bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panelViewFilter->SetSizer( bSizerViewFilter );
- m_panelViewFilter->Layout();
- bSizerViewFilter->Fit( m_panelViewFilter );
- bSizerPanelHolder->Add( m_panelViewFilter, 0, 0, 5 );
-
-
- this->SetSizer( bSizerPanelHolder );
- this->Layout();
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
- this->Connect( m_menuItemNew->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
- this->Connect( m_menuItemLoad->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
- this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
- this->Connect( m_menuItemSaveAs->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
- this->Connect( m_menuItemSaveAsBatch->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ) );
- this->Connect( m_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
- this->Connect( m_menuItemCompare->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
- this->Connect( m_menuItemCompSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ) );
- this->Connect( m_menuItemFilter->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ) );
- this->Connect( m_menuItemSyncSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ) );
- this->Connect( m_menuItemSynchronize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
- this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuOptions ) );
- this->Connect( m_menuItem15->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuFindItem ) );
- this->Connect( m_menuItem51->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuResetLayout ) );
- this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
- this->Connect( m_menuItemHelp->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
- this->Connect( m_menuItemCheckVersionNow->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
- this->Connect( m_menuItemCheckVersionAuto->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersionAutomatically ) );
- this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
- m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
- m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairAdd ), NULL, this );
- m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairRemove ), NULL, this );
- m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
- m_bpButtonAltCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalCompCfg ), NULL, this );
- m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalFilterCfg ), NULL, this );
- m_bpButtonAltSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalSyncCfg ), NULL, this );
- m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnHideSearchPanel ), NULL, this );
- m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::OnSearchGridEnter ), NULL, this );
- m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ), NULL, this );
- m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
- m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
- m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
- m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistoryDoubleClick ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCfgHistoryRightClick ), NULL, this );
- m_bpButtonViewTypeSyncAction->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewType ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ this->SetSizeHints( wxSize( 640,400 ), wxDefaultSize );
+
+ m_menubar1 = new wxMenuBar( 0 );
+ m_menuFile = new wxMenu();
+ m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemNew );
+
+ m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemLoad );
+
+ m_menuFile->AppendSeparator();
+
+ m_menuItemSave = new wxMenuItem( m_menuFile, wxID_SAVE, wxString( _("&Save") ) + wxT('\t') + wxT("Ctrl+S"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSave );
+
+ m_menuItemSaveAs = new wxMenuItem( m_menuFile, wxID_SAVEAS, wxString( _("Save &as...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAs );
+
+ m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAsBatch );
+
+ m_menuFile->AppendSeparator();
+
+ wxMenuItem* m_menuItem4;
+ m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItem4 );
+
+ m_menubar1->Append( m_menuFile, _("&File") );
+
+ m_menu4 = new wxMenu();
+ m_menuItemCompare = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemCompare );
+
+ m_menu4->AppendSeparator();
+
+ m_menuItemCompSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemCompSettings );
+
+ m_menuItemFilter = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemFilter );
+
+ m_menuItemSyncSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemSyncSettings );
+
+ m_menu4->AppendSeparator();
+
+ m_menuItemSynchronize = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemSynchronize );
+
+ m_menubar1->Append( m_menu4, _("&Actions") );
+
+ m_menuTools = new wxMenu();
+ m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemOptions );
+
+ m_menuLanguages = new wxMenu();
+ wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
+ m_menuTools->Append( m_menuLanguagesItem );
+
+ m_menuTools->AppendSeparator();
+
+ wxMenuItem* m_menuItem15;
+ m_menuItem15 = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem15 );
+
+ wxMenuItem* m_menuItem51;
+ m_menuItem51 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem51 );
+
+ wxMenuItem* m_menuItem5;
+ m_menuItem5 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem5 );
+
+ m_menubar1->Append( m_menuTools, _("&Tools") );
+
+ m_menuHelp = new wxMenu();
+ m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemHelp );
+
+ m_menuCheckVersion = new wxMenu();
+ wxMenuItem* m_menuCheckVersionItem = new wxMenuItem( m_menuHelp, wxID_ANY, _("&Check for new version"), wxEmptyString, wxITEM_NORMAL, m_menuCheckVersion );
+ m_menuItemCheckVersionNow = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("&Check now") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuCheckVersion->Append( m_menuItemCheckVersionNow );
+
+ m_menuItemCheckVersionAuto = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK );
+ m_menuCheckVersion->Append( m_menuItemCheckVersionAuto );
+ m_menuItemCheckVersionAuto->Check( true );
+
+ m_menuHelp->Append( m_menuCheckVersionItem );
+
+ m_menuHelp->AppendSeparator();
+
+ m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemAbout );
+
+ m_menubar1->Append( m_menuHelp, _("&Help") );
+
+ this->SetMenuBar( m_menubar1 );
+
+ bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
+
+ m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1791;
+ bSizer1791 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonCancel = new zen::BitmapTextButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonCancel->Enable( false );
+ m_buttonCancel->Hide();
+
+ bSizerTopButtons->Add( m_buttonCancel, 0, wxEXPAND, 5 );
+
+ m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCompare->SetDefault();
+ m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonCompare->SetToolTip( _("dummy") );
+
+ bSizerTopButtons->Add( m_buttonCompare, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer198;
+ bSizer198 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonCmpConfig->SetToolTip( _("dummy") );
+
+ bSizer198->Add( m_bpButtonCmpConfig, 1, wxEXPAND, 5 );
+
+ m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
+ m_bpButtonCmpContext->SetToolTip( _("dummy") );
+
+ bSizer198->Add( m_bpButtonCmpContext, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer198, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer199;
+ bSizer199 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 60,-1 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
+ bSizer199->Add( m_bpButtonFilter, 1, wxEXPAND, 5 );
+
+ m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
+ m_bpButtonFilterContext->SetToolTip( _("dummy") );
+
+ bSizer199->Add( m_bpButtonFilterContext, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer199, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer200;
+ bSizer200 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSyncConfig->SetToolTip( _("dummy") );
+
+ bSizer200->Add( m_bpButtonSyncConfig, 1, wxEXPAND, 5 );
+
+ m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 17,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSyncContext->SetToolTip( _("dummy") );
+
+ bSizer200->Add( m_bpButtonSyncContext, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer200, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
+
+ m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonSync->SetToolTip( _("dummy") );
+
+ bSizerTopButtons->Add( m_buttonSync, 0, wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND, 5 );
+
+
+ m_panelTopButtons->SetSizer( bSizer1791 );
+ m_panelTopButtons->Layout();
+ bSizer1791->Fit( m_panelTopButtons );
+ bSizerPanelHolder->Add( m_panelTopButtons, 0, wxEXPAND, 5 );
+
+ m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1601;
+ bSizer1601 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer91;
+ bSizer91 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopLeft->SetMinSize( wxSize( 1,-1 ) );
+
+ wxFlexGridSizer* fgSizer8;
+ fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer8->AddGrowableCol( 1 );
+ fgSizer8->SetFlexibleDirection( wxBOTH );
+ fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
+
+
+ fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathL->Wrap( -1 );
+ fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
+
+ bSizer159->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer159->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer8->Add( bSizer159, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+
+ bSizer182->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
+
+ bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
+
+
+ fgSizer8->Add( bSizer182, 0, wxEXPAND, 5 );
+
+
+ m_panelTopLeft->SetSizer( fgSizer8 );
+ m_panelTopLeft->Layout();
+ fgSizer8->Fit( m_panelTopLeft );
+ bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1771;
+ bSizer1771 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
+
+ bSizer1771->Add( m_bpButtonSwapSides, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1771->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panelTopCenter->SetSizer( bSizer1771 );
+ m_panelTopCenter->Layout();
+ bSizer1771->Fit( m_panelTopCenter );
+ bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ m_panelTopRight = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopRight->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathR->Wrap( -1 );
+ bSizer183->Add( m_staticTextResolvedPathR, 0, wxALL, 2 );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+
+ bSizer179->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
+
+ bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
+
+
+ bSizer183->Add( bSizer179, 0, wxEXPAND, 5 );
+
+
+ m_panelTopRight->SetSizer( bSizer183 );
+ m_panelTopRight->Layout();
+ bSizer183->Fit( m_panelTopRight );
+ bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
+
+ m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
+ m_scrolledWindowFolderPairs->SetScrollRate( 10, 10 );
+ m_scrolledWindowFolderPairs->SetMinSize( wxSize( -1,0 ) );
+
+ bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
+
+
+ m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
+ m_scrolledWindowFolderPairs->Layout();
+ bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
+ bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxEXPAND, 5 );
+
+
+ m_panelDirectoryPairs->SetSizer( bSizer1601 );
+ m_panelDirectoryPairs->Layout();
+ bSizer1601->Fit( m_panelDirectoryPairs );
+ bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxEXPAND, 5 );
+
+ m_gridNavi = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridNavi->SetScrollRate( 5, 5 );
+ bSizerPanelHolder->Add( m_gridNavi, 1, wxEXPAND, 5 );
+
+ m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1711;
+ bSizer1711 = new wxBoxSizer( wxVERTICAL );
+
+ m_splitterMain = new zen::TripleSplitter( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1781;
+ bSizer1781 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_gridMainL = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainL->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainL, 1, wxEXPAND, 5 );
+
+ m_gridMainC = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainC->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainC, 0, wxEXPAND, 5 );
+
+ m_gridMainR = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainR->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainR, 1, wxEXPAND, 5 );
+
+
+ m_splitterMain->SetSizer( bSizer1781 );
+ m_splitterMain->Layout();
+ bSizer1781->Fit( m_splitterMain );
+ bSizer1711->Add( m_splitterMain, 1, wxEXPAND, 5 );
+
+ m_panelStatusBar = new wxPanel( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer451;
+ bSizer451 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizer451->SetMinSize( wxSize( -1,22 ) );
+ bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer53;
+ bSizer53 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusLeftDirectories = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSmallDirectoryLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusLeftDirectories->Add( m_bitmapSmallDirectoryLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftDirectories->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftDirs->Wrap( -1 );
+ bSizerStatusLeftDirectories->Add( m_staticTextStatusLeftDirs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer53->Add( bSizerStatusLeftDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerStatusLeftFiles->Add( 10, 0, 0, 0, 5 );
+
+ m_bitmapSmallFileLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusLeftFiles->Add( m_bitmapSmallFileLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftFiles->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftFiles->Wrap( -1 );
+ bSizerStatusLeftFiles->Add( m_staticTextStatusLeftFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftBytes->Wrap( -1 );
+ bSizerStatusLeftFiles->Add( m_staticTextStatusLeftBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( bSizerStatusLeftFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND, 5 );
+
+ m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusLeft->Add( m_staticline9, 0, wxEXPAND|wxTOP, 2 );
+
+
+ bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND, 5 );
+
+
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusCenter->Wrap( -1 );
+ bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxTOP, 2 );
+
+ wxBoxSizer* bSizer52;
+ bSizer52 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRightDirectories = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSmallDirectoryRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusRightDirectories->Add( m_bitmapSmallDirectoryRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightDirectories->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightDirs->Wrap( -1 );
+ bSizerStatusRightDirectories->Add( m_staticTextStatusRightDirs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( bSizerStatusRightDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerStatusRightFiles->Add( 10, 0, 0, 0, 5 );
+
+ m_bitmapSmallFileRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusRightFiles->Add( m_bitmapSmallFileRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightFiles->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightFiles->Wrap( -1 );
+ bSizerStatusRightFiles->Add( m_staticTextStatusRightFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightBytes->Wrap( -1 );
+ bSizerStatusRightFiles->Add( m_staticTextStatusRightBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( bSizerStatusRightFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRight->Add( bSizer52, 1, wxEXPAND, 5 );
+
+
+ bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND, 5 );
+
+
+ bSizer451->Add( bSizerFileStatus, 1, wxEXPAND, 5 );
+
+ m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFullStatus->Wrap( -1 );
+ m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ m_panelStatusBar->SetSizer( bSizer451 );
+ m_panelStatusBar->Layout();
+ bSizer451->Fit( m_panelStatusBar );
+ bSizer1711->Add( m_panelStatusBar, 0, wxEXPAND, 5 );
+
+
+ m_panelCenter->SetSizer( bSizer1711 );
+ m_panelCenter->Layout();
+ bSizer1711->Fit( m_panelCenter );
+ bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
+
+ m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1713;
+ bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
+
+ bSizer1713->Add( m_bpButtonHideSearch, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), wxTE_PROCESS_ENTER|wxWANTS_CHARS );
+ m_textCtrlSearchTxt->SetMaxLength( 0 );
+ bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ m_panelSearch->SetSizer( bSizer1713 );
+ m_panelSearch->Layout();
+ bSizer1713->Fit( m_panelSearch );
+ bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
+
+ m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer151;
+ bSizer151 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer17611;
+ bSizer17611 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonNew->SetToolTip( _("dummy") );
+
+ bSizer17611->Add( m_bpButtonNew, 0, wxEXPAND, 5 );
+
+ m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText951->Wrap( -1 );
+ bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer17611, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1761;
+ bSizer1761 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonOpen->SetToolTip( _("dummy") );
+
+ bSizer1761->Add( m_bpButtonOpen, 0, wxEXPAND, 5 );
+
+ m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText95->Wrap( -1 );
+ bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer1761, 0, 0, 5 );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSave->SetToolTip( _("dummy") );
+
+ bSizer175->Add( m_bpButtonSave, 0, wxEXPAND, 5 );
+
+ m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText961->Wrap( -1 );
+ bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer175, 0, 0, 5 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer1772;
+ bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSaveAs->SetToolTip( _("dummy") );
+
+ bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
+
+ m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
+
+ bSizer1772->Add( m_bpButtonSaveAsBatch, 1, 0, 5 );
+
+
+ bSizer174->Add( bSizer1772, 0, wxEXPAND, 5 );
+
+ m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText97->Wrap( -1 );
+ bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer174, 0, 0, 5 );
+
+
+ bSizerConfig->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_listBoxHistory = new wxListBox( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_NEEDED_SB );
+ m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
+
+ bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND, 5 );
+
+
+ m_panelConfig->SetSizer( bSizerConfig );
+ m_panelConfig->Layout();
+ bSizerConfig->Fit( m_panelConfig );
+ bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
+
+ m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextViewType = new wxStaticText( m_panelViewFilter, wxID_ANY, _("View type:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextViewType->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticTextViewType, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonViewTypeSyncAction = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 82,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonViewTypeSyncAction, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
+
+ m_bpButtonShowExcluded = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextSelectView = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Select view:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSelectView->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticTextSelectView, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowUpdateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDoNothing = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowUpdateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer1801 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer173->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer173->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteLeft->Wrap( -1 );
+ m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer173->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer173, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer172->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer172, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1712;
+ bSizer1712 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer1712->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer1712->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer1712->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateLeft->Wrap( -1 );
+ m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer1712->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer1712, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ bSizerData = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
+
+ bSizerData->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerData->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizerData->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextData->Wrap( -1 );
+ m_staticTextData->SetToolTip( _("Total bytes to copy") );
+
+ bSizerData->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizerData, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer178->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer178->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer178->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateRight->Wrap( -1 );
+ m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer178->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer178, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer177->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer177, 0, wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer176->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer176->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer176->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteRight->Wrap( -1 );
+ m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer176->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer176, 0, wxEXPAND, 5 );
+
+
+ bSizer1801->Add( bSizerStatistics, 0, wxALL, 4 );
+
+
+ m_panelStatistics->SetSizer( bSizer1801 );
+ m_panelStatistics->Layout();
+ bSizer1801->Fit( m_panelStatistics );
+ bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panelViewFilter->SetSizer( bSizerViewFilter );
+ m_panelViewFilter->Layout();
+ bSizerViewFilter->Fit( m_panelViewFilter );
+ bSizerPanelHolder->Add( m_panelViewFilter, 0, 0, 5 );
+
+
+ this->SetSizer( bSizerPanelHolder );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
+ this->Connect( m_menuItemNew->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
+ this->Connect( m_menuItemLoad->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
+ this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
+ this->Connect( m_menuItemSaveAs->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
+ this->Connect( m_menuItemSaveAsBatch->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ) );
+ this->Connect( m_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
+ this->Connect( m_menuItemCompare->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
+ this->Connect( m_menuItemCompSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ) );
+ this->Connect( m_menuItemFilter->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ) );
+ this->Connect( m_menuItemSyncSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ) );
+ this->Connect( m_menuItemSynchronize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
+ this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuOptions ) );
+ this->Connect( m_menuItem15->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuFindItem ) );
+ this->Connect( m_menuItem51->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuResetLayout ) );
+ this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
+ this->Connect( m_menuItemHelp->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
+ this->Connect( m_menuItemCheckVersionNow->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
+ this->Connect( m_menuItemCheckVersionAuto->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersionAutomatically ) );
+ this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
+ m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
+ m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairAdd ), NULL, this );
+ m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairRemove ), NULL, this );
+ m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
+ m_bpButtonAltCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalCompCfg ), NULL, this );
+ m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalFilterCfg ), NULL, this );
+ m_bpButtonAltSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalSyncCfg ), NULL, this );
+ m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnHideSearchPanel ), NULL, this );
+ m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::OnSearchGridEnter ), NULL, this );
+ m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ), NULL, this );
+ m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
+ m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
+ m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
+ m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistoryDoubleClick ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCfgHistoryRightClick ), NULL, this );
+ m_bpButtonViewTypeSyncAction->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewType ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
}
MainDialogGenerated::~MainDialogGenerated()
@@ -1050,895 +1050,895 @@ MainDialogGenerated::~MainDialogGenerated()
ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer7;
- bSizer7 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer190;
- bSizer190 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1911;
- bSizer1911 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFolderPairLabel->Wrap( -1 );
- bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
-
- m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
- bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
-
-
- bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
-
- m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelCompSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelCompSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer275;
- bSizer275 = new wxBoxSizer( wxVERTICAL );
-
- bSizerHeaderCompSettings = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextMainCompSettings = new wxStaticText( m_panelCompSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainCompSettings->Wrap( -1 );
- bSizerHeaderCompSettings->Add( m_staticTextMainCompSettings, 0, wxALL, 10 );
-
- m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizerHeaderCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
-
- m_staticlineCompHeader = new wxStaticLine( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderCompSettings->Add( m_staticlineCompHeader, 0, wxEXPAND, 5 );
-
-
- bSizer275->Add( bSizerHeaderCompSettings, 0, wxEXPAND, 5 );
-
- m_panelComparisonSettings = new wxPanel( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- bSizer182->Add( m_staticText91, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer16;
- fgSizer16 = new wxFlexGridSizer( 3, 2, 5, 5 );
- fgSizer16->SetFlexibleDirection( wxBOTH );
- fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapByTimeSize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_bitmapByTimeSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnByTimeSize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_toggleBtnByTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer16->Add( m_toggleBtnByTimeSize, 0, wxEXPAND, 5 );
-
- m_bitmapByContent = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnByContent = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_toggleBtnByContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer16->Add( m_toggleBtnByContent, 0, wxEXPAND, 5 );
-
- m_bitmapBySize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_bitmapBySize, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_toggleBtnBySize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_toggleBtnBySize->SetValue( true );
- m_toggleBtnBySize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer16->Add( m_toggleBtnBySize, 0, wxEXPAND, 5 );
-
-
- bSizer182->Add( fgSizer16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer178->Add( bSizer182, 0, wxALL, 5 );
-
- m_staticline42 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer178->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlCompVarDescription = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer178->Add( m_textCtrlCompVarDescription, 1, wxEXPAND|wxLEFT, 5 );
-
-
- bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
-
- m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1734;
- bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxVERTICAL );
-
- m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnSymlinksFollow->SetValue( true );
- bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1721->Add( bSizer176, 0, wxEXPAND|wxLEFT, 18 );
-
- m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1734->Add( bSizer1721, 0, wxALL, 5 );
-
- m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1733;
- bSizer1733 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText112->Wrap( -1 );
- bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
-
- m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to ignore") );
-
- bSizer1733->Add( m_textCtrlTimeShift, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer197;
- bSizer197 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1381->Wrap( -1 );
- m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText13811->Wrap( -1 );
- m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer1733->Add( bSizer197, 0, 0, 5 );
-
- m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1734->Add( bSizer1733, 0, wxALL, 5 );
-
- m_staticline441 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1734->Add( m_staticline441, 0, wxEXPAND, 5 );
-
-
- bSizer159->Add( bSizer1734, 0, 0, 5 );
-
- m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
-
-
- m_panelComparisonSettings->SetSizer( bSizer159 );
- m_panelComparisonSettings->Layout();
- bSizer159->Fit( m_panelComparisonSettings );
- bSizer275->Add( m_panelComparisonSettings, 0, wxEXPAND, 5 );
-
-
- m_panelCompSettingsHolder->SetSizer( bSizer275 );
- m_panelCompSettingsHolder->Layout();
- bSizer275->Fit( m_panelCompSettingsHolder );
- m_notebook->AddPage( m_panelCompSettingsHolder, _("dummy"), false );
- m_panelFilterSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFilterSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer278;
- bSizer278 = new wxBoxSizer( wxVERTICAL );
-
- bSizerHeaderFilterSettings = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextMainFilterSettings = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainFilterSettings->Wrap( -1 );
- bSizerHeaderFilterSettings->Add( m_staticTextMainFilterSettings, 0, wxALL, 10 );
-
- m_staticTextLocalFilterSettings = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextLocalFilterSettings->Wrap( -1 );
- bSizerHeaderFilterSettings->Add( m_staticTextLocalFilterSettings, 0, wxALL, 10 );
-
- m_staticlineFilterHeader = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderFilterSettings->Add( m_staticlineFilterHeader, 0, wxEXPAND, 5 );
-
-
- bSizer278->Add( bSizerHeaderFilterSettings, 0, wxEXPAND, 5 );
-
- m_panelFilterSettings = new wxPanel( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFilterSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer1591;
- bSizer1591 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer166->Add( 0, 10, 0, 0, 5 );
-
- wxBoxSizer* bSizer1661;
- bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- wxBoxSizer* bSizer1731;
- bSizer1731 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText78 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText78->Wrap( -1 );
- bSizer1731->Add( m_staticText78, 0, 0, 5 );
-
- m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- m_textCtrlInclude->SetMinSize( wxSize( 280,-1 ) );
-
- bSizer1731->Add( m_textCtrlInclude, 1, wxEXPAND|wxTOP, 5 );
-
-
- bSizer1661->Add( bSizer1731, 1, wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer1661, 1, wxEXPAND|wxLEFT, 5 );
-
- m_staticline22 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline22, 0, wxEXPAND, 5 );
-
-
- bSizer166->Add( 0, 10, 0, 0, 5 );
-
- wxBoxSizer* bSizer1651;
- bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer1742;
- bSizer1742 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText77 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText77->Wrap( -1 );
- bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettings, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
-
- m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- bSizer1742->Add( m_textCtrlExclude, 1, wxEXPAND|wxTOP, 5 );
-
-
- bSizer1651->Add( bSizer1742, 1, wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer1651, 2, wxEXPAND|wxLEFT, 5 );
-
-
- bSizer1591->Add( bSizer166, 1, wxEXPAND, 5 );
-
- m_staticline24 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1591->Add( m_staticline24, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
- bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText79 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText79->Wrap( -1 );
- bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
-
- m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer165->Add( m_spinCtrlTimespan, 0, wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitTimespanChoices;
- m_choiceUnitTimespan = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
- m_choiceUnitTimespan->SetSelection( 0 );
- bSizer165->Add( m_choiceUnitTimespan, 0, wxEXPAND, 5 );
-
-
- bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer167, 0, wxEXPAND|wxALL, 5 );
-
- m_staticline23 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer168;
- bSizer168 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
- bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText80 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText80->Wrap( -1 );
- bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText101 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer162->Add( m_spinCtrlMinSize, 0, wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitMinSizeChoices;
- m_choiceUnitMinSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
- m_choiceUnitMinSize->SetSelection( 0 );
- bSizer162->Add( m_choiceUnitMinSize, 0, wxEXPAND, 5 );
-
-
- bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer163;
- bSizer163 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText102 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText102->Wrap( -1 );
- bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer163->Add( m_spinCtrlMaxSize, 0, wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitMaxSizeChoices;
- m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
- m_choiceUnitMaxSize->SetSelection( 0 );
- bSizer163->Add( m_choiceUnitMaxSize, 0, wxEXPAND, 5 );
-
-
- bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
-
-
- bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer168, 1, wxEXPAND|wxALL, 5 );
-
-
- bSizer1591->Add( bSizer160, 0, wxEXPAND, 5 );
-
-
- m_panelFilterSettings->SetSizer( bSizer1591 );
- m_panelFilterSettings->Layout();
- bSizer1591->Fit( m_panelFilterSettings );
- bSizer278->Add( m_panelFilterSettings, 1, wxEXPAND, 5 );
-
- m_staticline62 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer278->Add( m_staticline62, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer280;
- bSizer280 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText44 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticText44->Wrap( 590 );
- bSizer280->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer280->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticline46 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer280->Add( m_staticline46, 0, wxEXPAND, 5 );
-
- m_buttonClear = new wxButton( m_panelFilterSettingsHolder, wxID_DEFAULT, _("C&lear"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer280->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
-
-
- bSizer278->Add( bSizer280, 0, wxEXPAND, 5 );
-
-
- m_panelFilterSettingsHolder->SetSizer( bSizer278 );
- m_panelFilterSettingsHolder->Layout();
- bSizer278->Fit( m_panelFilterSettingsHolder );
- m_notebook->AddPage( m_panelFilterSettingsHolder, _("dummy"), false );
- m_panelSyncSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer276;
- bSizer276 = new wxBoxSizer( wxVERTICAL );
-
- bSizerHeaderSyncSettings = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextMainSyncSettings = new wxStaticText( m_panelSyncSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMainSyncSettings->Wrap( -1 );
- bSizerHeaderSyncSettings->Add( m_staticTextMainSyncSettings, 0, wxALL, 10 );
-
- m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerHeaderSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
-
- m_staticlineSyncHeader = new wxStaticLine( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerHeaderSyncSettings->Add( m_staticlineSyncHeader, 0, wxEXPAND, 5 );
-
-
- bSizer276->Add( bSizerHeaderSyncSettings, 0, wxEXPAND, 5 );
-
- m_panelSyncSettings = new wxPanel( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer232;
- bSizer232 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer237;
- bSizer237 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer235;
- bSizer235 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText86->Wrap( -1 );
- bSizer235->Add( m_staticText86, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer236;
- bSizer236 = new wxBoxSizer( wxVERTICAL );
-
- m_toggleBtnTwoWay = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnTwoWay, 0, wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnMirror = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnMirror, 0, wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnUpdate = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnUpdate, 0, wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnCustom = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnCustom, 0, wxEXPAND, 5 );
-
-
- bSizer235->Add( bSizer236, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer237->Add( bSizer235, 0, wxALL, 5 );
-
- m_staticline53 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer237->Add( m_staticline53, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer238;
- bSizer238 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
-
- bSizerSyncConfig = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText119 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText119->Wrap( -1 );
- bSizer173->Add( m_staticText119, 0, 0, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText120->Wrap( -1 );
- bSizer173->Add( m_staticText120, 0, 0, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizerSyncConfig->Add( bSizer173, 0, wxEXPAND|wxRIGHT, 5 );
-
- fgSizerSyncDirections = new wxFlexGridSizer( 2, 0, 5, 5 );
- fgSizerSyncDirections->SetFlexibleDirection( wxBOTH );
- fgSizerSyncDirections->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
-
- fgSizerSyncDirections->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
-
- fgSizerSyncDirections->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapDifferent->SetToolTip( _("Items have different content") );
-
- fgSizerSyncDirections->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
-
- fgSizerSyncDirections->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
-
- fgSizerSyncDirections->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
-
- fgSizerSyncDirections->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerSyncConfig->Add( fgSizerSyncDirections, 0, 0, 5 );
-
- m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapDatabase->SetToolTip( _("Detect synchronization directions with the help of database files") );
-
- bSizerSyncConfig->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
-
- wxBoxSizer* bSizerKeepVerticalHeightWhenSyncDirsNotShown;
- bSizerKeepVerticalHeightWhenSyncDirsNotShown = new wxBoxSizer( wxVERTICAL );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 45, 0, 0, 5 );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 5, 1, 0, 5 );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 46, 0, 0, 5 );
-
-
- bSizerSyncConfig->Add( bSizerKeepVerticalHeightWhenSyncDirsNotShown, 0, 0, 5 );
-
-
- bSizer238->Add( bSizerSyncConfig, 0, wxALL, 10 );
-
-
- bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticline431 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer238->Add( m_staticline431, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer201;
- bSizer201 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxDetectMove->SetValue(true);
- m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
-
- bSizer201->Add( m_checkBoxDetectMove, 0, wxALL|wxEXPAND, 5 );
-
- m_hyperlink242 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer201->Add( m_hyperlink242, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer238->Add( bSizer201, 0, wxALL, 5 );
-
-
- bSizer237->Add( bSizer238, 0, wxEXPAND, 5 );
-
- m_staticline531 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer237->Add( m_staticline531, 0, wxEXPAND, 5 );
-
- m_textCtrlSyncVarDescription = new wxTextCtrl( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer237->Add( m_textCtrlSyncVarDescription, 1, wxLEFT|wxEXPAND, 5 );
-
-
- bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
-
- m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
-
- bSizerDelHandling = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer202;
- bSizer202 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- bSizer202->Add( m_staticText87, 0, wxALL, 5 );
-
- m_bpButtonDeletionType = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- bSizer202->Add( m_bpButtonDeletionType, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizerDelHandling->Add( bSizer202, 0, 0, 5 );
-
- wxBoxSizer* bSizer2011;
- bSizer2011 = new wxBoxSizer( wxVERTICAL );
-
- m_radioBtnRecycler = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnRecycler->SetValue( true );
- m_radioBtnRecycler->SetToolTip( _("Back up deleted and overwritten files in the recycle bin") );
-
- bSizer2011->Add( m_radioBtnRecycler, 0, wxEXPAND|wxALL, 5 );
-
- m_radioBtnPermanent = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
-
- bSizer2011->Add( m_radioBtnPermanent, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- m_radioBtnVersioning = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnVersioning->SetToolTip( _("Move files to a user-defined folder") );
-
- bSizer2011->Add( m_radioBtnVersioning, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- bSizerDelHandling->Add( bSizer2011, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer191;
- bSizer191 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer156;
- bSizer156 = new wxBoxSizer( wxHORIZONTAL );
-
- m_versioningFolderPath = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
-
- bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer156->Add( m_bpButtonSelectAltFolder, 0, wxEXPAND, 5 );
-
-
- bSizer191->Add( bSizer156, 0, wxEXPAND|wxALL, 5 );
-
- wxBoxSizer* bSizer198;
- bSizer198 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- bSizer198->Add( m_staticText93, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer198->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer198->Add( m_hyperlink17, 0, 0, 5 );
-
-
- bSizer191->Add( bSizer198, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- bSizer192 = new wxBoxSizer( wxHORIZONTAL );
-
- wxArrayString m_choiceVersioningStyleChoices;
- m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
- m_choiceVersioningStyle->SetSelection( 0 );
- bSizer192->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart1->Wrap( -1 );
- m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart2Bold->Wrap( -1 );
- m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart3->Wrap( -1 );
- m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer191->Add( bSizer192, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- m_panelVersioning->SetSizer( bSizer191 );
- m_panelVersioning->Layout();
- bSizer191->Fit( m_panelVersioning );
- bSizerDelHandling->Add( m_panelVersioning, 1, 0, 5 );
-
-
- bSizer232->Add( bSizerDelHandling, 0, wxALL|wxEXPAND, 5 );
-
- m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer232->Add( m_staticline582, 0, wxEXPAND, 5 );
-
- bSizerMiscConfig = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText88 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText88->Wrap( -1 );
- bSizerMiscConfig->Add( m_staticText88, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxVERTICAL );
-
- m_radioBtnPopupOnErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnPopupOnErrors->SetValue( true );
- m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
-
- bSizer175->Add( m_radioBtnPopupOnErrors, 0, wxEXPAND|wxALL, 5 );
-
- m_radioBtnIgnoreErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
-
- bSizer175->Add( m_radioBtnIgnoreErrors, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizerMiscConfig->Add( bSizer175, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerMiscConfig->Add( m_staticline57, 0, wxEXPAND, 5 );
-
- bSizerOnCompletion = new wxBoxSizer( wxVERTICAL );
-
- m_staticText89 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText89->Wrap( -1 );
- bSizerOnCompletion->Add( m_staticText89, 0, wxBOTTOM, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizerOnCompletion->Add( m_comboBoxOnCompletion, 0, wxEXPAND, 5 );
-
-
- bSizerMiscConfig->Add( bSizerOnCompletion, 1, wxALL, 10 );
-
-
- bSizer232->Add( bSizerMiscConfig, 1, wxEXPAND, 5 );
-
-
- m_panelSyncSettings->SetSizer( bSizer232 );
- m_panelSyncSettings->Layout();
- bSizer232->Fit( m_panelSyncSettings );
- bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
-
-
- m_panelSyncSettingsHolder->SetSizer( bSizer276 );
- m_panelSyncSettingsHolder->Layout();
- bSizer276->Fit( m_panelSyncSettingsHolder );
- m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), true );
-
- bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer7 );
- this->Layout();
- bSizer7->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::OnClose ) );
- m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
- m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnSelectFolderPair ), NULL, this );
- m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalCompSettings ), NULL, this );
- m_toggleBtnByTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByTimeSizeDouble ), NULL, this );
- m_toggleBtnByTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByTimeSize ), NULL, this );
- m_toggleBtnByContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByContentDouble ), NULL, this );
- m_toggleBtnByContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByContent ), NULL, this );
- m_toggleBtnBySize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompBySizeDouble ), NULL, this );
- m_toggleBtnBySize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompBySize ), NULL, this );
- m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeCompOption ), NULL, this );
- m_hyperlink24->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpComparisonSettings ), NULL, this );
- m_textCtrlTimeShift->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onlTimeShiftKeyDown ), NULL, this );
- m_hyperlink241->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpTimeShift ), NULL, this );
- m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_hyperlink171->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpShowExamples ), NULL, this );
- m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnFilterReset ), NULL, this );
- m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalSyncSettings ), NULL, this );
- m_toggleBtnTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncTwoWayDouble ), NULL, this );
- m_toggleBtnTwoWay->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncTwoWay ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncMirrorDouble ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncMirror ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncUpdateDouble ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncUpdate ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncCustomDouble ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncCustom ), NULL, this );
- m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExLeftSideOnly ), NULL, this );
- m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnLeftNewer ), NULL, this );
- m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnDifferent ), NULL, this );
- m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnConflict ), NULL, this );
- m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnRightNewer ), NULL, this );
- m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExRightSideOnly ), NULL, this );
- m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDetectMovedFiles ), NULL, this );
- m_hyperlink242->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpDetectMovedFiles ), NULL, this );
- m_bpButtonDeletionType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDeletionType ), NULL, this );
- m_radioBtnRecycler->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionRecycler ), NULL, this );
- m_radioBtnPermanent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionPermanent ), NULL, this );
- m_radioBtnVersioning->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionVersioning ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpVersioning ), NULL, this );
- m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeSyncOption ), NULL, this );
- m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorPopup ), NULL, this );
- m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorIgnore ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer190;
+ bSizer190 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1911;
+ bSizer1911 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFolderPairLabel->Wrap( -1 );
+ bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
+
+ m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
+ bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
+
+
+ bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
+
+ m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelCompSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelCompSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer275;
+ bSizer275 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerHeaderCompSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextMainCompSettings = new wxStaticText( m_panelCompSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainCompSettings->Wrap( -1 );
+ bSizerHeaderCompSettings->Add( m_staticTextMainCompSettings, 0, wxALL, 10 );
+
+ m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizerHeaderCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
+
+ m_staticlineCompHeader = new wxStaticLine( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderCompSettings->Add( m_staticlineCompHeader, 0, wxEXPAND, 5 );
+
+
+ bSizer275->Add( bSizerHeaderCompSettings, 0, wxEXPAND, 5 );
+
+ m_panelComparisonSettings = new wxPanel( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ bSizer182->Add( m_staticText91, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer16;
+ fgSizer16 = new wxFlexGridSizer( 3, 2, 5, 5 );
+ fgSizer16->SetFlexibleDirection( wxBOTH );
+ fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapByTimeSize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapByTimeSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnByTimeSize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnByTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnByTimeSize, 0, wxEXPAND, 5 );
+
+ m_bitmapByContent = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnByContent = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnByContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnByContent, 0, wxEXPAND, 5 );
+
+ m_bitmapBySize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapBySize, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnBySize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnBySize->SetValue( true );
+ m_toggleBtnBySize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnBySize, 0, wxEXPAND, 5 );
+
+
+ bSizer182->Add( fgSizer16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer178->Add( bSizer182, 0, wxALL, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer178->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlCompVarDescription = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer178->Add( m_textCtrlCompVarDescription, 1, wxEXPAND|wxLEFT, 5 );
+
+
+ bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
+
+ m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1734;
+ bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
+
+ m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnSymlinksFollow->SetValue( true );
+ bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1721->Add( bSizer176, 0, wxEXPAND|wxLEFT, 18 );
+
+ m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1734->Add( bSizer1721, 0, wxALL, 5 );
+
+ m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1733;
+ bSizer1733 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText112->Wrap( -1 );
+ bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
+
+ m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to ignore") );
+
+ bSizer1733->Add( m_textCtrlTimeShift, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer197;
+ bSizer197 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1381->Wrap( -1 );
+ m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText13811->Wrap( -1 );
+ m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer1733->Add( bSizer197, 0, 0, 5 );
+
+ m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1734->Add( bSizer1733, 0, wxALL, 5 );
+
+ m_staticline441 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1734->Add( m_staticline441, 0, wxEXPAND, 5 );
+
+
+ bSizer159->Add( bSizer1734, 0, 0, 5 );
+
+ m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
+
+
+ m_panelComparisonSettings->SetSizer( bSizer159 );
+ m_panelComparisonSettings->Layout();
+ bSizer159->Fit( m_panelComparisonSettings );
+ bSizer275->Add( m_panelComparisonSettings, 0, wxEXPAND, 5 );
+
+
+ m_panelCompSettingsHolder->SetSizer( bSizer275 );
+ m_panelCompSettingsHolder->Layout();
+ bSizer275->Fit( m_panelCompSettingsHolder );
+ m_notebook->AddPage( m_panelCompSettingsHolder, _("dummy"), false );
+ m_panelFilterSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFilterSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer278;
+ bSizer278 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerHeaderFilterSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextMainFilterSettings = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainFilterSettings->Wrap( -1 );
+ bSizerHeaderFilterSettings->Add( m_staticTextMainFilterSettings, 0, wxALL, 10 );
+
+ m_staticTextLocalFilterSettings = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextLocalFilterSettings->Wrap( -1 );
+ bSizerHeaderFilterSettings->Add( m_staticTextLocalFilterSettings, 0, wxALL, 10 );
+
+ m_staticlineFilterHeader = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderFilterSettings->Add( m_staticlineFilterHeader, 0, wxEXPAND, 5 );
+
+
+ bSizer278->Add( bSizerHeaderFilterSettings, 0, wxEXPAND, 5 );
+
+ m_panelFilterSettings = new wxPanel( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFilterSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer1591;
+ bSizer1591 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer166->Add( 0, 10, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1661;
+ bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer1731;
+ bSizer1731 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText78 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText78->Wrap( -1 );
+ bSizer1731->Add( m_staticText78, 0, 0, 5 );
+
+ m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ m_textCtrlInclude->SetMinSize( wxSize( 280,-1 ) );
+
+ bSizer1731->Add( m_textCtrlInclude, 1, wxEXPAND|wxTOP, 5 );
+
+
+ bSizer1661->Add( bSizer1731, 1, wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer1661, 1, wxEXPAND|wxLEFT, 5 );
+
+ m_staticline22 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline22, 0, wxEXPAND, 5 );
+
+
+ bSizer166->Add( 0, 10, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1651;
+ bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer1742;
+ bSizer1742 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText77 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText77->Wrap( -1 );
+ bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettings, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
+
+ m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ bSizer1742->Add( m_textCtrlExclude, 1, wxEXPAND|wxTOP, 5 );
+
+
+ bSizer1651->Add( bSizer1742, 1, wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer1651, 2, wxEXPAND|wxLEFT, 5 );
+
+
+ bSizer1591->Add( bSizer166, 1, wxEXPAND, 5 );
+
+ m_staticline24 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1591->Add( m_staticline24, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
+ bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText79 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText79->Wrap( -1 );
+ bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
+
+ m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer165->Add( m_spinCtrlTimespan, 0, wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitTimespanChoices;
+ m_choiceUnitTimespan = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
+ m_choiceUnitTimespan->SetSelection( 0 );
+ bSizer165->Add( m_choiceUnitTimespan, 0, wxEXPAND, 5 );
+
+
+ bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer167, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticline23 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer168;
+ bSizer168 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText80 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText80->Wrap( -1 );
+ bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText101 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer162->Add( m_spinCtrlMinSize, 0, wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitMinSizeChoices;
+ m_choiceUnitMinSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
+ m_choiceUnitMinSize->SetSelection( 0 );
+ bSizer162->Add( m_choiceUnitMinSize, 0, wxEXPAND, 5 );
+
+
+ bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer163;
+ bSizer163 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText102 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText102->Wrap( -1 );
+ bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer163->Add( m_spinCtrlMaxSize, 0, wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitMaxSizeChoices;
+ m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
+ m_choiceUnitMaxSize->SetSelection( 0 );
+ bSizer163->Add( m_choiceUnitMaxSize, 0, wxEXPAND, 5 );
+
+
+ bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
+
+
+ bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer168, 1, wxEXPAND|wxALL, 5 );
+
+
+ bSizer1591->Add( bSizer160, 0, wxEXPAND, 5 );
+
+
+ m_panelFilterSettings->SetSizer( bSizer1591 );
+ m_panelFilterSettings->Layout();
+ bSizer1591->Fit( m_panelFilterSettings );
+ bSizer278->Add( m_panelFilterSettings, 1, wxEXPAND, 5 );
+
+ m_staticline62 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer278->Add( m_staticline62, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer280;
+ bSizer280 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText44 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( 590 );
+ bSizer280->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer280->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticline46 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer280->Add( m_staticline46, 0, wxEXPAND, 5 );
+
+ m_buttonClear = new wxButton( m_panelFilterSettingsHolder, wxID_DEFAULT, _("C&lear"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer280->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+
+
+ bSizer278->Add( bSizer280, 0, wxEXPAND, 5 );
+
+
+ m_panelFilterSettingsHolder->SetSizer( bSizer278 );
+ m_panelFilterSettingsHolder->Layout();
+ bSizer278->Fit( m_panelFilterSettingsHolder );
+ m_notebook->AddPage( m_panelFilterSettingsHolder, _("dummy"), false );
+ m_panelSyncSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer276;
+ bSizer276 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerHeaderSyncSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextMainSyncSettings = new wxStaticText( m_panelSyncSettingsHolder, wxID_ANY, _("Main settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMainSyncSettings->Wrap( -1 );
+ bSizerHeaderSyncSettings->Add( m_staticTextMainSyncSettings, 0, wxALL, 10 );
+
+ m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHeaderSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
+
+ m_staticlineSyncHeader = new wxStaticLine( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerHeaderSyncSettings->Add( m_staticlineSyncHeader, 0, wxEXPAND, 5 );
+
+
+ bSizer276->Add( bSizerHeaderSyncSettings, 0, wxEXPAND, 5 );
+
+ m_panelSyncSettings = new wxPanel( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer232;
+ bSizer232 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer237;
+ bSizer237 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer235;
+ bSizer235 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText86->Wrap( -1 );
+ bSizer235->Add( m_staticText86, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer236;
+ bSizer236 = new wxBoxSizer( wxVERTICAL );
+
+ m_toggleBtnTwoWay = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnTwoWay, 0, wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnMirror = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnMirror, 0, wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnUpdate = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnUpdate, 0, wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnCustom = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnCustom, 0, wxEXPAND, 5 );
+
+
+ bSizer235->Add( bSizer236, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer237->Add( bSizer235, 0, wxALL, 5 );
+
+ m_staticline53 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer237->Add( m_staticline53, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer238;
+ bSizer238 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ bSizerSyncConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText119 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText119->Wrap( -1 );
+ bSizer173->Add( m_staticText119, 0, 0, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText120->Wrap( -1 );
+ bSizer173->Add( m_staticText120, 0, 0, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizerSyncConfig->Add( bSizer173, 0, wxEXPAND|wxRIGHT, 5 );
+
+ fgSizerSyncDirections = new wxFlexGridSizer( 2, 0, 5, 5 );
+ fgSizerSyncDirections->SetFlexibleDirection( wxBOTH );
+ fgSizerSyncDirections->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
+
+ fgSizerSyncDirections->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
+
+ fgSizerSyncDirections->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapDifferent->SetToolTip( _("Items have different content") );
+
+ fgSizerSyncDirections->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
+
+ fgSizerSyncDirections->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
+
+ fgSizerSyncDirections->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
+
+ fgSizerSyncDirections->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerSyncConfig->Add( fgSizerSyncDirections, 0, 0, 5 );
+
+ m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapDatabase->SetToolTip( _("Detect synchronization directions with the help of database files") );
+
+ bSizerSyncConfig->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
+
+ wxBoxSizer* bSizerKeepVerticalHeightWhenSyncDirsNotShown;
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 45, 0, 0, 5 );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 5, 1, 0, 5 );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 46, 0, 0, 5 );
+
+
+ bSizerSyncConfig->Add( bSizerKeepVerticalHeightWhenSyncDirsNotShown, 0, 0, 5 );
+
+
+ bSizer238->Add( bSizerSyncConfig, 0, wxALL, 10 );
+
+
+ bSizer238->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticline431 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer238->Add( m_staticline431, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer201;
+ bSizer201 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxDetectMove->SetValue(true);
+ m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
+
+ bSizer201->Add( m_checkBoxDetectMove, 0, wxALL|wxEXPAND, 5 );
+
+ m_hyperlink242 = new wxHyperlinkCtrl( m_panelSyncSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer201->Add( m_hyperlink242, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer238->Add( bSizer201, 0, wxALL, 5 );
+
+
+ bSizer237->Add( bSizer238, 0, wxEXPAND, 5 );
+
+ m_staticline531 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer237->Add( m_staticline531, 0, wxEXPAND, 5 );
+
+ m_textCtrlSyncVarDescription = new wxTextCtrl( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer237->Add( m_textCtrlSyncVarDescription, 1, wxLEFT|wxEXPAND, 5 );
+
+
+ bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
+
+ m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
+
+ bSizerDelHandling = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer202;
+ bSizer202 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ bSizer202->Add( m_staticText87, 0, wxALL, 5 );
+
+ m_bpButtonDeletionType = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizer202->Add( m_bpButtonDeletionType, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizerDelHandling->Add( bSizer202, 0, 0, 5 );
+
+ wxBoxSizer* bSizer2011;
+ bSizer2011 = new wxBoxSizer( wxVERTICAL );
+
+ m_radioBtnRecycler = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnRecycler->SetValue( true );
+ m_radioBtnRecycler->SetToolTip( _("Back up deleted and overwritten files in the recycle bin") );
+
+ bSizer2011->Add( m_radioBtnRecycler, 0, wxEXPAND|wxALL, 5 );
+
+ m_radioBtnPermanent = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
+
+ bSizer2011->Add( m_radioBtnPermanent, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ m_radioBtnVersioning = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnVersioning->SetToolTip( _("Move files to a user-defined folder") );
+
+ bSizer2011->Add( m_radioBtnVersioning, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizerDelHandling->Add( bSizer2011, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer191;
+ bSizer191 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer156;
+ bSizer156 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_versioningFolderPath = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
+
+ bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer156->Add( m_bpButtonSelectAltFolder, 0, wxEXPAND, 5 );
+
+
+ bSizer191->Add( bSizer156, 0, wxEXPAND|wxALL, 5 );
+
+ wxBoxSizer* bSizer198;
+ bSizer198 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ bSizer198->Add( m_staticText93, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer198->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer198->Add( m_hyperlink17, 0, 0, 5 );
+
+
+ bSizer191->Add( bSizer198, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ bSizer192 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxArrayString m_choiceVersioningStyleChoices;
+ m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
+ m_choiceVersioningStyle->SetSelection( 0 );
+ bSizer192->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart1->Wrap( -1 );
+ m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart2Bold->Wrap( -1 );
+ m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart3->Wrap( -1 );
+ m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer191->Add( bSizer192, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ m_panelVersioning->SetSizer( bSizer191 );
+ m_panelVersioning->Layout();
+ bSizer191->Fit( m_panelVersioning );
+ bSizerDelHandling->Add( m_panelVersioning, 1, 0, 5 );
+
+
+ bSizer232->Add( bSizerDelHandling, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer232->Add( m_staticline582, 0, wxEXPAND, 5 );
+
+ bSizerMiscConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText88 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText88->Wrap( -1 );
+ bSizerMiscConfig->Add( m_staticText88, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxVERTICAL );
+
+ m_radioBtnPopupOnErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnPopupOnErrors->SetValue( true );
+ m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ bSizer175->Add( m_radioBtnPopupOnErrors, 0, wxEXPAND|wxALL, 5 );
+
+ m_radioBtnIgnoreErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
+
+ bSizer175->Add( m_radioBtnIgnoreErrors, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizerMiscConfig->Add( bSizer175, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerMiscConfig->Add( m_staticline57, 0, wxEXPAND, 5 );
+
+ bSizerOnCompletion = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText89 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText89->Wrap( -1 );
+ bSizerOnCompletion->Add( m_staticText89, 0, wxBOTTOM, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizerOnCompletion->Add( m_comboBoxOnCompletion, 0, wxEXPAND, 5 );
+
+
+ bSizerMiscConfig->Add( bSizerOnCompletion, 1, wxALL, 10 );
+
+
+ bSizer232->Add( bSizerMiscConfig, 1, wxEXPAND, 5 );
+
+
+ m_panelSyncSettings->SetSizer( bSizer232 );
+ m_panelSyncSettings->Layout();
+ bSizer232->Fit( m_panelSyncSettings );
+ bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
+
+
+ m_panelSyncSettingsHolder->SetSizer( bSizer276 );
+ m_panelSyncSettingsHolder->Layout();
+ bSizer276->Fit( m_panelSyncSettingsHolder );
+ m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), true );
+
+ bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer7 );
+ this->Layout();
+ bSizer7->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::OnClose ) );
+ m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
+ m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnSelectFolderPair ), NULL, this );
+ m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalCompSettings ), NULL, this );
+ m_toggleBtnByTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByTimeSizeDouble ), NULL, this );
+ m_toggleBtnByTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByTimeSize ), NULL, this );
+ m_toggleBtnByContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByContentDouble ), NULL, this );
+ m_toggleBtnByContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByContent ), NULL, this );
+ m_toggleBtnBySize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompBySizeDouble ), NULL, this );
+ m_toggleBtnBySize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompBySize ), NULL, this );
+ m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeCompOption ), NULL, this );
+ m_hyperlink24->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpComparisonSettings ), NULL, this );
+ m_textCtrlTimeShift->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onlTimeShiftKeyDown ), NULL, this );
+ m_hyperlink241->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpTimeShift ), NULL, this );
+ m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_hyperlink171->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpShowExamples ), NULL, this );
+ m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnFilterReset ), NULL, this );
+ m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalSyncSettings ), NULL, this );
+ m_toggleBtnTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncTwoWayDouble ), NULL, this );
+ m_toggleBtnTwoWay->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncTwoWay ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncMirrorDouble ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncMirror ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncUpdateDouble ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncUpdate ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncCustomDouble ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncCustom ), NULL, this );
+ m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExLeftSideOnly ), NULL, this );
+ m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnLeftNewer ), NULL, this );
+ m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnDifferent ), NULL, this );
+ m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnConflict ), NULL, this );
+ m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnRightNewer ), NULL, this );
+ m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExRightSideOnly ), NULL, this );
+ m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDetectMovedFiles ), NULL, this );
+ m_hyperlink242->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpDetectMovedFiles ), NULL, this );
+ m_bpButtonDeletionType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDeletionType ), NULL, this );
+ m_radioBtnRecycler->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionRecycler ), NULL, this );
+ m_radioBtnPermanent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionPermanent ), NULL, this );
+ m_radioBtnVersioning->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionVersioning ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpVersioning ), NULL, this );
+ m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeSyncOption ), NULL, this );
+ m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorPopup ), NULL, this );
+ m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCancel ), NULL, this );
}
ConfigDlgGenerated::~ConfigDlgGenerated()
@@ -1947,98 +1947,98 @@ ConfigDlgGenerated::~ConfigDlgGenerated()
FolderPairPanelGenerated::FolderPairPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- wxBoxSizer* bSizer74;
- bSizer74 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLeft->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
-
- bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_folderPathLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
-
- bSizer134->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
-
- bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
-
-
- m_panelLeft->SetSizer( bSizer134 );
- m_panelLeft->Layout();
- bSizer134->Fit( m_panelLeft );
- bSizer74->Add( m_panelLeft, 0, wxLEFT|wxEXPAND, 5 );
-
- m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panel20->SetSizer( bSizer95 );
- m_panel20->Layout();
- bSizer95->Fit( m_panel20 );
- bSizer74->Add( m_panel20, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelRight->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer135;
- bSizer135 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
-
- bSizer135->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
-
- bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
-
-
- m_panelRight->SetSizer( bSizer135 );
- m_panelRight->Layout();
- bSizer135->Fit( m_panelRight );
- bSizer74->Add( m_panelRight, 1, wxRIGHT|wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer74 );
- this->Layout();
- bSizer74->Fit( this );
+ wxBoxSizer* bSizer74;
+ bSizer74 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLeft->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
+
+ bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_folderPathLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+
+ bSizer134->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
+
+ bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxEXPAND, 5 );
+
+
+ m_panelLeft->SetSizer( bSizer134 );
+ m_panelLeft->Layout();
+ bSizer134->Fit( m_panelLeft );
+ bSizer74->Add( m_panelLeft, 0, wxLEFT|wxEXPAND, 5 );
+
+ m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panel20->SetSizer( bSizer95 );
+ m_panel20->Layout();
+ bSizer95->Fit( m_panel20 );
+ bSizer74->Add( m_panel20, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelRight->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer135;
+ bSizer135 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+
+ bSizer135->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
+
+ bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxEXPAND, 5 );
+
+
+ m_panelRight->SetSizer( bSizer135 );
+ m_panelRight->Layout();
+ bSizer135->Fit( m_panelRight );
+ bSizer74->Add( m_panelRight, 1, wxRIGHT|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer74 );
+ this->Layout();
+ bSizer74->Fit( this );
}
FolderPairPanelGenerated::~FolderPairPanelGenerated()
@@ -2047,173 +2047,173 @@ FolderPairPanelGenerated::~FolderPairPanelGenerated()
SftpSetupDlgGenerated::SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Enter your SFTP login details:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
- wxFlexGridSizer* fgSizer16;
- fgSizer16 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer16->AddGrowableCol( 1 );
- fgSizer16->SetFlexibleDirection( wxBOTH );
- fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText12311->Wrap( -1 );
- fgSizer16->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxHORIZONTAL );
-
- m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 260,-1 ), 0 );
- bSizer183->Add( m_textCtrlServer, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1233->Wrap( -1 );
- bSizer183->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 );
- bSizer183->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer16->Add( bSizer183, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- fgSizer16->Add( 0, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText1381 = new wxStaticText( m_panel41, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1381->Wrap( -1 );
- m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText1381, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText1382 = new wxStaticText( m_panel41, wxID_ANY, _("www.website.com"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1382->Wrap( -1 );
- m_staticText1382->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText1382, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText138 = new wxStaticText( m_panel41, wxID_ANY, _("123.123.123"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText138->Wrap( -1 );
- m_staticText138->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText138, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- fgSizer16->Add( bSizer181, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText123 = new wxStaticText( m_panel41, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText123->Wrap( -1 );
- fgSizer16->Add( m_staticText123, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_textCtrlUserName = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_textCtrlUserName, 0, wxALL|wxEXPAND, 5 );
-
- m_staticText1231 = new wxStaticText( m_panel41, wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1231->Wrap( -1 );
- fgSizer16->Add( m_staticText1231, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- m_textCtrlPasswordVisible = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer182->Add( m_textCtrlPasswordVisible, 0, wxEXPAND, 5 );
-
- m_textCtrlPasswordHidden = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
- bSizer182->Add( m_textCtrlPasswordHidden, 0, wxEXPAND, 5 );
-
-
- fgSizer16->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- fgSizer16->Add( 0, 0, 0, 0, 5 );
-
- m_checkBoxShowPassword = new wxCheckBox( m_panel41, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_checkBoxShowPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1232->Wrap( -1 );
- fgSizer16->Add( m_staticText1232, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- wxBoxSizer* bSizer206;
- bSizer206 = new wxBoxSizer( wxHORIZONTAL );
-
- m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer206->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolder->SetToolTip( _("Select a folder") );
-
- bSizer206->Add( m_buttonSelectFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer16->Add( bSizer206, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
-
- bSizer185->Add( fgSizer16, 1, wxALL, 5 );
-
-
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpSetupDlgGenerated::OnClose ) );
- m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnToggleShowPassword ), NULL, this );
- m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnBrowseSftpFolder ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Enter your SFTP login details:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxFlexGridSizer* fgSizer16;
+ fgSizer16 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer16->AddGrowableCol( 1 );
+ fgSizer16->SetFlexibleDirection( wxBOTH );
+ fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText12311->Wrap( -1 );
+ fgSizer16->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 260,-1 ), 0 );
+ bSizer183->Add( m_textCtrlServer, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1233->Wrap( -1 );
+ bSizer183->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 );
+ bSizer183->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer16->Add( bSizer183, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ fgSizer16->Add( 0, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText1381 = new wxStaticText( m_panel41, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1381->Wrap( -1 );
+ m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText1381, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText1382 = new wxStaticText( m_panel41, wxID_ANY, _("website.com"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1382->Wrap( -1 );
+ m_staticText1382->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText1382, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText138 = new wxStaticText( m_panel41, wxID_ANY, _("123.123.123"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText138->Wrap( -1 );
+ m_staticText138->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText138, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ fgSizer16->Add( bSizer181, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText123 = new wxStaticText( m_panel41, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText123->Wrap( -1 );
+ fgSizer16->Add( m_staticText123, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_textCtrlUserName = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_textCtrlUserName, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticText1231 = new wxStaticText( m_panel41, wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1231->Wrap( -1 );
+ fgSizer16->Add( m_staticText1231, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ m_textCtrlPasswordVisible = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer182->Add( m_textCtrlPasswordVisible, 0, wxEXPAND, 5 );
+
+ m_textCtrlPasswordHidden = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ bSizer182->Add( m_textCtrlPasswordHidden, 0, wxEXPAND, 5 );
+
+
+ fgSizer16->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ fgSizer16->Add( 0, 0, 0, 0, 5 );
+
+ m_checkBoxShowPassword = new wxCheckBox( m_panel41, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_checkBoxShowPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1232->Wrap( -1 );
+ fgSizer16->Add( m_staticText1232, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer206;
+ bSizer206 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer206->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolder->SetToolTip( _("Select a folder") );
+
+ bSizer206->Add( m_buttonSelectFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer16->Add( bSizer206, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+
+ bSizer185->Add( fgSizer16, 1, wxALL, 5 );
+
+
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpSetupDlgGenerated::OnClose ) );
+ m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnToggleShowPassword ), NULL, this );
+ m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnBrowseSftpFolder ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnCancel ), NULL, this );
}
SftpSetupDlgGenerated::~SftpSetupDlgGenerated()
@@ -2222,72 +2222,72 @@ SftpSetupDlgGenerated::~SftpSetupDlgGenerated()
SftpFolderPickerGenerated::SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Select a directory on the server:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
-
- m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( 350,400 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxNO_BORDER );
- bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
-
-
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpFolderPickerGenerated::OnClose ) );
- m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( SftpFolderPickerGenerated::OnExpandNode ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Select a directory on the server:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
+
+ m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( 350,400 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxNO_BORDER );
+ bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
+
+
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpFolderPickerGenerated::OnClose ) );
+ m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( SftpFolderPickerGenerated::OnExpandNode ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnCancel ), NULL, this );
}
SftpFolderPickerGenerated::~SftpFolderPickerGenerated()
@@ -2296,221 +2296,221 @@ SftpFolderPickerGenerated::~SftpFolderPickerGenerated()
SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Start synchronization now?"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 40, 0, 0, 0, 5 );
-
-
- bSizer185->Add( 0, 0, 1, 0, 5 );
-
- m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText84->Wrap( -1 );
- bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
-
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextVariant = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextVariant->Wrap( -1 );
- m_staticTextVariant->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer182->Add( m_staticTextVariant, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer162->Add( bSizer182, 0, wxALL|wxEXPAND, 5 );
-
- m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- bSizer181->Add( m_staticText83, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer11;
- fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
- fgSizer11->SetFlexibleDirection( wxBOTH );
- fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapData->SetToolTip( _("Total bytes to copy") );
-
- fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteLeft->Wrap( -1 );
- m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateLeft->Wrap( -1 );
- m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextData->Wrap( -1 );
- m_staticTextData->SetToolTip( _("Total bytes to copy") );
-
- fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateRight->Wrap( -1 );
- m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteRight->Wrap( -1 );
- m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer181->Add( fgSizer11, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
-
-
- bSizer185->Add( bSizer162, 0, 0, 5 );
-
- m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
-
-
- bSizer185->Add( 0, 0, 1, 0, 5 );
-
-
- bSizer185->Add( 40, 0, 0, 0, 5 );
-
-
- m_panelStatistics->SetSizer( bSizer185 );
- m_panelStatistics->Layout();
- bSizer185->Fit( m_panelStatistics );
- bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonStartSync->SetDefault();
- m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::OnClose ) );
- m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnStartSync ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Start synchronization now?"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 40, 0, 0, 0, 5 );
+
+
+ bSizer185->Add( 0, 0, 1, 0, 5 );
+
+ m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText84->Wrap( -1 );
+ bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextVariant = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVariant->Wrap( -1 );
+ m_staticTextVariant->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer182->Add( m_staticTextVariant, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer162->Add( bSizer182, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ bSizer181->Add( m_staticText83, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer11;
+ fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
+ fgSizer11->SetFlexibleDirection( wxBOTH );
+ fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
+
+ fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteLeft->Wrap( -1 );
+ m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateLeft->Wrap( -1 );
+ m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextData->Wrap( -1 );
+ m_staticTextData->SetToolTip( _("Total bytes to copy") );
+
+ fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateRight->Wrap( -1 );
+ m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteRight->Wrap( -1 );
+ m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer181->Add( fgSizer11, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
+
+
+ bSizer185->Add( bSizer162, 0, 0, 5 );
+
+ m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
+
+
+ bSizer185->Add( 0, 0, 1, 0, 5 );
+
+
+ bSizer185->Add( 40, 0, 0, 0, 5 );
+
+
+ m_panelStatistics->SetSizer( bSizer185 );
+ m_panelStatistics->Layout();
+ bSizer185->Fit( m_panelStatistics );
+ bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonStartSync->SetDefault();
+ m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::OnClose ) );
+ m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnStartSync ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnCancel ), NULL, this );
}
SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
@@ -2519,134 +2519,134 @@ SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
CompareProgressDlgGenerated::CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer40;
- bSizer40 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer187;
- bSizer187 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer187->Add( 0, 5, 0, 0, 5 );
-
- wxFlexGridSizer* fgSizer7;
- fgSizer7 = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizer7->SetFlexibleDirection( wxHORIZONTAL );
- fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextItemsFoundLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsFoundLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextItemsFoundLabel, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextItemsFound = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsFound->Wrap( -1 );
- m_staticTextItemsFound->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextItemsFound, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextItemsRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsRemainingLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextItemsRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
-
- bSizerItemsRemaining = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextItemsRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerItemsRemaining->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextBytesRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesRemaining->Wrap( -1 );
- bSizerItemsRemaining->Add( m_staticTextBytesRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- fgSizer7->Add( bSizerItemsRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextTimeRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemainingLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextTimeRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemaining->Wrap( -1 );
- m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextTimeRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- wxStaticText* m_staticText37;
- m_staticText37 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText37->Wrap( -1 );
- fgSizer7->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
-
-
- bSizer187->Add( fgSizer7, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer187->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelStatistics->SetSizer( bSizer187 );
- m_panelStatistics->Layout();
- bSizer187->Fit( m_panelStatistics );
- bSizer40->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizer181->Add( m_staticTextStatus, 0, 0, 5 );
-
- wxBoxSizer* bSizer199;
- bSizer199 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelProgressLabel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelProgressLabel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer201;
- bSizer201 = new wxBoxSizer( wxVERTICAL );
-
- wxStaticText* m_staticText99;
- m_staticText99 = new wxStaticText( m_panelProgressLabel, wxID_ANY, _("Bytes:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText99->Wrap( -1 );
- bSizer201->Add( m_staticText99, 0, wxALL, 5 );
-
- wxStaticText* m_staticText100;
- m_staticText100 = new wxStaticText( m_panelProgressLabel, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText100->Wrap( -1 );
- bSizer201->Add( m_staticText100, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- m_panelProgressLabel->SetSizer( bSizer201 );
- m_panelProgressLabel->Layout();
- bSizer201->Fit( m_panelProgressLabel );
- bSizer199->Add( m_panelProgressLabel, 0, 0, 5 );
-
- m_panelGraphProgress = new zen::Graph2D( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_panelGraphProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- bSizer199->Add( m_panelGraphProgress, 1, wxEXPAND, 5 );
-
-
- bSizer181->Add( bSizer199, 1, wxEXPAND|wxTOP, 5 );
-
-
- bSizer40->Add( bSizer181, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- this->SetSizer( bSizer40 );
- this->Layout();
- bSizer40->Fit( this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer40;
+ bSizer40 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer187;
+ bSizer187 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer187->Add( 0, 5, 0, 0, 5 );
+
+ wxFlexGridSizer* fgSizer7;
+ fgSizer7 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizer7->SetFlexibleDirection( wxHORIZONTAL );
+ fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextItemsFoundLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsFoundLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextItemsFoundLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextItemsFound = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsFound->Wrap( -1 );
+ m_staticTextItemsFound->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextItemsFound, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextItemsRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsRemainingLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextItemsRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ bSizerItemsRemaining = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextItemsRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerItemsRemaining->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextBytesRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesRemaining->Wrap( -1 );
+ bSizerItemsRemaining->Add( m_staticTextBytesRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ fgSizer7->Add( bSizerItemsRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextTimeRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemainingLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextTimeRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemaining->Wrap( -1 );
+ m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextTimeRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ wxStaticText* m_staticText37;
+ m_staticText37 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText37->Wrap( -1 );
+ fgSizer7->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
+
+
+ bSizer187->Add( fgSizer7, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer187->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelStatistics->SetSizer( bSizer187 );
+ m_panelStatistics->Layout();
+ bSizer187->Fit( m_panelStatistics );
+ bSizer40->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizer181->Add( m_staticTextStatus, 0, 0, 5 );
+
+ wxBoxSizer* bSizer199;
+ bSizer199 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelProgressLabel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelProgressLabel->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer201;
+ bSizer201 = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticText* m_staticText99;
+ m_staticText99 = new wxStaticText( m_panelProgressLabel, wxID_ANY, _("Bytes:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText99->Wrap( -1 );
+ bSizer201->Add( m_staticText99, 0, wxALL, 5 );
+
+ wxStaticText* m_staticText100;
+ m_staticText100 = new wxStaticText( m_panelProgressLabel, wxID_ANY, _("Items:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText100->Wrap( -1 );
+ bSizer201->Add( m_staticText100, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ m_panelProgressLabel->SetSizer( bSizer201 );
+ m_panelProgressLabel->Layout();
+ bSizer201->Fit( m_panelProgressLabel );
+ bSizer199->Add( m_panelProgressLabel, 0, 0, 5 );
+
+ m_panelGraphProgress = new zen::Graph2D( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ bSizer199->Add( m_panelGraphProgress, 1, wxEXPAND, 5 );
+
+
+ bSizer181->Add( bSizer199, 1, wxEXPAND|wxTOP, 5 );
+
+
+ bSizer40->Add( bSizer181, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ this->SetSizer( bSizer40 );
+ this->Layout();
+ bSizer40->Fit( this );
}
CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
@@ -2655,320 +2655,320 @@ CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
SyncProgressPanelGenerated::SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- bSizerRoot = new wxBoxSizer( wxVERTICAL );
-
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer42->Add( 32, 0, 0, 0, 5 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapStatus = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
- bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
- m_staticTextPhase = new wxStaticText( this, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPhase->Wrap( -1 );
- m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- m_animCtrlSyncing = new wxAnimationCtrl( this, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxSize( 32,32 ), wxAC_DEFAULT_STYLE );
- bSizer42->Add( m_animCtrlSyncing, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonMinimizeToTray = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), wxBU_AUTODRAW );
- m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
-
- bSizer42->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerRoot->Add( bSizer42, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- bSizerStatusText = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 10 );
-
-
- bSizerStatusText->Add( 0, 5, 0, 0, 5 );
-
-
- bSizerRoot->Add( bSizerStatusText, 0, wxEXPAND, 5 );
-
- wxStaticLine* m_staticlineHeader;
- m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerRoot->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
-
- m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer171->Add( 10, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
-
- m_panelItemsProcessed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemsProcessed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer165->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText96;
- m_staticText96 = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizer165->Add( m_staticText96, 0, wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer169;
- bSizer169 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextItemsProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextItemsProcessed->Wrap( -1 );
- m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer169->Add( m_staticTextItemsProcessed, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextBytesProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesProcessed->Wrap( -1 );
- bSizer169->Add( m_staticTextBytesProcessed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer165->Add( bSizer169, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer165->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelItemsProcessed->SetSizer( bSizer165 );
- m_panelItemsProcessed->Layout();
- bSizer165->Fit( m_panelItemsProcessed );
- bSizer164->Add( m_panelItemsProcessed, 0, wxEXPAND|wxTOP, 7 );
-
- m_panelItemsRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemsRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer166->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText97;
- m_staticText97 = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText97->Wrap( -1 );
- bSizer166->Add( m_staticText97, 0, wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextItemsRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer170->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextBytesRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextBytesRemaining->Wrap( -1 );
- bSizer170->Add( m_staticTextBytesRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer166->Add( bSizer170, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer166->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelItemsRemaining->SetSizer( bSizer166 );
- m_panelItemsRemaining->Layout();
- bSizer166->Fit( m_panelItemsRemaining );
- bSizer164->Add( m_panelItemsRemaining, 0, wxTOP|wxEXPAND, 7 );
-
- m_panelTimeRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer167->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText98;
- m_staticText98 = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText98->Wrap( -1 );
- bSizer167->Add( m_staticText98, 0, wxRIGHT|wxLEFT, 5 );
-
- m_staticTextTimeRemaining = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemaining->Wrap( -1 );
- m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer167->Add( m_staticTextTimeRemaining, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer167->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelTimeRemaining->SetSizer( bSizer167 );
- m_panelTimeRemaining->Layout();
- bSizer167->Fit( m_panelTimeRemaining );
- bSizer164->Add( m_panelTimeRemaining, 0, wxTOP|wxEXPAND, 7 );
-
- wxPanel* m_panelTimeElapsed;
- m_panelTimeElapsed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeElapsed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer168;
- bSizer168 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer168->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText961;
- m_staticText961 = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText961->Wrap( -1 );
- bSizer168->Add( m_staticText961, 0, wxRIGHT|wxLEFT, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer168->Add( m_staticTextTimeElapsed, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer168->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelTimeElapsed->SetSizer( bSizer168 );
- m_panelTimeElapsed->Layout();
- bSizer168->Fit( m_panelTimeElapsed );
- bSizer164->Add( m_panelTimeElapsed, 0, wxTOP|wxEXPAND, 7 );
-
-
- bSizer171->Add( bSizer164, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer171->Add( 10, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer161;
- bSizer161 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- wxStaticText* m_staticText99;
- m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes copied:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText99->Wrap( -1 );
- bSizer175->Add( m_staticText99, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer161->Add( bSizer175, 0, 0, 5 );
-
- m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer161->Add( m_panelGraphBytes, 1, wxEXPAND, 15 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- wxStaticText* m_staticText100;
- m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText100->Wrap( -1 );
- bSizer174->Add( m_staticText100, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer161->Add( bSizer174, 0, 0, 5 );
-
- m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer161->Add( m_panelGraphItems, 1, wxEXPAND, 15 );
-
-
- bSizer161->Add( 450, 0, 0, 0, 5 );
-
-
- bSizer171->Add( bSizer161, 1, wxEXPAND, 5 );
-
-
- bSizer171->Add( 0, 310, 0, 0, 5 );
-
-
- bSizer173->Add( bSizer171, 1, wxEXPAND, 5 );
-
-
- m_panelProgress->SetSizer( bSizer173 );
- m_panelProgress->Layout();
- bSizer173->Fit( m_panelProgress );
- bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
-
- m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
-
- bSizerRoot->Add( m_notebookResult, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
-
- bSizerOnCompletion = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText87 = new wxStaticText( this, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- bSizerOnCompletion->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizerOnCompletion->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer160->Add( bSizerOnCompletion, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer160->Add( 0, 0, 0, 0, 5 );
-
-
- bSizerStdButtons->Add( bSizer160, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- m_buttonClose->Enable( false );
-
- bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizerRoot->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizerRoot );
- this->Layout();
- bSizerRoot->Fit( this );
+ bSizerRoot = new wxBoxSizer( wxVERTICAL );
+
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer42->Add( 32, 0, 0, 0, 5 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapStatus = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+ m_staticTextPhase = new wxStaticText( this, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPhase->Wrap( -1 );
+ m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ m_animCtrlSyncing = new wxAnimationCtrl( this, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxSize( 32,32 ), wxAC_DEFAULT_STYLE );
+ bSizer42->Add( m_animCtrlSyncing, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonMinimizeToTray = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), wxBU_AUTODRAW );
+ m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
+
+ bSizer42->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerRoot->Add( bSizer42, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ bSizerStatusText = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 10 );
+
+
+ bSizerStatusText->Add( 0, 5, 0, 0, 5 );
+
+
+ bSizerRoot->Add( bSizerStatusText, 0, wxEXPAND, 5 );
+
+ wxStaticLine* m_staticlineHeader;
+ m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerRoot->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
+
+ m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer171->Add( 10, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelItemsProcessed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemsProcessed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer165->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText96;
+ m_staticText96 = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizer165->Add( m_staticText96, 0, wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer169;
+ bSizer169 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextItemsProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsProcessed->Wrap( -1 );
+ m_staticTextItemsProcessed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer169->Add( m_staticTextItemsProcessed, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextBytesProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesProcessed->Wrap( -1 );
+ bSizer169->Add( m_staticTextBytesProcessed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer165->Add( bSizer169, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer165->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelItemsProcessed->SetSizer( bSizer165 );
+ m_panelItemsProcessed->Layout();
+ bSizer165->Fit( m_panelItemsProcessed );
+ bSizer164->Add( m_panelItemsProcessed, 0, wxEXPAND|wxTOP, 7 );
+
+ m_panelItemsRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemsRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer166->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText97;
+ m_staticText97 = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText97->Wrap( -1 );
+ bSizer166->Add( m_staticText97, 0, wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextItemsRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer170->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextBytesRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextBytesRemaining->Wrap( -1 );
+ bSizer170->Add( m_staticTextBytesRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer166->Add( bSizer170, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer166->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelItemsRemaining->SetSizer( bSizer166 );
+ m_panelItemsRemaining->Layout();
+ bSizer166->Fit( m_panelItemsRemaining );
+ bSizer164->Add( m_panelItemsRemaining, 0, wxTOP|wxEXPAND, 7 );
+
+ m_panelTimeRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer167->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText98;
+ m_staticText98 = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText98->Wrap( -1 );
+ bSizer167->Add( m_staticText98, 0, wxRIGHT|wxLEFT, 5 );
+
+ m_staticTextTimeRemaining = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemaining->Wrap( -1 );
+ m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer167->Add( m_staticTextTimeRemaining, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer167->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelTimeRemaining->SetSizer( bSizer167 );
+ m_panelTimeRemaining->Layout();
+ bSizer167->Fit( m_panelTimeRemaining );
+ bSizer164->Add( m_panelTimeRemaining, 0, wxTOP|wxEXPAND, 7 );
+
+ wxPanel* m_panelTimeElapsed;
+ m_panelTimeElapsed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeElapsed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer168;
+ bSizer168 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer168->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText961;
+ m_staticText961 = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText961->Wrap( -1 );
+ bSizer168->Add( m_staticText961, 0, wxRIGHT|wxLEFT, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer168->Add( m_staticTextTimeElapsed, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer168->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelTimeElapsed->SetSizer( bSizer168 );
+ m_panelTimeElapsed->Layout();
+ bSizer168->Fit( m_panelTimeElapsed );
+ bSizer164->Add( m_panelTimeElapsed, 0, wxTOP|wxEXPAND, 7 );
+
+
+ bSizer171->Add( bSizer164, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer171->Add( 10, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer161;
+ bSizer161 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ wxStaticText* m_staticText99;
+ m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes copied:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText99->Wrap( -1 );
+ bSizer175->Add( m_staticText99, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer161->Add( bSizer175, 0, 0, 5 );
+
+ m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer161->Add( m_panelGraphBytes, 1, wxEXPAND, 15 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ wxStaticText* m_staticText100;
+ m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText100->Wrap( -1 );
+ bSizer174->Add( m_staticText100, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer161->Add( bSizer174, 0, 0, 5 );
+
+ m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer161->Add( m_panelGraphItems, 1, wxEXPAND, 15 );
+
+
+ bSizer161->Add( 450, 0, 0, 0, 5 );
+
+
+ bSizer171->Add( bSizer161, 1, wxEXPAND, 5 );
+
+
+ bSizer171->Add( 0, 310, 0, 0, 5 );
+
+
+ bSizer173->Add( bSizer171, 1, wxEXPAND, 5 );
+
+
+ m_panelProgress->SetSizer( bSizer173 );
+ m_panelProgress->Layout();
+ bSizer173->Fit( m_panelProgress );
+ bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
+
+ m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
+
+ bSizerRoot->Add( m_notebookResult, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizerOnCompletion = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText87 = new wxStaticText( this, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ bSizerOnCompletion->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizerOnCompletion->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer160->Add( bSizerOnCompletion, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer160->Add( 0, 0, 0, 0, 5 );
+
+
+ bSizerStdButtons->Add( bSizer160, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonClose->SetDefault();
+ m_buttonClose->Enable( false );
+
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizerRoot->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizerRoot );
+ this->Layout();
+ bSizerRoot->Fit( this );
}
SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
@@ -2977,48 +2977,48 @@ SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
LogPanelGenerated::LogPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer153;
- bSizer153 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer154;
- bSizer154 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer153->Add( bSizer154, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer153->Add( m_staticline13, 0, wxEXPAND, 5 );
-
- m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMessages->SetScrollRate( 5, 5 );
- bSizer153->Add( m_gridMessages, 1, wxEXPAND, 5 );
-
-
- bSizer179->Add( bSizer153, 1, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer179 );
- this->Layout();
- bSizer179->Fit( this );
-
- // Connect Events
- m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnErrors ), NULL, this );
- m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnWarnings ), NULL, this );
- m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnInfo ), NULL, this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer153;
+ bSizer153 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer154;
+ bSizer154 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer153->Add( bSizer154, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer153->Add( m_staticline13, 0, wxEXPAND, 5 );
+
+ m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMessages->SetScrollRate( 5, 5 );
+ bSizer153->Add( m_gridMessages, 1, wxEXPAND, 5 );
+
+
+ bSizer179->Add( bSizer153, 1, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer179 );
+ this->Layout();
+ bSizer179->Fit( this );
+
+ // Connect Events
+ m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnErrors ), NULL, this );
+ m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnWarnings ), NULL, this );
+ m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnInfo ), NULL, this );
}
LogPanelGenerated::~LogPanelGenerated()
@@ -3027,175 +3027,175 @@ LogPanelGenerated::~LogPanelGenerated()
BatchDlgGenerated::BatchDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer54;
- bSizer54 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDescr->Wrap( 520 );
- bSizer72->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer54->Add( bSizer72, 0, 0, 5 );
-
- m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
-
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText82 = new wxStaticText( m_panel35, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText82->Wrap( -1 );
- bSizer180->Add( m_staticText82, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- wxBoxSizer* bSizer169;
- bSizer169 = new wxBoxSizer( wxVERTICAL );
-
- m_radioBtnPopupOnErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnPopupOnErrors->SetValue( true );
- m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
-
- bSizer169->Add( m_radioBtnPopupOnErrors, 0, wxEXPAND|wxALL, 5 );
-
- m_radioBtnIgnoreErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
-
- bSizer169->Add( m_radioBtnIgnoreErrors, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_radioBtnStopOnError = new wxRadioButton( m_panel35, wxID_ANY, _("&Stop"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnStopOnError->SetToolTip( _("Stop synchronization at first error") );
-
- bSizer169->Add( m_radioBtnStopOnError, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer180->Add( bSizer169, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText81 = new wxStaticText( m_panel35, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText81->Wrap( -1 );
- bSizer170->Add( m_staticText81, 0, wxALL, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer170->Add( m_comboBoxOnCompletion, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer170->Add( m_checkBoxRunMinimized, 0, wxEXPAND|wxALL, 5 );
-
-
- bSizer180->Add( bSizer170, 1, wxALL, 5 );
-
-
- bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
-
- m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer191;
- bSizer191 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxGenerateLogfile = new wxCheckBox( m_panel35, wxID_ANY, _("Save log:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer191->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
-
- m_panelLogfile = new wxPanel( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
-
- m_logFolderPath = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1721->Add( m_logFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
-
- bSizer1721->Add( m_buttonSelectLogFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltLogFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer1721->Add( m_bpButtonSelectAltLogFolder, 0, wxEXPAND, 5 );
-
- m_checkBoxLogfilesLimit = new wxCheckBox( m_panelLogfile, wxID_ANY, _("Limit:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxLogfilesLimit->SetToolTip( _("Limit maximum number of log files") );
-
- bSizer1721->Add( m_checkBoxLogfilesLimit, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_spinCtrlLogfileLimit = new wxSpinCtrl( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- m_spinCtrlLogfileLimit->SetToolTip( _("Limit maximum number of log files") );
-
- bSizer1721->Add( m_spinCtrlLogfileLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLogfile->SetSizer( bSizer1721 );
- m_panelLogfile->Layout();
- bSizer1721->Fit( m_panelLogfile );
- bSizer191->Add( m_panelLogfile, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- bSizer172->Add( bSizer191, 0, wxEXPAND|wxALL, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer172->Add( m_hyperlink17, 0, wxALL, 10 );
-
-
- m_panel35->SetSizer( bSizer172 );
- m_panel35->Layout();
- bSizer172->Fit( m_panel35 );
- bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
-
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonSaveAs->SetDefault();
- m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer54 );
- this->Layout();
- bSizer54->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
- m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
- m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
- m_radioBtnStopOnError->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorStop ), NULL, this );
- m_checkBoxGenerateLogfile->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
- m_checkBoxLogfilesLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( BatchDlgGenerated::OnHelpScheduleBatch ), NULL, this );
- m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer54;
+ bSizer54 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDescr->Wrap( 520 );
+ bSizer72->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer54->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
+
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText82 = new wxStaticText( m_panel35, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText82->Wrap( -1 );
+ bSizer180->Add( m_staticText82, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ wxBoxSizer* bSizer169;
+ bSizer169 = new wxBoxSizer( wxVERTICAL );
+
+ m_radioBtnPopupOnErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnPopupOnErrors->SetValue( true );
+ m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ bSizer169->Add( m_radioBtnPopupOnErrors, 0, wxEXPAND|wxALL, 5 );
+
+ m_radioBtnIgnoreErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
+
+ bSizer169->Add( m_radioBtnIgnoreErrors, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_radioBtnStopOnError = new wxRadioButton( m_panel35, wxID_ANY, _("&Stop"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnStopOnError->SetToolTip( _("Stop synchronization at first error") );
+
+ bSizer169->Add( m_radioBtnStopOnError, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer180->Add( bSizer169, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText81 = new wxStaticText( m_panel35, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText81->Wrap( -1 );
+ bSizer170->Add( m_staticText81, 0, wxALL, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer170->Add( m_comboBoxOnCompletion, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer170->Add( m_checkBoxRunMinimized, 0, wxEXPAND|wxALL, 5 );
+
+
+ bSizer180->Add( bSizer170, 1, wxALL, 5 );
+
+
+ bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
+
+ m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer191;
+ bSizer191 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxGenerateLogfile = new wxCheckBox( m_panel35, wxID_ANY, _("Save log:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer191->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
+
+ m_panelLogfile = new wxPanel( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_logFolderPath = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1721->Add( m_logFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
+
+ bSizer1721->Add( m_buttonSelectLogFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltLogFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer1721->Add( m_bpButtonSelectAltLogFolder, 0, wxEXPAND, 5 );
+
+ m_checkBoxLogfilesLimit = new wxCheckBox( m_panelLogfile, wxID_ANY, _("Limit:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxLogfilesLimit->SetToolTip( _("Limit maximum number of log files") );
+
+ bSizer1721->Add( m_checkBoxLogfilesLimit, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_spinCtrlLogfileLimit = new wxSpinCtrl( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ m_spinCtrlLogfileLimit->SetToolTip( _("Limit maximum number of log files") );
+
+ bSizer1721->Add( m_spinCtrlLogfileLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLogfile->SetSizer( bSizer1721 );
+ m_panelLogfile->Layout();
+ bSizer1721->Fit( m_panelLogfile );
+ bSizer191->Add( m_panelLogfile, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizer172->Add( bSizer191, 0, wxEXPAND|wxALL, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer172->Add( m_hyperlink17, 0, wxALL, 10 );
+
+
+ m_panel35->SetSizer( bSizer172 );
+ m_panel35->Layout();
+ bSizer172->Fit( m_panel35 );
+ bSizer54->Add( m_panel35, 1, wxEXPAND, 5 );
+
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSaveAs->SetDefault();
+ m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer54 );
+ this->Layout();
+ bSizer54->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
+ m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
+ m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_radioBtnStopOnError->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorStop ), NULL, this );
+ m_checkBoxGenerateLogfile->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
+ m_checkBoxLogfilesLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( BatchDlgGenerated::OnHelpScheduleBatch ), NULL, this );
+ m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
}
BatchDlgGenerated::~BatchDlgGenerated()
@@ -3204,81 +3204,81 @@ BatchDlgGenerated::~BatchDlgGenerated()
DeleteDlgGenerated::DeleteDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer24->Add( bSizer72, 0, 0, 5 );
-
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
-
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 60, 0, 0, 0, 5 );
-
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
-
-
- m_panel31->SetSizer( bSizer185 );
- m_panel31->Layout();
- bSizer185->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
-
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStdButtons->Add( m_checkBoxUseRecycler, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
- m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer24->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 60, 0, 0, 0, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
+
+
+ m_panel31->SetSizer( bSizer185 );
+ m_panel31->Layout();
+ bSizer185->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
+
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStdButtons->Add( m_checkBoxUseRecycler, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
+ m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
}
DeleteDlgGenerated::~DeleteDlgGenerated()
@@ -3287,112 +3287,112 @@ DeleteDlgGenerated::~DeleteDlgGenerated()
CopyToDlgGenerated::CopyToDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
- m_staticTextHeader->Wrap( 460 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer24->Add( bSizer72, 0, 0, 5 );
-
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
-
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 60, 0, 0, 0, 5 );
-
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
-
-
- m_panel31->SetSizer( bSizer185 );
- m_panel31->Layout();
- bSizer185->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_targetFolderPath = new FolderHistoryBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectTargetFolder = new wxButton( this, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
-
- bSizer182->Add( m_buttonSelectTargetFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltTargetFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltTargetFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxEXPAND, 5 );
-
-
- bSizer24->Add( bSizer182, 0, wxEXPAND|wxALL, 5 );
-
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxKeepRelPath->SetValue(true);
- bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALL|wxEXPAND, 5 );
-
- m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxOverwriteIfExists->SetValue(true);
- bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- bSizerStdButtons->Add( bSizer189, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::OnClose ) );
- m_checkBoxKeepRelPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
- m_checkBoxOverwriteIfExists->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnOK ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
+ m_staticTextHeader->Wrap( 460 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer24->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 60, 0, 0, 0, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND, 5 );
+
+
+ m_panel31->SetSizer( bSizer185 );
+ m_panel31->Layout();
+ bSizer185->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_targetFolderPath = new FolderHistoryBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectTargetFolder = new wxButton( this, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
+
+ bSizer182->Add( m_buttonSelectTargetFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltTargetFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltTargetFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxEXPAND, 5 );
+
+
+ bSizer24->Add( bSizer182, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxKeepRelPath->SetValue(true);
+ bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALL|wxEXPAND, 5 );
+
+ m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxOverwriteIfExists->SetValue(true);
+ bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizerStdButtons->Add( bSizer189, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::OnClose ) );
+ m_checkBoxKeepRelPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
+ m_checkBoxOverwriteIfExists->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnCancel ), NULL, this );
}
CopyToDlgGenerated::~CopyToDlgGenerated()
@@ -3401,258 +3401,258 @@ CopyToDlgGenerated::~CopyToDlgGenerated()
OptionsDlgGenerated::OptionsDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticText44->Wrap( 500 );
- bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer95->Add( bSizer72, 0, 0, 5 );
-
- m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
-
- m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxFailSafe->SetValue(true);
- m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
-
- bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("(recommended)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
-
- bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyLocked->SetValue(true);
- m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
-
- bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText92->Wrap( -1 );
- m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyPermissions->SetValue(true);
- m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
-
- bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
-
-
- bSizer186->Add( bSizer160, 0, wxEXPAND|wxALL, 5 );
-
- m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer188;
- bSizer188 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText95 = new wxStaticText( m_panel39, wxID_ANY, _("Automatic retry on error:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText95->Wrap( -1 );
- bSizer188->Add( m_staticText95, 0, wxBOTTOM, 5 );
-
- wxFlexGridSizer* fgSizer6;
- fgSizer6 = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizer6->SetFlexibleDirection( wxBOTH );
- fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticText96 = new wxStaticText( m_panel39, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- fgSizer6->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 4 );
- fgSizer6->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextAutoRetryDelay = new wxStaticText( m_panel39, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAutoRetryDelay->Wrap( -1 );
- fgSizer6->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- fgSizer6->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer188->Add( fgSizer6, 0, wxLEFT, 10 );
-
-
- bSizer186->Add( bSizer188, 0, wxALL, 10 );
-
-
- bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
-
- m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText85->Wrap( -1 );
- bSizer181->Add( m_staticText85, 0, wxBOTTOM, 5 );
-
- m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
-
- // Grid
- m_gridCustomCommand->CreateGrid( 5, 2 );
- m_gridCustomCommand->EnableEditing( true );
- m_gridCustomCommand->EnableGridLines( true );
- m_gridCustomCommand->EnableDragGridSize( false );
- m_gridCustomCommand->SetMargins( 0, 0 );
-
- // Columns
- m_gridCustomCommand->SetColSize( 0, 165 );
- m_gridCustomCommand->SetColSize( 1, 196 );
- m_gridCustomCommand->EnableDragColMove( false );
- m_gridCustomCommand->EnableDragColSize( true );
- m_gridCustomCommand->SetColLabelSize( 20 );
- m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
- m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
- m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
-
- // Rows
- m_gridCustomCommand->EnableDragRowSize( false );
- m_gridCustomCommand->SetRowLabelSize( 1 );
- m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
-
- // Label Appearance
-
- // Cell Defaults
- m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
- bSizer181->Add( m_gridCustomCommand, 1, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer193;
- bSizer193 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- bSizer193->Add( m_bpButtonAddRow, 0, 0, 5 );
-
- m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- bSizer193->Add( m_bpButtonRemoveRow, 0, 0, 5 );
-
-
- bSizer193->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer193->Add( m_hyperlink17, 0, wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer193, 0, wxTOP|wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
-
- m_staticline192 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline192, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1881;
- bSizer1881 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonResetDialogs = new zen::BitmapTextButton( m_panel39, wxID_ANY, _("Show hidden dialogs again"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonResetDialogs->SetToolTip( _("Show all permanently hidden dialogs and warning messages again") );
-
- bSizer1881->Add( m_buttonResetDialogs, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
-
- m_staticline40 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1881->Add( m_staticline40, 0, wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer1881, 0, 0, 5 );
-
-
- m_panel39->SetSizer( bSizer166 );
- m_panel39->Layout();
- bSizer166->Fit( m_panel39 );
- bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
-
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer95 );
- this->Layout();
- bSizer95->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::OnClose ) );
- m_spinCtrlAutoRetryCount->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::OnToggleAutoRetryCount ), NULL, this );
- m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnAddRow ), NULL, this );
- m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnRemoveRow ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::OnHelpShowExamples ), NULL, this );
- m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnResetDialogs ), NULL, this );
- m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnDefault ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( 500 );
+ bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer95->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
+
+ m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxFailSafe->SetValue(true);
+ m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
+
+ bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("(recommended)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
+
+ bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyLocked->SetValue(true);
+ m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
+
+ bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText92->Wrap( -1 );
+ m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyPermissions->SetValue(true);
+ m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
+
+ bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
+
+
+ bSizer186->Add( bSizer160, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer188;
+ bSizer188 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText95 = new wxStaticText( m_panel39, wxID_ANY, _("Automatic retry on error:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText95->Wrap( -1 );
+ bSizer188->Add( m_staticText95, 0, wxBOTTOM, 5 );
+
+ wxFlexGridSizer* fgSizer6;
+ fgSizer6 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizer6->SetFlexibleDirection( wxBOTH );
+ fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText96 = new wxStaticText( m_panel39, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ fgSizer6->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 4 );
+ fgSizer6->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextAutoRetryDelay = new wxStaticText( m_panel39, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAutoRetryDelay->Wrap( -1 );
+ fgSizer6->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ fgSizer6->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer188->Add( fgSizer6, 0, wxLEFT, 10 );
+
+
+ bSizer186->Add( bSizer188, 0, wxALL, 10 );
+
+
+ bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
+
+ m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText85->Wrap( -1 );
+ bSizer181->Add( m_staticText85, 0, wxBOTTOM, 5 );
+
+ m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+
+ // Grid
+ m_gridCustomCommand->CreateGrid( 5, 2 );
+ m_gridCustomCommand->EnableEditing( true );
+ m_gridCustomCommand->EnableGridLines( true );
+ m_gridCustomCommand->EnableDragGridSize( false );
+ m_gridCustomCommand->SetMargins( 0, 0 );
+
+ // Columns
+ m_gridCustomCommand->SetColSize( 0, 165 );
+ m_gridCustomCommand->SetColSize( 1, 196 );
+ m_gridCustomCommand->EnableDragColMove( false );
+ m_gridCustomCommand->EnableDragColSize( true );
+ m_gridCustomCommand->SetColLabelSize( 20 );
+ m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
+ m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
+ m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
+
+ // Rows
+ m_gridCustomCommand->EnableDragRowSize( false );
+ m_gridCustomCommand->SetRowLabelSize( 1 );
+ m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
+
+ // Label Appearance
+
+ // Cell Defaults
+ m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
+ bSizer181->Add( m_gridCustomCommand, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer193;
+ bSizer193 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ bSizer193->Add( m_bpButtonAddRow, 0, 0, 5 );
+
+ m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ bSizer193->Add( m_bpButtonRemoveRow, 0, 0, 5 );
+
+
+ bSizer193->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer193->Add( m_hyperlink17, 0, wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer193, 0, wxTOP|wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
+
+ m_staticline192 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline192, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1881;
+ bSizer1881 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonResetDialogs = new zen::BitmapTextButton( m_panel39, wxID_ANY, _("Show hidden dialogs again"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonResetDialogs->SetToolTip( _("Show all permanently hidden dialogs and warning messages again") );
+
+ bSizer1881->Add( m_buttonResetDialogs, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+
+ m_staticline40 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1881->Add( m_staticline40, 0, wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer1881, 0, 0, 5 );
+
+
+ m_panel39->SetSizer( bSizer166 );
+ m_panel39->Layout();
+ bSizer166->Fit( m_panel39 );
+ bSizer95->Add( m_panel39, 1, wxEXPAND, 5 );
+
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer95 );
+ this->Layout();
+ bSizer95->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::OnClose ) );
+ m_spinCtrlAutoRetryCount->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::OnToggleAutoRetryCount ), NULL, this );
+ m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnAddRow ), NULL, this );
+ m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnRemoveRow ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::OnHelpShowExamples ), NULL, this );
+ m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnResetDialogs ), NULL, this );
+ m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnCancel ), NULL, this );
}
OptionsDlgGenerated::~OptionsDlgGenerated()
@@ -3661,22 +3661,22 @@ OptionsDlgGenerated::~OptionsDlgGenerated()
TooltipDialogGenerated::TooltipDialogGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer158->Add( m_bitmapLeft, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextMain = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMain->Wrap( 600 );
- bSizer158->Add( m_staticTextMain, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizer158 );
- this->Layout();
- bSizer158->Fit( this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer158->Add( m_bitmapLeft, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextMain = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain->Wrap( 600 );
+ bSizer158->Add( m_staticTextMain, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ this->SetSizer( bSizer158 );
+ this->Layout();
+ bSizer158->Fit( this );
}
TooltipDialogGenerated::~TooltipDialogGenerated()
@@ -3685,60 +3685,60 @@ TooltipDialogGenerated::~TooltipDialogGenerated()
SelectTimespanDlgGenerated::SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer96;
- bSizer96 = new wxBoxSizer( wxVERTICAL );
-
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer98;
- bSizer98 = new wxBoxSizer( wxHORIZONTAL );
-
- m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
- bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
- bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
-
-
- m_panel35->SetSizer( bSizer98 );
- m_panel35->Layout();
- bSizer98->Fit( m_panel35 );
- bSizer96->Add( m_panel35, 0, wxEXPAND, 5 );
-
- m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer96 );
- this->Layout();
- bSizer96->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
- m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
- m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer96;
+ bSizer96 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer98;
+ bSizer98 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
+ bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
+ bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
+
+
+ m_panel35->SetSizer( bSizer98 );
+ m_panel35->Layout();
+ bSizer98->Fit( m_panel35 );
+ bSizer96->Add( m_panel35, 0, wxEXPAND, 5 );
+
+ m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer96 );
+ this->Layout();
+ bSizer96->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
+ m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
+ m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
}
SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
@@ -3747,308 +3747,308 @@ SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer31;
- bSizer31 = new wxBoxSizer( wxVERTICAL );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer162->Add( m_bitmapLogo, 0, 0, 5 );
-
- m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer162->Add( m_staticline341, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer187;
- bSizer187 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText96 = new wxStaticText( m_panel41, wxID_ANY, _("Source code written in C++ using:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizer187->Add( m_staticText96, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink11 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("MS Visual C++"), wxT("http://www.visualstudio.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink11->SetToolTip( _("http://www.visualstudio.com") );
-
- bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink7 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink7->SetToolTip( _("http://www.wxwidgets.org") );
-
- bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink14 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink14->SetToolTip( _("http://wxformbuilder.org") );
-
- bSizer171->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink16 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink16->SetToolTip( _("http://astyle.sourceforge.net") );
-
- bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer187->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink15 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zen::Xml"), wxT("http://zenxml.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink15->SetToolTip( _("http://zenxml.sourceforge.net") );
-
- bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink12 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink12->SetToolTip( _("http://code.google.com/p/googletest") );
-
- bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink13 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink13->SetToolTip( _("http://www.boost.org") );
-
- bSizer172->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink10 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("libssh2"), wxT("http://www.libssh2.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink10->SetToolTip( _("http://www.libssh2.org") );
-
- bSizer172->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink18 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("NSIS"), wxT("http://nsis.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink18->SetToolTip( _("http://nsis.sourceforge.net") );
-
- bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink9 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Inno Setup"), wxT("http://www.jrsoftware.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink9->SetToolTip( _("http://www.jrsoftware.org") );
-
- bSizer172->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer187->Add( bSizer172, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer181->Add( bSizer187, 0, wxALL|wxEXPAND, 5 );
-
- m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
-
- m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
-
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText83 = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- m_staticText83->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer178->Add( m_staticText83, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Donate with PayPal"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
- m_buttonDonate->SetToolTip( _("http://www.freefilesync.org/donate.php") );
-
- bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panel39->SetSizer( bSizer184 );
- m_panel39->Layout();
- bSizer184->Fit( m_panel39 );
- bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
-
-
- m_panelDonate->SetSizer( bSizer183 );
- m_panelDonate->Layout();
- bSizer183->Fit( m_panelDonate );
- bSizer181->Add( m_panelDonate, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText94->Wrap( -1 );
- bSizer186->Add( m_staticText94, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapHomepage = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapHomepage->SetToolTip( _("Homepage") );
-
- bSizer166->Add( m_bitmapHomepage, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_hyperlink1 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("FreeFileSync.org"), wxT("http://www.freefilesync.org/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink1->SetToolTip( _("http://www.freefilesync.org") );
-
- bSizer166->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapEmail = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapEmail->SetToolTip( _("Email") );
-
- bSizer166->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_hyperlink2 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zenju@gmx.de"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink2->SetToolTip( _("mailto:zenju@gmx.de") );
-
- bSizer166->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer186->Add( bSizer166, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
-
- m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer181->Add( m_staticline34, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText93 = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- bSizer185->Add( m_staticText93, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer1671;
- bSizer1671 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGpl = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer1671->Add( m_bitmapGpl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink5 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("http://www.gnu.org/licenses/gpl-3.0"), wxT("http://www.gnu.org/licenses/gpl-3.0"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink5->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer1671->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer185->Add( bSizer1671, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer185, 0, wxALL|wxEXPAND, 5 );
-
-
- bSizer174->Add( bSizer181, 0, 0, 5 );
-
- m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText54 = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText54->Wrap( 200 );
- m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer177->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- bSizer177->Add( 0, 5, 0, 0, 5 );
-
- m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxVSCROLL );
- m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
- m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_scrolledWindowTranslators->SetMinSize( wxSize( 220,-1 ) );
-
- fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
- fgSizerTranslators->SetFlexibleDirection( wxBOTH );
- fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
- m_scrolledWindowTranslators->Layout();
- fgSizerTranslators->Fit( m_scrolledWindowTranslators );
- bSizer177->Add( m_scrolledWindowTranslators, 1, wxLEFT|wxEXPAND, 5 );
-
-
- bSizer174->Add( bSizer177, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
-
-
- bSizer162->Add( bSizer174, 0, 0, 5 );
-
-
- m_panel41->SetSizer( bSizer162 );
- m_panel41->Layout();
- bSizer162->Fit( m_panel41 );
- bSizer31->Add( m_panel41, 0, wxEXPAND, 5 );
-
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer31 );
- this->Layout();
- bSizer31->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
- m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnDonate ), NULL, this );
- m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer31;
+ bSizer31 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer162->Add( m_bitmapLogo, 0, 0, 5 );
+
+ m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer162->Add( m_staticline341, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer187;
+ bSizer187 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText96 = new wxStaticText( m_panel41, wxID_ANY, _("Source code written in C++ using:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizer187->Add( m_staticText96, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink11 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("MS Visual C++"), wxT("http://www.visualstudio.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink11->SetToolTip( _("http://www.visualstudio.com") );
+
+ bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink7 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink7->SetToolTip( _("http://www.wxwidgets.org") );
+
+ bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink14 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink14->SetToolTip( _("http://wxformbuilder.org") );
+
+ bSizer171->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink16 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink16->SetToolTip( _("http://astyle.sourceforge.net") );
+
+ bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer187->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink15 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zen::Xml"), wxT("http://zenxml.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink15->SetToolTip( _("http://zenxml.sourceforge.net") );
+
+ bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink12 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink12->SetToolTip( _("http://code.google.com/p/googletest") );
+
+ bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink13 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink13->SetToolTip( _("http://www.boost.org") );
+
+ bSizer172->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink10 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("libssh2"), wxT("http://www.libssh2.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink10->SetToolTip( _("http://www.libssh2.org") );
+
+ bSizer172->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink18 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("NSIS"), wxT("http://nsis.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink18->SetToolTip( _("http://nsis.sourceforge.net") );
+
+ bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink9 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Inno Setup"), wxT("http://www.jrsoftware.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink9->SetToolTip( _("http://www.jrsoftware.org") );
+
+ bSizer172->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer187->Add( bSizer172, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer181->Add( bSizer187, 0, wxALL|wxEXPAND, 5 );
+
+ m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
+
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText83 = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ m_staticText83->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer178->Add( m_staticText83, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Donate with PayPal"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+ m_buttonDonate->SetToolTip( _("http://www.freefilesync.org/donate.php") );
+
+ bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panel39->SetSizer( bSizer184 );
+ m_panel39->Layout();
+ bSizer184->Fit( m_panel39 );
+ bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
+
+
+ m_panelDonate->SetSizer( bSizer183 );
+ m_panelDonate->Layout();
+ bSizer183->Fit( m_panelDonate );
+ bSizer181->Add( m_panelDonate, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText94->Wrap( -1 );
+ bSizer186->Add( m_staticText94, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapHomepage = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapHomepage->SetToolTip( _("Homepage") );
+
+ bSizer166->Add( m_bitmapHomepage, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_hyperlink1 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("FreeFileSync.org"), wxT("http://www.freefilesync.org/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink1->SetToolTip( _("http://www.freefilesync.org") );
+
+ bSizer166->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapEmail = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapEmail->SetToolTip( _("Email") );
+
+ bSizer166->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_hyperlink2 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zenju@freefilesync.org"), wxT("mailto:zenju@freefilesync.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink2->SetToolTip( _("mailto:zenju@freefilesync.org") );
+
+ bSizer166->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer186->Add( bSizer166, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer181->Add( m_staticline34, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText93 = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ bSizer185->Add( m_staticText93, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer1671;
+ bSizer1671 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGpl = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer1671->Add( m_bitmapGpl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink5 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("http://www.gnu.org/licenses/gpl-3.0"), wxT("http://www.gnu.org/licenses/gpl-3.0"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink5->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer1671->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer185->Add( bSizer1671, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer185, 0, wxALL|wxEXPAND, 5 );
+
+
+ bSizer174->Add( bSizer181, 0, 0, 5 );
+
+ m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText54 = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText54->Wrap( 200 );
+ m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer177->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ bSizer177->Add( 0, 5, 0, 0, 5 );
+
+ m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxVSCROLL );
+ m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
+ m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_scrolledWindowTranslators->SetMinSize( wxSize( 220,-1 ) );
+
+ fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
+ fgSizerTranslators->SetFlexibleDirection( wxBOTH );
+ fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
+ m_scrolledWindowTranslators->Layout();
+ fgSizerTranslators->Fit( m_scrolledWindowTranslators );
+ bSizer177->Add( m_scrolledWindowTranslators, 1, wxLEFT|wxEXPAND, 5 );
+
+
+ bSizer174->Add( bSizer177, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
+
+
+ bSizer162->Add( bSizer174, 0, 0, 5 );
+
+
+ m_panel41->SetSizer( bSizer162 );
+ m_panel41->Layout();
+ bSizer162->Fit( m_panel41 );
+ bSizer31->Add( m_panel41, 0, wxEXPAND, 5 );
+
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonClose->SetDefault();
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer31 );
+ this->Layout();
+ bSizer31->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
+ m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnDonate ), NULL, this );
+ m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
}
AboutDlgGenerated::~AboutDlgGenerated()
diff --git a/FreeFileSync/Source/ui/gui_generated.h b/FreeFileSync/Source/ui/gui_generated.h
index dcc750fc..9cbd581f 100644
--- a/FreeFileSync/Source/ui/gui_generated.h
+++ b/FreeFileSync/Source/ui/gui_generated.h
@@ -14,10 +14,10 @@
class FolderHistoryBox;
class OnCompletionBox;
class ToggleButton;
-namespace zen { class BitmapTextButton; }
-namespace zen { class Graph2D; }
-namespace zen { class Grid; }
-namespace zen { class TripleSplitter; }
+namespace zen{ class BitmapTextButton; }
+namespace zen{ class Graph2D; }
+namespace zen{ class Grid; }
+namespace zen{ class TripleSplitter; }
#include <wx/string.h>
#include <wx/bitmap.h>
@@ -61,945 +61,945 @@ namespace zen { class TripleSplitter; }
///////////////////////////////////////////////////////////////////////////////
/// Class MainDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class MainDialogGenerated : public wxFrame
+class MainDialogGenerated : public wxFrame
{
-private:
-
-protected:
- wxMenuBar* m_menubar1;
- wxMenu* m_menuFile;
- wxMenuItem* m_menuItemNew;
- wxMenuItem* m_menuItemLoad;
- wxMenuItem* m_menuItemSave;
- wxMenuItem* m_menuItemSaveAs;
- wxMenuItem* m_menuItemSaveAsBatch;
- wxMenu* m_menu4;
- wxMenuItem* m_menuItemCompare;
- wxMenuItem* m_menuItemCompSettings;
- wxMenuItem* m_menuItemFilter;
- wxMenuItem* m_menuItemSyncSettings;
- wxMenuItem* m_menuItemSynchronize;
- wxMenu* m_menuTools;
- wxMenuItem* m_menuItemOptions;
- wxMenu* m_menuLanguages;
- wxMenu* m_menuHelp;
- wxMenuItem* m_menuItemHelp;
- wxMenu* m_menuCheckVersion;
- wxMenuItem* m_menuItemCheckVersionNow;
- wxMenuItem* m_menuItemCheckVersionAuto;
- wxMenuItem* m_menuItemAbout;
- wxBoxSizer* bSizerPanelHolder;
- wxPanel* m_panelTopButtons;
- wxBoxSizer* bSizerTopButtons;
- zen::BitmapTextButton* m_buttonCancel;
- zen::BitmapTextButton* m_buttonCompare;
- wxBitmapButton* m_bpButtonCmpConfig;
- wxBitmapButton* m_bpButtonCmpContext;
- wxBitmapButton* m_bpButtonFilter;
- wxBitmapButton* m_bpButtonFilterContext;
- wxBitmapButton* m_bpButtonSyncConfig;
- wxBitmapButton* m_bpButtonSyncContext;
- zen::BitmapTextButton* m_buttonSync;
- wxPanel* m_panelDirectoryPairs;
- wxStaticText* m_staticTextResolvedPathL;
- wxBitmapButton* m_bpButtonAddPair;
- wxButton* m_buttonSelectFolderLeft;
- wxPanel* m_panelTopCenter;
- wxBitmapButton* m_bpButtonSwapSides;
- wxStaticText* m_staticTextResolvedPathR;
- wxButton* m_buttonSelectFolderRight;
- wxScrolledWindow* m_scrolledWindowFolderPairs;
- wxBoxSizer* bSizerAddFolderPairs;
- zen::Grid* m_gridNavi;
- wxPanel* m_panelCenter;
- zen::TripleSplitter* m_splitterMain;
- zen::Grid* m_gridMainL;
- zen::Grid* m_gridMainC;
- zen::Grid* m_gridMainR;
- wxPanel* m_panelStatusBar;
- wxBoxSizer* bSizerFileStatus;
- wxBoxSizer* bSizerStatusLeft;
- wxBoxSizer* bSizerStatusLeftDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryLeft;
- wxStaticText* m_staticTextStatusLeftDirs;
- wxBoxSizer* bSizerStatusLeftFiles;
- wxStaticBitmap* m_bitmapSmallFileLeft;
- wxStaticText* m_staticTextStatusLeftFiles;
- wxStaticText* m_staticTextStatusLeftBytes;
- wxStaticLine* m_staticline9;
- wxStaticText* m_staticTextStatusCenter;
- wxBoxSizer* bSizerStatusRight;
- wxStaticLine* m_staticline10;
- wxBoxSizer* bSizerStatusRightDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryRight;
- wxStaticText* m_staticTextStatusRightDirs;
- wxBoxSizer* bSizerStatusRightFiles;
- wxStaticBitmap* m_bitmapSmallFileRight;
- wxStaticText* m_staticTextStatusRightFiles;
- wxStaticText* m_staticTextStatusRightBytes;
- wxStaticText* m_staticTextFullStatus;
- wxPanel* m_panelSearch;
- wxBitmapButton* m_bpButtonHideSearch;
- wxStaticText* m_staticText101;
- wxTextCtrl* m_textCtrlSearchTxt;
- wxCheckBox* m_checkBoxMatchCase;
- wxPanel* m_panelConfig;
- wxBoxSizer* bSizerConfig;
- wxBitmapButton* m_bpButtonNew;
- wxStaticText* m_staticText951;
- wxBitmapButton* m_bpButtonOpen;
- wxStaticText* m_staticText95;
- wxBitmapButton* m_bpButtonSave;
- wxStaticText* m_staticText961;
- wxBitmapButton* m_bpButtonSaveAs;
- wxBitmapButton* m_bpButtonSaveAsBatch;
- wxStaticText* m_staticText97;
- wxListBox* m_listBoxHistory;
- wxPanel* m_panelViewFilter;
- wxBoxSizer* bSizerViewFilter;
- wxStaticText* m_staticTextViewType;
- ToggleButton* m_bpButtonViewTypeSyncAction;
- ToggleButton* m_bpButtonShowExcluded;
- wxStaticText* m_staticTextSelectView;
- ToggleButton* m_bpButtonShowDeleteLeft;
- ToggleButton* m_bpButtonShowUpdateLeft;
- ToggleButton* m_bpButtonShowCreateLeft;
- ToggleButton* m_bpButtonShowLeftOnly;
- ToggleButton* m_bpButtonShowLeftNewer;
- ToggleButton* m_bpButtonShowEqual;
- ToggleButton* m_bpButtonShowDoNothing;
- ToggleButton* m_bpButtonShowDifferent;
- ToggleButton* m_bpButtonShowRightNewer;
- ToggleButton* m_bpButtonShowRightOnly;
- ToggleButton* m_bpButtonShowCreateRight;
- ToggleButton* m_bpButtonShowUpdateRight;
- ToggleButton* m_bpButtonShowDeleteRight;
- ToggleButton* m_bpButtonShowConflict;
- wxStaticText* m_staticText96;
- wxPanel* m_panelStatistics;
- wxBoxSizer* bSizer1801;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticText* m_staticTextData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticText* m_staticTextCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteRight;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnConfigNew( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigLoad( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigSave( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompare( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuOptions( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompSettingsContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnGlobalFilterContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncSettingsContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLoadFromHistoryDoubleClick( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCfgHistoryRightClick( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnToggleViewType( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnViewButtonRightClick( wxMouseEvent& event ) { event.Skip(); }
-
-
-public:
- wxPanel* m_panelTopLeft;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelTopRight;
- FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
- wxBoxSizer* bSizerStatistics;
- wxBoxSizer* bSizerData;
-
- MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 900,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
-
- ~MainDialogGenerated();
-
+ private:
+
+ protected:
+ wxMenuBar* m_menubar1;
+ wxMenu* m_menuFile;
+ wxMenuItem* m_menuItemNew;
+ wxMenuItem* m_menuItemLoad;
+ wxMenuItem* m_menuItemSave;
+ wxMenuItem* m_menuItemSaveAs;
+ wxMenuItem* m_menuItemSaveAsBatch;
+ wxMenu* m_menu4;
+ wxMenuItem* m_menuItemCompare;
+ wxMenuItem* m_menuItemCompSettings;
+ wxMenuItem* m_menuItemFilter;
+ wxMenuItem* m_menuItemSyncSettings;
+ wxMenuItem* m_menuItemSynchronize;
+ wxMenu* m_menuTools;
+ wxMenuItem* m_menuItemOptions;
+ wxMenu* m_menuLanguages;
+ wxMenu* m_menuHelp;
+ wxMenuItem* m_menuItemHelp;
+ wxMenu* m_menuCheckVersion;
+ wxMenuItem* m_menuItemCheckVersionNow;
+ wxMenuItem* m_menuItemCheckVersionAuto;
+ wxMenuItem* m_menuItemAbout;
+ wxBoxSizer* bSizerPanelHolder;
+ wxPanel* m_panelTopButtons;
+ wxBoxSizer* bSizerTopButtons;
+ zen::BitmapTextButton* m_buttonCancel;
+ zen::BitmapTextButton* m_buttonCompare;
+ wxBitmapButton* m_bpButtonCmpConfig;
+ wxBitmapButton* m_bpButtonCmpContext;
+ wxBitmapButton* m_bpButtonFilter;
+ wxBitmapButton* m_bpButtonFilterContext;
+ wxBitmapButton* m_bpButtonSyncConfig;
+ wxBitmapButton* m_bpButtonSyncContext;
+ zen::BitmapTextButton* m_buttonSync;
+ wxPanel* m_panelDirectoryPairs;
+ wxStaticText* m_staticTextResolvedPathL;
+ wxBitmapButton* m_bpButtonAddPair;
+ wxButton* m_buttonSelectFolderLeft;
+ wxPanel* m_panelTopCenter;
+ wxBitmapButton* m_bpButtonSwapSides;
+ wxStaticText* m_staticTextResolvedPathR;
+ wxButton* m_buttonSelectFolderRight;
+ wxScrolledWindow* m_scrolledWindowFolderPairs;
+ wxBoxSizer* bSizerAddFolderPairs;
+ zen::Grid* m_gridNavi;
+ wxPanel* m_panelCenter;
+ zen::TripleSplitter* m_splitterMain;
+ zen::Grid* m_gridMainL;
+ zen::Grid* m_gridMainC;
+ zen::Grid* m_gridMainR;
+ wxPanel* m_panelStatusBar;
+ wxBoxSizer* bSizerFileStatus;
+ wxBoxSizer* bSizerStatusLeft;
+ wxBoxSizer* bSizerStatusLeftDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryLeft;
+ wxStaticText* m_staticTextStatusLeftDirs;
+ wxBoxSizer* bSizerStatusLeftFiles;
+ wxStaticBitmap* m_bitmapSmallFileLeft;
+ wxStaticText* m_staticTextStatusLeftFiles;
+ wxStaticText* m_staticTextStatusLeftBytes;
+ wxStaticLine* m_staticline9;
+ wxStaticText* m_staticTextStatusCenter;
+ wxBoxSizer* bSizerStatusRight;
+ wxStaticLine* m_staticline10;
+ wxBoxSizer* bSizerStatusRightDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryRight;
+ wxStaticText* m_staticTextStatusRightDirs;
+ wxBoxSizer* bSizerStatusRightFiles;
+ wxStaticBitmap* m_bitmapSmallFileRight;
+ wxStaticText* m_staticTextStatusRightFiles;
+ wxStaticText* m_staticTextStatusRightBytes;
+ wxStaticText* m_staticTextFullStatus;
+ wxPanel* m_panelSearch;
+ wxBitmapButton* m_bpButtonHideSearch;
+ wxStaticText* m_staticText101;
+ wxTextCtrl* m_textCtrlSearchTxt;
+ wxCheckBox* m_checkBoxMatchCase;
+ wxPanel* m_panelConfig;
+ wxBoxSizer* bSizerConfig;
+ wxBitmapButton* m_bpButtonNew;
+ wxStaticText* m_staticText951;
+ wxBitmapButton* m_bpButtonOpen;
+ wxStaticText* m_staticText95;
+ wxBitmapButton* m_bpButtonSave;
+ wxStaticText* m_staticText961;
+ wxBitmapButton* m_bpButtonSaveAs;
+ wxBitmapButton* m_bpButtonSaveAsBatch;
+ wxStaticText* m_staticText97;
+ wxListBox* m_listBoxHistory;
+ wxPanel* m_panelViewFilter;
+ wxBoxSizer* bSizerViewFilter;
+ wxStaticText* m_staticTextViewType;
+ ToggleButton* m_bpButtonViewTypeSyncAction;
+ ToggleButton* m_bpButtonShowExcluded;
+ wxStaticText* m_staticTextSelectView;
+ ToggleButton* m_bpButtonShowDeleteLeft;
+ ToggleButton* m_bpButtonShowUpdateLeft;
+ ToggleButton* m_bpButtonShowCreateLeft;
+ ToggleButton* m_bpButtonShowLeftOnly;
+ ToggleButton* m_bpButtonShowLeftNewer;
+ ToggleButton* m_bpButtonShowEqual;
+ ToggleButton* m_bpButtonShowDoNothing;
+ ToggleButton* m_bpButtonShowDifferent;
+ ToggleButton* m_bpButtonShowRightNewer;
+ ToggleButton* m_bpButtonShowRightOnly;
+ ToggleButton* m_bpButtonShowCreateRight;
+ ToggleButton* m_bpButtonShowUpdateRight;
+ ToggleButton* m_bpButtonShowDeleteRight;
+ ToggleButton* m_bpButtonShowConflict;
+ wxStaticText* m_staticText96;
+ wxPanel* m_panelStatistics;
+ wxBoxSizer* bSizer1801;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticText* m_staticTextData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteRight;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnConfigNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigLoad( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigSave( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompare( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuOptions( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompSettingsContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnGlobalFilterContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettingsContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLoadFromHistoryDoubleClick( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCfgHistoryRightClick( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnToggleViewType( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnViewButtonRightClick( wxMouseEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxPanel* m_panelTopLeft;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelTopRight;
+ FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+ wxBoxSizer* bSizerStatistics;
+ wxBoxSizer* bSizerData;
+
+ MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 900,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+ ~MainDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class ConfigDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class ConfigDlgGenerated : public wxDialog
+class ConfigDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticText* m_staticTextFolderPairLabel;
- wxListBox* m_listBoxFolderPair;
- wxNotebook* m_notebook;
- wxPanel* m_panelCompSettingsHolder;
- wxBoxSizer* bSizerHeaderCompSettings;
- wxStaticText* m_staticTextMainCompSettings;
- wxCheckBox* m_checkBoxUseLocalCmpOptions;
- wxStaticLine* m_staticlineCompHeader;
- wxPanel* m_panelComparisonSettings;
- wxStaticText* m_staticText91;
- wxStaticBitmap* m_bitmapByTimeSize;
- wxToggleButton* m_toggleBtnByTimeSize;
- wxStaticBitmap* m_bitmapByContent;
- wxToggleButton* m_toggleBtnByContent;
- wxStaticBitmap* m_bitmapBySize;
- wxToggleButton* m_toggleBtnBySize;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlCompVarDescription;
- wxStaticLine* m_staticline33;
- wxCheckBox* m_checkBoxSymlinksInclude;
- wxRadioButton* m_radioBtnSymlinksFollow;
- wxRadioButton* m_radioBtnSymlinksDirect;
- wxHyperlinkCtrl* m_hyperlink24;
- wxStaticLine* m_staticline44;
- wxStaticText* m_staticText112;
- wxTextCtrl* m_textCtrlTimeShift;
- wxStaticText* m_staticText1381;
- wxStaticText* m_staticText13811;
- wxHyperlinkCtrl* m_hyperlink241;
- wxStaticLine* m_staticline441;
- wxStaticLine* m_staticline331;
- wxPanel* m_panelFilterSettingsHolder;
- wxBoxSizer* bSizerHeaderFilterSettings;
- wxStaticText* m_staticTextMainFilterSettings;
- wxStaticText* m_staticTextLocalFilterSettings;
- wxStaticLine* m_staticlineFilterHeader;
- wxPanel* m_panelFilterSettings;
- wxStaticBitmap* m_bitmapInclude;
- wxStaticText* m_staticText78;
- wxTextCtrl* m_textCtrlInclude;
- wxStaticLine* m_staticline22;
- wxStaticBitmap* m_bitmapExclude;
- wxStaticText* m_staticText77;
- wxHyperlinkCtrl* m_hyperlink171;
- wxTextCtrl* m_textCtrlExclude;
- wxStaticLine* m_staticline24;
- wxStaticBitmap* m_bitmapFilterDate;
- wxStaticText* m_staticText79;
- wxSpinCtrl* m_spinCtrlTimespan;
- wxChoice* m_choiceUnitTimespan;
- wxStaticLine* m_staticline23;
- wxStaticBitmap* m_bitmapFilterSize;
- wxStaticText* m_staticText80;
- wxStaticText* m_staticText101;
- wxSpinCtrl* m_spinCtrlMinSize;
- wxChoice* m_choiceUnitMinSize;
- wxStaticText* m_staticText102;
- wxSpinCtrl* m_spinCtrlMaxSize;
- wxChoice* m_choiceUnitMaxSize;
- wxStaticLine* m_staticline62;
- wxStaticText* m_staticText44;
- wxStaticLine* m_staticline46;
- wxButton* m_buttonClear;
- wxPanel* m_panelSyncSettingsHolder;
- wxBoxSizer* bSizerHeaderSyncSettings;
- wxStaticText* m_staticTextMainSyncSettings;
- wxCheckBox* m_checkBoxUseLocalSyncOptions;
- wxStaticLine* m_staticlineSyncHeader;
- wxPanel* m_panelSyncSettings;
- wxStaticText* m_staticText86;
- wxToggleButton* m_toggleBtnTwoWay;
- wxToggleButton* m_toggleBtnMirror;
- wxToggleButton* m_toggleBtnUpdate;
- wxToggleButton* m_toggleBtnCustom;
- wxStaticLine* m_staticline53;
- wxBoxSizer* bSizerSyncConfig;
- wxStaticText* m_staticText119;
- wxStaticText* m_staticText120;
- wxFlexGridSizer* fgSizerSyncDirections;
- wxStaticBitmap* m_bitmapLeftOnly;
- wxStaticBitmap* m_bitmapLeftNewer;
- wxStaticBitmap* m_bitmapDifferent;
- wxStaticBitmap* m_bitmapConflict;
- wxStaticBitmap* m_bitmapRightNewer;
- wxStaticBitmap* m_bitmapRightOnly;
- wxBitmapButton* m_bpButtonLeftOnly;
- wxBitmapButton* m_bpButtonLeftNewer;
- wxBitmapButton* m_bpButtonDifferent;
- wxBitmapButton* m_bpButtonConflict;
- wxBitmapButton* m_bpButtonRightNewer;
- wxBitmapButton* m_bpButtonRightOnly;
- wxStaticBitmap* m_bitmapDatabase;
- wxStaticLine* m_staticline431;
- wxCheckBox* m_checkBoxDetectMove;
- wxHyperlinkCtrl* m_hyperlink242;
- wxStaticLine* m_staticline531;
- wxTextCtrl* m_textCtrlSyncVarDescription;
- wxStaticLine* m_staticline54;
- wxBoxSizer* bSizerDelHandling;
- wxStaticText* m_staticText87;
- wxBitmapButton* m_bpButtonDeletionType;
- wxRadioButton* m_radioBtnRecycler;
- wxRadioButton* m_radioBtnPermanent;
- wxRadioButton* m_radioBtnVersioning;
- wxPanel* m_panelVersioning;
- FolderHistoryBox* m_versioningFolderPath;
- wxButton* m_buttonSelectVersioningFolder;
- wxStaticText* m_staticText93;
- wxHyperlinkCtrl* m_hyperlink17;
- wxBoxSizer* bSizer192;
- wxChoice* m_choiceVersioningStyle;
- wxStaticText* m_staticTextNamingCvtPart1;
- wxStaticText* m_staticTextNamingCvtPart2Bold;
- wxStaticText* m_staticTextNamingCvtPart3;
- wxStaticLine* m_staticline582;
- wxBoxSizer* bSizerMiscConfig;
- wxStaticText* m_staticText88;
- wxRadioButton* m_radioBtnPopupOnErrors;
- wxRadioButton* m_radioBtnIgnoreErrors;
- wxStaticLine* m_staticline57;
- wxBoxSizer* bSizerOnCompletion;
- wxStaticText* m_staticText89;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompByTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnCompByTimeSize( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompByContentDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnCompByContent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompBySizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnCompBySize( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpComparisonSettings( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void onlTimeShiftKeyDown( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnHelpTimeShift( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnFilterReset( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncMirror( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncCustom( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpDetectMovedFiles( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnToggleDeletionType( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpVersioning( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnChangeSyncOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- wxBitmapButton* m_bpButtonSelectAltFolder;
-
- ConfigDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~ConfigDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticText* m_staticTextFolderPairLabel;
+ wxListBox* m_listBoxFolderPair;
+ wxNotebook* m_notebook;
+ wxPanel* m_panelCompSettingsHolder;
+ wxBoxSizer* bSizerHeaderCompSettings;
+ wxStaticText* m_staticTextMainCompSettings;
+ wxCheckBox* m_checkBoxUseLocalCmpOptions;
+ wxStaticLine* m_staticlineCompHeader;
+ wxPanel* m_panelComparisonSettings;
+ wxStaticText* m_staticText91;
+ wxStaticBitmap* m_bitmapByTimeSize;
+ wxToggleButton* m_toggleBtnByTimeSize;
+ wxStaticBitmap* m_bitmapByContent;
+ wxToggleButton* m_toggleBtnByContent;
+ wxStaticBitmap* m_bitmapBySize;
+ wxToggleButton* m_toggleBtnBySize;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlCompVarDescription;
+ wxStaticLine* m_staticline33;
+ wxCheckBox* m_checkBoxSymlinksInclude;
+ wxRadioButton* m_radioBtnSymlinksFollow;
+ wxRadioButton* m_radioBtnSymlinksDirect;
+ wxHyperlinkCtrl* m_hyperlink24;
+ wxStaticLine* m_staticline44;
+ wxStaticText* m_staticText112;
+ wxTextCtrl* m_textCtrlTimeShift;
+ wxStaticText* m_staticText1381;
+ wxStaticText* m_staticText13811;
+ wxHyperlinkCtrl* m_hyperlink241;
+ wxStaticLine* m_staticline441;
+ wxStaticLine* m_staticline331;
+ wxPanel* m_panelFilterSettingsHolder;
+ wxBoxSizer* bSizerHeaderFilterSettings;
+ wxStaticText* m_staticTextMainFilterSettings;
+ wxStaticText* m_staticTextLocalFilterSettings;
+ wxStaticLine* m_staticlineFilterHeader;
+ wxPanel* m_panelFilterSettings;
+ wxStaticBitmap* m_bitmapInclude;
+ wxStaticText* m_staticText78;
+ wxTextCtrl* m_textCtrlInclude;
+ wxStaticLine* m_staticline22;
+ wxStaticBitmap* m_bitmapExclude;
+ wxStaticText* m_staticText77;
+ wxHyperlinkCtrl* m_hyperlink171;
+ wxTextCtrl* m_textCtrlExclude;
+ wxStaticLine* m_staticline24;
+ wxStaticBitmap* m_bitmapFilterDate;
+ wxStaticText* m_staticText79;
+ wxSpinCtrl* m_spinCtrlTimespan;
+ wxChoice* m_choiceUnitTimespan;
+ wxStaticLine* m_staticline23;
+ wxStaticBitmap* m_bitmapFilterSize;
+ wxStaticText* m_staticText80;
+ wxStaticText* m_staticText101;
+ wxSpinCtrl* m_spinCtrlMinSize;
+ wxChoice* m_choiceUnitMinSize;
+ wxStaticText* m_staticText102;
+ wxSpinCtrl* m_spinCtrlMaxSize;
+ wxChoice* m_choiceUnitMaxSize;
+ wxStaticLine* m_staticline62;
+ wxStaticText* m_staticText44;
+ wxStaticLine* m_staticline46;
+ wxButton* m_buttonClear;
+ wxPanel* m_panelSyncSettingsHolder;
+ wxBoxSizer* bSizerHeaderSyncSettings;
+ wxStaticText* m_staticTextMainSyncSettings;
+ wxCheckBox* m_checkBoxUseLocalSyncOptions;
+ wxStaticLine* m_staticlineSyncHeader;
+ wxPanel* m_panelSyncSettings;
+ wxStaticText* m_staticText86;
+ wxToggleButton* m_toggleBtnTwoWay;
+ wxToggleButton* m_toggleBtnMirror;
+ wxToggleButton* m_toggleBtnUpdate;
+ wxToggleButton* m_toggleBtnCustom;
+ wxStaticLine* m_staticline53;
+ wxBoxSizer* bSizerSyncConfig;
+ wxStaticText* m_staticText119;
+ wxStaticText* m_staticText120;
+ wxFlexGridSizer* fgSizerSyncDirections;
+ wxStaticBitmap* m_bitmapLeftOnly;
+ wxStaticBitmap* m_bitmapLeftNewer;
+ wxStaticBitmap* m_bitmapDifferent;
+ wxStaticBitmap* m_bitmapConflict;
+ wxStaticBitmap* m_bitmapRightNewer;
+ wxStaticBitmap* m_bitmapRightOnly;
+ wxBitmapButton* m_bpButtonLeftOnly;
+ wxBitmapButton* m_bpButtonLeftNewer;
+ wxBitmapButton* m_bpButtonDifferent;
+ wxBitmapButton* m_bpButtonConflict;
+ wxBitmapButton* m_bpButtonRightNewer;
+ wxBitmapButton* m_bpButtonRightOnly;
+ wxStaticBitmap* m_bitmapDatabase;
+ wxStaticLine* m_staticline431;
+ wxCheckBox* m_checkBoxDetectMove;
+ wxHyperlinkCtrl* m_hyperlink242;
+ wxStaticLine* m_staticline531;
+ wxTextCtrl* m_textCtrlSyncVarDescription;
+ wxStaticLine* m_staticline54;
+ wxBoxSizer* bSizerDelHandling;
+ wxStaticText* m_staticText87;
+ wxBitmapButton* m_bpButtonDeletionType;
+ wxRadioButton* m_radioBtnRecycler;
+ wxRadioButton* m_radioBtnPermanent;
+ wxRadioButton* m_radioBtnVersioning;
+ wxPanel* m_panelVersioning;
+ FolderHistoryBox* m_versioningFolderPath;
+ wxButton* m_buttonSelectVersioningFolder;
+ wxStaticText* m_staticText93;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxBoxSizer* bSizer192;
+ wxChoice* m_choiceVersioningStyle;
+ wxStaticText* m_staticTextNamingCvtPart1;
+ wxStaticText* m_staticTextNamingCvtPart2Bold;
+ wxStaticText* m_staticTextNamingCvtPart3;
+ wxStaticLine* m_staticline582;
+ wxBoxSizer* bSizerMiscConfig;
+ wxStaticText* m_staticText88;
+ wxRadioButton* m_radioBtnPopupOnErrors;
+ wxRadioButton* m_radioBtnIgnoreErrors;
+ wxStaticLine* m_staticline57;
+ wxBoxSizer* bSizerOnCompletion;
+ wxStaticText* m_staticText89;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompByTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompByTimeSize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompByContentDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompByContent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompBySizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompBySize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpComparisonSettings( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void onlTimeShiftKeyDown( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnHelpTimeShift( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnFilterReset( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncMirror( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncCustom( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpDetectMovedFiles( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnToggleDeletionType( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpVersioning( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnChangeSyncOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxBitmapButton* m_bpButtonSelectAltFolder;
+
+ ConfigDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~ConfigDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class FolderPairPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class FolderPairPanelGenerated : public wxPanel
+class FolderPairPanelGenerated : public wxPanel
{
-private:
-
-protected:
- wxButton* m_buttonSelectFolderLeft;
- wxButton* m_buttonSelectFolderRight;
-
-public:
- wxPanel* m_panelLeft;
- wxBitmapButton* m_bpButtonFolderPairOptions;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxPanel* m_panel20;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelRight;
- FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
-
- FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
- ~FolderPairPanelGenerated();
-
+ private:
+
+ protected:
+ wxButton* m_buttonSelectFolderLeft;
+ wxButton* m_buttonSelectFolderRight;
+
+ public:
+ wxPanel* m_panelLeft;
+ wxBitmapButton* m_bpButtonFolderPairOptions;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxPanel* m_panel20;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelRight;
+ FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+
+ FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
+ ~FolderPairPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SftpSetupDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SftpSetupDlgGenerated : public wxDialog
+class SftpSetupDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSftp;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panel41;
- wxStaticText* m_staticText12311;
- wxTextCtrl* m_textCtrlServer;
- wxStaticText* m_staticText1233;
- wxTextCtrl* m_textCtrlPort;
- wxStaticText* m_staticText1381;
- wxStaticText* m_staticText1382;
- wxStaticText* m_staticText138;
- wxStaticText* m_staticText123;
- wxTextCtrl* m_textCtrlUserName;
- wxStaticText* m_staticText1231;
- wxTextCtrl* m_textCtrlPasswordVisible;
- wxTextCtrl* m_textCtrlPasswordHidden;
- wxCheckBox* m_checkBoxShowPassword;
- wxStaticText* m_staticText1232;
- wxTextCtrl* m_textCtrlServerPath;
- wxButton* m_buttonSelectFolder;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnBrowseSftpFolder( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~SftpSetupDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSftp;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panel41;
+ wxStaticText* m_staticText12311;
+ wxTextCtrl* m_textCtrlServer;
+ wxStaticText* m_staticText1233;
+ wxTextCtrl* m_textCtrlPort;
+ wxStaticText* m_staticText1381;
+ wxStaticText* m_staticText1382;
+ wxStaticText* m_staticText138;
+ wxStaticText* m_staticText123;
+ wxTextCtrl* m_textCtrlUserName;
+ wxStaticText* m_staticText1231;
+ wxTextCtrl* m_textCtrlPasswordVisible;
+ wxTextCtrl* m_textCtrlPasswordHidden;
+ wxCheckBox* m_checkBoxShowPassword;
+ wxStaticText* m_staticText1232;
+ wxTextCtrl* m_textCtrlServerPath;
+ wxButton* m_buttonSelectFolder;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnBrowseSftpFolder( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~SftpSetupDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SftpFolderPickerGenerated
///////////////////////////////////////////////////////////////////////////////
-class SftpFolderPickerGenerated : public wxDialog
+class SftpFolderPickerGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSftp;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panel41;
- wxTreeCtrl* m_treeCtrlFileSystem;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnExpandNode( wxTreeEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~SftpFolderPickerGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSftp;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panel41;
+ wxTreeCtrl* m_treeCtrlFileSystem;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnExpandNode( wxTreeEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~SftpFolderPickerGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncConfirmationDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncConfirmationDlgGenerated : public wxDialog
+class SyncConfirmationDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSync;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panelStatistics;
- wxStaticLine* m_staticline38;
- wxStaticText* m_staticText84;
- wxStaticText* m_staticTextVariant;
- wxStaticLine* m_staticline14;
- wxStaticText* m_staticText83;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticText* m_staticTextData;
- wxStaticText* m_staticTextCreateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticText* m_staticTextDeleteRight;
- wxStaticLine* m_staticline381;
- wxStaticLine* m_staticline12;
- wxCheckBox* m_checkBoxDontShowAgain;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonStartSync;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FreeFileSync"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~SyncConfirmationDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSync;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panelStatistics;
+ wxStaticLine* m_staticline38;
+ wxStaticText* m_staticText84;
+ wxStaticText* m_staticTextVariant;
+ wxStaticLine* m_staticline14;
+ wxStaticText* m_staticText83;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticText* m_staticTextData;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticText* m_staticTextDeleteRight;
+ wxStaticLine* m_staticline381;
+ wxStaticLine* m_staticline12;
+ wxCheckBox* m_checkBoxDontShowAgain;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonStartSync;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FreeFileSync"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~SyncConfirmationDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CompareProgressDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class CompareProgressDlgGenerated : public wxPanel
+class CompareProgressDlgGenerated : public wxPanel
{
-private:
-
-protected:
- wxPanel* m_panelStatistics;
- wxStaticText* m_staticTextItemsFoundLabel;
- wxStaticText* m_staticTextItemsFound;
- wxStaticText* m_staticTextItemsRemainingLabel;
- wxBoxSizer* bSizerItemsRemaining;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextBytesRemaining;
- wxStaticText* m_staticTextTimeRemainingLabel;
- wxStaticText* m_staticTextTimeRemaining;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticText* m_staticTextStatus;
- wxPanel* m_panelProgressLabel;
-
-public:
- zen::Graph2D* m_panelGraphProgress;
-
- CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER );
- ~CompareProgressDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panelStatistics;
+ wxStaticText* m_staticTextItemsFoundLabel;
+ wxStaticText* m_staticTextItemsFound;
+ wxStaticText* m_staticTextItemsRemainingLabel;
+ wxBoxSizer* bSizerItemsRemaining;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextBytesRemaining;
+ wxStaticText* m_staticTextTimeRemainingLabel;
+ wxStaticText* m_staticTextTimeRemaining;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticText* m_staticTextStatus;
+ wxPanel* m_panelProgressLabel;
+
+ public:
+ zen::Graph2D* m_panelGraphProgress;
+
+ CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER );
+ ~CompareProgressDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncProgressPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncProgressPanelGenerated : public wxPanel
+class SyncProgressPanelGenerated : public wxPanel
{
-private:
-
-protected:
- wxBoxSizer* bSizer42;
- wxBoxSizer* bSizer171;
- wxStaticText* m_staticText87;
-
-public:
- wxBoxSizer* bSizerRoot;
- wxStaticBitmap* m_bitmapStatus;
- wxStaticText* m_staticTextPhase;
- wxAnimationCtrl* m_animCtrlSyncing;
- wxBitmapButton* m_bpButtonMinimizeToTray;
- wxBoxSizer* bSizerStatusText;
- wxStaticText* m_staticTextStatus;
- wxPanel* m_panelProgress;
- wxPanel* m_panelItemsProcessed;
- wxStaticText* m_staticTextItemsProcessed;
- wxStaticText* m_staticTextBytesProcessed;
- wxPanel* m_panelItemsRemaining;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextBytesRemaining;
- wxPanel* m_panelTimeRemaining;
- wxStaticText* m_staticTextTimeRemaining;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticBitmap* m_bitmapGraphKeyBytes;
- zen::Graph2D* m_panelGraphBytes;
- wxStaticBitmap* m_bitmapGraphKeyItems;
- zen::Graph2D* m_panelGraphItems;
- wxNotebook* m_notebookResult;
- wxStaticLine* m_staticlineFooter;
- wxBoxSizer* bSizerStdButtons;
- wxBoxSizer* bSizerOnCompletion;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxButton* m_buttonClose;
- wxButton* m_buttonPause;
- wxButton* m_buttonStop;
-
- SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
- ~SyncProgressPanelGenerated();
-
+ private:
+
+ protected:
+ wxBoxSizer* bSizer42;
+ wxBoxSizer* bSizer171;
+ wxStaticText* m_staticText87;
+
+ public:
+ wxBoxSizer* bSizerRoot;
+ wxStaticBitmap* m_bitmapStatus;
+ wxStaticText* m_staticTextPhase;
+ wxAnimationCtrl* m_animCtrlSyncing;
+ wxBitmapButton* m_bpButtonMinimizeToTray;
+ wxBoxSizer* bSizerStatusText;
+ wxStaticText* m_staticTextStatus;
+ wxPanel* m_panelProgress;
+ wxPanel* m_panelItemsProcessed;
+ wxStaticText* m_staticTextItemsProcessed;
+ wxStaticText* m_staticTextBytesProcessed;
+ wxPanel* m_panelItemsRemaining;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextBytesRemaining;
+ wxPanel* m_panelTimeRemaining;
+ wxStaticText* m_staticTextTimeRemaining;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticBitmap* m_bitmapGraphKeyBytes;
+ zen::Graph2D* m_panelGraphBytes;
+ wxStaticBitmap* m_bitmapGraphKeyItems;
+ zen::Graph2D* m_panelGraphItems;
+ wxNotebook* m_notebookResult;
+ wxStaticLine* m_staticlineFooter;
+ wxBoxSizer* bSizerStdButtons;
+ wxBoxSizer* bSizerOnCompletion;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxButton* m_buttonClose;
+ wxButton* m_buttonPause;
+ wxButton* m_buttonStop;
+
+ SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
+ ~SyncProgressPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class LogPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class LogPanelGenerated : public wxPanel
+class LogPanelGenerated : public wxPanel
{
-private:
-
-protected:
- ToggleButton* m_bpButtonErrors;
- ToggleButton* m_bpButtonWarnings;
- ToggleButton* m_bpButtonInfo;
- wxStaticLine* m_staticline13;
- zen::Grid* m_gridMessages;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnErrors( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnWarnings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnInfo( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL );
- ~LogPanelGenerated();
-
+ private:
+
+ protected:
+ ToggleButton* m_bpButtonErrors;
+ ToggleButton* m_bpButtonWarnings;
+ ToggleButton* m_bpButtonInfo;
+ wxStaticLine* m_staticline13;
+ zen::Grid* m_gridMessages;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnErrors( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnWarnings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnInfo( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL );
+ ~LogPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class BatchDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class BatchDlgGenerated : public wxDialog
+class BatchDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapBatchJob;
- wxStaticText* m_staticTextDescr;
- wxStaticLine* m_staticline18;
- wxPanel* m_panel35;
- wxStaticText* m_staticText82;
- wxRadioButton* m_radioBtnPopupOnErrors;
- wxRadioButton* m_radioBtnIgnoreErrors;
- wxRadioButton* m_radioBtnStopOnError;
- wxStaticLine* m_staticline26;
- wxStaticText* m_staticText81;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxCheckBox* m_checkBoxRunMinimized;
- wxStaticLine* m_staticline25;
- wxCheckBox* m_checkBoxGenerateLogfile;
- wxPanel* m_panelLogfile;
- wxButton* m_buttonSelectLogFolder;
- wxCheckBox* m_checkBoxLogfilesLimit;
- wxSpinCtrl* m_spinCtrlLogfileLimit;
- wxHyperlinkCtrl* m_hyperlink17;
- wxStaticLine* m_staticline13;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonSaveAs;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorStop( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpScheduleBatch( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- FolderHistoryBox* m_logFolderPath;
- wxBitmapButton* m_bpButtonSelectAltLogFolder;
-
- BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~BatchDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapBatchJob;
+ wxStaticText* m_staticTextDescr;
+ wxStaticLine* m_staticline18;
+ wxPanel* m_panel35;
+ wxStaticText* m_staticText82;
+ wxRadioButton* m_radioBtnPopupOnErrors;
+ wxRadioButton* m_radioBtnIgnoreErrors;
+ wxRadioButton* m_radioBtnStopOnError;
+ wxStaticLine* m_staticline26;
+ wxStaticText* m_staticText81;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxCheckBox* m_checkBoxRunMinimized;
+ wxStaticLine* m_staticline25;
+ wxCheckBox* m_checkBoxGenerateLogfile;
+ wxPanel* m_panelLogfile;
+ wxButton* m_buttonSelectLogFolder;
+ wxCheckBox* m_checkBoxLogfilesLimit;
+ wxSpinCtrl* m_spinCtrlLogfileLimit;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxStaticLine* m_staticline13;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonSaveAs;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorStop( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpScheduleBatch( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ FolderHistoryBox* m_logFolderPath;
+ wxBitmapButton* m_bpButtonSelectAltLogFolder;
+
+ BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~BatchDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class DeleteDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class DeleteDlgGenerated : public wxDialog
+class DeleteDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapDeleteType;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxUseRecycler;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~DeleteDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapDeleteType;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxUseRecycler;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~DeleteDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CopyToDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class CopyToDlgGenerated : public wxDialog
+class CopyToDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapCopyTo;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxButton* m_buttonSelectTargetFolder;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxKeepRelPath;
- wxCheckBox* m_checkBoxOverwriteIfExists;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
- FolderHistoryBox* m_targetFolderPath;
- wxBitmapButton* m_bpButtonSelectAltTargetFolder;
-
- CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~CopyToDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapCopyTo;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxButton* m_buttonSelectTargetFolder;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxKeepRelPath;
+ wxCheckBox* m_checkBoxOverwriteIfExists;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ FolderHistoryBox* m_targetFolderPath;
+ wxBitmapButton* m_bpButtonSelectAltTargetFolder;
+
+ CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~CopyToDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class OptionsDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class OptionsDlgGenerated : public wxDialog
+class OptionsDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxStaticBitmap* m_bitmapSettings;
- wxStaticText* m_staticText44;
- wxStaticLine* m_staticline20;
- wxPanel* m_panel39;
- wxCheckBox* m_checkBoxFailSafe;
- wxStaticText* m_staticText91;
- wxBoxSizer* bSizerLockedFiles;
- wxCheckBox* m_checkBoxCopyLocked;
- wxStaticText* m_staticText92;
- wxCheckBox* m_checkBoxCopyPermissions;
- wxStaticText* m_staticText93;
- wxStaticLine* m_staticline39;
- wxStaticText* m_staticText95;
- wxStaticText* m_staticText96;
- wxSpinCtrl* m_spinCtrlAutoRetryCount;
- wxStaticText* m_staticTextAutoRetryDelay;
- wxSpinCtrl* m_spinCtrlAutoRetryDelay;
- wxStaticLine* m_staticline191;
- wxStaticText* m_staticText85;
- wxGrid* m_gridCustomCommand;
- wxBitmapButton* m_bpButtonAddRow;
- wxBitmapButton* m_bpButtonRemoveRow;
- wxHyperlinkCtrl* m_hyperlink17;
- wxStaticLine* m_staticline192;
- zen::BitmapTextButton* m_buttonResetDialogs;
- wxStaticLine* m_staticline40;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonDefault;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnToggleAutoRetryCount( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRemoveRow( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~OptionsDlgGenerated();
-
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmapSettings;
+ wxStaticText* m_staticText44;
+ wxStaticLine* m_staticline20;
+ wxPanel* m_panel39;
+ wxCheckBox* m_checkBoxFailSafe;
+ wxStaticText* m_staticText91;
+ wxBoxSizer* bSizerLockedFiles;
+ wxCheckBox* m_checkBoxCopyLocked;
+ wxStaticText* m_staticText92;
+ wxCheckBox* m_checkBoxCopyPermissions;
+ wxStaticText* m_staticText93;
+ wxStaticLine* m_staticline39;
+ wxStaticText* m_staticText95;
+ wxStaticText* m_staticText96;
+ wxSpinCtrl* m_spinCtrlAutoRetryCount;
+ wxStaticText* m_staticTextAutoRetryDelay;
+ wxSpinCtrl* m_spinCtrlAutoRetryDelay;
+ wxStaticLine* m_staticline191;
+ wxStaticText* m_staticText85;
+ wxGrid* m_gridCustomCommand;
+ wxBitmapButton* m_bpButtonAddRow;
+ wxBitmapButton* m_bpButtonRemoveRow;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxStaticLine* m_staticline192;
+ zen::BitmapTextButton* m_buttonResetDialogs;
+ wxStaticLine* m_staticline40;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonDefault;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnToggleAutoRetryCount( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRemoveRow( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~OptionsDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class TooltipDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class TooltipDialogGenerated : public wxDialog
+class TooltipDialogGenerated : public wxDialog
{
-private:
-
-protected:
-
-public:
- wxStaticBitmap* m_bitmapLeft;
- wxStaticText* m_staticTextMain;
-
- TooltipDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~TooltipDialogGenerated();
-
+ private:
+
+ protected:
+
+ public:
+ wxStaticBitmap* m_bitmapLeft;
+ wxStaticText* m_staticTextMain;
+
+ TooltipDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~TooltipDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SelectTimespanDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SelectTimespanDlgGenerated : public wxDialog
+class SelectTimespanDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panel35;
- wxCalendarCtrl* m_calendarFrom;
- wxCalendarCtrl* m_calendarTo;
- wxStaticLine* m_staticline21;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnChangeSelectionFrom( wxCalendarEvent& event ) { event.Skip(); }
- virtual void OnChangeSelectionTo( wxCalendarEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Time Span"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~SelectTimespanDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel35;
+ wxCalendarCtrl* m_calendarFrom;
+ wxCalendarCtrl* m_calendarTo;
+ wxStaticLine* m_staticline21;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnChangeSelectionFrom( wxCalendarEvent& event ) { event.Skip(); }
+ virtual void OnChangeSelectionTo( wxCalendarEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Time Span"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~SelectTimespanDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class AboutDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class AboutDlgGenerated : public wxDialog
+class AboutDlgGenerated : public wxDialog
{
-private:
-
-protected:
- wxPanel* m_panel41;
- wxStaticBitmap* m_bitmapLogo;
- wxStaticLine* m_staticline341;
- wxStaticText* m_staticText96;
- wxHyperlinkCtrl* m_hyperlink11;
- wxHyperlinkCtrl* m_hyperlink7;
- wxHyperlinkCtrl* m_hyperlink14;
- wxHyperlinkCtrl* m_hyperlink16;
- wxHyperlinkCtrl* m_hyperlink15;
- wxHyperlinkCtrl* m_hyperlink12;
- wxHyperlinkCtrl* m_hyperlink13;
- wxHyperlinkCtrl* m_hyperlink10;
- wxHyperlinkCtrl* m_hyperlink18;
- wxHyperlinkCtrl* m_hyperlink9;
- wxPanel* m_panelDonate;
- wxPanel* m_panel39;
- wxStaticBitmap* m_bitmapDonate;
- wxStaticText* m_staticText83;
- wxButton* m_buttonDonate;
- wxStaticText* m_staticText94;
- wxStaticBitmap* m_bitmapHomepage;
- wxHyperlinkCtrl* m_hyperlink1;
- wxStaticBitmap* m_bitmapEmail;
- wxHyperlinkCtrl* m_hyperlink2;
- wxStaticLine* m_staticline34;
- wxStaticText* m_staticText93;
- wxStaticBitmap* m_bitmapGpl;
- wxHyperlinkCtrl* m_hyperlink5;
- wxStaticLine* m_staticline37;
- wxStaticText* m_staticText54;
- wxScrolledWindow* m_scrolledWindowTranslators;
- wxFlexGridSizer* fgSizerTranslators;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonClose;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnDonate( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
-
-
-public:
-
- AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~AboutDlgGenerated();
-
+ private:
+
+ protected:
+ wxPanel* m_panel41;
+ wxStaticBitmap* m_bitmapLogo;
+ wxStaticLine* m_staticline341;
+ wxStaticText* m_staticText96;
+ wxHyperlinkCtrl* m_hyperlink11;
+ wxHyperlinkCtrl* m_hyperlink7;
+ wxHyperlinkCtrl* m_hyperlink14;
+ wxHyperlinkCtrl* m_hyperlink16;
+ wxHyperlinkCtrl* m_hyperlink15;
+ wxHyperlinkCtrl* m_hyperlink12;
+ wxHyperlinkCtrl* m_hyperlink13;
+ wxHyperlinkCtrl* m_hyperlink10;
+ wxHyperlinkCtrl* m_hyperlink18;
+ wxHyperlinkCtrl* m_hyperlink9;
+ wxPanel* m_panelDonate;
+ wxPanel* m_panel39;
+ wxStaticBitmap* m_bitmapDonate;
+ wxStaticText* m_staticText83;
+ wxButton* m_buttonDonate;
+ wxStaticText* m_staticText94;
+ wxStaticBitmap* m_bitmapHomepage;
+ wxHyperlinkCtrl* m_hyperlink1;
+ wxStaticBitmap* m_bitmapEmail;
+ wxHyperlinkCtrl* m_hyperlink2;
+ wxStaticLine* m_staticline34;
+ wxStaticText* m_staticText93;
+ wxStaticBitmap* m_bitmapGpl;
+ wxHyperlinkCtrl* m_hyperlink5;
+ wxStaticLine* m_staticline37;
+ wxStaticText* m_staticText54;
+ wxScrolledWindow* m_scrolledWindowTranslators;
+ wxFlexGridSizer* fgSizerTranslators;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonClose;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnDonate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~AboutDlgGenerated();
+
};
#endif //__GUI_GENERATED_H__
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
index 91b0c976..a2a1f242 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "gui_status_handler.h"
#include <zen/shell_execute.h>
diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h
index eeed35d2..335bd516 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.h
+++ b/FreeFileSync/Source/ui/gui_status_handler.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GUI_STATUS_HANDLER_H_0183247018545
#define GUI_STATUS_HANDLER_H_0183247018545
diff --git a/FreeFileSync/Source/ui/main_dlg.cpp b/FreeFileSync/Source/ui/main_dlg.cpp
index 4945b350..00e64afd 100644
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "main_dlg.h"
#include <zen/format_unit.h>
@@ -788,7 +788,8 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
};
addFolderCheck(currMainCfg.firstPair);
- std::for_each(currMainCfg.additionalPairs.begin(), currMainCfg.additionalPairs.end(), addFolderCheck);
+ for (const FolderPairEnh& fp : currMainCfg.additionalPairs)
+ addFolderCheck(fp);
//------------------------------------------------------------------------------------------
if (havePartialPair != haveFullPair) //either all pairs full or all half-filled -> validity check!
@@ -908,18 +909,20 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
#ifdef ZEN_MAC
//OS X 10.10 and later: http://osxdaily.com/2014/10/28/maximize-zoom-windows-os-x-mac/
//enlarging a window will set full screen by default, not maximize (latter is still available by holding ALT or titel bar double-click)
- //=> no real need to support both maximize and full screen functions, we just follow the OS X 10.10 design:
+ //- always activate new full screen support: we need IsFullScreen() + ShowFullScreen(false) working to get correct window dimensions at exit
+ //- EnableFullScreenView(false) is NOT working! Button still available for user to click, but unexpected for wxWidgets: IsFullScreen() == false!
const bool fullScreenApiSupported = EnableFullScreenView(true); //http://stackoverflow.com/questions/26500481/os-x-fullscreen-in-wxwidgets-3-0
assert(fullScreenApiSupported); //available since 10.7
+ (void)fullScreenApiSupported;
#endif
- if (globalSettings.gui.mainDlg.isMaximized)
- {
-#ifdef ZEN_MAC
- if (fullScreenApiSupported)
- ShowFullScreen(true); //once EnableFullScreenView() is set, this internally uses the new full screen API
- else
-#endif
- Maximize(true);
+ if (globalSettings.gui.mainDlg.isMaximized) //no real need to support both maximize and full screen functions
+ {
+ //#ifdef ZEN_MAC
+ // if (fullScreenApiSupported) -> starting in full screen seems to annoy users
+ // ShowFullScreen(true); //once EnableFullScreenView() is set, this internally uses the new full screen API
+ // else
+ //#endif
+ Maximize(true);
}
//set column attributes
@@ -1103,7 +1106,7 @@ void MainDialog::setFilterManually(const std::vector<FileSystemObject*>& selecti
namespace
{
//perf: wxString doesn't model exponential growth and is unsuitable for large data sets
-typedef Zbase<wchar_t> zxString; //guaranteed exponential growth
+using zxString = Zbase<wchar_t>; //guaranteed exponential growth
}
void MainDialog::copySelectionToClipboard(const std::vector<const Grid*>& gridRefs)
@@ -1137,12 +1140,11 @@ void MainDialog::copySelectionToClipboard(const std::vector<const Grid*>& gridRe
addSelection(*gr);
//finally write to clipboard
- if (!clipboardString.empty())
- if (wxClipboard::Get()->Open())
- {
- ZEN_ON_SCOPE_EXIT(wxClipboard::Get()->Close());
- wxClipboard::Get()->SetData(new wxTextDataObject(copyStringTo<wxString>(clipboardString))); //ownership passed
- }
+ if (wxClipboard::Get()->Open())
+ {
+ ZEN_ON_SCOPE_EXIT(wxClipboard::Get()->Close());
+ wxClipboard::Get()->SetData(new wxTextDataObject(copyStringTo<wxString>(clipboardString))); //ownership passed
+ }
}
catch (const std::bad_alloc& e)
{
@@ -1322,11 +1324,11 @@ void extractFileDetails(const FileSystemObject& fsObj, Function onDetails)
[&](const FilePair& file)
{
const TempFileBuffer::FileDetails details = { file.getAbstractPath<side>(),
- FileDescriptor(file.getLastWriteTime <side>(),
- file.getFileSize <side>(),
- file.getFileId <side>(),
- file.isFollowedSymlink<side>())
- };
+ FileDescriptor(file.getLastWriteTime <side>(),
+ file.getFileSize <side>(),
+ file.getFileId <side>(),
+ file.isFollowedSymlink<side>())
+ };
onDetails(details);
}, [](const SymlinkPair& symlink) {});
}
@@ -1334,14 +1336,14 @@ void extractFileDetails(const FileSystemObject& fsObj, Function onDetails)
template <SelectedSide side>
void collectNonNativeFiles(const std::vector<FileSystemObject*>& selectedRows, const TempFileBuffer& tempFileBuf,
- std::set<TempFileBuffer::FileDetails>& workLoad)
+ std::set<TempFileBuffer::FileDetails>& workLoad)
{
for (const FileSystemObject* fsObj : selectedRows)
extractFileDetails<side>(*fsObj, [&](const TempFileBuffer::FileDetails& details)
{
- if (!AFS::getNativeItemPath(details.path))
- if (tempFileBuf.getTempPath(details).empty()) //TempFileBuffer::createTempFiles() contract!
- workLoad.insert(details);
+ if (!AFS::getNativeItemPath(details.path))
+ if (tempFileBuf.getTempPath(details).empty()) //TempFileBuffer::createTempFiles() contract!
+ workLoad.insert(details);
});
}
@@ -1369,23 +1371,23 @@ void invokeCommandLine(const Zstring& commandLinePhrase, //throw FileError
Zstring localPath;
Zstring localPath2;
- if (AFS::getNativeItemPath(basePath))
- localPath = itemPath; //no matter if item exists or not
- else //returns empty if not available (item not existing, error during copy):
- extractFileDetails<side>(*fsObj, [&](const TempFileBuffer::FileDetails& details) { localPath = tempFileBuf.getTempPath(details); });
+ if (AFS::getNativeItemPath(basePath))
+ localPath = itemPath; //no matter if item exists or not
+ else //returns empty if not available (item not existing, error during copy):
+ extractFileDetails<side>(*fsObj, [&](const TempFileBuffer::FileDetails& details) { localPath = tempFileBuf.getTempPath(details); });
- if (AFS::getNativeItemPath(basePath2))
- localPath2 = itemPath2;
- else
- extractFileDetails<side2>(*fsObj, [&](const TempFileBuffer::FileDetails& details) { localPath2 = tempFileBuf.getTempPath(details); });
+ if (AFS::getNativeItemPath(basePath2))
+ localPath2 = itemPath2;
+ else
+ extractFileDetails<side2>(*fsObj, [&](const TempFileBuffer::FileDetails& details) { localPath2 = tempFileBuf.getTempPath(details); });
if (localPath .empty()) localPath = replaceCpy(toZ(L"<" + _("Local path not available for %x.") + L">"), Zstr("%x"), itemPath );
if (localPath2.empty()) localPath2 = replaceCpy(toZ(L"<" + _("Local path not available for %x.") + L">"), Zstr("%x"), itemPath2);
-
+
Zstring command = commandLinePhrase;
replace(command, Zstr("%item_path%"), itemPath);
replace(command, Zstr("%item_path2%"), itemPath2);
- replace(command, Zstr("%folder_path%"), folderPath);
+ replace(command, Zstr("%folder_path%"), folderPath);
replace(command, Zstr("%folder_path2%"), folderPath2);
replace(command, Zstr("%local_path%"), localPath);
replace(command, Zstr("%local_path2%"), localPath2);
@@ -1484,7 +1486,7 @@ void MainDialog::openExternalApplication(const Zstring& commandLinePhrase, bool
}
std::set<TempFileBuffer::FileDetails> nonNativeFiles;
- if (contains(commandLinePhrase, Zstr("%local_path%")))
+ if (contains(commandLinePhrase, Zstr("%local_path%")))
{
collectNonNativeFiles< LEFT_SIDE>(selectionLeft, tempFileBuf, nonNativeFiles);
collectNonNativeFiles<RIGHT_SIDE>(selectionRight, tempFileBuf, nonNativeFiles);
@@ -1943,7 +1945,7 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
return;
}
localKeyEventsEnabled = false; //avoid recursion
- ZEN_ON_SCOPE_EXIT(localKeyEventsEnabled = true;)
+ ZEN_ON_SCOPE_EXIT(localKeyEventsEnabled = true);
const int keyCode = event.GetKeyCode();
@@ -2790,7 +2792,7 @@ void MainDialog::removeObsoleteCfgHistoryItems(const std::vector<Zstring>& fileP
void MainDialog::removeCfgHistoryItems(const std::vector<Zstring>& filePaths)
{
- std::for_each(filePaths.begin(), filePaths.end(), [&](const Zstring& filepath)
+ for (const Zstring& filepath : filePaths)
{
const int histSize = m_listBoxHistory->GetCount();
for (int i = 0; i < histSize; ++i)
@@ -2800,7 +2802,7 @@ void MainDialog::removeCfgHistoryItems(const std::vector<Zstring>& filePaths)
m_listBoxHistory->Delete(i);
break;
}
- });
+ }
}
@@ -3132,14 +3134,11 @@ void MainDialog::OnLoadFromHistory(wxCommandEvent& event)
m_listBoxHistory->GetSelections(selections);
std::vector<Zstring> filepaths;
- std::for_each(selections.begin(), selections.end(),
- [&](int pos)
- {
+ for (int pos : selections)
if (auto histData = dynamic_cast<const wxClientHistoryData*>(m_listBoxHistory->GetClientObject(pos)))
filepaths.push_back(histData->cfgFile_);
else
assert(false);
- });
if (!filepaths.empty())
loadConfiguration(filepaths);
@@ -3158,13 +3157,11 @@ void MainDialog::OnLoadFromHistoryDoubleClick(wxCommandEvent& event)
m_listBoxHistory->GetSelections(selections);
std::vector<Zstring> filepaths;
- std::for_each(selections.begin(), selections.end(), [&](int pos)
- {
+ for (int pos : selections)
if (auto histData = dynamic_cast<const wxClientHistoryData*>(m_listBoxHistory->GetClientObject(pos)))
filepaths.push_back(histData->cfgFile_);
else
assert(false);
- });
if (!filepaths.empty())
if (loadConfiguration(filepaths))
@@ -3726,7 +3723,7 @@ void MainDialog::OnCompare(wxCommandEvent& event)
ZEN_ON_SCOPE_EXIT(
m_gridMainL->Scroll(scrollPosX, scrollPosY); //
m_gridMainR->Scroll(scrollPosX, scrollPosY); //restore
- m_gridMainC->Scroll(-1, scrollPosY); ) //
+ m_gridMainC->Scroll(-1, scrollPosY); ); //
clearGrid(); //avoid memory peak by clearing old data first
diff --git a/FreeFileSync/Source/ui/main_dlg.h b/FreeFileSync/Source/ui/main_dlg.h
index 262c69dd..46de3e09 100644
--- a/FreeFileSync/Source/ui/main_dlg.h
+++ b/FreeFileSync/Source/ui/main_dlg.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef MAIN_DLG_H_8910481324545644545
#define MAIN_DLG_H_8910481324545644545
@@ -276,7 +276,7 @@ private:
void clearGrid(ptrdiff_t pos = -1);
- typedef int MenuItemID;
+ using MenuItemID = int;
std::map<MenuItemID, wxLanguage> languageMenuItemMap; //needed to attach menu item events
//***********************************************
diff --git a/FreeFileSync/Source/ui/on_completion_box.cpp b/FreeFileSync/Source/ui/on_completion_box.cpp
index cf0ebd54..c7346c61 100644
--- a/FreeFileSync/Source/ui/on_completion_box.cpp
+++ b/FreeFileSync/Source/ui/on_completion_box.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "on_completion_box.h"
#include <deque>
diff --git a/FreeFileSync/Source/ui/on_completion_box.h b/FreeFileSync/Source/ui/on_completion_box.h
index 4b171377..4aee0845 100644
--- a/FreeFileSync/Source/ui/on_completion_box.h
+++ b/FreeFileSync/Source/ui/on_completion_box.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ON_COMPLETION_BOX_H_18947773210473214
#define ON_COMPLETION_BOX_H_18947773210473214
diff --git a/FreeFileSync/Source/ui/progress_indicator.cpp b/FreeFileSync/Source/ui/progress_indicator.cpp
index 2d7f178c..b7b629b7 100644
--- a/FreeFileSync/Source/ui/progress_indicator.cpp
+++ b/FreeFileSync/Source/ui/progress_indicator.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "progress_indicator.h"
#include <memory>
@@ -54,11 +54,17 @@ const int WINDOW_BYTES_PER_SEC = 5000; //
inline wxColor getColorGridLine() { return { 192, 192, 192 }; } //light grey
-inline wxColor getColorCurveAreaBytes () { return { 111, 255, 99 }; } //light green
-inline wxColor getColorCurveAreaItems () { return { 127, 147, 255 }; } //light blue
-inline wxColor getColorCurveAreaBytesRim() { return { 20, 200, 0 }; } //medium green
-inline wxColor getColorCurveAreaItemsRim() { return { 90, 120, 255 }; } //medium blue
+inline wxColor getColorBytes() { return { 111, 255, 99 }; } //light green
+inline wxColor getColorItems() { return { 127, 147, 255 }; } //light blue
+inline wxColor getColorBytesRim() { return { 20, 200, 0 }; } //medium green
+inline wxColor getColorItemsRim() { return { 90, 120, 255 }; } //medium blue
+
+inline wxColor getColorBytesBackground() { return { 205, 255, 202 }; } //faint green
+inline wxColor getColorItemsBackground() { return { 198, 206, 255 }; } //faint blue
+
+inline wxColor getColorBytesBackgroundRim() { return { 12, 128, 0 }; } //dark green
+inline wxColor getColorItemsBackgroundRim() { return { 53, 25, 255 }; } //dark blue
//don't use wxStopWatch for long-running measurements: internally it uses ::QueryPerformanceCounter() which can overflow after only a few days:
@@ -230,8 +236,8 @@ CompareProgressDialog::Pimpl::Pimpl(wxFrame& parentWindow) :
setBackgroundColor(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)).
setSelectionMode(Graph2D::SELECT_NONE));
- m_panelGraphProgress->addCurve(curveDataBytes, Graph2D::CurveAttributes().setLineWidth(1).fillPolygonArea(getColorCurveAreaBytes()).setColor(Graph2D::getBorderColor()));
- m_panelGraphProgress->addCurve(curveDataItems, Graph2D::CurveAttributes().setLineWidth(1).fillPolygonArea(getColorCurveAreaItems()).setColor(Graph2D::getBorderColor()));
+ m_panelGraphProgress->addCurve(curveDataBytes, Graph2D::CurveAttributes().setLineWidth(1).fillPolygonArea(getColorBytes()).setColor(Graph2D::getBorderColor()));
+ m_panelGraphProgress->addCurve(curveDataItems, Graph2D::CurveAttributes().setLineWidth(1).fillPolygonArea(getColorItems()).setColor(Graph2D::getBorderColor()));
m_panelGraphProgress->addCurve(std::make_shared<CurveDataProgressSeparatorLine>(), Graph2D::CurveAttributes().setLineWidth(1).setColor(Graph2D::getBorderColor()));
@@ -894,7 +900,7 @@ private:
return;
}
processingKeyEventHandler = true;
- ZEN_ON_SCOPE_EXIT(processingKeyEventHandler = false;)
+ ZEN_ON_SCOPE_EXIT(processingKeyEventHandler = false);
const int keyCode = event.GetKeyCode();
@@ -951,7 +957,7 @@ private:
{
try
{
- typedef Zbase<wchar_t> zxString; //guaranteed exponential growth, unlike wxString
+ using zxString = Zbase<wchar_t>; //guaranteed exponential growth, unlike wxString
zxString clipboardString;
if (auto prov = m_gridMessages->getDataProvider())
@@ -1390,11 +1396,11 @@ SyncProgressDialogImpl<TopLevelDialog>::SyncProgressDialogImpl(long style, //wxF
pnl.m_panelGraphBytes->setCurve(curveDataBytesTotal, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(*wxWHITE).setColor(wxColor(192, 192, 192))); //medium grey
pnl.m_panelGraphItems->setCurve(curveDataItemsTotal, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(*wxWHITE).setColor(wxColor(192, 192, 192))); //medium grey
- pnl.m_panelGraphBytes->addCurve(curveDataBytesCurrent, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(wxColor(205, 255, 202))./*faint green*/ setColor(wxColor(12, 128, 0))); //dark green
- pnl.m_panelGraphItems->addCurve(curveDataItemsCurrent, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(wxColor(198, 206, 255))./*faint blue */ setColor(wxColor(53, 25, 255))); //dark blue
+ pnl.m_panelGraphBytes->addCurve(curveDataBytesCurrent, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(getColorBytesBackground()).setColor(getColorBytesBackgroundRim()));
+ pnl.m_panelGraphItems->addCurve(curveDataItemsCurrent, Graph2D::CurveAttributes().setLineWidth(1).fillCurveArea(getColorItemsBackground()).setColor(getColorItemsBackgroundRim()));
- pnl.m_panelGraphBytes->addCurve(curveDataBytes, Graph2D::CurveAttributes().setLineWidth(2).fillCurveArea(getColorCurveAreaBytes()).setColor(getColorCurveAreaBytesRim()));
- pnl.m_panelGraphItems->addCurve(curveDataItems, Graph2D::CurveAttributes().setLineWidth(2).fillCurveArea(getColorCurveAreaItems()).setColor(getColorCurveAreaItemsRim()));
+ pnl.m_panelGraphBytes->addCurve(curveDataBytes, Graph2D::CurveAttributes().setLineWidth(2).fillCurveArea(getColorBytes()).setColor(getColorBytesRim()));
+ pnl.m_panelGraphItems->addCurve(curveDataItems, Graph2D::CurveAttributes().setLineWidth(2).fillCurveArea(getColorItems()).setColor(getColorItemsRim()));
//graph legend:
auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol)
@@ -1408,8 +1414,8 @@ SyncProgressDialogImpl<TopLevelDialog>::SyncProgressDialogImpl(long style, //wxF
}
return bmpSquare;
};
- pnl.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorCurveAreaBytes(), getColorCurveAreaBytesRim()));
- pnl.m_bitmapGraphKeyItems->SetBitmap(generateSquareBitmap(getColorCurveAreaItems(), getColorCurveAreaItemsRim()));
+ pnl.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim()));
+ pnl.m_bitmapGraphKeyItems->SetBitmap(generateSquareBitmap(getColorItems(), getColorItemsRim()));
//allow changing the "on completion" command
pnl.m_comboBoxOnCompletion->setHistory(onCompletionHistory, onCompletionHistory.size()); //-> we won't use addItemHistory() later
diff --git a/FreeFileSync/Source/ui/progress_indicator.h b/FreeFileSync/Source/ui/progress_indicator.h
index b8566826..e8742d31 100644
--- a/FreeFileSync/Source/ui/progress_indicator.h
+++ b/FreeFileSync/Source/ui/progress_indicator.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PROGRESS_INDICATOR_H_8037493452348
#define PROGRESS_INDICATOR_H_8037493452348
@@ -10,6 +10,9 @@
#include <functional>
#include <zen/error_log.h>
#include <zen/zstring.h>
+#ifdef ZEN_WIN
+#include <zen/win.h> //include before <wx/msw/wrapwin.h>
+#endif
#include <wx/frame.h>
#include "../lib/status_handler.h"
diff --git a/FreeFileSync/Source/ui/search.cpp b/FreeFileSync/Source/ui/search.cpp
index b03cb7dd..c09863c1 100644
--- a/FreeFileSync/Source/ui/search.cpp
+++ b/FreeFileSync/Source/ui/search.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "search.h"
#include <zen/zstring.h>
diff --git a/FreeFileSync/Source/ui/search.h b/FreeFileSync/Source/ui/search.h
index 6e76b78a..8f8023e3 100644
--- a/FreeFileSync/Source/ui/search.h
+++ b/FreeFileSync/Source/ui/search.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SEARCH_H_423905762345342526587
#define SEARCH_H_423905762345342526587
diff --git a/FreeFileSync/Source/ui/small_dlgs.cpp b/FreeFileSync/Source/ui/small_dlgs.cpp
index d902387f..634aa26b 100644
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "small_dlgs.h"
#include <wx/wupdlock.h>
@@ -698,8 +698,8 @@ OptionsDlg::OptionsDlg(wxWindow* parent, xmlAccess::XmlGlobalSettings& globalSet
const wxString toolTip = wxString(_("Integrate external applications into context menu. The following macros are available:")) + L"\n\n" +
L"%item_path% \t" + _("Full file or folder path") + L"\n" +
L"%folder_path% \t" + _("Parent folder path") + L"\n" +
- L"%local_path% \t" + _("Temporary local copy for SFTP and MTP storage") + L"\n" +
- L"\n" +
+ L"%local_path% \t" + _("Temporary local copy for SFTP and MTP storage") + L"\n" +
+ L"\n" +
L"%item_path2%, %folder_path2%, %local_path2% \t" + _("Parameters for opposite side");
m_gridCustomCommand->GetGridWindow()->SetToolTip(toolTip);
diff --git a/FreeFileSync/Source/ui/small_dlgs.h b/FreeFileSync/Source/ui/small_dlgs.h
index 1f7d0e52..c814d0b3 100644
--- a/FreeFileSync/Source/ui/small_dlgs.h
+++ b/FreeFileSync/Source/ui/small_dlgs.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SMALL_DLGS_H_8321790875018750245
#define SMALL_DLGS_H_8321790875018750245
diff --git a/FreeFileSync/Source/ui/sorting.h b/FreeFileSync/Source/ui/sorting.h
index 7f3eb6b6..fe842745 100644
--- a/FreeFileSync/Source/ui/sorting.h
+++ b/FreeFileSync/Source/ui/sorting.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SORTING_H_82574232452345
#define SORTING_H_82574232452345
diff --git a/FreeFileSync/Source/ui/switch_to_gui.h b/FreeFileSync/Source/ui/switch_to_gui.h
index 7d55055e..3ef5f6e0 100644
--- a/FreeFileSync/Source/ui/switch_to_gui.h
+++ b/FreeFileSync/Source/ui/switch_to_gui.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SWITCH_TO_GUI_H_132047815734845
#define SWITCH_TO_GUI_H_132047815734845
diff --git a/FreeFileSync/Source/ui/sync_cfg.cpp b/FreeFileSync/Source/ui/sync_cfg.cpp
index 5b619d6f..69b35137 100644
--- a/FreeFileSync/Source/ui/sync_cfg.cpp
+++ b/FreeFileSync/Source/ui/sync_cfg.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "sync_cfg.h"
#include <memory>
diff --git a/FreeFileSync/Source/ui/sync_cfg.h b/FreeFileSync/Source/ui/sync_cfg.h
index be777997..bf42eae1 100644
--- a/FreeFileSync/Source/ui/sync_cfg.h
+++ b/FreeFileSync/Source/ui/sync_cfg.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SYNC_CFG_H_31289470134253425
#define SYNC_CFG_H_31289470134253425
diff --git a/FreeFileSync/Source/ui/taskbar.cpp b/FreeFileSync/Source/ui/taskbar.cpp
index ba7fa7c6..ed46138d 100644
--- a/FreeFileSync/Source/ui/taskbar.cpp
+++ b/FreeFileSync/Source/ui/taskbar.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "taskbar.h"
diff --git a/FreeFileSync/Source/ui/taskbar.h b/FreeFileSync/Source/ui/taskbar.h
index d1c3411f..87b10585 100644
--- a/FreeFileSync/Source/ui/taskbar.h
+++ b/FreeFileSync/Source/ui/taskbar.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TASKBAR_H_98170845709124456
#define TASKBAR_H_98170845709124456
diff --git a/FreeFileSync/Source/ui/tray_icon.cpp b/FreeFileSync/Source/ui/tray_icon.cpp
index d6b2b7e5..01863265 100644
--- a/FreeFileSync/Source/ui/tray_icon.cpp
+++ b/FreeFileSync/Source/ui/tray_icon.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "tray_icon.h"
#include <zen/basic_math.h>
diff --git a/FreeFileSync/Source/ui/tray_icon.h b/FreeFileSync/Source/ui/tray_icon.h
index 6d240300..3fe4f6e0 100644
--- a/FreeFileSync/Source/ui/tray_icon.h
+++ b/FreeFileSync/Source/ui/tray_icon.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TRAY_ICON_H_84217830427534285
#define TRAY_ICON_H_84217830427534285
diff --git a/FreeFileSync/Source/ui/tree_view.cpp b/FreeFileSync/Source/ui/tree_view.cpp
index fed2f997..88d4dd49 100644
--- a/FreeFileSync/Source/ui/tree_view.cpp
+++ b/FreeFileSync/Source/ui/tree_view.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include <set>
#include "tree_view.h"
diff --git a/FreeFileSync/Source/ui/tree_view.h b/FreeFileSync/Source/ui/tree_view.h
index be6b8973..2348cafb 100644
--- a/FreeFileSync/Source/ui/tree_view.h
+++ b/FreeFileSync/Source/ui/tree_view.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TREE_VIEW_H_841703190201835280256673425
#define TREE_VIEW_H_841703190201835280256673425
diff --git a/FreeFileSync/Source/ui/triple_splitter.cpp b/FreeFileSync/Source/ui/triple_splitter.cpp
index 8e527128..21c65cdb 100644
--- a/FreeFileSync/Source/ui/triple_splitter.cpp
+++ b/FreeFileSync/Source/ui/triple_splitter.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "triple_splitter.h"
#include <algorithm>
diff --git a/FreeFileSync/Source/ui/triple_splitter.h b/FreeFileSync/Source/ui/triple_splitter.h
index 5db1f8b8..c5c80ef1 100644
--- a/FreeFileSync/Source/ui/triple_splitter.h
+++ b/FreeFileSync/Source/ui/triple_splitter.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TRIPLE_SPLITTER_H_8257804292846842573942534254
#define TRIPLE_SPLITTER_H_8257804292846842573942534254
diff --git a/FreeFileSync/Source/ui/version_check.cpp b/FreeFileSync/Source/ui/version_check.cpp
index a6d4436e..adb441aa 100644
--- a/FreeFileSync/Source/ui/version_check.cpp
+++ b/FreeFileSync/Source/ui/version_check.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "version_check.h"
#include <zen/string_tools.h>
diff --git a/FreeFileSync/Source/ui/version_check.h b/FreeFileSync/Source/ui/version_check.h
index db106c56..1ce68ad4 100644
--- a/FreeFileSync/Source/ui/version_check.h
+++ b/FreeFileSync/Source/ui/version_check.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef VERSION_CHECK_H_324872374893274983275
#define VERSION_CHECK_H_324872374893274983275
diff --git a/FreeFileSync/Source/ui/version_check_impl.h b/FreeFileSync/Source/ui/version_check_impl.h
index 28b1802a..904da735 100644
--- a/FreeFileSync/Source/ui/version_check_impl.h
+++ b/FreeFileSync/Source/ui/version_check_impl.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef VERSION_ID_HEADER_2348769284769242
#define VERSION_ID_HEADER_2348769284769242
diff --git a/FreeFileSync/Source/version/version.h b/FreeFileSync/Source/version/version.h
index 844f9a95..cbaea6a1 100644
--- a/FreeFileSync/Source/version/version.h
+++ b/FreeFileSync/Source/version/version.h
@@ -3,7 +3,7 @@
namespace zen
{
-const wchar_t ffsVersion[] = L"8.3"; //internal linkage!
+const wchar_t ffsVersion[] = L"8.4"; //internal linkage!
const wchar_t FFS_VERSION_SEPARATOR = L'.';
}
diff --git a/wx+/app_main.h b/wx+/app_main.h
index 73306cbc..02d08709 100644
--- a/wx+/app_main.h
+++ b/wx+/app_main.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef APP_MAIN_H_08215601837818347575856
#define APP_MAIN_H_08215601837818347575856
diff --git a/wx+/async_task.h b/wx+/async_task.h
index 8525fe43..915f9602 100644
--- a/wx+/async_task.h
+++ b/wx+/async_task.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ASYNC_TASK_H_839147839170432143214321
#define ASYNC_TASK_H_839147839170432143214321
diff --git a/wx+/bitmap_button.h b/wx+/bitmap_button.h
index 4aef3d36..18702dd3 100644
--- a/wx+/bitmap_button.h
+++ b/wx+/bitmap_button.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BITMAP_BUTTON_H_83415718945878341563415
#define BITMAP_BUTTON_H_83415718945878341563415
diff --git a/wx+/choice_enum.h b/wx+/choice_enum.h
index 86daf213..d564fef8 100644
--- a/wx+/choice_enum.h
+++ b/wx+/choice_enum.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef CHOICE_ENUM_H_132413545345687
#define CHOICE_ENUM_H_132413545345687
@@ -44,7 +44,7 @@ struct EnumDescrList
descrList.emplace_back(value, std::make_pair(text, tooltip));
return *this;
}
- typedef std::vector<std::pair<Enum, std::pair<wxString, wxString>>> DescrList;
+ using DescrList = std::vector<std::pair<Enum, std::pair<wxString, wxString>>>;
DescrList descrList;
};
template <class Enum> void setEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value);
diff --git a/wx+/context_menu.h b/wx+/context_menu.h
index 02fa44dc..bd77100c 100644
--- a/wx+/context_menu.h
+++ b/wx+/context_menu.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef CONTEXT_MENU_H_18047302153418174632141234
#define CONTEXT_MENU_H_18047302153418174632141234
diff --git a/wx+/dc.h b/wx+/dc.h
index 278d3458..e5739053 100644
--- a/wx+/dc.h
+++ b/wx+/dc.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DC_H_4987123956832143243214
#define DC_H_4987123956832143243214
diff --git a/wx+/file_drop.h b/wx+/file_drop.h
index cfa0ea6c..c3ffe09c 100644
--- a/wx+/file_drop.h
+++ b/wx+/file_drop.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_DROP_H_09457802957842560325626
#define FILE_DROP_H_09457802957842560325626
@@ -74,7 +74,7 @@ private:
const std::vector<Zstring> droppedPaths_;
};
-typedef void (wxEvtHandler::*FileDropEventFunction)(FileDropEvent&);
+using FileDropEventFunction = void (wxEvtHandler::*)(FileDropEvent&);
#define FileDropEventHandler(func) \
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(FileDropEventFunction, &func)
diff --git a/wx+/font_size.h b/wx+/font_size.h
index 03f3c62b..05055853 100644
--- a/wx+/font_size.h
+++ b/wx+/font_size.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FONT_SIZE_H_23849632846734343234532
#define FONT_SIZE_H_23849632846734343234532
diff --git a/wx+/graph.cpp b/wx+/graph.cpp
index 0a49f764..14661311 100644
--- a/wx+/graph.cpp
+++ b/wx+/graph.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "graph.h"
#include <cassert>
diff --git a/wx+/graph.h b/wx+/graph.h
index 59b1a483..84927b6d 100644
--- a/wx+/graph.h
+++ b/wx+/graph.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GRAPH_H_234425245936567345799
#define GRAPH_H_234425245936567345799
diff --git a/wx+/grid.cpp b/wx+/grid.cpp
index d357b3c1..ec0534d2 100644
--- a/wx+/grid.cpp
+++ b/wx+/grid.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "grid.h"
#include <cassert>
diff --git a/wx+/grid.h b/wx+/grid.h
index 5fe337f4..0fc5e480 100644
--- a/wx+/grid.h
+++ b/wx+/grid.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GRID_H_834702134831734869987
#define GRID_H_834702134831734869987
diff --git a/wx+/http.cpp b/wx+/http.cpp
index 16dc4776..af51090c 100644
--- a/wx+/http.cpp
+++ b/wx+/http.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "http.h"
#ifdef ZEN_WIN
diff --git a/wx+/http.h b/wx+/http.h
index 90375f42..e3942e67 100644
--- a/wx+/http.h
+++ b/wx+/http.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef HTTP_h_879083425703425702
#define HTTP_h_879083425703425702
diff --git a/wx+/image_resources.cpp b/wx+/image_resources.cpp
index d6c6ab68..1157e15b 100644
--- a/wx+/image_resources.cpp
+++ b/wx+/image_resources.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "image_resources.h"
#include <memory>
diff --git a/wx+/image_resources.h b/wx+/image_resources.h
index 61623614..c29adb9f 100644
--- a/wx+/image_resources.h
+++ b/wx+/image_resources.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef IMAGE_RESOURCES_H_8740257825342532457
#define IMAGE_RESOURCES_H_8740257825342532457
diff --git a/wx+/image_tools.cpp b/wx+/image_tools.cpp
index 52ce45e3..a6ecc3d3 100644
--- a/wx+/image_tools.cpp
+++ b/wx+/image_tools.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "image_tools.h"
#include <zen/string_tools.h>
diff --git a/wx+/image_tools.h b/wx+/image_tools.h
index c8077aa4..cd0e28f0 100644
--- a/wx+/image_tools.h
+++ b/wx+/image_tools.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef IMAGE_TOOLS_H_45782456427634254
#define IMAGE_TOOLS_H_45782456427634254
diff --git a/wx+/no_flicker.h b/wx+/no_flicker.h
index cff5e654..ed3396e1 100644
--- a/wx+/no_flicker.h
+++ b/wx+/no_flicker.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef NO_FLICKER_H_893421590321532
#define NO_FLICKER_H_893421590321532
diff --git a/wx+/popup_dlg.cpp b/wx+/popup_dlg.cpp
index 4cf5b7b4..e05a4240 100644
--- a/wx+/popup_dlg.cpp
+++ b/wx+/popup_dlg.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "popup_dlg.h"
#include <wx/app.h>
diff --git a/wx+/popup_dlg.h b/wx+/popup_dlg.h
index 960700e4..7c5db159 100644
--- a/wx+/popup_dlg.h
+++ b/wx+/popup_dlg.h
@@ -1,12 +1,15 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef POPUP_DLG_H_820780154723456
#define POPUP_DLG_H_820780154723456
+#ifdef ZEN_WIN
+#include <zen/win.h> //include before <wx/msw/wrapwin.h>
+#endif
#include <wx/window.h>
#include <wx/bitmap.h>
#include <wx/string.h>
diff --git a/wx+/rtl.h b/wx+/rtl.h
index f562f003..206e8e6f 100644
--- a/wx+/rtl.h
+++ b/wx+/rtl.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef RTL_H_0183487180058718273432148
#define RTL_H_0183487180058718273432148
diff --git a/wx+/std_button_layout.h b/wx+/std_button_layout.h
index 161d091d..59fda260 100644
--- a/wx+/std_button_layout.h
+++ b/wx+/std_button_layout.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STD_BUTTON_LAYOUT_H_183470321478317214
#define STD_BUTTON_LAYOUT_H_183470321478317214
diff --git a/wx+/string_conv.h b/wx+/string_conv.h
index 270f6442..7ec622a3 100644
--- a/wx+/string_conv.h
+++ b/wx+/string_conv.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STRING_CONV_H_893217450815743
#define STRING_CONV_H_893217450815743
diff --git a/wx+/timespan.h b/wx+/timespan.h
index fd1c24c3..5b9c2f0d 100644
--- a/wx+/timespan.h
+++ b/wx+/timespan.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TIMESPAN_H_254783756533456
#define TIMESPAN_H_254783756533456
diff --git a/wx+/toggle_button.h b/wx+/toggle_button.h
index a440a76d..9c3cb3f1 100644
--- a/wx+/toggle_button.h
+++ b/wx+/toggle_button.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TOGGLE_BUTTON_H_8173024810574556
#define TOGGLE_BUTTON_H_8173024810574556
diff --git a/wx+/tooltip.cpp b/wx+/tooltip.cpp
index 4b51d407..c2c562ce 100644
--- a/wx+/tooltip.cpp
+++ b/wx+/tooltip.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "tooltip.h"
#include <wx/dialog.h>
diff --git a/wx+/tooltip.h b/wx+/tooltip.h
index 06953361..23c7adb1 100644
--- a/wx+/tooltip.h
+++ b/wx+/tooltip.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TOOLTIP_H_8912740832170515
#define TOOLTIP_H_8912740832170515
diff --git a/wx+/zlib_wrap.cpp b/wx+/zlib_wrap.cpp
index d25c2c3e..9858a3e9 100644
--- a/wx+/zlib_wrap.cpp
+++ b/wx+/zlib_wrap.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "zlib_wrap.h"
#ifdef ZEN_WIN
diff --git a/wx+/zlib_wrap.h b/wx+/zlib_wrap.h
index aaedd847..0e596f85 100644
--- a/wx+/zlib_wrap.h
+++ b/wx+/zlib_wrap.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ZLIB_WRAP_H_428597064566
#define ZLIB_WRAP_H_428597064566
diff --git a/zen/basic_math.h b/zen/basic_math.h
index a15d811a..4dc9b43b 100644
--- a/zen/basic_math.h
+++ b/zen/basic_math.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BASIC_MATH_H_3472639843265675
#define BASIC_MATH_H_3472639843265675
diff --git a/zen/build_info.h b/zen/build_info.h
index c430a49a..31c1d456 100644
--- a/zen/build_info.h
+++ b/zen/build_info.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef BUILD_INFO_H_5928539285603428657
#define BUILD_INFO_H_5928539285603428657
diff --git a/zen/crc.h b/zen/crc.h
index 0b22c7c3..a11158d7 100644
--- a/zen/crc.h
+++ b/zen/crc.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef CRC_H_23489275827847235
#define CRC_H_23489275827847235
diff --git a/zen/deprecate.h b/zen/deprecate.h
index 5cac14c3..04bac442 100644
--- a/zen/deprecate.h
+++ b/zen/deprecate.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DEPRECATE_H_234897087787348
#define DEPRECATE_H_234897087787348
diff --git a/zen/dir_watcher.cpp b/zen/dir_watcher.cpp
index 00b48b4f..0c55a963 100644
--- a/zen/dir_watcher.cpp
+++ b/zen/dir_watcher.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "dir_watcher.h"
#include <algorithm>
@@ -130,7 +130,7 @@ public:
}
private:
- typedef Zbase<wchar_t> BasicWString; //thread safe string class for UI texts
+ using BasicWString = Zbase<wchar_t>; //thread safe string class for UI texts
std::mutex lockAccess;
std::vector<DirWatcher::Entry> changedFiles;
@@ -438,7 +438,7 @@ DirWatcher::DirWatcher(const Zstring& dirPath) : //throw FileError
const ErrorCode ec = getLastError(); //copy before directly/indirectly making other system calls!
if (ec == ENOSPC) //fix misleading system message "No space left on device"
throw FileError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(subDirPath)),
- formatSystemError(L"inotify_add_watch", ec, L"The user limit on the total number of inotify watches was reached or the kernel failed to allocate a needed resource."));
+ formatSystemError(L"inotify_add_watch", numberTo<std::wstring>(ec), L"The user limit on the total number of inotify watches was reached or the kernel failed to allocate a needed resource."));
throw FileError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(subDirPath)), formatSystemError(L"inotify_add_watch", ec));
}
diff --git a/zen/dir_watcher.h b/zen/dir_watcher.h
index eb0bd695..28396ae3 100644
--- a/zen/dir_watcher.h
+++ b/zen/dir_watcher.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef DIR_WATCHER_348577025748023458
#define DIR_WATCHER_348577025748023458
diff --git a/zen/error_log.h b/zen/error_log.h
index d282ea4b..5d188e9d 100644
--- a/zen/error_log.h
+++ b/zen/error_log.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ERROR_LOG_H_8917590832147915
#define ERROR_LOG_H_8917590832147915
@@ -26,7 +26,7 @@ enum MessageType
TYPE_FATAL_ERROR = 0x8,
};
-typedef Zbase<wchar_t> MsgString; //std::wstring may employ small string optimization: we cannot accept bloating the "ErrorLog::entries" memory block below (think 1 million items)
+using MsgString = Zbase<wchar_t>; //std::wstring may employ small string optimization: we cannot accept bloating the "ErrorLog::entries" memory block below (think 1 million items)
struct LogEntry
{
@@ -48,7 +48,7 @@ public:
int getItemCount(int typeFilter = TYPE_INFO | TYPE_WARNING | TYPE_ERROR | TYPE_FATAL_ERROR) const;
//subset of std::vector<> interface:
- typedef std::vector<LogEntry>::const_iterator const_iterator;
+ using const_iterator = std::vector<LogEntry>::const_iterator;
const_iterator begin() const { return entries.begin(); }
const_iterator end () const { return entries.end (); }
bool empty() const { return entries.empty(); }
diff --git a/zen/file_access.cpp b/zen/file_access.cpp
index c2072a26..d8a1f3b7 100644
--- a/zen/file_access.cpp
+++ b/zen/file_access.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "file_access.h"
#include <map>
@@ -810,7 +810,7 @@ void setFileTimeByHandle(HANDLE hFile, //throw FileError
}
-void setWriteTimeNative(const Zstring& filePath,
+void setWriteTimeNative(const Zstring& itemPath,
const FILETIME& lastWriteTime,
const FILETIME* creationTime, //optional
ProcSymlink procSl) //throw FileError
@@ -839,21 +839,21 @@ void setWriteTimeNative(const Zstring& filePath,
DWORD attribs = INVALID_FILE_ATTRIBUTES;
ZEN_ON_SCOPE_EXIT(
if (attribs != INVALID_FILE_ATTRIBUTES)
- ::SetFileAttributes(applyLongPathPrefix(filePath).c_str(), attribs);
+ ::SetFileAttributes(applyLongPathPrefix(itemPath).c_str(), attribs);
);
auto removeReadonly = [&]() -> bool //throw FileError; may need to remove the readonly-attribute (e.g. on FAT usb drives)
{
if (attribs == INVALID_FILE_ATTRIBUTES)
{
- const DWORD tmpAttr = ::GetFileAttributes(applyLongPathPrefix(filePath).c_str());
+ const DWORD tmpAttr = ::GetFileAttributes(applyLongPathPrefix(itemPath).c_str());
if (tmpAttr == INVALID_FILE_ATTRIBUTES)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(filePath)), L"GetFileAttributes");
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(itemPath)), L"GetFileAttributes");
if (tmpAttr & FILE_ATTRIBUTE_READONLY)
{
- if (!::SetFileAttributes(applyLongPathPrefix(filePath).c_str(), FILE_ATTRIBUTE_NORMAL))
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write file attributes of %x."), L"%x", fmtPath(filePath)), L"SetFileAttributes");
+ if (!::SetFileAttributes(applyLongPathPrefix(itemPath).c_str(), FILE_ATTRIBUTE_NORMAL))
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write file attributes of %x."), L"%x", fmtPath(itemPath)), L"SetFileAttributes");
attribs = tmpAttr; //reapplied on scope exit
return true;
@@ -864,7 +864,7 @@ void setWriteTimeNative(const Zstring& filePath,
auto openFile = [&](bool conservativeApproach)
{
- return ::CreateFile(applyLongPathPrefix(filePath).c_str(), //_In_ LPCTSTR lpFileName,
+ return ::CreateFile(applyLongPathPrefix(itemPath).c_str(), //_In_ LPCTSTR lpFileName,
(conservativeApproach ?
//some NAS seem to have issues with FILE_WRITE_ATTRIBUTES, even worse, they may fail silently!
//http://sourceforge.net/tracker/?func=detail&atid=1093081&aid=3536680&group_id=234430
@@ -906,20 +906,20 @@ void setWriteTimeNative(const Zstring& filePath,
continue;
//3. after these herculean stunts we give up...
- throw FileError(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), formatSystemError(L"CreateFile", ec));
+ throw FileError(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), formatSystemError(L"CreateFile", ec));
}
}
break;
}
ZEN_ON_SCOPE_EXIT(::CloseHandle(hFile));
- setFileTimeByHandle(hFile, creationTime, lastWriteTime, filePath); //throw FileError
+ setFileTimeByHandle(hFile, creationTime, lastWriteTime, itemPath); //throw FileError
}
#ifndef NDEBUG //verify written data
FILETIME creationTimeDbg = {};
FILETIME lastWriteTimeDbg = {};
- HANDLE hFile = ::CreateFile(applyLongPathPrefix(filePath).c_str(), //_In_ LPCTSTR lpFileName,
+ HANDLE hFile = ::CreateFile(applyLongPathPrefix(itemPath).c_str(), //_In_ LPCTSTR lpFileName,
FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES, //_In_ DWORD dwDesiredAccess,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, //_In_ DWORD dwShareMode,
nullptr, //_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
@@ -942,26 +942,7 @@ void setWriteTimeNative(const Zstring& filePath,
#elif defined ZEN_LINUX
-void setWriteTimeFallback(const Zstring& filePath, std::int64_t modTime, ProcSymlink procSl) //throw FileError
-{
- struct ::timeval writeTime[2] = {};
- writeTime[0].tv_sec = ::time(nullptr); //access time (seconds)
- writeTime[1].tv_sec = modTime; //modification time (seconds)
-
- if (procSl == ProcSymlink::FOLLOW)
- {
- if (::utimes(filePath.c_str(), writeTime) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"utimes");
- }
- else
- {
- if (::lutimes(filePath.c_str(), writeTime) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"lutimes");
- }
-}
-
-
-void setWriteTimeNative(const Zstring& filePath, std::int64_t modTime, ProcSymlink procSl) //throw FileError
+void setWriteTimeNative(const Zstring& itemPath, const struct ::timespec& modTime, ProcSymlink procSl) //throw FileError
{
/*
[2013-05-01] sigh, we can't use utimensat() on NTFS volumes on Ubuntu: silent failure!!! what morons are programming this shit???
@@ -970,36 +951,33 @@ void setWriteTimeNative(const Zstring& filePath, std::int64_t modTime, ProcSymli
[2015-03-09]
- cannot reproduce issues with NTFS and utimensat() on Ubuntu
- utimensat() is supposed to obsolete utime/utimes and is also used by "cp" and "touch"
- - solves utimes() EINVAL bug for certain CIFS/NTFS drives: http://www.freefilesync.org/forum/viewtopic.php?t=387
- => don't use utimensat() directly, but open file descriptor manually, else EINVAL, again!
-
- => let's give utimensat another chance:
+ => let's give utimensat another chance:
+ using open()/futimens() for regular files and utimensat(AT_SYMLINK_NOFOLLOW) for symlinks is consistent with "cp" and "touch"!
*/
struct ::timespec newTimes[2] = {};
- newTimes[0].tv_sec = ::time(nullptr); //access time; using UTIME_OMIT for tv_nsec would trigger even more bugs!!
- //http://www.freefilesync.org/forum/viewtopic.php?t=1701
- newTimes[1].tv_sec = modTime; //modification time
+ newTimes[0].tv_sec = ::time(nullptr); //access time; using UTIME_OMIT for tv_nsec would trigger even more bugs: http://www.freefilesync.org/forum/viewtopic.php?t=1701
+ newTimes[1] = modTime; //modification time
- //=> using open()/futimens() for regular files and utimensat(AT_SYMLINK_NOFOLLOW) for symlinks is consistent with "cp" and "touch"!
if (procSl == ProcSymlink::FOLLOW)
{
- const int fdFile = ::open(filePath.c_str(), O_WRONLY);
- if (fdFile == -1)
- {
- if (errno == EACCES) //bullshit, access denied even with 0777 permissions! => utimes should work!
- return setWriteTimeFallback(filePath, modTime, procSl); //throw FileError
+ //hell knows why files on gvfs-mounted Samba shares fail to open(O_WRONLY) returning EOPNOTSUPP:
+ //http://www.freefilesync.org/forum/viewtopic.php?t=2803 => utimensat() works
+ if (::utimensat(AT_FDCWD, itemPath.c_str(), newTimes, 0) == 0)
+ return;
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"open");
- }
+ //in other cases utimensat() returns EINVAL for CIFS/NTFS drives, but open+futimens works: http://www.freefilesync.org/forum/viewtopic.php?t=387
+ const int fdFile = ::open(itemPath.c_str(), O_WRONLY);
+ if (fdFile == -1)
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), L"open");
ZEN_ON_SCOPE_EXIT(::close(fdFile));
if (::futimens(fdFile, newTimes) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"futimens");
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), L"futimens");
}
else
{
- if (::utimensat(AT_FDCWD, filePath.c_str(), newTimes, AT_SYMLINK_NOFOLLOW) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"utimensat");
+ if (::utimensat(AT_FDCWD, itemPath.c_str(), newTimes, AT_SYMLINK_NOFOLLOW) != 0)
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), L"utimensat");
}
}
@@ -1013,7 +991,7 @@ struct AttrBufFileTimes
} __attribute__((aligned(4), packed));
-void setWriteTimeNative(const Zstring& filePath,
+void setWriteTimeNative(const Zstring& itemPath,
const struct ::timespec& writeTime,
const struct ::timespec* createTime, //optional
ProcSymlink procSl) //throw FileError
@@ -1035,18 +1013,18 @@ void setWriteTimeNative(const Zstring& filePath,
attrBuf.writeTime.tv_sec = writeTime.tv_sec;
attrBuf.writeTime.tv_nsec = writeTime.tv_nsec;
- const int rv = ::setattrlist(filePath.c_str(), //const char* path,
+ const int rv = ::setattrlist(itemPath.c_str(), //const char* path,
&attribs, //struct ::attrlist* attrList,
createTime ? &attrBuf.createTime : &attrBuf.writeTime, //void* attrBuf,
(createTime ? sizeof(attrBuf.createTime) : 0) + sizeof(attrBuf.writeTime), //size_t attrBufSize,
procSl == ProcSymlink::DIRECT ? FSOPT_NOFOLLOW : 0); //unsigned long options
if (rv != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"setattrlist");
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(itemPath)), L"setattrlist");
}
/*
void getFileTimeRaw(int fd, //throw FileError
- const Zstring& filePath, //for error reporting only
+ const Zstring& itemPath, //for error reporting only
struct ::timespec& createTime, //out
struct ::timespec& writeTime) //
{
@@ -1063,7 +1041,7 @@ void getFileTimeRaw(int fd, //throw FileError
sizeof(attrBuf), //size_t attrBufSize,
0); //unsigned long options
if (rv != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(filePath)), L"fgetattrlist");
+ THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(itemPath)), L"fgetattrlist");
createTime.tv_sec = attrBuf.createTime.tv_sec;
createTime.tv_nsec = attrBuf.createTime.tv_nsec;
@@ -1111,7 +1089,9 @@ void zen::setFileTime(const Zstring& filePath, std::int64_t modTime, ProcSymlink
setWriteTimeNative(filePath, timetToFileTime(modTime), nullptr, procSl); //throw FileError
#elif defined ZEN_LINUX
- setWriteTimeNative(filePath, modTime, procSl); //throw FileError
+ struct ::timespec writeTime = {};
+ writeTime.tv_sec = modTime;
+ setWriteTimeNative(filePath, writeTime, procSl); //throw FileError
#elif defined ZEN_MAC
struct ::timespec writeTime = {};
@@ -1217,15 +1197,15 @@ void copyItemPermissions(const Zstring& sourcePath, const Zstring& targetPath, P
try
{
//enable privilege: required to read/write SACL information (only)
- activatePrivilege(SE_SECURITY_NAME); //throw FileError
+ activatePrivilege(PrivilegeName::SECURITY); //throw FileError
//Note: trying to copy SACL (SACL_SECURITY_INFORMATION) may return ERROR_PRIVILEGE_NOT_HELD (1314) on Samba shares. This is not due to missing privileges!
//However, this is okay, since copying NTFS permissions doesn't make sense in this case anyway
//the following privilege may be required according to https://msdn.microsoft.com/en-us/library/aa364399 (although not needed nor active in my tests)
- activatePrivilege(SE_BACKUP_NAME); //throw FileError
+ activatePrivilege(PrivilegeName::BACKUP); //throw FileError
//enable privilege: required to copy owner information
- activatePrivilege(SE_RESTORE_NAME); //throw FileError
+ activatePrivilege(PrivilegeName::RESTORE); //throw FileError
}
catch (const FileError& e)//add some more context description (e.g. user is not an admin)
{
@@ -1674,22 +1654,21 @@ void zen::copySymlink(const Zstring& sourceLink, const Zstring& targetLink, bool
setWriteTimeNative(targetLink, sourceAttr.ftLastWriteTime, &sourceAttr.ftCreationTime, ProcSymlink::DIRECT); //throw FileError
-#elif defined ZEN_LINUX
+#else
struct ::stat sourceInfo = {};
if (::lstat(sourceLink.c_str(), &sourceInfo) != 0)
THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(sourceLink)), L"lstat");
- setWriteTimeNative(targetLink, sourceInfo.st_mtime, ProcSymlink::DIRECT); //throw FileError
-
+#ifdef ZEN_LINUX
+ setWriteTimeNative(targetLink, sourceInfo.st_mtim, ProcSymlink::DIRECT); //throw FileError
#elif defined ZEN_MAC
- struct ::stat sourceInfo = {};
- if (::lstat(sourceLink.c_str(), &sourceInfo) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(sourceLink)), L"lstat");
-
if (hasNativeSupportForExtendedAtrributes(targetLink)) //throw FileError
::copyfile(sourceLink.c_str(), targetLink.c_str(), nullptr, COPYFILE_XATTR | COPYFILE_NOFOLLOW); //ignore errors, see related comments in copyFileOsSpecific()
setWriteTimeNative(targetLink, sourceInfo.st_mtimespec, &sourceInfo.st_birthtimespec, ProcSymlink::DIRECT); //throw FileError
+#else
+#error WTF
+#endif
#endif
if (copyFilePermissions)
@@ -1835,9 +1814,9 @@ InSyncAttributes copyFileWindowsBackupStream(const Zstring& sourceFile, //throw
{
//try to get backup read and write privileges: help solve most "access denied" errors with FILE_FLAG_BACKUP_SEMANTICS:
//http://www.freefilesync.org/forum/viewtopic.php?t=1714
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) {}
- try { activatePrivilege(SE_RESTORE_NAME); }
+ try { activatePrivilege(PrivilegeName::RESTORE); }
catch (const FileError&) {}
//open sourceFile for reading
@@ -1903,8 +1882,8 @@ InSyncAttributes copyFileWindowsBackupStream(const Zstring& sourceFile, //throw
CREATE_NEW, //_In_ DWORD dwCreationDisposition,
//FILE_FLAG_OVERLAPPED must not be used! FILE_FLAG_NO_BUFFERING should not be used!
(fileInfoSource.dwFileAttributes & validAttribs) |
- FILE_FLAG_SEQUENTIAL_SCAN |
- FILE_FLAG_BACKUP_SEMANTICS, //_In_ DWORD dwFlagsAndAttributes,
+ FILE_FLAG_SEQUENTIAL_SCAN | //_In_ DWORD dwFlagsAndAttributes,
+ FILE_FLAG_BACKUP_SEMANTICS, //-> also required by FSCTL_SET_SPARSE
nullptr); //_In_opt_ HANDLE hTemplateFile
if (hFileTarget == INVALID_HANDLE_VALUE)
{
@@ -2186,9 +2165,9 @@ InSyncAttributes copyFileWindowsDefault(const Zstring& sourceFile, //throw FileE
{
//try to get backup read and write privileges: may help solve some "access denied" errors
bool backupPrivilegesActive = true;
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) { backupPrivilegesActive = false; }
- try { activatePrivilege(SE_RESTORE_NAME); }
+ try { activatePrivilege(PrivilegeName::RESTORE); }
catch (const FileError&) { backupPrivilegesActive = false; }
auto guardTarget = zen::makeGuard<ScopeGuardRunMode::ON_FAIL>([&] { try { removeFile(targetFile); } catch (FileError&) {} });
@@ -2402,7 +2381,7 @@ InSyncAttributes copyFileOsSpecific(const Zstring& sourceFile, //throw FileError
//sourceInfo.st_birthtime; -> only seconds-precision
//sourceInfo.st_mtime; ->
#else
- setWriteTimeNative(targetFile, sourceInfo.st_mtime, ProcSymlink::FOLLOW); //throw FileError
+ setWriteTimeNative(targetFile, sourceInfo.st_mtim, ProcSymlink::FOLLOW); //throw FileError
#endif
InSyncAttributes newAttrib;
@@ -2410,7 +2389,7 @@ InSyncAttributes copyFileOsSpecific(const Zstring& sourceFile, //throw FileError
#ifdef ZEN_MAC
newAttrib.modificationTime = sourceInfo.st_mtimespec.tv_sec; //use same time variable like setWriteTimeNative() for consistency
#else
- newAttrib.modificationTime = sourceInfo.st_mtime;
+ newAttrib.modificationTime = sourceInfo.st_mtim.tv_sec; //
#endif
newAttrib.sourceFileId = extractFileId(sourceInfo);
newAttrib.targetFileId = extractFileId(targetInfo);
diff --git a/zen/file_access.h b/zen/file_access.h
index fb99ce33..fdb787bd 100644
--- a/zen/file_access.h
+++ b/zen/file_access.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_ACCESS_H_8017341345614857
#define FILE_ACCESS_H_8017341345614857
diff --git a/zen/file_error.h b/zen/file_error.h
index 61a2e89c..374d0b2c 100644
--- a/zen/file_error.h
+++ b/zen/file_error.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_ERROR_H_839567308565656789
#define FILE_ERROR_H_839567308565656789
diff --git a/zen/file_id_def.h b/zen/file_id_def.h
index 2880121c..3eeb79a9 100644
--- a/zen/file_id_def.h
+++ b/zen/file_id_def.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_ID_DEF_H_013287632486321493
#define FILE_ID_DEF_H_013287632486321493
diff --git a/zen/file_io.cpp b/zen/file_io.cpp
index d0a1bfa3..6243980b 100644
--- a/zen/file_io.cpp
+++ b/zen/file_io.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "file_io.h"
#include "file_access.h"
@@ -73,7 +73,7 @@ FileInput::FileInput(const Zstring& filepath) : //throw FileError, ErrorFileLock
FileBase(filepath), fileHandle(getInvalidHandle())
{
#ifdef ZEN_WIN
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) {}
auto createHandle = [&](DWORD dwShareMode)
@@ -222,9 +222,9 @@ FileOutput::FileOutput(const Zstring& filepath, AccessFlag access) : //throw Fil
FileBase(filepath), fileHandle(getInvalidHandle())
{
#ifdef ZEN_WIN
- try { activatePrivilege(SE_BACKUP_NAME); }
+ try { activatePrivilege(PrivilegeName::BACKUP); }
catch (const FileError&) {}
- try { activatePrivilege(SE_RESTORE_NAME); }
+ try { activatePrivilege(PrivilegeName::RESTORE); }
catch (const FileError&) {}
const DWORD dwCreationDisposition = access == FileOutput::ACC_OVERWRITE ? CREATE_ALWAYS : CREATE_NEW;
diff --git a/zen/file_io.h b/zen/file_io.h
index 23296c6c..e6da486d 100644
--- a/zen/file_io.h
+++ b/zen/file_io.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILE_IO_H_89578342758342572345
#define FILE_IO_H_89578342758342572345
@@ -26,9 +26,9 @@ namespace zen
//OS-buffered file IO optimized for sequential read/write accesses + better error reporting + long path support + following symlinks
#ifdef ZEN_WIN
- typedef HANDLE FileHandle;
+ using FileHandle = HANDLE;
#elif defined ZEN_LINUX || defined ZEN_MAC
- typedef int FileHandle;
+ using FileHandle = int;
#endif
class FileBase
diff --git a/zen/file_traverser.cpp b/zen/file_traverser.cpp
index bedc9154..b4599d03 100644
--- a/zen/file_traverser.cpp
+++ b/zen/file_traverser.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "file_traverser.h"
#include "file_error.h"
diff --git a/zen/file_traverser.h b/zen/file_traverser.h
index 9f850e01..5fffe0e2 100644
--- a/zen/file_traverser.h
+++ b/zen/file_traverser.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FILER_TRAVERSER_H_127463214871234
#define FILER_TRAVERSER_H_127463214871234
diff --git a/zen/fixed_list.h b/zen/fixed_list.h
index 362577d5..dba0996e 100644
--- a/zen/fixed_list.h
+++ b/zen/fixed_list.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FIXED_LIST_H_01238467085684139453534
#define FIXED_LIST_H_01238467085684139453534
@@ -46,11 +46,11 @@ public:
NodeT* it_;
};
- typedef T value_type;
- typedef ListIterator< Node, T> iterator;
- typedef ListIterator<const Node, const T> const_iterator;
- typedef T& reference;
- typedef const T& const_reference;
+ using value_type = T;
+ using iterator = ListIterator< Node, T>;
+ using const_iterator = ListIterator<const Node, const T>;
+ using reference = T&;
+ using const_reference = const T&;
iterator begin() { return firstInsert; }
iterator end () { return iterator(); }
diff --git a/zen/format_unit.cpp b/zen/format_unit.cpp
index 6a0e1668..c7b2504d 100644
--- a/zen/format_unit.cpp
+++ b/zen/format_unit.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "format_unit.h"
#include "basic_math.h"
diff --git a/zen/format_unit.h b/zen/format_unit.h
index fcc42dfa..1f9177f0 100644
--- a/zen/format_unit.h
+++ b/zen/format_unit.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef FMT_UNIT_8702184019487324
#define FMT_UNIT_8702184019487324
diff --git a/zen/globals.h b/zen/globals.h
new file mode 100644
index 00000000..5f3dd64a
--- /dev/null
+++ b/zen/globals.h
@@ -0,0 +1,57 @@
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
+
+#ifndef GLOBALS_H_8013740213748021573485
+#define GLOBALS_H_8013740213748021573485
+
+#include <atomic>
+#include <memory>
+#include "scope_guard.h"
+
+namespace zen
+{
+//solve static destruction order fiasco by providing scoped ownership and serialized access to global variables
+template <class T>
+class Global
+{
+public:
+ Global() {}
+ explicit Global(std::unique_ptr<T>&& newInst) { set(std::move(newInst)); }
+ ~Global() { set(nullptr); }
+
+ std::shared_ptr<T> get() //=> return std::shared_ptr to let instance life time be handled by caller (MT usage!)
+ {
+ while (spinLock.exchange(true)) ;
+ ZEN_ON_SCOPE_EXIT(spinLock = false);
+ if (inst)
+ return *inst;
+ return nullptr;
+ }
+
+ void set(std::unique_ptr<T>&& newInst)
+ {
+ std::shared_ptr<T>* tmpInst = nullptr;
+ if (newInst)
+ tmpInst = new std::shared_ptr<T>(std::move(newInst));
+ {
+ while (spinLock.exchange(true)) ;
+ ZEN_ON_SCOPE_EXIT(spinLock = false);
+ std::swap(inst, tmpInst);
+ }
+ delete tmpInst;
+ }
+
+private:
+ //avoid static destruction order fiasco: there may be accesses to "Global<T>::get()" during process shutdown
+ //e.g. show message in debug_minidump.cpp or some detached thread assembling an error message!
+ //=> use trivially-destructible POD only!!!
+ std::shared_ptr<T>* inst = nullptr;
+ //serialize access: can't use std::mutex because of non-trival destructor
+ std::atomic<bool> spinLock { false };
+};
+}
+
+#endif //GLOBALS_H_8013740213748021573485
diff --git a/zen/guid.h b/zen/guid.h
index 914674af..63007707 100644
--- a/zen/guid.h
+++ b/zen/guid.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef GUID_H_80425780237502345
#define GUID_H_80425780237502345
diff --git a/zen/i18n.h b/zen/i18n.h
index a32f116a..9e4db0e8 100644
--- a/zen/i18n.h
+++ b/zen/i18n.h
@@ -1,15 +1,15 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef I18_N_H_3843489325044253425456
#define I18_N_H_3843489325044253425456
#include <string>
-#include <memory>
#include <cstdint>
+#include "globals.h"
#include "string_tools.h"
#include "format_unit.h"
@@ -67,7 +67,6 @@ std::wstring translate(const std::wstring& text)
{
if (std::shared_ptr<const TranslationHandler> t = getTranslator()) //std::shared_ptr => temporarily take (shared) ownership while using the interface!
return t->translate(text);
-
return text;
}
@@ -99,55 +98,26 @@ std::wstring translate(const std::wstring& singular, const std::wstring& plural,
inline
-std::shared_ptr<const TranslationHandler>*& getTranslationInstance()
+Global<const TranslationHandler>& refTranslationGlobals()
{
- //avoid static destruction order fiasco: there may be accesses to "getTranslator()" during process shutdown
- //e.g. show message in debug_minidump.cpp or some detached thread assembling an error message!
- //=> use POD instead of a plain std::shared_ptr<>!!!
- static std::shared_ptr<const TranslationHandler>* inst = nullptr; //external linkage even in header!
+ //getTranslator() may be called even after static objects of this translation unit are destroyed!
+ static Global<const TranslationHandler> inst; //external linkage even in header!
return inst;
}
-
-
-struct CleanUpTranslationHandler
-{
- ~CleanUpTranslationHandler()
- {
- std::shared_ptr<const TranslationHandler>*& handler = getTranslationInstance();
- assert(!handler); //clean up at a better time rather than during static destruction! MT issues!
- auto oldHandler = handler;
- handler = nullptr; //getTranslator() may be called even after static objects of this translation unit are destroyed!
- delete oldHandler;
- }
-};
}
-//setTranslator/getTranslator() operating on a global are obviously racy for MT usage
-//=> make them fast to cover the rare case of a language change and the not-so-rare case of language clean-up during shutdown
-//=> can't synchronize with std::mutex which is non-POD and again leads to global destruction order fiasco
-//=> return std::shared_ptr to let instance life time be handled by caller (MT!)
inline
void setTranslator(std::unique_ptr<const TranslationHandler>&& newHandler)
{
- static implementation::CleanUpTranslationHandler cuth; //external linkage even in header!
-
- std::shared_ptr<const TranslationHandler>*& handler = implementation::getTranslationInstance();
- auto oldHandler = handler;
- handler = nullptr;
- delete oldHandler;
- if (newHandler)
- handler = new std::shared_ptr<const TranslationHandler>(std::move(newHandler));
+ implementation::refTranslationGlobals().set(std::move(newHandler));
}
inline
std::shared_ptr<const TranslationHandler> getTranslator()
{
- std::shared_ptr<const TranslationHandler>*& handler = implementation::getTranslationInstance();
- if (handler)
- return *handler;
- return nullptr;
+ return implementation::refTranslationGlobals().get();
}
}
diff --git a/zen/optional.h b/zen/optional.h
index c01d95ff..83915110 100644
--- a/zen/optional.h
+++ b/zen/optional.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef OPTIONAL_H_2857428578342203589
#define OPTIONAL_H_2857428578342203589
diff --git a/zen/perf.h b/zen/perf.h
index 3762617f..e3827fd1 100644
--- a/zen/perf.h
+++ b/zen/perf.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PERF_H_83947184145342652456
#define PERF_H_83947184145342652456
diff --git a/zen/process_priority.cpp b/zen/process_priority.cpp
index 2d1abafa..7ef7bc0f 100644
--- a/zen/process_priority.cpp
+++ b/zen/process_priority.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "process_priority.h"
#include "i18n.h"
diff --git a/zen/process_priority.h b/zen/process_priority.h
index 48b95c9e..ce2d0157 100644
--- a/zen/process_priority.h
+++ b/zen/process_priority.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef PROCESS_PRIORITY_H_83421759082143245
#define PROCESS_PRIORITY_H_83421759082143245
diff --git a/zen/recycler.cpp b/zen/recycler.cpp
index 32ba7cb0..7f9e0a01 100644
--- a/zen/recycler.cpp
+++ b/zen/recycler.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "recycler.h"
#include "file_access.h"
diff --git a/zen/recycler.h b/zen/recycler.h
index 4b5658cb..4a5f4b2b 100644
--- a/zen/recycler.h
+++ b/zen/recycler.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef RECYCLER_H_18345067341545
#define RECYCLER_H_18345067341545
diff --git a/zen/scope_guard.h b/zen/scope_guard.h
index f8c32127..69d4b060 100644
--- a/zen/scope_guard.h
+++ b/zen/scope_guard.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SCOPE_GUARD_H_8971632487321434
#define SCOPE_GUARD_H_8971632487321434
@@ -20,7 +20,7 @@ inline int getUncaughtExceptionCount() { return std::uncaught_exceptions(); }
#elif defined ZEN_LINUX || defined ZEN_MAC
//std::uncaught_exceptions() currently unsupported on GCC and Clang => clean up ASAP
#ifdef ZEN_LINUX
- static_assert(__GNUC__ < 5 || (__GNUC__ == 5 && (__GNUC_MINOR__ < 3 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ <= 1))), "check std::uncaught_exceptions support");
+ static_assert(__GNUC__ < 6 || (__GNUC__ == 6 && (__GNUC_MINOR__ < 1 || (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1))), "check std::uncaught_exceptions support");
#else
static_assert(__clang_major__ < 7 || (__clang_major__ == 7 && __clang_minor__ <= 3), "check std::uncaught_exceptions support");
#endif
diff --git a/zen/serialize.h b/zen/serialize.h
index aee650e6..bc047fee 100644
--- a/zen/serialize.h
+++ b/zen/serialize.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SERIALIZE_H_839405783574356
#define SERIALIZE_H_839405783574356
@@ -25,16 +25,16 @@ binary container for data storage: must support "basic" std::vector interface (e
*/
//binary container reference implementations
-typedef Zbase<char> Utf8String; //ref-counted + COW text stream + guaranteed performance: exponential growth
+using Utf8String = Zbase<char>; //ref-counted + COW text stream + guaranteed performance: exponential growth
class ByteArray; //ref-counted byte stream + guaranteed performance: exponential growth -> no COW, but 12% faster than Utf8String (due to no null-termination?)
class ByteArray //essentially a std::vector<char> with ref-counted semantics, but no COW! => *almost* value type semantics, but not quite
{
public:
- typedef std::vector<char>::value_type value_type;
- typedef std::vector<char>::iterator iterator;
- typedef std::vector<char>::const_iterator const_iterator;
+ using value_type = std::vector<char>::value_type;
+ using iterator = std::vector<char>::iterator;
+ using const_iterator = std::vector<char>::const_iterator;
iterator begin() { return buffer->begin(); }
iterator end () { return buffer->end (); }
diff --git a/zen/shell_execute.h b/zen/shell_execute.h
index 813de479..5ebdd04d 100644
--- a/zen/shell_execute.h
+++ b/zen/shell_execute.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SHELL_EXECUTE_H_23482134578134134
#define SHELL_EXECUTE_H_23482134578134134
diff --git a/zen/stl_tools.h b/zen/stl_tools.h
index 058609e6..07925981 100644
--- a/zen/stl_tools.h
+++ b/zen/stl_tools.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STL_TOOLS_H_84567184321434
#define STL_TOOLS_H_84567184321434
diff --git a/zen/string_base.h b/zen/string_base.h
index 365e359e..b54c3b2e 100644
--- a/zen/string_base.h
+++ b/zen/string_base.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STRING_BASE_H_083217454562342526
#define STRING_BASE_H_083217454562342526
@@ -196,7 +196,7 @@ private:
{
Descriptor(size_t len, size_t cap) :
length (static_cast<std::uint32_t>(len)),
- capacity(static_cast<std::uint32_t>(cap)) { static_assert(ATOMIC_INT_LOCK_FREE == 2, ""); } //2: "the types are always lock-free"
+ capacity(static_cast<std::uint32_t>(cap)) { static_assert(ATOMIC_INT_LOCK_FREE == 2, ""); } //2: "The atomic type is always lock-free"
std::atomic<unsigned int> refCount { 1 }; //std:atomic is uninitialized by default!
std::uint32_t length;
@@ -232,11 +232,11 @@ public:
//operator const Char* () const; //NO implicit conversion to a C-string!! Many problems... one of them: if we forget to provide operator overloads, it'll just work with a Char*...
//STL accessors
- typedef Char* iterator;
- typedef const Char* const_iterator;
- typedef Char& reference;
- typedef const Char& const_reference;
- typedef Char value_type;
+ using iterator = Char*;
+ using const_iterator = const Char*;
+ using reference = Char&;
+ using const_reference = const Char&;
+ using value_type = Char;
Zbase(const_iterator first, const_iterator last);
Char* begin();
diff --git a/zen/string_tools.h b/zen/string_tools.h
index ed6a1a54..3bda665f 100644
--- a/zen/string_tools.h
+++ b/zen/string_tools.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STRING_TOOLS_H_213458973046
#define STRING_TOOLS_H_213458973046
diff --git a/zen/string_traits.h b/zen/string_traits.h
index 12701dc3..f17e5e0d 100644
--- a/zen/string_traits.h
+++ b/zen/string_traits.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef STRING_TRAITS_H_813274321443234
#define STRING_TRAITS_H_813274321443234
diff --git a/zen/symlink_target.h b/zen/symlink_target.h
index 17168a03..e3f526ba 100644
--- a/zen/symlink_target.h
+++ b/zen/symlink_target.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SYMLINK_TARGET_H_801783470198357483
#define SYMLINK_TARGET_H_801783470198357483
@@ -88,7 +88,7 @@ Zstring getSymlinkRawTargetString_impl(const Zstring& linkPath) //throw FileErro
//reading certain symlinks/junctions requires admin rights!
try
- { activatePrivilege(SE_BACKUP_NAME); } //throw FileError
+ { activatePrivilege(PrivilegeName::BACKUP); } //throw FileError
catch (FileError&) {} //This shall not cause an error in user mode!
const HANDLE hLink = ::CreateFile(applyLongPathPrefix(linkPath).c_str(), //_In_ LPCTSTR lpFileName,
diff --git a/zen/sys_error.h b/zen/sys_error.h
index 16e59266..5897b413 100644
--- a/zen/sys_error.h
+++ b/zen/sys_error.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef SYS_ERROR_H_3284791347018951324534
#define SYS_ERROR_H_3284791347018951324534
@@ -25,15 +25,15 @@ namespace zen
{
//evaluate GetLastError()/errno and assemble specific error message
#ifdef ZEN_WIN
- typedef DWORD ErrorCode;
+ using ErrorCode = DWORD;
#elif defined ZEN_LINUX || defined ZEN_MAC
- typedef int ErrorCode;
+ using ErrorCode = int;
#endif
ErrorCode getLastError();
std::wstring formatSystemError(const std::wstring& functionName, ErrorCode ec);
-std::wstring formatSystemError(const std::wstring& functionName, ErrorCode ec, const std::wstring& errorMsg);
+std::wstring formatSystemError(const std::wstring& functionName, const std::wstring& errorCode, const std::wstring& errorMsg);
//A low-level exception class giving (non-translated) detail information only - same conceptional level like "GetLastError()"!
class SysError
@@ -102,13 +102,16 @@ std::wstring formatSystemErrorRaw(ErrorCode ec) //return empty string on error
std::wstring formatSystemError(const std::wstring& functionName, long long lastError) = delete; //intentional overload ambiguity to catch usage errors with HRESULT!
inline
-std::wstring formatSystemError(const std::wstring& functionName, ErrorCode ec) { return formatSystemError(functionName, ec, formatSystemErrorRaw(ec)); }
+std::wstring formatSystemError(const std::wstring& functionName, ErrorCode ec)
+{
+ return formatSystemError(functionName, numberTo<std::wstring>(ec), formatSystemErrorRaw(ec));
+}
inline
-std::wstring formatSystemError(const std::wstring& functionName, ErrorCode ec, const std::wstring& errorMsg)
+std::wstring formatSystemError(const std::wstring& functionName, const std::wstring& errorCode, const std::wstring& errorMsg)
{
- std::wstring output = replaceCpy(_("Error Code %x:"), L"%x", numberTo<std::wstring>(ec));
+ std::wstring output = replaceCpy(_("Error Code %x:"), L"%x", errorCode);
if (!errorMsg.empty())
{
diff --git a/zen/thread.h b/zen/thread.h
index f747f965..fd9dc76d 100644
--- a/zen/thread.h
+++ b/zen/thread.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef THREAD_H_7896323423432235246427
#define THREAD_H_7896323423432235246427
@@ -151,7 +151,7 @@ namespace impl
template <class Function> inline
auto runAsync(Function&& fun, TrueType /*copy-constructible*/)
{
- typedef decltype(fun()) ResultType;
+ using ResultType = decltype(fun());
//note: std::packaged_task does NOT support move-only function objects!
std::packaged_task<ResultType()> pt(std::forward<Function>(fun));
@@ -334,7 +334,8 @@ private:
activeCondition = cv;
}
- std::atomic<bool> interrupted{ false }; //std:atomic is uninitialized by default!
+ std::atomic<bool> interrupted{ false }; //std:atomic is uninitialized by default!!!
+ //"The default constructor is trivial: no initialization takes place other than zero initialization of static and thread-local objects."
std::condition_variable* activeCondition = nullptr;
std::mutex lockConditionPtr; //serialize pointer access (only!)
diff --git a/zen/tick_count.h b/zen/tick_count.h
index 89910e14..5ba4fd1b 100644
--- a/zen/tick_count.h
+++ b/zen/tick_count.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TICK_COUNT_H_3807326223463457
#define TICK_COUNT_H_3807326223463457
@@ -42,11 +42,11 @@ class TickVal
{
public:
#ifdef ZEN_WIN
- typedef LARGE_INTEGER NativeVal;
+ using NativeVal = LARGE_INTEGER;
#elif defined ZEN_LINUX
- typedef timespec NativeVal;
+ using NativeVal = timespec;
#elif defined ZEN_MAC
- typedef uint64_t NativeVal;
+ using NativeVal = uint64_t;
#endif
TickVal() {}
diff --git a/zen/time.h b/zen/time.h
index f9a0fcb5..04d841b5 100644
--- a/zen/time.h
+++ b/zen/time.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TIME_H_8457092814324342453627
#define TIME_H_8457092814324342453627
@@ -214,7 +214,7 @@ struct PredefinedFormatTag {};
template <class String, class String2> inline
String formatTime(const String2& format, const TimeComp& comp, UserDefinedFormatTag) //format as specified by "std::strftime", returns empty string on failure
{
- typedef typename GetCharType<String>::Type CharType;
+ using CharType = typename GetCharType<String>::Type;
std::tm ctc = toClibTimeComponents(comp);
std::mktime(&ctc); // unfortunately std::strftime() needs all elements of "struct tm" filled, e.g. tm_wday, tm_yday
//note: although std::mktime() explicitly expects "local time", calculating weekday and day of year *should* be time-zone and DST independent
@@ -227,7 +227,7 @@ String formatTime(const String2& format, const TimeComp& comp, UserDefinedFormat
template <class String, class FormatType> inline
String formatTime(FormatType, const TimeComp& comp, PredefinedFormatTag)
{
- typedef typename GetCharType<String>::Type CharType;
+ using CharType = typename GetCharType<String>::Type;
return formatTime<String>(GetFormat<FormatType>().format(CharType()), comp, UserDefinedFormatTag());
}
}
@@ -260,13 +260,13 @@ time_t localToTimeT(const TimeComp& comp) //returns -1 on error
template <class String, class String2> inline
String formatTime(const String2& format, const TimeComp& comp)
{
- typedef typename SelectIf<
+ using FormatTag = typename SelectIf<
IsSameType<String2, FormatDateTag >::value ||
IsSameType<String2, FormatTimeTag >::value ||
IsSameType<String2, FormatDateTimeTag >::value ||
IsSameType<String2, FormatIsoDateTag >::value ||
IsSameType<String2, FormatIsoTimeTag >::value ||
- IsSameType<String2, FormatIsoDateTimeTag>::value, implementation::PredefinedFormatTag, implementation::UserDefinedFormatTag>::Type FormatTag;
+ IsSameType<String2, FormatIsoDateTimeTag>::value, implementation::PredefinedFormatTag, implementation::UserDefinedFormatTag>::Type;
return implementation::formatTime<String>(format, comp, FormatTag());
}
@@ -275,7 +275,7 @@ String formatTime(const String2& format, const TimeComp& comp)
template <class String, class String2>
bool parseTime(const String& format, const String2& str, TimeComp& comp) //return true on success
{
- typedef typename GetCharType<String>::Type CharType;
+ using CharType = typename GetCharType<String>::Type;
static_assert(IsSameType<CharType, typename GetCharType<String2>::Type>::value, "");
const CharType* itFmt = strBegin(format);
diff --git a/zen/type_tools.h b/zen/type_tools.h
index a1e628a1..d0a62ea2 100644
--- a/zen/type_tools.h
+++ b/zen/type_tools.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TYPE_TOOLS_H_45237590734254545
#define TYPE_TOOLS_H_45237590734254545
diff --git a/zen/type_traits.h b/zen/type_traits.h
index c0da43ed..917b3258 100644
--- a/zen/type_traits.h
+++ b/zen/type_traits.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef TYPE_TRAITS_H_3425628658765467
#define TYPE_TRAITS_H_3425628658765467
diff --git a/zen/utf.h b/zen/utf.h
index c0b2b4af..16136349 100644
--- a/zen/utf.h
+++ b/zen/utf.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef UTF_H_01832479146991573473545
#define UTF_H_01832479146991573473545
@@ -19,6 +19,9 @@ TargetString utfCvrtTo(const SourceString& str);
const char BYTE_ORDER_MARK_UTF8[] = "\xEF\xBB\xBF";
+template <class CharString>
+bool isValidUtf8(const CharString& str); //check for UTF-8 encoding errors
+
//---- explicit conversion: wide <-> utf8 ----
template <class CharString, class WideString>
CharString wideToUtf8(const WideString& str); //example: std::string tmp = wideToUtf8<std::string>(L"abc");
@@ -53,9 +56,9 @@ size_t findUnicodePos(const UtfString& str, size_t unicodePos); //return positio
//----------------------- implementation ----------------------------------
namespace implementation
{
-typedef std::uint32_t CodePoint;
-typedef std::uint16_t Char16;
-typedef unsigned char Char8;
+using CodePoint = std::uint32_t;
+using Char16 = std::uint16_t;
+using Char8 = unsigned char;
const CodePoint LEAD_SURROGATE = 0xd800;
const CodePoint TRAIL_SURROGATE = 0xdc00; //== LEAD_SURROGATE_MAX + 1
@@ -413,6 +416,21 @@ CharString wideToUtf8(const WideString& str, Int2Type<4>) //other OS: convert ut
}
+template <class CharString> inline
+bool isValidUtf8(const CharString& str)
+{
+ using namespace implementation;
+ bool valid = true;
+ utf8ToCodePoint(strBegin(str), strBegin(str) + strLength(str),
+ [&](CodePoint cp)
+ {
+ if (cp == REPLACEMENT_CHAR)
+ valid = false; //perf: should we use an (expensive) exception for iteration break?
+ });
+ return valid;
+}
+
+
template <class WideString, class CharString> inline
WideString utf8ToWide(const CharString& str)
{
diff --git a/zen/warn_static.h b/zen/warn_static.h
index bba17cb7..44d7bd73 100644
--- a/zen/warn_static.h
+++ b/zen/warn_static.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef WARN_STATIC_H_08724567834560832745
#define WARN_STATIC_H_08724567834560832745
diff --git a/zen/xml_io.cpp b/zen/xml_io.cpp
index ae69ade4..4b77c851 100644
--- a/zen/xml_io.cpp
+++ b/zen/xml_io.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "xml_io.h"
#include "file_access.h"
diff --git a/zen/xml_io.h b/zen/xml_io.h
index 4876ac55..d0492be1 100644
--- a/zen/xml_io.h
+++ b/zen/xml_io.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef XML_IO_H_8914759321263879
#define XML_IO_H_8914759321263879
diff --git a/zen/zstring.cpp b/zen/zstring.cpp
index 6d249e70..f5732c3f 100644
--- a/zen/zstring.cpp
+++ b/zen/zstring.cpp
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#include "zstring.h"
#include <stdexcept>
diff --git a/zen/zstring.h b/zen/zstring.h
index 3a431ea7..792b92db 100644
--- a/zen/zstring.h
+++ b/zen/zstring.h
@@ -1,8 +1,8 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
+// *****************************************************************************
+// * This file is part of the FreeFileSync project. It is distributed under *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
+// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
+// *****************************************************************************
#ifndef ZSTRING_H_73425873425789
#define ZSTRING_H_73425873425789
@@ -11,19 +11,19 @@
#ifdef ZEN_WIN //Windows encodes Unicode as UTF-16 wchar_t
- typedef wchar_t Zchar;
+ using Zchar = wchar_t;
#define Zstr(x) L ## x
const Zchar FILE_NAME_SEPARATOR = L'\\';
#elif defined ZEN_LINUX || defined ZEN_MAC //Linux uses UTF-8
- typedef char Zchar;
+ using Zchar = char;
#define Zstr(x) x
const Zchar FILE_NAME_SEPARATOR = '/';
#endif
//"The reason for all the fuss above" - Loki/SmartPtr
//a high-performance string for interfacing with native OS APIs in multithreaded contexts
-typedef zen::Zbase<Zchar, zen::StorageRefCountThreadSafe, zen::AllocatorOptimalSpeed> Zstring;
+using Zstring = zen::Zbase<Zchar, zen::StorageRefCountThreadSafe, zen::AllocatorOptimalSpeed>;
int cmpStringNoCase(const wchar_t* lhs, size_t lhsLen, const wchar_t* rhs, size_t rhsLen);
bgstack15